Robot secondaire

Dependencies:   RoboClaw mbed StepperMotor

Fork of RoboClaw by Simon Emarre

Committer:
sype
Date:
Wed Apr 13 11:27:34 2016 +0000
Revision:
41:b5a2fbc20beb
Child:
44:b1fd7489369f
Impl?mentation des dispositifs du robot

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sype 41:b5a2fbc20beb 1 #include "func.h"
sype 41:b5a2fbc20beb 2
sype 41:b5a2fbc20beb 3 void pressed(void)
sype 41:b5a2fbc20beb 4 {
sype 41:b5a2fbc20beb 5 if(i==0) {
sype 41:b5a2fbc20beb 6 roboclaw.ForwardM1(ADR, 0);
sype 41:b5a2fbc20beb 7 roboclaw.ForwardM2(ADR, 0);
sype 41:b5a2fbc20beb 8 i++;
sype 41:b5a2fbc20beb 9 }
sype 41:b5a2fbc20beb 10 }
sype 41:b5a2fbc20beb 11
sype 41:b5a2fbc20beb 12 void unpressed(void)
sype 41:b5a2fbc20beb 13 {
sype 41:b5a2fbc20beb 14 if(i==1) {
sype 41:b5a2fbc20beb 15 i--;
sype 41:b5a2fbc20beb 16 }
sype 41:b5a2fbc20beb 17 }
sype 41:b5a2fbc20beb 18
sype 41:b5a2fbc20beb 19 void ELpressed(void)
sype 41:b5a2fbc20beb 20 {
sype 41:b5a2fbc20beb 21 //bleu = 1;
sype 41:b5a2fbc20beb 22 EL = true;
sype 41:b5a2fbc20beb 23 }
sype 41:b5a2fbc20beb 24 void ELunpressed(void)
sype 41:b5a2fbc20beb 25 {
sype 41:b5a2fbc20beb 26 //bleu = 0;
sype 41:b5a2fbc20beb 27 EL = false;
sype 41:b5a2fbc20beb 28 }
sype 41:b5a2fbc20beb 29
sype 41:b5a2fbc20beb 30 void EZpressed(void)
sype 41:b5a2fbc20beb 31 {
sype 41:b5a2fbc20beb 32 //blanc = 1;
sype 41:b5a2fbc20beb 33 EZ = true;
sype 41:b5a2fbc20beb 34 }
sype 41:b5a2fbc20beb 35 void EZunpressed(void)
sype 41:b5a2fbc20beb 36 {
sype 41:b5a2fbc20beb 37 //blanc = 0;
sype 41:b5a2fbc20beb 38 EZ = false;
sype 41:b5a2fbc20beb 39 }
sype 41:b5a2fbc20beb 40
sype 41:b5a2fbc20beb 41 void ERpressed(void)
sype 41:b5a2fbc20beb 42 {
sype 41:b5a2fbc20beb 43 //rouge = 1;
sype 41:b5a2fbc20beb 44 ER = true;
sype 41:b5a2fbc20beb 45 }
sype 41:b5a2fbc20beb 46 void ERunpressed(void)
sype 41:b5a2fbc20beb 47 {
sype 41:b5a2fbc20beb 48 //rouge = 0;
sype 41:b5a2fbc20beb 49 ER = 0;
sype 41:b5a2fbc20beb 50 }
sype 41:b5a2fbc20beb 51
sype 41:b5a2fbc20beb 52 void JPO(void)
sype 41:b5a2fbc20beb 53 {
sype 41:b5a2fbc20beb 54 char c = logger.getc();
sype 41:b5a2fbc20beb 55 if(c=='z') {
sype 41:b5a2fbc20beb 56 if (state != 1) {
sype 41:b5a2fbc20beb 57 state = 1;
sype 41:b5a2fbc20beb 58 logger.printf("Avant (Z) \r\n");
sype 41:b5a2fbc20beb 59 roboclaw.SpeedAccelM1(ADR, accel_angle, vitesse_angle);
sype 41:b5a2fbc20beb 60 roboclaw.SpeedAccelM2(ADR, accel_angle, vitesse_angle);
sype 41:b5a2fbc20beb 61 }
sype 41:b5a2fbc20beb 62 } else if(c == 's') {
sype 41:b5a2fbc20beb 63 if (state != 2) {
sype 41:b5a2fbc20beb 64 state = 2;
sype 41:b5a2fbc20beb 65 logger.printf("Stop (S) \r\n");
sype 41:b5a2fbc20beb 66 roboclaw.SpeedAccelM1(ADR, accel_angle, 0);
sype 41:b5a2fbc20beb 67 roboclaw.SpeedAccelM2(ADR, accel_angle, 0);
sype 41:b5a2fbc20beb 68 }
sype 41:b5a2fbc20beb 69 } else if(c == 'd') {
sype 41:b5a2fbc20beb 70 if (state != 3) {
sype 41:b5a2fbc20beb 71 state = 3;
sype 41:b5a2fbc20beb 72 logger.printf("Droite (D) \r\n");
sype 41:b5a2fbc20beb 73 roboclaw.SpeedAccelM1(ADR, accel_angle, -vitesse_angle);
sype 41:b5a2fbc20beb 74 roboclaw.SpeedAccelM2(ADR, accel_angle, vitesse_angle);
sype 41:b5a2fbc20beb 75 }
sype 41:b5a2fbc20beb 76 } else if(c == 'q') {
sype 41:b5a2fbc20beb 77 if (state != 4) {
sype 41:b5a2fbc20beb 78 state = 4;
sype 41:b5a2fbc20beb 79 logger.printf("Gauche (Q)\r\n");
sype 41:b5a2fbc20beb 80 roboclaw.SpeedAccelM1(ADR, accel_angle, vitesse_angle);
sype 41:b5a2fbc20beb 81 roboclaw.SpeedAccelM2(ADR, accel_angle, -vitesse_angle);
sype 41:b5a2fbc20beb 82 }
sype 41:b5a2fbc20beb 83 } else if(c == 'x') {
sype 41:b5a2fbc20beb 84 if (state != 5) {
sype 41:b5a2fbc20beb 85 state = 5;
sype 41:b5a2fbc20beb 86 roboclaw.SpeedAccelM1(ADR, accel_angle, -vitesse_angle);
sype 41:b5a2fbc20beb 87 roboclaw.SpeedAccelM2(ADR, accel_angle, -vitesse_angle);
sype 41:b5a2fbc20beb 88 }
sype 41:b5a2fbc20beb 89 } else {
sype 41:b5a2fbc20beb 90 if (state != 0) {
sype 41:b5a2fbc20beb 91 roboclaw.SpeedAccelM1M2(ADR, accel_angle, 0, accel_angle, 0);
sype 41:b5a2fbc20beb 92 state = 0;
sype 41:b5a2fbc20beb 93 }
sype 41:b5a2fbc20beb 94 }
sype 41:b5a2fbc20beb 95 }
sype 41:b5a2fbc20beb 96
sype 41:b5a2fbc20beb 97 void goHome(void)
sype 41:b5a2fbc20beb 98 {
sype 41:b5a2fbc20beb 99 while(EZ==false) ZMot.step(1, 0, DELAY);
sype 41:b5a2fbc20beb 100 while(ER==false) RMot.step(1, 0, DELAY);
sype 41:b5a2fbc20beb 101 RMot.step(10, 1, DELAY);
sype 41:b5a2fbc20beb 102 RMot.step(5, 0, DELAY);
sype 41:b5a2fbc20beb 103 while(EL==false) LMot.step(1, 0, DELAY);
sype 41:b5a2fbc20beb 104 LMot.step(10, 1, DELAY);
sype 41:b5a2fbc20beb 105 LMot.step(5, 0, DELAY);
sype 41:b5a2fbc20beb 106 }
sype 41:b5a2fbc20beb 107
sype 41:b5a2fbc20beb 108 void checkAround(void)
sype 41:b5a2fbc20beb 109 {
sype 41:b5a2fbc20beb 110 if(capt1 > SEUIL+0.1) bleu = 1;
sype 41:b5a2fbc20beb 111 else bleu = 0;
sype 41:b5a2fbc20beb 112 if(capt2 > SEUIL) blanc = 1;
sype 41:b5a2fbc20beb 113 else blanc = 0;
sype 41:b5a2fbc20beb 114 if(capt3 > SEUIL+0.1) rouge = 1;
sype 41:b5a2fbc20beb 115 else rouge = 0;
sype 41:b5a2fbc20beb 116 }
sype 41:b5a2fbc20beb 117
sype 41:b5a2fbc20beb 118 void init_ax12(void)
sype 41:b5a2fbc20beb 119 {
sype 41:b5a2fbc20beb 120 left_hand.setMode(0);
sype 41:b5a2fbc20beb 121 wait_ms(10);
sype 41:b5a2fbc20beb 122 right_hand.setMode(0);
sype 41:b5a2fbc20beb 123 wait_ms(50);
sype 41:b5a2fbc20beb 124 left_hand.setMode(0);
sype 41:b5a2fbc20beb 125 wait_ms(10);
sype 41:b5a2fbc20beb 126 right_hand.setMode(0);
sype 41:b5a2fbc20beb 127 wait_ms(50);
sype 41:b5a2fbc20beb 128 right_hand.setGoal(0);
sype 41:b5a2fbc20beb 129 left_hand.setGoal(0);
sype 41:b5a2fbc20beb 130 wait(2);
sype 41:b5a2fbc20beb 131 right_hand.setGoal(180);
sype 41:b5a2fbc20beb 132 left_hand.setGoal(180);
sype 41:b5a2fbc20beb 133 wait(2);
sype 41:b5a2fbc20beb 134 }