svoe
Dependencies: mbed mbed-STM32F103C8T6 MPU6050_1
common.h@23:bc05a104be10, 2019-08-06 (annotated)
- Committer:
- dima285
- Date:
- Tue Aug 06 14:13:55 2019 +0000
- Branch:
- svoe
- Revision:
- 23:bc05a104be10
- Parent:
- 22:14e85f2068c7
06.08.19
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Stas285 | 1:e2a6e523bf1f | 1 | Serial wifi(PA_9, PA_10); |
Stas285 | 15:960b922433d1 | 2 | Serial sound_out(PB_10, PB_11); |
Stas285 | 15:960b922433d1 | 3 | Serial sound_in(PA_2, PA_3); |
dima285 | 17:bd6b6ac89e0e | 4 | VL53L1X glaz(PB_9,PB_8); |
Stas285 | 6:6e89cdc3db92 | 5 | //USBSerial usb_serial(0x1f00, 0x2012, 0x0001, false); |
dima285 | 19:2fe650d29823 | 6 | DigitalOut myled(LED1); |
Stas285 | 1:e2a6e523bf1f | 7 | DigitalOut test(PB_15); //Test pin for diagnostics and debugging |
dima285 | 19:2fe650d29823 | 8 | |
Stas285 | 1:e2a6e523bf1f | 9 | int volatile proc_counter; //(3e5 - 2e6 idle, 2e5 - 5e5 at motion) / per 50 mS |
dima285 | 9:8f98b1c277a4 | 10 | |
dima285 | 12:721a9ea55e91 | 11 | float const t_step = 0.02;//SI realtime step |
Stas285 | 15:960b922433d1 | 12 | float time_sec; |
dima285 | 12:721a9ea55e91 | 13 | |
Stas285 | 15:960b922433d1 | 14 | float const g = 9.81;//SI |
Stas285 | 15:960b922433d1 | 15 | float const pi = 3.1415926535; |
dima285 | 12:721a9ea55e91 | 16 | float const r_wheel = 0.038;//SI |
dima285 | 12:721a9ea55e91 | 17 | float const center_mas = 0.022;//SI (ot osi) |
dima285 | 12:721a9ea55e91 | 18 | float const mass = 1.3;//SI |
dima285 | 12:721a9ea55e91 | 19 | float const m_inert = 5e-3;//SI |
dima285 | 12:721a9ea55e91 | 20 | float const half_axis = 0.08;//SI |
dima285 | 12:721a9ea55e91 | 21 | float const ppr = 3200;//pulses per revolution |
dima285 | 23:bc05a104be10 | 22 | float const deg5_rad = 0.08726646; //5/360*2*pi; //5 gradusov v radianah |
dima285 | 23:bc05a104be10 | 23 | float const pi2_byte = 40.743665431; //256/2/pi; |
dima285 | 12:721a9ea55e91 | 24 | |
dima285 | 12:721a9ea55e91 | 25 | struct coord{ |
Stas285 | 15:960b922433d1 | 26 | float x; //m //vpered |
Stas285 | 15:960b922433d1 | 27 | float y; //m //vpravo |
Stas285 | 15:960b922433d1 | 28 | float azimuth; // rad [-pi;+pi] |
Stas285 | 15:960b922433d1 | 29 | float speed; //m/s |
Stas285 | 15:960b922433d1 | 30 | float path; //m |
dima285 | 20:e73f49ba5001 | 31 | float omega; //rad/s |
dima285 | 20:e73f49ba5001 | 32 | float accel; |
dima285 | 20:e73f49ba5001 | 33 | float eps; |
dima285 | 20:e73f49ba5001 | 34 | bool dir; |
dima285 | 23:bc05a104be10 | 35 | int echo_cm; |
dima285 | 23:bc05a104be10 | 36 | float echo_azimuth; |
dima285 | 12:721a9ea55e91 | 37 | }; |
dima285 | 12:721a9ea55e91 | 38 | |
dima285 | 12:721a9ea55e91 | 39 | coord current; |
dima285 | 12:721a9ea55e91 | 40 | coord target; |
dima285 | 20:e73f49ba5001 | 41 | coord delta;//odin raz i vse (v analize obstacle) |
dima285 | 20:e73f49ba5001 | 42 | coord max; |
dima285 | 20:e73f49ba5001 | 43 | coord theor; |
dima285 | 12:721a9ea55e91 | 44 | |
dima285 | 20:e73f49ba5001 | 45 | //smotri da,max v system.h |
dima285 | 20:e73f49ba5001 | 46 | float da; |
dima285 | 20:e73f49ba5001 | 47 | |
dima285 | 20:e73f49ba5001 | 48 | float balance_prop = 1.2; |
dima285 | 22:14e85f2068c7 | 49 | float balance_diff = 4;//4 |
dima285 | 22:14e85f2068c7 | 50 | float balance_int = 5; |
dima285 | 22:14e85f2068c7 | 51 | float balance_integral; |
dima285 | 22:14e85f2068c7 | 52 | float x_prop = 45;//100; |
dima285 | 22:14e85f2068c7 | 53 | float x_diff = 45;//100; |
dima285 | 22:14e85f2068c7 | 54 | float x_int = 8;//3 |
dima285 | 22:14e85f2068c7 | 55 | float x_integral; |
dima285 | 22:14e85f2068c7 | 56 | |
dima285 | 20:e73f49ba5001 | 57 | float azimuth_prop = 40; |
Stas285 | 15:960b922433d1 | 58 | float azimuth_diff = 10;//15; |
dima285 | 12:721a9ea55e91 | 59 | |
dima285 | 22:14e85f2068c7 | 60 | float coord_accuracy = 0.04; |
Stas285 | 15:960b922433d1 | 61 | bool coord_ready; |
dima285 | 13:789b451cc27d | 62 | |
Stas285 | 15:960b922433d1 | 63 | bool fall_flag; |
dima285 | 13:789b451cc27d | 64 | |
Stas285 | 15:960b922433d1 | 65 | float trajectory [10][3] = {{0,0,0},{0.2,0.2,pi/2},{0,0.4,pi},{-0.2,0.2,-pi/2},{0,0},{0.2,-0.2,-pi/2},{0,-0.4,-pi},{-0.2,-0.2,pi/2},{0,0,0}}; |
dima285 | 22:14e85f2068c7 | 66 | float traj_1D [12] = {0,0.05,0,0.1,0,0.2,0,0.5,0,1,0,2}; |
Stas285 | 15:960b922433d1 | 67 | |
dima285 | 17:bd6b6ac89e0e | 68 | bool motion_flag; |
dima285 | 22:14e85f2068c7 | 69 | int delay_counter;//задержка между шагами сервы |
dima285 | 17:bd6b6ac89e0e | 70 | int serva_counter; |
dima285 | 19:2fe650d29823 | 71 | int delay2_counter; |
dima285 | 19:2fe650d29823 | 72 | int fall_timer; |
dima285 | 22:14e85f2068c7 | 73 | //int motion_timeout; |
dima285 | 19:2fe650d29823 | 74 | int motion_mode; |
dima285 | 22:14e85f2068c7 | 75 | int timeout_counter; |
dima285 | 20:e73f49ba5001 | 76 | #define STOP 0 |
dima285 | 20:e73f49ba5001 | 77 | #define GO 2 |
dima285 | 20:e73f49ba5001 | 78 | #define ROTATE 1 |
dima285 | 20:e73f49ba5001 | 79 | |
dima285 | 23:bc05a104be10 | 80 | bool scan_360_flag; |
dima285 | 23:bc05a104be10 | 81 | int scan_360_counter; |
dima285 | 23:bc05a104be10 | 82 | int array_360_cm[100]; //full scan array |
dima285 | 23:bc05a104be10 | 83 | float array_360_rad[100]; |
dima285 | 23:bc05a104be10 | 84 | int echo_delay_counter; |
dima285 | 20:e73f49ba5001 | 85 |