roboforum.ru

Технический форум по робототехнике.

CraftDuino + TP-Link MR3020

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

CraftDuino + TP-Link MR3020

Сообщение Goodwind32 » 22 фев 2014, 14:17

Здравствуйте! Помогите разобраться.

Имею роутер TP-Link MR3020 с прошивкой OR-WRT 0.76 и соединенный с ним CraftDuino через USB-порт роутера. Пытаюсь наладить общение с контроллером через последовательный порт. Роутер контроллер видит и устройство /dev/ttyUSB0 появляется. Делаю как в этой статье: http://robocraft.ru/forum/viewtopic.php ... 69&start=0. Загружаю скетч с миганием и отправкой символов в порт. Светодиод мигает, зеленый индикатор TX помаргивает. Вызываю команду
Код: Выделить всёРазвернуть
cat /dev/ttyUSB0

Приходит "H", затем "L" и всё останавливается. Зеленый индикатор мигать перестает, а светодиод продолжает мигать! Перемычку "Auto Reset" снимал, не помогло. Чувствую недостаток понимания как работает COM-порт... RTFM?

И сразу второй вопрос. Вот такой вот код в контроллере:

Код: Выделить всёРазвернуть
int led = 13;

void setup() {               
  pinMode(led, OUTPUT);     
  Serial.begin(9600);     
}

void loop() {
  char incomingByte;
  if (Serial.available() > 0)
  {
    incomingByte = Serial.read();
    if (incomingByte=='h')
    {
      digitalWrite(led, HIGH);   
      Serial.println("Led is ON");     
    }
    else
      if (incomingByte=='l')
      {
        digitalWrite(led, LOW);
        Serial.println("Led is OFF");   
      }
      else
     {
        Serial.print("Unexpected command: ");     
      Serial.println(incomingByte);     
     }
  }
delay(2000);   
}



должен зажигать светодиод при получении символа "h" из порта. И в терминале из Windows это работает.
Однако, вот такая команда из OR-WRT:

Код: Выделить всёРазвернуть
echo -n "h" > /dev/ttyUSB0


ничего не дает.
Пробовал инициализировать порт командой (из этой http://playground.arduino.cc//Interfacing/LinuxTTY статьи)
Код: Выделить всёРазвернуть
stty -F /dev/ttyUSB0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Ничего не дает.

Как вообще правильно организовывать обмен командами межу роутером и ардуино?
Goodwind32
 
Сообщения: 2
Зарегистрирован: 22 фев 2014, 14:03

Re: CraftDuino + TP-Link MR3020

Сообщение noonv » 22 фев 2014, 17:02

Как я уже писал - всё же для общения с контроллером лучше реализовать нормальную программу (ну или попробовать модуль для Lua :))
Аватара пользователя
noonv
 
Сообщения: 600
Зарегистрирован: 21 май 2007, 22:57
Откуда: Калининград
прог. языки: C++

Re: CraftDuino + TP-Link MR3020

Сообщение dccharacter » 22 фев 2014, 19:21

Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: CraftDuino + TP-Link MR3020

Сообщение Goodwind32 » 25 фев 2014, 11:52

noonv писал(а):Как я уже писал - всё же для общения с контроллером лучше реализовать нормальную программу (ну или попробовать модуль для Lua :))


Чтобы использовать упомянутую вами статью требуется освоить компиляцию (и я так понимаю кросс-компиляцию) программ для OpenWRT, что в данный момент пока не освоено. Неужели нет готового модуля для OpenWRT и примера его использования? Ведь задача тривиальна...
Goodwind32
 
Сообщения: 2
Зарегистрирован: 22 фев 2014, 14:03


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23