Work in progress...
Dependencies: ESC FreeIMU mbed-rtos mbed
Experiment - work in progress...
Revision 7:cda17cffec3c, committed 2014-05-24
- Comitter:
- MatteoT
- Date:
- Sat May 24 17:42:03 2014 +0000
- Parent:
- 6:4ddd68260f76
- Commit message:
- experiments (going to first launch)
Changed in this revision
EthernetInterface.lib | Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/EthernetInterface.lib Tue May 13 22:56:44 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/mbed_official/code/EthernetInterface/#f6ec7a025939
--- a/main.cpp Tue May 13 22:56:44 2014 +0000 +++ b/main.cpp Sat May 24 17:42:03 2014 +0000 @@ -52,15 +52,15 @@ //------------------------------------------------------------------------------- //Setup ESCs - ESC esc1(p23); esc1=0; - ESC esc2(p24); esc1=0; - ESC esc3(p25); esc1=0; - ESC esc4(p26); esc1=0; + ESC esc1(p24); esc1=0; + ESC esc2(p23); esc2=0; + ESC esc3(p22); esc3=0; + ESC esc4(p21); esc4=0; //Setup status leds - DigitalOut led_imu(LED_IMU); led_imu = 0; - DigitalOut led_esc(LED_ESC); led_esc = 0; - DigitalOut led_txrx(LED_TXRX); led_txrx = 0; + DigitalOut led_imu(LED_IMU); led_imu = 0; + PwmOut led_esc(LED_ESC); led_esc = 0; + DigitalOut led_txrx(LED_TXRX); led_txrx = 0; FAST_FLASH_ON(led_esc,5); //Setup remote control @@ -160,7 +160,7 @@ QUAD_STATE_UPDATE_DT(mainQuadState,main,dt_timer) //Elaborate inputs to determinate outputs - led_esc = 1; + //led_esc = 1; {//Roll PID float previous = mainQuadState.pid_rotation_r_error; @@ -252,6 +252,15 @@ } } + if (mainQuadState.actual_throttle_1 > 1) mainQuadState.actual_throttle_1 = 1; + else if (mainQuadState.actual_throttle_1 < 0) mainQuadState.actual_throttle_1 = 0; + if (mainQuadState.actual_throttle_2 > 1) mainQuadState.actual_throttle_2 = 1; + else if (mainQuadState.actual_throttle_2 < 0) mainQuadState.actual_throttle_2 = 0; + if (mainQuadState.actual_throttle_3 > 1) mainQuadState.actual_throttle_3 = 1; + else if (mainQuadState.actual_throttle_3 < 0) mainQuadState.actual_throttle_3 = 0; + if (mainQuadState.actual_throttle_4 > 1) mainQuadState.actual_throttle_4 = 1; + else if (mainQuadState.actual_throttle_4 < 0) mainQuadState.actual_throttle_4 = 0; + //OUTPUT //------------------------------------------------------------------------------- @@ -267,7 +276,7 @@ esc2(); esc3(); esc4(); - led_esc = 0; + led_esc = mainQuadState.actual_throttle_1; } //end of 1/8 steps @@ -276,12 +285,26 @@ //REMOTE INPUT/OUTPUT EXCHANGE //------------------------------------------------------------------------------- - led_txrx = 1; + txQuadState = mainQuadState; //send info back txQuadState.timestamp = time(NULL); if(TXRX_stateExchange(txQuadState,rxQuadState)){ + + led_txrx = 1; + mainQuadState.average_rx_dt = rxQuadState.average_rx_dt; mainQuadState.actual_rx_dt = rxQuadState.actual_rx_dt; + + mainQuadState.pid_rotation_r_kP = rxQuadState.pid_rotation_r_kP; + mainQuadState.pid_rotation_r_kI = rxQuadState.pid_rotation_r_kI; + mainQuadState.pid_rotation_r_kD = rxQuadState.pid_rotation_r_kD; + mainQuadState.pid_rotation_p_kP = rxQuadState.pid_rotation_p_kP; + mainQuadState.pid_rotation_p_kI = rxQuadState.pid_rotation_p_kI; + mainQuadState.pid_rotation_p_kD = rxQuadState.pid_rotation_p_kD; + mainQuadState.pid_rotation_y_kP = rxQuadState.pid_rotation_y_kP; + mainQuadState.pid_rotation_y_kI = rxQuadState.pid_rotation_y_kI; + mainQuadState.pid_rotation_y_kD = rxQuadState.pid_rotation_y_kD; + mainQuadState.ZERO_MEANS_ZERO_ALL_MOTORS_NOW__DANGER = rxQuadState.ZERO_MEANS_ZERO_ALL_MOTORS_NOW__DANGER; if(mainQuadState.actual_rx_dt >= 100.0 * mainQuadState.target_rx_dt) mainQuadState.ZERO_MEANS_ZERO_ALL_MOTORS_NOW__DANGER = 0; //experiments only ////NOTE: FIXME: THAT'S ABSOLUTELY UNSAFE WHILE FLYING!!!