Fischertechnik Maker Kit Omniwheels (Teil 1)

Aus LinuxUser 06/2025

Fischertechnik Maker Kit Omniwheels (Teil 1)

© Martin Mohr

Omnidirektional

Mobile Transportroboter gehören zu jeder modernen Fertigungseinrichtung. Wie man einen solchen Helfer baut und programmiert, lässt sich im Kleinen mit dem Fischertechnik Maker Kit Omniwheels nachvollziehen.

Der Fischertechnik-Bausatz Maker Kit Omniwheels [1] besteht aus 201 Teilen und ist als Basis für eigene Projekte konzipiert. Dadurch lässt sich vor allem die Ansteuerungselektronik frei wählen. Die Schachtel enthält vier Encodermotoren, vier Räder in Form von sogenannten Omniwheels sowie alle weiteren nötigen Teile, um ein Fahrzeug aufzubauen.

Mit der von Fischertechnik bereitgestellten Bauanleitung [2] ist das Modell (Abbildung 1) schnell zusammengesetzt. Lediglich die Montage der Omniwheels gestaltet sich etwas knifflig. Dabei sollten Sie die Anleitung sehr aufmerksam abarbeiten. Die unverbindliche Preisempfehlung für das Modell liegt bei knapp 200 Euro, einige Händler offerieren es bereits für rund 130 Euro.

Abbildung 1: Das einsatzbereite Modell ohne Elektronik fungiert als Grundlage für allerlei eigene Projekte.

Abbildung 1: Das einsatzbereite Modell ohne Elektronik fungiert als Grundlage für allerlei eigene Projekte.

Die im Lieferumfang enthaltenen Omniwheels (Abbildung 2) wurden erstmals im Jahr 1919 von J. Grabowiecki patentiert. Sie ermöglichen es dem Roboter, sich in jede Richtung zu bewegen. Dazu sind auf dem Rad zusätzliche drehbare Komponenten verbaut. Darüber hinaus kann sich das Fahrzeug um verschiedene Achsen drehen. Sämtliche möglichen Bewegungsarten visualisiert anschaulich ein PDF-Dokument [3] von Fischertechnik.

Abbildung 2: Jedes Omniwheel aus dem Bausatz enthält drehbare Komponenten, die Bewegungen in jede Richtung gestatten.

Abbildung 2: Jedes Omniwheel aus dem Bausatz enthält drehbare Komponenten, die Bewegungen in jede Richtung gestatten.

Der Encodermotor ist ein handelsüblicher Elektromotor mit einem nachgeschalteten Getriebe. Auf der Antriebsachse des Motors befindet sich ein Impulsgeber, der bei jeder Umdrehung des Motors 63,9 Impulse liefert. Er arbeitet mit einem Open-Collector-Ausgang, wodurch sich das Ausgangssignal an unterschiedliche Betriebsspannungen anpassen lässt. Der Fischertechnik-Motor verträgt dabei maximal 9 V. Weitere technische Informationen finden Sie im Datenblatt [4].

Treibermodul

Die GPIO Pins des Raspberry Pi liefern nicht genug Strom, um den Motor in Bewegung zu versetzen. Es gibt aber noch einige weitere gute Gründe, ihn nicht direkt an einen GPIO-Pin anzuschließen. Unter anderem erzeugt der Motor im Betrieb Überspannungen. Für den sicheren Betrieb benötigen Sie daher ein zusätzliches Treibermodul. Im Folgenden kommt ein speziell für den Raspberry Pi entwickeltes Exemplar zum Einsatz (Abbildung 3), das Sie für rund 32 Euro im Buyzero-Shop [5] erhalten. Mit ihm können Sie vier Gleichstrom- oder zwei Schrittmotoren ansteuern. Das verwendete Treiber-IC TB6612-MOSFET kann 3 A Spitzenstrom und 1,2 A Dauerstrom liefern.

