ПО МиниБота — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
 
(не показано 45 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
[[Категория:МиниБот]]
 
[[Категория:МиниБот]]
  
'''Основное ПО МиниБота написано на Бейсике'''<br />
+
'''Основное ПО МиниБота написано на Бейсике, среда разработки - [[BASCOM-AVR]]'''<br />
 
  потому что Бейсик милый добрый и пушистый<br />
 
  потому что Бейсик милый добрый и пушистый<br />
Используется компилятор Bascom-AVR
 
  
----
 
  
'''Учим МиниБот ездить под управлением ИК-пульта от телевизара по протоколу RC-5'''<br />
+
* [[Урок №1]] '''Учим МиниБот ездить под управлением ИК-пульта от телевизора по протоколу RC-5'''<br/>
 +
** [[Задание№1-1]] -=Учим МиниБот ехать прямо на заданной скорости=-<br />
 +
** [[Задание№1-2]] -=Учим МиниБот работать с УАРТом=-<br />
 +
** [[Задание№1-3]] -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-
 +
** [[Задание№1-4]] -=Собираем все части кода в кучу=-
 +
* [[Урок №2]] '''Учим МиниБот ездить по заложенному в память маршруту'''<br/>
 +
** [[Задание№2-1]] ''-=Учим МиниБот переходить в режим запоминания команд заодно и поморгаем светодиодом=-''<br />
 +
** [[Задание№2-2]] ''-=Учим МиниБот запоминать команды пришедшие с ИК-Пульта RC-5 в массив памяти=-''<br />
 +
** [[Задание№2-3]] ''-==-''<br />
 +
** [[Задание№2-4]] ''-==-''<br />
 +
* [[Урок №3]] '''Ставим на МиниБот локатор'''<br/>
 +
** [[Задание№3-1]] ''-=Учим МиниБот крутить сервой=-''<br />
  
'''Задание №1''' ''-=Учим МиниБот ехать прямо на заданной скорости=-''<br />
+
* [[Звуки R2D2 на МиниБоте]]<br/>
 +
* [[Радиоканал 2.4ГГц ZigBee для МиниБота]]<br/>
 +
* [[Подключаем цветной графический 131x175 ЖКИ от Siemens S65 к МиниБоту]]<br/>
 +
* [[Подключаем монохромный графический 94x64 ЖКИ от Motorola C115 к МиниБоту]]<br/>
 +
* [[Подключаем цветной графический 96х65 пикселей, 4096 цветов ЖКИ от Nokia 3510i к МиниБоту]]<br/>
 +
* [[Подключаем внешнюю флеш-память SD-Card к МиниБоту]]<br/>
 +
* [[Запускаем AVR-DOS на SD-Card МиниБота]]<br/>
 +
* [[Подключаем ИК-дальномер SHARP GP2D12 к МиниБоту]]<br/>
 +
* [[Подключаем серводвигатель к МиниБоту]]<br/>
 +
* [[Подключаем ИК-оптопары Fairchild QRD1114 к МиниБоту]]<br/>
 +
* [[Подключаем температурный датчик LM35 к МиниБоту]]<br/>
 +
* [[Подключаем ультразвуковой сонар к МиниБоту]]<br/>
 +
* [[Подключаем телевизор к МиниБоту]]<br/>
  
Указываем васику с каким крутым камнем ему прийдется иметь дело
 
<blockquote>
 
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить<br />
 
$regfile = "m32def.dat"      ' файл спецификации Меги32<br />
 
$crystal = 8000000      ' указываем на какой частоте будем работать<br />
 
</blockquote>
 
конфигурируем необходимые ноги
 
<blockquote>
 
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down<br />
 
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl<br />
 
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr<br />
 
Config Pind.4 = Output      'ногу ШИМа левого движка сконфигурировали как выход<br />
 
Config Pind.5 = Output      'ногу ШИМа правого движка  сконфигурировали как выход<br />
 
</blockquote>
 
Объявляем переменную в которой будем держать текущую скорость
 
<blockquote>
 
Dim Speed As Byte<br />
 
Speed = 70<br />
 
</blockquote>
 
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.<br />
 
0% это соответсвенно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.<br />
 
  
Теперь собственно основной код программы
 
<blockquote>
 
Do<br />
 
  Drl = 0  'направление движения левого движка, в нашем с<code></code>лучае это прямо<br />
 
  Drr = 0  'направление движения правого движка, в нашем случае это прямо<br />
 
  Pwm1b = Speed : Pwm1a = Speed<br />
 
Loop<br />
 
</blockquote>
 
  
----
+
* [[Генетические алгоритмы в МиниБоте]]<br/>
 
 
Итого код должен выглядеть вот так
 
 
 
 
 
<code>
 
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить<br />
 
$regfile = "m32def.dat"      ' файл спецификации Меги32<br />
 
$crystal = 8000000      ' указываем на какой частоте будем работать<br />
 
 
 
'----------------------------------------------------------------------------<br />
 
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down<br />
 
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl<br />
 
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr<br />
 
Config Pind.4 = Output      'ногу ШИМа левого движка сконфигурировали как выход<br />
 
Config Pind.5 = Output      'ногу ШИМа правого движка  сконфигурировали как выход<br />
 
'----------------------------------------------------------------------------<br />
 
Dim Speed As Byte<br />
 
Speed = 70<br />
 
 
 
Do<br />
 
Drl = 0  'направление движения левого движка, в нашем случае это прямо<br />
 
Drr = 0  'направление движения правого движка, в нашем случае это прямо<br />
 
Pwm1b = Speed : Pwm1a = Speed<br />
 
Loop<br />
 
</code>
 
 
 
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.<br />
 
 
 
 
 
'''Задание №2''' -=Учимся работать с УАРТом=-<br />
 

Текущая версия на 06:31, 9 мая 2009


Основное ПО МиниБота написано на Бейсике, среда разработки - BASCOM-AVR

потому что Бейсик милый добрый и пушистый


  • Урок №1 Учим МиниБот ездить под управлением ИК-пульта от телевизора по протоколу RC-5
    • Задание№1-1 -=Учим МиниБот ехать прямо на заданной скорости=-
    • Задание№1-2 -=Учим МиниБот работать с УАРТом=-
    • Задание№1-3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-
    • Задание№1-4 -=Собираем все части кода в кучу=-
  • Урок №2 Учим МиниБот ездить по заложенному в память маршруту
  • Урок №3 Ставим на МиниБот локатор