roboforum.ru

Технический форум по робототехнике.

Уроки программирования робота для чайников

Re: Уроки программирования робота для чайников

SkyStorm » 25 дек 2008, 18:28

[[Электронный компас]] CMPS03 производства Devantech.
Добавлен код на Bascom-AVR.

Re: Уроки программирования робота для чайников

Qzen » 10 июн 2009, 23:49

Объясните мне неучу - чем плохи те программы ,что лежат на вике, по отношению к миниботу 2.0?
Для этого давайте разбираться на примере. Начнём с самого первого урока:
Код: Выделить всёРазвернуть
$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.0?

Re: Уроки программирования робота для чайников

galex1981 » 10 июн 2009, 23:55

Минус у тех программ тот, что ноги не те используются в миниботе 1.0 по сравнению с миниботом 2.0

Добавлено спустя 45 секунд:
То есть если ты делаешь программу под минибота 2.0, ты должен не бездумно скопировать код из вики а еще и переделать его под минибота 2.0

Добавлено спустя 3 минуты 20 секунд:
урок 1:
Код: Выделить всёРазвернуть
$crystal = 7372800       ' указываем на какой частоте будем работать

Re: Уроки программирования робота для чайников

Qzen » 11 июн 2009, 00:07

Код: Выделить всёРазвернуть
$prog &HFF , &HE4 , &HD9 , &H00       'указываем какие фусибиты надо прошить
$regfile = "m32def.dat"       ' файл спецификации Меги32
$crystal = 7372800       ' указываем на какой частоте будем работать

'----------------------------------------------------------------------------
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.0 для того, чтобы он поехал прямо с минимальной скоростью, так?
И ещё вопрос - по какому принципу выставлются Фусибиты?
В тестовой прошивке они от такие: $prog &HFF , &HBD , &HC9 , &H00 ... какие брать?

Re: Уроки программирования робота для чайников

galex1981 » 11 июн 2009, 00:14

По программе: этого достаточно, по фузи битам: если не знаешь для чего они - вообще ничего не меняй, и вообще не прошивай их.

Re: Уроки программирования робота для чайников

Qzen » 12 июн 2009, 13:46

Код: Выделить всёРазвернуть
'$prog &HFF , &HE4 , &HD9 , &H00      
$regfile = "m32def.dat"                                     
$crystal = 7372800                                         
$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                 
Config Pinc.3 = Output : Drr Alias Portc.3                 
Config Pind.4 = Output                                       
Config Pind.5 = Output                                     
'----------------------------------------------------------------------------

Dim Speed As Byte
Speed = 70

Print "Start MiniBot"

Do

Loop


Здесь скорость 2400, можно ли заменить, как в тестовой прошивке, на 115200? =)
И тогда соответственно настраиваю Гипертерминал под 115200, так?
Фусибиты лучше не трогать и оставить прежними?

Re: Уроки программирования робота для чайников

galex1981 » 12 июн 2009, 13:55

Фусибиты вообще советую не трогать, а скорость также можно любую поставить...

Добавлено спустя 1 минуту 18 секунд:
Главное, потом не забывать в гипертерминале, когда проверяешь прошивки также выставлять соответствующую скорость

Re: Уроки программирования робота для чайников

Qzen » 12 июн 2009, 17:30

Всмысле проверяешь прошивки? :)

Re: Уроки программирования робота для чайников

MiBBiM » 12 июн 2009, 17:51

когда бота к компу подключаешь, выставляй одну и ту же скорость и в терминале, и в прошивке

Re: Уроки программирования робота для чайников

Qzen » 14 июн 2009, 15:30

Не знаю, с чем связано, но выставляю 115200 и в терминале и в коде - не пашет. Выставляю 2400 и там и там - пашет. Что за фигня? :)

Re: Уроки программирования робота для чайников

EdGull » 14 июн 2009, 15:39

частоту кварца какую поставил?

Re: Уроки программирования робота для чайников

Qzen » 14 июн 2009, 16:02

Как в прошивке.
Вот код для получения кодов кнопок пульта:
Код: Выделить всёРазвернуть
'$prog &HFF , &HE4 , &HD9 , &H00       'указываем какие фусибиты надо прошить
$regfile = "m32def.dat"                                     ' файл спецификации Меги32
$crystal = 7372800                                          ' указываем на какой частоте будем работать
$baud = 115200

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

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

Фузы не трогал, Терминал глючит пипец. Выдает StarMinibot3456 только в том случае, если во время работы терминала прошить контроллер, если просто оставить минибот включенным и включить - там будет пустота. На пульт не реагирует вообще, что ни жму - пусто.

Re: Уроки программирования робота для чайников

EdGull » 14 июн 2009, 16:06

есть предположение что ты сбил фьюзы на внутренние 8мгц

Re: Уроки программирования робота для чайников

Qzen » 14 июн 2009, 16:09

Прошиваю тестовую прошивку - всё пашет.
Потом не меняя фьюзы шью эту прогу - та же ерунда.

Re: Уроки программирования робота для чайников

EdGull » 14 июн 2009, 16:15

после того как "шью эту прогу" читаешь фьюзы и их скриншот в студию


Rambler\'s Top100 Mail.ru counter