|
|
Опции темы | Поиск в этой теме | Опции просмотра |
18.10.2014, 23:52 | #1 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
передать нажатия клавиатуры через wifi на arduino+mr3020
всем привет.
как бы грамотно передавать кнопки "вперед-назад-вправо-влево", нажатые на клавиатуре компа на arduino которая подключена по USB к роутеру mr3020, которы в свою очередь подключен к wifi сети, в которой находится наш комп. то есть есть wifi сетка, в ней комп и роутер, к роутеру подключена ардуина с сервоприводами. хочется рулить сервами, нажимая кнопки на клавиатуре. |
19.10.2014, 00:50 | #2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
Можете посмотреть в коде модуля "CyberBot2"
|
19.10.2014, 12:52 | #3 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
чтото я не понял, как там обеспечивается передача команд через wifi..
и главное - каким образом в ардуино попадают команды от клавиатуры из браузера.. UPD: насколько я пока понял - дело в вашем "модуле Веб-камеры".. он, в связке с прошивкой CyberWRT, каким-то образом обеспечивает перехват нажатий на клавиатуре. Вероятно есть какойто код в странице самого модуля, там где кнопки "вперед-назад-etc" и область отображения видео картинки. то есть когда это окно в фокусе - нажатия клавиатуры перехватываются, передаются на serial и обрабатываются уже скетчем. в вашем случае, с помощью CyberLib, но полагаю, можно и без него обойтись. главное перехватить нажатие кнопки в браузере и передать код кнопки в скетч. в принципе меня бы это тоже устроило, если я бы я понимал как вы в браузере перехватываете события клавиатуры. .. я уже думал писать какойто бинарник под openwrt чтобы он слушал сокет на стороне роутера, и какуюто мини-программку на строне компа - чтобы она слашула клавиатуру и передавала нажатия кнопок, через wifi на роутер )) Последний раз редактировалось d00m; 19.10.2014 в 13:41. |
19.10.2014, 16:23 | #4 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
похоже не все так просто..
уже понимаю что модуль Вебкамеры ни причем. все эти операции перехвата и обработки клавиш клавиатуры находятся в модуле CyberBot.. + тесная связка с веб сервером прошивки CyberWRT.. вот мне и нужно эту часть повторить на openwrt trunk. куда копать ? я уже понял, что важный файлы index.cgi и carduino.spybot.js но что надо сделать чтобы их прикрутить к обычному uhttpd ? ктонить может выложить /etc/config/uhttpd из роутера прошитого CyberWRT ? мне кажется там должны быть какието специальные опции list interpretener для того чтобы этот веб сервер обрабатывал cgi файлы |
19.10.2014, 19:35 | #5 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
Дык поставь киберврт, на кой тебе транк?
Последний раз редактировалось stD; 19.10.2014 в 19:40. |
19.10.2014, 20:06 | #6 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
ну так оно проще купить чтото готовое..
в общем распаковал прошивку CyberWrt-v1.4.bin - смотрю как оно устроено.. UPD: все же очень интересно - почему index.cgi ? /cgi-bin/modules/CyberBot2/index.cgi не html, не php.. Последний раз редактировалось d00m; 19.10.2014 в 20:53. |
19.10.2014, 21:44 | #7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
Для PHP нужно PHP пакеты устанавливать, а они очень тяжелые и не влезут на внутреннюю память роутера. Поэтому все сделано на *.cgi
HTML коди можно в cgi тоже писать |
19.10.2014, 21:54 | #8 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
понятно, спасибо.
а можете еще объяснить что значит этот код: Код:
<div id="forward" onmousedown="submitUART('W')" onmouseup="submitUART('x')">Вперед</div> я еще както понимаю, что в каждой кнопке своя буква - W S A D.. но почему при ОТПУСКАНИИ клавиши мышки отправляется одинаковый код ? хотя это может какаято заглушка.. и я так понимаю, клавиатуру оно слушает за счет этого: Код:
<body onkeypress="return keyPressed(event)" onkeyup="return keyUp(event)" onload="setXformClass ()"> .............. </body> |
19.10.2014, 21:58 | #9 | ||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
Цитата:
Цитата:
|
||
19.10.2014, 22:24 | #10 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Re: передать нажатия клавиатуры через wifi на arduino+mr3020
ага, тоже понятно, спасибо..
чую, буду много спрашивать таких примитивных вещей. вот например, у вас в файле uart.cgi такой код: Код:
root@hobot:~# cat /www/cgi-bin/modules/CyberBot2/uart.cgi #!/bin/sh #Copyright (C) 2013 cyberwrt.ru, cyber-place.ru, mp3car.ru echo $QUERY_STRING > /dev/ttyUSB0 echo $QUERY_STRING > /dev/ttyACM0 echo $QUERY_STRING > /dev/ttyATH0 echo "202" и почемуто у меня с echo не получается передать команду серву: root@hobot:~# echo cl > /dev/ttyUSB0 серва не двигается но получается с printf root@hobot:~# printf cl > /dev/ttyUSB0 все нормально отрабатывает. строка инициализации в rc.local сформирована с помощью вашего модуля Драйвер_FTDI (я все таки установил некоторые ваши модули на свой openwrt trunk) Код:
root@hobot:~# cat /etc/rc.local stty -F /dev/ttyUSB0 cs8 115200 clocal ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl # Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. exit 0 |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|