Final revision to radar/distance measuring tool. Radar feature not implemented within time frame due to issues with hardware and mbed.org servers

Dependencies:   N5110 PowerControl SRF02 mbed

Files at this revision

API Documentation at this revision

Comitter:
el13k3s
Date:
Mon May 11 17:03:00 2015 +0000
Parent:
0:ca83aafb7dcb
Commit message:
Final code for radar/distance measuring tool.; Radar feature - unable to implement within time frame due to issues with hardware and mbed.org server

Changed in this revision

N5110.lib Show annotated file Show diff for this revision Revisions of this file
SRF02.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/N5110.lib	Mon May 11 16:35:26 2015 +0000
+++ b/N5110.lib	Mon May 11 17:03:00 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/eencae/code/N5110/#505f281a04fa
+http://developer.mbed.org/users/el13k3s/code/N5110/#505f281a04fa
--- a/SRF02.lib	Mon May 11 16:35:26 2015 +0000
+++ b/SRF02.lib	Mon May 11 17:03:00 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/eencae/code/SRF02/#98253d9cbccd
+http://developer.mbed.org/users/el13k3s/code/SRF02/#98253d9cbccd
--- a/main.cpp	Mon May 11 16:35:26 2015 +0000
+++ b/main.cpp	Mon May 11 17:03:00 2015 +0000
@@ -169,11 +169,12 @@
        unitSW.mode(PullUp);
        unitSW.rise(&units);
        
-       /// switch to radar display - not
+       /*
+       /// switch to radar display
        radarDist.rise(&radar);
-       
        /// switch to distance reader in cm
        radarDist.fall(&centimetre);
+       */
        
        /// Device welcome messages - print strings of characters at defined coordinates
        lcd.printString("Radar/Distance",0,1);
@@ -230,10 +231,13 @@
 
 
 /// function to indicate object proximity on LED and buzzer in CM
