![]() |
![]() |
#421 |
Member
Регистрация: 12.01.2016
Адрес: Кривой Рог
Сообщений: 36
Вес репутации: 0 ![]() |
![]()
Я на меге на гуляющиий rx tx повесил плеер с записанными голосовыми фрагментами. В скетче прописал все возможные варианты воспроизведения команд. Добавил голосовое распознавание. Которое так же управляет воспроизведением фрагментов звука. И на ругательное слово "Эй железяка", отвечает как его зовут на самом деле. И остальные команды распознавателя так же что делают. Скажем так, минимальный диалог можно продумать.
|
![]() |
![]() |
![]() |
#422 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Выложи видео.
|
![]() |
![]() |
![]() |
#423 |
Member
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0 ![]() |
![]()
Всем привет.
нет в планах следующую версию бота на websocket запилить? вообще возможно ли это? наткнулся на видео , где на esp8266 поднимают такое соединение. видятся 2 основные проблемы: придется между 3020 и ардуино протокол пакетный организовать, т.к. отсылка отдельных символов уже не прокатит... вторая вытекает из первой хватит ли ресурсов роутера для всего.. |
![]() |
![]() |
![]() |
#424 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Проект пока заморожен, до лучших времен |
|
![]() |
![]() |
![]() |
#425 |
Member
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#426 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
И то и другое
|
![]() |
![]() |
![]() |
#427 |
Junior Member
Регистрация: 01.04.2016
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Здравствуйте, могу ли я использовать платы Arduino Uno R3 и Arduino Motor Shield v.2 для постройки робата на основе модуля "CyberBot-3".
|
![]() |
![]() |
![]() |
#428 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Можно, только подправить номера контактов в скетче придется
|
![]() |
![]() |
![]() |
#429 |
Junior Member
Регистрация: 01.04.2016
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
#include <CyberLib.h>
#include <Servo.h> #include <AFMotor.h> // Подключаем библиотеку для управления двигателями AF_DCMotor motor1(1); //создаем мотор №1 AF_DCMotor motor2(2); //создаем мотор №2 AF_DCMotor motor3(3); //создаем мотор №1 AF_DCMotor motor4(4); //создаем мотор №2 Servo myservo1; Servo myservo2; #define step_servo 10 //минимальный угол поворота ссервы за один клик uint8_t min_pos=10, max_pos=170; //минимальное и максимаьное положение сервы int i=130, i2=90; //начальное положение сервы boolean light_stat; //состояние фар uint8_t inByte, packid; uint8_t speed=255; //максимальная скорость моторов по умолчанию #define init {D3_Out; D4_Out; D5_Out; D6_Out; D7_Out; D9_Out; D10_Out; D11_Out;} //используемые порты void setup() { Serial.begin(57600); //включаем передачу данных на скорости 9600 бит/c motor1.setSpeed(255); //Скорость движка №1 motor2.setSpeed(255); //Скорость движка №2 motor3.setSpeed(255); //Скорость движка №1 motor4.setSpeed(255); //Скорость движка №2 myservo1.attach(9); // Подключение сервоприводов к порту myservo2.attach(10); // Подключение сервоприводов к порту myservo2.write(i2); // начальное положение сервы(горизот) при включении myservo1.write(i); // начальное положение сервы(вертикаль) при включении init; // Инициализация портов D11_Low; // Динамик OFF randomSeed(A5_Read); //Получить случайное значение horn(); //звуковое оповещение готовности робота UART_Init(57600); // Инициализация порта для связи с роутером //wdt_enable (WDTO_500MS); } void loop() { if (UART_ReadByte(inByte)) { if ( packid == 16 ) // контрольная сумма команды cm= { packid=0; 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; case 'U': // Серва поднимается if(i > min_pos) myservo1.write(i -= step_servo); break; case 'J': // Серва опускается if(i < max_pos) myservo1.write(i += step_servo); break; case 'K': // Серва поворачивается вправо if(i2 > min_pos) myservo2.write(i2 -= step_servo); break; case 'H': // Серва поворачивается влево if(i2 < max_pos) myservo2.write(i2 += step_servo); break; case 'B': // Бластер D10_High; break; case 'C': // Клаксон horn(); break; case ']': // запрос состояния аналоговых датчиков byte2char(A6_Read,A7_Read); break; case 'V': // Включить/Выключить фары if(light_stat) { D9_Low; light_stat=false; } else { D9_High; light_stat=true; } break; } if(inByte>47 && inByte<58) speed=(inByte-47)*17+85; //скорость вращения колес } else packet_id(inByte); } // wdt_reset(); } //**************************************** ************ void horn() { for(uint8_t i=0; i<12; i++) beep(70, random(100, 2000)); //звуковое оповещение } 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); //Останавливаем колеса } void packet_id(uint8_t inbyte) //проверяем идентификатор пакета "cm=" { switch (inbyte) { case 'c': packid=2; break; case 'm': packid*=2; //packid=packid<<1; break; case '=': packid*=4; //packid=packid<<2; break; default: packid=0; } } void byte2char(uint16_t inbyte0, uint16_t inbyte1) { char bytetochar[5]; uint8_t buf_answer[]="{\"dat1\":\"0000\",\"dat2\":\"0000\"}" ; itoa(inbyte0+10000, bytetochar, 10); buf_answer[9]= bytetochar[1]; buf_answer[10]= bytetochar[2]; buf_answer[11]= bytetochar[3]; buf_answer[12]= bytetochar[4]; itoa(inbyte1+10000, bytetochar, 10); buf_answer[23]= bytetochar[1]; buf_answer[24]= bytetochar[2]; buf_answer[25]= bytetochar[3]; buf_answer[26]= bytetochar[4]; UART_SendArray(buf_answer, sizeof(buf_answer)-1); } Верно или зачем тебе голова мальчик? |
![]() |
![]() |
![]() |
#430 |
Junior Member
Регистрация: 21.02.2017
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
Подскажите не корректно работает com порт на FT232. При загрузке роутера не работает делаю "stty -F /dev/ttyUSB0 raw cs8 57600 -parenb -parodd -cstopb -hupcl clocal cread -crtscts ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl noflsh -xcase -tostop -echoprt -echoctl -echoke"
Все работает до перезагрузки, как сохранить данный конфиг ком порта? __________________P.S. Сравнил строки в веб-интерфейсе и введенную. практически одинаковы, кроме %2Fdev%2FttyUSB0 , символ "/" стал "%2". Как с эти бороться? Последний раз редактировалось duss1981; 14.04.2017 в 18:55. |
![]() |
![]() |
![]() |
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|