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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2015, 22:24   #121
don_Baton
Junior Member
 
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0
don_Baton is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

Заработало!!! Огромное спасибо!
don_Baton вне форума   Ответить с цитированием
Старый 15.07.2015, 21:43   #122
don_Baton
Junior Member
 
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0
don_Baton is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

Опять проблема - "туда" работает, а обратно - тишина.
В ардуине оставил только
uint8_t buf_answer[]="{\"dat1\":\"0010\",\"dat2\":\"0020\"}" ;
остальное закомментировал.
Тем не менее в строках Датчик 1 и Датчик 2 стоят по единичке и меняться не собираются.
Чего-то в моей системе опять не хватает для полного счастья?
don_Baton вне форума   Ответить с цитированием
Старый 15.07.2015, 22:10   #123
Alex19279
Senior Member
 
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0
Alex19279 will become famous soon enough
По умолчанию Re: Модуль "CyberBot-3"

Ардуина должна выдавать в УАРТ строку:
{"dat1":"1234","dat2":"1234"}
и только после этого в веб морде появится значение 1234.
Alex19279 вне форума   Ответить с цитированием
Старый 15.07.2015, 22:56   #124
don_Baton
Junior Member
 
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0
don_Baton is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

Примерно так и есть - но со странностями - на ардуину уходит команда cm=], оттуда - пачка в формате, как Вы описали, но дальше странность - на ардуину идет копия этой пачки, примерно так:
роутер - cm=]
ардуина - {"dat1":"0010","dat2":"0020"}
роутер (через 0.75ms после прихода пачки из ардуины) - {"dat1":"0010","dat2":"0020"}

А на морде ничего нет. Подозреваю, что или что-то с настройкой порта намудрил, либо опять какого-то пакета не хватает (роутер A5-V11)
Миниатюры
Нажмите на изображение для увеличения
Название: Saleae Logic Software_cut.png
Просмотров: 671
Размер:	3.1 Кб
ID:	2870  
don_Baton вне форума   Ответить с цитированием
Старый 15.07.2015, 23:14   #125
Alex19279
Senior Member
 
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0
Alex19279 will become famous soon enough
По умолчанию Re: Модуль "CyberBot-3"

Роутер Mr3020, шлю в уарт вышеуказанную строку, не с первого раза, можт с 4-5 раза отсылки вышеуказанной строки, на веб морде появляются отсылаемые значения. Назад роутер не шлет ту же самую строку.
Alex19279 вне форума   Ответить с цитированием
Старый 16.07.2015, 17:52   #126
don_Baton
Junior Member
 
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0
don_Baton is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

Полностью сказанное волшебное слово
stty -F /dev/ttyUSB0 cs8 57600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl
выключило эхо (я использовал установку только скорости, не ожидал такой гадости, как эхо), но на морде лица как ничего не было, так и нет
добавлено

Случилось чудо! Данные появились после очередной перезагрузки.

Последний раз редактировалось don_Baton; 16.07.2015 в 18:12.
don_Baton вне форума   Ответить с цитированием
Старый 29.08.2015, 20:45   #127
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

что то и у меня не хочет работать на мини, в чем может быть проблема? в настройках есть порты ttyUSB0 ttyATH0 , что нибудь из них следует выбирать, если мини подключен к рх и тх на роутере? Сaбербот2 работает, а сайбербот 3 молчит в тряпочку...
elik745i вне форума   Ответить с цитированием
Старый 29.08.2015, 21:15   #128
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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: Модуль "CyberBot-3"

Нужно в настройках CyberBot-3 выбрать порт и сохранить настройки, установить драйвер UART порта и настроить в драйвере скорость 57600
Ардуину мини нужно подключать к UART и выбирать порт ttyATH0
Скетч от CyberBot-2 не подойдет
Admin вне форума   Ответить с цитированием
Старый 29.08.2015, 22:30   #129
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

