roboforum.ru

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

Помогите с роботом

Re: Помогите с роботом

setar » 15 апр 2011, 21:07

у переменного резистора три ноги, сопротивление между двумя из них не изменяется при его вращении - это крайние точки.
оставшийся вывод это средняя точка, сопротивление между ней и одной из крайних ног будет увеличиваться при вращении , а со второй крайней соответственно уменьшаться (при вращении в том же направлении)
P.S. на словах наверное не понятно ?

Re: Помогите с роботом

Krish » 16 апр 2011, 14:25

Нет, в принципе, понятно. Спасибо.

Re: Помогите с роботом

Krish » 17 апр 2011, 15:37

Собрал механику+электронику, нашёл программу:
Код: Выделить всёРазвернуть
$regfile = "m16def.dat"                                      ' файл спецификации Меги16
$crystal = 16000000                                         ' указываем на какой частоте будем работать


'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.4 = Output : Drl Alias Portc.4                  'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.5 = Output : Drr Alias Portc.5                  'ногу сконфигурировали как выход и обозвали Drr
Config Pinc.3 = Output : Dre Alias Portc.3                  'ногу сконфигурировали как выход и обозвали Dre
Config Pinc.2 = Output : Drw Alias Portc.2                  'ногу сконфигурировали как выход и обозвали Drw
'----------------------------------------------------------------------------

Dim Speed As Byte
Speed = 200                                                 ' указываем скорость робота

Config Rc5 = Pinc.7
Enable Interrupts
Dim Address As Byte , Command As Byte
Print "Start"                                               ' выводим в терминал отладочное сообщение

Do
   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
       Waitms 0
  Elseif Command = 32 Then
      Gosub Прямо
       Waitms 0
   Elseif Command = 33 Then
      Gosub Назад
       Waitms 0
   Elseif Command = 17 Then
      Gosub Влево
       Waitms 0
   Elseif Command = 16 Then
      Gosub Вправо
       Waitms 0
   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

Влево:
   Drl = 0 : Drr = 1 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Вправо:
   Drl = 1 : Drr = 0 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Прямо:
  Drl = 1 : Drr = 0 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Назад:
   Drl = 0 : Drr = 1 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Стоп:
   Drl = 0 : Drr = 0 : Dre = 0 : Drw = 0 : Pwm1b = 0 : Pwm1a = 0:
Return

"Мозг" робота - атмега16
ДД - http://robotsspace.ucoz.ru/publ/7-1-0-50
Tsop модуль по datasheetу tsop1736
подключил ДД он начинает крутить мотор левый в одну сторону, почему ?
Я не уверен что правильно подключаю данный ДД... Помогите его правильно подключить...
Схемы рабочие...

Re: Помогите с роботом

Krish » 18 апр 2011, 19:58

Блин, запутался...
Целый день провел за программой... Не чего не получается... Я фьюзы на атмеги 16 не прошивал, от это влияет работа робота ?
Схему полностью проверил, всё работает! RC5 модуль собрал по даташиту tsop 1736...
ШИМ не использую... Помогите плиззззззззззз....
ДД подключаю по программе и схеме, всё правильно..
ДД проверил для робота BEAM, подключил фотодиод и светодиод без МК, работает! т.е. ДД живой на 100%
Может в программе что то не то? посмотрите плиз.
У меня только 3е теории:
1) У меня пульт не на 36khz
2) У меня программа не правильная..
3) У меня TSOP сгорел или не работает!
Уже на грани срыва... Может быть RC5 нужно подключать не по даташиту tsopa?
Порты проверил светодиодом.. работают шикарно!
Может подключить SHARP ? у меня он есть!
Код: Выделить всёРазвернуть
$regfile = "m16def.dat"                                     ' файл спецификации Меги8
$crystal = 16000000                    ' указываем на какой частоте будем работать

'----------------------------------------------------------------------------
Config Pina.1 = Output : Drl Alias Porta.1                  'ногу сконфигурировали как выход и обозвали Drl
Config Pina.2 = Output : Drr Alias Porta.2                  'ногу сконфигурировали как выход и обозвали Drr
Config Pina.3 = Output : Dre Alias Porta.3                  'ногу сконфигурировали как выход и обозвали Dre
Config Pina.4 = Output : Drw Alias PortA.4                  'ногу сконфигурировали как выход и обозвали Drw
'----------------------------------------------------------------------------

