roboforum.ru

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

Дистанционное управление роботом

Дистанционное управление роботом

Dare » 09 июн 2008, 02:56

Ребята помогите инфой по дистанционному управлению роботом,желательно не просто словами а конкретными устройствами с схемами и програмамми.Буду ОООООЧЕНЬ признателен,заранее спасибо!

Re: Дистанционное управление роботом

FireFly » 09 июн 2008, 03:45

Город проживания?
Конкретнее?

Re: Дистанционное управление роботом

EdGull » 09 июн 2008, 08:54

Опс! А у нас всё готово к твоему приходу... :D
Если заполнишь город, то можешь смотреть здесь [[Задание№1-4]]

Re: Дистанционное управление роботом

alegz » 09 июн 2008, 18:45

Меня вот тоже интересует такая фишка: допустим управлять роботом с обычного пульта через ИК. Сделать режим обучения, где тыкая на кнопки запоминать их в EEPROM, что будет соответствовать определенным движениям. Есть информация о том как это сделать? Я так понял TSOP нужен. как там кодируются сигналы? Спасибо.

Re: Дистанционное управление роботом

Myp » 09 июн 2008, 19:24

как работает TSOP в поиск по форуму сто раз обсуждали
по вопросу ДУ кокнретный пример в задаче к миниботу

Re: Дистанционное управление роботом

Dare » 10 июн 2008, 02:27

город написал) и всё же схем я не увидел(если не сложно ткните меня лицом) :pardon:

Re: Дистанционное управление роботом

EdGull » 10 июн 2008, 05:54

Урок был к чему?
К МиниБоту!
Значит ищи схему к МиниБоту!
Или за тебя может его еще и спаять???!!!
Так не поверишь! Уже спаяли!!!
Ждет тебя уже спаяный всего за 500р.!!!

Re: Дистанционное управление роботом

SkyStorm » 10 июн 2008, 09:50

EdGull - спокойнее )))

alegz - Тыкаем носом в [[Категория:МиниБот]] смотри читай.
Там и схема и примеры какраз в той струе что тебя интересует.

Re: Дистанционное управление роботом

mkor » 10 июн 2008, 14:30

Кстати, насчет GetRC5 из Bascom AVR.

Собрал одного Минибота, вместо TSOP 1833 поставил 1736(где-то на форуме читал, что экспериментально подтверждена работоспособность), правда пришлось ему ноги повыкручивать из-за другой цоколевки. Так вот, возникла необходимость определения кодов кнопок пульта. На макетке собрал схему (Мега8 с внутренним генератором на 1 Мгц, на весь порт D навешал светодиодов, TSOP по типовой схеме подключил на PC2), написал программку
Код: Выделить всёРазвернуть
$regfile = "m8def.dat"                                      
$crystal = 1000000                                         
Config Portd.0 = Output                                   
Config Portd.1 = Output                                     
Config Portd.2 = Output                                   
Config Portd.3 = Output                           
Config Portd.4 = Output                                   
Config Portd.5 = Output                                 
Config Portd.6 = Output                                 
Config Portd.7 = Output                                 

Config Rc5 = Pinc.2
Enable Interrupts

Dim Address As Byte , Command As Byte


Do

   Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
      Command = Command And &B01111111
      Portd = Bin(command)
      Waitms 500

   End If

   If Command = 255 Then
      Portd = &B10000001
      Waitms 100
      Portd = &B00000000
   End If

Loop



Результат нулевой - команды не отображаются. Но при нажатии на кнопки пульта моргание крайних светодиодов ускоряется - т.е. чего-то принимается. Кто работал с бейсиком - чем это можно победить?

UPD. Подумал, что из-за тактовой частоты. Менял 1,2,4,8 МГц (все внутренний генератор) - не помогло. Да и в хелпе бейсика про зависимость от частоты ничего не сказано.
Последний раз редактировалось mkor 10 июн 2008, 14:37, всего редактировалось 1 раз.

Re: Дистанционное управление роботом

