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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
Строка 1: Строка 1:
 
[[Категория:МиниБот]]
 
[[Категория:МиниБот]]
  
Основное ПО МиниБота написано(частично уже написано, остальное в будущем) на Бейсике<br />
+
'''Основное ПО МиниБота написано на Бейсике'''<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 -=Учимся работать с УАРТом=-