![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
coucou bob
main.cpp@0:e9a025a937b4, 2018-12-17 (annotated)
- Committer:
- pirottealex
- Date:
- Mon Dec 17 16:50:36 2018 +0000
- Revision:
- 0:e9a025a937b4
robot play azur festival
Who changed what in which revision?
User | Revision | Line number | New 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 | } |