-
Notifications
You must be signed in to change notification settings - Fork 8
Verhalten
In der Konfigurationsdatei hexbug_config.py
können weitere "Verhaltensweisen" aktiviert werden. Diese benötigen zum Teil
weitere Sensoren oder
Erweiterungen.
.center[
.caption[ Fig. 1: Image caption ]
]
Von Zeit zu Zeit "schaut" der Roboter umher, während die LED gelb pulsiert.
Dieses Verhalten hat keinen weiteren Nutzen, außer dass es den Roboter "lebendiger"
wirken lässt. Die Häufigkeit, mit der das Verhalten aufgerufen wird, kann man über
die Konstante DO_LOOK_AROUND
in hexbug_config.py
steuern:
DO_LOOK_AROUND = const(30) # =probabilty ([‰]) to activate behaviour
Der Wert wird in Promille angegeben; ein Wert von 0
schaltet das Verhalten aus.
Wenn dieses Verhalten aktiviert ist, schaltet sich der Roboter von Zeit zu
Zeit ab. Dieses Verhalten demonstriert die Verwendung der Schlafmodi
(deepsleep
, lightsleep
)
des ESP32. Um zu "schlafen", schaltet der Roboter die 5V-Versorgung des Boards
ab und versetzt sich in einen Schlafmodus (derzeit mit lightsleep
). Nach einer
zufälligen Anzahl von Sekunden, wacht er wieder auf und läuft weiter.
DO_TAKE_NAPS = const(0) # =probability ([‰]) to activate behaviour
NAP_FROM_S = const(5) # range of random numbers to sleep ...
NAP_TO_S = const(50) # ... in [s]
Der Wert von DO_TAKE_NAPS
wird in Promille angegeben; ein Wert von 0
schaltet
das Verhalten aus. Die Konstanten NAP_FROM_S
und NAP_TO_S
legen den Bereich
der Zufallswerte für die Schlafzeit fest (random.randint(NAP_FROM_S, NAP_TO_S)
).
Um das Board abschalten zu können, muss ein 5V-Spannungsregler mit Shutdown-Pin
(U1V11F5,
siehe Bauteile
unter "Optional") verwendet und die Konstante USE_POWER_SHD
auf den Wert 1
gesetzt werden.
Weiter zu Sensoren etc.
Wenn aktiviert, steuert der Roboter auf die hellste Lichtquelle zu. Dazu vergleicht er die Ausgabewerte zweier Lichtsensoren und dreht sich bevorzugt auf die Seite mit dem höheren Helligkeitswert. Als Lichtsensoren können zwei Photodioden verwendet werden, die seitlich am Sensorarm angebracht sind und durch eine Abschirmung überwiegend das Licht auf der jeweiligen Seite messen.
Die Photodioden werden über eine einfache Schaltung an zwei der A/D-Wandler-Eingänge angeschlossen. Dabei wird eine lichtabhängige Spannung über einen Spannungsteiler mit einem relativ hochohmigen Arbeitswiderstand gemessen. Die Ausgangsspannung ist linear proportional zur Lichtleistung.
Die hier verwendeten Photodioden sind vom Typ SFH 203 und für Licht im Wellenlängenbereich von 400 bis 1100 nm empfindlich.
Das Verhalten wird in hexbug_config.py
folgendermaßen kontrolliert:
DO_FIND_LIGHT = const(0) # 1=enabled
AI_CH_LIGHT_R = const(3)
AI_CH_LIGHT_L = const(2)
Ein Wert von 1
in DO_FIND_LIGHT
aktiviert das Verhalten. Die Nummern der
analoge Eingänge (Pins) müssen in AI_CH_LIGHT_R
und AI_CH_LIGHT_R
gesetzt werden.
- Board
- Installation
- Zusammenbau
3.1. Übersicht
3.2. Bauteile
3.3. HexBug-Spinne zerlegen
3.4. Adapter und Sensorarm
3.5. Akku und Platine - "robotling"-Code hochladen und Demo starten
- "Verhalten"
- Sensoren etc.
- Erweiterungen und Modifikationen
- Telemetrie über MQTT
- Adding native modules to MicroPython (Englisch)