Astrid Schut / Mbed 2 deprecated Robot_Battle_met_ARVID

Dependencies:   biquadFilter MODSERIAL QEI Servo mbed

Fork of Robot_Battle_met_ARVID by Gaston Gabriël

Files at this revision

API Documentation at this revision

Comitter:
aschut
Date:
Wed Oct 31 14:15:54 2018 +0000
Child:
1:070092564648
Commit message:
werkt met lampjes

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Oct 31 14:15:54 2018 +0000
@@ -0,0 +1,209 @@
+//Voor het toevoegen van een button:
+#include "mbed.h"
+#include <iostream>
+DigitalOut gpo(D0);
+
+DigitalIn button2(SW3);  
+DigitalIn button1(SW2); //or SW2
+
+DigitalOut led1(LED_GREEN);
+DigitalOut led2(LED_RED);
+DigitalOut led3(LED_BLUE);
+
+Timer t;
+
+enum states {MOTORS_OFF,CALIBRATION,HOMING,DEMO,MOVEMENT,CLICK}; 
+int f = 1;
+states currentState = MOTORS_OFF; 
+bool stateChanged = true; // Make sure the initialization of first state is executed
+
+void ProcessStateMachine(void)
+{
+  switch (currentState)
+  {
+    case MOTORS_OFF:
+      // Actions
+      if (stateChanged)
+      {
+        // state initialization: rood
+        led1 = 1;
+        led2 = 0; 
+        led3 = 1;
+        wait (1);
+        stateChanged = false;
+      }
+    
+      // State transition logic: Als button 1 word ingedrukt --> calibratie, anders motor uithouden
+        if (!button1)
+        {        
+        currentState = CALIBRATION;
+        stateChanged = true;
+        }
+        else if (!button2)
+        {        
+        currentState = HOMING  ;
+        stateChanged = true;
+        }
+        else
+        {
+        currentState = MOTORS_OFF;
+        stateChanged = true;
+        }   
+           
+      break;
+      
+    case CALIBRATION:
+    // Actions
+      if (stateChanged)
+      {
+        // state initialization: oranje
+        led1 = 0;
+        led2 = 0;
+        led3 = 1;
+        wait (1);
+        
+        stateChanged = false;
+      }
+      
+      // State transition logic: automatisch terug naar motors off.
+
+        currentState = MOTORS_OFF;
+        stateChanged = true; 
+        break; 
+      
+    case HOMING:
+    // Actions
+      if (stateChanged)
+      {
+        // state initialization: green
+        t.start();
+        led1 = 0;
+        led2 = 1;
+        led3 = 1;
+        wait (1);
+        
+        stateChanged = false;
+      }
+          
+      // State transition logic: naar DEMO (button1), naar MOVEMENT(button2)
+        if (!button1)
+        {        
+        currentState = DEMO;
+        stateChanged = true;
+        }
+        else if (!button2)
+        {        
+        currentState = MOVEMENT  ;
+        stateChanged = true;
+        }
+        else if (t>300) 
+        {        
+        t.stop();
+        t.reset();
+        currentState = MOTORS_OFF  ;
+        stateChanged = true;
+        }
+        else
+        {        
+        currentState = HOMING  ;
+        stateChanged = true;
+        }
+        break;
+        
+        case DEMO:
+    // Actions
+      if (stateChanged)
+      {
+        // state initialization: light blue
+        led1 = 0;
+        led2 = 1;
+        led3 = 0;
+        wait (1);
+        
+        stateChanged = false;
+      }
+          
+      // State transition logic: automatisch terug naar HOMING
+        currentState = HOMING;
+        stateChanged = true;
+        break;
+              
+    case MOVEMENT:
+    // Actions
+      if (stateChanged)
+      {
+        // state initialization: purple
+        t.start();
+        led1 = 1;
+        led2 = 0;
+        led3 = 0;
+        wait (1);
+        
+        stateChanged = false;
+      }
+          
+      // State transition logic: naar CLICK (button1), naar MOTORS_OFF(button2) anders naar MOVEMENT
+        if (!button1)
+        {        
+        currentState = CLICK;
+        stateChanged = true;
+        }
+        else if (!button2)
+        {        
+        currentState = MOTORS_OFF  ;
+        stateChanged = true;
+        }
+        else if (t>300)
+        {        
+        t.stop();
+        t.reset();
+        currentState = HOMING  ;
+        stateChanged = true;
+        }
+        else
+        {        
+        currentState = MOVEMENT  ;
+        stateChanged = true;
+        }
+        break;
+        
+        case CLICK:
+    // Actions
+      if (stateChanged)
+      {
+        // state initialization: blue
+        led1 = 1;
+        led2 = 1;
+        led3 = 0;
+        wait (1);
+        
+        stateChanged = false;
+      }
+      
+      // State transition logic: automatisch terug naar MOVEMENT.
+
+        currentState = MOVEMENT;
+        stateChanged = true; 
+        break; 
+         
+}
+}
+ 
+int main()
+{
+    while (true)
+    {
+    led1 = 1;
+    led2 = 1;
+    led3 = 1;
+    ProcessStateMachine();
+    
+    }
+    
+}
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Oct 31 14:15:54 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/e95d10626187
\ No newline at end of file