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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
м
Строка 10: Строка 10:
  
 
[[Задание№1]]'''Задание №1''' ''-=Учим МиниБот ехать прямо на заданной скорости=-''<br />
 
[[Задание№1]]'''Задание №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 />
 
  
  

Версия 07:52, 6 апреля 2008


Основное ПО МиниБота написано на Бейсике

потому что Бейсик милый добрый и пушистый
Используется компилятор Bascom-AVR

Урок №1 УРОК №1 ===Учим МиниБот ездить под управлением ИК-пульта от телевизара по протоколу RC-5===

Задание№1Задание №1 -=Учим МиниБот ехать прямо на заданной скорости=-


Задание №2 -=Учимся работать с УАРТом=-

Добавляем строку конфигурирования УАРТа

$baud = 2400

2400 бод это скорость на которой будет работать уарт. Выше нам пока незачем и тем более на этой скорости в следующих уроках будут работать наши интеллектуальные ИК-радары которые одновременно смогут общаться с ИК-маяками.

Перед основным циклом выдаем в уарт что мы крутые перцы и умеем работать к коммуникационным портом UART/

Print "Start MiniBot"