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

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

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

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

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

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

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

Скачать файлы к проекту

Будут вопросы – пиши на sash_g87 {собака} mail.ru


Категория: Аппаратура радиоуправления моделями
Метки:

Написать коментарий

*
= 3 + 1

Добавить изображение

Последние статьи