Contest IOT GSE5
/
contest_IOT2
Pong Game Tea Term
Fork of contest_IOT by
main.cpp@3:6bcdaa2636ec, 2015-10-14 (annotated)
- Committer:
- Alex_Hochart
- Date:
- Wed Oct 14 08:58:18 2015 +0000
- Revision:
- 3:6bcdaa2636ec
- Parent:
- 2:35466dfc81fe
- Child:
- 4:ed21ec4a79ad
Pong Tera Term
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:028fac66239d | 1 | #include "mbed.h" |
Alex_Hochart | 3:6bcdaa2636ec | 2 | #include "HCSR04.h" |
Mickado | 2:35466dfc81fe | 3 | |
Alex_Hochart | 3:6bcdaa2636ec | 4 | #define ECHO_1 PA_8 |
Alex_Hochart | 3:6bcdaa2636ec | 5 | #define ECHO_2 PB_4 |
Alex_Hochart | 3:6bcdaa2636ec | 6 | #define TRIG_1 PB_10 |
Alex_Hochart | 3:6bcdaa2636ec | 7 | #define TRIG_2 PB_5 |
Mickado | 2:35466dfc81fe | 8 | #define PUSH USER_BUTTON //PC_13 |
Mickado | 2:35466dfc81fe | 9 | #define LED_1 LED1 |
bcostm | 1:e9d1c42a73ae | 10 | |
bcostm | 1:e9d1c42a73ae | 11 | //------------------------------------ |
bcostm | 1:e9d1c42a73ae | 12 | // Hyperterminal configuration |
bcostm | 1:e9d1c42a73ae | 13 | // 9600 bauds, 8-bit data, no parity |
bcostm | 1:e9d1c42a73ae | 14 | //------------------------------------ |
bcostm | 1:e9d1c42a73ae | 15 | |
Mickado | 2:35466dfc81fe | 16 | |
Alex_Hochart | 3:6bcdaa2636ec | 17 | Serial pc(USBTX, USBRX); //UART |
Mickado | 2:35466dfc81fe | 18 | DigitalOut led(LED_1); //Led d'état |
Mickado | 2:35466dfc81fe | 19 | InterruptIn button(PUSH); //Bouton d'interruption |
Mickado | 2:35466dfc81fe | 20 | |
Alex_Hochart | 3:6bcdaa2636ec | 21 | HCSR04 sensor1(TRIG_1, ECHO_1); |
Alex_Hochart | 3:6bcdaa2636ec | 22 | HCSR04 sensor2(TRIG_2, ECHO_2); |
Alex_Hochart | 3:6bcdaa2636ec | 23 | |
Alex_Hochart | 3:6bcdaa2636ec | 24 | void pong_init(){ |
Mickado | 2:35466dfc81fe | 25 | |
Alex_Hochart | 3:6bcdaa2636ec | 26 | pc.printf("\033[2J"); //Efface la console |
Alex_Hochart | 3:6bcdaa2636ec | 27 | pc.printf("\033[?25l"); //Cache le curseur |
Alex_Hochart | 3:6bcdaa2636ec | 28 | |
Alex_Hochart | 3:6bcdaa2636ec | 29 | for(int i=0; i <= 128 ; i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 30 | pc.printf("\033[0;%dH",i); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 31 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 32 | pc.printf("\033[32;%dH",i); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 33 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 34 | } |
Alex_Hochart | 3:6bcdaa2636ec | 35 | |
Alex_Hochart | 3:6bcdaa2636ec | 36 | for(int i=0; i <= 32 ; i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 37 | pc.printf("\033[%d;0H",i); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 38 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 39 | pc.printf("\033[%d;128H",i); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 40 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 41 | } |
Alex_Hochart | 3:6bcdaa2636ec | 42 | |
Mickado | 2:35466dfc81fe | 43 | } |
Mickado | 2:35466dfc81fe | 44 | |
bcostm | 0:028fac66239d | 45 | int main() { |
Alex_Hochart | 3:6bcdaa2636ec | 46 | int distance1; |
Alex_Hochart | 3:6bcdaa2636ec | 47 | int distance2; |
Alex_Hochart | 3:6bcdaa2636ec | 48 | int pos1prec[30]; |
Alex_Hochart | 3:6bcdaa2636ec | 49 | int pos2prec[30]; |
Alex_Hochart | 3:6bcdaa2636ec | 50 | int pos1[30]; |
Alex_Hochart | 3:6bcdaa2636ec | 51 | int pos2[30]; |
Alex_Hochart | 3:6bcdaa2636ec | 52 | |
Alex_Hochart | 3:6bcdaa2636ec | 53 | pc.baud(115200); |
Alex_Hochart | 3:6bcdaa2636ec | 54 | pong_init(); |
Alex_Hochart | 3:6bcdaa2636ec | 55 | wait(1); |
Alex_Hochart | 3:6bcdaa2636ec | 56 | //Initialisation de l'interruption : en appuyant sur le bouton bleu de la carte, le programme change d'état |
Mickado | 2:35466dfc81fe | 57 | |
Mickado | 2:35466dfc81fe | 58 | |
Mickado | 2:35466dfc81fe | 59 | //Boucle d'exécution du programme |
Mickado | 2:35466dfc81fe | 60 | while(1) { |
Mickado | 2:35466dfc81fe | 61 | led=1; |
Alex_Hochart | 3:6bcdaa2636ec | 62 | for(int i=0; i<=29; i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 63 | pos1prec[i]= pos1[i]; |
Alex_Hochart | 3:6bcdaa2636ec | 64 | pos2prec[i]= pos2[i]; |
Alex_Hochart | 3:6bcdaa2636ec | 65 | pos1[i]= 0; |
Alex_Hochart | 3:6bcdaa2636ec | 66 | pos2[i]= 0; |
Alex_Hochart | 3:6bcdaa2636ec | 67 | } |
Alex_Hochart | 3:6bcdaa2636ec | 68 | distance1 = sensor1.distance(1); //Mesure de la distance |
Alex_Hochart | 3:6bcdaa2636ec | 69 | distance2 = sensor2.distance(1); //Mesure de la distance |
Alex_Hochart | 3:6bcdaa2636ec | 70 | |
Alex_Hochart | 3:6bcdaa2636ec | 71 | if(distance1 <= 10){ |
Alex_Hochart | 3:6bcdaa2636ec | 72 | for(int i=0;i<=5;i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 73 | pos1[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 74 | } |
Alex_Hochart | 3:6bcdaa2636ec | 75 | } |
Alex_Hochart | 3:6bcdaa2636ec | 76 | else if(distance1 >= 34){ |
Alex_Hochart | 3:6bcdaa2636ec | 77 | for(int i=24;i<=29;i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 78 | pos1[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 79 | } |
Alex_Hochart | 3:6bcdaa2636ec | 80 | } |
Alex_Hochart | 3:6bcdaa2636ec | 81 | else{ |
Alex_Hochart | 3:6bcdaa2636ec | 82 | for(int i=(distance1-10);i<=(distance1-4);i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 83 | pos1[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 84 | } |
Alex_Hochart | 3:6bcdaa2636ec | 85 | } |
Alex_Hochart | 3:6bcdaa2636ec | 86 | |
Alex_Hochart | 3:6bcdaa2636ec | 87 | |
Alex_Hochart | 3:6bcdaa2636ec | 88 | if(distance2 <= 10){ |
Alex_Hochart | 3:6bcdaa2636ec | 89 | for(int i=0;i<=5;i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 90 | pos2[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 91 | } |
Alex_Hochart | 3:6bcdaa2636ec | 92 | } |
Alex_Hochart | 3:6bcdaa2636ec | 93 | else if(distance2 >= 34){ |
Alex_Hochart | 3:6bcdaa2636ec | 94 | for(int i=24;i<=29;i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 95 | pos2[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 96 | } |
Alex_Hochart | 3:6bcdaa2636ec | 97 | } |
Alex_Hochart | 3:6bcdaa2636ec | 98 | else{ |
Alex_Hochart | 3:6bcdaa2636ec | 99 | for(int i=(distance2-10);i<=(distance2-4);i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 100 | pos2[i] = 1; |
Alex_Hochart | 3:6bcdaa2636ec | 101 | } |
Alex_Hochart | 3:6bcdaa2636ec | 102 | } |
Alex_Hochart | 3:6bcdaa2636ec | 103 | |
Alex_Hochart | 3:6bcdaa2636ec | 104 | for(int i=0;i<=29;i++){ |
Alex_Hochart | 3:6bcdaa2636ec | 105 | if( pos1[i] != pos1prec[i] ){ |
Alex_Hochart | 3:6bcdaa2636ec | 106 | if(pos1[i] == 1){ |
Alex_Hochart | 3:6bcdaa2636ec | 107 | pc.printf("\033[%d;3H",i+2); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 108 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 109 | } |
Alex_Hochart | 3:6bcdaa2636ec | 110 | else{ |
Alex_Hochart | 3:6bcdaa2636ec | 111 | pc.printf("\033[%d;3H",i+2); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 112 | pc.printf(" "); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 113 | } |
Alex_Hochart | 3:6bcdaa2636ec | 114 | } |
Alex_Hochart | 3:6bcdaa2636ec | 115 | if( pos2[i] != pos2prec[i] ){ |
Alex_Hochart | 3:6bcdaa2636ec | 116 | if(pos2[i] == 1){ |
Alex_Hochart | 3:6bcdaa2636ec | 117 | pc.printf("\033[%d;126H",i+2); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 118 | pc.printf("X"); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 119 | } |
Alex_Hochart | 3:6bcdaa2636ec | 120 | else{ |
Alex_Hochart | 3:6bcdaa2636ec | 121 | pc.printf("\033[%d;126H",i+2); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 122 | pc.printf(" "); //Place le curseur à 0:0 |
Alex_Hochart | 3:6bcdaa2636ec | 123 | } |
Alex_Hochart | 3:6bcdaa2636ec | 124 | } |
Alex_Hochart | 3:6bcdaa2636ec | 125 | } |
Alex_Hochart | 3:6bcdaa2636ec | 126 | wait(0.1); |
Mickado | 2:35466dfc81fe | 127 | } |
bcostm | 0:028fac66239d | 128 | } |
Alex_Hochart | 3:6bcdaa2636ec | 129 | |
bcostm | 0:028fac66239d | 130 |