AresENSEA-CDF2020
/
AresCDFMainCode_capteur_US
Capteur_US
odo_asserv.cpp
- Committer:
- Nanaud
- Date:
- 2020-09-11
- Revision:
- 10:0714feaaaee1
- Parent:
- 6:ea6b30c4bb01
- Child:
- 11:e62133022f88
File content as of revision 10:0714feaaaee1:
//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.75, coeffDAngl = 12.44; // constantes permettant la transformation tic/degré 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() { }