coucou bob

Dependencies:   mbed

Committer:
pirottealex
Date:
Mon Dec 17 16:50:36 2018 +0000
Revision:
0:e9a025a937b4
robot play azur festival

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pirottealex 0:e9a025a937b4 1 #include "mbed.h"
pirottealex 0:e9a025a937b4 2 #include "fct.h"
pirottealex 0:e9a025a937b4 3 #define TIC_POSITION 0.0005
pirottealex 0:e9a025a937b4 4 #define PERIOD_SERVO 0.01999
pirottealex 0:e9a025a937b4 5
pirottealex 0:e9a025a937b4 6 Serial pc(USBTX, USBRX); // tx, rx - Liaison série
pirottealex 0:e9a025a937b4 7 Serial device(p28, p27); // tx, rx - Liaison série
pirottealex 0:e9a025a937b4 8 DigitalOut Servo(p21);
pirottealex 0:e9a025a937b4 9
pirottealex 0:e9a025a937b4 10 char c;
pirottealex 0:e9a025a937b4 11 char msg[15];
pirottealex 0:e9a025a937b4 12 int count=0;
pirottealex 0:e9a025a937b4 13 char *token;
pirottealex 0:e9a025a937b4 14 int MG, MD, bout1,bout2,bp;
pirottealex 0:e9a025a937b4 15 Ticker tic1;
pirottealex 0:e9a025a937b4 16 Timer t_servo;
pirottealex 0:e9a025a937b4 17 int POSITION;
pirottealex 0:e9a025a937b4 18 float KVIT=1;
pirottealex 0:e9a025a937b4 19 void servo_position( void)
pirottealex 0:e9a025a937b4 20 {
pirottealex 0:e9a025a937b4 21 float t = t_servo.read();
pirottealex 0:e9a025a937b4 22 if(t>=PERIOD_SERVO)
pirottealex 0:e9a025a937b4 23 {
pirottealex 0:e9a025a937b4 24 t_servo.reset();
pirottealex 0:e9a025a937b4 25 }
pirottealex 0:e9a025a937b4 26 if(t>=0.001+(POSITION /100000.0))
pirottealex 0:e9a025a937b4 27 {
pirottealex 0:e9a025a937b4 28 Servo.write(0);
pirottealex 0:e9a025a937b4 29 }
pirottealex 0:e9a025a937b4 30 else
pirottealex 0:e9a025a937b4 31 {
pirottealex 0:e9a025a937b4 32 Servo.write(1);
pirottealex 0:e9a025a937b4 33 }
pirottealex 0:e9a025a937b4 34 }
pirottealex 0:e9a025a937b4 35
pirottealex 0:e9a025a937b4 36
pirottealex 0:e9a025a937b4 37 int main()
pirottealex 0:e9a025a937b4 38 {
pirottealex 0:e9a025a937b4 39
pirottealex 0:e9a025a937b4 40 init();
pirottealex 0:e9a025a937b4 41 pc.baud(19200);
pirottealex 0:e9a025a937b4 42 device.baud(2400);
pirottealex 0:e9a025a937b4 43 device.format(8,SerialBase::None,2);
pirottealex 0:e9a025a937b4 44 vitmoteur(0,0);
pirottealex 0:e9a025a937b4 45 t_servo.start();
pirottealex 0:e9a025a937b4 46 tic1.attach(&servo_position,TIC_POSITION);
pirottealex 0:e9a025a937b4 47 while(1) {
pirottealex 0:e9a025a937b4 48
pirottealex 0:e9a025a937b4 49 if(bout1==1)
pirottealex 0:e9a025a937b4 50 {
pirottealex 0:e9a025a937b4 51 POSITION=-35;
pirottealex 0:e9a025a937b4 52 }
pirottealex 0:e9a025a937b4 53 else
pirottealex 0:e9a025a937b4 54 {
pirottealex 0:e9a025a937b4 55 POSITION=80;
pirottealex 0:e9a025a937b4 56 }
pirottealex 0:e9a025a937b4 57 if(bout2==1)
pirottealex 0:e9a025a937b4 58 {
pirottealex 0:e9a025a937b4 59 KVIT=1.5;
pirottealex 0:e9a025a937b4 60 }
pirottealex 0:e9a025a937b4 61 else
pirottealex 0:e9a025a937b4 62 {
pirottealex 0:e9a025a937b4 63 KVIT=1;
pirottealex 0:e9a025a937b4 64 }
pirottealex 0:e9a025a937b4 65 if(device.readable())
pirottealex 0:e9a025a937b4 66 {
pirottealex 0:e9a025a937b4 67 c=device.getc();
pirottealex 0:e9a025a937b4 68 if(c=='*')
pirottealex 0:e9a025a937b4 69 {
pirottealex 0:e9a025a937b4 70 msg[count] = c;
pirottealex 0:e9a025a937b4 71 if(count>=7)
pirottealex 0:e9a025a937b4 72 {
pirottealex 0:e9a025a937b4 73
pirottealex 0:e9a025a937b4 74 pc.printf("msg = %s\n\r",msg);
pirottealex 0:e9a025a937b4 75
pirottealex 0:e9a025a937b4 76 token = strtok(msg," *");
pirottealex 0:e9a025a937b4 77 //printf("token = %s\n\r",token);
pirottealex 0:e9a025a937b4 78 MG= atoi(token);
pirottealex 0:e9a025a937b4 79 //printf("MG=%d\n\r",MG);
pirottealex 0:e9a025a937b4 80
pirottealex 0:e9a025a937b4 81 token = strtok(NULL, " *");
pirottealex 0:e9a025a937b4 82 //printf("token = %s\n\r",token);
pirottealex 0:e9a025a937b4 83 MD= atoi(token);
pirottealex 0:e9a025a937b4 84 //printf("MD=%d\n\r",MD);
pirottealex 0:e9a025a937b4 85
pirottealex 0:e9a025a937b4 86 token = strtok(NULL, " *");
pirottealex 0:e9a025a937b4 87 //printf("token = %s\n\r",token);
pirottealex 0:e9a025a937b4 88 bout1= atoi(token);
pirottealex 0:e9a025a937b4 89 //printf("bout1=%d\n\r",bout1);
pirottealex 0:e9a025a937b4 90
pirottealex 0:e9a025a937b4 91 token = strtok(NULL, " *");
pirottealex 0:e9a025a937b4 92 //printf("token = %s\n\r",token);
pirottealex 0:e9a025a937b4 93 bout2= atoi(token);
pirottealex 0:e9a025a937b4 94 //printf("bout2=%d\n\r",bout2);
pirottealex 0:e9a025a937b4 95
pirottealex 0:e9a025a937b4 96 vitmoteur(MG*KVIT,MD*KVIT);
pirottealex 0:e9a025a937b4 97
pirottealex 0:e9a025a937b4 98 for (int i=0; i<15; i++)
pirottealex 0:e9a025a937b4 99 {
pirottealex 0:e9a025a937b4 100 msg[i]=0;
pirottealex 0:e9a025a937b4 101 }
pirottealex 0:e9a025a937b4 102 count=0;
pirottealex 0:e9a025a937b4 103 }
pirottealex 0:e9a025a937b4 104 else
pirottealex 0:e9a025a937b4 105 {
pirottealex 0:e9a025a937b4 106 for (int i=0; i<15; i++)
pirottealex 0:e9a025a937b4 107 {
pirottealex 0:e9a025a937b4 108 msg[i]=0;
pirottealex 0:e9a025a937b4 109 }
pirottealex 0:e9a025a937b4 110 count=0;
pirottealex 0:e9a025a937b4 111 //vitmoteur(0,0);
pirottealex 0:e9a025a937b4 112 }
pirottealex 0:e9a025a937b4 113 }
pirottealex 0:e9a025a937b4 114 else
pirottealex 0:e9a025a937b4 115 {
pirottealex 0:e9a025a937b4 116
pirottealex 0:e9a025a937b4 117 msg[count] = c;
pirottealex 0:e9a025a937b4 118 //pc.printf("%c\n\r",c);
pirottealex 0:e9a025a937b4 119 //pc.putc(device.getc());
pirottealex 0:e9a025a937b4 120 count=count+1;
pirottealex 0:e9a025a937b4 121
pirottealex 0:e9a025a937b4 122 if(count>13) {
pirottealex 0:e9a025a937b4 123 for (int i=0; i<15; i++) {
pirottealex 0:e9a025a937b4 124 msg[i]=0;
pirottealex 0:e9a025a937b4 125 }
pirottealex 0:e9a025a937b4 126 count=0;
pirottealex 0:e9a025a937b4 127 }
pirottealex 0:e9a025a937b4 128 }
pirottealex 0:e9a025a937b4 129 }
pirottealex 0:e9a025a937b4 130 }
pirottealex 0:e9a025a937b4 131 }