deutsch english |
ZUSAMMENBAU UND FUNKTIONSWEISE |
Orientiere dich im Internet, wie solche Farb-LEDs funktionieren und wo sie überall verbaut werden (z.B. in LED-Strips). |
ERSTE INBETRIEBNAHME |
from neopixel import * np = NeoPixel(pin0, 5) Die Parameterwerte legen fest, dass die Neopixels an P0 angeschlossen sind und dass du 5 Pixels verwendest. Nachher kannst du sehr einfach die RGB-Farbe jedes Pixels einzeln setzen, indem du wie bei einer Liste mit np[i] das Pixel auswählst (i = 0..4) und ihm in einem Tupel den RGB-Werte (3 Zahlen zwischen 0 und 255) zuweist, also beispielsweise um die grüne LED des Pixel mit i = 1 auf den Wert 10 zu stellen: np[1] = (0, 10, 0) Damit die LED mit dieser Farbe leuchtet, musst du nach der Zuweisung immer np.show() aufrufen. Schreibe das Programm und führe es aus. Wenn du Lust hast, so kannst du schon jetzt oder auch später mit den Pixels noch ein wenig spielen, beispielsweise:
Beachte: Wenn deine Pixels nicht leuchten, hast du wahrscheinlich np.show() vergessen! Motoren Ein PWM-Signal auf Pin1 (rechter Motor) erzeugst du mit pin1.write_analog(duty_cycle) wobei aber hier der duty_cycle nicht in Prozent, sondern als Zahl zwischen 0 und 1023 angegeben wird. Deine Servomotoren laufen für Werte zwischen 73 und hinauf auf 93 immer schneller vorwärts und für Werte zwischen 73 und hinunter auf 63 immer schneller rückwärts. Erstelle ein Programm, dass den rechten Motor je 1 Sekunde mit dem duty_cycle 63 bis 73 laufen lässt. Am Schluss solltest du den Motor mit write_analog(0) stoppen. Schreibe den duty_cycle im Terminalfenster aus. Mache denselben Test mit dem linken Motor. |
VORWÄRTS FAHREN UND ABBIEGEN |
Um vorwärts zu fahren, müssen beide Räder gleich schnell drehen. Die Motoren sind aber entgegengesetzt angeordnet, so dass ihre Laufrichtungen entgegengesetzt seien müssen, um vorwärts zu fahren. Das ist nicht exakt realisierbar, aber so ungefähr. Um links zu drehen, stoppst du das linke Rad. Es ist sinnvoll, ein paar Funktionen zu definieren, zum Beispiel: Programm: from microbit import * def forward(speed): pin1.write_analog(72 - speed) pin2.write_analog(72 + speed) def left(speed): pin1.write_analog(72 - speed) pin2.write_digital(0) def stop(): pin1.write_digital(0) pin2.write_digital(0) Den Wert 72 musst du mit einigen Versuchen anpassen. Erstelle ein Programm so, dass der Roboter vier Mal hintereinander 3 Sekunden lang vorwärts fährt und dann 0.7 s links steuert. Am Ende soll er stoppen. Ergänze die Funktionssammlung mit backward() und right() und führe einige weitere Testläufe durch. |
MIT BELEUCHTUNG UND FAHRRICHTUNGSANZEIGER FAHREN |
Jetzt kannst du deine Kenntnisse kombinieren und lustige Roboteranwendungen programmieren. Ein Vorschlag: Der Roboter soll nach Programmstart endlos ungefähr ein Quadrat abfahren, bis man den Button A klickt. Dabei sollen bei der Vorwärtsfahrt die drei mittleren Pixels weiss und beim Drehen der entsprechende äusserste Pixel wie Fahrrichtungsblinker gelb leuchten.
|
ROBOTER FERNSTEUERN |
Mit einem zweiten micro:bit willst du den Roboter fernsteuern, und zwar wie folgt:
Orientiere dich im Kapitel 7. Bluetooth, wie du die Kommunikation zwischen der Fernsteuerung und dem Roboter programmierst. |