EdGull » 10 июн 2008, 14:36

а я курс для начинающих как раз по управлению с ИК-пульта кому писал?

Re: Дистанционное управление роботом

mkor » 10 июн 2008, 14:47

так с него и начал. Там на выходе из GetRC5 получается код адреса и код команды. У меня после строчки "Command = Command And &B01111111
" Command всегда равно 48 (110000)

Re: Дистанционное управление роботом

EdGull » 10 июн 2008, 14:59

тогда для начала нпиши код что если хоть чё-то пришло, то моргнуть светодиодом.
кстати в твоем коде он никогда не моргнет

Добавлено спустя 3 минуты 6 секунд:
Config Portd.0 = Output
а откуда ты взял такую строчку конфигирования ноги?
так никогда не заработает!

Добавлено спустя 6 минут 37 секунд:
Ты ж говорил что Задание№3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=- читал!!!!

Re: Дистанционное управление роботом

mkor » 10 июн 2008, 15:15

EdGull писал(а):тогда для начала нпиши код что если хоть чё-то пришло, то моргнуть светодиодом.


Вот, моргает на каждое нажатие

Код: Выделить всёРазвернуть
$regfile = "m8def.dat"                                  
$crystal = 1000000                                       

Config Pind.0 = Output : Led0 Alias Portd.0             
Config Pind.1 = Output : Led1 Alias Portd.1               
Config Pind.2 = Output : Led2 Alias Portd.2             
Config Pind.3 = Output : Led3 Alias Portd.3       
Config Pind.4 = Output : Led4 Alias Portd.4           
Config Pind.5 = Output : Led5 Alias Portd.5         
Config Pind.6 = Output : Led6 Alias Portd.6         
Config Pind.7 = Output : Led7 Alias Portd.7         

Config Pinc.2 = Input : Tsop_36 Alias Pinc.2
'-------------------------------------------------------------'


Do

   If Tsop_36 = 0 Then
      Led7 = 1
      Waitms 50
   Else
      Led7 = 0
      Waitms 50
    End If

Loop


EdGull писал(а):Config Portd.0 = Output
а откуда ты взял такую строчку конфигирования ноги?
так никогда не заработает!


Сначала были только примеры кодов на Си, вот в голове и застряло.

Re: Дистанционное управление роботом

EdGull » 10 июн 2008, 16:04

Ох уж мне это ваше си ... :-)
ну и чё дальше хочешь?

Re: Дистанционное управление роботом

mkor » 10 июн 2008, 16:31

Хочу много чего :) Для начала хотелось бы, чтобы сигналы от пульта распознались:
Код: Выделить всёРазвернуть
$regfile = "m8def.dat"
$crystal = 1000000

Config Pind.0 = Output : Led0 Alias Portd.0
Config Pind.1 = Output : Led1 Alias Portd.1
Config Pind.2 = Output : Led2 Alias Portd.2
Config Pind.3 = Output : Led3 Alias Portd.3
Config Pind.4 = Output : Led4 Alias Portd.4
Config Pind.5 = Output : Led5 Alias Portd.5
Config Pind.6 = Output : Led6 Alias Portd.6
Config Pind.7 = Output : Led7 Alias Portd.7

'Config Pinc.2 = Input : Tsop_36 Alias Pinc.2

Config Rc5 = Pinc.2
Enable Interrupts

Dim Address As Byte , Command As Byte

Do

   Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
      Command = Command And &B01111111
      Led4 = 1
      Waitms 300
      Led4 = 0
   End If

'   If Command = 255 Then
'      Led5 = 1
'      Waitms 10
'      Led5 = 0
'   End If

'   If Address = 255 Then
'      Led3 = 1
'      Waitms 10
'      Led3 = 0
'   End If

Loop

Пока никак не хочет... Если раскомментировать два последних If, то Led3 и Led5 весело моргают. Led4 на пульт не реагирует никак.


cron
Rambler\'s Top100 Mail.ru counter