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

Наверное, сколько бы ни было человеку лет, ему все равно будет интересно поиграть игрушкой на радиоуправлении. К примеру возьмём машинку на радиоуправлении. Нету? Купи! Понимаю, дорого в магазине. Но на рынке, где я купил этого монстра себе зимой 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 (это конечно альфа версия но со своей основной обязанностью справляется на ура во всех ОС). Стоит лишь правильно подключить транзисторы в пульте с микросхемой(не спутайте ножки) а то когда нажмете вперед машина поедет назад. Программа 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

Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

U1A
МикросхемаMC145201
К561ИЕ10Q1-Q4
Биполярный транзисторКТ31024
D1
Выпрямительный диод1N40011
С1
Электролитический конденсатор1000 мкФ 16 В1
С2
Конденсатор0.1 мкФ1
R1, R3, R7, R8
Резистор4.7 кОм4
R2, R4
Резистор220 Ом2
R5, R6
Резистор10 кОм2
J1
РазьемDB-9F1

Пульт радиоуправления1
Для совместной привязки к схемеДобавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.