+/// Buzzer counts down to sensor update
+/// LED and buzzer indicate when proximity is < 50 cm
 void proximityCm() {
     
     int distance = sensor.getDistanceCm();
     
+    /// beep at max volume (dutycycle = 50%) for 3 sec
     if (distance < 50) {
         led = 1;
         buzzer = 0.5;
@@ -261,7 +265,7 @@
         wait(0.25);
         lcd.refresh();
         }
-    
+    /// quieter buzzer countdown to next update
     else {
         buzzer = 1;
         wait(0.5);
@@ -283,10 +287,13 @@
 
 
 /// function to indicate object proximity on LED and buzzer in INCHES
+/// Buzzer counts down to sensor update
+/// LED and buzzer indicate when proximity is < 20 inches (~ 50 cm)
 void proximityIn() {
     
     int distance = sensor.getDistanceInch();
     
+    /// beep at max volume (dutycycle = 50%) for 3 sec
     if (distance < 20) {
         led = 1;
         buzzer = 0.5;
@@ -314,6 +321,7 @@
         wait(0.25);
         lcd.refresh();
         }
+    /// quieter buzzer countdown to next update
     else {
         buzzer = 1;
         wait(0.5);
@@ -327,7 +335,7 @@
         wait(0.5);
         buzzer = 1;
         wait(0.5);
-        lcd.refresh();
+        /// clear screen and buffer
         lcd.clear();
     }
 
@@ -339,12 +347,14 @@
 void initMeasureIn() {
     
     if (unit == 0) {
-        leds = 8; // switch LED4 on to indicate unit
+        /// switch LED4 on to indicate unit
+        leds = 8;
         centimetre();
     }
     
     if (unit == 1) {
-        leds = 2; // switch LED2 on to indicate unit
+        /// switch LED2 on to indicate unit
+        leds = 2;
         inches();
     }
     
@@ -356,12 +366,10 @@
 void initDisplay() {
     
     if (pixel == 0) {
-        leds = 4; // switch LED3 on to indicate display mode
         normal();
     }
     
     if (pixel == 1) {
-        leds = 1; // switch LED1 on to indicate display mode
         invert();
     }
     
@@ -394,6 +402,7 @@
 void centimetre() {
         
         int distance = sensor.getDistanceCm();
+        /// Print the formatted output from the sensor
         int length = sprintf(buffer,"D = %d cm",distance);
         
         /// Only allow data with length < or = 24 to be displayed
@@ -411,7 +420,7 @@
 void inches() {
     
     int distance = sensor.getDistanceInch();
-    
+    /// Print the formatted output from the sensor
     int length = sprintf(buffer,"D = %d inches",distance);
             
     if (length<= 14)
@@ -424,161 +433,160 @@
 
 
 
-/// function for radar display - not called because it returns an error on the mbed
+/// function for radar display - not called because distance reading feature takes precedence in while loop
+/// Attempt at using a switch statement unsuccessful
 void radar() {
     
     lcd.clear();
     
     int distance = sensor.getDistanceCm();
     
-    // loop through
+    /// Assume max detectable distance is 240 cm.
+    /// Dividing by 48 pixels across screen gives 5cm for every pixel.
+    /// Set each pixel along the centre of the screen (x = 42) to 1
+    /// for distance increases by 5 cm.
+    /// Set any distance above 230cm to final pixel (41,48).
     if (distance < 5) {
-        lcd.setPixel(41,1);
+        lcd.setPixel(42,1);
     }
     else if (distance < 10) {
-        lcd.setPixel(41,2);
+        lcd.setPixel(42,2);
     }
     else if (distance < 15) {
-        lcd.setPixel(41,3);
+        lcd.setPixel(42,3);
     }
     else if (distance < 20) {
-        lcd.setPixel(41,4);
+        lcd.setPixel(42,4);
     }
     else if (distance < 25) {
-        lcd.setPixel(41,5);
+        lcd.setPixel(42,5);
     }
     else if (distance < 30) {
-        lcd.setPixel(41,6);
+        lcd.setPixel(42,6);
     }
     else if (distance < 35) {
-        lcd.setPixel(41,7);
+        lcd.setPixel(42,7);
     }
     else if (distance < 40) {
-        lcd.setPixel(41,8);
+        lcd.setPixel(42,8);
     }
     else if (distance < 45) {
-        lcd.setPixel(41,9);
+        lcd.setPixel(42,9);
     }
     else if (distance < 50) {
-        lcd.setPixel(41,10);
+        lcd.setPixel(42,10);
     }
     else if (distance < 55) {
-        lcd.setPixel(41,11);
+        lcd.setPixel(42,11);
     }
     else if (distance < 60) {
-        lcd.setPixel(41,12);
+        lcd.setPixel(42,12);
     }
     else if (distance < 65) {
-        lcd.setPixel(41,13);
+        lcd.setPixel(42,13);
     }
     else if (distance < 70) {
-        lcd.setPixel(41,14);
+        lcd.setPixel(42,14);
     }
     else if (distance < 75) {
-        lcd.setPixel(41,15);
+        lcd.setPixel(42,15);
     }
     else if (distance < 80) {
-        lcd.setPixel(41,16);
+        lcd.setPixel(42,16);
     }
     else if (distance < 85) {
-        lcd.setPixel(41,17);
+        lcd.setPixel(42,17);
     }
     else if (distance < 90) {
-        lcd.setPixel(41,18);
+        lcd.setPixel(42,18);
     }
     else if (distance < 95) {
-        lcd.setPixel(41,19);
+        lcd.setPixel(42,19);
     }
     else if (distance < 100) {
-        lcd.setPixel(41,20);
+        lcd.setPixel(42,20);
     }
     else if (distance < 105) {
-        lcd.setPixel(41,21);
+        lcd.setPixel(42,21);
     }
     else if (distance < 110) {
-        lcd.setPixel(41,22);
+        lcd.setPixel(42,22);
     }
     else if (distance < 115) {
-        lcd.setPixel(41,23);
+        lcd.setPixel(42,23);
     }
     else if (distance < 120) {
-        lcd.setPixel(41,24);
+        lcd.setPixel(42,24);
     }
     else if (distance < 125) {
-        lcd.setPixel(41,25);
+        lcd.setPixel(42,25);
     }
     else if (distance < 130) {
-        lcd.setPixel(41,26);
+        lcd.setPixel(42,26);
     }
     else if (distance < 135) {
-        lcd.setPixel(41,27);
+        lcd.setPixel(42,27);
     }
     else if (distance < 140) {
-        lcd.setPixel(41,28);
+        lcd.setPixel(42,28);
     }
     else if (distance < 145) {
-        lcd.setPixel(41,29);
+        lcd.setPixel(42,29);
     }
     else if (distance < 150) {
-        lcd.setPixel(41,30);
+        lcd.setPixel(42,30);
     }
     else if (distance < 155) {
-        lcd.setPixel(41,31);
+        lcd.setPixel(42,31);
     }
     else if (distance < 160) {
-        lcd.setPixel(41,32);
+        lcd.setPixel(42,32);
     }
     else if (distance < 165) {
-        lcd.setPixel(41,33);
+        lcd.setPixel(42,33);
     }
     else if (distance < 170) {
-        lcd.setPixel(41,34);
+        lcd.setPixel(42,34);
     }
     else if (distance < 175) {
-        lcd.setPixel(41,35);
+        lcd.setPixel(42,35);
     }
     else if (distance < 180) {
-        lcd.setPixel(41,36);
+        lcd.setPixel(42,36);
     }
     else if (distance < 185) {
-        lcd.setPixel(41,37);
+        lcd.setPixel(42,37);
     }
     else if (distance < 190) {
-        lcd.setPixel(41,38);
+        lcd.setPixel(42,38);
     }
     else if (distance < 195) {
-        lcd.setPixel(41,39);
+        lcd.setPixel(42,39);
     }
     else if (distance < 200) {
-        lcd.setPixel(41,40);
+        lcd.setPixel(42,40);
     }
     else if (distance < 205) {
-        lcd.setPixel(41,41);
+        lcd.setPixel(42,41);
     }
     else if (distance < 210) {
-        lcd.setPixel(41,42);
+        lcd.setPixel(42,42);
     }
     else if (distance < 215) {
-        lcd.setPixel(41,43);
+        lcd.setPixel(42,43);
     }
     else if (distance < 220) {
-        lcd.setPixel(41,44);
+        lcd.setPixel(42,44);
     }
     else if (distance < 225) {
-        lcd.setPixel(41,45);
+        lcd.setPixel(42,45);
     }
     else if (distance < 230) {
-        lcd.setPixel(41,46);
-    }
-    else if (distance < 235) {
-        lcd.setPixel(41,47);
-    }
-    else if (distance < 240) {
-        lcd.setPixel(41,48);
+        lcd.setPixel(42,46);
     }
     else {
-        lcd.setPixel(41,48);
+        lcd.setPixel(42,47);
     }
     wait(3);
-    lcd.refresh();     
+    lcd.refresh();
 }