Coursework

Committer:
sesa514652
Date:
Fri Feb 04 16:44:14 2022 +0000
Revision:
45:f1db729741f7
Parent:
44:5d8fab3e055f
Submission

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