Arduino Mega 2560 + TP-LINK MR3020 + CyberWrt

NeaWeaR
Offline
Зарегистрирован: 11.04.2014

Всем привет) установил прошивку CyberWrt на роутер MR3020, установил модуль робот, драйвера USB - Serial, ACM, FTDI, залил скетч на ардуину: 

соединяю ардуину и роутер через usb

#include <AFMotor.h> // Подключаем библиотеку для управления двигателями 

AF_DCMotor motor1(1); //создаем мотор №1 
AF_DCMotor motor2(2); //создаем мотор №2 
AF_DCMotor motor3(3); //создаем мотор №1 
AF_DCMotor motor4(4); //создаем мотор №2 
int led = 53; //встроенный светодиод (Будет мигать как только Ардуино получит данные с роутера)
int incomingByte = 0; //в этой переменной храним поступившие данные

void setup() 
{
  Serial.begin(9600); //включаем передачу данных на скорости 9600 бит/c
  pinMode(led, OUTPUT); //указываем выход на пин 53 (Светодиод, индикатор данных)
  motor1.setSpeed(255); //Скорость движка №1
  motor2.setSpeed(255); //Скорость движка №2
  motor3.setSpeed(255); //Скорость движка №1
  motor4.setSpeed(255); //Скорость движка №2
}

void loop() 
{ 
  if(Serial.available() > 0) //Если есть доступные данные, то считываем их
  {  
    incomingByte = 0;
     incomingByte = Serial.read(); //Присваиваем переменной incomingByte наши считанные данные 
     
     //--- Делаем соответствующее действие ---
     if(incomingByte == 119) //Нажали кнопку W
     {
       digitalWrite(led, HIGH); //Зажигаем встроенный светодиод, так как пошло считывание данных
       motor1.run(FORWARD); //движемся вперед
       motor2.run(FORWARD); //движемся вперед
       motor3.run(FORWARD); //движемся вперед
       motor4.run(FORWARD); //движемся вперед
       delay(250); //Включаем на 250 милисек 
       Serial.println("Vpered"); //Печатает данные в порт 
     }
     if(incomingByte == 115) //Нажали кнопку S
     {
       motor1.run(BACKWARD); //движемся назад
       motor2.run(BACKWARD); //движемся назад
       motor3.run(BACKWARD); //движемся назад
       motor4.run(BACKWARD); //движемся назад
       delay(250); //Включаем на 250 милисек  
       Serial.println("Nazad"); //Печатает данные в порт
     }
     if(incomingByte == 97) //Нажали кнопку A
     {
       motor2.run(FORWARD); //Повернем влево
       motor3.run(FORWARD); //Повернем влево
       
       motor1.run(RELEASE); //Останавливаем колеса
       motor4.run(RELEASE); //Останавливаем колеса
       Serial.println("Vlevo"); //Печатает данные в порт
     }
     if(incomingByte == 100) //Нажали кнопку D
     {
       motor1.run(FORWARD); //Повернем вправо
       motor4.run(FORWARD); //Повернем вправо
       
       motor2.run(RELEASE); //Останавливаем колеса
       motor3.run(RELEASE); //Останавливаем колеса
       Serial.println("Vpravo"); //Печатает данные в порт 
       digitalWrite(led, LOW); //Тушим светодиод, так как чтение данных закончилось
     }
     //--- Мониторим присланные данные ---  
     Serial.print("Dannie: ");
     Serial.println(incomingByte, DEC); //Пишем данные которые приняли в порт
  }             
}

но ничего не работает((

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

А из консоли не проверяли? При нажатии на кнопки светодиод моргает?

Для чего драйвер FTDI установили? Он очень много места занимает

carduino.ru
Offline
Зарегистрирован: 06.12.2011

NeiroN пишет:

А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.

Да Вы просто телепат. 

NeaWeaR
Offline
Зарегистрирован: 11.04.2014

NeiroN пишет:

А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.

всмысле к компьютеру?) и что подключаю? роутер или ардуино?

NeaWeaR
Offline
Зарегистрирован: 11.04.2014

carduino.ru пишет:

А из консоли не проверяли? При нажатии на кнопки светодиод моргает?

Для чего драйвер FTDI установили? Он очень много места занимает

моргают светодиоды на ардуине, а вот мой 53 светодиод молчит(

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Если светодиоды моргают, то значит роутер обрабатывает нажатия и шлет их адуине

А какие светодиоды мргают?

NeaWeaR
Offline
Зарегистрирован: 11.04.2014

carduino.ru пишет:

Если светодиоды моргают, то значит роутер обрабатывает нажатия и шлет их адуине

А какие светодиоды мргают?

да, это я понимаю)) 
когда данные не передаю, горит L и TX

когда передаю (т.е. нажимаю клавиши в модуле робот) ТХ тухнет и начинает моргать RX

когда заканчиваю передавать моргает L

NeaWeaR
Offline
Зарегистрирован: 11.04.2014

разобрался со всем) если что, вот тут помогли http://cyber-place.ru/showthread.php?t=1325