"Beim Start"

Jedes Projekt besteht zu Beginn aus zwei Grundblöcken. Dem beim Start-Block und dem dauerhaft-Block. Alle Anweisungen, die sich innerhalb dieser beiden Blöcke befinden, werden vom Programm ausgeführt. Dabei wird jedoch der beim Start-Block lediglich einmalig ausgeführt, sobald du dein Programm startest.

Das folgende Programm macht beim Start des micro:bit das Bremslicht an, wartet dann 2 Sekunden und schaltet das Bremslicht wieder aus.

Es ist wichtig darauf zu achten, dass die Revision des Mainboards des Joy-Cars angegeben wird. Mehr dazu findest du hier, wie du zum Beispiel herausfindest, welche Revision du verwendest.

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
JoyCar.brakelight(ToggleSwitch.On)
basic.pause(2000)
JoyCar.brakelight(ToggleSwitch.Off)
JavaScript

Der Beispielcode in MicroPython ist da, weil es ihn auch in MakeCode gibt. Das ist super praktisch, denn wenn du schon mit MakeCode klarkommst, kannst du viel leichter mit MicroPython loslegen. Indem wir Beispielcodes in beiden Umgebungen haben, kannst du ohne große Unterbrechung weiterlernen. So verstehst du besser, wie Programmierung funktioniert und kannst sehen, wie man dieselben Sachen in verschiedenen Programmiersprachen macht.

# Notwendige Bibliotheken importieren
from microbit import *
import neopixel

# Definiere deine Joy Car Mainboard Reversion
joycar_rev = 1.3

# Objekt für die Lichter definieren
np = neopixel.NeoPixel(pin0, 8)

# Werte für die Lichter definieren
# Werte, welche LEDs aktiviert werden sollen
headlights = (0, 3)
backlights = (5, 6)
indicator_left = (0, 4)
indicator_right = (3, 7)
indicator_warning = (1, 2, 4, 7)

# Werte, welche Farbe auf den LEDs angezeigt werden soll
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)

# Methode zum Aktivieren/Deaktivieren des Bremslichts
def lightsBreak(on = True):
    if on:
        for x in backlights:
            # helles Rot für die Bremslichter definieren
            np[x] = led_red_br
    else:
        for x in backlights:
            # Schwarz für die Bremslichter definieren
            np[x] = led_off
    np.show()

# Bremslichter aktivieren
lightsBreak()

# 2 Sekunden lang warten
sleep(2000)

# Bremslichter deaktivieren
lightsBreak(on = False)
Python

"Dauerhaft"

Der dauerhaft-Block hingegen wird immer und immer wieder ausgeführt. Sobald alle Befehle und Anweisungen, von oben nach unten, in diesem Block abgearbeitet wurden, beginnt die Ausführung wieder von Anfang an. Hier kannst du beispielsweise dauerhaft die Sensoren überprüfen und auf neue Ereignisse reagieren.

Der folgende Code baut auf dem Beispiel auf. Es wird erst der beim Start-Block ausgeführt. In diesem wird wieder zunächst die Revision des Joy-Cars angegeben, das Bremslicht eingeschaltet, im Anschluss 2 Sekunden gewartet und dann das Bremslicht ausgeschaltet. Da der Code hier, im Gegensatz zum ersten Beispiel, aber noch nicht endet, haben wir hier eine weitere Pause von einer Sekunde eingefügt. Nach dieser Pause springt das Programm aus dem beim Start-Block in den dauerhaft-Block. Jetzt wird in einer Endlosschleife das Licht eingeschaltet, 2 Sekunden gewartet, das Licht ausgeschaltet, 2 Sekunden gewartet und dann beginnt der Block wieder von vorne.

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
JoyCar.brakelight(ToggleSwitch.On)
basic.pause(2000)
JoyCar.brakelight(ToggleSwitch.Off)
basic.pause(1000)
basic.forever(function () {
    JoyCar.light(ToggleSwitch.On)
    basic.pause(2000)
    JoyCar.light(ToggleSwitch.Off)
    basic.pause(2000)
})
JavaScript

Der Beispielcode in MicroPython ist da, weil es ihn auch in MakeCode gibt. Das ist super praktisch, denn wenn du schon mit MakeCode klarkommst, kannst du viel leichter mit MicroPython loslegen. Indem wir Beispielcodes in beiden Umgebungen haben, kannst du ohne große Unterbrechung weiterlernen. So verstehst du besser, wie Programmierung funktioniert und kannst sehen, wie man dieselben Sachen in verschiedenen Programmiersprachen macht.

# Notwendige Bibliotheken importieren
from microbit import *
import neopixel

# Definiere deine Joy Car Mainboard Reversion
joycar_rev = 1.3

# Objekt für die Lichter definieren
np = neopixel.NeoPixel(pin0, 8)

# Werte für die Lichter definieren
# Werte, welche LEDs aktiviert werden sollen
headlights = (0, 3)
backlights = (5, 6)
indicator_left = (0, 4)
indicator_right = (3, 7)
indicator_warning = (1, 2, 4, 7)

# Werte, welche Farbe auf den LEDs angezeigt werden soll
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)

# Methode zum Aktivieren/Deaktivieren von Lichtern
def lights(on = True):
    if on:
        for x, y in zip(headlights, backlights):
            # Weiß für die Scheinwerfer definieren
            np[x] = led_white
            # Dunkelrot für die Rücklichter definieren
            np[y] = led_red
    else:
        for x, y in zip(headlights, backlights):
            # Schwarz für die Scheinwerfer und Rücklichter definieren
            np[x] = led_off
            np[y] = led_off
    np.show()

# Methode zum Aktivieren/Deaktivieren des Bremslichts
def lightsBreak(on = True):
    if on:
        for x in backlights:
            # helles Rot für die Bremslichter definieren
            np[x] = led_red_br
    else:
        for x in backlights:
            # Schwarz für die Bremslichter definieren
            np[x] = led_off
    np.show()

# Bremslichter aktivieren
lightsBreak()

# 2 Sekunden lang warten
sleep(2000)

# Bremslichter deaktivieren
lightsBreak(on = False)

# 1 Sekunde lang warten
sleep(1000)

# Schleife, die aktiv bleibt
while True:    
    # Abblendlicht aktivieren
    lights()
    
    # 2 Sekunden lang warten
    sleep(2000)
    
    # Abblendlicht deaktivieren
    lights(on = False)
    
    # 2 Sekunden lang warten
    sleep(2000)
Python