ECE3872 HW/SW Project Code

Dependencies:   mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1

Revision:
25:7764baddb7bc
Parent:
18:0e0edd4f9e4d
Child:
26:2063ee8419cc
--- a/motor_ctl.h	Mon Apr 13 02:43:08 2020 +0000
+++ b/motor_ctl.h	Mon Apr 13 21:32:00 2020 +0000
@@ -1,5 +1,3 @@
-// Move servos in playback mode
-
 #include "mbed.h"
 #include "Servo.h"
 #include "rtos.h"
@@ -14,68 +12,85 @@
 Thread t_r_leg;
 Thread t_l_leg;
 
-DigitalOut led(LED4); 
+DigitalOut led(LED4);
 
-//left sensor move whole left side
-//right sensor moves whole right side //not gonna think about this right now. Dicuss ideas with team. 
-//and then the distance can just control the height
-//movement pattern can be random.. right now every other note recorded will be distributed to one side and the rest will go to the other
-
-unsigned short move_map[] {0x149, 0x14A, 0x14C, 0x151, 0x152, 0x154, 0x291, 0x292, 0x294, 0x2A1, 0x2A2, 0x2A4};
+unsigned short move_map1[] = {0x149, 0x14A, 0x14C, 0x151, 0x152, 0x154, 0x291, 0x292, 0x294, 0x2A1, 0x2A2, 0x2A4};
 unsigned short ra_mask = 0x0C0;
 unsigned short la_mask = 0x300;
 unsigned short rl_mask = 0x03C;
 unsigned short ll_mask = 0x007; 
 
-//for testing run through move map
+unsigned short move_map[] = {1,2,4,1,2,4,1,2,4,1,2,4,1,2,4,1,2,4};
 
-void ra_dance(unsigned short move) {    
-    if (move & ra_mask == 0x040){
-        r_arm.write(.50);
-    } else {
-        r_arm.write(.25);
+void ra_dance() {
+    //r_arm = 0;
+    //wait(1);
+    for(int p=0; p<12; ++p) {
+        unsigned short pos = move_map[p];
+        switch(pos){
+            case 1: r_arm.write(1.0);
+            case 2: r_arm.write(0.5);
+            case 4: r_arm.write(1.0);
+        }
+        wait(0.5);
+        r_arm = 0.5;
     }
     
+    r_arm = 1;
+    wait(0.5);
+    r_arm = 0.5;
+    wait(0.5);
+    r_arm = 1; 
+    r_arm.write(.50);
+    r_arm.write()
+
 }
 
-void la_dance(unsigned short move) {    
-     if (move & ra_mask == 0x100){
-        l_arm.write(.50);
-    } else {
-        l_arm.write(.25);
+void la_dance() {
+    l_arm = 0;
+    wait(1);
+    for(float p=0; p<1.0; p += 0.1) {
+        l_arm = p;
+        wait(0.2);
     }
-    
+    l_arm.write(.50);
+
 }
 
-void rl_dance() {    
-    r_leg = 0; 
+void rl_dance() {
+    r_leg = 0;
     wait(1);
     for(float p=0; p<1.0; p += 0.1) {
         r_leg = p;
         wait(0.2);
     }
     r_leg.write(.50);
-    
+
 }
 
-void ll_dance() {    
-    l_leg = 0; 
+void ll_dance() {
+    l_leg = 0;
     wait(1);
     for(float p=0; p<1.0; p += 0.1) {
         l_leg = p;
         wait(0.2);
     }
     l_leg.write(.50);
-    
+
 }
 
 
-void move_motors(){
-    for (int i = 0; i < 12; ++i){
-        ra_dance(move_map[i]);
-        la_dance(move_map[i]);
-        wait(0.2); 
-    }
+void puppet_move(){
+    //while(1){
+    //t_r_arm.start(ra_dance);
+    //wait(1);
+    //t_l_arm.start(la_dance);
+    //wait(1);
+    //t_r_leg.start(rl_dance);
+    //wait(1);
+    //t_l_leg.start(ll_dance);
+    //wait(1);
+  // }
+  ra_dance();
 }
 
-