Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Bertl by
ur_Bertl Class Reference
name: ur_Bertl.h
version: 3.0
class Bertl included
author:PE HTL BULME
email: pe@bulme.at
WIKI: https://developer.mbed.org/teams/BERTL_CHEL_18/code/ur_Bertl/wiki/Homepage
description: Definition and documentation portion of the class ur_Bertl The Robot.
More...
#include <ur_Bertl.h>
Inherited by Bertl, and Robot.
Public Member Functions | |
ur_Bertl () | |
default constructor; you have to define constants in config.h such as SPEED, DISTANCE or ANGLE | |
ur_Bertl (PinName pin) | |
parameterized constructor; on what pin should the interrupt work; SPEED, DISTANCE or ANGLE have to bee defined in config.h | |
void | Move () |
Robot moves one turn as much as the constant DISTANCE; if one of the buttons fire --> Error() | |
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. | |
void | TurnOff () |
turnes the robot off | |
bool | WaitUntilButtonPressed () |
wait until any button is pressed at the robot | |
bool | FrontIsClear () |
returns a boolean value true if front is free; if not false | |
bool | NextToABeeper () |
returns a boolean value true if the robot is on a black place or line; if not --> false | |
bool | IsButtonPressed (const int btn) |
returns true if Button btn is pressed, else false | |
int | ReturnButtonPressed () |
returns the int value of button pressed | |
int | AnyBeeperInBag () |
returns an int value (if > 0 equal true) how many beepers in bag; if zero --> false | |
void | NibbleLeds (int value) |
methode for the 4 (half byte) yellow LEDs at the back left side; ie. | |
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 | |
void | RGBLed (bool red, bool green, bool blue) |
RGB Led with red, green and blue component of the Color. | |
void | BlueLedsOFF () |
OFF all blue LEDs which are on the same Port 1_28. | |
void | BlueLedsON () |
ON all blue LEDs which are on the same Port 1_28. | |
Protected Member Functions | |
void | increment () |
protected methodes for internal purposes only | |
bool | backIsClear () |
don't now for what | |
bool | frontButtonPressed () |
TRUE if a a button on the front of Robot is pressed else FALSE. | |
int | bottomIsBlack () |
check line sensor; returns BCD value | |
void | error () |
Error: stops the robot and all LEDs are blinking. | |
Protected Attributes | |
int | beepersInBag |
how many beepers does the robot have in his bag; you can show it with: karel.NibbleLeds(karel.AnyBeeperInBag()) | |
char | cmd [3] |
I2C command. | |
int16_t | btns |
which button is pressed | |
InterruptIn | _interrupt |
interrupted used | |
volatile int | _count |
values of motor sensor | |
int16_t | leds |
save led status |
Detailed Description
name: ur_Bertl.h
version: 3.0
class Bertl included
author:PE HTL BULME
email: pe@bulme.at
WIKI: https://developer.mbed.org/teams/BERTL_CHEL_18/code/ur_Bertl/wiki/Homepage
description: Definition and documentation portion of the class ur_Bertl The Robot.
//
Example motor sensor test:
#include "mbed.h" #include "ur_Bertl.h" #include "const.h" int main() { ur_Bertl karel(LEFTSENSOR); // RIGHTSENSOR while(true) { karel.NibbleLeds(karel.Read()); } }
Example moving the robot around:
#include "mbed.h" #include "ur_Bertl.h" #include "const.h" int main() { ur_Bertl karel; while(karel.WaitUntilButtonPressed()){} //karel.Move(); karel.TurnLeft(); karel.ShutOff(); }
Example LEDs:
#include "mbed.h" #include "ur_Bertl.h" #include "const.h" int main() { ur_Bertl karel; while(karel.WaitUntilButtonPressed()){} karel.TurnLedOn(LED_FL1 | LED_FR1); // see const.h wait(1); karel.TurnLedOn(0xFF); // or use hex wait(1); karel.RGBLed(1,0,0); // red wait(1); karel.RGBLed(0,1,0); // green wait(1); karel.RGBLed(0,0,1); // blue karel.BlueLedsON(); karel.NibbleLeds(karel.Read()); wait(1); karel.BlueLedsOFF(); karel.TurnLedOff(0xFF); karel.ShutOff(); }
Example IF/ELSE Commands (update ur_Bertl 2.0 from https://developer.mbed.org/teams/BERTL_CHEL_18/code/ur_Bertl/
Sorry, but there are Javascript problems with this code int main() { ur_Bertl karel; while( karel.WaitUntilButtonPressed() ) {} if( karel.NextToABeeper()) { karel.PickBeeper(); karel.NibbleLeds(karel.AnyBeeperInBag()); //show number of beepers in bag on 4 yellow Leds } wait(1); if( karel.AnyBeeperInBag() ) { karel.PutBeeper(); karel.NibbleLeds(karel.AnyBeeperInBag()); } wait(1); if( karel.FrontIsClear() ) karel.Move(); else karel.TurnLeft(); karel.ShutOff(); }
Definition at line 128 of file ur_Bertl.h.
Constructor & Destructor Documentation
ur_Bertl | ( | ) |
default constructor; you have to define constants in config.h such as SPEED, DISTANCE or ANGLE
Definition at line 17 of file ur_Bertl.cpp.
ur_Bertl | ( | PinName | pin ) |
parameterized constructor; on what pin should the interrupt work; SPEED, DISTANCE or ANGLE have to bee defined in config.h
Definition at line 35 of file ur_Bertl.cpp.
Member Function Documentation
int AnyBeeperInBag | ( | ) |
returns an int value (if > 0 equal true) how many beepers in bag; if zero --> false
Definition at line 257 of file ur_Bertl.cpp.
bool backIsClear | ( | ) | [protected] |
don't now for what
Definition at line 313 of file ur_Bertl.cpp.
void BlueLedsOFF | ( | ) |
OFF all blue LEDs which are on the same Port 1_28.
Definition at line 138 of file ur_Bertl.cpp.
void BlueLedsON | ( | ) |
ON all blue LEDs which are on the same Port 1_28.
Definition at line 133 of file ur_Bertl.cpp.
int bottomIsBlack | ( | ) | [protected] |
check line sensor; returns BCD value
Definition at line 305 of file ur_Bertl.cpp.
void error | ( | ) | [protected] |
Error: stops the robot and all LEDs are blinking.
Definition at line 360 of file ur_Bertl.cpp.
bool frontButtonPressed | ( | ) | [protected] |
TRUE if a a button on the front of Robot is pressed else FALSE.
Definition at line 335 of file ur_Bertl.cpp.
bool FrontIsClear | ( | ) |
returns a boolean value true if front is free; if not false
Definition at line 192 of file ur_Bertl.cpp.
void increment | ( | ) | [protected] |
protected methodes for internal purposes only
ISR to increment sensor values of motor
Definition at line 382 of file ur_Bertl.cpp.
bool IsButtonPressed | ( | const int | btn ) |
returns true if Button btn is pressed, else false
Definition at line 265 of file ur_Bertl.cpp.
void Move | ( | ) |
Robot moves one turn as much as the constant DISTANCE; if one of the buttons fire --> Error()
Definition at line 51 of file ur_Bertl.cpp.
bool NextToABeeper | ( | ) |
returns a boolean value true if the robot is on a black place or line; if not --> false
Definition at line 249 of file ur_Bertl.cpp.
void NibbleLeds | ( | int | value ) |
methode for the 4 (half byte) yellow LEDs at the back left side; ie.
you can show how many beeper a robot has in his bag with: karel.NibbleLeds(karel.AnyBeeperInBag())
Definition at line 185 of file ur_Bertl.cpp.
void PickBeeper | ( | ) |
if Robot stands on a black item he can pick one or more Beeper (max.
15 --> Error()); if not --> Error()
Definition at line 85 of file ur_Bertl.cpp.
void PutBeeper | ( | ) |
if Robot has any Beepers in his bag he can put one or more Beeper; if not --> Error(()
Definition at line 76 of file ur_Bertl.cpp.
int ReturnButtonPressed | ( | ) |
returns the int value of button pressed
Definition at line 287 of file ur_Bertl.cpp.
void RGBLed | ( | bool | red, |
bool | green, | ||
bool | blue | ||
) |
RGB Led with red, green and blue component of the Color.
Reimplemented in Bertl.
Definition at line 143 of file ur_Bertl.cpp.
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
Definition at line 168 of file ur_Bertl.cpp.
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
Definition at line 150 of file ur_Bertl.cpp.
void TurnLeft | ( | ) |
Robot turns left as much as the constant ANGLE.
Definition at line 96 of file ur_Bertl.cpp.
void TurnOff | ( | ) |
turnes the robot off
Definition at line 119 of file ur_Bertl.cpp.
bool WaitUntilButtonPressed | ( | ) |
wait until any button is pressed at the robot
Definition at line 226 of file ur_Bertl.cpp.
Field Documentation
volatile int _count [protected] |
values of motor sensor
Definition at line 135 of file ur_Bertl.h.
InterruptIn _interrupt [protected] |
interrupted used
Definition at line 134 of file ur_Bertl.h.
int beepersInBag [protected] |
how many beepers does the robot have in his bag;
you can show it with: karel.NibbleLeds(karel.AnyBeeperInBag())
Definition at line 131 of file ur_Bertl.h.
int16_t btns [protected] |
which button is pressed
Definition at line 133 of file ur_Bertl.h.
char cmd[3] [protected] |
I2C command.
Definition at line 132 of file ur_Bertl.h.
int16_t leds [protected] |
save led status
Definition at line 136 of file ur_Bertl.h.
Generated on Tue Jul 19 2022 00:22:47 by
