roboforum.ru

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


Помогите код написать...

Готовая электроника для самодельного робота. Уровень от начинающих до опытных конструкторов.

Re: Помогите код написать...

Сообщение кулер 23 » 20 фев 2010, 21:39

А почитать где можно ? :sorry:
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение EdGull » 20 фев 2010, 21:55

на бумаге, но можно и на компе
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 21:14

:O:
Что такое? Прошил минибота, чтобы от пульта ездил, нажимаю на кнопку а моторы не крутятся а так дрыгаются :( ставил скорость на 100 они стали еле крутится :no: акум заряжен полностью!
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 25 фев 2010, 22:36

Что за прошивка? Код можно?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 22:38

Конешно :)
Код: Выделить всёРазвернуть
                                          ' Указываем какой версии у нас МиниБот
Const Device = 1                                            'MiniBot Version 1 or 2
$regfile = "m32def.dat"                                     ' файл спецификации Меги32

#if Device = 1
' Set configuration for MB1
   $prog &HFF , &HE4 , &HD9 , &H00                          'указываем какие фусибиты надо прошить
   $crystal = 8000000                                       ' указываем на какой частоте будем работать
   $baud = 9600                                             ' указываем частоту дла usart (теперь нужно только для отладки программы)
#else
' Set configuration for MB2
'  $prog &HFF , &HBD , &HC9 , &H00      'указываем какие фусибиты надо прошить
   $crystal = 7372800                                       ' указываем на какой частоте будем работать
   $baud = 115200                                           ' указываем частоту дла usart (теперь нужно только для отладки программы)
#endif

'----------------------------------------------------------------------------
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.3
Enable Interrupts
Dim Address As Byte , Command As Byte

Print "Start MiniBot"                                       ' выводим в терминал отладочное сообщение

Do
   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
   Elseif Command = 32 Then
      Gosub Прямо
      Waitms 100
   Elseif Command = 33 Then
      Gosub Назад
      Waitms 100
   Elseif Command = 17 Then
      Gosub Влево
      Waitms 100
   Elseif Command = 16 Then
      Gosub Вправо
      Waitms 100
   End If
Loop

Прием_rc5:
   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
Return

Влево:
   Gosub Стоп : Waitms 10
   Drl = 1 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Вправо:
   Gosub Стоп : Waitms 10
   Drl = 0 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Прямо:
   Gosub Стоп : Waitms 10
   Drl = 0 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Назад:
   Gosub Стоп : Waitms 10
   Drl = 1 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Стоп:
   Drl = 0 : Drr = 0 : Pwm1b = 0 : Pwm1a = 0:
Return
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 25 фев 2010, 22:41

Слушай, а RC5 использует тот же таймер что и движки, нужно разделять использование RC5 и PWM на таймере 1
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 22:46

Да кстати он даже от такого также моторами дергает :(

Код: Выделить всёРазвернуть
$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
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 25 фев 2010, 22:51

А какие фузи биты выставил? И посмотри на частоту кварца. Если работа от внешнего то тебе нужно ставить:
Код: Выделить всёРазвернуть
$crystal = 7372800       

если от внутренней RC цепочки то так и оставить частоту, но может и не очень стабильно работать
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 22:54

А какие фузи биты выставил?

Никаких :pardon:
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 25 фев 2010, 22:55

ТОгда посмотри, какие зашиты и выложи плиз, а то разговор ни о чем
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 23:01

Вроде вот эти :unknown:
Код: Выделить всёРазвернуть
 $prog &HFF , &HE4 , &HD9 , &H00 
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 25 фев 2010, 23:06

Это настройки в программе для прошивки фузов. Ты программатором считай фузы например в AvrStudio или в Bascome, тут человек в соседней ветке так и сделал - выложил скриншот
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Помогите код написать...

Сообщение кулер 23 » 25 фев 2010, 23:08

:oops: я в баскоме ничего вроде даже не ставлю :oops:
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение кулер 23 » 27 фев 2010, 14:45

:Yahoo!: У мя появился мозг я понял что надо делать с библиотекой :Yahoo!:
Аватара пользователя
кулер 23
 
Сообщения: 798
Зарегистрирован: 17 апр 2009, 19:44
Откуда: Югорск
Skype: rizhykot
ФИО: Аксютин Юрий

Re: Помогите код написать...

Сообщение galex1981 » 27 фев 2010, 16:21

Поздравляю! Может быть нам расскажешь свои мысли по этому поводу?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Пред.След.

Вернуться в МиниБот — национальный класс роботов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron