Coursework

Committer:
sesa514652
Date:
Wed Feb 02 20:55:23 2022 +0000
Revision:
37:323ec7d23454
Parent:
36:3e975536e8d7
Child:
38:71cfbdd2076d
Array getting Compared with Deadband.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sesa514652 28:aab0aa846cf6 1 /**
sesa514652 28:aab0aa846cf6 2 *.....Kory Hamill
sesa514652 28:aab0aa846cf6 3 *.....IOT Smart Electronics Coursework
sesa514652 36:3e975536e8d7 4 *.....Acknowlegements Libary Makers
sesa514652 28:aab0aa846cf6 5 *.....18689004
sesa514652 28:aab0aa846cf6 6 */
sesa514652 28:aab0aa846cf6 7 /**
sesa514652 28:aab0aa846cf6 8 * Section of code to bring in the #includes
sesa514652 28:aab0aa846cf6 9 */
sesa514652 0:1f799c7cce2b 10 #include "mbed.h"
sesa514652 0:1f799c7cce2b 11 #include "Joystick.h"
sesa514652 0:1f799c7cce2b 12 #include "N5110.h"
sesa514652 0:1f799c7cce2b 13 #include "hcsr04.h"
sesa514652 3:6ecb75a2675c 14 #include "Piezo.h"
sesa514652 8:770d168713cc 15 #include "string"
sesa514652 20:4e1f2917a857 16 #include "array"
sesa514652 22:82b01fdfc61f 17 #include <iostream>
sesa514652 37:323ec7d23454 18 #include <numeric>
sesa514652 37:323ec7d23454 19
sesa514652 36:3e975536e8d7 20 using namespace std;
sesa514652 35:36c7605dda06 21
sesa514652 28:aab0aa846cf6 22 /**
sesa514652 28:aab0aa846cf6 23 *...This Section of the code is used to bring in volatile Varible's, These can be wrote to throught the code.
sesa514652 28:aab0aa846cf6 24 *...The Varibles are used to track button press's on the board.
sesa514652 28:aab0aa846cf6 25 */
sesa514652 28:aab0aa846cf6 26 volatile int g_ButtonAPress;
sesa514652 28:aab0aa846cf6 27 volatile int g_ButtonBPress;
sesa514652 33:3717bc4e2fa8 28 volatile int LoopCountScan1;
sesa514652 33:3717bc4e2fa8 29 volatile int LoopCountScan2;
sesa514652 33:3717bc4e2fa8 30 volatile int LoopCountScan3;
sesa514652 33:3717bc4e2fa8 31 volatile int LoopCountScan4;
sesa514652 33:3717bc4e2fa8 32 volatile int LoopCountScan5;
sesa514652 28:aab0aa846cf6 33 volatile int g_buttonA_flag = 0;
sesa514652 28:aab0aa846cf6 34 volatile int g_buttonB_flag = 0;
sesa514652 28:aab0aa846cf6 35 volatile int g_buttonX_flag = 0;
sesa514652 28:aab0aa846cf6 36 volatile int g_buttonY_flag = 0;
sesa514652 28:aab0aa846cf6 37 volatile int g_buttonStart_flag = 0;
sesa514652 28:aab0aa846cf6 38 volatile int g_buttonBack_flag = 0;
sesa514652 28:aab0aa846cf6 39 volatile int g_buttonLeft_flag = 0;
sesa514652 28:aab0aa846cf6 40 volatile int g_buttonRight_flag = 0;
sesa514652 31:91a3c61d33e6 41 /**
sesa514652 31:91a3c61d33e6 42 *..Bring in 5 arrays of 5 for each of the 5 required scans.
sesa514652 31:91a3c61d33e6 43 *..array Ref starts at 0,
sesa514652 31:91a3c61d33e6 44 */
sesa514652 31:91a3c61d33e6 45 volatile int Scan1[5];
sesa514652 31:91a3c61d33e6 46 volatile int Scan2[5];
sesa514652 31:91a3c61d33e6 47 volatile int Scan3[5];
sesa514652 31:91a3c61d33e6 48 volatile int Scan4[5];
sesa514652 31:91a3c61d33e6 49 volatile int Scan5[5];
sesa514652 33:3717bc4e2fa8 50 volatile int wall[5];
sesa514652 28:aab0aa846cf6 51 /**
sesa514652 28:aab0aa846cf6 52 *... Section of code to assign names to IO pins on the K64f
sesa514652 28:aab0aa846cf6 53 */
sesa514652 8:770d168713cc 54 InterruptIn buttonA(PTB9);
sesa514652 8:770d168713cc 55 InterruptIn buttonB(PTD0);
sesa514652 8:770d168713cc 56 InterruptIn buttonX(PTC17);
sesa514652 8:770d168713cc 57 InterruptIn buttonY(PTC12);
sesa514652 11:1dec05b7d1c1 58 InterruptIn buttonStart(PTC5);
sesa514652 11:1dec05b7d1c1 59 InterruptIn buttonBack(PTB19);
sesa514652 11:1dec05b7d1c1 60 InterruptIn buttonLeft(PTB18);
sesa514652 11:1dec05b7d1c1 61 InterruptIn buttonRight(PTB3);
sesa514652 28:aab0aa846cf6 62 Joystick joystick(PTB10,PTB11,PTC16);
sesa514652 28:aab0aa846cf6 63 HCSR04 sensor(D14, D15);
sesa514652 28:aab0aa846cf6 64 Piezo Buzzer(PTC10);
sesa514652 28:aab0aa846cf6 65 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
sesa514652 28:aab0aa846cf6 66
sesa514652 28:aab0aa846cf6 67 /**
sesa514652 28:aab0aa846cf6 68 *...For used with the LCD Screen. rows,cols
sesa514652 28:aab0aa846cf6 69 */
sesa514652 0:1f799c7cce2b 70 int sprite[8][5] = {
sesa514652 28:aab0aa846cf6 71 { 0,0,1,0,0 },
sesa514652 28:aab0aa846cf6 72 { 0,1,1,1,0 },
sesa514652 28:aab0aa846cf6 73 { 0,0,1,0,0 },
sesa514652 28:aab0aa846cf6 74 { 0,1,1,1,0 },
sesa514652 28:aab0aa846cf6 75 { 1,1,1,1,1 },
sesa514652 28:aab0aa846cf6 76 { 1,1,1,1,1 },
sesa514652 28:aab0aa846cf6 77 { 1,1,0,1,1 },
sesa514652 28:aab0aa846cf6 78 { 1,1,0,1,1 },
sesa514652 28:aab0aa846cf6 79 };
sesa514652 28:aab0aa846cf6 80 /**
sesa514652 28:aab0aa846cf6 81 *...Section for starting the board and seeting up interrupt routines
sesa514652 28:aab0aa846cf6 82 *...Along with other functions to be called later
sesa514652 28:aab0aa846cf6 83 */
sesa514652 11:1dec05b7d1c1 84 void init_K64F(); // Start K64fBoard
sesa514652 11:1dec05b7d1c1 85 void buttonA_isr(); // Button A interrupt service routine
sesa514652 11:1dec05b7d1c1 86 void buttonB_isr(); // Button B interrupt service routine
sesa514652 11:1dec05b7d1c1 87 void buttonX_isr(); // Button X interrupt service routine
sesa514652 11:1dec05b7d1c1 88 void buttonY_isr(); // Button Y interrupt service routine
sesa514652 11:1dec05b7d1c1 89 void buttonStart_isr(); // Button Start interrupt service routine
sesa514652 11:1dec05b7d1c1 90 void buttonBack_isr(); // Button Back interrupt service routine
sesa514652 11:1dec05b7d1c1 91 void buttonLeft_isr(); // Button Left interrupt service routine
sesa514652 11:1dec05b7d1c1 92 void buttonRight_isr(); // Button Right interrupt service routine
sesa514652 31:91a3c61d33e6 93 void inputScan1();
sesa514652 31:91a3c61d33e6 94 void inputScan2();
sesa514652 31:91a3c61d33e6 95 void inputScan3();
sesa514652 31:91a3c61d33e6 96 void inputScan4();
sesa514652 31:91a3c61d33e6 97 void inputScan5();
sesa514652 33:3717bc4e2fa8 98 int NoContinueExit();
sesa514652 18:bb36d96142dd 99 int buttonCountA();
sesa514652 18:bb36d96142dd 100 int buttonCountB();
sesa514652 36:3e975536e8d7 101
sesa514652 33:3717bc4e2fa8 102
sesa514652 33:3717bc4e2fa8 103
sesa514652 33:3717bc4e2fa8 104
sesa514652 33:3717bc4e2fa8 105
sesa514652 28:aab0aa846cf6 106 EventQueue queue; /**< Required to get around issues with printing onto LCD and the Printf */
sesa514652 28:aab0aa846cf6 107
sesa514652 28:aab0aa846cf6 108
sesa514652 28:aab0aa846cf6 109 /** Code which was never used
sesa514652 28:aab0aa846cf6 110 *
sesa514652 28:aab0aa846cf6 111 *.. was for initial learning of C++
sesa514652 11:1dec05b7d1c1 112 //volatile int g_buttonA_counter = 0; // Global counter
sesa514652 8:770d168713cc 113 //Test function after research C++ lanuage 05/01/22
sesa514652 4:167ce930c9d5 114 int cube(int num){
sesa514652 11:1dec05b7d1c1 115 return num*num;
sesa514652 5:9b2c976ca318 116 };
sesa514652 10:42e70b596099 117 // Menu Items
sesa514652 10:42e70b596099 118 int page1;
sesa514652 10:42e70b596099 119 int page2;
sesa514652 10:42e70b596099 120 int page3;
sesa514652 28:aab0aa846cf6 121 string Listitem1 = "Game"; //
sesa514652 28:aab0aa846cf6 122 string Listitem2 = "Measure"; //
sesa514652 28:aab0aa846cf6 123 string Listitem3 = "Detect"; //
sesa514652 28:aab0aa846cf6 124 / Test of the interup an operating the buzzer this kills the board
sesa514652 9:cdd7d9a123f9 125 void buzzme(){
sesa514652 9:cdd7d9a123f9 126 Buzzer.play(200,120);
sesa514652 9:cdd7d9a123f9 127 wait_ms(5);
sesa514652 9:cdd7d9a123f9 128 Buzzer.play(200,120);;
sesa514652 9:cdd7d9a123f9 129 }
sesa514652 26:8826ed43fad2 130 int Scan1[5];
sesa514652 26:8826ed43fad2 131 int Scan2[5];
sesa514652 24:a88c4941a25e 132 int Scan1Input(){;
sesa514652 25:9798017b837d 133 Scan1[0] = sensor.distance();
sesa514652 25:9798017b837d 134 Scan1[1] = sensor.distance();;
sesa514652 25:9798017b837d 135 Scan1[2] = sensor.distance();;
sesa514652 26:8826ed43fad2 136 Scan1[3] = sensor.distance();;
sesa514652 26:8826ed43fad2 137 Scan1[4] = sensor.distance();;
sesa514652 26:8826ed43fad2 138 return Scan1[0,1,2,3,4];}
sesa514652 28:aab0aa846cf6 139 //void returnme(){
sesa514652 10:42e70b596099 140 //int num;
sesa514652 10:42e70b596099 141 // return num*num;
sesa514652 10:42e70b596099 142 // };
sesa514652 28:aab0aa846cf6 143 */
sesa514652 36:3e975536e8d7 144 /*
sesa514652 36:3e975536e8d7 145 bool Equal(int ar1[],int ar2[], int n, int m){
sesa514652 36:3e975536e8d7 146 if(n!=m)
sesa514652 36:3e975536e8d7 147 return false;
sesa514652 36:3e975536e8d7 148 sort(ar1,ar1 +n);
sesa514652 36:3e975536e8d7 149 sort(ar2,ar2 +m);
sesa514652 36:3e975536e8d7 150 for (int i=0;i<n; i++)
sesa514652 36:3e975536e8d7 151 if(ar1[i]!=ar2[i])
sesa514652 36:3e975536e8d7 152 return false;
sesa514652 36:3e975536e8d7 153 return true;
sesa514652 36:3e975536e8d7 154 }*/
sesa514652 37:323ec7d23454 155 bool MatchMade(int arr1[], int arr2[], int n, int m)
sesa514652 36:3e975536e8d7 156 {
sesa514652 36:3e975536e8d7 157 // If lengths of array are not equal means
sesa514652 36:3e975536e8d7 158 // array are not equal
sesa514652 36:3e975536e8d7 159 if (n != m)
sesa514652 36:3e975536e8d7 160 return false;
sesa514652 36:3e975536e8d7 161
sesa514652 36:3e975536e8d7 162 // Sort both arrays
sesa514652 36:3e975536e8d7 163 sort(arr1, arr1 + n);
sesa514652 36:3e975536e8d7 164 sort(arr2, arr2 + m);
sesa514652 36:3e975536e8d7 165
sesa514652 36:3e975536e8d7 166 // Linearly compare elements
sesa514652 36:3e975536e8d7 167 for (int i = 0; i < n; i++)
sesa514652 36:3e975536e8d7 168 if (arr1[i] != arr2[i])
sesa514652 36:3e975536e8d7 169 return false;
sesa514652 36:3e975536e8d7 170
sesa514652 36:3e975536e8d7 171
sesa514652 36:3e975536e8d7 172 // If all elements were same.
sesa514652 36:3e975536e8d7 173 return true;
sesa514652 36:3e975536e8d7 174 }
sesa514652 36:3e975536e8d7 175 int main() {
sesa514652 37:323ec7d23454 176
sesa514652 28:aab0aa846cf6 177
sesa514652 28:aab0aa846cf6 178 /**
sesa514652 28:aab0aa846cf6 179 *.. Intialise joystick and Lcd
sesa514652 28:aab0aa846cf6 180 */
sesa514652 5:9b2c976ca318 181 joystick.init();
sesa514652 28:aab0aa846cf6 182 lcd.init();
sesa514652 28:aab0aa846cf6 183 lcd.setContrast(0.5);
sesa514652 28:aab0aa846cf6 184 /**
sesa514652 28:aab0aa846cf6 185 *.. Issues were found with the LCd and printf while using interrupts, to get around
sesa514652 28:aab0aa846cf6 186 *.. this issue these queue's to the event thread were added.
sesa514652 28:aab0aa846cf6 187 */
sesa514652 11:1dec05b7d1c1 188 Thread eventThread;
sesa514652 28:aab0aa846cf6 189 eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
sesa514652 28:aab0aa846cf6 190 buttonA.rise(queue.event(&buttonA_isr));
sesa514652 11:1dec05b7d1c1 191 buttonB.rise(queue.event(&buttonB_isr));
sesa514652 11:1dec05b7d1c1 192 buttonX.rise(queue.event(&buttonX_isr));
sesa514652 11:1dec05b7d1c1 193 buttonY.rise(queue.event(&buttonY_isr));
sesa514652 28:aab0aa846cf6 194 buttonStart.rise(queue.event(&buttonStart_isr));
sesa514652 11:1dec05b7d1c1 195 buttonBack.rise(queue.event(&buttonBack_isr));
sesa514652 11:1dec05b7d1c1 196 buttonLeft.rise(queue.event(&buttonLeft_isr));
sesa514652 11:1dec05b7d1c1 197 buttonRight.rise(queue.event(&buttonRight_isr));
sesa514652 28:aab0aa846cf6 198 /**
sesa514652 28:aab0aa846cf6 199 *..Buttons were connected to IO pins which required a pull down resistor to be active.
sesa514652 28:aab0aa846cf6 200 */
sesa514652 8:770d168713cc 201 buttonA.mode(PullDown);
sesa514652 10:42e70b596099 202 buttonB.mode(PullDown);
sesa514652 10:42e70b596099 203 buttonX.mode(PullDown);
sesa514652 10:42e70b596099 204 buttonY.mode(PullDown);
sesa514652 11:1dec05b7d1c1 205 buttonStart.mode(PullDown);
sesa514652 11:1dec05b7d1c1 206 buttonBack.mode(PullDown);
sesa514652 11:1dec05b7d1c1 207 buttonLeft.mode(PullDown);
sesa514652 11:1dec05b7d1c1 208 buttonRight.mode(PullDown);
sesa514652 5:9b2c976ca318 209
sesa514652 28:aab0aa846cf6 210 /**
sesa514652 28:aab0aa846cf6 211 *.. Section of code not used in main program.
sesa514652 28:aab0aa846cf6 212 *
sesa514652 28:aab0aa846cf6 213 Buzzer.period(10.0f);
sesa514652 5:9b2c976ca318 214 //Buzzer.pulsewidth(1);
sesa514652 28:aab0aa846cf6 215 Test Struct after research 05/01/22
sesa514652 6:f7f30e0e3bed 216 struct ObjectDefine{
sesa514652 7:ce70a873aa70 217 int qwer;
sesa514652 6:f7f30e0e3bed 218 float Distance;
sesa514652 7:ce70a873aa70 219 char te;
sesa514652 7:ce70a873aa70 220 double dubs;
sesa514652 7:ce70a873aa70 221 string namestruct;
sesa514652 8:770d168713cc 222 // string ;
sesa514652 6:f7f30e0e3bed 223 };
sesa514652 7:ce70a873aa70 224 // Test Class 06/01/22
sesa514652 10:42e70b596099 225 class myClass{
sesa514652 7:ce70a873aa70 226 public:
sesa514652 7:ce70a873aa70 227 string nameclass ;
sesa514652 7:ce70a873aa70 228 double dubss;
sesa514652 7:ce70a873aa70 229 int inty;
sesa514652 7:ce70a873aa70 230 };
sesa514652 7:ce70a873aa70 231 myClass Class1;
sesa514652 7:ce70a873aa70 232 Class1.nameclass ="firstclass";
sesa514652 10:42e70b596099 233 ObjectDefine Object1;
sesa514652 10:42e70b596099 234 Object1.qwer = 12;
sesa514652 6:f7f30e0e3bed 235 Object1.Distance = 34;
sesa514652 7:ce70a873aa70 236 Object1.te = 'A';
sesa514652 7:ce70a873aa70 237 Object1.dubs = 23;
sesa514652 10:42e70b596099 238 Object1.namestruct = "name";
sesa514652 28:aab0aa846cf6 239 */
sesa514652 36:3e975536e8d7 240
sesa514652 36:3e975536e8d7 241 /*
sesa514652 36:3e975536e8d7 242 int ar1[]= {2,3,4,5};
sesa514652 36:3e975536e8d7 243 int ar2[] = {2,3,4,5};
sesa514652 36:3e975536e8d7 244 int n = sizeof(ar1);
sesa514652 36:3e975536e8d7 245 int m = sizeof(ar2);
sesa514652 36:3e975536e8d7 246 if(Equal(ar1,ar2,n,m)){
sesa514652 36:3e975536e8d7 247 printf("TRUEEEEEEEEEEEEEEEEEEE\n");}
sesa514652 36:3e975536e8d7 248 else {printf("Falseeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddd\n");}
sesa514652 36:3e975536e8d7 249
sesa514652 36:3e975536e8d7 250
sesa514652 36:3e975536e8d7 251
sesa514652 36:3e975536e8d7 252
sesa514652 36:3e975536e8d7 253 */
sesa514652 36:3e975536e8d7 254
sesa514652 36:3e975536e8d7 255
sesa514652 36:3e975536e8d7 256
sesa514652 36:3e975536e8d7 257
sesa514652 36:3e975536e8d7 258
sesa514652 36:3e975536e8d7 259 printf("I SHOULD HAVE BEEN PRINTED !!!!!");
sesa514652 36:3e975536e8d7 260
sesa514652 0:1f799c7cce2b 261 while(1) {
sesa514652 31:91a3c61d33e6 262
sesa514652 36:3e975536e8d7 263 char Decide[5];
sesa514652 36:3e975536e8d7 264 char Decide2[5];
sesa514652 36:3e975536e8d7 265 char Decide3[5];
sesa514652 36:3e975536e8d7 266 char Decide4[5];
sesa514652 36:3e975536e8d7 267 char Decide5[5];
sesa514652 27:d48bf4e8f1a0 268
sesa514652 28:aab0aa846cf6 269 /**
sesa514652 28:aab0aa846cf6 270 *.. It was found Cout was not working as expected.
sesa514652 28:aab0aa846cf6 271 cout << "Test value collection";
sesa514652 28:aab0aa846cf6 272 Scan1Input();
sesa514652 28:aab0aa846cf6 273
sesa514652 27:d48bf4e8f1a0 274 cout << Scan1[0];cout <<"/n";
sesa514652 27:d48bf4e8f1a0 275 cout << Scan1[1];"/n";
sesa514652 27:d48bf4e8f1a0 276 cout << Scan1[2];"/n";
sesa514652 27:d48bf4e8f1a0 277 cout << Scan1[3];"/n";
sesa514652 27:d48bf4e8f1a0 278 cout << Scan1[4];"/n";
sesa514652 27:d48bf4e8f1a0 279 cout << Scan1[5];"/n";
sesa514652 27:d48bf4e8f1a0 280 cout << Scan1[6];"/n";
sesa514652 27:d48bf4e8f1a0 281 cout << Scan1[7];"/n";
sesa514652 27:d48bf4e8f1a0 282 cout << Scan1[8];"/n";
sesa514652 27:d48bf4e8f1a0 283 cout << Scan1[9];"/n";
sesa514652 27:d48bf4e8f1a0 284 */
sesa514652 33:3717bc4e2fa8 285 printf("Debug : LoopCount1 : %i\n",LoopCountScan1);
sesa514652 33:3717bc4e2fa8 286 printf("Debug : LoopCount2 : %i\n",LoopCountScan2);
sesa514652 33:3717bc4e2fa8 287 printf("Debug : LoopCount3 : %i\n",LoopCountScan3);
sesa514652 33:3717bc4e2fa8 288 printf("Debug : LoopCount4 : %i\n",LoopCountScan4);
sesa514652 33:3717bc4e2fa8 289 printf("Debug : LoopCount5 : %i\n",LoopCountScan5);
sesa514652 28:aab0aa846cf6 290 printf("press count = %i\n",g_ButtonAPress);
sesa514652 26:8826ed43fad2 291 printf("Scan1 1 : %d cm\n", Scan1[0]);
sesa514652 26:8826ed43fad2 292 printf("Scan1 2 : %d cm\n", Scan1[1]);
sesa514652 26:8826ed43fad2 293 printf("Scan1 3 : %d cm\n", Scan1[2]);
sesa514652 26:8826ed43fad2 294 printf("Scan1 4 : %d cm\n", Scan1[3]);
sesa514652 26:8826ed43fad2 295 printf("Scan1 5 : %d cm\n", Scan1[4]);
sesa514652 26:8826ed43fad2 296 printf("Scan2 1 : %d cm\n", Scan2[0]);
sesa514652 26:8826ed43fad2 297 printf("Scan2 2 : %d cm\n", Scan2[1]);
sesa514652 26:8826ed43fad2 298 printf("Scan2 3 : %d cm\n", Scan2[2]);
sesa514652 26:8826ed43fad2 299 printf("Scan2 4 : %d cm\n", Scan2[3]);
sesa514652 26:8826ed43fad2 300 printf("Scan2 5 : %d cm\n", Scan2[4]);
sesa514652 26:8826ed43fad2 301 printf("Scan3 1 : %d cm\n", Scan3[0]);
sesa514652 26:8826ed43fad2 302 printf("Scan3 2 : %d cm\n", Scan3[1]);
sesa514652 26:8826ed43fad2 303 printf("Scan3 3 : %d cm\n", Scan3[2]);
sesa514652 26:8826ed43fad2 304 printf("Scan3 4 : %d cm\n", Scan3[3]);
sesa514652 26:8826ed43fad2 305 printf("Scan3 5 : %d cm\n", Scan3[4]);
sesa514652 26:8826ed43fad2 306 printf("Scan4 1 : %d cm\n", Scan4[0]);
sesa514652 26:8826ed43fad2 307 printf("Scan4 2 : %d cm\n", Scan4[1]);
sesa514652 26:8826ed43fad2 308 printf("Scan4 3 : %d cm\n", Scan4[2]);
sesa514652 26:8826ed43fad2 309 printf("Scan4 4 : %d cm\n", Scan4[3]);
sesa514652 26:8826ed43fad2 310 printf("Scan4 5 : %d cm\n", Scan4[4]);
sesa514652 26:8826ed43fad2 311 printf("Scan5 1 : %d cm\n", Scan5[0]);
sesa514652 26:8826ed43fad2 312 printf("Scan5 2 : %d cm\n", Scan5[1]);
sesa514652 26:8826ed43fad2 313 printf("Scan5 3 : %d cm\n", Scan5[2]);
sesa514652 26:8826ed43fad2 314 printf("Scan5 4 : %d cm\n", Scan5[3]);
sesa514652 36:3e975536e8d7 315 printf("Scan5 5 : %d cm\n", Scan5[4]);
sesa514652 25:9798017b837d 316 printf("I always Get printed \n");
sesa514652 24:a88c4941a25e 317 // cout << Scan1[2];
sesa514652 24:a88c4941a25e 318 // cout << Scan1[6];
sesa514652 28:aab0aa846cf6 319 printf("I Should Be printed always \n");
sesa514652 28:aab0aa846cf6 320 /**
sesa514652 28:aab0aa846cf6 321 *..Code section on Comparing data Cout was causing issue
sesa514652 28:aab0aa846cf6 322 *
sesa514652 24:a88c4941a25e 323 if (Scan1[1] > Scan1[2]){
sesa514652 24:a88c4941a25e 324 cout <<'+';
sesa514652 24:a88c4941a25e 325 }else if (Scan1[1]=Scan1[2]){
sesa514652 24:a88c4941a25e 326 cout <<'=';}
sesa514652 24:a88c4941a25e 327 else {
sesa514652 24:a88c4941a25e 328 cout <<'-';}
sesa514652 24:a88c4941a25e 329 if (Scan1[2] > Scan1[3]){
sesa514652 24:a88c4941a25e 330 cout <<'+';
sesa514652 24:a88c4941a25e 331 }else if (Scan1[2]=Scan1[3]){
sesa514652 24:a88c4941a25e 332 cout <<'=';}
sesa514652 23:f72175fb49ed 333 else {
sesa514652 23:f72175fb49ed 334 cout <<'-';}
sesa514652 24:a88c4941a25e 335
sesa514652 24:a88c4941a25e 336 if (Scan1[3] > Scan1[4]){
sesa514652 24:a88c4941a25e 337 cout <<'+';
sesa514652 24:a88c4941a25e 338 }else if (Scan1[3]=Scan1[4]){
sesa514652 24:a88c4941a25e 339 cout <<'=';}
sesa514652 24:a88c4941a25e 340 else {
sesa514652 24:a88c4941a25e 341 cout <<'-';}
sesa514652 24:a88c4941a25e 342 if (Scan1[4] > Scan1[5]){
sesa514652 24:a88c4941a25e 343 cout <<'+';
sesa514652 24:a88c4941a25e 344 }else if (Scan1[4]=Scan1[5]){
sesa514652 24:a88c4941a25e 345 cout <<'=';}
sesa514652 24:a88c4941a25e 346 else {
sesa514652 24:a88c4941a25e 347 cout <<'-';}
sesa514652 24:a88c4941a25e 348 if (Scan1[5] > Scan1[6]){
sesa514652 24:a88c4941a25e 349 cout <<'+';
sesa514652 24:a88c4941a25e 350 }else if (Scan1[5]=Scan1[6]){
sesa514652 24:a88c4941a25e 351 cout <<'=';}
sesa514652 24:a88c4941a25e 352 else {
sesa514652 24:a88c4941a25e 353 cout <<'-';}
sesa514652 24:a88c4941a25e 354 if (Scan1[6] > Scan1[7]){
sesa514652 24:a88c4941a25e 355 cout <<'+';
sesa514652 24:a88c4941a25e 356 }else if (Scan1[6]=Scan1[7]){
sesa514652 24:a88c4941a25e 357 cout <<'=';}
sesa514652 24:a88c4941a25e 358 else {
sesa514652 24:a88c4941a25e 359 cout <<'-';}
sesa514652 24:a88c4941a25e 360 if (Scan1[7] > Scan1[8]){
sesa514652 24:a88c4941a25e 361 cout <<'+';
sesa514652 24:a88c4941a25e 362 }else if (Scan1[7]=Scan1[8]){
sesa514652 24:a88c4941a25e 363 cout <<'=';}
sesa514652 24:a88c4941a25e 364 else {
sesa514652 24:a88c4941a25e 365 cout <<'-';}
sesa514652 24:a88c4941a25e 366
sesa514652 24:a88c4941a25e 367 if (Scan1[8] > Scan1[9]){
sesa514652 24:a88c4941a25e 368 cout <<'+';
sesa514652 24:a88c4941a25e 369 }else if (Scan1[8]=Scan1[9]){
sesa514652 24:a88c4941a25e 370 cout <<'=';}
sesa514652 24:a88c4941a25e 371 else {
sesa514652 24:a88c4941a25e 372 cout <<'-';}
sesa514652 24:a88c4941a25e 373 if (Scan1[9] > Scan1[10]){
sesa514652 24:a88c4941a25e 374 cout <<'+';
sesa514652 24:a88c4941a25e 375 }else if (Scan1[9]=Scan1[10]){
sesa514652 24:a88c4941a25e 376 cout <<'=';}
sesa514652 24:a88c4941a25e 377 else {
sesa514652 24:a88c4941a25e 378 cout <<'-';}
sesa514652 28:aab0aa846cf6 379 */
sesa514652 21:2e37f80e8b5b 380
sesa514652 26:8826ed43fad2 381 /////////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 28:aab0aa846cf6 382 /**
sesa514652 28:aab0aa846cf6 383 *..Initial state when starting the Board.
sesa514652 28:aab0aa846cf6 384 */
sesa514652 28:aab0aa846cf6 385 switch(g_ButtonAPress){
sesa514652 21:2e37f80e8b5b 386 default:
sesa514652 29:1aef0ecf9840 387 lcd.clear();
sesa514652 21:2e37f80e8b5b 388 lcd.printString("Main Menu",0,0);
sesa514652 28:aab0aa846cf6 389 lcd.drawLine(0,10,80,10,2);
sesa514652 31:91a3c61d33e6 390 lcd.printString("Press A",0,2);
sesa514652 31:91a3c61d33e6 391 lcd.printString("New Scan",0,3);
sesa514652 31:91a3c61d33e6 392 lcd.printString("Press B",0,4);
sesa514652 27:d48bf4e8f1a0 393 lcd.printString("Kory 18689004",0,5);
sesa514652 33:3717bc4e2fa8 394 LoopCountScan1 =0;
sesa514652 33:3717bc4e2fa8 395 LoopCountScan2 =0;
sesa514652 33:3717bc4e2fa8 396 LoopCountScan3 =0;
sesa514652 33:3717bc4e2fa8 397 LoopCountScan4 =0;
sesa514652 33:3717bc4e2fa8 398 LoopCountScan5 =0;
sesa514652 29:1aef0ecf9840 399
sesa514652 36:3e975536e8d7 400
sesa514652 36:3e975536e8d7 401
sesa514652 36:3e975536e8d7 402
sesa514652 33:3717bc4e2fa8 403 for(int i=0; i<5; i++){
sesa514652 33:3717bc4e2fa8 404
sesa514652 36:3e975536e8d7 405 printf("hello Scan: %i The value of : %i \n",i, Scan1[i]);
sesa514652 33:3717bc4e2fa8 406 if (Scan1[i]>95){
sesa514652 36:3e975536e8d7 407 Decide[i]= '+';
sesa514652 36:3e975536e8d7 408 printf("no wall%c/n",Decide[i]);}
sesa514652 33:3717bc4e2fa8 409 else if (Scan1[i]<85){
sesa514652 36:3e975536e8d7 410 Decide[i]= '-';
sesa514652 36:3e975536e8d7 411 printf("OBJECT ABOUT%c/n",Decide[i]);}
sesa514652 33:3717bc4e2fa8 412 else if (Scan1[i]>85<95){
sesa514652 36:3e975536e8d7 413 Decide[i]= '=';
sesa514652 36:3e975536e8d7 414 printf("No Object %c/n",Decide[i]);}
sesa514652 35:36c7605dda06 415 }
sesa514652 37:323ec7d23454 416
sesa514652 37:323ec7d23454 417 for (int i=0; i<5; i++){
sesa514652 37:323ec7d23454 418 int box[5]= {90,90,90,90,90};
sesa514652 37:323ec7d23454 419 int isBox[5];
sesa514652 37:323ec7d23454 420 isBox[i] =abs(Scan1[i]-box[i]);
sesa514652 37:323ec7d23454 421 printf("DeBUGGING isBOX : %i\n", isBox[i]);
sesa514652 37:323ec7d23454 422 if (isBox[i]<=5){
sesa514652 37:323ec7d23454 423 isBox[i]=0;}
sesa514652 37:323ec7d23454 424 else if (isBox[i]>5){
sesa514652 37:323ec7d23454 425 isBox[i]=1;}
sesa514652 37:323ec7d23454 426 printf("DeBUGGING isBOX : %i\n", isBox[i]);
sesa514652 37:323ec7d23454 427 int total = accumulate(begin(isBox), end(isBox), 0, plus<int>());
sesa514652 37:323ec7d23454 428 printf("DEBUGGING total %i\n", total);}
sesa514652 37:323ec7d23454 429
sesa514652 37:323ec7d23454 430
sesa514652 37:323ec7d23454 431
sesa514652 35:36c7605dda06 432
sesa514652 29:1aef0ecf9840 433 /** IF Statement to decide on shape to draw
sesa514652 29:1aef0ecf9840 434 *.. This section of code compares the each array element with the one proceding it and makes a logical decision if higher lower or equal.
sesa514652 29:1aef0ecf9840 435 */
sesa514652 34:dfe7f5799582 436 /*
sesa514652 29:1aef0ecf9840 437 if (Scan1[0] > Scan1[1])
sesa514652 29:1aef0ecf9840 438 {
sesa514652 29:1aef0ecf9840 439 printf("+");
sesa514652 29:1aef0ecf9840 440 Decide[0]= 'x';
sesa514652 29:1aef0ecf9840 441 printf( "chosen 1 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 442 }
sesa514652 31:91a3c61d33e6 443 else if (Scan1[0] == Scan1[1])
sesa514652 29:1aef0ecf9840 444 {
sesa514652 29:1aef0ecf9840 445 printf("=");
sesa514652 29:1aef0ecf9840 446 Decide[0]='=';
sesa514652 29:1aef0ecf9840 447 printf( "chosen2 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 448 }
sesa514652 29:1aef0ecf9840 449 else if (Scan1[0] < Scan1[1])
sesa514652 29:1aef0ecf9840 450 {
sesa514652 29:1aef0ecf9840 451 printf("-");
sesa514652 29:1aef0ecf9840 452 Decide[0]='-';
sesa514652 29:1aef0ecf9840 453 printf( "chosen3 %c\n",Decide[0]);
sesa514652 29:1aef0ecf9840 454 }
sesa514652 29:1aef0ecf9840 455 if (Scan1[1] > Scan1[2])
sesa514652 29:1aef0ecf9840 456 {
sesa514652 29:1aef0ecf9840 457 printf("+");
sesa514652 29:1aef0ecf9840 458 Decide[1]= 'x';
sesa514652 29:1aef0ecf9840 459 printf( "chosen 1 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 460 }
sesa514652 31:91a3c61d33e6 461 else if (Scan1[1] == Scan1[2])
sesa514652 29:1aef0ecf9840 462 {
sesa514652 29:1aef0ecf9840 463 printf("=");
sesa514652 29:1aef0ecf9840 464 Decide[1]='=';
sesa514652 29:1aef0ecf9840 465 printf( "chosen2 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 466 }
sesa514652 29:1aef0ecf9840 467 else if (Scan1[1] < Scan1[2])
sesa514652 29:1aef0ecf9840 468 {
sesa514652 29:1aef0ecf9840 469 printf("-");
sesa514652 29:1aef0ecf9840 470 Decide[1]='-';
sesa514652 29:1aef0ecf9840 471 printf( "chosen3 %c\n",Decide[1]);
sesa514652 29:1aef0ecf9840 472 }
sesa514652 29:1aef0ecf9840 473
sesa514652 29:1aef0ecf9840 474 if (Scan1[2] > Scan1[3])
sesa514652 29:1aef0ecf9840 475 {
sesa514652 29:1aef0ecf9840 476 printf("+");
sesa514652 29:1aef0ecf9840 477 Decide[2]= 'x';
sesa514652 29:1aef0ecf9840 478 printf( "chosen 1 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 479 }
sesa514652 31:91a3c61d33e6 480 else if (Scan1[2] == Scan1[3])
sesa514652 29:1aef0ecf9840 481 {
sesa514652 29:1aef0ecf9840 482 printf("=");
sesa514652 29:1aef0ecf9840 483 Decide[2]='=';
sesa514652 29:1aef0ecf9840 484 printf( "chosen2 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 485 }
sesa514652 29:1aef0ecf9840 486 else if (Scan1[2] < Scan1[3])
sesa514652 29:1aef0ecf9840 487 {
sesa514652 29:1aef0ecf9840 488 printf("-");
sesa514652 29:1aef0ecf9840 489 Decide[2]='-';
sesa514652 29:1aef0ecf9840 490 printf( "chosen3 %c\n",Decide[2]);
sesa514652 29:1aef0ecf9840 491 }
sesa514652 29:1aef0ecf9840 492 if (Scan1[3] > Scan1[4])
sesa514652 29:1aef0ecf9840 493 {
sesa514652 29:1aef0ecf9840 494 printf("+");
sesa514652 29:1aef0ecf9840 495 Decide[3]= 'x';
sesa514652 29:1aef0ecf9840 496 printf( "chosen 1 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 497 }
sesa514652 31:91a3c61d33e6 498 else if (Scan1[3] == Scan1[4])
sesa514652 29:1aef0ecf9840 499 {
sesa514652 29:1aef0ecf9840 500 printf("=");
sesa514652 29:1aef0ecf9840 501 Decide[3]='=';
sesa514652 29:1aef0ecf9840 502 printf( "chosen2 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 503 }
sesa514652 29:1aef0ecf9840 504 else if (Scan1[3] < Scan1[4])
sesa514652 29:1aef0ecf9840 505 {
sesa514652 29:1aef0ecf9840 506 printf("-");
sesa514652 29:1aef0ecf9840 507 Decide[3]='-';
sesa514652 29:1aef0ecf9840 508 printf( "chosen3 %c\n",Decide[3]);
sesa514652 29:1aef0ecf9840 509 }
sesa514652 29:1aef0ecf9840 510
sesa514652 29:1aef0ecf9840 511 if (Scan2[0] > Scan2[1])
sesa514652 29:1aef0ecf9840 512 {
sesa514652 29:1aef0ecf9840 513 printf("+");
sesa514652 29:1aef0ecf9840 514 Decide2[0]= 'x';
sesa514652 29:1aef0ecf9840 515 printf( "chosen 1 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 516 }
sesa514652 31:91a3c61d33e6 517 else if (Scan2[0] == Scan2[1])
sesa514652 29:1aef0ecf9840 518 {
sesa514652 29:1aef0ecf9840 519 printf("=");
sesa514652 29:1aef0ecf9840 520 Decide2[0]='=';
sesa514652 29:1aef0ecf9840 521 printf( "chosen2 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 522 }
sesa514652 29:1aef0ecf9840 523 else if (Scan2[0] < Scan2[1])
sesa514652 29:1aef0ecf9840 524 {
sesa514652 29:1aef0ecf9840 525 printf("-");
sesa514652 29:1aef0ecf9840 526 Decide2[0]='-';
sesa514652 29:1aef0ecf9840 527 printf( "chosen3 %c\n",Decide2[0]);
sesa514652 29:1aef0ecf9840 528 }
sesa514652 29:1aef0ecf9840 529 if (Scan2[1] > Scan2[2])
sesa514652 29:1aef0ecf9840 530 {
sesa514652 29:1aef0ecf9840 531 printf("+");
sesa514652 29:1aef0ecf9840 532 Decide2[1]= 'x';
sesa514652 29:1aef0ecf9840 533 printf( "chosen 1 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 534 }
sesa514652 31:91a3c61d33e6 535 else if (Scan2[1] == Scan2[2])
sesa514652 29:1aef0ecf9840 536 {
sesa514652 29:1aef0ecf9840 537 printf("=");
sesa514652 29:1aef0ecf9840 538 Decide2[1]='=';
sesa514652 29:1aef0ecf9840 539 printf( "chosen2 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 540 }
sesa514652 29:1aef0ecf9840 541 else if (Scan2[1] < Scan2[2])
sesa514652 29:1aef0ecf9840 542 {
sesa514652 29:1aef0ecf9840 543 printf("-");
sesa514652 29:1aef0ecf9840 544 Decide2[1]='-';
sesa514652 29:1aef0ecf9840 545 printf( "chosen3 %c\n",Decide2[1]);
sesa514652 29:1aef0ecf9840 546 }
sesa514652 29:1aef0ecf9840 547
sesa514652 29:1aef0ecf9840 548 if (Scan2[2] > Scan2[3])
sesa514652 29:1aef0ecf9840 549 {
sesa514652 29:1aef0ecf9840 550 printf("+");
sesa514652 29:1aef0ecf9840 551 Decide2[2]= 'x';
sesa514652 29:1aef0ecf9840 552 printf( "chosen 1 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 553 }
sesa514652 31:91a3c61d33e6 554 else if (Scan2[2] == Scan2[3])
sesa514652 29:1aef0ecf9840 555 {
sesa514652 29:1aef0ecf9840 556 printf("=");
sesa514652 29:1aef0ecf9840 557 Decide2[2]='=';
sesa514652 29:1aef0ecf9840 558 printf( "chosen2 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 559 }
sesa514652 29:1aef0ecf9840 560 else if (Scan2[2] < Scan2[3])
sesa514652 29:1aef0ecf9840 561 {
sesa514652 29:1aef0ecf9840 562 printf("-");
sesa514652 29:1aef0ecf9840 563 Decide2[2]='-';
sesa514652 29:1aef0ecf9840 564 printf( "chosen3 %c\n",Decide2[2]);
sesa514652 29:1aef0ecf9840 565 }
sesa514652 29:1aef0ecf9840 566 if (Scan2[3] > Scan2[4])
sesa514652 29:1aef0ecf9840 567 {
sesa514652 29:1aef0ecf9840 568 printf("+");
sesa514652 29:1aef0ecf9840 569 Decide2[3]= 'x';
sesa514652 29:1aef0ecf9840 570 printf( "chosen 1 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 571 }
sesa514652 31:91a3c61d33e6 572 else if (Scan2[3] == Scan2[4])
sesa514652 29:1aef0ecf9840 573 {
sesa514652 29:1aef0ecf9840 574 printf("=");
sesa514652 29:1aef0ecf9840 575 Decide2[3]='=';
sesa514652 29:1aef0ecf9840 576 printf( "chosen2 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 577 }
sesa514652 29:1aef0ecf9840 578 else if (Scan2[3] < Scan2[4])
sesa514652 29:1aef0ecf9840 579 {
sesa514652 29:1aef0ecf9840 580 printf("-");
sesa514652 29:1aef0ecf9840 581 Decide2[3]='-';
sesa514652 29:1aef0ecf9840 582 printf( "chosen3 %c\n",Decide2[3]);
sesa514652 29:1aef0ecf9840 583 }
sesa514652 29:1aef0ecf9840 584
sesa514652 29:1aef0ecf9840 585 if (Scan3[0] > Scan3[1])
sesa514652 29:1aef0ecf9840 586 {
sesa514652 29:1aef0ecf9840 587 printf("+");
sesa514652 29:1aef0ecf9840 588 Decide3[0]= 'x';
sesa514652 29:1aef0ecf9840 589 printf( "chosen 1 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 590 }
sesa514652 31:91a3c61d33e6 591 else if (Scan3[0] == Scan3[1])
sesa514652 29:1aef0ecf9840 592 {
sesa514652 29:1aef0ecf9840 593 printf("=");
sesa514652 29:1aef0ecf9840 594 Decide3[0]='=';
sesa514652 29:1aef0ecf9840 595 printf( "chosen2 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 596 }
sesa514652 29:1aef0ecf9840 597 else if (Scan3[0] < Scan3[1])
sesa514652 29:1aef0ecf9840 598 {
sesa514652 29:1aef0ecf9840 599 printf("-");
sesa514652 29:1aef0ecf9840 600 Decide3[0]='-';
sesa514652 29:1aef0ecf9840 601 printf( "chosen3 %c\n",Decide3[0]);
sesa514652 29:1aef0ecf9840 602 }
sesa514652 29:1aef0ecf9840 603 if (Scan3[1] > Scan3[2])
sesa514652 29:1aef0ecf9840 604 {
sesa514652 29:1aef0ecf9840 605 printf("+");
sesa514652 29:1aef0ecf9840 606 Decide3[1]= 'x';
sesa514652 29:1aef0ecf9840 607 printf( "chosen 1 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 608 }
sesa514652 31:91a3c61d33e6 609 else if (Scan3[1] == Scan3[2])
sesa514652 29:1aef0ecf9840 610 {
sesa514652 29:1aef0ecf9840 611 printf("=");
sesa514652 29:1aef0ecf9840 612 Decide3[1]='=';
sesa514652 29:1aef0ecf9840 613 printf( "chosen2 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 614 }
sesa514652 29:1aef0ecf9840 615 else if (Scan3[1] < Scan3[2])
sesa514652 29:1aef0ecf9840 616 {
sesa514652 29:1aef0ecf9840 617 printf("-");
sesa514652 29:1aef0ecf9840 618 Decide3[1]='-';
sesa514652 29:1aef0ecf9840 619 printf( "chosen3 %c\n",Decide3[1]);
sesa514652 29:1aef0ecf9840 620 }
sesa514652 29:1aef0ecf9840 621
sesa514652 29:1aef0ecf9840 622 if (Scan3[2] > Scan3[3])
sesa514652 29:1aef0ecf9840 623 {
sesa514652 29:1aef0ecf9840 624 printf("+");
sesa514652 29:1aef0ecf9840 625 Decide3[2]= 'x';
sesa514652 29:1aef0ecf9840 626 printf( "chosen 1 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 627 }
sesa514652 31:91a3c61d33e6 628 else if (Scan3[2] == Scan3[3])
sesa514652 29:1aef0ecf9840 629 {
sesa514652 29:1aef0ecf9840 630 printf("=");
sesa514652 29:1aef0ecf9840 631 Decide3[2]='=';
sesa514652 29:1aef0ecf9840 632 printf( "chosen2 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 633 }
sesa514652 29:1aef0ecf9840 634 else if (Scan3[2] < Scan3[3])
sesa514652 29:1aef0ecf9840 635 {
sesa514652 29:1aef0ecf9840 636 printf("-");
sesa514652 29:1aef0ecf9840 637 Decide3[2]='-';
sesa514652 29:1aef0ecf9840 638 printf( "chosen3 %c\n",Decide3[2]);
sesa514652 29:1aef0ecf9840 639 }
sesa514652 29:1aef0ecf9840 640 if (Scan3[3] > Scan3[4])
sesa514652 29:1aef0ecf9840 641 {
sesa514652 29:1aef0ecf9840 642 printf("+");
sesa514652 29:1aef0ecf9840 643 Decide3[3]= 'x';
sesa514652 29:1aef0ecf9840 644 printf( "chosen 1 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 645 }
sesa514652 31:91a3c61d33e6 646 else if (Scan3[3] == Scan3[4])
sesa514652 29:1aef0ecf9840 647 {
sesa514652 29:1aef0ecf9840 648 printf("=");
sesa514652 29:1aef0ecf9840 649 Decide3[3]='=';
sesa514652 29:1aef0ecf9840 650 printf( "chosen2 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 651 }
sesa514652 29:1aef0ecf9840 652 else if (Scan3[3] < Scan3[4])
sesa514652 29:1aef0ecf9840 653 {
sesa514652 29:1aef0ecf9840 654 printf("-");
sesa514652 29:1aef0ecf9840 655 Decide3[3]='-';
sesa514652 29:1aef0ecf9840 656 printf( "chosen3 %c\n",Decide3[3]);
sesa514652 29:1aef0ecf9840 657 }
sesa514652 29:1aef0ecf9840 658
sesa514652 29:1aef0ecf9840 659 if (Scan4[0] > Scan4[1])
sesa514652 29:1aef0ecf9840 660 {
sesa514652 29:1aef0ecf9840 661 printf("+");
sesa514652 29:1aef0ecf9840 662 Decide4[0]= 'x';
sesa514652 29:1aef0ecf9840 663 printf( "chosen 1 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 664 }
sesa514652 31:91a3c61d33e6 665 else if (Scan4[0] == Scan4[1])
sesa514652 29:1aef0ecf9840 666 {
sesa514652 29:1aef0ecf9840 667 printf("=");
sesa514652 29:1aef0ecf9840 668 Decide4[0]='=';
sesa514652 29:1aef0ecf9840 669 printf( "chosen2 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 670 }
sesa514652 29:1aef0ecf9840 671 else if (Scan4[0] < Scan4[1])
sesa514652 29:1aef0ecf9840 672 {
sesa514652 29:1aef0ecf9840 673 printf("-");
sesa514652 29:1aef0ecf9840 674 Decide4[0]='-';
sesa514652 29:1aef0ecf9840 675 printf( "chosen3 %c\n",Decide4[0]);
sesa514652 29:1aef0ecf9840 676 }
sesa514652 29:1aef0ecf9840 677 if (Scan4[1] > Scan4[2])
sesa514652 29:1aef0ecf9840 678 {
sesa514652 29:1aef0ecf9840 679 printf("+");
sesa514652 29:1aef0ecf9840 680 Decide4[1]= 'x';
sesa514652 29:1aef0ecf9840 681 printf( "chosen 1 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 682 }
sesa514652 31:91a3c61d33e6 683 else if (Scan4[1] == Scan4[2])
sesa514652 29:1aef0ecf9840 684 {
sesa514652 29:1aef0ecf9840 685 printf("=");
sesa514652 29:1aef0ecf9840 686 Decide4[1]='=';
sesa514652 29:1aef0ecf9840 687 printf( "chosen2 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 688 }
sesa514652 29:1aef0ecf9840 689 else if (Scan4[1] < Scan4[2])
sesa514652 29:1aef0ecf9840 690 {
sesa514652 29:1aef0ecf9840 691 printf("-");
sesa514652 29:1aef0ecf9840 692 Decide4[1]='-';
sesa514652 29:1aef0ecf9840 693 printf( "chosen3 %c\n",Decide4[1]);
sesa514652 29:1aef0ecf9840 694 }
sesa514652 29:1aef0ecf9840 695
sesa514652 29:1aef0ecf9840 696 if (Scan4[2] > Scan4[3])
sesa514652 29:1aef0ecf9840 697 {
sesa514652 29:1aef0ecf9840 698 printf("+");
sesa514652 29:1aef0ecf9840 699 Decide4[2]= 'x';
sesa514652 29:1aef0ecf9840 700 printf( "chosen 1 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 701 }
sesa514652 31:91a3c61d33e6 702 else if (Scan4[2] == Scan4[3])
sesa514652 29:1aef0ecf9840 703 {
sesa514652 29:1aef0ecf9840 704 printf("=");
sesa514652 29:1aef0ecf9840 705 Decide4[2]='=';
sesa514652 29:1aef0ecf9840 706 printf( "chosen2 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 707 }
sesa514652 29:1aef0ecf9840 708 else if (Scan4[2] < Scan4[3])
sesa514652 29:1aef0ecf9840 709 {
sesa514652 29:1aef0ecf9840 710 printf("-");
sesa514652 29:1aef0ecf9840 711 Decide4[2]='-';
sesa514652 29:1aef0ecf9840 712 printf( "chosen3 %c\n",Decide4[2]);
sesa514652 29:1aef0ecf9840 713 }
sesa514652 29:1aef0ecf9840 714 if (Scan4[3] > Scan4[4])
sesa514652 29:1aef0ecf9840 715 {
sesa514652 29:1aef0ecf9840 716 printf("+");
sesa514652 29:1aef0ecf9840 717 Decide4[3]= 'x';
sesa514652 29:1aef0ecf9840 718 printf( "chosen 1 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 719 }
sesa514652 31:91a3c61d33e6 720 else if (Scan4[3] == Scan4[4])
sesa514652 29:1aef0ecf9840 721 {
sesa514652 29:1aef0ecf9840 722 printf("=");
sesa514652 29:1aef0ecf9840 723 Decide4[3]='=';
sesa514652 29:1aef0ecf9840 724 printf( "chosen2 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 725 }
sesa514652 29:1aef0ecf9840 726 else if (Scan4[3] < Scan4[4])
sesa514652 29:1aef0ecf9840 727 {
sesa514652 29:1aef0ecf9840 728 printf("-");
sesa514652 29:1aef0ecf9840 729 Decide4[3]='-';
sesa514652 29:1aef0ecf9840 730 printf( "chosen3 %c\n",Decide4[3]);
sesa514652 29:1aef0ecf9840 731 }
sesa514652 29:1aef0ecf9840 732 if (Scan5[0] > Scan5[1])
sesa514652 29:1aef0ecf9840 733 {
sesa514652 29:1aef0ecf9840 734 printf("+");
sesa514652 29:1aef0ecf9840 735 Decide5[0]= 'x';
sesa514652 29:1aef0ecf9840 736 printf( "chosen 1 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 737 }
sesa514652 31:91a3c61d33e6 738 else if (Scan5[0] == Scan5[1])
sesa514652 29:1aef0ecf9840 739 {
sesa514652 29:1aef0ecf9840 740 printf("=");
sesa514652 29:1aef0ecf9840 741 Decide5[0]='=';
sesa514652 29:1aef0ecf9840 742 printf( "chosen2 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 743 }
sesa514652 29:1aef0ecf9840 744 else if (Scan5[0] < Scan5[1])
sesa514652 29:1aef0ecf9840 745 {
sesa514652 29:1aef0ecf9840 746 printf("-");
sesa514652 29:1aef0ecf9840 747 Decide5[0]='-';
sesa514652 29:1aef0ecf9840 748 printf( "chosen3 %c\n",Decide5[0]);
sesa514652 29:1aef0ecf9840 749 }
sesa514652 29:1aef0ecf9840 750 if (Scan5[1] > Scan5[2])
sesa514652 29:1aef0ecf9840 751 {
sesa514652 29:1aef0ecf9840 752 printf("+");
sesa514652 29:1aef0ecf9840 753 Decide5[1]= 'x';
sesa514652 29:1aef0ecf9840 754 printf( "chosen 1 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 755 }
sesa514652 31:91a3c61d33e6 756 else if (Scan5[1] == Scan5[2])
sesa514652 29:1aef0ecf9840 757 {
sesa514652 29:1aef0ecf9840 758 printf("=");
sesa514652 29:1aef0ecf9840 759 Decide5[1]='=';
sesa514652 29:1aef0ecf9840 760 printf( "chosen2 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 761 }
sesa514652 29:1aef0ecf9840 762 else if (Scan5[1] < Scan5[2])
sesa514652 29:1aef0ecf9840 763 {
sesa514652 29:1aef0ecf9840 764 printf("-");
sesa514652 29:1aef0ecf9840 765 Decide5[1]='-';
sesa514652 29:1aef0ecf9840 766 printf( "chosen3 %c\n",Decide5[1]);
sesa514652 29:1aef0ecf9840 767 }
sesa514652 29:1aef0ecf9840 768
sesa514652 29:1aef0ecf9840 769 if (Scan5[2] > Scan5[3])
sesa514652 29:1aef0ecf9840 770 {
sesa514652 29:1aef0ecf9840 771 printf("+");
sesa514652 29:1aef0ecf9840 772 Decide5[2]= 'x';
sesa514652 29:1aef0ecf9840 773 printf( "chosen 1 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 774 }
sesa514652 31:91a3c61d33e6 775 else if (Scan5[2] == Scan5[3])
sesa514652 29:1aef0ecf9840 776 {
sesa514652 29:1aef0ecf9840 777 printf("=");
sesa514652 29:1aef0ecf9840 778 Decide5[2]='=';
sesa514652 29:1aef0ecf9840 779 printf( "chosen2 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 780 }
sesa514652 29:1aef0ecf9840 781 else if (Scan5[2] < Scan5[3])
sesa514652 29:1aef0ecf9840 782 {
sesa514652 29:1aef0ecf9840 783 printf("-");
sesa514652 29:1aef0ecf9840 784 Decide5[2]='-';
sesa514652 29:1aef0ecf9840 785 printf( "chosen3 %c\n",Decide5[2]);
sesa514652 29:1aef0ecf9840 786 }
sesa514652 29:1aef0ecf9840 787 if (Scan5[3] > Scan5[4])
sesa514652 29:1aef0ecf9840 788 {
sesa514652 29:1aef0ecf9840 789 printf("+");
sesa514652 29:1aef0ecf9840 790 Decide5[3]= 'x';
sesa514652 29:1aef0ecf9840 791 printf( "chosen 1 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 792 }
sesa514652 31:91a3c61d33e6 793 else if (Scan5[3] == Scan5[4])
sesa514652 29:1aef0ecf9840 794 {
sesa514652 29:1aef0ecf9840 795 printf("=");
sesa514652 29:1aef0ecf9840 796 Decide5[3]='=';
sesa514652 29:1aef0ecf9840 797 printf( "chosen2 %c\n",Decide5[3]);
sesa514652 29:1aef0ecf9840 798 }
sesa514652 29:1aef0ecf9840 799 else if (Scan5[3] < Scan5[4])
sesa514652 29:1aef0ecf9840 800 {
sesa514652 29:1aef0ecf9840 801 printf("-");
sesa514652 29:1aef0ecf9840 802 Decide5[3]='-';
sesa514652 29:1aef0ecf9840 803 printf( "chosen3 %c\n",Decide5[3]);
sesa514652 34:dfe7f5799582 804 } */
sesa514652 27:d48bf4e8f1a0 805
sesa514652 21:2e37f80e8b5b 806 lcd.refresh();
sesa514652 21:2e37f80e8b5b 807 wait_ms(50);
sesa514652 21:2e37f80e8b5b 808
sesa514652 21:2e37f80e8b5b 809 break;
sesa514652 28:aab0aa846cf6 810
sesa514652 22:82b01fdfc61f 811 //////////////////////////////////////////////////////////////////////////////////////////////////
sesa514652 28:aab0aa846cf6 812 /**
sesa514652 28:aab0aa846cf6 813 *.. When Button A is pressed this section of code is ran to collect data points of the object.
sesa514652 28:aab0aa846cf6 814 *..Scanning takes marks the LCD with locationof points which data has been collected for.
sesa514652 28:aab0aa846cf6 815 */
sesa514652 21:2e37f80e8b5b 816 case 1:
sesa514652 28:aab0aa846cf6 817 g_ButtonAPress =1;
sesa514652 33:3717bc4e2fa8 818 /*
sesa514652 33:3717bc4e2fa8 819 *..Section used for power saving, if the user has not continued after 5 scans
sesa514652 33:3717bc4e2fa8 820 */
sesa514652 33:3717bc4e2fa8 821 if(LoopCountScan1==5){
sesa514652 33:3717bc4e2fa8 822 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 823 LoopCountScan1=0;
sesa514652 33:3717bc4e2fa8 824 break;}
sesa514652 33:3717bc4e2fa8 825 else;
sesa514652 31:91a3c61d33e6 826 inputScan1();
sesa514652 33:3717bc4e2fa8 827 break;
sesa514652 32:9c206f993cf5 828 /*
sesa514652 30:9d39318ef584 829 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 830 inputScan2();
sesa514652 31:91a3c61d33e6 831 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 832 inputScan3();
sesa514652 28:aab0aa846cf6 833
sesa514652 30:9d39318ef584 834 wait_ms(5); // required to stop Black screen issue}
sesa514652 31:91a3c61d33e6 835 inputScan4();
sesa514652 28:aab0aa846cf6 836
sesa514652 30:9d39318ef584 837 wait_ms(5);
sesa514652 31:91a3c61d33e6 838 inputScan5();
sesa514652 30:9d39318ef584 839
sesa514652 30:9d39318ef584 840
sesa514652 30:9d39318ef584 841
sesa514652 28:aab0aa846cf6 842 g_ButtonAPress=0;
sesa514652 32:9c206f993cf5 843 */
sesa514652 33:3717bc4e2fa8 844
sesa514652 22:82b01fdfc61f 845 ////////////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 846 case 2:
sesa514652 28:aab0aa846cf6 847 g_ButtonAPress= 2;
sesa514652 33:3717bc4e2fa8 848 if(LoopCountScan2==5){
sesa514652 33:3717bc4e2fa8 849 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 850 LoopCountScan2=0;
sesa514652 33:3717bc4e2fa8 851 break;}
sesa514652 33:3717bc4e2fa8 852 else;
sesa514652 32:9c206f993cf5 853 /*int secondScan[10];
sesa514652 22:82b01fdfc61f 854
sesa514652 22:82b01fdfc61f 855 secondScan[5] = sensor.distance();
sesa514652 22:82b01fdfc61f 856 printf("Distance : %d cm", secondScan[5]);
sesa514652 22:82b01fdfc61f 857 lcd.clear();
sesa514652 22:82b01fdfc61f 858 lcd.printString("2nd Scan up down",0,0);
sesa514652 32:9c206f993cf5 859 lcd.drawLine(0,10,80,10,2); */
sesa514652 32:9c206f993cf5 860 inputScan2();
sesa514652 20:4e1f2917a857 861 break;
sesa514652 22:82b01fdfc61f 862 ////////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 863 case 3:
sesa514652 28:aab0aa846cf6 864 g_ButtonAPress= 3;
sesa514652 33:3717bc4e2fa8 865 if(LoopCountScan3==5){
sesa514652 33:3717bc4e2fa8 866 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 867 LoopCountScan3=0;
sesa514652 33:3717bc4e2fa8 868 break;}
sesa514652 33:3717bc4e2fa8 869 else;
sesa514652 32:9c206f993cf5 870 /* lcd.clear();
sesa514652 20:4e1f2917a857 871 lcd.printString("Menu 3",0,0);
sesa514652 31:91a3c61d33e6 872 int us = sensor.distance();
sesa514652 21:2e37f80e8b5b 873 printf("Distance : %d cm",us);
sesa514652 20:4e1f2917a857 874 lcd.refresh();
sesa514652 32:9c206f993cf5 875 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 876 inputScan3();
sesa514652 20:4e1f2917a857 877 break;
sesa514652 32:9c206f993cf5 878
sesa514652 32:9c206f993cf5 879 /////////////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 880
sesa514652 32:9c206f993cf5 881 case 4:
sesa514652 32:9c206f993cf5 882 g_ButtonAPress= 4;
sesa514652 33:3717bc4e2fa8 883 if(LoopCountScan4==5){
sesa514652 33:3717bc4e2fa8 884 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 885 LoopCountScan4=0;
sesa514652 33:3717bc4e2fa8 886 break;}
sesa514652 33:3717bc4e2fa8 887 else;
sesa514652 32:9c206f993cf5 888 /* lcd.clear();
sesa514652 32:9c206f993cf5 889 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 890 int us = sensor.distance();
sesa514652 32:9c206f993cf5 891 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 892 lcd.refresh();
sesa514652 32:9c206f993cf5 893 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 894 inputScan4();
sesa514652 32:9c206f993cf5 895 break;
sesa514652 32:9c206f993cf5 896 ///////////////////////////////////////////////////////////////////
sesa514652 32:9c206f993cf5 897 case 5:
sesa514652 32:9c206f993cf5 898 g_ButtonAPress= 5;
sesa514652 33:3717bc4e2fa8 899 if(LoopCountScan5==5){
sesa514652 33:3717bc4e2fa8 900 g_ButtonAPress=0;
sesa514652 33:3717bc4e2fa8 901 LoopCountScan5=0;
sesa514652 33:3717bc4e2fa8 902 break;}
sesa514652 33:3717bc4e2fa8 903 else;
sesa514652 32:9c206f993cf5 904 /* lcd.clear();
sesa514652 32:9c206f993cf5 905 lcd.printString("Menu 3",0,0);
sesa514652 32:9c206f993cf5 906 int us = sensor.distance();
sesa514652 32:9c206f993cf5 907 printf("Distance : %d cm",us);
sesa514652 32:9c206f993cf5 908 lcd.refresh();
sesa514652 32:9c206f993cf5 909 wait_ms(50); //required to stop Black screen issue*/
sesa514652 32:9c206f993cf5 910 inputScan5();
sesa514652 32:9c206f993cf5 911 break;
sesa514652 32:9c206f993cf5 912 /////////////////////////////////////////////////////////////////
sesa514652 20:4e1f2917a857 913 }
sesa514652 23:f72175fb49ed 914
sesa514652 20:4e1f2917a857 915 /*
sesa514652 11:1dec05b7d1c1 916 int button_counter;
sesa514652 10:42e70b596099 917 if (g_buttonA_flag){
sesa514652 11:1dec05b7d1c1 918 button_counter = button_counter +1;
sesa514652 11:1dec05b7d1c1 919 //case (test)
sesa514652 10:42e70b596099 920 g_buttonA_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 921
sesa514652 10:42e70b596099 922 // send message over serial port - can observe in CoolTerm etc.
sesa514652 11:1dec05b7d1c1 923 printf("Button A pressed %f\n", button_counter);
sesa514652 10:42e70b596099 924 }
sesa514652 10:42e70b596099 925 if (g_buttonB_flag){
sesa514652 10:42e70b596099 926 g_buttonB_flag = 0; // if it has, clear the flag
sesa514652 8:770d168713cc 927
sesa514652 10:42e70b596099 928 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 929 printf("Button B pressed\n");
sesa514652 10:42e70b596099 930 }
sesa514652 10:42e70b596099 931 if (g_buttonX_flag){
sesa514652 10:42e70b596099 932 g_buttonX_flag = 0; // if it has, clear the flag
sesa514652 12:ceea378d5691 933 // swap direction when button has been pressed
sesa514652 12:ceea378d5691 934 // (could just use ! but want this to be explicit to aid understanding)
sesa514652 12:ceea378d5691 935 if (direction == UP) {
sesa514652 12:ceea378d5691 936 direction = DOWN;
sesa514652 12:ceea378d5691 937 }
sesa514652 12:ceea378d5691 938 else {
sesa514652 12:ceea378d5691 939 direction = UP;
sesa514652 12:ceea378d5691 940 }
sesa514652 10:42e70b596099 941
sesa514652 10:42e70b596099 942 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 943 printf("Button X pressed\n");
sesa514652 10:42e70b596099 944 lcd.clear();
sesa514652 10:42e70b596099 945 lcd.printString("Button Pressed!",0,0);
sesa514652 10:42e70b596099 946 lcd.refresh();
sesa514652 11:1dec05b7d1c1 947 wait(1);
sesa514652 10:42e70b596099 948 }
sesa514652 10:42e70b596099 949 if (g_buttonY_flag){
sesa514652 10:42e70b596099 950 g_buttonY_flag = 0; // if it has, clear the flag
sesa514652 10:42e70b596099 951
sesa514652 10:42e70b596099 952 // send message over serial port - can observe in CoolTerm etc.
sesa514652 10:42e70b596099 953 printf("Button Y pressed\n");
sesa514652 10:42e70b596099 954 }
sesa514652 5:9b2c976ca318 955 Buzzer.play(200,120);
sesa514652 5:9b2c976ca318 956 wait_ms(5);
sesa514652 5:9b2c976ca318 957 Buzzer.play(200,120);
sesa514652 1:757728321abd 958 long distanced = sensor.distance();
sesa514652 1:757728321abd 959 if (distanced >= 400 || distanced <= 2)
sesa514652 5:9b2c976ca318 960 {
sesa514652 1:757728321abd 961 printf("Out of range");
sesa514652 5:9b2c976ca318 962 //Calling dummy function 05/01/22
sesa514652 4:167ce930c9d5 963 int answer = cube(2);
sesa514652 5:9b2c976ca318 964 printf("%f\n",answer);
sesa514652 1:757728321abd 965 wait(1.0);
sesa514652 5:9b2c976ca318 966 }
sesa514652 5:9b2c976ca318 967 else
sesa514652 5:9b2c976ca318 968 {
sesa514652 5:9b2c976ca318 969 printf("Distance : %d cm",distanced);
sesa514652 5:9b2c976ca318 970 wait(1.0); // 1 sec
sesa514652 1:757728321abd 971 }
sesa514652 5:9b2c976ca318 972 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK);
sesa514652 5:9b2c976ca318 973 //lcd.refresh must be used to update the lcd Display
sesa514652 5:9b2c976ca318 974 lcd.refresh();
sesa514652 5:9b2c976ca318 975 wait(5.0);
sesa514652 5:9b2c976ca318 976 //these are default settings so not strictly needed
sesa514652 0:1f799c7cce2b 977 lcd.normalMode(); // normal colour mode
sesa514652 5:9b2c976ca318 978 lcd.setBrightness(0.5); // put LED backlight on 50%
sesa514652 0:1f799c7cce2b 979 lcd.clear();
sesa514652 0:1f799c7cce2b 980 lcd.printString("Hello, World!",0,0);
sesa514652 0:1f799c7cce2b 981 Vector2D coord = joystick.get_coord();
sesa514652 0:1f799c7cce2b 982 lcd.refresh();
sesa514652 0:1f799c7cce2b 983 printf("Coord = %f,%f\n",coord.x,coord.y);
sesa514652 0:1f799c7cce2b 984 char buffer[14];
sesa514652 0:1f799c7cce2b 985 Vector2D mapped_coord = joystick.get_mapped_coord();
sesa514652 0:1f799c7cce2b 986 printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y);
sesa514652 0:1f799c7cce2b 987
sesa514652 5:9b2c976ca318 988 int length = sprintf(buffer,"T = %2f",coord.x);
sesa514652 5:9b2c976ca318 989 //it is important the format specifier ensures the length will fit in the buffer
sesa514652 0:1f799c7cce2b 990 if (length <= 14) // if string will fit on display (assuming printing at x=0)
sesa514652 5:9b2c976ca318 991 lcd.printString(buffer,0,1); // display on screen
sesa514652 0:1f799c7cce2b 992 lcd.refresh();
sesa514652 5:9b2c976ca318 993 lcd.clear();
sesa514652 5:9b2c976ca318 994 //times by 50 to try get the point moving across screen
sesa514652 0:1f799c7cce2b 995 float x50 = mapped_coord.x*5;
sesa514652 0:1f799c7cce2b 996 float y50 = mapped_coord.y*8;
sesa514652 5:9b2c976ca318 997 //to see what the values are
sesa514652 5:9b2c976ca318 998 printf(" *50 = %f,%f\n",x50,y50);
sesa514652 5:9b2c976ca318 999 //example of how to draw circles
sesa514652 1:757728321abd 1000 lcd.printChar('o',WIDTH/2,HEIGHT/2);
sesa514652 5:9b2c976ca318 1001 lcd.refresh();
sesa514652 0:1f799c7cce2b 1002 float mag = joystick.get_mag();
sesa514652 0:1f799c7cce2b 1003 float angle = joystick.get_angle();
sesa514652 0:1f799c7cce2b 1004 printf("Mag = %f Angle = %f\n",mag,angle);
sesa514652 0:1f799c7cce2b 1005 Direction d = joystick.get_direction();
sesa514652 0:1f799c7cce2b 1006 printf("Direction = %i\n",d);
sesa514652 0:1f799c7cce2b 1007 if (joystick.button_pressed() ) {
sesa514652 0:1f799c7cce2b 1008 printf("Button Pressed\n");
sesa514652 9:cdd7d9a123f9 1009 wait(5);
sesa514652 0:1f799c7cce2b 1010 }
sesa514652 8:770d168713cc 1011
sesa514652 8:770d168713cc 1012 }
sesa514652 16:2646c1c4e62e 1013 }
sesa514652 20:4e1f2917a857 1014 */
sesa514652 23:f72175fb49ed 1015 }
sesa514652 32:9c206f993cf5 1016 }
sesa514652 18:bb36d96142dd 1017 int buttonCountA(){
sesa514652 28:aab0aa846cf6 1018 g_ButtonAPress++;
sesa514652 32:9c206f993cf5 1019 if (g_ButtonAPress>5){
sesa514652 28:aab0aa846cf6 1020 g_ButtonAPress= 0;
sesa514652 18:bb36d96142dd 1021 }
sesa514652 28:aab0aa846cf6 1022 return g_ButtonAPress;
sesa514652 18:bb36d96142dd 1023 }
sesa514652 18:bb36d96142dd 1024 int buttonCountB(){
sesa514652 28:aab0aa846cf6 1025 g_ButtonBPress++;
sesa514652 28:aab0aa846cf6 1026 if (g_ButtonBPress>3){
sesa514652 28:aab0aa846cf6 1027 g_ButtonBPress= 0;
sesa514652 18:bb36d96142dd 1028 }
sesa514652 28:aab0aa846cf6 1029 return g_ButtonBPress;
sesa514652 18:bb36d96142dd 1030 }
sesa514652 33:3717bc4e2fa8 1031 int NoContinueExitScan1(){
sesa514652 33:3717bc4e2fa8 1032 LoopCountScan1++;
sesa514652 33:3717bc4e2fa8 1033 if (LoopCountScan1>5){
sesa514652 33:3717bc4e2fa8 1034 LoopCountScan1= 0;
sesa514652 33:3717bc4e2fa8 1035 }
sesa514652 33:3717bc4e2fa8 1036 return LoopCountScan1;
sesa514652 33:3717bc4e2fa8 1037 }
sesa514652 33:3717bc4e2fa8 1038 int NoContinueExitScan2(){
sesa514652 33:3717bc4e2fa8 1039 LoopCountScan2++;
sesa514652 33:3717bc4e2fa8 1040 if (LoopCountScan2>5){
sesa514652 33:3717bc4e2fa8 1041 LoopCountScan2= 0;
sesa514652 33:3717bc4e2fa8 1042 }
sesa514652 33:3717bc4e2fa8 1043 return LoopCountScan2;
sesa514652 33:3717bc4e2fa8 1044 }
sesa514652 33:3717bc4e2fa8 1045 int NoContinueExitScan3(){
sesa514652 33:3717bc4e2fa8 1046 LoopCountScan3++;
sesa514652 33:3717bc4e2fa8 1047 if (LoopCountScan3>5){
sesa514652 33:3717bc4e2fa8 1048 LoopCountScan3= 0;
sesa514652 33:3717bc4e2fa8 1049 }
sesa514652 33:3717bc4e2fa8 1050 return LoopCountScan3;
sesa514652 33:3717bc4e2fa8 1051 }
sesa514652 33:3717bc4e2fa8 1052 int NoContinueExitScan4(){
sesa514652 33:3717bc4e2fa8 1053 LoopCountScan4++;
sesa514652 33:3717bc4e2fa8 1054 if (LoopCountScan4>5){
sesa514652 33:3717bc4e2fa8 1055 LoopCountScan4= 0;
sesa514652 33:3717bc4e2fa8 1056 }
sesa514652 33:3717bc4e2fa8 1057 return LoopCountScan4;
sesa514652 33:3717bc4e2fa8 1058 }
sesa514652 33:3717bc4e2fa8 1059 int NoContinueExitScan5(){
sesa514652 33:3717bc4e2fa8 1060 LoopCountScan5++;
sesa514652 33:3717bc4e2fa8 1061 if (LoopCountScan5>5){
sesa514652 33:3717bc4e2fa8 1062 LoopCountScan5= 0;
sesa514652 33:3717bc4e2fa8 1063 }
sesa514652 33:3717bc4e2fa8 1064 return LoopCountScan5;
sesa514652 33:3717bc4e2fa8 1065 }
sesa514652 33:3717bc4e2fa8 1066
sesa514652 15:234321e80678 1067
sesa514652 12:ceea378d5691 1068 //Button A event-triggered interrupt
sesa514652 10:42e70b596099 1069 void buttonA_isr()
sesa514652 10:42e70b596099 1070 {
sesa514652 12:ceea378d5691 1071
sesa514652 18:bb36d96142dd 1072 long distanced = sensor.distance();
sesa514652 18:bb36d96142dd 1073 buttonCountA();
sesa514652 18:bb36d96142dd 1074
sesa514652 16:2646c1c4e62e 1075
sesa514652 12:ceea378d5691 1076
sesa514652 12:ceea378d5691 1077 g_buttonA_flag = 1; // set flag in ISR
sesa514652 12:ceea378d5691 1078
sesa514652 28:aab0aa846cf6 1079 printf("press count = %i\n",g_ButtonAPress);
sesa514652 12:ceea378d5691 1080
sesa514652 12:ceea378d5691 1081 // lcd.clear();
sesa514652 15:234321e80678 1082 //lcd.printString("Button A Pressed",0,0);
sesa514652 12:ceea378d5691 1083
sesa514652 15:234321e80678 1084 // lcd.refresh(); // set flag in ISR
sesa514652 12:ceea378d5691 1085 }
sesa514652 12:ceea378d5691 1086
sesa514652 11:1dec05b7d1c1 1087
sesa514652 10:42e70b596099 1088 //Button B event-triggered interrupt
sesa514652 10:42e70b596099 1089 void buttonB_isr()
sesa514652 10:42e70b596099 1090 {
sesa514652 18:bb36d96142dd 1091 buttonCountB();
sesa514652 10:42e70b596099 1092 g_buttonB_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1093 lcd.clear();
sesa514652 11:1dec05b7d1c1 1094 lcd.printString("Button B Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1095 lcd.refresh(); // set flag in ISR
sesa514652 28:aab0aa846cf6 1096 printf("press count = %i\n",g_ButtonBPress);
sesa514652 10:42e70b596099 1097 }
sesa514652 10:42e70b596099 1098 //Button X event-triggered interrupt
sesa514652 10:42e70b596099 1099 void buttonX_isr()
sesa514652 10:42e70b596099 1100 {
sesa514652 10:42e70b596099 1101 g_buttonX_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1102 lcd.clear();
sesa514652 11:1dec05b7d1c1 1103 lcd.printString("Button X Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1104 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1105 }
sesa514652 10:42e70b596099 1106 //Button Y event-triggered interrupt
sesa514652 10:42e70b596099 1107 void buttonY_isr()
sesa514652 10:42e70b596099 1108 {
sesa514652 10:42e70b596099 1109 g_buttonY_flag = 1; // set flag in ISR
sesa514652 37:323ec7d23454 1110 lcd.clear();
sesa514652 11:1dec05b7d1c1 1111 lcd.printString("Button Y Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1112 lcd.refresh(); // set flag in ISR
sesa514652 10:42e70b596099 1113 }
sesa514652 11:1dec05b7d1c1 1114 //Button Start event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1115 void buttonStart_isr()
sesa514652 11:1dec05b7d1c1 1116 {
sesa514652 11:1dec05b7d1c1 1117 g_buttonStart_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1118 lcd.clear();
sesa514652 37:323ec7d23454 1119 /////////////////////////////////////////////////
sesa514652 37:323ec7d23454 1120 int arr1[5] ;
sesa514652 37:323ec7d23454 1121 /*
sesa514652 37:323ec7d23454 1122 * For loop required to assign array values to that of the scan value
sesa514652 37:323ec7d23454 1123 */
sesa514652 37:323ec7d23454 1124 for(int i=0; i<5; i++){
sesa514652 37:323ec7d23454 1125 arr1[i] =Scan1[i];}
sesa514652 37:323ec7d23454 1126 int arr2[] = { 90, 90, 90, 90, 90 };
sesa514652 37:323ec7d23454 1127 int n = sizeof(arr1) / sizeof(int);
sesa514652 37:323ec7d23454 1128 int m = sizeof(arr2) / sizeof(int);
sesa514652 37:323ec7d23454 1129
sesa514652 37:323ec7d23454 1130
sesa514652 37:323ec7d23454 1131 if(MatchMade(arr1, arr2, n, m))
sesa514652 37:323ec7d23454 1132 printf("You are a wall");
sesa514652 37:323ec7d23454 1133 else
sesa514652 37:323ec7d23454 1134 printf("Not THis Object"); //////////////////////////////////
sesa514652 37:323ec7d23454 1135
sesa514652 37:323ec7d23454 1136
sesa514652 11:1dec05b7d1c1 1137 lcd.printString("Button Start Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1138 lcd.refresh(); // set flag in ISR
sesa514652 29:1aef0ecf9840 1139
sesa514652 11:1dec05b7d1c1 1140 }
sesa514652 11:1dec05b7d1c1 1141 //Button Back event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1142 void buttonBack_isr()
sesa514652 11:1dec05b7d1c1 1143 {
sesa514652 11:1dec05b7d1c1 1144 g_buttonBack_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1145 lcd.clear();
sesa514652 11:1dec05b7d1c1 1146 lcd.printString("Button Back Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1147 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1148 }
sesa514652 11:1dec05b7d1c1 1149 //Button Left event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1150 void buttonLeft_isr()
sesa514652 11:1dec05b7d1c1 1151 {
sesa514652 11:1dec05b7d1c1 1152 g_buttonLeft_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1153 lcd.clear();
sesa514652 11:1dec05b7d1c1 1154 lcd.printString("Button Left Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1155 lcd.refresh(); // set flag in ISR
sesa514652 11:1dec05b7d1c1 1156 }
sesa514652 11:1dec05b7d1c1 1157 //Button Right event-triggered interrupt
sesa514652 11:1dec05b7d1c1 1158 void buttonRight_isr()
sesa514652 11:1dec05b7d1c1 1159 {
sesa514652 11:1dec05b7d1c1 1160 g_buttonRight_flag = 1; // set flag in ISR
sesa514652 11:1dec05b7d1c1 1161 lcd.clear();
sesa514652 31:91a3c61d33e6 1162 lcd.printString("Button Right Pressed",0,0);
sesa514652 11:1dec05b7d1c1 1163 lcd.refresh(); // set flag in ISR
sesa514652 31:91a3c61d33e6 1164 }
sesa514652 31:91a3c61d33e6 1165 void inputScan1()
sesa514652 31:91a3c61d33e6 1166 {
sesa514652 31:91a3c61d33e6 1167 lcd.clear();
sesa514652 31:91a3c61d33e6 1168 lcd.printString("First Scan",0,0);
sesa514652 31:91a3c61d33e6 1169 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1170 NoContinueExitScan1();
sesa514652 31:91a3c61d33e6 1171
sesa514652 31:91a3c61d33e6 1172 Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1173 wait_ms(5);
sesa514652 31:91a3c61d33e6 1174 Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1175 wait_ms(5);
sesa514652 31:91a3c61d33e6 1176 Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1177 wait_ms(5);
sesa514652 31:91a3c61d33e6 1178 Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();;
sesa514652 31:91a3c61d33e6 1179 wait_ms(5);
sesa514652 31:91a3c61d33e6 1180 Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();;
sesa514652 36:3e975536e8d7 1181 wait_ms(5);
sesa514652 36:3e975536e8d7 1182 lcd.printString("Scan 1 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1183 }
sesa514652 31:91a3c61d33e6 1184
sesa514652 31:91a3c61d33e6 1185 void inputScan2()
sesa514652 31:91a3c61d33e6 1186 {
sesa514652 31:91a3c61d33e6 1187 lcd.clear();
sesa514652 31:91a3c61d33e6 1188 lcd.printString("Second Scan",0,0);
sesa514652 31:91a3c61d33e6 1189 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1190 NoContinueExitScan2();
sesa514652 36:3e975536e8d7 1191 lcd.printString("X",0,1),lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1192 Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan2[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1193 wait_ms(5);
sesa514652 31:91a3c61d33e6 1194 Buzzer.play(200,120); lcd.printString("X",15,2);lcd.refresh(); Scan2[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1195 wait_ms(5);
sesa514652 31:91a3c61d33e6 1196 Buzzer.play(200,120); lcd.printString("X",15,3);lcd.refresh(); Scan2[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1197 wait_ms(5);
sesa514652 31:91a3c61d33e6 1198 Buzzer.play(200,120); lcd.printString("X",15,4);lcd.refresh(); Scan2[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1199 wait_ms(5);
sesa514652 36:3e975536e8d7 1200 Buzzer.play(200,120); lcd.printString("X",15,5);lcd.refresh(); Scan2[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1201 lcd.printString("Scan 2 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1202
sesa514652 31:91a3c61d33e6 1203 }
sesa514652 31:91a3c61d33e6 1204 void inputScan3()
sesa514652 31:91a3c61d33e6 1205 {
sesa514652 31:91a3c61d33e6 1206 lcd.clear();
sesa514652 31:91a3c61d33e6 1207 lcd.printString("Third Scan",0,0);
sesa514652 31:91a3c61d33e6 1208 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1209 NoContinueExitScan3();
sesa514652 36:3e975536e8d7 1210 lcd.printString("X",0,1),lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1211 lcd.printString("X",15,1),lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1212 Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan3[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1213 wait_ms(5);
sesa514652 31:91a3c61d33e6 1214 Buzzer.play(200,120); lcd.printString("X",30,2);lcd.refresh(); Scan3[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1215 wait_ms(5);
sesa514652 31:91a3c61d33e6 1216 Buzzer.play(200,120); lcd.printString("X",30,3);lcd.refresh(); Scan3[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1217 wait_ms(5);
sesa514652 31:91a3c61d33e6 1218 Buzzer.play(200,120); lcd.printString("X",30,4);lcd.refresh(); Scan3[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1219 wait_ms(5);
sesa514652 36:3e975536e8d7 1220 Buzzer.play(200,120); lcd.printString("X",30,5);lcd.refresh(); Scan3[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1221 lcd.printString("Scan 3 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1222 }
sesa514652 31:91a3c61d33e6 1223 void inputScan4()
sesa514652 31:91a3c61d33e6 1224 {
sesa514652 33:3717bc4e2fa8 1225 lcd.clear();
sesa514652 33:3717bc4e2fa8 1226 lcd.printString("Fourth Scan",0,0);
sesa514652 33:3717bc4e2fa8 1227 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1228 NoContinueExitScan4();
sesa514652 36:3e975536e8d7 1229 lcd.printString("X",0,1),lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1230 lcd.printString("X",15,1),lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1231 lcd.printString("X",30,1),lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1232 Buzzer.play(300,120); lcd.printString("X",45,1); lcd.refresh(); Scan4[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1233 wait_ms(5);
sesa514652 31:91a3c61d33e6 1234 Buzzer.play(200,120); lcd.printString("X",45,2);lcd.refresh(); Scan4[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1235 wait_ms(5);
sesa514652 31:91a3c61d33e6 1236 Buzzer.play(200,120); lcd.printString("X",45,3);lcd.refresh(); Scan4[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1237 wait_ms(5);
sesa514652 31:91a3c61d33e6 1238 Buzzer.play(200,120); lcd.printString("X",45,4);lcd.refresh(); Scan4[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1239 wait_ms(5);
sesa514652 36:3e975536e8d7 1240 Buzzer.play(200,120); lcd.printString("X",45,5);lcd.refresh(); Scan4[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1241 lcd.printString("Scan 4 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1242 }
sesa514652 31:91a3c61d33e6 1243 void inputScan5()
sesa514652 31:91a3c61d33e6 1244 {
sesa514652 31:91a3c61d33e6 1245 lcd.clear();
sesa514652 31:91a3c61d33e6 1246 lcd.printString("Fifth Scan",0,0);
sesa514652 31:91a3c61d33e6 1247 lcd.refresh();
sesa514652 33:3717bc4e2fa8 1248 NoContinueExitScan5();
sesa514652 36:3e975536e8d7 1249 lcd.printString("X",0,1),lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1250 lcd.printString("X",15,1),lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1251 lcd.printString("X",30,1),lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1252 lcd.printString("X",45,1),lcd.printString("X",45,2),lcd.printString("X",45,3),lcd.printString("X",45,4),lcd.printString("X",45,5); lcd.refresh();
sesa514652 36:3e975536e8d7 1253 Buzzer.play(300,120); lcd.printString("X",60,1); lcd.refresh(); Scan5[0] = sensor.distance();
sesa514652 36:3e975536e8d7 1254 wait_ms(5);
sesa514652 31:91a3c61d33e6 1255 Buzzer.play(200,120); lcd.printString("X",60,2);lcd.refresh(); Scan5[1] = sensor.distance();
sesa514652 31:91a3c61d33e6 1256 wait_ms(5);
sesa514652 31:91a3c61d33e6 1257 Buzzer.play(200,120); lcd.printString("X",60,3);lcd.refresh(); Scan5[2] = sensor.distance();
sesa514652 31:91a3c61d33e6 1258 wait_ms(5);
sesa514652 31:91a3c61d33e6 1259 Buzzer.play(200,120); lcd.printString("X",60,4);lcd.refresh(); Scan5[3] = sensor.distance();
sesa514652 31:91a3c61d33e6 1260 wait_ms(5);
sesa514652 36:3e975536e8d7 1261 Buzzer.play(200,120); lcd.printString("X",60,5);lcd.refresh(); Scan5[4] = sensor.distance();
sesa514652 31:91a3c61d33e6 1262 lcd.printString("Scan 5 Done",0,0); lcd.refresh();
sesa514652 31:91a3c61d33e6 1263 }