Zum Schutz der umliegenden Bauteile haben die IC-Entwickler Freilaufdioden integriert. Die Datenübertragung zum Modul erfolgt über die I2C-Schnittstelle, wobei Sie die Adresse frei wählen können. Auf diese Weise lassen sich bis zu 32 Module an einen Raspberry Pi anschließen. Die Ansteuerung der Treiber-ICs erfolgt über den PWM-Generator PCA9685 mit 16 Kanälen (Kasten “PWM”). Regelmäßige LinuxUser-Leser kennen diesen Baustein bereits aus anderen Projekten mit Servos oder LEDs.

Abbildung 3: Für das Motortreibermodul für den Raspberry Pi müssen Sie rund 32 Euro investieren.

Abbildung 3: Für das Motortreibermodul für den Raspberry Pi müssen Sie rund 32 Euro investieren.

PWM

PWM ist die Abkürzung für Pulsweitenmodulation. Das Verfahren erzeugt ein Rechtecksignal mit konstanter Frequenz. Es variiert dabei nur das Verhältnis zwischen Puls- und Pausenzeiten. Damit lässt sich die Leistung, die an einem Verbraucher ankommt, genau einstellen.

Ein wesentlicher Vorteil der Pulsweitenmodulation liegt im Wirkungsgrad: Eine Transistorendstufe erzeugt im gesperrten und vollständig leitenden Zustand kaum Verlustleistung. Folglich wird keine überschüssige Energie in Abwärme umgewandelt. Stellt man einen Arbeitspunkt ein, der einer bestimmten Leistung entspricht, würde man im ungünstigsten Fall fast die Maximalleistung als Verlustleistung produzieren. Alte Netzteile mit linearer Regelung arbeiten auf diese Weise. Moderne Schaltnetzteile verwenden ein PWM-ähnliches Verfahren und kommen so auf einen Wirkungsgrad über 90 Prozent.

Es werde Licht

Um ungewollte Kollisionen zu vermeiden, sollten autonome Fahrzeuge auf sich aufmerksam machen. Hierzu kommen im Folgenden mehrere WS2812 RGB-LED mit 8 mm Durchmesser zum Einsatz. Da sie hierzulande nicht zu bekommen sind, bleibt Ihnen nur eine Bestellung direkt in China [6]. Bei unserem Testkauf waren die LED bereits nach einer Woche auf dem Schreibtisch, um den Zoll hat sich der Versender gekümmert.

Das Pinout der Dioden sehen Sie auf Abbildung 4. Um die LED mit der Fischertechnik-Welt zu verbinden, bohren Sie in vier passende Bausteine jeweils ein 8 mm großes Loch. Schalten Sie zunächst vier der LEDs in Reihe, indem Sie den DOUT mit dem DIN der jeweils folgenden LED verbinden. Positionieren Sie dann die LED an den Ecken des Fahrzeugs. An den Raspberry Pi schließen Sie den DIN der ersten LED an, der DOUT der letzten LED bleibt offen.

Die 3,3 V aus dem Raspberry Pi versorgen die WS2812 mit Spannung. Das ist zwar nicht der Betriebsmodus, den das Datenblatt empfiehlt, es klappt aber in diesem Fall ohne Probleme. Des Weiteren verwenden die LEDs ein sehr spezielles Datenübertragungsverfahren, um das sich glücklicherweise später bei der Programmierung eine entsprechende Bibliothek [7] kümmert. Da die SPI-Schnittstelle Verwendung findet, können Sie die Programme zur Ansteuerung ohne Root-Rechte laufen lassen.

Abbildung 4: Pinout der WS2812 RGB-LED.

Abbildung 4: Pinout der WS2812 RGB-LED.

Kollisionsvermeidung

Damit das Fahrzeug nicht gegen Hindernisse fährt, statten Sie es mit einem Distanzmesser aus. Der entsprechende Sensor HC-SR04 verwendet Ultraschallsignale und kann Distanzen zwischen 2 cm und 400 cm mit einer Genauigkeit von 3 mm messen. Je nach Bestellmenge erstehen Sie den Sensor [8] bereits für unter 2 Euro.

Die Betriebsspannung des HC-SR04 beträgt 5 V. Zwar sollen einige Modelle auch mit 3,3 V zurechtkommen, da hier aber die Angaben der Anbieter oft etwas indifferent ausfallen, nutzt der Roboter sicherheitshalber 5 V. Um dabei den Raspberry Pi nicht zu beschädigen, müssen Sie die Ausgangsspannung des Sensors mit einem Spannungsteiler herabsetzen.

Um ein Fahrzeug auf Kurs zu halten, lassen Sie es im einfachsten Fall einer Linie folgen. Das wiederum gelingt leicht über ein Infrarotmodul. Das beim Roboter eingesetzte Modul [9] verfügt über einen TCRT5000-Sensor, der eigentlich Gegenstände an bestimmten Positionen erkennt. Der Preis des Moduls hängt stark von der Bestellmenge ab. Mit ein wenig Glück bekommen Sie ihn unter einem Euro. Die Reichweite des Sensors beträgt 1 mm bis 25 mm und ist über ein Poti einstellbar. Die Betriebsspannung rangiert im Bereich von 3,3 V bis 5 V.

Zusammenbauen

Um am Aufbau flexibel arbeiten zu können, spendieren Sie dem Treibermodul einige zusätzliche Steckverbinder. Über die finden wiederum die Impulsgeber der Motoren, ein Distanzsensor, ein Linienfolgesensor und die WS2812-LED Anschluss. Den dazugehörigen Schaltplan zeigt die Abbildung 5. Beachten Sie, dass die Motoren ein eigenes Batteriepack verlangen. Die Spannungsschwankungen, die diese im Betrieb erzeugen, würden den Raspberry Pi bei einer gemeinsamen Spannungsversorgung zum Absturz bringen. Die Energie für den Raspberry Pi liefert deshalb seine eigene Powerbank.

Bis auf einige Pullup-Widerstände für die Impulsgeber und den bereits angesprochenen Spannungsteiler sind die Verbindungen eins zu eins mit den GPIO-Pins des Raspberry Pis verdrahtet. Anstelle der physisch vorhandenen Pullup-Widerstände könnten Sie die GPIOs des Raspberry Pis entsprechend programmieren, um die internen Widerstände zu aktivieren. Das hat allerdings den Nachteil, dass Sie die Größe der Widerstände nicht frei wählen können. Achten Sie bei der Verdrahtung darauf, dass sich keine Leitungen in den Zahnrädern verfangen können.

Abbildung 5: Der Schaltplan zum Fahrzeug zeigt zusätzliche Steckverbinder, über die Sie die Impulsgeber der Motoren, einen Distanzsensor, einen Linienfolgesensor und die WS2812-LED anschließen.

Abbildung 5: Der Schaltplan zum Fahrzeug zeigt zusätzliche Steckverbinder, über die Sie die Impulsgeber der Motoren, einen Distanzsensor, einen Linienfolgesensor und die WS2812-LED anschließen.

Himbeere einrichten

Im nächsten Schritt bereiten Sie die SD-Karte für den Raspberry Pi vor. Für den Roboter genügt Raspberry Pi OS Lite in der 64-Bit-Fassung. Nutzen Sie zum Beschreiben der SD-Karte den Rpi-imager, in dessen Benutzeroberfläche Sie den SSH-Dienst (Abbildung 6) aktivieren. Nachdem Sie das Betriebssystem-Image auf die SD-Karte geschrieben haben, booten Sie diese in einem Raspberry Pi 4. Als Programmiersprache für das Projekt fiel die Wahl auf Python: Dank einer Vielzahl von Bibliotheken kommen Sie mit dieser Skriptsprache besonders schnell zu einem funktionierenden Roboter.

