Mithilfe dieser beiden Dateien machst du aus deinem Joy-Car und einem weiteren micro:bit ein ferngesteuertes Auto. Lade die rc_joycar.py auf den micro:bit deines Joy-Cars und die rc_remote.py auf den micro:bit, den du als Fernsteuerung benutzt. Neige den micro:bit, den du als Fernsteuerung benutzt, in die Richtung in die du fahren möchtest und dein Joy-Car fährt in diese Richtung. Auf Button A nutzt du die Hupe. Der Button B schaltet das Licht ein.
# Import der benötigten Module
import microbit
import radio
# Einschalten der Funkhardware
radio.on()
# Definition der Variablen zur Datenübertragung
data0 = "0"
data1 = "0"
data = "00"
# Abfrageschleife
while True:
# auslesen der Werte des Beschleunigungssensors
a = microbit.accelerometer.get_values()
# Zuordnung der Buchstaben zu einer Richtung und speichern in data0
# micro:bit nach links geneigt und nicht über den Schwellenwert nach vorn
if a[0] >= 300 and a[1] <= 300:
data0 = "l"
# micro:bit nach rechts geneigt und nicht über den Schwellenwert nach vorn
elif a[0] <= -300 and a[1] <= 300:
data0 = "r"
# micro:bit nach vorn geneigt und nicht über den Schwellenwert zur Seite
elif a[1] <= -300 and a[0] >= -300 and a[0] <= 300:
data0 = "f"
# micro:bit nach hinten geneigt
elif a[1] >= 300:
data0 = "b"
# sonst 0
else:
data0 = "0"
# Zuordnung der Buchstaben zu einem Knopf und speichern in data1
if microbit.button_a.is_pressed() == 1 and microbit.button_b.is_pressed() == 0:
data1 = "a"
elif microbit.button_a.is_pressed() == 0 and microbit.button_b.is_pressed() == 1:
data1 = "b"
elif microbit.button_a.is_pressed() == 1 and microbit.button_b.is_pressed() == 1:
data1 = "c"
else:
data1 = "0"
# data0 und data1 zusammensetzen und in data speichern
data = data0 + data1
# data senden
radio.send(data)
# Import der benötigten Module
from microbit import *
import neopixel
import radio
import music
# Initalisierung der RGB LEDs
np = neopixel.NeoPixel(pin0, 8)
# Einschalten der Funkhardware
radio.on()
# Vordefinitionen für die Beleuchtung
headlights = (0, 3)
backlights = (5, 6)
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
# Funktion um die Motoren zu steuern
def drive(PWM0, PWM1, PWM2, PWM3):
i2c.write(0x70, b'\x02' + bytes([PWM0]))
i2c.write(0x70, b'\x03' + bytes([PWM1]))
i2c.write(0x70, b'\x04' + bytes([PWM2]))
i2c.write(0x70, b'\x05' + bytes([PWM3]))
# Abblendlicht einschalten
def lightsON():
for x in headlights:
np[x] = led_white
for x in backlights:
np[x] = led_red
np.show()
# Licht ausschalten
def lightsOFF():
for x in headlights:
np[x] = led_off
for x in backlights:
np[x] = led_off
np.show()
# Steuerungsschleife
while True:
# Empfang über Funkhardware wird in der Variable incoming abgelegt
incoming = radio.receive()
# wenn incoming ist nicht None (leer) dann:
if incoming is not None:
# Abfrage des 1. Zeichens für die Richtung
if incoming[0] == "l":
drive(0, 0, 40, 255)
elif incoming[0] == "r":
drive(40, 255, 0, 0)
elif incoming[0] == "f":
drive(40, 255, 40, 255)
elif incoming[0] == "b":
drive(255, 40, 255, 40)
else:
drive(0, 0, 0, 0)
# ein und ausschalten des Rückfahrlichts
if incoming[0] == "b":
np[4] = (led_white)
np.show()
else:
np[4] = (led_off)
np.show()
# Abfrage des 2. Zeichens für die Funktionen (Licht und Hupe)
if incoming[1] == "a":
music.play("c4:1", pin=pin16)
elif incoming[1] == "b":
lightsON()
elif incoming[1] == "c":
lightsON()
else:
lightsOFF()
# wenn incoming = None, dann wird das Joy-Car geparkt.
# Dies ist in der Regel der Fall, wenn das Joy-Car ausserhalb
# der Reichweite der Fernbedienung ist oder wenn die Fernbedienung aus ist.
else:
drive(0, 0, 0, 0)
for x in range(0, 8):
np[x] = (50, 0, 0)
np.show()