Робот на звуковом управлении

Обсуждаем модели и конструкции, построенные своими руками
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Робот на звуковом управлении

Сообщение tea750 »

Имеется:
Arduino Mega 2560
Bluetooth shield + Bluetooth Bee ( http://pacpac.ru/product/a000064-arduin ... to-shield/ + http://pacpac.ru/product/bluetooth-bee/ )
Motor shield v3 ( http://freeduino.ru/arduino/mshield.html )
И вот такая вот платформа http://hobbylab.ru/catalog/comps/gears/rob0025/

Код:

Код: Выделить всё

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(0, 1); // RX, TX
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int state;
int flag = 0;

void setup()
{
    Serial.begin(9600);
    BTSerial.begin(9600);
    motor1.setSpeed(255);
    motor2.setSpeed(255);
    motor3.setSpeed(255);
    motor4.setSpeed(255);
}

void loop()
{
    if (Serial.available() > 0) {
        state = Serial.read();
        flag = 0;
    }
    if (state == '0') {
        motor1.run(RELEASE);
        motor2.run(RELEASE);
        motor3.run(RELEASE);
        motor4.run(RELEASE);
        if (flag == 0) {
            Serial.println("Motor: off");
            flag = 1;
        }
    } else if (state == '1') {
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        if (flag == 0) {
            Serial.println("Motor: forward");
            flag = 1;
        }
    }        // if the state is '2' the motor will turn left
    else if (state == '2') {
        motor1.run(BACKWARD);
        motor2.run(BACKWARD);
        motor3.run(BACKWARD);
        motor4.run(BACKWARD);
        if (flag == 0) {
            Serial.println("Motor: backward");
            flag = 1;
        }
    } else if (state == '3') {
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(RELEASE);
        motor4.run(RELEASE);
        if (flag == 0) {
            Serial.println("Motor: right");
            flag = 1;
        }
    } else if (state == '4') {
        motor1.run(RELEASE);
        motor2.run(RELEASE);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        if (flag == 0) {
            Serial.println("Motor: left");
            flag = 1;
        }
    }
}
Принцип работы
Посылаем цифру (1,2,3,4,0) по соединению Bluetooth, и робот должен ехать в определенном направлении, в соответствии с полученной цифрой (программа для телефона прикреплена к сообщению).

Инструкция к программе
Нажимаем "микрофон" и говорим одно из пяти слов: Прямо, Назад, Лево, Право, Стоп.
Каждой из команд соответствует своя цифра
Прямо - 1
Назад - 2
Право - 3
Лево - 4
Стоп - 0


Вся загвоздка заключается в следующем: когда я подключаю робота к компьютеру, он работает идеально, выполняя все приказы.
Как только я его отсоединяю и подключаю другой источник питания, в виде шести пальчиковых батареек, он не реагирует на команды.
Я думал, что проблема в питании, но как оказалось - нет. Прошу помочь.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Робот на звуковом управлении

Сообщение Mr.Kubikus »

Здравствуйте!

Правильно ли я понял, что с помощью этой программы вы хотите принимать команды от компа через блютус?

Кстати, для вставки кода можно использовать BB-код
С уважением, Григорий
GitHub FB ВК
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Re: Робот на звуковом управлении

Сообщение tea750 »

Команды будут отправляться с телефона на робота с помощью программы для android, которую, к сожалению, я не могу залить на форум.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Робот на звуковом управлении

Сообщение Mr.Kubikus »

Ясно.

Вероятно, проблема в том, что вы используете два объекта, которые реализуют интерфейс с последовательным приемопередатчиком:
Serial и BTSerial. Причем оба объекта используют одни и те же линии ввода-вывода контроллера. В вашем случае - это пины 0 и 1.

Попробуйте используйте только один объект Serial. Объявление BTSerial вообще уберите из кода.
С уважением, Григорий
GitHub FB ВК
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Re: Робот на звуковом управлении

Сообщение tea750 »

Большое спасибо, все заработало. Как вы и сказали 9В было достаточно.
Но с хорошим приходит и плохое - разрывается связь bluetooth. Связь держится до тех пор пока постоянно поступают команды на робота, если ему не посылать команд
связь разрывается и приходится заново подключаться. Как быть?
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Робот на звуковом управлении

Сообщение Mr.Kubikus »

Привет!

Через какое время связь разрывается. Как вы определяете, что связь разорвалась?
С уважением, Григорий
GitHub FB ВК
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Re: Робот на звуковом управлении

Сообщение tea750 »

Связь рарывается, если не посылать команды на робота где-то от 30сек до минуты. Диод на bluetooth bee горит, когда есть связь и выключается, когда ее нет.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Робот на звуковом управлении

Сообщение Mr.Kubikus »

Может дело в том, что смартфон уходит в спячку и разрывает соединение со своей стороны? Если у вас есть BT на компе, попробуйте подключиться с него и понаблдюдайте.
С уважением, Григорий
GitHub FB ВК
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Re: Робот на звуковом управлении

Сообщение tea750 »

Нет, дело было не в спячке. Я внес небольшие изменения в программа на телефон, а именно сделал так, чтобы телефон включал распознаватель речи сразу после услышанного слова. Теперь программа автоматически будет автоматически использовать распознаватель речи, до тех пор, пока я его не выключу. Таким образом, я увеличил скорость передачи команд на робота.

P.S.
Откуда вы берете картинки или какую программу вы используете для создания электрических схем с ардуино?
Последний раз редактировалось tea750 30 янв 2014, 14:25, всего редактировалось 1 раз.
tea750
Сообщения: 12
Зарегистрирован: 16 ноя 2013, 12:09

Re: Робот на звуковом управлении

Сообщение tea750 »

Например:
Вложения
mega-mic.png
mega-mic.png (74.48 КБ) 34897 просмотров
Ответить