roboforum.ru

Технический форум по робототехнике.

zlom3_Project_v1

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Сообщение [ziOn]*e]l[uk » 19 дек 2005, 21:14

вот я пока и не знаю... как все это собрать в электронике...
Ты мне вот что скажи:
Мысли в нужную сторону у меня?
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение -= Александр =- » 19 дек 2005, 22:55

Для начала - делай все на одном контроллере.

Алгоритм работы такой:
1)Все фото-приемники подключены параллельно ко входу ынешнего прерывания.
2)Каждый ИК-диод подключен к отдельной ноге контроллера.

Моргаем диодами по-очереди и смотрим от какого пришел ответ - там и есть препятствие.

Более детально выглядит так:
1)Есть тацмер 36 кГц (внутри МК) - он выдает пачку из 10 импульсов на нужный диод, потом скажем 20 импульсов молчит, потом выбирает следующий диод и все повторяется.
2)Есть обработчик прерывания. Срабатывать оно должно по правому фронту (спаду) сигнала (TSOP-приемники дают инверсный сигнал того что приняли) Как только оно сработало - смотрим на какой из диодов таймер выдал последнюю пачку импульсов. Вот и все дела.

Совет: подключи все диоды в один порт к соседним выводам и тогда выбрать i-тый диод можно будет вот так:
Включаем: PORTX|=(1<<i);
Гасим: PORTX&=~(1<<i);

Еще совет: таймер конфигурируй под 72 кГц - надо ведь и включать и выключать диоды.

Для начала тебе сойдет ATMEGA8 - и на диоды и на моторчики ее хватит и еще куча ног останется.
:wink:
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение [ziOn]*e]l[uk » 21 дек 2005, 01:08

-= Александр =- писал(а):Для начала - делай все на одном контроллере.
Алгоритм работы такой:
1)Все фото-приемники подключены параллельно ко входу внешнего прерывания.
2)Каждый ИК-диод подключен к отдельной ноге контроллера.

Моргаем диодами по-очереди и смотрим от какого пришел ответ - там и есть препятствие.


Я думал что надо несколько МК. К тому же эта схема, которую ты мне предложил мне КАЖЕТСЯ не оч. перспективной...
Я хотел разгрузить главный МК и сделать все это с помощю нескольких МК.

-= Александр =- писал(а):Более детально выглядит так:
Есть таймер 36 кГц (внутри МК) - он выдает пачку из 10 импульсов на нужный диод, потом скажем 20 импульсов молчит, потом выбирает следующий диод и все повторяется.


Ну, я размышлял несчет чего то похожего, но я думаю что более открытым для дальнейшего совершенствавания будет схема с несколькими микроконтроллерами. Сколько я читаю в интернете инфы, сколько я видел проектов все стремятся разгрузить головной МК (в разумных пределах).
А уж тем более что я планирую поставить много ИК датчиков.
Вот например на этой схеме, каторую я тут выложил их 6 и это при условии что этот робот не умеет поворачивать...
А если датчиков будет УЙМА?
И не только датчиков, а как насчет управления ОЗУ? ну хотя может я и недооцениваю Мегу8...
К томуже лучше уж на главный МК идет цивровой сигнал с контр. датчиков, чем напрямую с датчиков.

Вот вы мне скажите сколько таймеров в меге8???
(Ато что то все жалуются что их не хвотает)

И мне кажется что сканикование месности будет медленным, а ведь робот планируется маленьким и шустрым...

ЗЫ. Вы уж не ругайте меня если что не так сказал? :)
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение -= Александр =- » 21 дек 2005, 03:16

Конечно ничего глобального на одном МК не сделаешь... Но ты хоть отдаленно представляешь как посадить много МК на общую шину? Даже такие вещи как I2C и SPI совсем не тривиальны даже для того кто освоил контроллеры. Да и датчиков не такая уж и уйма. У меня на мелком таракане будет 18 каналов одного только ИК бампера - все они работают на T26, а с центральной М32 она соединяется по I2C, параллельно с внешней памятью и контроллером моторов. Но это все базируется на моих прошлых наработках, без них, с нуля такое построить очень сложно. Хотя-бы потому что приходится отлаживать не один, а несколько МК.

