This code will be implemented on the receiving end of the device, which contains a speaker, an Emic2 text-to-speech converter, as well as a vehicle module that can move or rotate upon request

Dependencies:   mbed 4DGL-uLCD-SE emic2 PinDetect

Committer:
CharlesXu
Date:
Tue Dec 04 15:19:56 2018 +0000
Revision:
0:28bd5ee534a3
Child:
1:8771f19aeeab
transmitter code for Air Rendezvous

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CharlesXu 0:28bd5ee534a3 1 #include "mbed.h"
CharlesXu 0:28bd5ee534a3 2 #include "emic2.h"
CharlesXu 0:28bd5ee534a3 3 //serial RX,TX pins to emic
CharlesXu 0:28bd5ee534a3 4 Serial xbee1(p9,p10);
CharlesXu 0:28bd5ee534a3 5 DigitalOut rst1(p11);
CharlesXu 0:28bd5ee534a3 6 //emic2 myTTS(p13, p14);
CharlesXu 0:28bd5ee534a3 7 AnalogIn a1(p15);
CharlesXu 0:28bd5ee534a3 8 AnalogIn a2(p16);
CharlesXu 0:28bd5ee534a3 9 AnalogIn a3(p17);
CharlesXu 0:28bd5ee534a3 10 AnalogIn a4(p18);
CharlesXu 0:28bd5ee534a3 11 AnalogIn a5(p19);
CharlesXu 0:28bd5ee534a3 12 Serial pc(USBTX, USBRX);
CharlesXu 0:28bd5ee534a3 13 float i1;
CharlesXu 0:28bd5ee534a3 14 float i2;
CharlesXu 0:28bd5ee534a3 15 float i3;
CharlesXu 0:28bd5ee534a3 16 float i4;
CharlesXu 0:28bd5ee534a3 17 float i5;
CharlesXu 0:28bd5ee534a3 18 float ref1;
CharlesXu 0:28bd5ee534a3 19 float ref2;
CharlesXu 0:28bd5ee534a3 20 float ref3;
CharlesXu 0:28bd5ee534a3 21 float ref4;
CharlesXu 0:28bd5ee534a3 22 float ref5;
CharlesXu 0:28bd5ee534a3 23
CharlesXu 0:28bd5ee534a3 24
CharlesXu 0:28bd5ee534a3 25
CharlesXu 0:28bd5ee534a3 26 int counter;
CharlesXu 0:28bd5ee534a3 27
CharlesXu 0:28bd5ee534a3 28 int main() {
CharlesXu 0:28bd5ee534a3 29 counter = 0;
CharlesXu 0:28bd5ee534a3 30 rst1 = 0;
CharlesXu 0:28bd5ee534a3 31 wait_ms(1);
CharlesXu 0:28bd5ee534a3 32 rst1 = 1;
CharlesXu 0:28bd5ee534a3 33 wait_ms(1);
CharlesXu 0:28bd5ee534a3 34 float avg = 0;
CharlesXu 0:28bd5ee534a3 35 float max = 0;
CharlesXu 0:28bd5ee534a3 36 float diff = 0;
CharlesXu 0:28bd5ee534a3 37 char c;
CharlesXu 0:28bd5ee534a3 38 while(1) {
CharlesXu 0:28bd5ee534a3 39 if (counter % 100) //update reference data every 100 inputs
CharlesXu 0:28bd5ee534a3 40 {
CharlesXu 0:28bd5ee534a3 41 ref1 = a1;
CharlesXu 0:28bd5ee534a3 42 ref2 = a2;
CharlesXu 0:28bd5ee534a3 43 ref3 = a3;
CharlesXu 0:28bd5ee534a3 44 ref4 = a4;
CharlesXu 0:28bd5ee534a3 45 ref5 = a5;
CharlesXu 0:28bd5ee534a3 46
CharlesXu 0:28bd5ee534a3 47 }
CharlesXu 0:28bd5ee534a3 48 counter++;
CharlesXu 0:28bd5ee534a3 49 wait(0.5);
CharlesXu 0:28bd5ee534a3 50 i1 = a1;
CharlesXu 0:28bd5ee534a3 51 i2 = a2;
CharlesXu 0:28bd5ee534a3 52 i3 = a3;
CharlesXu 0:28bd5ee534a3 53 i4 = a4;
CharlesXu 0:28bd5ee534a3 54 i5 = a5;
CharlesXu 0:28bd5ee534a3 55
CharlesXu 0:28bd5ee534a3 56 c = 'I';
CharlesXu 0:28bd5ee534a3 57 if (i1 > i2) {
CharlesXu 0:28bd5ee534a3 58 max = i1;
CharlesXu 0:28bd5ee534a3 59 c = 'A';
CharlesXu 0:28bd5ee534a3 60 } else
CharlesXu 0:28bd5ee534a3 61 {
CharlesXu 0:28bd5ee534a3 62 max = i2;
CharlesXu 0:28bd5ee534a3 63 c = 'B';
CharlesXu 0:28bd5ee534a3 64 }
CharlesXu 0:28bd5ee534a3 65 if (max < i3)
CharlesXu 0:28bd5ee534a3 66 {
CharlesXu 0:28bd5ee534a3 67 max = i3;
CharlesXu 0:28bd5ee534a3 68 c = 'C';
CharlesXu 0:28bd5ee534a3 69 }
CharlesXu 0:28bd5ee534a3 70 if (max < i4)
CharlesXu 0:28bd5ee534a3 71 {
CharlesXu 0:28bd5ee534a3 72 max = i4;
CharlesXu 0:28bd5ee534a3 73 c = 'D';
CharlesXu 0:28bd5ee534a3 74 }
CharlesXu 0:28bd5ee534a3 75 if (max < i5)
CharlesXu 0:28bd5ee534a3 76 {
CharlesXu 0:28bd5ee534a3 77 max = i5;
CharlesXu 0:28bd5ee534a3 78 c = 'E';
CharlesXu 0:28bd5ee534a3 79 }
CharlesXu 0:28bd5ee534a3 80 avg = (i1 + i2 + i3 + i4 + i5) / 5;
CharlesXu 0:28bd5ee534a3 81 diff = max - avg;
CharlesXu 0:28bd5ee534a3 82 if (diff*100 > 0.7)
CharlesXu 0:28bd5ee534a3 83 {
CharlesXu 0:28bd5ee534a3 84 xbee1.putc(c);
CharlesXu 0:28bd5ee534a3 85 } else
CharlesXu 0:28bd5ee534a3 86 {
CharlesXu 0:28bd5ee534a3 87 xbee1.putc ('I');
CharlesXu 0:28bd5ee534a3 88 }
CharlesXu 0:28bd5ee534a3 89 pc.printf("%4.2f ", diff*100);
CharlesXu 0:28bd5ee534a3 90 }
CharlesXu 0:28bd5ee534a3 91 }