Bluetooth program for the Seeed bot
Dependencies: BluetoothSerial SeeedShieldBot mbed
Fork of Seeed_BlueBot_demo by
Diff: main.cpp
- Revision:
- 0:fa6bc104fe2d
- Child:
- 1:6a67ad238815
diff -r 000000000000 -r fa6bc104fe2d main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Sep 08 08:22:07 2014 +0000 @@ -0,0 +1,111 @@ +#include "mbed.h" +#include "BluetoothSerial.h" +#include "SeeedStudioShieldBot.h" + +// The following configuration must be done on the NUCLEO board: +// - Close SB62/SB63 and open SB13/SB14 solder bridges to enable the D0/D1 pins +// - Open SB21 solder bridge to disconnect the LED + +BluetoothSerial bluetooth(D1, D0); // TX, RX + +SeeedStudioShieldBot bot( + D8, D9, D11, // Right motor pins (PwmOut, DigitalOut, DigitalOut) -> Motor 1 + D12, D10, D13, // Left motor pins (PwmOut, DigitalOut, DigitalOut) -> Motor 2 + A0, A1, A2, A3, A4 // Sensors pins (all DigitalIn) +); + +// Enable it for debugging on hyperterminal +#define DEBUG 1 +#if DEBUG == 1 +Serial pc(PC_10, PC_11); +#define PC_DEBUG(args...) pc.printf(args) +#else +#define PC_DEBUG(args...) +#endif + +Ticker tick; + +float speed = 1.0; // Motors speed + +void ReadCommand(void) +{ + int cmd = 0; + PC_DEBUG(">>> Read command...\n"); + if (bluetooth.readable()) + { + cmd = bluetooth.getc(); + PC_DEBUG(">>> Bluetooth read [%c]\n", cmd); + switch(cmd) + { + case 1: // Forward + bot.forward(speed); + break; + case 2: // Backward + bot.backward(speed); + break; + case 3: // Left + bot.left(speed); + break; + case 4: // Right + bot.right(speed); + break; + case 5: // Turn left + bot.turn_right(speed); + break; + case 6: // Turn right + bot.turn_left(speed); + break; + case 7: // Slow + speed = 0.4; + break; + case 8: // Fast + speed = 1.0; + break; + default: // Stop + bot.stopAll(); + break; + } + } +} + +int main() +{ + PC_DEBUG("\n\nSeeed Bluetooth shield test started.\n"); + + // Enable motors + bot.enable_right_motor(); + bot.enable_left_motor(); + + // Check if they are alive + bot.left(speed); + wait(0.2); + bot.right(speed); + wait(0.2); + bot.stopAll(); + + PC_DEBUG(">>> Bluetooth setup..."); + bluetooth.setup(); + PC_DEBUG("done\n"); + + PC_DEBUG(">>> Bluetooth in slave mode..."); + bluetooth.slave("btslave8seeed"); // default PIN code: 0000 + PC_DEBUG("done\n"); + + wait(2); + + PC_DEBUG(">>> Bluetooth connect..."); + bluetooth.connect(); + PC_DEBUG("done\n"); + + tick.attach_us(ReadCommand, 500000); // Every 500ms read Bluetooth command + + bot.forward(speed); + wait(0.4); + bot.backward(speed); + wait(0.4); + bot.stopAll(); + + while (1) { + wait(1); + } +}