NYANTA man
/
test_master_kourobo2018
てすと
main.cpp
- Committer:
- NYANTA
- Date:
- 2018-07-11
- Revision:
- 0:5516553ff997
File content as of revision 0:5516553ff997:
#include "mbed.h" #define WHEEL_1_ADDRESS 0xA0 #define WHEEL_2_ADDRESS 0xA2 #define WHEEL_3_ADDRESS 0xA4 #define CATAPULT_ADDRESS 0xA6 Serial xbee(D8, D2); I2C i2c(D14, D15); DigitalOut start_led(D13); DigitalOut receive_led(D12); int button_data[8]; int wheel_1_data = 0x30; int wheel_2_data = 0x30; int wheel_3_data = 0x30; int catapult_data = 0x30; int dummy_rcvdata = 0xFF; int button_rcvdata = 0xFF; int RJ_rcvdata = 0x00; int LJ_rcvdata = 0x00; void data_receive(){ dummy_rcvdata = 0xFF; button_rcvdata = 0xFF; RJ_rcvdata = 0x00; LJ_rcvdata = 0x00; dummy_rcvdata = xbee.getc(); if(dummy_rcvdata == 0x00){ button_rcvdata = xbee.getc(); RJ_rcvdata = xbee.getc(); LJ_rcvdata = xbee.getc(); receive_led = 1; } else{ receive_led = 0; } } void setup(){ xbee.baud(9600); xbee.attach(data_receive, Serial::RxIrq); start_led = 1; } void data_analyze(){ wheel_1_data = 0x30; wheel_2_data = 0x30; wheel_3_data = 0x30; catapult_data = 030; int num = 128; for(int i = 7;i >= 0;i--){ if(button_rcvdata >= num){ button_rcvdata = button_rcvdata - num; button_data[i] = 1; } else{ button_data[i] = 0; } num = num / 2; } if(button_data[2] == 1){ catapult_data = 0x17; } else{ catapult_data = 0x30; } /*if(LJ_rcvdata > 31){ LJ_rcvdata = LJ_rcvdata * 0b00001111; } if(LJ_rcvdata > 31){ wheel_1_data = 0x25; wheel_2_data = 0x25; wheel_3_data = 0x25; } else if(LJ_rcvdata > 16){ wheel_1_data = 0x23; wheel_2_data = 0x23; wheel_3_data = 0x23; } else if((LJ_rcvdata < 14) && (LJ_rcvdata > 10)){ wheel_1_data = 0x30; wheel_2_data = 0x30; wheel_3_data = 0x30; } else if(LJ_rcvdata > 8){ wheel_1_data = 0x13; wheel_2_data = 0x13; wheel_3_data = 0x13; } else{ wheel_1_data = 0x15; wheel_2_data = 0x15; wheel_3_data = 0x15; }*/ if(RJ_rcvdata > 0.9){ wheel_2_data = 0x1A; wheel_3_data = 0x2A; } else if(RJ_rcvdata > 0.8){ wheel_2_data = 0x19; wheel_3_data = 0x29; } else if(RJ_rcvdata > 0.7){ wheel_2_data = 0x18; wheel_3_data = 0x28; } else if(RJ_rcvdata > 0.6){ wheel_2_data = 0x17; wheel_3_data = 0x27; } else if(RJ_rcvdata == 0.5){ wheel_2_data = 0x30; wheel_3_data = 0x30; } else if(RJ_rcvdata < 0.4){ wheel_2_data = 0x27; wheel_3_data = 0x17; } else if(RJ_rcvdata < 0.3){ wheel_2_data = 0x28; wheel_3_data = 0x18; } else if(RJ_rcvdata < 0.2){ wheel_2_data = 0x29; wheel_3_data = 0x19; } } void i2c_send(int address, int data){ i2c.start(); i2c.write(address); i2c.write(data); i2c.stop(); } void i2c_allsend(){ i2c_send(WHEEL_1_ADDRESS,wheel_1_data); i2c_send(WHEEL_2_ADDRESS,wheel_2_data); i2c_send(WHEEL_3_ADDRESS,wheel_3_data); i2c_send(CATAPULT_ADDRESS,catapult_data); } int main(){ setup(); while(1){ data_analyze(); //i2c_allsend(); i2c_send(WHEEL_1_ADDRESS,0x11); i2c_send(WHEEL_2_ADDRESS,0x30); i2c_send(WHEEL_3_ADDRESS,0x30); i2c_send(CATAPULT_ADDRESS,0x30); wait(0.5); i2c_send(WHEEL_1_ADDRESS,0x30); i2c_send(WHEEL_2_ADDRESS,0x11); i2c_send(WHEEL_3_ADDRESS,0x30); i2c_send(CATAPULT_ADDRESS,0x30); wait(0.5); i2c_send(WHEEL_1_ADDRESS,0x30); i2c_send(WHEEL_2_ADDRESS,0x30); i2c_send(WHEEL_3_ADDRESS,0x11); i2c_send(CATAPULT_ADDRESS,0x30); wait(0.5); i2c_send(WHEEL_1_ADDRESS,0x30); i2c_send(WHEEL_2_ADDRESS,0x30); i2c_send(WHEEL_3_ADDRESS,0x30); i2c_send(CATAPULT_ADDRESS,0x11); wait(0.5); } }