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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2017, 11:25   #1
uaz236
Junior Member
 
Регистрация: 23.03.2017
Сообщений: 11
Вес репутации: 0
uaz236 is an unknown quantity at this point
По умолчанию wifi 3020 и (тележка) arduino uno

Доброго дня уважаемые формучане, начну по порядку.
Мною был куплен базовый комплект робота на гусеницах

Развернуть для просмотра

[свернуть]

все работает по bt и проблем нет( сейчас он конструктивно иначе выглядит но суть не меняется) примерный скетч (двигатели шевелятся).

Развернуть для просмотра

int pinLB = 12; // define pin 12
int pinLF = 3; // define pin 3
int pinRB = 13; // define pin 13
int pinRF = 11; // define pin 11
int val;
void setup()
{
Serial.begin(9600); // define pin for motor output
pinMode(pinLB,OUTPUT); // pin 12
pinMode(pinLF,OUTPUT); // pin 3 (PWM)
pinMode(pinRB,OUTPUT); // pin 13
pinMode(pinRF,OUTPUT); // pin 11 (PWM)
}
void advance() // move forward
{
digitalWrite(pinLB,LOW); // right wheel moves forward
digitalWrite(pinRB, LOW); // left wheel moves forward
analogWrite(pinLF,255);
analogWrite(pinRF,255);
}
void stopp() // stop
{
digitalWrite(pinLB,HIGH);
digitalWrite(pinRB,HIGH);
analogWrite(pinLF,0);
analogWrite(pinRF,0);
}
void right() // turn right (single wheel)
{
digitalWrite(pinLB,HIGH); // left wheel moves forward
digitalWrite(pinRB,LOW); // right wheel moves backward
analogWrite(pinLF, 255);
analogWrite(pinRF,255);
}
void left() // turn left (single wheel)
{
digitalWrite(pinLB,LOW); // left wheel moves forward
digitalWrite(pinRB,HIGH); // right wheel moves backward
analogWrite(pinLF, 255);
analogWrite(pinRF,255);
}
void back() // move backward
{digitalWrite(pinLB,HIGH); // motor moves to left rear
digitalWrite(pinRB,HIGH); // motor moves to right rear
analogWrite(pinLF,255);
analogWrite(pinRF,255);
}
void loop()
{ val=Serial.read();
if(val=='U')advance();
if(val=='D')back();
if(val=='L')left() ;
if(val=='R')right();
if(val=='S')stopp();
}
[свернуть]
.

Решил сделать из него wifi тележку и столкнулся с такой проблемой.
собрал, подключил wifi tp-link 3020, залил в него CyberBot, как положено, но тележка не шевелится и индикация rx tx на самом uno молчит.
Провел много времени на форумах, нашел тестовые скетчи, в итоге убедился в связке роутера и uno, но вот запустить эту систему так и не смог, как только все делаю по инструкции, заливаю вот этот скетч, тишина.. и мертвые скосами стоят
вот что заливал в урдуйну:

Развернуть для просмотра

PHP код:
#include <CyberLib.h>  

#define motors_init {D4_Out; D5_Out; D6_Out; D7_Out;}   
uint8_t inByte;
uint8_t speed=255;

void setup()    
{   
  
motors_init;  
  
D11_Out;  D11_Low;
  
randomSeed(A6_Read); 
  for(
uint8_t i=0i<12i++) beep(70random(1002000));   
  
UART_Init(57600);   
  
wdt_enable (WDTO_500MS);     
}    

