Robot secondaire

Dependencies:   RoboClaw mbed StepperMotor

Fork of RoboClaw by Simon Emarre

main.cpp

Committer:
sype
Date:
2016-01-05
Revision:
12:d5e21f71c2a9
Parent:
10:ae3178aa94e9
Child:
16:a1ede21a963b

File content as of revision 12:d5e21f71c2a9:

#include "Odometry.h"

#define dt 10000
#define ATTENTE 0
#define GO 1
#define STOP 2

InterruptIn mybutton(USER_BUTTON);
DigitalIn button(USER_BUTTON);
DigitalOut led(LED1);
Ticker ticker;
//Serial pc(USBTX, USBRX);
Serial pc(PA_9, PA_10);
RoboClaw roboclaw(460800, PA_11, PA_12);
Odometry odo(63.2, 63.3, 252, 4096, roboclaw);

int i = 0;

void update_main(void);
void init(void);
void pressed(void);
void unpressed(void);

/** Debut du programme */
int main(void)
{
    init();
    //roboclaw.SpeedAccelDeccelPositionM1M2(ADR, accel_angle, vitesse_angle, deccel_angle, -116878, accel_angle, vitesse_angle, deccel_angle, 116878, 1);
    odo.GotoXY(1800,1500);
    odo.GotoXY(2500,500);
    odo.GotoXY(2000,300);
    odo.GotoXYT(300,1000,0);
    //for(int n=0; n<40; n++) odo.setTheta();
    odo.GotoThet(-PI);
    odo.GotoThet(0);
    wait(2000);
    while(1);
}

void init(void)
{
    pc.baud(9600);
    pc.printf("Hello from main !\n\r");
    wait_ms(500);
    
    odo.setPos(300, 1000, 0);
    roboclaw.ForwardM1(ADR, 0);
    roboclaw.ForwardM2(ADR, 0);
    
    while(button);
    wait(1);
    mybutton.fall(&pressed);
    mybutton.rise(&unpressed);
    ticker.attach_us(&update_main,dt); // 100 Hz
}

void update_main(void)
{
    odo.update_odo();
    //pc.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", odo.getX(), odo.getY(), odo.getTheta()*180/PI);
    //pc.printf("Theta : %3.2f\n\r", odo.getTheta()*180/PI);
    pc.printf("X : %4.2f\n\r", odo.getX());
    //if(pc.readable()) if(pc.getc()=='l') led = !led;
}

void pressed(void)
{
    if(i==0) {
        roboclaw.ForwardM1(ADR, 0);
        roboclaw.ForwardM2(ADR, 0);
        //pc.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", odo.getX(), odo.getY(), odo.getTheta()*180/PI);
        i++;
    }
}

void unpressed(void)
{
    if(i==1) {
        i--;
    }
}