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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2014, 10:41   #1
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
Сообщение от Admin Посмотреть сообщение
У Вас 4 мотора?
Постарайтесь отвечать подробнее, что бы я смог дать Вам правильный ответ
да, 4 DC мотора)) все подключены к мотор шилду, мотор шилд сверху ардуины бутербродом)
буду стараться)
NeaWeaR вне форума   Ответить с цитированием
Старый 06.08.2014, 10:48   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Для обьединения скетчей нужно добавить функции управления моторами

PHP код:
void robot_go()
      {
       
motor1.run(FORWARD); //движемся вперед
       
motor2.run(FORWARD); //движемся вперед
       
motor3.run(FORWARD); //движемся вперед
       
motor4.run(FORWARD); //движемся вперед
     
}

void robot_back()
     {
       
motor1.run(BACKWARD); //движемся назад
       
motor2.run(BACKWARD); //движемся назад
       
motor3.run(BACKWARD); //движемся назад
       
motor4.run(BACKWARD); //движемся назад
     
}

void robot_left()
     {
       
motor2.run(FORWARD); //Повернем влево
       
motor3.run(FORWARD); //Повернем влево 
     
}

void robot_right()
     {
       
motor1.run(FORWARD); //Повернем вправо
       
motor4.run(FORWARD); //Повернем вправо    
     
}

void robot_stop()
{
       
motor1.run(RELEASE); //Останавливаем колеса
       
motor2.run(RELEASE); //Останавливаем колеса
       
motor3.run(RELEASE); //Останавливаем колеса
       
motor4.run(RELEASE); //Останавливаем колеса

Admin вне форума   Ответить с цитированием
Старый 06.08.2014, 10:58   #3
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
Сообщение от Admin Посмотреть сообщение
Для обьединения скетчей нужно добавить функции управления моторами
а эти объявления функций в библиотеку добавить? я пробовал на типе этого, вот:

PHP код:
#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//в этой переменной храним поступившие данные
int speedgo 0//переменная для хранения скорости движения

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

void loop() 

  if(
Serial.available() > 0
   { 
     
digitalWrite(ledHIGH); //Зажигаем встроенный светодиод
     
incomingByte Serial.read();
     switch(
incomingByte){
      case 
'w':{
       
motor1.run(FORWARD); //движемся вперед
       
motor2.run(FORWARD); //движемся вперед
       
motor3.run(FORWARD); //движемся вперед
       
motor4.run(FORWARD); //движемся вперед
       
break;
      } 
      case 
'a':{
       
motor2.run(FORWARD); //Повернем влево
       
motor3.run(FORWARD); //Повернем влево
       
       
motor1.run(BACKWARD); //Останавливаем колеса
       
motor4.run(BACKWARD); //Останавливаем колеса
       
delay(250); //Включаем на 250 милисек
       
break;
      }
      case 
's':{
       
motor1.run(BACKWARD); //движемся вперед
       
motor2.run(BACKWARD); //движемся вперед
       
motor3.run(BACKWARD); //движемся вперед
       
motor4.run(BACKWARD); //движемся вперед
       
break;
      }
      case 
'd':{
       
motor1.run(FORWARD); //Повернем вправо
       
motor4.run(FORWARD); //Повернем вправо
       
       
motor2.run(BACKWARD); //Останавливаем колеса
       
motor3.run(BACKWARD); //Останавливаем колеса
       
break;
      }
      case 
'x':{
       
motor1.run(RELEASE);
       
motor2.run(RELEASE);
       
motor3.run(RELEASE); 
       
motor4.run(RELEASE); 
       break;
      }
     }
     
digitalWrite(ledLOW); //Зажигаем встроенный светодиод
    
}             

по сути то же самое, что и в вашем коде, только вместо вызова функций сразу код выполнения) мне бы именно с Dx_high, Dx_low чтобы работал)

Последний раз редактировалось NeaWeaR; 06.08.2014 в 11:10.
NeaWeaR вне форума   Ответить с цитированием
Старый 06.08.2014, 10:54   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

главный цикл будет выглядеть вот так

