Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.05.2014, 21:50   #1
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию 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); //Пишем данные которые приняли в порт
  }             
}
а на роутере заменил два файла index.html, serial.cgi
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))
а дуина принимает их и обрабатывает, но вот проблема у меня ничего не работает((
колеса крутятся когда хотят, и куда хотят(
так что парни, прошу у вас помощи!
NeaWeaR вне форума   Ответить с цитированием
Старый 13.05.2014, 13:56   #2
MaxSoft
Junior Member
 
Регистрация: 13.05.2014
Сообщений: 4
Вес репутации: 0
MaxSoft is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020

GND между собой объединил? И еще - в Меге уровни 5вольт, а в роутере 3.3.
MaxSoft вне форума   Ответить с цитированием
Старый 15.05.2014, 06:26   #3
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020

Цитата:
Меге уровни 5вольт, а в роутере 3.3.
Я атмегу168 подключаю напрямую к уарту. Всё робит.
stD вне форума   Ответить с цитированием
Старый 17.05.2014, 20:57   #4
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020

gnd объединил, перестали хаотично запускаться моторчики) уже хорошо!
я пока что мегу и роутер питаю отдельно))
NeaWeaR вне форума   Ответить с цитированием
Старый 17.05.2014, 20:58   #5
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020

как подключаешь? пожалуйста подскажи скетч который юзаешь и сайт с файлом .cgi
NeaWeaR вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:37. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика