Arduino Mega 2560 + TP-LINK MR3020 + CyberWrt
- Войдите на сайт для отправки комментариев
Чт, 31/07/2014 - 15:07
Всем привет) установил прошивку 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); //Пишем данные которые приняли в порт
}
}
но ничего не работает((
А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.
А из консоли не проверяли? При нажатии на кнопки светодиод моргает?
Для чего драйвер FTDI установили? Он очень много места занимает
А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.
Да Вы просто телепат.
А к компутеру подключаете то все работает? значит проблема в роутере и в его прошивке.
всмысле к компьютеру?) и что подключаю? роутер или ардуино?
А из консоли не проверяли? При нажатии на кнопки светодиод моргает?
Для чего драйвер FTDI установили? Он очень много места занимает
моргают светодиоды на ардуине, а вот мой 53 светодиод молчит(
Если светодиоды моргают, то значит роутер обрабатывает нажатия и шлет их адуине
А какие светодиоды мргают?
Если светодиоды моргают, то значит роутер обрабатывает нажатия и шлет их адуине
А какие светодиоды мргают?
да, это я понимаю))

когда данные не передаю, горит L и TX
когда передаю (т.е. нажимаю клавиши в модуле робот) ТХ тухнет и начинает моргать RX
когда заканчиваю передавать моргает L
разобрался со всем) если что, вот тут помогли http://cyber-place.ru/showthread.php?t=1325