Цитата:
Сообщение от Admin Посмотреть сообщение
Нужно в настройках CyberBot-3 выбрать порт и сохранить настройки, установить драйвер UART порта и настроить в драйвере скорость 57600
Ардуину мини нужно подключать к UART и выбирать порт ttyATH0
Скетч от CyberBot-2 не подойдет
Да я вообще свой скетч использую, вот этот, что тут нужно править, что бы работало с саиберботом 3?
Код:
#include  // Подключаем библиотеку сервоприводов 

// // Подключаем H-Bridge HG7881
#define HG7881_A_IA 10  // D10 --> Motor A Input A --> MOTOR A +
#define HG7881_A_IB 9  // D9 --> Motor A Input B --> MOTOR A -
#define HG7881_B_IA 11 // D11 --> Motor B Input A --> MOTOR B +
#define HG7881_B_IB 12 // D12 --> Motor B Input B --> MOTOR B -
 
// functional connections
#define MOTOR_A_PWM HG7881_A_IA // Motor A PWM Speed
#define MOTOR_A_DIR HG7881_A_IB // Motor A Direction
#define MOTOR_B_PWM HG7881_B_IA // Motor B PWM Speed
#define MOTOR_B_DIR HG7881_B_IB // Motor B Direction
 
#define DIR_DELAY 100 // brief delay for abrupt motor changes

#define tiltServopin 7 //tilt servo attached to pin 7
#define panServopin 8 //pan servo attached to pin 8
#define serialReceive 13 //Serial Receive Message indicator LED
#define moveLed 4 //LED indicating tank movement
#define light 6 //
#define moveDelay 1000
#define moveDelayturn 100

Servo tiltServo;  
Servo panServo; 
int val1 = 90;
const int servoAngle = 20;
const int minAngle = 0;
const int maxAngle = 180;
int lightState=0;

void setup()
{
  Serial.begin( 57600 );
  pinMode(serialReceive,OUTPUT);
  pinMode(moveLed,OUTPUT);
  pinMode( MOTOR_A_DIR, OUTPUT );
  pinMode( MOTOR_A_PWM, OUTPUT );
  digitalWrite( MOTOR_A_DIR, LOW );
  digitalWrite( MOTOR_A_PWM, LOW );
  pinMode( MOTOR_B_DIR, OUTPUT );
  pinMode( MOTOR_B_PWM, OUTPUT );
  digitalWrite( MOTOR_B_DIR, LOW );
  digitalWrite( MOTOR_B_PWM, LOW );
 // delay(40000);  //wait for router to initialise
}
 
void loop()
{
   if (Serial.available()) //Еесли что то пришло  
        { 
    digitalWrite(serialReceive,HIGH);
    byte inByte = Serial.read();
   switch (inByte)  // Смотрим какая команда пришла  
    {  
     case 'x': // Остоновка робота 
        robot_stop();
        break;  
         
      case 'W': // Движение вперед 
        robot_go();         
        break;     
      case 'D': // Поворот вправо
        robot_right();
        break; 

      case 'A': //  Повопорт влево
       robot_left();
        break;  
         
      case 'S': // Движение назад
        robot_back();
        break;  
       
       case 'J': // Серво поднимается
                       if(val1<maxAngle){
                         tiltServo.attach(tiltServopin);               // attaches the servo on pin 2
                         for(int i=0;i<servoAngle;i++){                          tiltServo.write(val1+i);           // sets the servo position according to the scaled value                           delay(servoAngle);                          }                          val1=val1+servoAngle;                          tiltServo.detach();                // detaches the servo on pin 2                          }              break;                       case 'U': // Серво опускается                         if(val1>minAngle){
                         tiltServo.attach(tiltServopin);               // attaches the servo on pin 2
                         for(int i=0;i<servoAngle;i++){
                         tiltServo.write(val1-i);           // sets the servo position according to the scaled value 
                         delay(servoAngle);
                         }
                         val1=val1-servoAngle;
                         tiltServo.detach();                // detaches the servo on pin 2
                         }      
        break; 
               
        case 'K': // Серво поворачивается влево
                         panServo.attach(panServopin);               // attaches the servo on pin 2
                         panServo.write(180);           // sets the servo position according to the scaled value 
                         delay(200);
                         panServo.detach();                // detaches the servo on pin 2
       
        break;   
          
        case 'H': // Серво поворачивается вправо 
                         panServo.attach(panServopin);               // attaches the servo on pin 2
                         panServo.write(0);           // sets the servo position according to the scaled value 
                         delay(200);
                         panServo.detach();                // detaches the servo on pin 2
        break;    
          
         case 'B': //  Бластер  
         
        break;  
         
        case 'C': // Клаксон  
 
        break;  
          
        case 'V': // Включить/Выключить фары 
       if (lightState==0){
       digitalWrite(light,HIGH);
      lightState=1;
       }else{
      digitalWrite(light,LOW);
      lightState=0;
       } 
        break;  
    }
digitalWrite(serialReceive,LOW);    
  }
} 

void robot_stop() 
{
        digitalWrite( MOTOR_A_DIR, LOW );
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW );
        digitalWrite( MOTOR_B_PWM, LOW );
        delay( DIR_DELAY );
}


