09.05.2014, 21:50 | #1 |
Senior Member
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0 |
Arduino Mega 2560 + TP-LINK MR3020
Всем привет!
Парни, я собираю машинку на колесах, использую Arduino Mega 2560, Motor Shield v1, TP-LINK MR3020, Веб камеру, кучу батареек, провода и, пусть и не совсем, прямые руки Опираюсь во всем на http://habrahabr.ru/post/153017/ Установил на роутер OpenWRT, вывел Uart, и подсоединил вот так: Uart - Mega RX - TX3 TX - RX3 залил скетч на дуину: #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 = 13; //встроенный светодиод (Будет мигать как только Ардуино получит данные с роутера) int incomingByte = 0; //в этой переменной храним поступившие данные int speedgo = 0; //переменная для хранения скорости движения Код:
void setup() { Serial3.begin(9600); //включаем передачу данных на скорости 9600 бит/c pinMode(13, OUTPUT); //указываем выход на пин 13 (Светодиод, индикатор данных) //pinMode(11, OUTPUT); //Выход для двигателя №1 (Скорость и направление) //pinMode(3, OUTPUT); //Выход для двигателя №2 (Скорость и направление) pinMode(15, INPUT); //RX pinMode(14, OUTPUT);//TX motor1.setSpeed(255); //Скорость движка №1 motor2.setSpeed(255); //Скорость движка №2 motor3.setSpeed(255); //Скорость движка №1 motor4.setSpeed(255); //Скорость движка №2 } void loop() { if(Serial3.available() > 0) //Если есть доступные данные, то считываем их { incomingByte = 0; incomingByte = Serial3.read(); //Присваиваем переменной incomingByte наши считанные данные //--- Делаем соответствующее действие --- if(incomingByte == 119) //Нажали кнопку W { digitalWrite(13, HIGH); //Зажигаем встроенный светодиод, так как пошло считывание данных motor1.run(FORWARD); //движемся вперед motor2.run(FORWARD); //движемся вперед motor3.run(FORWARD); //движемся вперед motor4.run(FORWARD); //движемся вперед delay(250); //Включаем на 250 милисек Serial3.println("Vpered"); //Печатает данные в порт } if(incomingByte == 115) //Нажали кнопку S { motor1.run(BACKWARD); //движемся назад motor2.run(BACKWARD); //движемся назад motor3.run(BACKWARD); //движемся назад motor4.run(BACKWARD); //движемся назад delay(250); //Включаем на 250 милисек Serial3.println("Nazad"); //Печатает данные в порт } if(incomingByte == 97) //Нажали кнопку A { motor2.run(FORWARD); //Повернем влево motor3.run(FORWARD); //Повернем влево motor1.run(RELEASE); //Останавливаем колеса motor4.run(RELEASE); //Останавливаем колеса Serial3.println("Vlevo"); //Печатает данные в порт } if(incomingByte == 100) //Нажали кнопку D { motor1.run(FORWARD); //Повернем вправо motor4.run(FORWARD); //Повернем вправо motor2.run(RELEASE); //Останавливаем колеса motor3.run(RELEASE); //Останавливаем колеса Serial3.println("Vpravo"); //Печатает данные в порт digitalWrite(13, LOW); //Тушим светодиод, так как чтение данных закончилось } //--- Мониторим присланные данные --- Serial3.print("Dannie: "); Serial3.println(incomingByte, DEC); //Пишем данные которые приняли в порт } } https://docs.google.com/file/d/0B44F...JPR0x5S1E/edit https://docs.google.com/file/d/0B44F...Axb20wNVk/edit (брал с хабра) как я понял, суть кода в том, что просто отправляет по нажатию на клавиши w,a,s,d соответственно w,a,s,d)) а дуина принимает их и обрабатывает, но вот проблема у меня ничего не работает(( колеса крутятся когда хотят, и куда хотят( так что парни, прошу у вас помощи! |
13.05.2014, 13:56 | #2 |
Junior Member
Регистрация: 13.05.2014
Сообщений: 4
Вес репутации: 0 |
Re: Arduino Mega 2560 + TP-LINK MR3020
GND между собой объединил? И еще - в Меге уровни 5вольт, а в роутере 3.3.
|
15.05.2014, 06:26 | #3 | |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Arduino Mega 2560 + TP-LINK MR3020
Цитата:
|
|
17.05.2014, 20:57 | #4 |
Senior Member
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0 |
Re: Arduino Mega 2560 + TP-LINK MR3020
gnd объединил, перестали хаотично запускаться моторчики) уже хорошо!
я пока что мегу и роутер питаю отдельно)) |
17.05.2014, 20:58 | #5 |
Senior Member
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0 |
Re: Arduino Mega 2560 + TP-LINK MR3020
как подключаешь? пожалуйста подскажи скетч который юзаешь и сайт с файлом .cgi
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|