FRDM KL25Z bluetooth controller

Dependencies:   ZumoRobotUtilities mbed-rtos mbed

Fork of ZumoRobotBluetoothControlled by Catalin Craciun

Committer:
catalincraciun7
Date:
Sun Nov 02 11:35:22 2014 +0000
Revision:
2:53d1b48743a3
Parent:
1:bac719753a33
Child:
3:83ac04b7ee07
Bluetooth connection done!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
catalincraciun7 1:bac719753a33 1 // Craciun Catalin
catalincraciun7 0:827b012f1913 2 // main.h
catalincraciun7 0:827b012f1913 3 // © 2014 Catalin Craciun
catalincraciun7 0:827b012f1913 4
catalincraciun7 0:827b012f1913 5 #include "mbed.h"
catalincraciun7 0:827b012f1913 6 #include "ZumoRobotManager.h"
catalincraciun7 0:827b012f1913 7
catalincraciun7 2:53d1b48743a3 8 using namespace std;
catalincraciun7 2:53d1b48743a3 9
catalincraciun7 0:827b012f1913 10 #define RGBLED_ON 0
catalincraciun7 0:827b012f1913 11 #define RGBLED_OFF 1
catalincraciun7 0:827b012f1913 12
catalincraciun7 0:827b012f1913 13 DigitalOut LEDRED(LED_RED);
catalincraciun7 0:827b012f1913 14 DigitalOut LEDBLUE(LED_BLUE);
catalincraciun7 0:827b012f1913 15 DigitalOut LEDGREEN(LED_GREEN);
catalincraciun7 0:827b012f1913 16
catalincraciun7 2:53d1b48743a3 17 ZumoRobotManager *zumoRobotManager;
catalincraciun7 2:53d1b48743a3 18
catalincraciun7 2:53d1b48743a3 19 Timer inputTimer;
catalincraciun7 2:53d1b48743a3 20 Serial bluetooth(PTC4, PTC3);
catalincraciun7 2:53d1b48743a3 21
catalincraciun7 2:53d1b48743a3 22 char bluetoothInput[10];
catalincraciun7 2:53d1b48743a3 23 float velocity;
catalincraciun7 1:bac719753a33 24
catalincraciun7 0:827b012f1913 25 void update() {
catalincraciun7 2:53d1b48743a3 26 // Updating loop
catalincraciun7 2:53d1b48743a3 27 while (true) {
catalincraciun7 2:53d1b48743a3 28 if (inputTimer.read_ms() >= 10 && bluetooth.readable()) {
catalincraciun7 2:53d1b48743a3 29 inputTimer.reset();
catalincraciun7 2:53d1b48743a3 30 bluetooth.gets(bluetoothInput, 8);
catalincraciun7 2:53d1b48743a3 31 if ((bluetoothInput[0] == '+' || bluetoothInput[0] == '-') &&
catalincraciun7 2:53d1b48743a3 32 (bluetoothInput[1] == '+' || bluetoothInput[1] == '-') &&
catalincraciun7 2:53d1b48743a3 33 bluetoothInput[2] >= '0' && bluetoothInput[2] <='9' &&
catalincraciun7 2:53d1b48743a3 34 bluetoothInput[3] >= '0' && bluetoothInput[3] <='9') {
catalincraciun7 2:53d1b48743a3 35 /// Got a "velocity descriptor" string
catalincraciun7 2:53d1b48743a3 36 velocity = ((bluetoothInput[2] - '0') * 10.0f + (bluetoothInput[3] - '0') * 1.0f) * 0.01f;
catalincraciun7 2:53d1b48743a3 37 if (bluetoothInput[0] == '-')
catalincraciun7 2:53d1b48743a3 38 velocity = -velocity;
catalincraciun7 2:53d1b48743a3 39 zumoRobotManager -> setVelocityX(velocity);
catalincraciun7 2:53d1b48743a3 40
catalincraciun7 2:53d1b48743a3 41 velocity = ((bluetoothInput[4] - '0') * 10.0f + (bluetoothInput[5] - '0') * 1.0f) * 0.01f;
catalincraciun7 2:53d1b48743a3 42 if (bluetoothInput[1] == '-')
catalincraciun7 2:53d1b48743a3 43 velocity = -velocity;
catalincraciun7 2:53d1b48743a3 44 zumoRobotManager -> setVelocityY(velocity);
catalincraciun7 2:53d1b48743a3 45 } else if (bluetoothInput[0] == 'c') {
catalincraciun7 2:53d1b48743a3 46 /// Got a "colour descriptor" string
catalincraciun7 2:53d1b48743a3 47 char colour = bluetoothInput[1];
catalincraciun7 2:53d1b48743a3 48
catalincraciun7 2:53d1b48743a3 49 if (colour == 'r') {
catalincraciun7 2:53d1b48743a3 50 LEDRED = RGBLED_ON; LEDBLUE = RGBLED_OFF; LEDGREEN = RGBLED_OFF;
catalincraciun7 2:53d1b48743a3 51 } else if (colour == 'g') {
catalincraciun7 2:53d1b48743a3 52 LEDRED = RGBLED_OFF; LEDBLUE = RGBLED_OFF; LEDGREEN = RGBLED_ON;
catalincraciun7 2:53d1b48743a3 53 } else if (colour == 'b') {
catalincraciun7 2:53d1b48743a3 54 LEDRED = RGBLED_OFF; LEDBLUE = RGBLED_ON; LEDGREEN = RGBLED_OFF;
catalincraciun7 2:53d1b48743a3 55 }
catalincraciun7 2:53d1b48743a3 56 }
catalincraciun7 2:53d1b48743a3 57 }
catalincraciun7 2:53d1b48743a3 58 }
catalincraciun7 2:53d1b48743a3 59 }
catalincraciun7 2:53d1b48743a3 60
catalincraciun7 2:53d1b48743a3 61 void init() {
catalincraciun7 2:53d1b48743a3 62
catalincraciun7 2:53d1b48743a3 63 // Initialising the controller
catalincraciun7 0:827b012f1913 64
catalincraciun7 2:53d1b48743a3 65 zumoRobotManager = new ZumoRobotManager();
catalincraciun7 0:827b012f1913 66
catalincraciun7 2:53d1b48743a3 67 LEDBLUE = RGBLED_OFF;
catalincraciun7 2:53d1b48743a3 68 LEDRED = RGBLED_OFF;
catalincraciun7 2:53d1b48743a3 69 LEDGREEN = RGBLED_ON;
catalincraciun7 2:53d1b48743a3 70
catalincraciun7 2:53d1b48743a3 71 bluetooth.baud(9600);
catalincraciun7 2:53d1b48743a3 72
catalincraciun7 2:53d1b48743a3 73 inputTimer.start();
catalincraciun7 0:827b012f1913 74 }
catalincraciun7 0:827b012f1913 75
catalincraciun7 0:827b012f1913 76 int main() {
catalincraciun7 0:827b012f1913 77
catalincraciun7 0:827b012f1913 78 // Updating loop
catalincraciun7 1:bac719753a33 79
catalincraciun7 2:53d1b48743a3 80 init();
catalincraciun7 2:53d1b48743a3 81 update();
catalincraciun7 0:827b012f1913 82 }