Dim Speed As Byte
Speed = 200                    ' указываем скорость робота

Config Rc5 = Pina.0
Enable Interrupts
Dim Address As Byte , Command As Byte
Print "Start"                    ' выводим в терминал отладочное сообщение

Do
    Gosub Прием_rc5
    If Command = 255 Then
       Gosub Стоп
        Waitms 0
   Elseif Command = 32 Then
       Gosub Прямо
        Waitms 0
    Elseif Command = 33 Then
       Gosub Назад
        Waitms 0
    Elseif Command = 17 Then
       Gosub Влево
        Waitms 0
    Elseif Command = 16 Then
       Gosub Вправо
        Waitms 0
    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

Влево:
    Drl = 0 : Drr = 1 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Вправо:
    Drl = 1 : Drr = 0 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Прямо:
   Drl = 1 : Drr = 0 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return

Назад:
    Drl = 0 : Drr = 1 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return

Стоп:
    Drl = 0 : Drr = 0 : Dre = 0 : Drw = 0 : Pwm1b = 0 : Pwm1a = 0:
Return

SAM_0192.JPG

SAM_0193.JPG

SAM_0194.JPG

Помогите, а то я уже в шоке!

Re: Помогите с роботом

osc » 18 апр 2011, 20:37

Было бы это на си...

Re: Помогите с роботом

Grofus » 18 апр 2011, 20:46

Я так понимаю у тебя на плате есть кварц на 16 МГц и он припаян к контроллеру. а знаешь ли ты что внешнее тактирование от кварца необходимо включать во фьюз битах.По умолчанию контроллер работает на 1 МГц.

Re: Помогите с роботом

Krish » 18 апр 2011, 21:00

Grofus писал(а):Я так понимаю у тебя на плате есть кварц на 16 МГц и он припаян к контроллеру. а знаешь ли ты что внешнее тактирование от кварца необходимо включать во фьюз битах.По умолчанию контроллер работает на 1 МГц.

Нет не знал.... Я с фьюзами никогда не работал... Я работаю в avr studio 4 я думал там при выборе МК всё автоматом ставится:( Спасибо, учту!
А если я не выбрал кварц на 16 Mhz из за этого могут быть неполадки в работе робота?

Re: Помогите с роботом

osc » 18 апр 2011, 21:37

Конечно будут неполадки, RC5 однозначно не будет работать из-за этого.

Re: Помогите с роботом

SkyStorm » 18 апр 2011, 23:11

Я конечно ничего не хочу сказать, но программа на Басике в Студии ... или я чего то не понимаю?!?

Re: Помогите с роботом

Krish » 19 апр 2011, 17:57

У меня программатор STK500 через USB и работает только в avr studio 4, но в нём очень скудный выбор fuse bit, да + atmega16 запорол, выбрал фьюз SPIEN, который не дает возможности программировать через SPI.
В какой программе лучше работать с STK500, пробовал в CodeVisionAVR но там STK500 через COM порт работает(

Re: Помогите с роботом

Radist » 19 апр 2011, 20:01

А что, разве программатор в системе видится не как виртуальный компорт?

Re: Помогите с роботом

osc » 19 апр 2011, 20:20

только в avr studio 4, но в нём очень скудный выбор fuse bit

Как раз в студии с фьюзами всё отлично сделали, в ней и работай с STK500.

Re: Помогите с роботом

Krish » 19 апр 2011, 20:51

Radist писал(а):А что, разве программатор в системе видится не как виртуальный компорт?

Мне говорили уже про это, как выглядит виртуальный компорт и как его использовать?

Re: Помогите с роботом

Radist » 20 апр 2011, 05:55

Втыкаете программатор в комп - в системе появляется новый компорт. Его номер задаете в программе-программаторе и вперед.

Re: Помогите с роботом

SkyZi » 10 авг 2012, 10:42

о.О А куда вы мальчика дели?:((
интересно чем все это закончилось...


Rambler\'s Top100 Mail.ru counter