MicroPython Sonar

In diesem Script wird dir gezeigt, wie man das Sonar des Joy-Cars nutzen kann. Die Funktion distance() erwartet keine Argumente und gibt den gemessenen Abstand zum nächsten Gegenstand in cm zurück.

# Import der benötigten Module
from microbit import *
import gc

DISTANCE_CM_PER_BIT = 0.21 # Distanz in cm pro Bit (Auflösung)

# Initialisierung der SPI-Schnittstelle (Pin12 als Echo-Empfänger)
spi.init(baudrate=50000,bits=8,mode=0,miso=pin12)

# Definition der Funktion distance, die die Entfernungsmessung durchführt
def distance():
    gc.disable() # Garbage Collector deaktivieren
    pin8.write_digital(True) # kurzen Impuls auf dem Trigger Pin des Sensors senden
    pin8.write_digital(False) # Impuls auf dem Trigger Pin beenden
    x = spi.read(200) # 200 Bytes auf Pin 12 lesen und in x ablegen
    high_bits = 0 # high_bits auf 0 setzen

    # Zählung der High Bits
    for i in range(len(x)):
        if x[i] == 0 and high_bits > 0:
            break
        elif x[i] == 0xff:
            high_bits += 8
        else:
            high_bits += bin(x[i]).count('1')
    x = None # leeren der Variablen x
    gc.enable() # Garbage Collector aktivieren
    gc.collect() # aufräumen
    return high_bits * DISTANCE_CM_PER_BIT # Berechnung der Distanz und Rückgabe des errechneten Werts

while True:
    print(str(distance())) # Ausführen und ausgeben der distance Funktion
    sleep(200)

Achtung!

Ihr Webbrowser ist veraltet. Wechseln Sie jetzt zu einem aktuellen Browser für mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.