void loop()    
{    
  if (
UART_ReadByte(inByte))
  {    
    switch (
inByte
    {    
        case 
'x'
          
robot_stop();  
        break;   
          
        case 
'W':  
          
robot_go();    
        break;    
          
        case 
'D'
          
robot_rotation_left();   
        break;  

        case 
'A':
          
robot_rotation_right();   
        break;   
          
        case 
'S':  
          
robot_back();   
        break;     
        
    }           
   if(
inByte>47 && inByte<58speed=(inByte-47)*25+5;
  }   
 
wdt_reset();    
}  

void robot_go() 

  
D4_Low
  
analogWrite(5speed);  
  
analogWrite(6speed); 
  
D7_Low


void robot_back() 

   
D4_High;  
   
analogWrite(5255-speed);  
   
analogWrite(6255-speed); 
   
D7_High


void robot_stop() 

  
D4_Low;  
  
analogWrite(50);  
  
analogWrite(60); 
  
D7_Low;   


void robot_rotation_left() 

  
D4_Low
  
analogWrite(5speed);  
  
analogWrite(6255-speed);  
  
D7_High


void robot_rotation_right() 

  
D4_High;  
  
analogWrite(5255-speed);  
  
analogWrite(6speed);  
  
D7_Low
}
[свернуть]


прошу помощи у тех кто запускал что нибудь подобное, помочь разобраться, самому, хотя бы подобными скетчами поделиться.
Что делал: скорость обмена менял, тестировал всю цепочку обмена роутер-ардуина при тесте лампочки моргают но как только дело доходит до скетча, жмакаю на кнопки веб мордочки, но ничего не происходит
uaz236 вне форума   Ответить с цитированием
Старый 21.04.2017, 14:28   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

А с сериал монитора пробовали команды посылать?
Admin вне форума   Ответить с цитированием
Старый 21.04.2017, 15:09   #3
uaz236
Junior Member
 
Регистрация: 23.03.2017
Сообщений: 11
Вес репутации: 0
uaz236 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
А с сериал монитора пробовали команды посылать?
К моему сожалению не понимаю какую команду куда надо послать чтобы хоть немножко разобраться.
в теории осознаю что нужно послать на порты что у меня в первом скетче команду и посмотреть что будет через консольку роутера?
uaz236 вне форума   Ответить с цитированием
Старый 21.04.2017, 16:02   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

Например послать команду "W"
Сериал монитор находится в ArduinoIDE
Admin вне форума   Ответить с цитированием
Старый 27.04.2017, 00:02   #5
uaz236
Junior Member
 
Регистрация: 23.03.2017
Сообщений: 11
Вес репутации: 0
uaz236 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Например послать команду "W"
Сериал монитор находится в ArduinoIDE
Подключил прибор по usb, через ide в окне "сериал монитора" подал команду , лампочка rx загорелась, но вот двигатели молчат, может подскажите в какую сторону рыть?
uaz236 вне форума   Ответить с цитированием
Старый 27.04.2017, 00:06   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

А драйвера движков к каким пинам подключены?
Admin вне форума   Ответить с цитированием
Старый 27.04.2017, 12:16   #7
uaz236
Junior Member
 
Регистрация: 23.03.2017
Сообщений: 11
Вес репутации: 0
uaz236 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
А драйвера движков к каким пинам подключены?
Да, если запустить "тестовый" скетч работающий от BT, то все ок.
Ради интереса, подскажите пожалуйста использую первый скетч (тот что работает от bt) можно ли подать через сериал монитор команду на движение, если можно то какую?
uaz236 вне форума   Ответить с цитированием
Старый 27.04.2017, 12:35   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

В скетчах Пины совершенно разные
Admin вне форума   Ответить с цитированием
Старый 11.06.2017, 02:04   #9
uaz236
Junior Member
 
Регистрация: 23.03.2017
Сообщений: 11
Вес репутации: 0
uaz236 is an unknown quantity at this point
По умолчанию

Развернуть для просмотра

int pinLB = 12; // define pin 12
int pinLF = 3; // define pin 3
int pinRB = 13; // define pin 13
int pinRF = 11; // define pin 11
int val;
void setup()
{
Serial.begin(115200); // define pin for motor output 115200
pinMode(pinLB,OUTPUT); // pin 12
pinMode(pinLF,OUTPUT); // pin 3 (PWM)
pinMode(pinRB,OUTPUT); // pin 13
pinMode(pinRF,OUTPUT); // pin 11 (PWM)
}
void advance() // move forward
{
digitalWrite(pinLB,LOW); // right wheel moves forward
digitalWrite(pinRB, LOW); // left wheel moves forward
analogWrite(pinLF,255);
analogWrite(pinRF,255);
}
void stopp() // stop
{
digitalWrite(pinLB,HIGH);
digitalWrite(pinRB,HIGH);
analogWrite(pinLF,0);
analogWrite(pinRF,0);
}
void right() // turn right (single wheel)
{
digitalWrite(pinLB,HIGH); // left wheel moves forward
digitalWrite(pinRB,LOW); // right wheel moves backward
analogWrite(pinLF, 255);
analogWrite(pinRF,255);
}
void left() // turn left (single wheel)
{
digitalWrite(pinLB,LOW); // left wheel moves forward
digitalWrite(pinRB,HIGH); // right wheel moves backward
analogWrite(pinLF, 255);
analogWrite(pinRF,255);
}
void back() // move backward
{digitalWrite(pinLB,HIGH); // motor moves to left rear
digitalWrite(pinRB,HIGH); // motor moves to right rear
analogWrite(pinLF,255);
analogWrite(pinRF,255);
}
void loop()
{ val=Serial.read();
if(val=='W')advance();
if(val=='S')back();
if(val=='A')left() ;
if(val=='D')right();
if(val=='X')stopp();
}
[свернуть]

все заработало,теперь бы как нибудь внести команду "стоп" дабы тележка при обрыве связи а также после отпускания кнопки, останавливалась.
uaz236 вне форума   Ответить с цитированием
Старый 18.06.2017, 18:49   #10
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

В CyberBot3 все реализовано
Admin вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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