роботы робототехника микроконтроллеры


 Страниц (3): « 1 [2] 3 »   

> Описание: Рабочая частота, генерация, светодиод...
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Ага.
Р3 и Р4 для опыта тоже можно выкинуть. Потом на чистовик будете делать- поставите.
Между генератором и светиком поставьте сопротивление Ом 100-220 обязательно. И кнопку какую-нибудь, чтобы выключать светодиод. Потому что без резистора Р5, когда он работает на всю мощность, его не так-то просто "спрятать" от ТСОПа.
 
 Top
Shum Post Id



Майор


Сообщений всего: 65
Дата рег-ции: Июль 2009  



все впустую(( намучался с этими ИК и ТСОПами...(((
вот что получилось - так это ТСОП присоеденить к МК, и когда нажимаешь кнопку на пульте от ТВ, то зажигается светодиод...а попытки увидеть препятствие со своим покупным ИК-светиком, и аппаратным генератором не обвенчались успехом(((( странно что когда ИК-светодиод "какбы работает", то ТСОП перестает реагировать даже на пульт от ТВ..как только отключаю аппаратныйц генератор, то снова могу с пульта зажигать светодиод((
кто-нибудь добился вполне съедобной реализации ик-бампера? расскажите на каких элементах у вас все это было?
 
 Top
Dimsan Post Id


Рядовой


Сообщений всего: 11
Дата рег-ции: Июль 2009  



Я добился. Долго тоже мучался. В итоге 2 бампера на разных МК: на тини12 и на меге8. Никаких аппаратных генераторов не использовал, всё на 1 МК.
На ТВ-пульт не реагирует потому что ИК-диод засвечивает ТСОП импульсами и сформированные пачкими импульсы от ТВ-пульта просто "не пробиваются".
Ты пачками генерируешь импульсы или сплошной поток 36КГц?
 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



Обычные ИК-диод и фототранзистор. В среднем "видит" на 30-40 см. Дальность зависит от мощности ИК-диода.

В отличие от TSOP'а такая связка требует чуть более сложного программирования и применения математических алгоритмов для подавления внешней импульсной засветки (от ламп дневного света, экрана монитора, того же пульта дистанционного управления).

Кроме того, программно может понадобиться решить задачу, связанную с изменением силы засветки фототранзистора при перемещении его от ярко освещенных мест в более темные и наоборот. При этом микроконтроллер должен "понимать" на каком примерно расстоянии находится объект (точнее говоря, сила отраженного сигнала, зависящая от отражающих свойств поверхности).
В противном случае, надо делать АРУ (Автоматическую Регулировку Усиления) для фототранзистора.

Видимо, по этому поводу надо делать статью в "Шаг за шагом".
 
 Top
Shum Post Id



Майор


Сообщений всего: 65
Дата рег-ции: Июль 2009  



спасибо за ответы... про фототранзисторы - да сразу отпало, из за всеобъемлющего излучения из галактики на мой бамперок...хочется ТСОПы мучать...
прошу Вас, предоставить фотографию бамперка, что бы уточнить многие детали- на каком расстоянии и главное как расположены ИК и ТСОП....куда они смотрят, что между ними находится...и так далее)
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Вот:
http://myrobot.ru/forum/topic.ph...opic=153&p=6

Там ближе к низу я разместил свои схемы. Схема генератора, думаю, Вам знакома. Мигающий светодиод задает периодичность в работе генератора. У меня сигнал ТСОПа идет на 155 логику, у Вас пойдет на МК. Между ИК-светодиодом(ами) и транзисторным ключом есть смысл разместить потенциометр, чего я не сделал, потом мучился.
Там же на первых страницах ветки можете посмотреть компоновку.

Shum, какие у Вас ТСОПы?
Вы мой опыт читали:
http://myrobot.ru/forum/topic.ph...topic=48&p=1 ?
 
 Top
Shum Post Id



Майор


Сообщений всего: 65
Дата рег-ции: Июль 2009  



мда уж...вторая ссылочка содержала половину моих вопросов....и как я ее не заметил..
что такое "разместить потенциометр"???
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Shum, туда нужно воткнуть потенциометр. Переменный резистор.
С его помощью Вы будете прибавлять / убавлять яркость ИК-светиков, настраивая, таким образом, дальность обнаружения препятствий (разумеется, с погрешностью на их, в смысле, препятствий, отражающую способность).
Робот, описанный по приведенным выше ссылкам, при выкрученной на максимум чувствительности "видит" стену за 6 метров. Большего расстояния я у себя дома не нашел, чтобы проверить его глазастость. гы-гы!
Вернее, при выкрученной- это я громко сказал. Я почему-то сразу не поставил потенциометр и мне пришлось решать проблему навешиванием резисторов на соплях.
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Мигающий светодиод делает не что иное, как "отбирает" ток у генератора.

Генератор включается в момент погасания светодиода и получается как бы типа "пачка", на которую срабатывает ТСОП. Ясное дело, что генератор работает все время, пока мигающий светодиод погашен и пачка получается слишком длинной, но получить резкий фронт- это то что нам нужно.
Когда светодиод снова загорается, весь ток течет через него и генератор отключается. Ему просто-напросто не хватает.
Дешево и сердито. Использован ТСОП 4836 (если я правильно помню).
Улыбка
 
 Top
Shum Post Id



Майор


Сообщений всего: 65
Дата рег-ции: Июль 2009  



СПАСИБО! буду пробовать! дбавлю в свой генератор этот светик)
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Да не за что. Отпишись, что там получилось в итоге.
 
 Top
amdei Post Id



Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2009  



ОЛЕГ пишет:
Купил я себе как-то четыре штуки 1736- они все вели себя так же, что я красочно описал в своей ветке на эту тему. Теперь пользуюсь 4836- очень нравится.
Судя по даташиту они только размерами и зонами видимости отличаются.
Или есть еще что-то, на первый взгляд незаметное?
(Добавление)
А как отличить паленый китайский TSOP от нормального?
Есть ли какие-нибудь отличительные признаки?

У меня вот черненькие, без маркировки вообще, с синей полосочкой вверху "задней" стороны.

Еще вопрос: почему большинство встреченных мною примеров и описаний базируются на 36 kHz'овых? Это какое-то осознанное решение, или случайность?
У меня вот 38-и килогерцовые....
Единственная задница, которую ощутил - с помощью _delay_us() ... требуемую частоту получишь. То 38.5, то 37.5 получается. Середина невозможна.
Пока сотворил на PWM. Но целого PWM канала на это - жалко.
 
 Top
ОЛЕГ Супермодератор Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  



Возможно они и не паленые. Просто они не работают в любительской схеме а-ля "и так сойдет". На нормальный пульт они нормально отрабатывают. Вроде как.
Абсолютная точность частоты не критична.
36- самые доступные, везде есть.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



amdei пишет:
Единственная задница, которую ощутил - с помощью _delay_us() ... требуемую частоту получишь. То 38.5, то 37.5 получается. Середина невозможна.


кроме _delay_us() есть ещё куча вариантов.
легко. через цикл и доподстроить вставками asm-a "nop".

amdei пишет:
А как отличить паленый китайский TSOP от нормального?

1. нужно ВСЕГДА подключать так, как описанно в даташите. (через RC фильт по питанию)
2. неужно светить на него не построянно, а пачками. что тоже хорошо описанно в даташите.
 
 Top
amdei Post Id



Рядовой


Сообщений всего: 8
Дата рег-ции: Сент. 2009  



Граждане!
Не дайте сойти с ума! Скажите, в какое место стены мне удариться головой, чтобы TSOP'а заработала?

Схема прилагается.

Вот программа:
Импульсы по 16 в пачке (игрался). Паузы между импульсами есть.
Скважность - примерно писят процентов.
CODE:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

static const uint8_t IR_LED = PB1; // Will use PWM.
static const uint8_t TSOP = PB3;

static const uint8_t STATUS_LED = PA2;


static const uint8_t PULSE_BUNGLE_SIZE = 15; // Counts from Zero.
static const uint8_t PULSE_INTERBUNGLE_PAUSE = 30; // In pulses. Counts from Zero.

// 64000000/16/(TOP_VALUE + 1) ~= XXx kHz.
//static const uint8_t TOP_VALUE = 132; // 30 kHz
//static const uint8_t TOP_VALUE = 120; // 33 kHz
//static const uint8_t TOP_VALUE = 110; // 36 kHz
static const uint8_t TOP_VALUE = 104; // 38 kHz
//static const uint8_t TOP_VALUE = 99; // 40 kHz
//static const uint8_t TOP_VALUE = 70; // 56 kHz

// 104/50 ~= 50 % duty. Good.
static const uint8_t PULSE_DUTY_VAL = 50; // OCR1A value.


void initIO(){
DDRA = (1 << STATUS_LED);

DDRB = (1 << IR_LED);
PORTB |= (1 << TSOP); // Eliminate Z state...
}

void initPWM(){

// Do Async operation.
PLLCSR = (1 << PLLE);
loop_until_bit_is_set(PLLCSR, PLOCK);
PLLCSR |= (1 << PCKE);

TCCR1A = (1 << PWM1A)|(1 << COM1A1)|(0 << COM1A0); // See table 35 on page 77

// PCK/16
// See table 34 on page 74
TCCR1B = (0 << CS13)|(1 << CS12)|(0 << CS11)|(1 << CS10);
OCR1C= TOP_VALUE;

TIMSK |= (1<<TOIE1); //Enable Timer1 OVF interrupt
}


static uint8_t curPulse = 0;
static uint8_t isPause = 0;
volatile static uint8_t mayMeasure = 0;
ISR(TIMER1_OVF1_vect){

curPulse++;

if(isPause){
mayMeasure = 1;
if(curPulse > PULSE_INTERBUNGLE_PAUSE){
curPulse = 0;
isPause = 0;
OCR1A = PULSE_DUTY_VAL;
}
}else{
mayMeasure = 0;
if(curPulse > PULSE_BUNGLE_SIZE){
curPulse = 0;
isPause = 1;
OCR1A = 0;
}

}
}

void main()
{

initIO();
initPWM();

PORTA = 0x00;
OCR1A = PULSE_DUTY_VAL;

sei();
while(1)
{
_delay_ms(1);
// Wait for a meaningful result...
if(mayMeasure){

// Check results...
if(PINB & (1 << TSOP)){
PORTA &= ~(1 << STATUS_LED);
}else{
PORTA |= (1 << STATUS_LED);
_delay_ms(500);
}
}
} // while(1)
}



Выдираю TSOP'у с платы - светодиод D3 радостно загорается.
Втыкаю - молчит как партизанин. Специально в программе "защелочку" поставил, чтобы не проморгать кратковременный импульс низкого уровня - ничего.
На всех возможных частотах попробовал, в надежде на то что мне ТСОПы на другую частоту продали. ....

Следующим шагом, чую, будет пентамация методом разбивания молотком имеющихся у меня 5-и ТСОП, чтобы посмотреть не закорочен ли там вход на выход намертво...
Если конечно, кто-нибуть свежих идей по тому как заставить ЭТО заработать не будет предложено.

ИК-диод обозван IRD.
Все конденсаторы - керамика.
(Добавление)
Транзистор между ТСОПой и МК выкидывать пробовал.
Прикреплено изображение
IR_locator3.png

(Отредактировано автором: 03 Октября, 2009 - 21:28:32)

 
 Top
Страниц (3): « 1 [2] 3 »
« Электронная мастерская »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru