Ein Viereck fahren – Grundlegende Bewegungsbefehle
Der Arduino Alvik ist ein Lernroboter, der präzise gesteuert werden kann. Um komplexere Fahrmanöver wie ein Viereck zu programmieren, benötigst du drei grundlegende Bewegungsbefehle. In diesem Tutorial lernst du, wie du diese Befehle kombinierst, um geometrische Formen zu fahren.
Die drei wichtigsten Bewegungsbefehle
•
alvik.move() – Vorwärts/Rückwärts fahren•
alvik.rotate() – Drehen auf der Stelle•
alvik.stop() – Alle Motoren stoppen
1. alvik.move() – Bewegen
Bewegt den Roboter um eine bestimmte Entfernung vorwärts oder rückwärts.
Syntax:
alvik.move(distance, unit='cm', blocking=True)
Parameter:
- distance (float): Die Entfernung, die gefahren werden soll (z.B. 50)
- unit (str): Die Einheit –
'cm'für Zentimeter oder'deg'für Raddrehung - blocking (bool):
True= Wartet bis Bewegung fertig,False= Führt Code sofort weiter aus
Beispiel:
alvik.move(50) # Fährt 50 cm vorwärts
2. alvik.rotate() – Drehen
Dreht den Roboter um einen bestimmten Winkel auf der Stelle.
Syntax:
alvik.rotate(angle, unit='deg', blocking=True)
Parameter:
- angle (float): Der Drehwinkel (z.B. 90 für 90°)
- unit (str): Die Einheit –
'deg'für Grad oder'rad'für Radiant - blocking (bool):
True= Wartet bis Drehung fertig,False= Führt Code sofort weiter aus
Beispiel:
alvik.rotate(90) # Dreht 90° im Uhrzeigersinn
3. alvik.stop() – Stoppen
Stoppt alle Motoren sofort. Dieser Befehl benötigt keine Parameter.
Beispiel:
alvik.stop() # Stoppt den Roboter
Beispiel 1: Viereck fahren (einfach)
Ein Viereck besteht aus vier gleich langen Seiten und vier 90°-Drehungen. Hier ist die einfachste Variante:
from arduino_alvik import ArduinoAlvik
from time import sleep
alvik = ArduinoAlvik()
alvik.begin()
# Erste Seite
alvik.move(50)
alvik.rotate(90)
sleep(1)
# Zweite Seite
alvik.move(50)
alvik.rotate(90)
sleep(1)
# Dritte Seite
alvik.move(50)
alvik.rotate(90)
sleep(1)
# Vierte Seite
alvik.move(50)
alvik.rotate(90)
sleep(1)
# Stoppen
alvik.stop()
Wie funktioniert das Viereck?
- Seite fahren:
alvik.move(50)fährt 50 cm geradeaus - Ecke drehen:
alvik.rotate(90)dreht 90° für die nächste Ecke - Pause:
sleep(1)wartet 1 Sekunde (optional, zur besseren Beobachtung) - Wiederholen: Diese Schritte werden 4 mal ausgeführt
Beispiel 2: Viereck mit Funktion (besser)
Wiederholungen schreibt man eleganter mit Schleifen und Funktionen:
from arduino_alvik import ArduinoAlvik
from time import sleep
alvik = ArduinoAlvik()
alvik.begin()
def viereck(seitenlaenge=50, pause=1):
"""
Lässt den Alvik ein Viereck fahren.
Parameter:
- seitenlaenge: Länge einer Seite in cm (Standard: 50)
- pause: Pause nach jeder Ecke in Sekunden (Standard: 1)
"""
for i in range(4):
alvik.move(seitenlaenge)
alvik.rotate(90)
sleep(pause)
# Viereck fahren
viereck()
# Optional: Mehrere Vierecke mit unterschiedlichen Größen
# viereck(30) # Kleines Viereck
# viereck(70, 0.5) # Großes Viereck mit kürzerer Pause
Vorteile der Funktions-Variante
- Kürzer: Nur 4 Zeilen statt 16
- Flexibler: Seitenlänge und Pause sind einstellbar
- Wiederverwendbar: Funktion kann mehrfach aufgerufen werden
- Übersichtlicher: Code ist besser strukturiert
Erweiterungsideen
Nachdem du das Viereck gemeistert hast, probiere diese Variationen:
- Rechteck: Verwende unterschiedliche Längen für die Seiten
- Dreieck: 3 Seiten mit jeweils 120° Drehung
- Sechseck: 6 Seiten mit jeweils 60° Drehung
- Spirale: Erhöhe die Seitenlänge nach jeder Runde
- Mehrfach-Vierecke: Fahre mehrere Vierecke unterschiedlicher Größe
Tipps für präzises Fahren
- Ebener Untergrund: Teste auf glattem Boden für beste Ergebnisse
- Batterie laden: Schwache Batterien beeinflussen die Präzision
- Kalibrierung: Bei Abweichungen kannst du die Werte anpassen (z.B. 89° statt 90°)
- Blocking-Parameter: Standardmäßig ist
blocking=True, was bedeutet, dass jeder Befehl abgewartet wird
Mathematischer Hintergrund
Die Summe aller Außenwinkel eines Vierecks beträgt immer 360°. Bei einem Quadrat sind das vier mal 90°. Für andere regelmäßige Formen gilt:
- Dreieck: 360° ÷ 3 = 120°
- Fünfeck: 360° ÷ 5 = 72°
- Sechseck: 360° ÷ 6 = 60°
- Achteck: 360° ÷ 8 = 45°
Challenge: Geometrische Formen fahren
Meistere Bewegungsbefehle und Schleifen!
🧠 Wissens-Check
1. Welcher Befehl bewegt den Alvik vorwärts?
2. Wie viel Grad muss der Alvik für jede Ecke eines Quadrats drehen?
3. Welche Schleife ist am besten, um ein Viereck mit 4 Seiten zu fahren?
💻 Programmier-Challenge
📝 Universelle Form-Funktion
Erstelle eine Funktion, die verschiedene regelmäßige Formen fahren kann (Dreieck, Viereck, Fünfeck, Sechseck).
- Funktion mit Name
fahre_form(seiten, laenge) - Parameter: Anzahl der Seiten und Seitenlänge
- Berechne automatisch den richtigen Drehwinkel (360° ÷ Seiten)
- Nutze eine for-Schleife
- Teste mit: Dreieck (3 Seiten), Quadrat (4 Seiten), Sechseck (6 Seiten)
✅ Selbsttest: Das kann ich jetzt!
Hake ab, was du verstanden hast:
Punkte verstanden