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-13
Revision:
25:7764baddb7bc
Parent:
18:0e0edd4f9e4d
Child:
26:2063ee8419cc

File content as of revision 25:7764baddb7bc:

#include "mbed.h"
#include "Servo.h"
#include "rtos.h"

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;

DigitalOut led(LED4);

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; 

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() {
    //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() {
    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;
    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;
    wait(1);
    for(float p=0; p<1.0; p += 0.1) {
        l_leg = p;
        wait(0.2);
    }
    l_leg.write(.50);

}


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();
}