Premier programme pour la cellule de départ : L476RG HC05 + BLE

Dependencies:   mbed SimpleBLE X_NUCLEO_IDB0XA1

Committer:
dorianvoydie
Date:
Tue Nov 10 14:25:00 2020 +0000
Revision:
0:badac4c5dd91
Laser Gate Timer Depart

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dorianvoydie 0:badac4c5dd91 1 //Includes
dorianvoydie 0:badac4c5dd91 2
dorianvoydie 0:badac4c5dd91 3 #include "mbed.h"
dorianvoydie 0:badac4c5dd91 4 #include "SimpleBLE.h"
dorianvoydie 0:badac4c5dd91 5
dorianvoydie 0:badac4c5dd91 6
dorianvoydie 0:badac4c5dd91 7 ///////////Init STM32 pins///////////
dorianvoydie 0:badac4c5dd91 8 DigitalOut myLed(PC_8);
dorianvoydie 0:badac4c5dd91 9 DigitalIn my_button(PC_13); //User1
dorianvoydie 0:badac4c5dd91 10 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 11
dorianvoydie 0:badac4c5dd91 12
dorianvoydie 0:badac4c5dd91 13
dorianvoydie 0:badac4c5dd91 14
dorianvoydie 0:badac4c5dd91 15 ///////////Init HC05/////////////////
dorianvoydie 0:badac4c5dd91 16 Serial HC05(PA_2, PA_3);
dorianvoydie 0:badac4c5dd91 17 //Bluetooth
dorianvoydie 0:badac4c5dd91 18 //Maitre (Tanguy) : ADDR = 0019,10,08FCD3
dorianvoydie 0:badac4c5dd91 19 //Esclave (Dorian) : ADDR = 0019,10,08FCB5
dorianvoydie 0:badac4c5dd91 20 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 21
dorianvoydie 0:badac4c5dd91 22
dorianvoydie 0:badac4c5dd91 23
dorianvoydie 0:badac4c5dd91 24
dorianvoydie 0:badac4c5dd91 25 //////////////Init BLE///////////////
dorianvoydie 0:badac4c5dd91 26 SimpleBLE ble("ObCP_CROC_ENSMM");
dorianvoydie 0:badac4c5dd91 27
dorianvoydie 0:badac4c5dd91 28 /////////////READ////////////////////
dorianvoydie 0:badac4c5dd91 29 SimpleChar<float> trigger_value = ble.readOnly_float(0xA000, 0xA002);
dorianvoydie 0:badac4c5dd91 30 SimpleChar<float> chrono_value = ble.readOnly_float(0xA000, 0xA003);
dorianvoydie 0:badac4c5dd91 31 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 32
dorianvoydie 0:badac4c5dd91 33
dorianvoydie 0:badac4c5dd91 34
dorianvoydie 0:badac4c5dd91 35
dorianvoydie 0:badac4c5dd91 36 ////////////TIMER////////////////////
dorianvoydie 0:badac4c5dd91 37 Timer timer;
dorianvoydie 0:badac4c5dd91 38 int begin;
dorianvoydie 0:badac4c5dd91 39 int end;
dorianvoydie 0:badac4c5dd91 40 float chrono=0;
dorianvoydie 0:badac4c5dd91 41 void Timer_triggered()
dorianvoydie 0:badac4c5dd91 42 {
dorianvoydie 0:badac4c5dd91 43 timer.start();
dorianvoydie 0:badac4c5dd91 44 begin = timer.read_ms();
dorianvoydie 0:badac4c5dd91 45 }
dorianvoydie 0:badac4c5dd91 46 void Timer_Reset()
dorianvoydie 0:badac4c5dd91 47 {
dorianvoydie 0:badac4c5dd91 48 timer.stop();
dorianvoydie 0:badac4c5dd91 49 begin=0;
dorianvoydie 0:badac4c5dd91 50 end=0;
dorianvoydie 0:badac4c5dd91 51 chrono=0;
dorianvoydie 0:badac4c5dd91 52 }
dorianvoydie 0:badac4c5dd91 53 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 54
dorianvoydie 0:badac4c5dd91 55
dorianvoydie 0:badac4c5dd91 56
dorianvoydie 0:badac4c5dd91 57
dorianvoydie 0:badac4c5dd91 58 /////////COMMUNICATION///////////////
dorianvoydie 0:badac4c5dd91 59 void HC05_receive()
dorianvoydie 0:badac4c5dd91 60 {
dorianvoydie 0:badac4c5dd91 61 char IncomingValue = HC05.getc();
dorianvoydie 0:badac4c5dd91 62 if(IncomingValue == 'u') {
dorianvoydie 0:badac4c5dd91 63 end = timer.read_ms();
dorianvoydie 0:badac4c5dd91 64 timer.stop();
dorianvoydie 0:badac4c5dd91 65 chrono = end-begin;
dorianvoydie 0:badac4c5dd91 66
dorianvoydie 0:badac4c5dd91 67 }
dorianvoydie 0:badac4c5dd91 68 HC05.putc(IncomingValue);
dorianvoydie 0:badac4c5dd91 69 }
dorianvoydie 0:badac4c5dd91 70 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 71
dorianvoydie 0:badac4c5dd91 72
dorianvoydie 0:badac4c5dd91 73
dorianvoydie 0:badac4c5dd91 74
dorianvoydie 0:badac4c5dd91 75 /////////////GAMEMODES///////////////
dorianvoydie 0:badac4c5dd91 76 void solo()
dorianvoydie 0:badac4c5dd91 77 {
dorianvoydie 0:badac4c5dd91 78 trigger_value = float(my_button);
dorianvoydie 0:badac4c5dd91 79 chrono_value = float(chrono)* 0.001F;
dorianvoydie 0:badac4c5dd91 80
dorianvoydie 0:badac4c5dd91 81
dorianvoydie 0:badac4c5dd91 82 if (my_button==0) {
dorianvoydie 0:badac4c5dd91 83 Timer_triggered();
dorianvoydie 0:badac4c5dd91 84 myLed=1;
dorianvoydie 0:badac4c5dd91 85 } else {
dorianvoydie 0:badac4c5dd91 86 myLed = 0;
dorianvoydie 0:badac4c5dd91 87 }
dorianvoydie 0:badac4c5dd91 88 //while bluetooth device is receiving data
dorianvoydie 0:badac4c5dd91 89 while(HC05.readable()) {
dorianvoydie 0:badac4c5dd91 90 HC05_receive();
dorianvoydie 0:badac4c5dd91 91 }
dorianvoydie 0:badac4c5dd91 92 }
dorianvoydie 0:badac4c5dd91 93 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 94
dorianvoydie 0:badac4c5dd91 95
dorianvoydie 0:badac4c5dd91 96
dorianvoydie 0:badac4c5dd91 97
dorianvoydie 0:badac4c5dd91 98 /////////GAMEMODES UPDATE////////////
dorianvoydie 0:badac4c5dd91 99 float gamemode = 0;
dorianvoydie 0:badac4c5dd91 100 void updateGM(float newValue)
dorianvoydie 0:badac4c5dd91 101 {
dorianvoydie 0:badac4c5dd91 102 gamemode = newValue;
dorianvoydie 0:badac4c5dd91 103 }
dorianvoydie 0:badac4c5dd91 104 SimpleChar<float> gamemode_command = ble.writeOnly_float(0xA000, 0xA004, &updateGM);
dorianvoydie 0:badac4c5dd91 105 /////////////////////////////////////
dorianvoydie 0:badac4c5dd91 106
dorianvoydie 0:badac4c5dd91 107
dorianvoydie 0:badac4c5dd91 108
dorianvoydie 0:badac4c5dd91 109
dorianvoydie 0:badac4c5dd91 110
dorianvoydie 0:badac4c5dd91 111
dorianvoydie 0:badac4c5dd91 112
dorianvoydie 0:badac4c5dd91 113
dorianvoydie 0:badac4c5dd91 114 int main(int, char**)
dorianvoydie 0:badac4c5dd91 115 {
dorianvoydie 0:badac4c5dd91 116 HC05.baud(9600);
dorianvoydie 0:badac4c5dd91 117 ble.start();
dorianvoydie 0:badac4c5dd91 118 while (1) {
dorianvoydie 0:badac4c5dd91 119 ble.waitForEvent();
dorianvoydie 0:badac4c5dd91 120 solo();
dorianvoydie 0:badac4c5dd91 121
dorianvoydie 0:badac4c5dd91 122 }
dorianvoydie 0:badac4c5dd91 123 }
dorianvoydie 0:badac4c5dd91 124
dorianvoydie 0:badac4c5dd91 125
dorianvoydie 0:badac4c5dd91 126
dorianvoydie 0:badac4c5dd91 127
dorianvoydie 0:badac4c5dd91 128
dorianvoydie 0:badac4c5dd91 129
dorianvoydie 0:badac4c5dd91 130