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