13.07.2015, 22:24 | #121 |
Junior Member
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
Заработало!!! Огромное спасибо!
|
15.07.2015, 21:43 | #122 |
Junior Member
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
Опять проблема - "туда" работает, а обратно - тишина.
В ардуине оставил только uint8_t buf_answer[]="{\"dat1\":\"0010\",\"dat2\":\"0020\"}" ; остальное закомментировал. Тем не менее в строках Датчик 1 и Датчик 2 стоят по единичке и меняться не собираются. Чего-то в моей системе опять не хватает для полного счастья? |
15.07.2015, 22:10 | #123 |
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
Ардуина должна выдавать в УАРТ строку:
{"dat1":"1234","dat2":"1234"} и только после этого в веб морде появится значение 1234. |
15.07.2015, 22:56 | #124 |
Junior Member
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
Примерно так и есть - но со странностями - на ардуину уходит команда cm=], оттуда - пачка в формате, как Вы описали, но дальше странность - на ардуину идет копия этой пачки, примерно так:
роутер - cm=] ардуина - {"dat1":"0010","dat2":"0020"} роутер (через 0.75ms после прихода пачки из ардуины) - {"dat1":"0010","dat2":"0020"} А на морде ничего нет. Подозреваю, что или что-то с настройкой порта намудрил, либо опять какого-то пакета не хватает (роутер A5-V11) |
15.07.2015, 23:14 | #125 |
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
Роутер Mr3020, шлю в уарт вышеуказанную строку, не с первого раза, можт с 4-5 раза отсылки вышеуказанной строки, на веб морде появляются отсылаемые значения. Назад роутер не шлет ту же самую строку.
|
16.07.2015, 17:52 | #126 |
Junior Member
Регистрация: 13.07.2015
Сообщений: 6
Вес репутации: 0 |
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. |
29.08.2015, 20:45 | #127 |
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
что то и у меня не хочет работать на мини, в чем может быть проблема? в настройках есть порты ttyUSB0 ttyATH0 , что нибудь из них следует выбирать, если мини подключен к рх и тх на роутере? Сaбербот2 работает, а сайбербот 3 молчит в тряпочку...
|
29.08.2015, 21:15 | #128 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Модуль "CyberBot-3"
Нужно в настройках CyberBot-3 выбрать порт и сохранить настройки, установить драйвер UART порта и настроить в драйвере скорость 57600
Ардуину мини нужно подключать к UART и выбирать порт ttyATH0 Скетч от CyberBot-2 не подойдет |
29.08.2015, 22:30 | #129 | |
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 |
Re: Модуль "CyberBot-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); } |
|
29.08.2015, 22:37 | #130 |
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 |
Re: Модуль "CyberBot-3"
как видно из скетча, если что то пришло с UART, то на моем роботе моргнет светодиод на ноге 13, с модулем саибербот 2 моргает, даже если пришла какая то непонятная ...тeнь, а вот на саибербот3 не моргает, то есть ничего через UART не идет.
Что попробовать? установлена и вторая версия и третья сегодня, вторая работает, третья нет, если вторая работает значит все драивера и настройки в порядке, или я что то пропустил? (настройки указал так, как вы сказали ttyATH0) |
Здесь присутствуют: 11 (пользователей: 0 , гостей: 11) | |
|
|