Управление радиомоделью при помощи компьютера

11-02-2014, 15:54 От: admin Посмотрели: 4154

Наверное, сколько бы ни было человеку лет, ему все равно будет интересно поиграть игрушкой на радиоуправлении. К примеру возьмём машинку на радиоуправлении. Нету? Купи! Понимаю, дорого в магазине. Но на рынке, где я купил этого монстра себе зимой 2004 года, это обошлось в 270 рублей (без батареек). Батарейки использовать не рекомендую - лучше аккумуляторы. Себе я поставил никель-кадмиевые на 800мАч. У меня тачка поддерживает рулевое управление - влево/вправо и вперед/назад. То есть никаких неудобств и ограничений. На ковре не буксует. Преодолевает без проблем пороги и плинтусы до 2.5 см. Скорость - чуть быстрее шага. Прочность отличнейшая. Странно, но сборка китайская. За 270 рублей, я считаю ее просто находкой.

Так вот, просто ей управлять нет никакого драйва. Мой лозунг - "коннектим все к компу". И радиомашинка, кстати не исключение. И не надо думать что это будет сложно. Чтобы заставить комп управлять машиной нужно как-нибудь подключить пульт управления радиомодели к нему через что-нить. Проще всего через LPT, но это не по-продвинутому. Возьмем COM. Понимаю, вам хотелось USB, но это обойдется в копеечку, тк микруха переходник стоит 150 рублей. А если вы ее еще и спалите в процессе сборки, то суецида не избежать. Итак, COM - порт последовательный, поэтому с передачей сигналов на четыре ветви по двум проводам придется похитрить. Микруха к561ие10 стоит 8 рублей.

Распиновка COM-порта:
Распиновка RS232

Дело в том что мы же можем нажимать на рычаги пульта в различых комбинациях (тк Вперед&Лево ...) С компа же подается только питание +12вольт, один управляющий сигнал(в нашем случае), провод "земля" и провод обратной связи. Я решил эту проблему так. Поставил двоичный счетчик К561ИЕ10. Взгляните на схему.

Схема радиоуправления

Работа происходит следующим образом: компьютер посылает по одному проводу счетчику сигнал на прибавление единицы. На выходе счетчика (выводы 3.4.5.6) получаем комбинацию высокого/низкого уровня напряжения, которые идут на транзисторы, которые припаяны своим эмитером и колектором к пластинкам, либо контактам замыкаемым рычежками пульта. Стоит появиться на базе транзистора высокому уровню напряжения, он немедленно откроется "соединив" в пульте "что надо". Я не знаю насколько моя схема(в смысле пульт) частна. Не думаю, что пульты сильно отличаются. Скорее все они вообще делаются на одном заводе :). В данном случае рычажок замыекает минус батарейки пульта на определенную ножку микросхемы пульта. То есть надо использовать n-p-n транзисторы(обратная проводимость). Если же надо замыкать плюс на микруху (что маловероятно), то надо использовать (p-n-p) транзистор например (кт361). Диод перед микросхемой любой выпрямительный малогабаритный. Не забудьте про DCD провод, который припаивается к выводу №6 микрухи. Это обратная связь. Без нее комп не сможет обеспечить правильную работу счетчика, а следовательно и машинки. Ниже приведены исходные процедуры по управлению за тачкой. Но это не голимый делфи - здесь используестся компонент которого у вас наверняка нет. Называется он ComDrv32. Это для последовательного порта. Можете просто вникнуть в суть таботы драйвера. А для управления моделью можете скачать прогу SashRRC (это конечно альфа версия но со своей основной обязанностью справляется на ура во всех ОС). Стоит только правильно подключить транзисторы в пульте с микросхемой(не спутайте ножки) а то когда нажмете вперед машина поедет назад. Программа rrc написана мною только под эту схему:

procedure ResetCar; //полностью останавливает машину
var CycleCount:Integer;
begin
  if(rrcwindow.Com.Connected=false) then exit;
  
  if(lsCD in rrcwindow.Com.GetLineStatus=True) then
  begin
    CycleCount:=0;
    while(lsCD in rrcwindow.Com.GetLineStatus=True) do
    begin
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(True);  //Такт на счетчик
      rrcwindow.Com.ToggleRTS(True);  //Такт на счетчик
      
      CycleCount:=CycleCount+1;
      if(CycleCount>MaxCycleCount) then begin exit;end;
    end
  end
  else
  begin
  
    CycleCount:=0;
    while(lsCD in rrcwindow.Com.GetLineStatus=False) do
    begin
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
      rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
      
      CycleCount:=CycleCount+1;
      if(CycleCount>MaxCycleCount) then begin exit;end;
    end;
    
    CycleCount:=0;
    while(lsCD in rrcwindow.Com.GetLineStatus=True) do
    begin
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(False);
      rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
      rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
      
      CycleCount:=CycleCount+1;
      if(CycleCount>MaxCycleCount)then begin exit;end;
    end;
  end;
end;
  
procedure SendCommandToCar(chUp:boolean;chDown:boolean;chLeft:boolean;chRight:boolean); // Задаем нужную команду машине
var Checksuma:Integer;
x:Integer;
begin
  Checksuma:=0;
  ResetCAR;
  
  if(rrcwindow.Com.Connected=false)then exit;
  {добавь сист защиты от непр действий}
  
  if (chUp = True) then Checksuma:=Checksuma+2;
  if (chDown = True) then Checksuma:=Checksuma+1;
  if (chLeft = True) then Checksuma:=Checksuma+8;
  if (chRight = True) then Checksuma:=Checksuma+4;
  
  for x:=1 to Checksuma do //накрутим до нужного значения
  begin
    rrcwindow.Com.ToggleRTS(False);
    rrcwindow.Com.ToggleRTS(False);
    rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
    rrcwindow.Com.ToggleRTS(True); //Такт на счетчик
  end;
end;

Обновление от 04.10.2012

С момента публикации вышеприведенной  схемы в 2003 г. прошло очень много времени и кое-что поменялось с целью улучшения работы самой схемы. Например, старый вариант не работал на кабеле USB-COM. В новой версии ("v2.0 TXD") это устранено. Также переделана управляющая программа.

Схема радиоуправления

Схема позволяет синтезировать 4 независимых сигнала от COM порта компьютера, используя при этом минимум компонентов.

Сама схема питается от линии DTR (т.е. диод D1 играет роль защиты от обратной полярности). Перед "синтезированием" команды происходит сброс счётчика, путем подачи сигнала по линии RTS. Затем импульсами по линии TXD счетчик накручивается до нужного состояния.

Схему можно подключить, например, к пульту управления игрушкой, что и было сделано мной в далеком 2002 году. Выходные сигналы работают по принципу общий коллектор (open drain). Т.е. разбираем пульт - объединяем минусы схемы управления и батареи пульта. Контакты органов управления, замыкаемые кнопками пульта на "землю" подключаем к коллекторам соответствующих транзисторов (выбор транзисторов не критичен - это могут быть и КТ315 и C945, да хоть МП25 (привет из СССР!)

Схема доработана сравнительно недавно, связано это с неугасающим интересом к ней начинающих радиолюбителей. Но хорошая идея управлять от COM порта постоянно "борется" со временем. Да, новые интерфейсы диктуют нам свои нравы. Я имею ввиду, что сейчас очень редко удается найти COM порт на современном ПК. Тем не менее, есть специальный кабель USB-COM (можно поискать в компьютерных магазинах). Эта схема будет также хорошо работать и с этими кабелями.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Управление радиомоделью при помощи компьютера все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930