За основу взят микроконтроллер pic 16f84a. При помощи программы комп посылает на COM порт сигнал в PIC(на третью ногу ком порта) (через передатчик-приёмник). Чип принимает сигнал, декодирует и выдаёт это на своих выходах. Это заменило около 30 микросхем для этой функции Как понятно из схемы эта штука полностью универсальна и очень проста. Её можно использовать для многих других целей.
5-ый вывод пика на землю и 5-ую ногу кома. 22*к. Зашиваем в пик это, запускаем и радуемся .
Прога на VB, очень проста в понимании. Вы можете написать любой софт, а добывив датчики на робота и передая сигнал например в аудио потоке видео сигнала получаем обратную связь. И пишем софт который "думает". Чем сложнее софт и точнее датчики робот будет усовершентвоваться. имхо очень правильный подход.
Измените в исходниках MSComm1.CommPort = n где n номер кома куда прога выводит сигнал.
VB:
MSComm1.Settings = "9600,N,8,1": MSComm1.CommPort = 1: MSComm1.PortOpen = True: Sleep (1) MSComm1.Output = "command": Sleep (1)
'command - команда состоит из одного символа, включающего или отключающего "единицу" на соответствующем ему выходе МК.
PicBasic:
Symbol T2400 = 0 ' Driven True Symbol T1200 = 1 ' Driven True Symbol T9600 = 2 ' Driven True Symbol T300 = 3 ' Driven True
Symbol N2400 = 4 ' Driven Inverted Symbol N1200 = 5 ' Driven Inverted Symbol N9600 = 6 ' Driven Inverted Symbol N300 = 7 ' Driven Inverted
'INCLUDE "bs2defs.bas" trisa = %00010000 trisb = %00000000 b3 var byte loop: SERIN porta.4,N9600,b3 IF b3 = "0" THEN LOW 0 IF b3 = "1" THEN HIGH 0 IF b3 = "2" THEN LOW 1 IF b3 = "3" THEN HIGH 1 IF b3 = "4" THEN LOW 2 IF b3 = "5" THEN HIGH 2 IF b3 = "6" THEN LOW 3 IF b3 = "7" THEN HIGH 3
IF b3 = "8" THEN LOW 4 IF b3 = "9" THEN HIGH 4 IF b3 = "a" THEN LOW 5 IF b3 = "b" THEN HIGH 5 IF b3 = "c" THEN LOW 6 IF b3 = "d" THEN HIGH 6 IF b3 = "e" THEN LOW 7 IF b3 = "f" THEN HIGH 7 IF b3 = "g" THEN porta.0 = 0 IF b3 = "h" THEN porta.0 = 1 IF b3 = "i" THEN porta.1 = 0 IF b3 = "j" THEN porta.1 = 1 IF b3 = "k" THEN porta.2 = 0 IF b3 = "l" THEN porta.2 = 1 IF b3 = "m" THEN porta.3 = 0 IF b3 = "n" THEN porta.3 = 1
GOTO loop
|