void robot_go(){
  /*
        digitalWrite( MOTOR_A_DIR, LOW );
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW );
        digitalWrite( MOTOR_B_PWM, LOW );
        delay( DIR_DELAY );
        */
        digitalWrite( MOTOR_A_DIR, LOW ); // direction = forward
        digitalWrite( MOTOR_A_PWM, HIGH );
        digitalWrite( MOTOR_B_DIR, LOW ); // direction = forward
        digitalWrite( MOTOR_B_PWM, HIGH ); // PWM speed = slow
        delay(moveDelay);
}
void robot_back(){
  /*
        digitalWrite( MOTOR_A_DIR, LOW );
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW );
        digitalWrite( MOTOR_B_PWM, LOW );
        delay( DIR_DELAY );
        */
        // set the motor speed and direction
        digitalWrite( MOTOR_A_DIR, HIGH ); // direction = forward
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
        digitalWrite( MOTOR_B_PWM, LOW ); // PWM speed = slow
        delay(moveDelay);
}
void robot_left(){
  /*
        digitalWrite( MOTOR_A_DIR, LOW );
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW );
        digitalWrite( MOTOR_B_PWM, LOW );
        delay( DIR_DELAY );
        */
        // set the motor speed and direction
        digitalWrite( MOTOR_A_DIR, HIGH ); // direction = forward
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW ); // direction = forward
        digitalWrite( MOTOR_B_PWM, HIGH ); // PWM speed = fast
        delay(moveDelayturn);
}
void robot_right(){
  /*
        digitalWrite( MOTOR_A_DIR, LOW );
        digitalWrite( MOTOR_A_PWM, LOW );
        digitalWrite( MOTOR_B_DIR, LOW );
        digitalWrite( MOTOR_B_PWM, LOW );
        delay( DIR_DELAY );
        */
        // set the motor speed and direction
        digitalWrite( MOTOR_A_DIR, LOW ); // direction = forward
        digitalWrite( MOTOR_A_PWM, HIGH );
        digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
        digitalWrite( MOTOR_B_PWM, LOW ); // PWM speed = slow
        delay(moveDelayturn); 
}
elik745i вне форума   Ответить с цитированием
Старый 29.08.2015, 22:37   #130
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-3"

как видно из скетча, если что то пришло с UART, то на моем роботе моргнет светодиод на ноге 13, с модулем саибербот 2 моргает, даже если пришла какая то непонятная ...тeнь, а вот на саибербот3 не моргает, то есть ничего через UART не идет.

Что попробовать?

установлена и вторая версия и третья сегодня, вторая работает, третья нет, если вторая работает значит все драивера и настройки в порядке, или я что то пропустил? (настройки указал так, как вы сказали ttyATH0)
elik745i вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 6 (пользователей: 0 , гостей: 6)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


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


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