:)

Dependencies:   MbedJSONValue DebounceIn TextLCD USBDevice mbed WebSocketClient cc3000_hostdriver_mbedsocket Adafruit_LEDBackpack_2

Committer:
jn80842
Date:
Sun Nov 23 05:45:51 2014 +0000
Revision:
3:161fed8bd027
Parent:
1:0183a7d38878
Child:
4:5d27966f93e4
added wifi dependencies and initialization

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ddrew73 0:16d2619002d7 1 #include "mbed.h"
ddrew73 1:0183a7d38878 2 #include <string>
ddrew73 0:16d2619002d7 3 #include "Adafruit_LEDBackpack.h"
ddrew73 0:16d2619002d7 4 #include "Adafruit_GFX.h"
ddrew73 0:16d2619002d7 5 #include "TextLCD.h"
ddrew73 0:16d2619002d7 6 #include "DebounceIn.h"
ddrew73 0:16d2619002d7 7 #include "USBKeyboard.h"
jn80842 3:161fed8bd027 8 #include "cc3000.h"
jn80842 3:161fed8bd027 9 #include "Websocket.h"
jn80842 3:161fed8bd027 10 #include "MbedJSONValue.h"
ddrew73 0:16d2619002d7 11
ddrew73 0:16d2619002d7 12 //LED stuff
ddrew73 0:16d2619002d7 13 I2C i2c(D7,D6);
ddrew73 0:16d2619002d7 14 Adafruit_24bargraph ledbar=Adafruit_24bargraph(&i2c);
ddrew73 0:16d2619002d7 15 DebounceIn upbutton(D9);
ddrew73 0:16d2619002d7 16 DebounceIn downbutton(D8);
ddrew73 0:16d2619002d7 17
ddrew73 0:16d2619002d7 18
ddrew73 0:16d2619002d7 19 //Scanner stuff
ddrew73 0:16d2619002d7 20
ddrew73 0:16d2619002d7 21 DebounceIn scanbutton(D10);
ddrew73 0:16d2619002d7 22
ddrew73 0:16d2619002d7 23 DigitalOut A_in(D0);
ddrew73 0:16d2619002d7 24 DigitalOut B_in(D1);
ddrew73 0:16d2619002d7 25 DigitalOut C_in(D2);
ddrew73 0:16d2619002d7 26
ddrew73 0:16d2619002d7 27 DigitalOut A_out(PTC7);
ddrew73 0:16d2619002d7 28 DigitalOut B_out(PTC0);
ddrew73 0:16d2619002d7 29 DigitalOut C_out(PTC3);
ddrew73 0:16d2619002d7 30
ddrew73 0:16d2619002d7 31 AnalogOut dac(PTE30);
ddrew73 0:16d2619002d7 32 AnalogIn adc(PTB0);
ddrew73 0:16d2619002d7 33
ddrew73 0:16d2619002d7 34 //USBKeyboard keyboard;
ddrew73 0:16d2619002d7 35
ddrew73 0:16d2619002d7 36
ddrew73 0:16d2619002d7 37 //LCD stuff
ddrew73 1:0183a7d38878 38 TextLCD lcd(D13,D12,PTA17,PTA16,PTC17,PTC16,TextLCD::LCD20x4);
ddrew73 0:16d2619002d7 39
jn80842 3:161fed8bd027 40 // cc3000 KL25Z wifi connection
jn80842 3:161fed8bd027 41 // we need to define connection pins for:
jn80842 3:161fed8bd027 42 // - IRQ => (pin D3)
jn80842 3:161fed8bd027 43 // - Enable => (pin D5)
jn80842 3:161fed8bd027 44 // - SPI CS => (pin D10)
jn80842 3:161fed8bd027 45 // - SPI MOSI => (pin D11)
jn80842 3:161fed8bd027 46 // - SPI MISO => (pin D12)
jn80842 3:161fed8bd027 47 // - SPI CLK => (pin D13)
jn80842 3:161fed8bd027 48 // plus wifi network SSID, password, security level and smart-configuration flag.
jn80842 3:161fed8bd027 49
jn80842 3:161fed8bd027 50 mbed_cc3000::cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13),
jn80842 3:161fed8bd027 51 "SSID", "PASSWORD", WPA2, false);
jn80842 3:161fed8bd027 52 Websocket ws("ws://sockets.mbed.org/ws/toastboard/rw");
jn80842 3:161fed8bd027 53
ddrew73 0:16d2619002d7 54 int main()
ddrew73 0:16d2619002d7 55 {
ddrew73 0:16d2619002d7 56
ddrew73 0:16d2619002d7 57 //Scan init
ddrew73 0:16d2619002d7 58
ddrew73 0:16d2619002d7 59 float test_val = .001;
ddrew73 1:0183a7d38878 60 float row_volt = 0;
ddrew73 0:16d2619002d7 61 int con_mat[8][8] = {};
ddrew73 0:16d2619002d7 62 int a1,b1,c1,a2,b2,c2;
ddrew73 0:16d2619002d7 63 //dac = test_val;
ddrew73 0:16d2619002d7 64
ddrew73 0:16d2619002d7 65
ddrew73 0:16d2619002d7 66 //LED init
ddrew73 0:16d2619002d7 67 int redcount = 0, greencount = 0, rowselect = 0, rowselect_old = 0, moved = 1;
ddrew73 0:16d2619002d7 68 ledbar.begin(0x70);
ddrew73 0:16d2619002d7 69 ledbar.clear();
ddrew73 0:16d2619002d7 70 ledbar.writeDisplay();
ddrew73 0:16d2619002d7 71
ddrew73 0:16d2619002d7 72 //LCD init
ddrew73 0:16d2619002d7 73 lcd.cls();
ddrew73 1:0183a7d38878 74 string programname = "Dan's UI Test";
ddrew73 0:16d2619002d7 75
ddrew73 1:0183a7d38878 76 lcd.printf("%s",programname.c_str());
ddrew73 0:16d2619002d7 77
ddrew73 0:16d2619002d7 78 while(1) {
ddrew73 1:0183a7d38878 79
ddrew73 0:16d2619002d7 80 //Display
ddrew73 0:16d2619002d7 81
ddrew73 1:0183a7d38878 82 ledbar.setBar(rowselect_old,LED_OFF);
ddrew73 1:0183a7d38878 83 ledbar.setBar(rowselect,LED_GREEN);
ddrew73 1:0183a7d38878 84 ledbar.writeDisplay();
ddrew73 1:0183a7d38878 85
ddrew73 0:16d2619002d7 86
ddrew73 0:16d2619002d7 87 //Moving the selected row
ddrew73 0:16d2619002d7 88 if (upbutton.read() == 0) {
ddrew73 0:16d2619002d7 89 rowselect_old = rowselect;
ddrew73 0:16d2619002d7 90 rowselect = rowselect-1;
ddrew73 0:16d2619002d7 91 moved = 1;
ddrew73 0:16d2619002d7 92 wait(0.75);
ddrew73 0:16d2619002d7 93 }
ddrew73 0:16d2619002d7 94
ddrew73 0:16d2619002d7 95 if (downbutton.read() == 0) {
ddrew73 0:16d2619002d7 96 rowselect_old = rowselect;
ddrew73 0:16d2619002d7 97 rowselect = rowselect+1;
ddrew73 0:16d2619002d7 98 moved = 1;
ddrew73 0:16d2619002d7 99 wait(0.75);
ddrew73 0:16d2619002d7 100 }
ddrew73 0:16d2619002d7 101
ddrew73 0:16d2619002d7 102 //Boundary checking
ddrew73 0:16d2619002d7 103 if (rowselect > 23) {
ddrew73 0:16d2619002d7 104 rowselect = 23;
ddrew73 0:16d2619002d7 105 }
ddrew73 0:16d2619002d7 106 if (rowselect < 0) {
ddrew73 0:16d2619002d7 107 rowselect = 0;
ddrew73 0:16d2619002d7 108 }
ddrew73 0:16d2619002d7 109
ddrew73 0:16d2619002d7 110 //Implementing scanning
ddrew73 0:16d2619002d7 111
ddrew73 0:16d2619002d7 112 if (scanbutton.read() == 0) {
ddrew73 0:16d2619002d7 113
ddrew73 0:16d2619002d7 114 for (int x = 0; x < 8; x++) {
ddrew73 0:16d2619002d7 115 for (int y = 0; y < 8; y++) {
ddrew73 0:16d2619002d7 116 // Stupid logic to convert count value to binary...
ddrew73 0:16d2619002d7 117 A_in = x%2;
ddrew73 0:16d2619002d7 118 a1 = x%2;
ddrew73 0:16d2619002d7 119 B_in = (x/2)%2;
ddrew73 0:16d2619002d7 120 b1 = (x/2)%2;
ddrew73 0:16d2619002d7 121 C_in = (x/4)%2;
ddrew73 0:16d2619002d7 122 c1 = (x/4)%2;
ddrew73 0:16d2619002d7 123
ddrew73 0:16d2619002d7 124 A_out = y%2;
ddrew73 0:16d2619002d7 125 int a2 = y%2;
ddrew73 0:16d2619002d7 126 B_out = (y/2)%2;
ddrew73 0:16d2619002d7 127 b2 = (y/2)%2;
ddrew73 0:16d2619002d7 128 C_out = (y/4)%2;
ddrew73 0:16d2619002d7 129 c2 = (y/4)%2;
ddrew73 0:16d2619002d7 130
ddrew73 0:16d2619002d7 131 // Now we do the scan test, results are stored in con_mat
ddrew73 0:16d2619002d7 132 //wait(0.01);
ddrew73 0:16d2619002d7 133 dac = test_val;
ddrew73 0:16d2619002d7 134 float in_val = adc.read();
ddrew73 0:16d2619002d7 135
ddrew73 0:16d2619002d7 136 if ((in_val > .0010) && (in_val < .0025))
ddrew73 0:16d2619002d7 137 con_mat[x][y] = 1;
ddrew73 0:16d2619002d7 138 else
ddrew73 0:16d2619002d7 139 con_mat[x][y] = 0;
ddrew73 0:16d2619002d7 140
ddrew73 0:16d2619002d7 141 //keyboard.printf("%f %f \n",dac.read(),in_val);
ddrew73 0:16d2619002d7 142 //keyboard.printf("%d %d %d\n",a2,b2,c2);
ddrew73 0:16d2619002d7 143 }
ddrew73 0:16d2619002d7 144 }
ddrew73 1:0183a7d38878 145
ddrew73 1:0183a7d38878 146 /*
ddrew73 1:0183a7d38878 147 for (int x=0;x<8;x++) {
ddrew73 1:0183a7d38878 148 for (int y=0;y<8;y++) {
ddrew73 1:0183a7d38878 149 keyboard.printf("%d ",con_mat[x][y]);
ddrew73 1:0183a7d38878 150 }}
ddrew73 1:0183a7d38878 151 */
ddrew73 0:16d2619002d7 152 //Displaying all connected rows as red light!
ddrew73 0:16d2619002d7 153 ledbar.clear();
ddrew73 0:16d2619002d7 154 for (int i=0; i<8; i++) {
ddrew73 0:16d2619002d7 155 if (con_mat[rowselect][i] == 1) {
ddrew73 0:16d2619002d7 156 ledbar.setBar(i,LED_RED);
ddrew73 0:16d2619002d7 157 }
ddrew73 0:16d2619002d7 158 }
ddrew73 0:16d2619002d7 159 ledbar.writeDisplay();
ddrew73 0:16d2619002d7 160 moved = 0;
ddrew73 1:0183a7d38878 161
ddrew73 1:0183a7d38878 162 float vddmeasure = 3.14259;
ddrew73 1:0183a7d38878 163 float vrowmeasure = 1.1234;
ddrew73 1:0183a7d38878 164 lcd.cls();
ddrew73 1:0183a7d38878 165 lcd.locate(0,1);
ddrew73 1:0183a7d38878 166 lcd.printf("Vdd: %1.1f V",vddmeasure);
ddrew73 1:0183a7d38878 167 lcd.locate(0,0);
ddrew73 1:0183a7d38878 168 lcd.printf("Row: %1.1f V",vrowmeasure);
ddrew73 1:0183a7d38878 169
ddrew73 0:16d2619002d7 170 wait(2.5);
ddrew73 0:16d2619002d7 171 ledbar.clear();
ddrew73 0:16d2619002d7 172 ledbar.writeDisplay();
ddrew73 1:0183a7d38878 173 lcd.cls();
ddrew73 1:0183a7d38878 174 string programname = "Dan's UI Test";
ddrew73 1:0183a7d38878 175 lcd.printf("%s",programname.c_str());
ddrew73 0:16d2619002d7 176
ddrew73 0:16d2619002d7 177 }
ddrew73 0:16d2619002d7 178 }
ddrew73 0:16d2619002d7 179
ddrew73 0:16d2619002d7 180
ddrew73 0:16d2619002d7 181
ddrew73 0:16d2619002d7 182
ddrew73 0:16d2619002d7 183 }
ddrew73 0:16d2619002d7 184
ddrew73 0:16d2619002d7 185
ddrew73 0:16d2619002d7 186
ddrew73 0:16d2619002d7 187