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

main.cpp

Committer:
CharlesXu
Date:
2018-12-04
Revision:
0:28bd5ee534a3
Child:
1:8771f19aeeab

File content as of revision 0:28bd5ee534a3:

#include "mbed.h"
#include "emic2.h"
 //serial RX,TX pins to emic
Serial xbee1(p9,p10);
DigitalOut rst1(p11);
//emic2 myTTS(p13, p14);
AnalogIn a1(p15);
AnalogIn a2(p16);
AnalogIn a3(p17);
AnalogIn a4(p18);
AnalogIn a5(p19);
Serial pc(USBTX, USBRX);
float i1;
float i2;
float i3;
float i4;
float i5;
float ref1;
float ref2;
float ref3;
float ref4;
float ref5;



int counter;

int main() {
    counter = 0;
    rst1 = 0;
    wait_ms(1); 
    rst1 = 1;
    wait_ms(1);
    float avg = 0;
    float max = 0;
    float diff = 0;
    char c;
    while(1) {
        if (counter % 100) //update reference data every 100 inputs
        {
            ref1 = a1;
            ref2 = a2;
            ref3 = a3;
            ref4 = a4;
            ref5 = a5;
            
        }
        counter++;
        wait(0.5);
        i1 = a1;
        i2 = a2;
        i3 = a3;
        i4 = a4;
        i5 = a5;
        
        c = 'I';
        if (i1 > i2) {
            max = i1;
            c = 'A';
        } else
        {
            max = i2;
            c = 'B';
        }
        if (max < i3)
        {
            max = i3;
            c = 'C';
        }
        if (max < i4)
        {
            max = i4;
            c = 'D';
        }
        if (max < i5)
        {
            max = i5;
            c = 'E';
        }
        avg = (i1 + i2 + i3 + i4 + i5) / 5;
        diff = max - avg;
        if (diff*100 > 0.7)
        {
            xbee1.putc(c);
        } else
        {  
            xbee1.putc ('I');
        }
        pc.printf("%4.2f ", diff*100);
    }
}