Distance srnsor final code

Dependencies:   DocTest N5110 PowerControl SRF02 beep mbed

Files at this revision

API Documentation at this revision

Comitter:
fy12dsak
Date:
Mon May 11 22:50:09 2015 +0000
Commit message:
final code

Changed in this revision

DocTest.lib Show annotated file Show diff for this revision Revisions of this file
N5110.lib Show annotated file Show diff for this revision Revisions of this file
PowerControl.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
beep.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
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DocTest.lib	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/eencae/code/DocTest/#6fc14cd8ccf1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/N5110.lib	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/eencae/code/N5110/#ba8addc061ea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerControl.lib	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/JST2011/code/PowerControl/#d0fa2aeb02a4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SRF02.lib	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/eencae/code/SRF02/#8e6587d88773
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/beep.lib	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/dreschpe/code/beep/#d8e14429a95f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,246 @@
+/**
+@file main.cpp
+@brief car parking senser 
+@brief Shows examples of creating Doxygen documentation.
+@brief Revision 1.0.
+@author Dawood Al kalbani
+@date  5 May 2015
+*/
+
+#include "mbed.h"
+#include "N5110.h"
+#include "SRF02.h"
+#include "PowerControl/PowerControl.h"
+#include "PowerControl/EthernetPowerControl.h"
+#include "beep.h"
+#define USR_POWERDOWN  (0x104)
+
+int semihost_powerdown() ///Function
+{
+
+    uint32_t arg;
+    return __semihost (USR_POWERDOWN, &arg);
+}
+
+
+
+//    VCC,SCE,RST,D/C,MOSI,SCLK,LED
+/// N5110 LCD pins
+N5110 screen(p7,p8,p9,p10,p11,p13,p26);
+// Can also power (VCC) directly from VOUT (3.3 V) -
+// Can give better performance due to current limitation from GPIO pin
+/// SRF02 output pins
+SRF02 sensor(p28,p27);
+//PwmOut buzz(p21);
+BusOut LED(p24);
+/// AnalogIn poten output pin
+AnalogIn Poten(p20);
+Beep buzzer(p21);
+
+Ticker buzzerTimer; ///Ticker
+int buzzerCounterMax; ///buzzer
+
+/// this is the buzzer toggle
+/// buzzerCounter - static int used to ...
+void buzzerToggle(){
+    static int buzzerCounter=0;
+    buzzerCounter = (buzzerCounter>=buzzerCounterMax)?0:buzzerCounter+1;
+    if ((buzzerCounter==0)&&(buzzerCounterMax!=0)){
+        buzzer.beep(1000,0.1);
+        
+        }
+    }
+
+InterruptIn startReading (p15); ///InterruptIn
+
+int startFlag = 0; ///flag
+void startRead();
+/// this is the startRead
+void startRead()
+{
+    startFlag = 1;   
+}    
+
+/// this is the main
+int main()
+{
+
+    int result = semihost_powerdown(); ///
+    buzzerTimer.attach(&buzzerToggle,0.01);
+    // first need to initialise display
+    screen.init();
+    // buzzer = 0.0;
+    screen.printString("Leeds Uni",15,0);
+    wait(1);
+    screen.printString("Dawood",20,1);
+    wait(1);
+    screen.printString("Al Kalbani",15,2);
+    wait(1);
+    screen.printString("200744793",20,3);
+    wait(1);
+    screen.refresh();
+    screen.clear();
+    //button function
+
+
+startReading.rise(&startRead);
+
+    while(1) 
+    {
+        if (startFlag)
+        
+        {
+            //startFlag = 0;
+
+            //read sensor distance in cm and print over serial port
+            int distance = sensor.getDistanceCm();
+            //serial.printf("Distance = %d cm\n",distance);
+            // short delay before next measurement
+
+            char buffer[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+            // so can display a string of a maximum 14 characters in length
+            // or create formatted strings - ensure they aren't more than 14 characters long
+
+            int length = sprintf(buffer,"Dist = %2d cm",distance); // print formatted data to buffer
+            // it is important the format specifier ensures the length will fit in the buffer
+
+            if (length <= 14)  // if string will fit on display
+            screen.printString(buffer,0,1);           // display on screen
+            
+            screen.printString("Car reversing",6,2);
+            
+            screen.refresh();
+            if(distance < 50) 
+            {
+                // buzz = 1.0;
+//             buzz.period_ms(10);
+            }
+             else {
+            //buzz = 0.0;
+
+            }
+            if(distance < 50) {
+                LED = 1.0;
+            } 
+            else 
+            {
+                LED = 0.0;
+            }
+
+            float sound = 250 - distance; /// measure the distance withe the max limite
+            float frequency = sound *2; /// the frequency of sound
+            float period = distance; /// measured distance
+
+            if ( distance < 80 ) 
+            {
+                if(frequency < 80)
+                frequency = 0;
+            //buzzer.beep(1000,0.1);
+             buzzerCounterMax = distance;
+            //wait(period);
+             }
+
+             screen.setBrightness(Poten.read());
+
+        wait(0.5);
+        /*
+
+            // these are default settings so not strictly needed
+            lcd.normalMode();      // normal colour mode
+            lcd.setBrightness(0.5); // put LED backlight on 50%
+
+            // can directly print strings at specified co-ordinates
+            lcd.printString("Hello, World!",0,0);
+
+            char buffer[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+            // so can display a string of a maximum 14 characters in length
+            // or create formatted strings - ensure they aren't more than 14 characters long
+            int temperature = 27;
+            int length = sprintf(buffer,"T = %2d C",temperature); // print formatted data to buffer
+            // it is important the format specifier ensures the length will fit in the buffer
+            if (length <= 14)  // if string will fit on display
+                lcd.printString(buffer,0,1);           // display on screen
+
+            float pressure = 1012.3;  // same idea with floats
+            length = sprintf(buffer,"P = %.2f mb",pressure);
+            if (length <= 14)
+                lcd.printString(buffer,0,2);
+
+            // can also print individual characters at specified place
+            lcd.printChar('X',5,3);
+
+            // draw a line across the display at y = 40 pixels (origin top-left)
+            for (int i = 0; i < WIDTH; i++) {
+                lcd.setPixel(i,40);
+            }
+            // need to refresh display after setting pixels
+            lcd.refresh();
+
+            // can also check status of pixels using getPixel(x,y)
+
+            wait(5.0);
+            lcd.clear();            // clear display
+            lcd.inverseMode();      // invert colours
+            lcd.setBrightness(1.0); // put LED backlight on full
+
+            float array[84];
+
+            for (int i = 0; i < 84; i++) {
+                array[i] = 0.5 + 0.5*sin(i*2*3.14/84);
+            }
+
+            // can also plot graphs - 84 elements only
+            // values must be in range 0.0 - 1.0
+            lcd.plotArray(array);
+            wait(5.0);
+            lcd.clear();
+            lcd.normalMode();      // normal colour mode back
+            lcd.setBrightness(0.5); // put LED backlight on 50%
+
+            // example of drawing lines
+            for (int x = 0; x < WIDTH ; x+=10) {
+                // x0,y0,x1,y1,type 0-white,1-black,2-dotted
+                lcd.drawLine(0,0,x,HEIGHT,2);
+            }
+            lcd.refresh();   // need to refresh screen after drawing lines
+
+            wait(5.0);
+            lcd.clear();
+
+            // example of how to draw circles
+            lcd.drawCircle(WIDTH/2,HEIGHT/2,20,1);  // x,y,radius,black fill
+            lcd.drawCircle(WIDTH/2,HEIGHT/2,10,2);  // x,y,radius,white fill
+            lcd.drawCircle(WIDTH/2,HEIGHT/2,30,0);  // x,y,radius,transparent with outline
+            lcd.refresh();   // need to refresh screen after drawing circles
+
+            wait(5.0);
+            lcd.clear();
+
+            // example of how to draw rectangles
+            //          origin x,y,width,height,type
+            lcd.drawRect(10,10,50,30,1);  // filled black rectangle
+            lcd.drawRect(15,15,20,10,2);  // filled white rectange (no outline)
+            lcd.drawRect(2,2,70,40,0);    // transparent, just outline
+            lcd.refresh();   // need to refresh screen after drawing rects
+
+
+            wait(5.0);
+            lcd.clear();
+
+            */
+        //  Sleep();
+        //wait(0.2);
+        screen.clear();
+        
+        if (startReading)
+        {
+            startFlag = 0;
+         }   
+    }
+        
+        
+        }
+        
+        
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon May 11 22:50:09 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/8ab26030e058
\ No newline at end of file