Страница 1 из 1

Делаю робота на ATmega8, нужна консультация

Добавлено: Вс окт 23, 2011 14:49:16
Angell1
В общем проект таков: шаси от китайской машинки на радиоуправлении. 6-8 (еще не определился) ик датчиков расстояния, ATmega8, и пара драйверов для двигателей. Цель этой мега штуки просто ездить беспорядочно не сталкиваясь со стенами, мебелью и т.д. Конструктивно на каждом бампере находится по три датчика, один "смотрит" вперед, два по бокам по отношению к первому на 45% контролируют преграду слева и справа. Прикинул схемку (упрощенный вариант) и алгоритм.
Безымянный.png
(18.04 КБ) 543 скачивания
Алгоритм таков:
1Посалаем на РВ0 импульсы с частотой 36кГц длительностью (еще не придумал)
2Опрашиваем датчик РD0
3Записываем результат в регистр (какой - нибудь)
4Если содержимое регистра равно числу x то движемся ват так - то.
5Посылаем на РВ1 импульсы и т.д. по кругу
Датчики собраны на TSOP, вопрос собственно такой? Получу ли я желаемый результат с таким алгоритмом? Может стоит его доработать? или в корне изменить подход?
Заранее прошу особо не пинать, с ATmega занимаюсь уже 5 лет с перерывом 4,5 года (женился, 2е детей, свой сервисный центр открыл, времени не было) :))

Re: Делаю робота на ATmega8, нужна консультация

Добавлено: Вс окт 23, 2011 15:09:22
Мастер Ломастер
имхо, посылать имульсы 36 кГц на ИК-светодиоды надо одновременно на все, а сигналы со всех приемников завести на 1 порт и считывать одновременно, анализируя затем побитно или побайтно - это уж как понравится.

Re: Делаю робота на ATmega8, нужна консультация

Добавлено: Вс окт 23, 2011 16:03:20
Angell1
Я с начала думал заводить сигнал на все светодиоды одновременно, а не будут остальные светодиоды засвечивать нужный TSOP? вот и решил включать их по порядку. так сказать увеличить точность позиционирования :)) Меня сейчас больше волнует процесс организации этих 36кГц, нарыл свои старые записи и очучение как будто не я их писал :cry: ИМХО повторение - мать ученья.

Re: Делаю робота на ATmega8, нужна консультация

Добавлено: Вт окт 25, 2011 09:28:15
Angell1
вопрос по счетчику. Использую Timer/Counter1 регистр TCCR1A вообще не трогал, в TCCR1B записал 0b00000001. счетчик считает по тактам. пишу:
ldi temp, 0
out TCNT1H, temp
out TCNT1L, temp
и ничего не сбрасывается :( как считали так и продолжаем считать. В чем трабл? или AVR Studio 4 у меня тупит?

Re: Делаю робота на ATmega8, нужна консультация

Добавлено: Вт окт 25, 2011 12:37:06
Angell1
Все, проблема решена, поставил версию 4.19 и тот - же код заработал как надо

Re: Делаю робота на ATmega8, нужна консультация

Добавлено: Ср май 02, 2012 16:49:03
Angell1
После небольшого перерыва:) процесс снова пошел:) фото платы, на момент написания поста уже почти все спаяно.