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:
Fri Dec 14 16:40:34 2018 +0000
Revision:
1:8771f19aeeab
Parent:
0:28bd5ee534a3
Transmitter final

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 1:8771f19aeeab 3 #include "uLCD_4DGL.h"
CharlesXu 1:8771f19aeeab 4 #include<string>
CharlesXu 1:8771f19aeeab 5
CharlesXu 1:8771f19aeeab 6 using namespace std;
CharlesXu 1:8771f19aeeab 7 //serial RX,TX pins to emic
CharlesXu 1:8771f19aeeab 8 uLCD_4DGL uLCD(p28,p27,p5); // serial tx, serial rx, reset pin;
CharlesXu 1:8771f19aeeab 9 #define length_sprite 20
CharlesXu 1:8771f19aeeab 10 #define width_sprite 75
CharlesXu 1:8771f19aeeab 11 #define width_sprite2 47
CharlesXu 1:8771f19aeeab 12 #define length_sprite2 18
CharlesXu 1:8771f19aeeab 13
CharlesXu 1:8771f19aeeab 14 #define Q 0x808000 //OLIVE
CharlesXu 1:8771f19aeeab 15 #define I 0x008000 //GREEN
CharlesXu 1:8771f19aeeab 16 #define S 0xC0C0C0 //SILVER
CharlesXu 1:8771f19aeeab 17 #define R 0xF1C40F //YELLOW
CharlesXu 1:8771f19aeeab 18 #define O 0xF39C12 //ORANGE
CharlesXu 1:8771f19aeeab 19 #define X 0xFFFFFF //WHITE
CharlesXu 1:8771f19aeeab 20 #define B 0x0000FF //BLUE
CharlesXu 1:8771f19aeeab 21 #define G 0xAAB7B8 //GREY
CharlesXu 1:8771f19aeeab 22 #define D 0x797D7F //DARK GREY
CharlesXu 1:8771f19aeeab 23 #define L 0x00FF00 //LIME
CharlesXu 1:8771f19aeeab 24 #define P 0xFF00FF //K
CharlesXu 1:8771f19aeeab 25 #define _ 0x000000 //BLACK
CharlesXu 1:8771f19aeeab 26 #define r 0xFF0000 //RED
CharlesXu 1:8771f19aeeab 27
CharlesXu 1:8771f19aeeab 28
CharlesXu 1:8771f19aeeab 29 class TMP36{
CharlesXu 1:8771f19aeeab 30 public:
CharlesXu 1:8771f19aeeab 31 TMP36(PinName pin);
CharlesXu 1:8771f19aeeab 32 TMP36();
CharlesXu 1:8771f19aeeab 33 float read();
CharlesXu 1:8771f19aeeab 34 private:
CharlesXu 1:8771f19aeeab 35 //class sets up the AnalogIn pin
CharlesXu 1:8771f19aeeab 36 AnalogIn _pin;
CharlesXu 1:8771f19aeeab 37 };
CharlesXu 1:8771f19aeeab 38 TMP36::TMP36(PinName pin) : _pin(pin) {} //This is an initializer list
CharlesXu 1:8771f19aeeab 39 float TMP36::read()
CharlesXu 1:8771f19aeeab 40 {
CharlesXu 1:8771f19aeeab 41 //convert sensor reading to temperature in degrees C
CharlesXu 1:8771f19aeeab 42 return ((_pin.read()*3.3)-0.500)*100.0;
CharlesXu 1:8771f19aeeab 43 //read() function returns a normalized value of the voltage from 0 to 1 as a float }
CharlesXu 1:8771f19aeeab 44 //instantiate new class to set p15 to analog input //to read and convert TMP36 sensor's voltage output
CharlesXu 1:8771f19aeeab 45 }
CharlesXu 1:8771f19aeeab 46 TMP36 myTMP36(p20); // analog in pin for temp sensor
CharlesXu 1:8771f19aeeab 47
CharlesXu 1:8771f19aeeab 48
CharlesXu 1:8771f19aeeab 49 // make 3 different sprites
CharlesXu 1:8771f19aeeab 50 // decrease the sprite dimensions to increasing processing speed
CharlesXu 1:8771f19aeeab 51 // for the glove sprite appearing in the beginning
CharlesXu 1:8771f19aeeab 52 int Glove[length_sprite*width_sprite] = {
CharlesXu 1:8771f19aeeab 53 _,_,_,_,R,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,R,_,S,S,S,S,S,S,_,O,_,_,_,_,_,r,r,r,r,r,_,D,D,D,D,D,D,_,I,I,_,_,_,_,_,_,_,I,I,_,R,R,R,R,R,R,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 54 _,_,_,_,_,R,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,R,_,_,S,_,_,_,_,_,_,O,_,_,_,_,_,r,_,_,_,_,_,D,_,_,_,_,D,_,I,_,I,_,_,_,_,_,I,_,I,_,R,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 55 _,_,_,_,_,_,R,_,_,_,_,_,R,R,_,_,_,_,_,_,R,_,_,_,S,_,_,_,_,_,_,O,_,_,_,_,_,r,_,_,_,_,_,D,_,_,_,_,D,_,I,_,_,I,_,_,_,I,_,_,I,_,R,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 56 _,_,_,_,_,_,_,R,_,_,_,R,_,_,R,_,_,_,_,R,_,_,_,_,S,S,S,S,_,_,_,O,_,_,_,_,_,r,_,_,_,_,_,D,_,_,_,_,D,_,I,_,_,_,I,_,I,_,_,_,I,_,R,R,R,R,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 57 _,_,_,_,_,_,_,_,R,_,R,_,_,_,_,R,_,_,R,_,_,_,_,_,S,_,_,_,_,_,_,O,_,_,_,_,_,r,_,_,_,_,_,D,_,_,_,_,D,_,I,_,_,_,_,I,_,_,_,_,I,_,R,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 58 _,_,_,_,_,_,_,_,_,R,_,_,_,_,_,_,R,R,_,_,_,_,_,_,S,_,_,_,_,_,_,O,_,_,_,_,_,r,_,_,_,_,_,D,_,_,_,_,D,_,I,_,_,_,_,_,_,_,_,_,I,_,R,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 59 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,S,S,S,S,S,S,_,O,O,O,O,O,_,r,r,r,r,r,_,D,D,D,D,D,D,_,I,_,_,_,_,_,_,_,_,_,I,_,R,R,R,R,R,R,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 60 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 61 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 62 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 63 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,G,G,G,G,G,G,G,G,_,_,B,B,B,B,B,B,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 64 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 65 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 66 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 67 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 68 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 69 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 70 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 71 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,B,B,B,B,B,B,B,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 72 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 73 };
CharlesXu 1:8771f19aeeab 74
CharlesXu 1:8771f19aeeab 75
CharlesXu 1:8771f19aeeab 76 int Fourty_One_Eighty[width_sprite2*length_sprite2]= {
CharlesXu 1:8771f19aeeab 77 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 78 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,G,G,G,G,G,G,G,G,_,_,_,B,B,B,B,B,B,B,B,B,_,
CharlesXu 1:8771f19aeeab 79 _,_,_,_,_,_,_,_,_,_,_,L,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 80 _,_,_,_,_,_,_,_,_,_,L,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 81 _,_,_,_,_,_,_,_,_,L,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 82 _,_,_,_,_,_,_,_,L,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 83 _,_,_,_,_,_,_,L,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 84 _,_,_,_,_,_,L,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 85 _,_,_,_,_,L,L,L,L,L,L,L,L,_,_,_,_,O,O,O,_,_,_,_,_,G,G,G,G,G,G,G,G,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 86 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,G,G,G,G,G,G,G,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 87 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 88 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 89 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 90 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 91 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 92 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,_,_,_,_,_,_,_,G,_,_,_,B,_,_,_,_,_,_,_,B,_,
CharlesXu 1:8771f19aeeab 93 _,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,O,O,O,_,_,_,_,_,G,G,G,G,G,G,G,G,G,_,_,_,B,B,B,B,B,B,B,B,B,_,
CharlesXu 1:8771f19aeeab 94 _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
CharlesXu 1:8771f19aeeab 95
CharlesXu 1:8771f19aeeab 96 };
CharlesXu 1:8771f19aeeab 97
CharlesXu 1:8771f19aeeab 98
CharlesXu 0:28bd5ee534a3 99 Serial xbee1(p9,p10);
CharlesXu 0:28bd5ee534a3 100 DigitalOut rst1(p11);
CharlesXu 1:8771f19aeeab 101
CharlesXu 1:8771f19aeeab 102 DigitalOut myled1(LED1);
CharlesXu 1:8771f19aeeab 103 DigitalOut myled2(LED2);
CharlesXu 1:8771f19aeeab 104 DigitalOut myled3(LED3);
CharlesXu 1:8771f19aeeab 105 DigitalOut myled4(LED4);
CharlesXu 0:28bd5ee534a3 106 //emic2 myTTS(p13, p14);
CharlesXu 0:28bd5ee534a3 107 AnalogIn a1(p15);
CharlesXu 0:28bd5ee534a3 108 AnalogIn a2(p16);
CharlesXu 0:28bd5ee534a3 109 AnalogIn a3(p17);
CharlesXu 0:28bd5ee534a3 110 AnalogIn a4(p18);
CharlesXu 0:28bd5ee534a3 111 AnalogIn a5(p19);
CharlesXu 0:28bd5ee534a3 112 Serial pc(USBTX, USBRX);
CharlesXu 0:28bd5ee534a3 113 float i1;
CharlesXu 0:28bd5ee534a3 114 float i2;
CharlesXu 0:28bd5ee534a3 115 float i3;
CharlesXu 0:28bd5ee534a3 116 float i4;
CharlesXu 0:28bd5ee534a3 117 float i5;
CharlesXu 0:28bd5ee534a3 118 float ref1;
CharlesXu 0:28bd5ee534a3 119 float ref2;
CharlesXu 0:28bd5ee534a3 120 float ref3;
CharlesXu 0:28bd5ee534a3 121 float ref4;
CharlesXu 0:28bd5ee534a3 122 float ref5;
CharlesXu 1:8771f19aeeab 123 float avg1;
CharlesXu 1:8771f19aeeab 124 float avg2;
CharlesXu 1:8771f19aeeab 125 float avg3;
CharlesXu 1:8771f19aeeab 126 float avg4;
CharlesXu 1:8771f19aeeab 127 float avg5;
CharlesXu 1:8771f19aeeab 128 float diff1, diff2, diff3, diff4, diff5;
CharlesXu 1:8771f19aeeab 129 int counter;
CharlesXu 1:8771f19aeeab 130 float sum;
CharlesXu 1:8771f19aeeab 131 int main() {
CharlesXu 1:8771f19aeeab 132 float tempC, tempF;
CharlesXu 1:8771f19aeeab 133 int i = 0;
CharlesXu 1:8771f19aeeab 134 uLCD.BLIT(30,30,width_sprite, length_sprite, Glove);
CharlesXu 1:8771f19aeeab 135 wait(1);
CharlesXu 1:8771f19aeeab 136 uLCD.cls();
CharlesXu 0:28bd5ee534a3 137
CharlesXu 1:8771f19aeeab 138 uLCD.BLIT(30,30, width_sprite2, length_sprite2, Fourty_One_Eighty);
CharlesXu 1:8771f19aeeab 139
CharlesXu 1:8771f19aeeab 140 wait(1.0);
CharlesXu 0:28bd5ee534a3 141
CharlesXu 0:28bd5ee534a3 142
CharlesXu 1:8771f19aeeab 143 for (unsigned int j = 0; j <= 128; j+=7){
CharlesXu 1:8771f19aeeab 144 // DRAW ---- animation of walls
CharlesXu 1:8771f19aeeab 145 uLCD.line(j,127,j+7,0,RED); // horizontal animation
CharlesXu 1:8771f19aeeab 146 uLCD.line(j+1, 127, j+8, 0, RED);
CharlesXu 1:8771f19aeeab 147
CharlesXu 1:8771f19aeeab 148 uLCD.line(127 - j, 0, 127 - (j+7), 127, BLUE);
CharlesXu 1:8771f19aeeab 149 uLCD.line(127-j-1,0,127 - (j+8), 127, BLUE);
CharlesXu 0:28bd5ee534a3 150
CharlesXu 1:8771f19aeeab 151 // Erase
CharlesXu 1:8771f19aeeab 152 wait(.1);
CharlesXu 1:8771f19aeeab 153 uLCD.line(j,127,j+7,0,BLACK);
CharlesXu 1:8771f19aeeab 154 uLCD.line(j+1, 127, j+8, 0, BLACK);
CharlesXu 1:8771f19aeeab 155 uLCD.line(127 - j, 0, 127 - (j+7), 127, BLACK); // vertical animation
CharlesXu 1:8771f19aeeab 156 uLCD.line(127-j-1,0,127 - (j+8), 127, BLACK);
CharlesXu 1:8771f19aeeab 157 }
CharlesXu 1:8771f19aeeab 158
CharlesXu 1:8771f19aeeab 159 uLCD.cls();
CharlesXu 1:8771f19aeeab 160
CharlesXu 1:8771f19aeeab 161
CharlesXu 1:8771f19aeeab 162
CharlesXu 1:8771f19aeeab 163 ref1 = 0;
CharlesXu 1:8771f19aeeab 164 ref2 = 0;
CharlesXu 1:8771f19aeeab 165 ref3 = 0;
CharlesXu 1:8771f19aeeab 166 ref4 = 0;
CharlesXu 1:8771f19aeeab 167 ref5 = 0;
CharlesXu 0:28bd5ee534a3 168 counter = 0;
CharlesXu 0:28bd5ee534a3 169 rst1 = 0;
CharlesXu 0:28bd5ee534a3 170 wait_ms(1);
CharlesXu 0:28bd5ee534a3 171 rst1 = 1;
CharlesXu 0:28bd5ee534a3 172 wait_ms(1);
CharlesXu 1:8771f19aeeab 173 char o;
CharlesXu 0:28bd5ee534a3 174 while(1) {
CharlesXu 0:28bd5ee534a3 175 wait(0.5);
CharlesXu 0:28bd5ee534a3 176 i1 = a1;
CharlesXu 0:28bd5ee534a3 177 i2 = a2;
CharlesXu 0:28bd5ee534a3 178 i3 = a3;
CharlesXu 0:28bd5ee534a3 179 i4 = a4;
CharlesXu 0:28bd5ee534a3 180 i5 = a5;
CharlesXu 1:8771f19aeeab 181 ref1 += i1;
CharlesXu 1:8771f19aeeab 182 ref2 += i2;
CharlesXu 1:8771f19aeeab 183 ref3 += i3;
CharlesXu 1:8771f19aeeab 184 ref4 += i4;
CharlesXu 1:8771f19aeeab 185 ref5 += i5;
CharlesXu 1:8771f19aeeab 186 avg1 = ref1 / counter;
CharlesXu 1:8771f19aeeab 187 avg2 = ref2 / counter;
CharlesXu 1:8771f19aeeab 188 avg3 = ref3 / counter;
CharlesXu 1:8771f19aeeab 189 avg4 = ref4 / counter;
CharlesXu 1:8771f19aeeab 190 avg5 = ref5 / counter;
CharlesXu 1:8771f19aeeab 191 o = 'I';
CharlesXu 1:8771f19aeeab 192 myled1 = 0;
CharlesXu 1:8771f19aeeab 193 myled2 = 0;
CharlesXu 1:8771f19aeeab 194 myled3 = 0;
CharlesXu 1:8771f19aeeab 195 myled4 = 0;
CharlesXu 1:8771f19aeeab 196 diff1 = i1 - avg1;
CharlesXu 1:8771f19aeeab 197 diff2 = i2 - avg2;
CharlesXu 1:8771f19aeeab 198 diff3 = i3 - avg3;
CharlesXu 1:8771f19aeeab 199 diff4 = i4 - avg4;
CharlesXu 1:8771f19aeeab 200 diff5 = i5 - avg5;
CharlesXu 1:8771f19aeeab 201 if (diff1 > 0.01) {
CharlesXu 1:8771f19aeeab 202 o = 'A';
CharlesXu 1:8771f19aeeab 203 ref1 -= i1;
CharlesXu 1:8771f19aeeab 204 myled1 = 1;
CharlesXu 1:8771f19aeeab 205 } else if (diff2 > 0.01)
CharlesXu 0:28bd5ee534a3 206 {
CharlesXu 1:8771f19aeeab 207 o = 'B';
CharlesXu 1:8771f19aeeab 208 ref2 -= i2;
CharlesXu 1:8771f19aeeab 209 myled2 = 1;
CharlesXu 1:8771f19aeeab 210 } else if (diff3 > 0.01)
CharlesXu 0:28bd5ee534a3 211 {
CharlesXu 1:8771f19aeeab 212 o = 'C';
CharlesXu 1:8771f19aeeab 213 ref3 -= i3;
CharlesXu 1:8771f19aeeab 214 myled3 = 1;
CharlesXu 1:8771f19aeeab 215 } else if (diff4 > 0.01)
CharlesXu 1:8771f19aeeab 216 {
CharlesXu 1:8771f19aeeab 217 o = 'D';
CharlesXu 1:8771f19aeeab 218 ref4 -= i4;
CharlesXu 1:8771f19aeeab 219 myled4 = 1;
CharlesXu 1:8771f19aeeab 220 } else if (diff5 > 0.01)
CharlesXu 0:28bd5ee534a3 221 {
CharlesXu 1:8771f19aeeab 222 o = 'E';
CharlesXu 1:8771f19aeeab 223 ref5 -= i5;
CharlesXu 1:8771f19aeeab 224 myled1 = 1;
CharlesXu 1:8771f19aeeab 225 myled2 = 1;
CharlesXu 1:8771f19aeeab 226 } else {
CharlesXu 1:8771f19aeeab 227 counter++;
CharlesXu 0:28bd5ee534a3 228 }
CharlesXu 1:8771f19aeeab 229 xbee1.putc(o);
CharlesXu 1:8771f19aeeab 230
CharlesXu 1:8771f19aeeab 231 pc.printf("%4.2f, %4.2f\r\n", avg4, diff4);
CharlesXu 1:8771f19aeeab 232 uLCD.filled_circle(63,63,63, 0x0000ff);
CharlesXu 1:8771f19aeeab 233
CharlesXu 1:8771f19aeeab 234 uLCD.baudrate(3000000);
CharlesXu 1:8771f19aeeab 235 //uLCD.set_font_size(3,3);
CharlesXu 1:8771f19aeeab 236 /*
CharlesXu 1:8771f19aeeab 237 uLCD.text_char('B', 9, 8, BLACK);
CharlesXu 1:8771f19aeeab 238 uLCD.text_char('I',10, 8, BLACK);
CharlesXu 1:8771f19aeeab 239 uLCD.text_char('G',11, 8, BLACK);
CharlesXu 1:8771f19aeeab 240 uLCD.text_italic(ON); */
CharlesXu 1:8771f19aeeab 241 if (i == 0){
CharlesXu 1:8771f19aeeab 242 uLCD.locate(40,40);
CharlesXu 1:8771f19aeeab 243 uLCD.text_italic(ON);
CharlesXu 1:8771f19aeeab 244 uLCD.text_string("Welcome to 4180", 0, 5, FONT_7X8, WHITE);
CharlesXu 1:8771f19aeeab 245 uLCD.text_italic(ON);
CharlesXu 1:8771f19aeeab 246 wait(0.2);
CharlesXu 1:8771f19aeeab 247 uLCD.cls();
CharlesXu 1:8771f19aeeab 248 uLCD.text_string("Final", 0, 9, FONT_7X8, WHITE);
CharlesXu 1:8771f19aeeab 249 uLCD.text_string("Project", 0, 11, FONT_7X8, WHITE);
CharlesXu 1:8771f19aeeab 250
CharlesXu 1:8771f19aeeab 251 i++; uLCD.cls();
CharlesXu 1:8771f19aeeab 252 uLCD.filled_circle(63,63,63, 0x0000ff);
CharlesXu 1:8771f19aeeab 253 wait(0.2);
CharlesXu 0:28bd5ee534a3 254 }
CharlesXu 1:8771f19aeeab 255
CharlesXu 1:8771f19aeeab 256 tempC = myTMP36.read(); //convert to degrees F
CharlesXu 1:8771f19aeeab 257 tempF = (9.0*tempC)/5.0 + 32.0; //print current temp
CharlesXu 1:8771f19aeeab 258
CharlesXu 1:8771f19aeeab 259 uLCD.locate(0,0);
CharlesXu 1:8771f19aeeab 260 uLCD.printf("%5.2f C %5.2f F \n\r", tempC, tempF);
CharlesXu 1:8771f19aeeab 261
CharlesXu 1:8771f19aeeab 262
CharlesXu 1:8771f19aeeab 263 uLCD.filled_rectangle(40, 127, 50, 127 - 2*tempC , 0xFF0000); // MAX- Celcius 64 for celcius bar
CharlesXu 1:8771f19aeeab 264 uLCD.filled_rectangle(60, 127, 70, 127 - tempF, 0xFFFF00); // MAX- farenheit yellow for farenheit bar
CharlesXu 1:8771f19aeeab 265 wait(0.2);
CharlesXu 1:8771f19aeeab 266 // uLCD.cls();
CharlesXu 1:8771f19aeeab 267 uLCD.filled_rectangle(0,0,127, 7, 0x000000);
CharlesXu 1:8771f19aeeab 268 uLCD.filled_circle(63,63,63, 0x0000ff);
CharlesXu 1:8771f19aeeab 269 uLCD.filled_rectangle(40, 127, 50, 127 - 2*tempC , 0x000000); // ERASE
CharlesXu 1:8771f19aeeab 270 uLCD.filled_rectangle(60, 127, 70, 127 - tempF, 0x000000); // MAX- farenheit yellow for farenheit bar
CharlesXu 0:28bd5ee534a3 271 }
CharlesXu 0:28bd5ee534a3 272 }