ECE3872 HW/SW Project Code

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

motor_ctl.h

Committer:
trmontgomery
Date:
2020-04-14
Revision:
26:2063ee8419cc
Parent:
25:7764baddb7bc

File content as of revision 26:2063ee8419cc:

#include "mbed.h"
#include "Servo.h"
#include "rtos.h"
#include <string>

Servo r_arm(p24);
Servo l_arm(p23);
Servo r_leg(p22);
Servo l_leg(p21);

Thread t_r_arm;
Thread t_l_arm;
Thread t_r_leg;
Thread t_l_leg;

#define DUR 200

vector<string> move_map; //initialized in main
string note; 

void la_dance() {
    switch(note[0]){
        case 0: l_arm.write(1.0); break; 
        case 1: l_arm.write(0.0); break; 
    }
    Thread::wait(DUR);
}

void ra_dance() {
    switch(note[1]){
        case '0': r_arm.write(1.0); break; 
        case '1': r_arm.write(0.0); break; 
    }
    Thread::wait(DUR);
}

void ll_dance() {
    switch(note[2]){
        case 1: r_leg.write(1.0); break; 
        case 2: r_leg.write(0.6); break; 
        case 3: r_leg.write(0.1); break; 
    }
    Thread::wait(DUR);
}

void rl_dance() {
    switch(note[3]){
        case 1: l_leg.write(1.0); break; 
        case 2: l_leg.write(0.6); break; 
        case 3: l_leg.write(0.1); break; 
    }
    Thread::wait(DUR);
}

void puppet_move(){
    t_r_arm.start(ra_dance);
    t_l_arm.start(la_dance);
    t_r_leg.start(rl_dance);
    t_l_leg.start(ll_dance);
}