Coursework

Committer:
sesa514652
Date:
Fri Feb 04 14:47:08 2022 +0000
Revision:
42:960c132136d9
Parent:
41:16cd48d6e834
Child:
43:c58a59e081eb
BEFORE WAND

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