Так вот, предыстория. Однажды говорит мне учитель по робототехнике: - Леван, нам нужен робот для лайнтрейсера. Леван купил все детали на него, начал делать. Тут говорит мне учитель: "Леван, мы едим на НТТМ-2011, нам нужен обычный робот, как дополнительная кол-я" Леван сделал этого робота. Так вот он: Мозг Atmega168-20au 16Mhz. ДД L293D Sharp 20-80см. TSOP 1736 - RC5 Датчик линии Pololu. Датчик температуры ds18b20. LCD 16*2. Мой предыдущий робот меня не устраивал платформой, мне она не нравилась. Я попозже поменяю её (как делал конструктор kapanda). Roberto-1 я буду дальше делать, но не сейчас. Так вот, этот робот учебный, я на него вешаю датчики и смотрю, как они работают. Моторые быстрые - это приятно. Язык - Bascom AVR Basic. На этом роботе есть UART, интересно его задействовать... Вообще эта платформа изначально предназначалась для LineTracer, но не до него сейчас. Этот вариант робота на скорую руку, всё будет изменено.
Добавлено (19.06.2011, 16:46) --------------------------------------------- Сейчас развожу ЛУТ бампер TSOP и UART внешний... Блин, я даже не знаю, что бы сделать ещё с помощью ЛУТ :(
Добавлено (19.06.2011, 23:02) --------------------------------------------- Помогите с кодом. Почему то робот не едит влево при нажатии кнопки вправо:
Code
$regfile = "m168def.dat" $crystal = 16000000 ' указываем на какой частоте будем работать
'---------------------------------------------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Pinb.2 = Output : M1f Alias Portb.2 'ногу сконфигурировали как выход и обозвали Drl Config Pinb.1 = Output : M1b Alias Portb.1 'ногу сконфигурировали как выход и обозвали Drr Config Pinb.0 = Output : M2f Alias Portb.0 'ногу сконфигурировали как выход и обозвали Dre Config Pind.7 = Output : M2b Alias Portd.7 'ногу сконфигурировали как выход и обозвали Drw '----------------------------------------------------------------------------
Dim Speed As Byte Speed = 200 ' указываем скорость робота
Config Rc5 = Pind.5 Enable Interrupts Dim Address As Byte , Command As Byte Print "Start" ' выводим в терминал отладочное сообщение
Do Gosub Прием_rc5 If Command = 255 Then Gosub Стоп Waitms 0 Elseif Command = 32 Then Gosub Прямо Waitms 0 Elseif Command = 17 Then Gosub Назад Waitms 0 Elseif Command = 33 Then Gosub Влево Waitms 0 Elseif Command = 16 Then Gosub Вправо Waitms 0 End If Loop
Прием_rc5: Getrc5(address , Command) If Address <> 255 And Command <> 255 Then Command = Command And &B01111111 'Print Chr(12); ' выводим в терминал символ 'Print "Address - " ; Address; ' выводим в терминал адрес 'Print "Command - " ; Command; ' выводим в терминал номер команды End If Return
Не надо тут начинать... Если бы ты хотел, то уже бы разобрался. А так только и ждёшь, пока кто-нибудь не сделает за тебя. Я в бейсике не разбираюсь, но по-моему не хватает Return после