AresENSEA-CDF2020
/
AresCDFMainCode_capteur_US
Capteur_US
odo_asserv.cpp
- Committer:
- Nanaud
- Date:
- 2020-09-11
- Revision:
- 11:e62133022f88
- Parent:
- 10:0714feaaaee1
- Child:
- 12:2c312916a621
File content as of revision 11:e62133022f88:
//Nom du fichier : odo_asserv.cpp #include "pins.h" ///// VARIABLES // Coeff à définir empiriquement const double coeffGLong = 5.956, coeffDLong = -5.956; // constantes permettant la transformation tic/millimètre //const double coeffGAngl = 12.4516203705, coeffDAngl = 12.725; // constantes permettant la transformation tic/degré const double coeffGAngl = 12*2*Pi*53791, coeffDAngl = 12*2*Pi*54972; // constantes permettant la transformation tic/radian long comptG = 0, comptD = 0; // nb de tics comptés pour chaque codeur ///// INTERRUPTIONS CODEURS void cdgaRise() { if(cdgB) comptG++; else comptG--; } void cddaRise() { if(cddB) comptD++; else comptD--; } ///// ODOMÉTRIE // Variables et constantes #define NbPulseCodeur 1000 #define entraxe 245 float x = 0, y = 0, phi = 0; float x0 = 0, y0 = 0, phi0 = 0; float dDist = 0, dAngl = 0; float distG = 0, distD = 0; // Distance parcourue par chaque roue void odometrie() { x0 = x; y0 = y; phi0 = phi; dDist = ((comptG * coeffGLong) + (comptD * coeffDLong)) / 2; dAngl = (comptD * coeffDAngl) - (comptG * coeffGAngl); x = x0 + dDist * cos(dAngl); y = y0 + dDist * sin(dAngl); phi = phi0 + dAngl; } ///// CONSIGNE ANGLE void angle() { }