Кстати почему это он не умеет поворачивать?

У меня расположение ИК такое: 4 вперед (под разными углами) 2 по бокам, 2 сзади, 2 для отслеживания линии, 1 вверх для связи и один вниз сзади. 6 каналов еще свободно, расставлю по мере надобности.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение [ziOn]*e]l[uk » 21 дек 2005, 08:24

-= Александр =- писал(а):Кстати почему это он не умеет поворачивать?


Я имею ввиду ту схемки, каторую показывал перед этим...
Ту что в архиве. Там было две схемки:
1. одна показывает структуру программирования.
2. вторая показывает расположение датчиков.
(дак там на схемах не было боковых датчиков)
А значит он не может поварачивать...  ты внимательно читал? :)

И еще сколька таймеров у меги8?
Какой мк лучше использовать для управления датчиками?
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение North » 21 дек 2005, 11:14

У восьмой меги 3 таймера. 2 восьмибитных и 1 шестнадцатибитный.
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

Сообщение Kanoka » 21 дек 2005, 15:35

А значит он не может поварачивать...

А что это будет то? Если оно поворачивать не умеет. Вагончик для железной дороги?
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение [ziOn]*e]l[uk » 22 дек 2005, 01:22

North писал(а):У восьмой меги 3 таймера. 2 восьмибитных и 1 шестнадцатибитный.


Спасибо, учту.. а вот сколько функций моно вешать на один таймер
(все как с Делфи?)

Kanoka писал(а):Вагончик для железной дороги


Бр-р-р...
Ну я имел ввиду СХЕМОТИЧЕСКОЕ представление работы робота...
Да это и не суть...

Лучше посоветуйте мне МК для управления датчиками...

ВОт еще несколько вопросов:

1. Если в управлении роботом учавствуют несколько МК
Их надо програмить все по отдельности?
Вот например с помощью пяти проводков...
Вначале один патом другой или собрать весе вместе с программатором
и подключать робота к компу и перепрошивать хоть 20 раз в день? :)

2. У тини23 сколько таймеров?
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение -= Александр =- » 22 дек 2005, 01:27

Таймер это такая штука, которая через заданное время генерит прерывание. Прерывание вызывает какую-то процедуру. А уж что ты в нее напишешь - дело твое. Главное чтоб она успела завершиться до следующего срабатывания, иначе повиснет от переполнения стека...

Прошивать каждый МК надо отдельно.

Про тини23 смотри в даташите, у меня про нее ничего нету.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение [ziOn]*e]l[uk » 22 дек 2005, 01:33

Я вот серьезно заняться решил этим делом...
Вот сегодня книжку приобрел: "Ассемблер - это просто!"
Вот сижу читаю...  проблема во времени сессия скоро..
А так щас хоть имею представление что  такое прерывание...
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение Kanoka » 22 дек 2005, 02:44

Про тини23 смотри в даташите, у меня про нее ничего нету.

Не удивительно, такого МК нет в природе :)
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение [ziOn]*e]l[uk » 22 дек 2005, 07:59

Kanoka писал(а):
Про тини23 смотри в даташите, у меня про нее ничего нету.

Не удивительно, такого МК нет в природе :)


ATtiny2313-2 KB-128B-128B-DIP20, SOIC20, MLF32 -40/+85°C
Вообщето имелась в виду эта модель...
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение Kanoka » 22 дек 2005, 14:47

У 2313 один 8-им битный и один 16-ти битный.
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение [ziOn]*e]l[uk » 23 дек 2005, 07:37

ВОт спасибо...
я вот думаю можно нет собрать программатор прямо внутри робота?
Чтоб не перетыкать каждый МК по сто раз...  ато лапки гнуться...
Аватара пользователя
[ziOn]*e]l[uk
 
Сообщения: 43
Зарегистрирован: 09 ноя 2005, 23:46
Откуда: Бер

Сообщение Kanoka » 23 дек 2005, 13:49

Не нужно не чего, не куда перетыкать. Нужно подключать программатор к плате контроллера, а где он будет стоять, в роботе или рядом с ним на столе это уже как хочешь.
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12