svoe

Dependencies:   mbed mbed-STM32F103C8T6 MPU6050_1

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?

UserRevisionLine numberNew 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