Prog Thib Ju
Dependencies: mbed
main.cpp@2:8817ad0d0a78, 2019-05-02 (annotated)
- Committer:
- JulienB1
- Date:
- Thu May 02 10:25:13 2019 +0000
- Revision:
- 2:8817ad0d0a78
- Parent:
- 1:7d94c1b86ad6
- Child:
- 3:f56ec086a122
FUSION
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JulienB1 | 0:5535594ef331 | 1 | #include "mbed.h" |
JulienB1 | 0:5535594ef331 | 2 | |
MaxLaMenace | 1:7d94c1b86ad6 | 3 | // Definition des variables : moteur |
JulienB1 | 0:5535594ef331 | 4 | PwmOut moteur1(D10); |
JulienB1 | 0:5535594ef331 | 5 | PwmOut moteur2(D9); |
JulienB1 | 0:5535594ef331 | 6 | DigitalOut Trig(D12); |
JulienB1 | 0:5535594ef331 | 7 | InterruptIn reception(D8); |
JulienB1 | 0:5535594ef331 | 8 | |
MaxLaMenace | 1:7d94c1b86ad6 | 9 | Serial pc(USBTX, USBRX); |
JulienB1 | 0:5535594ef331 | 10 | |
MaxLaMenace | 1:7d94c1b86ad6 | 11 | Timer t2; |
JulienB1 | 2:8817ad0d0a78 | 12 | |
JulienB1 | 0:5535594ef331 | 13 | double rc; |
JulienB1 | 0:5535594ef331 | 14 | |
MaxLaMenace | 1:7d94c1b86ad6 | 15 | // Definition des variables : codeur |
JulienB1 | 2:8817ad0d0a78 | 16 | InterruptIn ComptIncr(D7); |
MaxLaMenace | 1:7d94c1b86ad6 | 17 | |
MaxLaMenace | 1:7d94c1b86ad6 | 18 | Timer t1; |
MaxLaMenace | 1:7d94c1b86ad6 | 19 | |
MaxLaMenace | 1:7d94c1b86ad6 | 20 | float tps1; |
MaxLaMenace | 1:7d94c1b86ad6 | 21 | float tps2; |
JulienB1 | 2:8817ad0d0a78 | 22 | float tps3; |
JulienB1 | 2:8817ad0d0a78 | 23 | float dt; |
MaxLaMenace | 1:7d94c1b86ad6 | 24 | int a; |
JulienB1 | 2:8817ad0d0a78 | 25 | double v; |
JulienB1 | 2:8817ad0d0a78 | 26 | float dist; |
JulienB1 | 2:8817ad0d0a78 | 27 | float dist_securite; |
MaxLaMenace | 1:7d94c1b86ad6 | 28 | |
MaxLaMenace | 1:7d94c1b86ad6 | 29 | // Definition des fonctions : moteur |
MaxLaMenace | 1:7d94c1b86ad6 | 30 | |
JulienB1 | 0:5535594ef331 | 31 | void front_montant() |
JulienB1 | 0:5535594ef331 | 32 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 33 | t2.start(); |
JulienB1 | 0:5535594ef331 | 34 | } |
JulienB1 | 0:5535594ef331 | 35 | |
JulienB1 | 0:5535594ef331 | 36 | void front_descendant() |
JulienB1 | 0:5535594ef331 | 37 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 38 | t2.stop(); |
JulienB1 | 2:8817ad0d0a78 | 39 | tps3=t2.read(); |
JulienB1 | 2:8817ad0d0a78 | 40 | dist=174.9*tps3; |
JulienB1 | 2:8817ad0d0a78 | 41 | // pc.printf("dist = %lf \r\n", dist); |
MaxLaMenace | 1:7d94c1b86ad6 | 42 | t2.reset(); |
JulienB1 | 2:8817ad0d0a78 | 43 | // if (dist == 0.0000){ rc = 1;} |
JulienB1 | 2:8817ad0d0a78 | 44 | /* if (dist<=v*2){ rc = 0;} |
JulienB1 | 2:8817ad0d0a78 | 45 | if (dist<= v*3 && dist>v*2){ rc = 0.2;} |
JulienB1 | 2:8817ad0d0a78 | 46 | if (dist<= v*4 && dist>v*3){ rc = 0.4;} |
JulienB1 | 2:8817ad0d0a78 | 47 | if (dist<= v*5 && dist>v*4){ rc = 0.6;} |
JulienB1 | 2:8817ad0d0a78 | 48 | if (dist<= v*6 && dist>v*5){ rc = 0.8;} |
JulienB1 | 2:8817ad0d0a78 | 49 | if (dist >= v*6) { rc = 1; }*/ |
JulienB1 | 2:8817ad0d0a78 | 50 | //if (dist<= dist_securite){rc = rc-rc/200;} |
JulienB1 | 2:8817ad0d0a78 | 51 | //if (dist> dist_securite){rc = rc+(rc+1)/200;} |
JulienB1 | 2:8817ad0d0a78 | 52 | //if (dist<=0.1) {rc = 0;} |
JulienB1 | 2:8817ad0d0a78 | 53 | rc= 1; |
JulienB1 | 0:5535594ef331 | 54 | moteur2.write(rc); |
MaxLaMenace | 1:7d94c1b86ad6 | 55 | |
JulienB1 | 2:8817ad0d0a78 | 56 | // pc.printf("RC = %lf \r\n", rc); |
JulienB1 | 2:8817ad0d0a78 | 57 | |
JulienB1 | 0:5535594ef331 | 58 | } |
JulienB1 | 0:5535594ef331 | 59 | |
MaxLaMenace | 1:7d94c1b86ad6 | 60 | // Definition des fonctions : codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 61 | |
MaxLaMenace | 1:7d94c1b86ad6 | 62 | void vitesse(); |
MaxLaMenace | 1:7d94c1b86ad6 | 63 | |
MaxLaMenace | 1:7d94c1b86ad6 | 64 | void vitesse(){ |
MaxLaMenace | 1:7d94c1b86ad6 | 65 | if (a == 0){ |
JulienB1 | 2:8817ad0d0a78 | 66 | tps1 = t1.read(); |
JulienB1 | 2:8817ad0d0a78 | 67 | } |
JulienB1 | 2:8817ad0d0a78 | 68 | a++; |
JulienB1 | 2:8817ad0d0a78 | 69 | if (a == 8) { |
MaxLaMenace | 1:7d94c1b86ad6 | 70 | tps2 = t1.read(); |
JulienB1 | 2:8817ad0d0a78 | 71 | dt = tps2 - tps1; |
JulienB1 | 2:8817ad0d0a78 | 72 | v = 0.0201056/dt; // (8/25)*2*pi*4.5 cm de rayon |
JulienB1 | 2:8817ad0d0a78 | 73 | // pc.printf("v = %lf\n", v); |
JulienB1 | 2:8817ad0d0a78 | 74 | // pc.printf("dt = %f\n", 1/dt); |
MaxLaMenace | 1:7d94c1b86ad6 | 75 | a = 0; |
JulienB1 | 2:8817ad0d0a78 | 76 | dist_securite = 6*v; |
MaxLaMenace | 1:7d94c1b86ad6 | 77 | //printf("Vitesse = %f tours/s\n", 10/t.read()); |
MaxLaMenace | 1:7d94c1b86ad6 | 78 | } |
MaxLaMenace | 1:7d94c1b86ad6 | 79 | } |
MaxLaMenace | 1:7d94c1b86ad6 | 80 | |
MaxLaMenace | 1:7d94c1b86ad6 | 81 | // Debut du main |
JulienB1 | 0:5535594ef331 | 82 | int main() |
JulienB1 | 0:5535594ef331 | 83 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 84 | |
MaxLaMenace | 1:7d94c1b86ad6 | 85 | |
MaxLaMenace | 1:7d94c1b86ad6 | 86 | // Initialisation Moteur |
MaxLaMenace | 1:7d94c1b86ad6 | 87 | t2.reset(); |
JulienB1 | 0:5535594ef331 | 88 | reception.rise(&front_montant); |
JulienB1 | 0:5535594ef331 | 89 | reception.fall(&front_descendant); |
JulienB1 | 0:5535594ef331 | 90 | moteur1.period_ms(10); |
JulienB1 | 0:5535594ef331 | 91 | moteur2.period_ms(10); |
JulienB1 | 0:5535594ef331 | 92 | moteur1.write(0); |
JulienB1 | 0:5535594ef331 | 93 | moteur2.write(0); |
JulienB1 | 0:5535594ef331 | 94 | pc.baud(9600); |
JulienB1 | 0:5535594ef331 | 95 | |
MaxLaMenace | 1:7d94c1b86ad6 | 96 | // Initialisation Codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 97 | a = 0; |
JulienB1 | 2:8817ad0d0a78 | 98 | dt = 0; |
MaxLaMenace | 1:7d94c1b86ad6 | 99 | t1.start(); |
MaxLaMenace | 1:7d94c1b86ad6 | 100 | |
MaxLaMenace | 1:7d94c1b86ad6 | 101 | ComptIncr.rise(&vitesse); |
MaxLaMenace | 1:7d94c1b86ad6 | 102 | |
MaxLaMenace | 1:7d94c1b86ad6 | 103 | // Debut du while |
JulienB1 | 0:5535594ef331 | 104 | while(1) |
JulienB1 | 0:5535594ef331 | 105 | { |
MaxLaMenace | 1:7d94c1b86ad6 | 106 | // Partie moteur |
JulienB1 | 0:5535594ef331 | 107 | Trig = 1; |
JulienB1 | 2:8817ad0d0a78 | 108 | pc.printf("dist = %f \r\n", dist); |
JulienB1 | 2:8817ad0d0a78 | 109 | pc.printf("RC = %lf \r\n", rc); |
JulienB1 | 2:8817ad0d0a78 | 110 | pc.printf("v = %lf\n", v); |
JulienB1 | 2:8817ad0d0a78 | 111 | |
JulienB1 | 0:5535594ef331 | 112 | wait(0.001); |
JulienB1 | 0:5535594ef331 | 113 | Trig =0 ; |
JulienB1 | 0:5535594ef331 | 114 | wait(0.001); |
MaxLaMenace | 1:7d94c1b86ad6 | 115 | |
JulienB1 | 0:5535594ef331 | 116 | |
MaxLaMenace | 1:7d94c1b86ad6 | 117 | // Partie codeur |
MaxLaMenace | 1:7d94c1b86ad6 | 118 | //printf("Compteur = %d\n", a); |
MaxLaMenace | 1:7d94c1b86ad6 | 119 | //printf("Temps 1 = %f\n", tps1); |
MaxLaMenace | 1:7d94c1b86ad6 | 120 | //printf("Temps 2 = %f\n", tps2); |
MaxLaMenace | 1:7d94c1b86ad6 | 121 | //printf("Test temps 1 = %f\n", b); |
JulienB1 | 0:5535594ef331 | 122 | } |
JulienB1 | 0:5535594ef331 | 123 | } |