Занимательная техника

| Книги | Электроника | Транзисторы | Диоды| Автоэлектроника | Микросхемы | Программы | Телефония | Медицина | Радиомикрофоны | Модемы| Аккумуляторы | Компьюторы | Регуляторы | Телевизоры| Измерители | Радиоуправление |

English

Меню страницы

Главная

Книги и статьи
Рефераты
Полезные ссылки

Бытовая электроника
Автоэлектроника
Электроника для медицины
Радиомикрофоны
Телефония
Регуляторы
Измерительная техника

Зарядные устройства


Микросхемы
Транзисторы

Диоды


Программы
Аккумуляторы
Модемы
Компьютерная электроника

Устройства радиоуправления

Ремонт телевизоров

Карта сайта






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

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

Чтобы заставить компьютер управлять машиной нужно как-нибудь подключить пульт управления радиомодели к нему . Проще всего через LPT но это не по продвинутому. Возьмем COM. Понимаю, вам хотелось USB, но это обойдется в копеечку. Итак, COM - порт последовательный, поэтому с передачей сигналов на четыре ветви по двум проводам придется похитрить. Распиновка COM-порта приведена на Рис.1.


Распиновка RS232

Рис.1. Управление при помощи компьютера. Схема распайки COM-порта.

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

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

Рис.2. Управление при помощи компьютера. Схема .

Работа происходит следующим образом: компьютер посылает по одному проводу счетчику сигнал на прибавление единицы. На выходе счетчика (выводы 3.4.5.6) получаем комбинацию высокого/низкого уровня напряжения, которые идут на транзисторы, которые припаяны своими эмиттером и коллектором к пластинкам, либо контактам замыкаемым рычажками пульта. Стоит появиться на базе транзистора высокому уровню напряжения, он немедленно откроется "соединив" в пульте "что надо". Я не знаю насколько моя схема оригинальна. Не думаю, что пульты сильно отличаются. Скорее все они вообще делаются на одном заводе :). В данном случае рычажок замыкает минус батарейки пульта на определенную ножку микросхемы пульта. То есть надо использовать n-p-n транзисторы.

Если же надо замыкать плюс , то надо использовать p-n-p транзистор например(кт361). Диод перед микросхемой любой выпрямительный малогабаритный. Не забудьте про DCD провод, который припаивается к выводу №6 микросхемы. Это обратная связь. Без нее компьютер не сможет обеспечить правильную работу счетчика, а следовательно и машинки. Ниже приведены исходные процедуры по управлению за тачкой. Здесь используется компонент которого у вас наверняка нет. Называется он ComDrv32. Это для последовательного порта. Можете просто вникнуть в суть работы драйвера. А для управления моделью можете скачать программу (это конечно альфа версия но со своей основной обязанностью справляется на ура во всех ОС). Стоит только правильно подключить транзисторы в пульте с микросхемой (не спутайте ножки) . Программа 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;

Скачать программу.

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

Реклама

Bottom page

Copyright © Creatiff.Realax.ru, 2012. Все права защищены.
Разрешается републикация материалов сайта в Интернете с обязательным указанием активной ссылки на сайт: http://creatiff.realax.ru и со ссылкой на автора материала (указание автора, его сайта)

Владелец данного сайта не несёт никакой ответственности за содержание расположенного здесь материала, а также за результаты использования информации, размещённой на этом сайте.