![]() |
|
![]() |
#1 |
Member
Регистрация: 14.04.2015
Сообщений: 45
Вес репутации: 0 ![]() |
![]()
Уважаемый администратор, хотел уточнить планируется ли обновление cyberbot-3 либо какие планы по разработке? Заранее спасибо за ответ
|
![]() |
![]() |
![]() |
#2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
В планах добавить кнопку "Авто"-это автоматический режим движения по УЗД сенсору
Еще можно добавить голосовое озвучка текстов, отправленных со стороны управления Что то вроде обратной связи. P.S. У меня пока нет идей, что бы что то особенное добавить |
![]() |
![]() |
![]() |
#3 |
Member
Регистрация: 12.01.2016
Адрес: Кривой Рог
Сообщений: 36
Вес репутации: 0 ![]() |
![]()
Я на меге на гуляющиий rx tx повесил плеер с записанными голосовыми фрагментами. В скетче прописал все возможные варианты воспроизведения команд. Добавил голосовое распознавание. Которое так же управляет воспроизведением фрагментов звука. И на ругательное слово "Эй железяка", отвечает как его зовут на самом деле. И остальные команды распознавателя так же что делают. Скажем так, минимальный диалог можно продумать.
|
![]() |
![]() |
![]() |
#4 |
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); } Верно или зачем тебе голова мальчик? |
![]() |
![]() |
![]() |
#5 |
Member
Регистрация: 14.04.2015
Сообщений: 45
Вес репутации: 0 ![]() |
![]()
Я пытаюсь реализовать отправку данных температурного датчика, УЗД на web интерфейс вместе с изображением камеры, но абсолютно не получается(((
Еще идея питания от солнечной панели, которая вращается на серво, аккумулятора. И вывод данных гироскопа на тот же web интерфейс в виде графического представления. Реально ли это реализовать? к сожалению единомышленников и программистов в моем окружении нет |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Регистрация: 25.11.2013
Сообщений: 116
Вес репутации: 0 ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 02.09.2015
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
А намечается ли развитие проекта. Например на андроид приложение. Дополнительные какие-то возможности. Я в пиашпи не силен, пытался разобраться, но все бесполезно. Робот на Вашем по ездил, но возможности сводят функционал к нулю. Думаю к своему роботу прикрутить бункер с кормом для кота. Будет полезно покормить кота когда долго в отъезде и поглядеть как он там.
|
![]() |
![]() |
![]() |
#8 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Мы дали роботу базовые функции, этого достаточно для адаптации под свои нужды
Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 02.09.2015
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
Вы меня простите за грамматику, писал с телефона. От того что он на SH мне не на много легче стало. Нужно наверное будет после нового года заняться поплотнее, может все таки разберусь что там к чему. Просто браузер - дело хорошее, но может у меня одного так, и с телефона и с ноутбука иногда подвисают команды. Из-за чего собственно я своего робота случайно и разбил об шифоньер. Просто мне кажется если написать приложение, и например управление сделать от акселерометра - будет по своему удобно, а главное без посредников в лице браузера. Если вдруг меня ненароком судьба толкнет позаниматься данным вопросом, могу ли я рассчитывать на Вашу помощь?
|
![]() |
![]() |
![]() |
#10 |
Junior Member
Регистрация: 10.05.2015
Сообщений: 24
Вес репутации: 0 ![]() |
![]()
У меня была такая проблемка. Потом заметил, что роутер уходит в перезагрузку, и в этот момент ардуино выполняет последнюю команду до окончания загрузки роутера. В основном проявлялось в движении, аккумуляторы не тянули по току при работе моторов. Вылечил заменой аккумуляторов.
|
![]() |
![]() |
![]() |
Здесь присутствуют: 11 (пользователей: 0 , гостей: 11) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|