Last

Dependencies:   BLE_API HCSR04 X_NUCLEO_IDB0XA1 mbed

Fork of contest_IOT5 by Contest IOT GSE5

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?

UserRevisionLine numberNew 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