PHP код:
void loop()  
{  
  if (
Serial.available()) //если что то пришло
  
{  
    
inByte Serial.read(); 
    switch (
inByte)  //смотрим какая команда пришла
    
{  
        case 
'x':  //стор
          
robot_stop();
        break; 
        
        case 
'W':  //вперед
          
robot_go();  
        break;  
        
        case 
'D':  //лево
          
robot_left(); 
        break;

        case 
'A'//право
          
robot_right(); 
        break; 
        
        case 
'S':  //назад
          
robot_back(); 
        break;      
    }          
  } 

Секция setup остается без изменений
Admin вне форума   Ответить с цитированием
Старый 06.08.2014, 11:01   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Для этого придется из библиотеки выносить все нужные Вам функции и работу с пинами изменять на Dx_high, Dx_low
Admin вне форума   Ответить с цитированием
Старый 06.08.2014, 11:05   #6
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
Сообщение от Admin Посмотреть сообщение
Без наличия шилда я не смогу что то написать.
я просто вас не совсем понял) получается два файла чтоли подключать? оО
CyberLib + AFMotor?

вы сами сказали адаптировать ваш скетч, а он только с библиотекой CyberLib) толку тогда то что я свой скетч впихну в ваш?)
NeaWeaR вне форума   Ответить с цитированием
Старый 06.08.2014, 11:10   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Можете проверить скечь?
Я хочу его в тему WiFi робота добавить
PHP код:
#include <AFMotor.h> // Подключаем библиотеку для управления двигателями 

AF_DCMotor motor1(1); //создаем мотор №1 
AF_DCMotor motor2(2); //создаем мотор №2 
AF_DCMotor motor3(3); //создаем мотор №1 
AF_DCMotor motor4(4); //создаем мотор №2 

int inByte//в этой переменной храним поступившие данные
int speedgo//переменная для хранения скорости движения

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

void loop()  
{  
  if (
Serial.available()) //если что то пришло
  
{  
    
inByte Serial.read(); 
    switch (
inByte)  //смотрим какая команда пришла
    
{  
        case 
'x':  //стор
          
robot_stop();
        break; 
        
        case 
'W':  //вперед
          
robot_go();  
        break;  
        
        case 
'D':  //лево
          
robot_left(); 
        break;

        case 
'A'//право
          
robot_right(); 
        break; 
        
        case 
'S':  //назад
          
robot_back(); 
        break;      
    }          
  } 


void robot_go()
      {
       
motor1.run(FORWARD); //движемся вперед
       
motor2.run(FORWARD); //движемся вперед
       
motor3.run(FORWARD); //движемся вперед
       
motor4.run(FORWARD); //движемся вперед
     
}

void robot_back()
     {
       
motor1.run(BACKWARD); //движемся назад
       
motor2.run(BACKWARD); //движемся назад
       
motor3.run(BACKWARD); //движемся назад
       
motor4.run(BACKWARD); //движемся назад
     
}

void robot_left()
     {
       
motor2.run(FORWARD); //Повернем влево
       
motor3.run(FORWARD); //Повернем влево 
     
}

void robot_right()
     {
       
motor1.run(FORWARD); //Повернем вправо
       
motor4.run(FORWARD); //Повернем вправо    
     
}

void robot_stop()
{
       
motor1.run(RELEASE); //Останавливаем колеса
       
motor2.run(RELEASE); //Останавливаем колеса
       
motor3.run(RELEASE); //Останавливаем колеса
       
motor4.run(RELEASE); //Останавливаем колеса

Admin вне форума   Ответить с цитированием
Старый 06.08.2014, 11:18   #8
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
Сообщение от Admin Посмотреть сообщение
Можете проверить скечь?
Я хочу его в тему WiFi робота добавить
Всё зашибись работает)) даже у меня
только я скорость поменял на 9600) у меня такая стоит)

и кстати чтобы поворачивал, не знаю как у вас, но у меня надо чтобы правые колеса крутились в одну сторону, а левые в другую)
NeaWeaR вне форума   Ответить с цитированием
Старый 06.08.2014, 11:27   #9
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

кстати не могу понять, почему у меня на скорости 57600 не работает?(
хотя поменял на 57600 и в скетче и в драйвере USB-Serial
как я понимаю, тогда и передача будет быстрее?
NeaWeaR вне форума   Ответить с цитированием
Старый 06.08.2014, 11:35   #10
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
кстати не могу понять, почему у меня на скорости 57600 не работает?(
хотя поменял на 57600 и в скетче и в драйвере USB-Serial
как я понимаю, тогда и передача будет быстрее?
Да.
Admin вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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