Dominik Kerschat / Bertl

Dependencies:   HCSR

Fork of Bertl by Franz Pucher

Files at this revision

API Documentation at this revision

Comitter:
bulmecisco
Date:
Thu Mar 19 19:12:33 2015 +0000
Parent:
0:66e9a0afcbd6
Child:
2:1cd559ff516b
Commit message:
FrontIsClear() with ultrasonic sensor added

Changed in this revision

config.h Show annotated file Show diff for this revision Revisions of this file
const.h Show annotated file Show diff for this revision Revisions of this file
ur_Bertl.cpp Show annotated file Show diff for this revision Revisions of this file
ur_Bertl.h Show annotated file Show diff for this revision Revisions of this file
--- a/config.h	Thu Feb 26 10:12:06 2015 +0000
+++ b/config.h	Thu Mar 19 19:12:33 2015 +0000
@@ -16,7 +16,8 @@
 /*! \def DEBUG
 \brief Turns debugging infos off (0) and on (3) which are send to serial pc.uart */
 #define DEBUG 0
-//#define FRONTBUTTON
+#define FRONTBUTTON     /**< Error shutoff if Bertl moves against a wall*/
+#define HCSR            /**< if ultrsonic is installed*/
 
 BusOut NibbleLEDs(P1_8, P1_9, P1_10, P1_11);   /**< 4 yellow LEDs as a bus defined */
 DigitalOut LED_D10(P1_8);    /**<  wiring first LED_D10 */
--- a/const.h	Thu Feb 26 10:12:06 2015 +0000
+++ b/const.h	Thu Mar 19 19:12:33 2015 +0000
@@ -44,6 +44,8 @@
 const int LED_ALL_BACK = 0xF0;
 const int LED_ALL = 0xFF;
 
+const int LED_BLUE = 0xBB;
+
 const int addr = 0x40;       // I2C-address PCA9555
 const int PERIOD = 20;       // PWM period
 const int PULSWIDTH = 5;     // PWN pulswidth
--- a/ur_Bertl.cpp	Thu Feb 26 10:12:06 2015 +0000
+++ b/ur_Bertl.cpp	Thu Mar 19 19:12:33 2015 +0000
@@ -140,6 +140,13 @@
 {
     char cmd[3];
 
+    if(led == 0xBB) {
+        LED_blue=0;
+        return;
+    } else if (led == 0xFF) {
+        RGBLed(1,1,1);
+        LED_blue=0;
+    }
     cmd[0] = 0x02;
     cmd[1] = ~led;
     i2c.write(addr, cmd, 2);
@@ -149,7 +156,13 @@
 void ur_Bertl::TurnLedOff(int16_t led)
 {
     char cmd[3];
-
+    if(led == 0xBB) {
+        LED_blue=1;
+        return;
+    } else if (led == 0xFF) {
+        RGBLed(0,0,0);      //don't work?
+        LED_blue=1;
+    }
     cmd[0] = 0x02;
     cmd[1] = led;
     i2c.write(addr, cmd, 2);
@@ -217,9 +230,10 @@
 }
 
 //----------------------------------------------------------------------
-/*
+
 bool ur_Bertl::FrontIsClear()
 {
+#ifdef HCSR
     int dist = 0;
     usensor.start();
     wait_ms(10);
@@ -228,8 +242,7 @@
         return false;
     else
         return true;
-    DEBUG_PRINT("Distance: %d", dist);
-
+#else
 // if there is no ultra sonic sensor use this - with front buttons
     char cmd[3];            // array for I2C
     int16_t btns;
@@ -249,9 +262,10 @@
         wert = true;
     DEBUG_PRINT("WERT: %d", wert);
     return wert;
+#endif
 }
 
-
+/*
 bool ur_Bertl::NextToABeeper()
 {
     if (BottomIsBlack())
--- a/ur_Bertl.h	Thu Feb 26 10:12:06 2015 +0000
+++ b/ur_Bertl.h	Thu Mar 19 19:12:33 2015 +0000
@@ -116,6 +116,7 @@
     void TurnLeft();            /**< Robot turns left as much as the constant ANGLE*/      
     void PutBeeper();           /**< if Robot has any Beepers in his bag he can put one or more Beeper; if not --> Error(()*/  
     void PickBeeper();          /**< if Robot stands on a black item he can pick one or more Beeper (max. 16 --> Error()); if not --> Error()*/   
+    bool FrontIsClear();        /**< returns a boolean value true if front is free; if not false */ 
     void NibbleLeds(int value); /**< methode for the 4 (half byte) yellow LEDs at the back left side */
     void TurnLedOn(int16_t led);/**< turns the specified one or more LEDs ON; description and name in const.h, such as LED_FL1 = 0x01; front LED white */
     void TurnLedOff(int16_t led);/**< turns the specified one or more LEDs OFF; description and name in const.h, such as LED_FL1 = 0x01; front LED white */