Coursework

Committer:
sesa514652
Date:
Fri Feb 04 15:23:35 2022 +0000
Revision:
44:5d8fab3e055f
Parent:
43:c58a59e081eb
Child:
45:f1db729741f7
Loop counts to 100 for ease of demo

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