Psi Swarm robot library version 0.9

Fork of PsiSwarmV9 by Psi Swarm Robot

Revision:
8:6c92789d5f87
Parent:
6:b340a527add9
Child:
9:dde9e21030eb
--- a/demo.cpp	Sun Oct 16 11:11:21 2016 +0000
+++ b/demo.cpp	Sun Oct 16 12:54:33 2016 +0000
@@ -13,8 +13,9 @@
  * (C) Dept. Electronics & Computer Science, University of York
  * James Hilder, Alan Millard, Alexander Horsfield, Homero Elizondo, Jon Timmis
  *
- * PsiSwarm Library Version: 0.7
+ * PsiSwarm Library Version: 0.8
  *
+ * Version 0.8 : Rewritten as OO\C++
  * Version 0.7 : Updated for new MBED API
  * Version 0.5 : Added motor calibration menu
  * Version 0.4 : Added PsiSwarmBasic menu
@@ -209,34 +210,34 @@
                                 if(sub_menu == 0) {
                                     left_speed += 5;
                                     if(left_speed > 100) left_speed = 100;
-                                    set_left_motor_speed(left_speed / 100.0f);
+                                    motors.set_left_motor_speed(left_speed / 100.0f);
                                 }
                                 if(sub_menu == 1) {
                                     right_speed += 5;
                                     if(right_speed > 100) right_speed = 100;
-                                    set_right_motor_speed(right_speed / 100.0f);
+                                    motors.set_right_motor_speed(right_speed / 100.0f);
                                 }
                                 if(sub_menu == 2) {
                                     if(both_motor_mode == 0) both_motor_mode=5;
                                     else both_motor_mode--;
                                     switch(both_motor_mode) {
                                         case 0:
-                                            stop();
+                                            motors.stop();
                                             break;
                                         case 1:
-                                            brake();
+                                            motors.brake();
                                             break;
                                         case 2:
-                                            forward(0.5);
+                                            motors.forward(0.5);
                                             break;
                                         case 3:
-                                            forward(1);
+                                            motors.forward(1);
                                             break;
                                         case 4:
-                                            backward(0.5);
+                                            motors.backward(0.5);
                                             break;
                                         case 5:
-                                            backward(1.0);
+                                            motors.backward(1.0);
                                             break;
                                     }
                                 }
@@ -257,7 +258,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 1) {
@@ -266,7 +267,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 2) {
@@ -275,7 +276,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 3) {
@@ -284,7 +285,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 4) level = 0;
@@ -373,34 +374,34 @@
                                 if(sub_menu == 0) {
                                     left_speed -= 5;
                                     if(left_speed < -100) left_speed = -100;
-                                    set_left_motor_speed(left_speed / 100.0f);
+                                    motors.set_left_motor_speed(left_speed / 100.0f);
                                 }
                                 if(sub_menu == 1) {
                                     right_speed -= 5;
                                     if(right_speed < -100) right_speed = -100;
-                                    set_right_motor_speed(right_speed / 100.0f);
+                                    motors.set_right_motor_speed(right_speed / 100.0f);
                                 }
                                 if(sub_menu == 2) {
                                     both_motor_mode++;
                                     if(both_motor_mode == 6) both_motor_mode=0;
                                     switch(both_motor_mode) {
                                         case 0:
-                                            stop();
+                                            motors.stop();
                                             break;
                                         case 1:
-                                            brake();
+                                            motors.brake();
                                             break;
                                         case 2:
-                                            forward(0.5);
+                                            motors.forward(0.5);
                                             break;
                                         case 3:
-                                            forward(1);
+                                            motors.forward(1);
                                             break;
                                         case 4:
-                                            backward(0.5);
+                                            motors.backward(0.5);
                                             break;
                                         case 5:
-                                            backward(1.0);
+                                            motors.backward(1.0);
                                             break;
                                     }
                                 }
@@ -421,7 +422,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 1) {
@@ -430,7 +431,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
 
                                     }
                                 }
@@ -440,7 +441,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 3) {
@@ -449,7 +450,7 @@
                                     } else {
                                         demo_running = 0;
                                         display.set_backlight_brightness(bl_brightness * 0.01f);
-                                        stop();
+                                        motors.stop();
                                     }
                                 }
                                 if(sub_menu == 4) level = 0;
@@ -572,22 +573,22 @@
                                 if(sub_menu == 2) {
                                     switch(both_motor_mode) {
                                         case 0:
-                                            stop();
+                                            motors.stop();
                                             break;
                                         case 1:
-                                            brake();
+                                            motors.brake();
                                             break;
                                         case 2:
-                                            forward(0.5);
+                                            motors.forward(0.5);
                                             break;
                                         case 3:
-                                            forward(1);
+                                            motors.forward(1);
                                             break;
                                         case 4:
-                                            backward(0.5);
+                                            motors.backward(0.5);
                                             break;
                                         case 5:
-                                            backward(1.0);
+                                            motors.backward(1.0);
                                             break;
                                     }
                                 }
