Voili voilou

Dependencies:   RoboClaw StepperMotor mbed

Fork of Robot2016_2-0 by ARES

Committer:
sype
Date:
Fri Dec 04 11:18:13 2015 +0000
Revision:
10:ae3178aa94e9
Parent:
9:e39b218ab20d
Child:
12:5355aed288b0
Child:
14:d5e21f71c2a9
80% Motorisation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sype 0:ad9600df4a70 1 #include "Odometry.h"
sype 0:ad9600df4a70 2
sype 0:ad9600df4a70 3 #define dt 10000
sype 10:ae3178aa94e9 4 #define ATTENTE 0
sype 10:ae3178aa94e9 5 #define GO 1
sype 10:ae3178aa94e9 6 #define STOP 2
sype 0:ad9600df4a70 7
sype 10:ae3178aa94e9 8 InterruptIn mybutton(USER_BUTTON);
sype 10:ae3178aa94e9 9 DigitalIn button(USER_BUTTON);
sype 2:abdf8c6823a1 10 DigitalOut led(LED1);
sype 0:ad9600df4a70 11 Ticker ticker;
sype 10:ae3178aa94e9 12 //Serial pc(USBTX, USBRX);
sype 10:ae3178aa94e9 13 Serial pc(PA_9, PA_10);
sype 10:ae3178aa94e9 14 RoboClaw roboclaw(460800, PA_11, PA_12);
sype 10:ae3178aa94e9 15 Odometry odo(63.2, 63.3, 252, 4096, roboclaw);
sype 10:ae3178aa94e9 16
sype 10:ae3178aa94e9 17 int i = 0;
sype 0:ad9600df4a70 18
sype 0:ad9600df4a70 19 void update_main(void);
sype 2:abdf8c6823a1 20 void init(void);
sype 10:ae3178aa94e9 21 void pressed(void);
sype 10:ae3178aa94e9 22 void unpressed(void);
sype 0:ad9600df4a70 23
IceTeam 9:e39b218ab20d 24 /** Debut du programme */
sype 0:ad9600df4a70 25 int main(void)
sype 10:ae3178aa94e9 26 {
sype 10:ae3178aa94e9 27 double angle_v = 2*PI/5;
sype 10:ae3178aa94e9 28 double distance_v = 200.0;
sype 2:abdf8c6823a1 29 init();
sype 10:ae3178aa94e9 30
sype 10:ae3178aa94e9 31 odo.GotoXYT(500, 100, 0);
sype 10:ae3178aa94e9 32 odo.GotoXYT(500, 50, 0);
sype 10:ae3178aa94e9 33 //odo.GotoXYT(200, 0, 0);
sype 10:ae3178aa94e9 34 //odo.GotoXYT(0, 0, 0);
sype 10:ae3178aa94e9 35
sype 10:ae3178aa94e9 36 //odo.GotoThet(-PI/2);
sype 10:ae3178aa94e9 37 wait(2000);
sype 10:ae3178aa94e9 38 //odo.GotoXYT(2250,500,0);
sype 2:abdf8c6823a1 39 while(1);
sype 2:abdf8c6823a1 40 }
sype 2:abdf8c6823a1 41
sype 2:abdf8c6823a1 42 void init(void)
sype 0:ad9600df4a70 43 {
sype 10:ae3178aa94e9 44 pc.baud(9600);
sype 2:abdf8c6823a1 45 pc.printf("Hello from main !\n\r");
sype 10:ae3178aa94e9 46 wait_ms(500);
sype 10:ae3178aa94e9 47
sype 10:ae3178aa94e9 48 odo.setPos(0, 0, 0);
sype 2:abdf8c6823a1 49 roboclaw.ForwardM1(ADR, 0);
sype 2:abdf8c6823a1 50 roboclaw.ForwardM2(ADR, 0);
sype 10:ae3178aa94e9 51
sype 10:ae3178aa94e9 52 while(button);
sype 10:ae3178aa94e9 53 wait(1);
sype 10:ae3178aa94e9 54 mybutton.fall(&pressed);
sype 10:ae3178aa94e9 55 mybutton.rise(&unpressed);
sype 0:ad9600df4a70 56 ticker.attach_us(&update_main,dt); // 100 Hz
sype 0:ad9600df4a70 57 }
sype 0:ad9600df4a70 58
sype 0:ad9600df4a70 59 void update_main(void)
sype 0:ad9600df4a70 60 {
sype 0:ad9600df4a70 61 odo.update_odo();
sype 10:ae3178aa94e9 62 //pc.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", odo.getX(), odo.getY(), odo.getTheta()*180/PI);
sype 2:abdf8c6823a1 63 //if(pc.readable()) if(pc.getc()=='l') led = !led;
sype 0:ad9600df4a70 64 }
sype 10:ae3178aa94e9 65
sype 10:ae3178aa94e9 66 void pressed(void)
sype 10:ae3178aa94e9 67 {
sype 10:ae3178aa94e9 68 if(i==0) {
sype 10:ae3178aa94e9 69 roboclaw.ForwardM1(ADR, 0);
sype 10:ae3178aa94e9 70 roboclaw.ForwardM2(ADR, 0);
sype 10:ae3178aa94e9 71 //pc.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", odo.getX(), odo.getY(), odo.getTheta()*180/PI);
sype 10:ae3178aa94e9 72 i++;
sype 10:ae3178aa94e9 73 }
sype 10:ae3178aa94e9 74 }
sype 10:ae3178aa94e9 75
sype 10:ae3178aa94e9 76 void unpressed(void)
sype 10:ae3178aa94e9 77 {
sype 10:ae3178aa94e9 78 if(i==1) {
sype 10:ae3178aa94e9 79 i--;
sype 10:ae3178aa94e9 80 }
sype 10:ae3178aa94e9 81 }