Задание№1-3 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
м
 
(не показано 28 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
[[Категория:МиниБот]]
 
[[Категория:МиниБот]]
'''Задание№3 -=Учим МиниБот понимать команды RC5 от ИК_пульта обычного телевизора=-'''<br />
+
'''Задание№1-3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-'''<br />
  
 
Добавляем конфигурирование ноги RC5<br />
 
Добавляем конфигурирование ноги RC5<br />
Строка 9: Строка 9:
 
</source>
 
</source>
 
Добавляем в основной цикл вывод прилетевшей нам команды с пульта в уарт.
 
Добавляем в основной цикл вывод прилетевшей нам команды с пульта в уарт.
 +
<source lang="vb">
 +
  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
 +
</source>
 +
И снова наслаждаемся в гипертерминале какие мы умные. Потому что теперь мы знаем какая клавиша на нашем пульте имее какой код.
 +
У меня например вот такой пульт <br />== http://minibot.appee.ru/product.php?prodid=12 ==<br />
 +
[[Изображение:rc5-m.jpg|400px|thumb]]
 +
[[Изображение:terminalka2.GIF|400px|thumb|center]]
 +
Мне пока в нем достаточно клавиш
 +
Вперед - код 32
 +
Назад - код 33
 +
Влево - код 17
 +
Вправо - код 16
 +
 +
В итоге у нас должен получиться вот такой код
 +
<source lang="vb">
 +
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить
 +
$regfile = "m32def.dat"      ' файл спецификации Меги32
 +
$crystal = 8000000      ' указываем на какой частоте будем работать
 +
$baud = 2400
 +
 +
'----------------------------------------------------------------------------
 +
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
 +
 +
Config Rc5 = Pind.2
 +
Enable Interrupts
 +
Dim Address As Byte , Command As Byte
 +
 +
Print "Start MiniBot"
 +
 +
Do
 +
  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
 +
Loop
 +
</source>
 +
<big>'''Технически мы сейчас сделали мост RC5-UART ;-)'''</big>
  
 
{{МиниБот Уроки и Задания}}
 
{{МиниБот Уроки и Задания}}
 +
[[Категория:Basic]]

Текущая версия на 13:27, 11 июля 2008

Задание№1-3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-

Добавляем конфигурирование ноги RC5
<source lang="vb"> Config Rc5 = Pind.2 Enable Interrupts Dim Address As Byte , Command As Byte </source> Добавляем в основной цикл вывод прилетевшей нам команды с пульта в уарт. <source lang="vb">

  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

</source> И снова наслаждаемся в гипертерминале какие мы умные. Потому что теперь мы знаем какая клавиша на нашем пульте имее какой код. У меня например вот такой пульт
== http://minibot.appee.ru/product.php?prodid=12 ==

Rc5-m.jpg
Terminalka2.GIF

Мне пока в нем достаточно клавиш

Вперед - код 32
Назад - код 33
Влево - код 17
Вправо - код 16

В итоге у нас должен получиться вот такой код <source lang="vb"> $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить $regfile = "m32def.dat" ' файл спецификации Меги32 $crystal = 8000000 ' указываем на какой частоте будем работать $baud = 2400

'---------------------------------------------------------------------------- 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

Config Rc5 = Pind.2 Enable Interrupts Dim Address As Byte , Command As Byte

Print "Start MiniBot"

Do

  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

Loop </source> Технически мы сейчас сделали мост RC5-UART ;-)