@@ -1005,15 +1006,15 @@
           }
         }
         // set speed
-        set_left_motor_speed(lf_left);
-        set_right_motor_speed(lf_right);
+        motors.set_left_motor_speed(lf_left);
+        motors.set_right_motor_speed(lf_right);
 
 
         demo_timer.reset();
     }
     if(demo_running == 1)demo_timeout.attach_us(&line_demo_cycle,500);
     else {
-        stop();
+        motors.stop();
         display.set_backlight_brightness(bl_brightness * 0.01f);
     }
 }
@@ -1025,10 +1026,10 @@
         switch(state) {
             case 0:
                 if(spin_step % 2 == 0) {
-                    forward(pct);
+                    motors.forward(pct);
                     set_leds(0xFF,0xFF);
                 } else {
-                    backward(pct);
+                    motors.backward(pct);
                     set_leds(0,0xFF);
                 }
                 spin_step ++;
@@ -1060,7 +1061,7 @@
     }
     if(demo_running == 1)demo_timeout.attach_us(&stress_demo_cycle,500);
     else {
-        stop();
+        motors.stop();
         display.set_backlight_brightness(bl_brightness * 0.01f);
     }
 }
@@ -1073,7 +1074,7 @@
                 set_leds(0,0xFF);
                 set_center_led(1,1);
                 speed = 0.1f;
-                brake();
+                motors.brake();
                 time_out = 0.5;
                 state = 1;
                 led_step = 0;
@@ -1111,7 +1112,7 @@
                 if(led_step == 8) led_step =0;
                 if(speed < 1) {
                     speed += 0.0125;
-                    turn(speed);
+                    motors.turn(speed);
                 } else {
                     state = 2;
                     spin_step = 0;
@@ -1174,7 +1175,7 @@
                 led_step --;
                 if(speed > 0.1) {
                     speed -= 0.025;
-                    turn(speed);
+                    motors.turn(speed);
                 } else {
                     state = 4;
                     spin_step = 0;
@@ -1185,7 +1186,7 @@
                 set_leds(0,0xFF);
                 set_center_led(1,1);
                 speed = 0.1f;
-                brake();
+                motors.brake();
                 time_out = 0.5;
                 led_step =0;
                 state = 5;
@@ -1223,7 +1224,7 @@
                 led_step --;
                 if(speed < 1) {
                     speed += 0.0125;
-                    turn(-speed);
+                    motors.turn(-speed);
                 } else {
                     state = 6;
                     spin_step = 0;
@@ -1286,7 +1287,7 @@
                 if(led_step == 8) led_step =0;
                 if(speed > 0.1) {
                     speed -= 0.025;
-                    turn(-speed);
+                    motors.turn(-speed);
                 } else {
                     state = 0;
                     spin_step = 0;
@@ -1298,7 +1299,7 @@
     }
     if(demo_running == 1)demo_timeout.attach_us(&spinning_demo_cycle,500);
     else {
-        stop();
+        motors.stop();
         display.set_backlight_brightness(bl_brightness * 0.01f);
     }
 }
@@ -1311,7 +1312,7 @@
                 set_leds(0,0xFF);
                 set_center_led(1,0.4);
                 speed = 0.3f;
-                forward(speed);
+                motors.forward(speed);
                 time_out = 0.05;
                 state = 1;
                 break;
@@ -1320,14 +1321,14 @@
                 int front_right = read_illuminated_raw_ir_value(0);
                 int front_left = read_illuminated_raw_ir_value(7);
                 if(front_left > 400 || front_right > 400) {
-                    brake();
+                    motors.brake();
                     time_out = 0.04;
                     if(front_left > front_right)state=2;
                     else state=3;
                 } else {
                     if(speed < 0.5) {
                         speed += 0.03;
-                        forward(speed);
+                        motors.forward(speed);
                     }
                     switch(led_step) {
                         case 0:
@@ -1353,16 +1354,16 @@
                 break;
             }
             case 2: //Turn right
-                set_left_motor_speed(0.85);
-                set_right_motor_speed(-0.85);
+                motors.set_left_motor_speed(0.85);
+                motors.set_right_motor_speed(-0.85);
                 time_out = 0.4;
                 state = 0;
                 set_leds(0x0E,0x0E);
                 set_center_led(3,0.5);
                 break;
             case 3: //Turn left
-                set_left_motor_speed(-0.85);
-                set_right_motor_speed(0.85);
+                motors.set_left_motor_speed(-0.85);
+                motors.set_right_motor_speed(0.85);
                 time_out = 0.4;
                 state = 0;
                 set_leds(0xE0,0xE0);
@@ -1373,7 +1374,7 @@
     }
     if(demo_running == 1)demo_timeout.attach_us(&obstacle_demo_cycle,200);
     else {
-        stop();
+        motors.stop();
         display.set_backlight_brightness(bl_brightness * 0.01f);
     }
 }