Created
August 8, 2016 05:13
-
-
Save Sayter99/3525c7b0b5a9c055bdccb6fc71d930fc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <time.h> | |
#include <math.h> | |
#include <Servo86.h> | |
#include <ros.h> | |
#include <std_msgs/String.h> | |
double _86ME_var[50] = {0}; | |
double _roll = 0; | |
double _pitch = 0; | |
double _comp_range = 180; | |
double _IMU_val[9] = {0}; | |
double _IMU_Q[4] = {1, 0, 0, 0}; | |
double _omega[2] = {0}; | |
int _IMU_init_status; | |
int servo_mask[12] = {0}; | |
Servo used_servos[12]; | |
enum {_FORWARD, _LEFT, _RIGHT, _HOME, _TITLE, _NONE}; | |
int _last_motion[2] = {_NONE, _NONE}; | |
int _curr_motion[2] = {_NONE, _NONE}; | |
bool internal_trigger[6] = {0}; | |
bool external_trigger[6] = {0}; | |
int Serial1_Command = 0xFFF; | |
ros::NodeHandle nh; | |
void messageCb( const std_msgs::String& cmsg) | |
{ | |
Serial1_Command = (int)cmsg.data[0]; | |
} | |
ros::Subscriber<std_msgs::String> sub("/recognizer/output", &messageCb ); | |
ServoOffset offsets; | |
ServoFrame _86ME_HOME; | |
ServoFrame _86ME_RUN; | |
ServoFrame forward_frm[6]; | |
ServoFrame left_frm[6]; | |
ServoFrame right_frm[6]; | |
ServoFrame home_frm[1]; | |
int title_title = 1; | |
ServoFrame title_frm[2]; | |
namespace forward | |
{ | |
enum {IDLE, FRAME_0, WAIT_FRAME_0, FRAME_1, WAIT_FRAME_1, FRAME_2, WAIT_FRAME_2, FRAME_3, WAIT_FRAME_3, FRAME_4, WAIT_FRAME_4, FRAME_5, WAIT_FRAME_5}; | |
int state = IDLE; | |
unsigned long time; | |
double comp_range = 180; | |
} | |
namespace left | |
{ | |
enum {IDLE, FRAME_0, WAIT_FRAME_0, FRAME_1, WAIT_FRAME_1, FRAME_2, WAIT_FRAME_2, FRAME_3, WAIT_FRAME_3, FRAME_4, WAIT_FRAME_4, FRAME_5, WAIT_FRAME_5}; | |
int state = IDLE; | |
unsigned long time; | |
double comp_range = 180; | |
} | |
namespace right | |
{ | |
enum {IDLE, FRAME_0, WAIT_FRAME_0, FRAME_1, WAIT_FRAME_1, FRAME_2, WAIT_FRAME_2, FRAME_3, WAIT_FRAME_3, FRAME_4, WAIT_FRAME_4, FRAME_5, WAIT_FRAME_5}; | |
int state = IDLE; | |
unsigned long time; | |
double comp_range = 180; | |
} | |
namespace home | |
{ | |
enum {IDLE, FRAME_0, WAIT_FRAME_0}; | |
int state = IDLE; | |
unsigned long time; | |
double comp_range = 180; | |
} | |
namespace title | |
{ | |
enum {IDLE, FLAG_0, FRAME_1, WAIT_FRAME_1, FRAME_2, WAIT_FRAME_2, GOTO_3}; | |
int state = IDLE; | |
unsigned long time; | |
int aaa_3 = 0; | |
double comp_range = 180; | |
} | |
bool isBlocked(int layer) | |
{ | |
if(layer == 0) | |
{ | |
if(external_trigger[_TITLE]) return true; | |
} | |
return false; | |
} | |
void closeTriggers(int layer) | |
{ | |
if(layer == 0) | |
{ | |
external_trigger[_FORWARD]= false; internal_trigger[_FORWARD]= false; | |
external_trigger[_LEFT]= false; internal_trigger[_LEFT]= false; | |
external_trigger[_RIGHT]= false; internal_trigger[_RIGHT]= false; | |
external_trigger[_HOME]= false; internal_trigger[_HOME]= false; | |
external_trigger[_TITLE]= false; internal_trigger[_TITLE]= false; | |
} | |
} | |
void updateCompRange() | |
{ | |
_comp_range = -1; | |
if((external_trigger[_FORWARD] || internal_trigger[_FORWARD]) && forward::comp_range >= _comp_range) | |
_comp_range = forward::comp_range; | |
else if((external_trigger[_LEFT] || internal_trigger[_LEFT]) && left::comp_range >= _comp_range) | |
_comp_range = left::comp_range; | |
else if((external_trigger[_RIGHT] || internal_trigger[_RIGHT]) && right::comp_range >= _comp_range) | |
_comp_range = right::comp_range; | |
else if((external_trigger[_HOME] || internal_trigger[_HOME]) && home::comp_range >= _comp_range) | |
_comp_range = home::comp_range; | |
else if((external_trigger[_TITLE] || internal_trigger[_TITLE]) && title::comp_range >= _comp_range) | |
_comp_range = title::comp_range; | |
else | |
_comp_range = 180; | |
} | |
void updateTrigger() | |
{ | |
if(isBlocked(0)) goto L1; | |
L0: | |
if(title_title == 1) {_curr_motion[0] = _TITLE; title_title--;} | |
else if(Serial1_Command == 'f') {_curr_motion[0] = _FORWARD;} | |
else if(Serial1_Command == 'l') {_curr_motion[0] = _LEFT;} | |
else if(Serial1_Command == 'r') {_curr_motion[0] = _RIGHT;} | |
else if(Serial1_Command == 's') {_curr_motion[0] = _HOME;} | |
else _curr_motion[0] = _NONE; | |
if(_last_motion[0] != _curr_motion[0] && _curr_motion[0] != _NONE) | |
{ | |
closeTriggers(0); | |
external_trigger[_curr_motion[0]] = true; | |
forward::state = 0; | |
left::state = 0; | |
right::state = 0; | |
home::state = 0; | |
title::state = 0; | |
title::aaa_3 = 0; | |
} | |
external_trigger[_curr_motion[0]] = true; | |
_last_motion[0] = _curr_motion[0]; | |
L1: | |
if(isBlocked(1)) return; | |
_curr_motion[1] = _NONE; | |
if(_last_motion[1] != _curr_motion[1] && _curr_motion[1] != _NONE) | |
{ | |
closeTriggers(1); | |
external_trigger[_curr_motion[1]] = true; | |
} | |
external_trigger[_curr_motion[1]] = true; | |
_last_motion[1] = _curr_motion[1]; | |
} | |
void forwardUpdate() | |
{ | |
switch(forward::state) | |
{ | |
case forward::IDLE: | |
if(external_trigger[_FORWARD] || internal_trigger[_FORWARD]) forward::state = forward::FRAME_0; | |
else break; | |
case forward::FRAME_0: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[0].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_0; | |
case forward::WAIT_FRAME_0: | |
if(millis() - forward::time >= 300) | |
forward::state = forward::FRAME_1; | |
break; | |
case forward::FRAME_1: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[1].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_1; | |
case forward::WAIT_FRAME_1: | |
if(millis() - forward::time >= 150) | |
forward::state = forward::FRAME_2; | |
break; | |
case forward::FRAME_2: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[2].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_2; | |
case forward::WAIT_FRAME_2: | |
if(millis() - forward::time >= 150) | |
forward::state = forward::FRAME_3; | |
break; | |
case forward::FRAME_3: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[3].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_3; | |
case forward::WAIT_FRAME_3: | |
if(millis() - forward::time >= 300) | |
forward::state = forward::FRAME_4; | |
break; | |
case forward::FRAME_4: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[4].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_4; | |
case forward::WAIT_FRAME_4: | |
if(millis() - forward::time >= 150) | |
forward::state = forward::FRAME_5; | |
break; | |
case forward::FRAME_5: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = forward_frm[5].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
forward::time = millis(); | |
forward::state = forward::WAIT_FRAME_5; | |
case forward::WAIT_FRAME_5: | |
if(millis() - forward::time >= 150) | |
{ | |
forward::state = forward::IDLE; | |
internal_trigger[_FORWARD] = false; | |
external_trigger[_FORWARD] = false; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
void leftUpdate() | |
{ | |
switch(left::state) | |
{ | |
case left::IDLE: | |
if(external_trigger[_LEFT] || internal_trigger[_LEFT]) left::state = left::FRAME_0; | |
else break; | |
case left::FRAME_0: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[0].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_0; | |
case left::WAIT_FRAME_0: | |
if(millis() - left::time >= 300) | |
left::state = left::FRAME_1; | |
break; | |
case left::FRAME_1: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[1].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_1; | |
case left::WAIT_FRAME_1: | |
if(millis() - left::time >= 150) | |
left::state = left::FRAME_2; | |
break; | |
case left::FRAME_2: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[2].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_2; | |
case left::WAIT_FRAME_2: | |
if(millis() - left::time >= 150) | |
left::state = left::FRAME_3; | |
break; | |
case left::FRAME_3: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[3].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_3; | |
case left::WAIT_FRAME_3: | |
if(millis() - left::time >= 300) | |
left::state = left::FRAME_4; | |
break; | |
case left::FRAME_4: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[4].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_4; | |
case left::WAIT_FRAME_4: | |
if(millis() - left::time >= 150) | |
left::state = left::FRAME_5; | |
break; | |
case left::FRAME_5: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = left_frm[5].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
left::time = millis(); | |
left::state = left::WAIT_FRAME_5; | |
case left::WAIT_FRAME_5: | |
if(millis() - left::time >= 150) | |
{ | |
left::state = left::IDLE; | |
internal_trigger[_LEFT] = false; | |
external_trigger[_LEFT] = false; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
void rightUpdate() | |
{ | |
switch(right::state) | |
{ | |
case right::IDLE: | |
if(external_trigger[_RIGHT] || internal_trigger[_RIGHT]) right::state = right::FRAME_0; | |
else break; | |
case right::FRAME_0: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[0].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_0; | |
case right::WAIT_FRAME_0: | |
if(millis() - right::time >= 300) | |
right::state = right::FRAME_1; | |
break; | |
case right::FRAME_1: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[1].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_1; | |
case right::WAIT_FRAME_1: | |
if(millis() - right::time >= 150) | |
right::state = right::FRAME_2; | |
break; | |
case right::FRAME_2: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[2].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_2; | |
case right::WAIT_FRAME_2: | |
if(millis() - right::time >= 150) | |
right::state = right::FRAME_3; | |
break; | |
case right::FRAME_3: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[3].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_3; | |
case right::WAIT_FRAME_3: | |
if(millis() - right::time >= 300) | |
right::state = right::FRAME_4; | |
break; | |
case right::FRAME_4: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[4].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_4; | |
case right::WAIT_FRAME_4: | |
if(millis() - right::time >= 150) | |
right::state = right::FRAME_5; | |
break; | |
case right::FRAME_5: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = right_frm[5].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)150); | |
right::time = millis(); | |
right::state = right::WAIT_FRAME_5; | |
case right::WAIT_FRAME_5: | |
if(millis() - right::time >= 150) | |
{ | |
right::state = right::IDLE; | |
internal_trigger[_RIGHT] = false; | |
external_trigger[_RIGHT] = false; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
void homeUpdate() | |
{ | |
switch(home::state) | |
{ | |
case home::IDLE: | |
if(external_trigger[_HOME] || internal_trigger[_HOME]) home::state = home::FRAME_0; | |
else break; | |
case home::FRAME_0: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = home_frm[0].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)200); | |
home::time = millis(); | |
home::state = home::WAIT_FRAME_0; | |
case home::WAIT_FRAME_0: | |
if(millis() - home::time >= 200) | |
{ | |
home::state = home::IDLE; | |
internal_trigger[_HOME] = false; | |
external_trigger[_HOME] = false; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
void titleUpdate() | |
{ | |
switch(title::state) | |
{ | |
case title::IDLE: | |
if(external_trigger[_TITLE] || internal_trigger[_TITLE]) title::state = title::FLAG_0; | |
else break; | |
case title::FLAG_0: | |
flag_title_aaa_0: | |
case title::FRAME_1: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = title_frm[0].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
title::time = millis(); | |
title::state = title::WAIT_FRAME_1; | |
case title::WAIT_FRAME_1: | |
if(millis() - title::time >= 300) | |
title::state = title::FRAME_2; | |
break; | |
case title::FRAME_2: | |
for(int i = 12; i-- > 0; ) | |
_86ME_RUN.positions[i] = title_frm[1].positions[i] & (~servo_mask[i]); | |
_86ME_RUN.playPositions((unsigned long)300); | |
title::time = millis(); | |
title::state = title::WAIT_FRAME_2; | |
case title::WAIT_FRAME_2: | |
if(millis() - title::time >= 300) | |
title::state = title::GOTO_3; | |
break; | |
case title::GOTO_3: | |
if(title::aaa_3++ < 1) goto flag_title_aaa_0; | |
else | |
{ | |
title::aaa_3 = 0; | |
internal_trigger[_TITLE] = false; | |
external_trigger[_TITLE] = false; | |
title::state = title::IDLE; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
void setup() | |
{ | |
Serial.begin(9600); | |
nh.getHardware()->setESP8266(Serial1, 115200); | |
nh.getHardware()->setWiFi("SSID", "PASSWORD"); | |
nh.initNode("ROSSERIAL_SERVER_IP"); | |
nh.subscribe(sub); | |
used_servos[0].attach(2, 500, 2500); | |
used_servos[1].attach(3, 500, 2500); | |
used_servos[2].attach(4, 500, 2500); | |
used_servos[3].attach(5, 500, 2500); | |
used_servos[4].attach(6, 500, 2500); | |
used_servos[5].attach(7, 500, 2500); | |
used_servos[6].attach(8, 500, 2500); | |
used_servos[7].attach(9, 500, 2500); | |
used_servos[8].attach(10, 500, 2500); | |
used_servos[9].attach(11, 500, 2500); | |
used_servos[10].attach(12, 500, 2500); | |
used_servos[11].attach(13, 500, 2500); | |
offsets.offsets[1] = -140; | |
offsets.offsets[3] = -50; | |
offsets.offsets[5] = -50; | |
offsets.offsets[7] = -90; | |
offsets.offsets[9] = -110; | |
offsets.offsets[11] = -100; | |
forward_frm[0].positions[0] = 1700; | |
forward_frm[0].positions[1] = 1500; | |
forward_frm[0].positions[2] = 1300; | |
forward_frm[0].positions[3] = 1750; | |
forward_frm[0].positions[4] = 1700; | |
forward_frm[0].positions[5] = 1500; | |
forward_frm[0].positions[6] = 1700; | |
forward_frm[0].positions[7] = 1750; | |
forward_frm[0].positions[8] = 1300; | |
forward_frm[0].positions[9] = 1500; | |
forward_frm[0].positions[10] = 1700; | |
forward_frm[0].positions[11] = 1750; | |
forward_frm[1].positions[0] = 1700; | |
forward_frm[1].positions[1] = 1500; | |
forward_frm[1].positions[2] = 1300; | |
forward_frm[1].positions[3] = 1500; | |
forward_frm[1].positions[4] = 1700; | |
forward_frm[1].positions[5] = 1500; | |
forward_frm[1].positions[6] = 1700; | |
forward_frm[1].positions[7] = 1500; | |
forward_frm[1].positions[8] = 1300; | |
forward_frm[1].positions[9] = 1500; | |
forward_frm[1].positions[10] = 1700; | |
forward_frm[1].positions[11] = 1500; | |
forward_frm[2].positions[0] = 1700; | |
forward_frm[2].positions[1] = 1750; | |
forward_frm[2].positions[2] = 1300; | |
forward_frm[2].positions[3] = 1500; | |
forward_frm[2].positions[4] = 1700; | |
forward_frm[2].positions[5] = 1750; | |
forward_frm[2].positions[6] = 1700; | |
forward_frm[2].positions[7] = 1500; | |
forward_frm[2].positions[8] = 1300; | |
forward_frm[2].positions[9] = 1750; | |
forward_frm[2].positions[10] = 1700; | |
forward_frm[2].positions[11] = 1500; | |
forward_frm[3].positions[0] = 1300; | |
forward_frm[3].positions[1] = 1750; | |
forward_frm[3].positions[2] = 1700; | |
forward_frm[3].positions[3] = 1500; | |
forward_frm[3].positions[4] = 1300; | |
forward_frm[3].positions[5] = 1750; | |
forward_frm[3].positions[6] = 1300; | |
forward_frm[3].positions[7] = 1500; | |
forward_frm[3].positions[8] = 1700; | |
forward_frm[3].positions[9] = 1750; | |
forward_frm[3].positions[10] = 1300; | |
forward_frm[3].positions[11] = 1500; | |
forward_frm[4].positions[0] = 1300; | |
forward_frm[4].positions[1] = 1500; | |
forward_frm[4].positions[2] = 1700; | |
forward_frm[4].positions[3] = 1500; | |
forward_frm[4].positions[4] = 1300; | |
forward_frm[4].positions[5] = 1500; | |
forward_frm[4].positions[6] = 1300; | |
forward_frm[4].positions[7] = 1500; | |
forward_frm[4].positions[8] = 1700; | |
forward_frm[4].positions[9] = 1500; | |
forward_frm[4].positions[10] = 1300; | |
forward_frm[4].positions[11] = 1500; | |
forward_frm[5].positions[0] = 1300; | |
forward_frm[5].positions[1] = 1500; | |
forward_frm[5].positions[2] = 1700; | |
forward_frm[5].positions[3] = 1750; | |
forward_frm[5].positions[4] = 1300; | |
forward_frm[5].positions[5] = 1500; | |
forward_frm[5].positions[6] = 1300; | |
forward_frm[5].positions[7] = 1750; | |
forward_frm[5].positions[8] = 1700; | |
forward_frm[5].positions[9] = 1500; | |
forward_frm[5].positions[10] = 1300; | |
forward_frm[5].positions[11] = 1750; | |
left_frm[0].positions[0] = 1700; | |
left_frm[0].positions[1] = 1750; | |
left_frm[0].positions[2] = 1300; | |
left_frm[0].positions[3] = 1500; | |
left_frm[0].positions[4] = 1700; | |
left_frm[0].positions[5] = 1750; | |
left_frm[0].positions[6] = 1300; | |
left_frm[0].positions[7] = 1500; | |
left_frm[0].positions[8] = 1700; | |
left_frm[0].positions[9] = 1750; | |
left_frm[0].positions[10] = 1300; | |
left_frm[0].positions[11] = 1500; | |
left_frm[1].positions[0] = 1700; | |
left_frm[1].positions[1] = 1500; | |
left_frm[1].positions[2] = 1300; | |
left_frm[1].positions[3] = 1500; | |
left_frm[1].positions[4] = 1700; | |
left_frm[1].positions[5] = 1500; | |
left_frm[1].positions[6] = 1300; | |
left_frm[1].positions[7] = 1500; | |
left_frm[1].positions[8] = 1700; | |
left_frm[1].positions[9] = 1500; | |
left_frm[1].positions[10] = 1300; | |
left_frm[1].positions[11] = 1500; | |
left_frm[2].positions[0] = 1700; | |
left_frm[2].positions[1] = 1500; | |
left_frm[2].positions[2] = 1300; | |
left_frm[2].positions[3] = 1750; | |
left_frm[2].positions[4] = 1700; | |
left_frm[2].positions[5] = 1500; | |
left_frm[2].positions[6] = 1300; | |
left_frm[2].positions[7] = 1750; | |
left_frm[2].positions[8] = 1700; | |
left_frm[2].positions[9] = 1500; | |
left_frm[2].positions[10] = 1300; | |
left_frm[2].positions[11] = 1750; | |
left_frm[3].positions[0] = 1300; | |
left_frm[3].positions[1] = 1500; | |
left_frm[3].positions[2] = 1700; | |
left_frm[3].positions[3] = 1750; | |
left_frm[3].positions[4] = 1300; | |
left_frm[3].positions[5] = 1500; | |
left_frm[3].positions[6] = 1700; | |
left_frm[3].positions[7] = 1750; | |
left_frm[3].positions[8] = 1300; | |
left_frm[3].positions[9] = 1500; | |
left_frm[3].positions[10] = 1700; | |
left_frm[3].positions[11] = 1750; | |
left_frm[4].positions[0] = 1300; | |
left_frm[4].positions[1] = 1500; | |
left_frm[4].positions[2] = 1700; | |
left_frm[4].positions[3] = 1500; | |
left_frm[4].positions[4] = 1300; | |
left_frm[4].positions[5] = 1500; | |
left_frm[4].positions[6] = 1700; | |
left_frm[4].positions[7] = 1500; | |
left_frm[4].positions[8] = 1300; | |
left_frm[4].positions[9] = 1500; | |
left_frm[4].positions[10] = 1700; | |
left_frm[4].positions[11] = 1500; | |
left_frm[5].positions[0] = 1300; | |
left_frm[5].positions[1] = 1750; | |
left_frm[5].positions[2] = 1700; | |
left_frm[5].positions[3] = 1500; | |
left_frm[5].positions[4] = 1300; | |
left_frm[5].positions[5] = 1750; | |
left_frm[5].positions[6] = 1700; | |
left_frm[5].positions[7] = 1500; | |
left_frm[5].positions[8] = 1300; | |
left_frm[5].positions[9] = 1750; | |
left_frm[5].positions[10] = 1700; | |
left_frm[5].positions[11] = 1500; | |
right_frm[0].positions[0] = 1300; | |
right_frm[0].positions[1] = 1750; | |
right_frm[0].positions[2] = 1700; | |
right_frm[0].positions[3] = 1500; | |
right_frm[0].positions[4] = 1300; | |
right_frm[0].positions[5] = 1750; | |
right_frm[0].positions[6] = 1700; | |
right_frm[0].positions[7] = 1500; | |
right_frm[0].positions[8] = 1300; | |
right_frm[0].positions[9] = 1750; | |
right_frm[0].positions[10] = 1700; | |
right_frm[0].positions[11] = 1500; | |
right_frm[1].positions[0] = 1300; | |
right_frm[1].positions[1] = 1500; | |
right_frm[1].positions[2] = 1700; | |
right_frm[1].positions[3] = 1500; | |
right_frm[1].positions[4] = 1300; | |
right_frm[1].positions[5] = 1500; | |
right_frm[1].positions[6] = 1700; | |
right_frm[1].positions[7] = 1500; | |
right_frm[1].positions[8] = 1300; | |
right_frm[1].positions[9] = 1500; | |
right_frm[1].positions[10] = 1700; | |
right_frm[1].positions[11] = 1500; | |
right_frm[2].positions[0] = 1300; | |
right_frm[2].positions[1] = 1500; | |
right_frm[2].positions[2] = 1700; | |
right_frm[2].positions[3] = 1750; | |
right_frm[2].positions[4] = 1300; | |
right_frm[2].positions[5] = 1500; | |
right_frm[2].positions[6] = 1700; | |
right_frm[2].positions[7] = 1750; | |
right_frm[2].positions[8] = 1300; | |
right_frm[2].positions[9] = 1500; | |
right_frm[2].positions[10] = 1700; | |
right_frm[2].positions[11] = 1750; | |
right_frm[3].positions[0] = 1700; | |
right_frm[3].positions[1] = 1500; | |
right_frm[3].positions[2] = 1300; | |
right_frm[3].positions[3] = 1750; | |
right_frm[3].positions[4] = 1700; | |
right_frm[3].positions[5] = 1500; | |
right_frm[3].positions[6] = 1300; | |
right_frm[3].positions[7] = 1750; | |
right_frm[3].positions[8] = 1700; | |
right_frm[3].positions[9] = 1500; | |
right_frm[3].positions[10] = 1300; | |
right_frm[3].positions[11] = 1750; | |
right_frm[4].positions[0] = 1700; | |
right_frm[4].positions[1] = 1500; | |
right_frm[4].positions[2] = 1300; | |
right_frm[4].positions[3] = 1500; | |
right_frm[4].positions[4] = 1700; | |
right_frm[4].positions[5] = 1500; | |
right_frm[4].positions[6] = 1300; | |
right_frm[4].positions[7] = 1500; | |
right_frm[4].positions[8] = 1700; | |
right_frm[4].positions[9] = 1500; | |
right_frm[4].positions[10] = 1300; | |
right_frm[4].positions[11] = 1500; | |
right_frm[5].positions[0] = 1700; | |
right_frm[5].positions[1] = 1750; | |
right_frm[5].positions[2] = 1300; | |
right_frm[5].positions[3] = 1500; | |
right_frm[5].positions[4] = 1700; | |
right_frm[5].positions[5] = 1750; | |
right_frm[5].positions[6] = 1300; | |
right_frm[5].positions[7] = 1500; | |
right_frm[5].positions[8] = 1700; | |
right_frm[5].positions[9] = 1750; | |
right_frm[5].positions[10] = 1300; | |
right_frm[5].positions[11] = 1500; | |
home_frm[0].positions[0] = 1500; | |
home_frm[0].positions[1] = 1500; | |
home_frm[0].positions[2] = 1500; | |
home_frm[0].positions[3] = 1500; | |
home_frm[0].positions[4] = 1500; | |
home_frm[0].positions[5] = 1500; | |
home_frm[0].positions[6] = 1500; | |
home_frm[0].positions[7] = 1500; | |
home_frm[0].positions[8] = 1500; | |
home_frm[0].positions[9] = 1500; | |
home_frm[0].positions[10] = 1500; | |
home_frm[0].positions[11] = 1500; | |
title_frm[0].positions[0] = 1729; | |
title_frm[0].positions[1] = 1950; | |
title_frm[0].positions[2] = 1500; | |
title_frm[0].positions[3] = 1500; | |
title_frm[0].positions[4] = 1500; | |
title_frm[0].positions[5] = 1500; | |
title_frm[0].positions[6] = 1500; | |
title_frm[0].positions[7] = 1500; | |
title_frm[0].positions[8] = 1500; | |
title_frm[0].positions[9] = 1500; | |
title_frm[0].positions[10] = 1500; | |
title_frm[0].positions[11] = 1500; | |
title_frm[1].positions[0] = 1381; | |
title_frm[1].positions[1] = 1950; | |
title_frm[1].positions[2] = 1500; | |
title_frm[1].positions[3] = 1500; | |
title_frm[1].positions[4] = 1500; | |
title_frm[1].positions[5] = 1500; | |
title_frm[1].positions[6] = 1500; | |
title_frm[1].positions[7] = 1500; | |
title_frm[1].positions[8] = 1500; | |
title_frm[1].positions[9] = 1500; | |
title_frm[1].positions[10] = 1500; | |
title_frm[1].positions[11] = 1500; | |
_86ME_HOME.positions[0] = 1500; | |
_86ME_HOME.positions[1] = 1500; | |
_86ME_HOME.positions[2] = 1500; | |
_86ME_HOME.positions[3] = 1500; | |
_86ME_HOME.positions[4] = 1500; | |
_86ME_HOME.positions[5] = 1500; | |
_86ME_HOME.positions[6] = 1500; | |
_86ME_HOME.positions[7] = 1500; | |
_86ME_HOME.positions[8] = 1500; | |
_86ME_HOME.positions[9] = 1500; | |
_86ME_HOME.positions[10] = 1500; | |
_86ME_HOME.positions[11] = 1500; | |
offsets.setOffsets(); | |
_86ME_HOME.playPositions((unsigned long)0); | |
} | |
void loop() | |
{ | |
updateTrigger(); | |
forwardUpdate(); | |
leftUpdate(); | |
rightUpdate(); | |
homeUpdate(); | |
titleUpdate(); | |
nh.spinOnce(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment