Braitenberg Lösung: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
== Grundsätzliche Überlegungen == | == Grundsätzliche Überlegungen == | ||
− | Für dieses | + | Für dieses Beispiel sind folgende Ideen wichtig: |
* Was sind [[Ereignisse]] und welche gibt es beim micro:bit? | * Was sind [[Ereignisse]] und welche gibt es beim micro:bit? | ||
* Wie funktionieren [[Alternativen|Abfragen]] und wie können dort Vergleiche verwendet werden? | * Wie funktionieren [[Alternativen|Abfragen]] und wie können dort Vergleiche verwendet werden? | ||
− | * | + | * Wie lese ich analoge Werte von Sensoren am BBC micro:bit ein? Welche Wertebereiche haben die Sensoren? |
+ | * Wie kann ich Motoren mit dem BBC micro:bit ansteuern? Mit welchen minimalen und maximalen Geschwindigkeiten kann ich die Motoren betreiben? | ||
== Tipps und Tricks == | == Tipps und Tricks == | ||
Zeile 40: | Zeile 41: | ||
basic.showIcon(IconNames.Happy) | basic.showIcon(IconNames.Happy) | ||
</pre></spoiler> | </pre></spoiler> | ||
− | |||
; Wie können wir nun das Starten und Stoppen des Roboters mit den Tasten A und B bewerkstelligen? | ; Wie können wir nun das Starten und Stoppen des Roboters mit den Tasten A und B bewerkstelligen? | ||
: Eigenlich muss ja nur die entsprechende Variable gesetzt werden ... <spoiler text="Lösung"><pre id="pre4"> | : Eigenlich muss ja nur die entsprechende Variable gesetzt werden ... <spoiler text="Lösung"><pre id="pre4"> | ||
Zeile 50: | Zeile 50: | ||
}) | }) | ||
</pre></spoiler> | </pre></spoiler> | ||
− | |||
; Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt, umgerechnet und an die Motoren ausgegeben werden. | ; Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt, umgerechnet und an die Motoren ausgegeben werden. | ||
=== Lichtfolger === | === Lichtfolger === |
Version vom 3. Januar 2022, 18:53 Uhr
Inhaltsverzeichnis
Grundsätzliche Überlegungen
Für dieses Beispiel sind folgende Ideen wichtig:
- Was sind Ereignisse und welche gibt es beim micro:bit?
- Wie funktionieren Abfragen und wie können dort Vergleiche verwendet werden?
- Wie lese ich analoge Werte von Sensoren am BBC micro:bit ein? Welche Wertebereiche haben die Sensoren?
- Wie kann ich Motoren mit dem BBC micro:bit ansteuern? Mit welchen minimalen und maximalen Geschwindigkeiten kann ich die Motoren betreiben?
Tipps und Tricks
- Beim Starten des Programms, was müssen wir alles festlegen?
- Denke immer daran: Sicherheit geht vor - alle Variablen initialisieren, d.h. auf einen vernünftigen Startwert setzen und - vor allem bei Robotern - einmal alle Motoren ausschalten. Hinweis
- Wie können wir nun das Starten und Stoppen des Roboters mit den Tasten A und B bewerkstelligen?
- Wenn wir in der Hauptschleife "Dauerhaft" immer prüfen ob eine bestimmte Variable gesetzt ist, bevor wir echte Geschwindigkeiten an die Motoren ausgeben, müssen wir nur beim Drücken von A oder B diese Variable auf die richtigen Werte setzen.
- Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt, umgerechnet und an die Motoren ausgegeben werden.
- Das ist etwas trickreich und kann nacheinander oder in einer einzigen Anweisung gemacht werden. Nacheinander heißt das zB
- Speichere den Wert des rechten Sensoren, den du von Pin 1 einliest (oder wo auch immer der Sensor verbunden ist!) in die Variable für den rechten Sensor
- Rechne den Wert auf den prinzipiell richtigen Bereich um. Hinweis
- Prüfe ob der Wert in einem gültigen Bereich ist um damit den Motor anzusteuern. Hinweis
- Setze die Motorgeschwindigkeit des richtigen (je nach gewünschtem Verhalten) Motors auf diesen Wert, wenn er fahren soll.
- Das sieht dann alles nacheinander zB so aus: Lösung
- Mache das gleiche dann für den linken Sensor nochmal!
Komplettlösungen
- Beim Starten des Programms, was müssen wir alles festlegen?
- Eine mögliche Lösung für den Start? Lösung
- Wie können wir nun das Starten und Stoppen des Roboters mit den Tasten A und B bewerkstelligen?
- Eigenlich muss ja nur die entsprechende Variable gesetzt werden ... Lösung
- Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt, umgerechnet und an die Motoren ausgegeben werden.
Lichtfolger
- Das sieht im einfachsten Fall für einen Roboter der auf das Licht zufährt so aus: Lösung
Lichtflüchter
- Und für einen Roboter der vor dem Licht flüchtet so: Lösung
- Vielleicht sollte bei dem Lichtflüchter dann auch ein anderes Symbol am Bildschirm ausgegeben werden, damit man die Modelle leichter unterscheiden kann, wie zB Lösung