Цитата:
Сообщение от cyberbot
3 компа, планшет, два ноута. 1 переходник USB-RS232. На работе еще этих переходников штук 10 можно найти. Я понимаю, что будь у меня пара USB/RS232, то все делается) Просто на работе я появлюсь через неделю и боюсь, к тому времени меня заставят отлаживать совсем другое )))
Ничего! Разберемся аналитически!!!
***
Вообщем разобрался!
Итак, обмен с ардуиной происходит по определённому прооколу (как отметили выше).
1) При нажатии кнопки происходит отправка в UART пакета из 8 байт: 7 байт префикса (ASCII коды след. символов: tx_com=) и восьмой байт - ASCII код нажатой кнопки.
2) При отжатии кнопки происходит отправка в UART пакета из 8 байт: 7 байт префикса (ASCII коды след. символов: tx_com=) и восьмой байт (ASCII код символа: х).
Считаю, что эту информацию надо вынести в топ этой темы как важная техническая информация.
Прошлая схема приёма у меня была неудачна и плохо работала если вдруг появлялся мусор в обмене. Я изменил схему для большей помехозащищенности.
В качестве функций у меня загорается светодиод, кроме функции stop - тогда он гаснет. Т.е. я ожидаю: нажимаю кнопку - светодиод горит, отпускаю кнопку - светодиод гаснет.
Проверяю на роутере. Светодиод загорается, если я нажму кнопку W. И иногда гаснет, когда убираю палец с кнопки. Никак не пойму почему у меня фильтруется вторая команда, отжатия кнопки. Браузер firefox. Попробовал на Opera - все нормально )))
А почему на firefox такая ерунда получается? Это лечится?
|
Цитата:
Сообщение от cyberbot
mebitek
А как я этот буфер смотреть-то буду со стороны роутера?
Я зашиваю свой скетч. С вашими изменениями. Ваши изменения - это просто данные читаются из буфера и отправляются обратно. Причем пачками по 8 байт.
Теперь я подключаюсь по telnet к роутеру.
В консоли ввожу: echo WWWWWWWW > /dev/ttyUSB0
Теперь я хочу посмотреть что обратно вернул роутер и набираю: cat /dev/ttyUSB0
И вижу что консоль висит с минуты две, потом появляется готовность ввода:
root@CyberWrt:/#. Где мои восемь восьмёрок обратно? КАК мне их увидеть на роутере? Если у меня это получится, то я сам могу все диагностировать.
В сериал мониторе все нормально. Отправляю два раза по WWWW и получаю обратно пакет из восьма штук W. Но не интересует сериал монитор - я в нем давно все отладил. У меня не получается принимать команды в веб морды именно от модуля CyberBot-2 (((
|
Здраствуйте! Абсолютно согласен, что это важно! Дело в том что, когда шлешь команду из одного символа например "фары" это символ "V" из отладочной консоли ардуины на РС или из Терминала CyberWrt, то светодиод срабатывает и вспыхивает четко и без глоков. Выслал 2 символа VV светодиод мигнул но не загорелся шлешь 3 символа VVV светодиод загорелся. Все работает стабильно! Но начинаешь слать эти команды из Веб морды CyberBot-2 сразу замечаешь баги, команда выполняется ардуиной через раз. Думаю это напрямую связано с префиксом который непонятно откуда берется веб мордой CyberBot-2.
записал я в ардуину вот такой вот скетч...
int serialData = 0;
int serialRDYtoSend = 0;
void setup(){
// Open serial connection.
Serial.begin(57600);
}
void loop(){
serialRead();
serialWrite();
}
void serialRead(void) {
if (Serial.available()) {
// Read byte
serialData = Serial.read();
serialRDYtoSend = 1;
}
}
void serialWrite(void) {
if (serialRDYtoSend) {
// Write byte + \n
Serial.write(serialData);
Serial.println();
serialRDYtoSend = 0;
}
}
С Этим скетчем ардуина становиться эхом, все что ей приходит она отправляет обратно.
потом этой командой инициализировал запись символов по порту
cat /dev/ttyACM0 > /tmp/arduino.dat
Жму кнопки на Веб морде CyberBot-2
Захожу в файл и вижу....
t
x
_
c
o
m
=
V
это значит все команды с таким префиксом tx_com=V.
команда отмены tx_comx.
Шлю команды из терминала. приходят символы.
V
V
V
или что угодно! Без всяких префиксов.Зачем этот префикс?И как его убрать из веб морды?Без него ардуина управляется стабильнее и без глюков, с ним через раз.