Capteur_US

Dependencies:   mbed DRV8825

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()
{
    
}