Dice roll

Dependencies:   mbed

Revision:
2:0432dad1e3ac
Parent:
1:8be4a41833fd
--- a/main.cpp	Wed Nov 01 09:17:20 2017 +0000
+++ b/main.cpp	Fri Nov 03 10:34:30 2017 +0000
@@ -1,16 +1,17 @@
 #include "mbed.h"
 
+// Led control outputs
 DigitalOut ledb(LED_BLUE);
 DigitalOut ledr(LED_RED);
 DigitalOut ledg(LED_GREEN);
 
+// Motor control outputs
 DigitalOut motor1DC(D7);
 PwmOut motor1PWM(D6);
 
+// Input signals. Can either be pressing switch2 or EMG control.
 DigitalIn   button1(SW2);
-
-volatile int n = 0;
-float t = 1;
+AnalogIn EMGDice(A0);
 
 void Roll()
 {  
@@ -18,30 +19,34 @@
     ledr = 0; // red led on = rolling
     
     motor1PWM = 1; // motor on -> roll dice
-    wait(1.5);
+    wait(1.05);
     motor1PWM = 0; // motor off
 
     motor1DC = abs(motor1DC-1); // rotate other way next time
     
     ledr = 1; // red led off
-    ledb = 0; // blue led on
+    ledb = 0; // blue led on -> inidcates wait time to protect motors
 }
 
 int main()
 {
+    // Initialize system
     motor1DC = 1;
     ledb = 1;
     ledr = 1;
     ledg = 0;
+    float t = 1.5; // Wait time (s) between rolls to protect motor
     
+    // Dice roll code
     while (true) 
     {
-        if(button1==0)
+        if(button1==0 or EMGDice>0.8) // Roll dice if switch2 is pressed or EMG input is delivered.
         { 
             Roll();
             wait(t); // wait before next roll to protect motors
-            ledb = 1;
+            ledb = 1; 
             ledg = 0; // green led on = ready to roll
-        }       
+        }     
+          
     }
 }
\ No newline at end of file