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
Вся загвоздка заключается в следующем: когда я подключаю робота к компьютеру, он работает идеально, выполняя все приказы.
Как только я его отсоединяю и подключаю другой источник питания, в виде шести пальчиковых батареек, он не реагирует на команды.
Я думал, что проблема в питании, но как оказалось - нет. Прошу помочь.