Abbildung 6: Denken Sie daran, SSH beim Schreiben des Images zu aktivieren.

Abbildung 6: Denken Sie daran, SSH beim Schreiben des Images zu aktivieren.

Bringen Sie jetzt den Raspberry Pi in Ihr Netzwerk und melden Sie sich via SSH auf der Konsole an. Die Kommandos aus Listing 1 bauen eine Experimentierumgebung auf. Damit die selbst geschriebenen Programme später Interrupts verwenden können, tauschen die letzten beiden Befehle die Bibliothek rpi-gpio gegen das Pendant rpi-lgpio aus. Wann immer Sie sich zukünftig erneut am Raspberry Pi anmelden, müssen Sie als Erstes das source-Kommando aus Zeile 8 aufrufen. Es aktiviert die passende Python- und somit die eingerichtete Entwicklungsumgebung.

Listing 1

Installationsschritte auf dem RasPi

### Raspberry Pi aktualisieren
$ sudo apt update
$ sudo apt upgrade
### nötige Pakete installieren
$ sudo apt-get install python3-dev
### Virtuelles Python-Environment
$ python -m venv omni
$ source ./omni/bin/activate
$ cd omni
### Bibliothek für das Treibermodul
$ pip install adafruit-circuitpython-motorkit
### IRQ-Verarbeitung ermöglichen
$ pip uninstall rpi-gpio
$ pip install rpi-lgpio

Damit der Raspberry Pi mit dem Treibermodul kommunizieren kann, müssen Sie die I2C-Schnittstelle aktivieren. Um die LED mit Daten zu versorgen, benötigen Sie zudem die SPI-Schnittstelle. Beide Schnittstellen knipsen Sie komfortabel mit dem Konfigurationswerkzeug raspi-config an. Starten Sie es dazu mit Superuser-Rechten via sudo raspi-config. Setzen Sie 3**Interfacing Options | I5**I2C auf Yes und anschließend den Punkt 3**Interfacing Options | I4**SPI ebenfalls auf Yes.

Um Energie zu sparen, senken Raspberry-Pi-Modelle ab der dritten Generation die CPU-Frequenz, was gleichzeitig die Frequenz des SPI-Taktgenerators verändert. In der Folge funktioniert die Datenübertragung zu den WS2812-LED nicht mehr einwandfrei. Daher müssen Sie den SPI-Generator auf eine feste Frequenz setzen, indem Sie in der Textdatei /boot/firmware/config.txt am Ende die Zeilen core_freq=500 und core_freq_min=500 hinzufügen.

Testfahrt

Das bisherige Setup testet das Programm aus Listing 2. Es initialisiert die Bibliothek für das Treibermodul und lässt den Motor M1 für eine Sekunde laufen. Wenn Sie das Fahrzeug für den Test auf ein Podest stellen, kann es sich im Fehlerfall nicht selbstständig machen. Speichern Sie Listing 2 in der Datei motor_test.py und starten Sie es via python ./motor_test.py.

Listing 2

Installation (motor_test.py)

import time
import board
from adafruit_motorkit import MotorKit
kit = MotorKit(i2c=board.I2C())
kit.motor1.throttle = 1.0
time.sleep(2)
kit.motor1.throttle = 0

Fazit

Das Fischertechnik Maker Kit Omniwheels ist ein tolles Modell, mit dem Sie Ihr eigenes autonomes Fahrzeug bauen. Um es zum Leben zu erwecken, genügt ein Raspberry Pi mit ein wenig Zusatzhardware. Im zweiten Teil dieser Reihe gehen wir genauer auf die Programmierung der einzelnen Komponenten ein und zeigen an einigen Beispielen, was das Fahrzeug alles kann. (tsc)

Der Autor

Martin Mohr hat die komplette Entwicklung der modernen Computertechnik live miterlebt. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2025 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben