.

Dependencies:   mbed

Revision:
0:c9d69c701daf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Oct 11 00:56:33 2014 +0000
@@ -0,0 +1,103 @@
+// For the KL25Z
+#include "mbed.h"
+
+#define MOVE_FWD 'w'
+#define MOVE_REV 's'
+#define MOVE_LEF 'a'
+#define MOVE_RIG 'd'
+#define MOVE_STO 'q'
+
+DigitalOut myled(LED2);
+DigitalOut M1DIR(D7);
+DigitalOut M2DIR(D8);
+PwmOut M1PWM(D9);
+PwmOut M2PWM(D10);
+DigitalOut M_ON(D2);
+Serial bt(D14, D15);
+Serial pc(USBTX, USBRX);
+
+bool move_motors(char c, int _power);
+void motor_fwd(int _power);
+void motor_rev(int _power);
+void motor_left(int _power);
+void motor_right(int _power);
+void motor_stop();
+
+
+int main() {
+    myled = 0;
+    wait(3);
+    bt.baud(9600);
+    M_ON = 1;
+    while(1) {
+        if (bt.readable()){
+            char c = bt.getc();
+            bt.printf("%c\n\r", c);
+            move_motors(c, 100);
+        }
+    }
+}
+
+bool move_motors(char c, int _power){
+    switch (c){
+        case MOVE_FWD:
+            motor_fwd(_power);
+            break;
+        case MOVE_REV:
+            motor_rev(_power);
+            break;
+        case MOVE_LEF:
+            motor_left(_power);
+            break;
+        case MOVE_RIG:
+            motor_right(_power);
+            break;
+        case MOVE_STO:
+            motor_stop();
+            break;
+        default:
+            motor_stop();
+            //bt.printf("%f\r\n", get_mag_angle());
+    }
+    return 1;
+}
+
+void motor_fwd(int _power){
+    M1DIR = 1;
+    M1PWM = 1;
+    M2DIR = 1;
+    M2PWM = 1;
+    pc.printf("FWD\n");
+}
+
+void motor_rev(int _power){
+    M1DIR = 0;
+    M1PWM = 1;
+    M2DIR = 0;
+    M2PWM = 1;
+    pc.printf("REV\n");
+}
+
+void motor_left(int _power){
+    M1DIR = 0;
+    M1PWM = 1;
+    M2DIR = 1;
+    M2PWM = 1;
+    pc.printf("LEFT\n");  
+}
+
+void motor_right(int _power){
+    M1DIR = 1;
+    M1PWM = 1;
+    M2DIR = 0;
+    M2PWM = 1;
+    pc.printf("RIGHT\n");
+}
+
+void motor_stop(){
+    M1DIR = 1;
+    M1PWM = 0;
+    M2DIR = 1;
+    M2PWM = 0;
+    pc.printf("STOP\n");
+}