Coursework

Committer:
sesa514652
Date:
Fri Feb 04 13:30:01 2022 +0000
Revision:
41:16cd48d6e834
Parent:
40:0d55297c8b34
Child:
42:960c132136d9
More Voids;

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