Jetzt mit Python-Code

Sie können mit WordPress auch Python-Code direkt auf der Seite einfügen. Dazu müssen Sie einfach auf das +  klicken um einen Beitrag hinzuzufügen und dann als Beitragstyp code block  auswählen.

import python

Final – Lab

Das ist unser finaler Code:

from machine import Pin, PWM

In1 = Pin(23, Pin.OUT)
In2 = Pin(19, Pin.OUT)
In3 = Pin(22, Pin.OUT)
In4 = Pin(21, Pin.OUT)
ENA = PWM(Pin(18), freq=50)
ENB = PWM(Pin(17), freq=50)

SignalLinks = Pin(38, Pin.IN)

SignalMitte = Pin(37, Pin.IN)
SignalRechts = Pin(36, Pin.IN)

while True:
    ENA.duty(500)
    ENB.duty(500)
    In1.value(0)
    In2.value(1)
    In3.value(1)
    In4.value(0)
    if SignalRechts.value() == 1 and SignalMitte.value() == 0 and SignalLinks.value() == 0:
        while SignalMitte.value() == 0:
            ENA.duty(400)
            ENB.duty(200)
            In1.value(1)
            In2.value(0)
    if SignalLinks.value() == 1 and SignalMitte.value() == 0 and SignalRechts.value() == 0:
        while SignalMitte.value() == 0:
            ENA.duty(400)
            ENB.duty(200)
            In3.value(0)
            In4.value(1)

Trotz der Kürze des Codes erweist er sich als einer der besten. Unser Algorithmus fährt so lange geradeaus, bis er links oder rechts einen schwarzen Strich wahrnimmt, aber in der Mitte keinen mehr. In so einer Situation biegt er dann so lang ab, bis er in der Mitte wieder einen Strich sieht, aber rechts und links keinen. Wir lassen ihn beim geradeaus fahren schneller fahren, wie wenn er um die Kurve fährt. Wenn er um die Kurve fährt lassen wir den einen Motor rückwärts fahren, damit er sich schneller dreht. 

Fazit

Wir können stärkere Motoren verwenden, damit wir kein Getriebe nutzten müssen. Wir können unser ganzes Gehäuse kleiner und leichter designen, damit er wendiger ist. Wir können unsere Sensoren weiter auseinander positionieren, damit er auf einer Geraden nicht die ganze Zeit seine Richtung korrigiert und dadurch abbremst. Wenn wir schneller fahren wollen, brauchen wir bessere Sensoren, um die Kurve besser zu erkennen und er auf gerader Strecke nicht plötzlich eine Kurve sieht, ohne das sich dort eine befindet.  

Die Installation

Für unser MicroPython-Projekt brauchen wir: