ПО МиниБота — различия между версиями
Мур (обсуждение | вклад) м |
EdGull (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
[[Категория:МиниБот]] | [[Категория:МиниБот]] | ||
− | Основное ПО МиниБота написано | + | '''Основное ПО МиниБота написано на Бейсике'''<br /> |
− | потому что Бейсик милый добрый и пушистый<br /> | + | потому что Бейсик милый добрый и пушистый<br /> |
− | Используется компилятор Bascom-AVR | + | Используется компилятор Bascom-AVR |
+ | |||
+ | ---- | ||
+ | |||
+ | '''Учим МиниБот ездить под управлением ИК-пульта от телевизара по протоколу RC-5'''<br /> | ||
+ | |||
+ | '''Задание №1''' ''-=Учим МиниБот ехать прямо на заданной скорости=-''<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> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Итого код должен выглядеть вот так | ||
+ | |||
+ | |||
+ | <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 /> |
Версия 07:14, 6 апреля 2008
Основное ПО МиниБота написано на Бейсике
потому что Бейсик милый добрый и пушистый
Используется компилятор Bascom-AVR
Учим МиниБот ездить под управлением ИК-пульта от телевизара по протоколу RC-5
Задание №1 -=Учим МиниБот ехать прямо на заданной скорости=-
Указываем васику с каким крутым камнем ему прийдется иметь дело
$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 8000000 ' указываем на какой частоте будем работать
конфигурируем необходимые ноги
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход
Объявляем переменную в которой будем держать текущую скорость
Dim Speed As Byte
Speed = 70
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.
0% это соответсвенно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.
Теперь собственно основной код программы
Do
Drl = 0 'направление движения левого движка, в нашем случае это прямо
Drr = 0 'направление движения правого движка, в нашем случае это прямо
Pwm1b = Speed : Pwm1a = Speed
Loop
Итого код должен выглядеть вот так
$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 8000000 ' указываем на какой частоте будем работать
'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход
'----------------------------------------------------------------------------
Dim Speed As Byte
Speed = 70
Do
Drl = 0 'направление движения левого движка, в нашем случае это прямо
Drr = 0 'направление движения правого движка, в нашем случае это прямо
Pwm1b = Speed : Pwm1a = Speed
Loop
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.
Задание №2 -=Учимся работать с УАРТом=-