Neben dem von uns gewählten Controller – einem Arduino Uno mit Adafruit Motor Shield – gibt es auch andere Möglichkeiten, unsere fischertechnik-Roboter mit verbreiteten Mikrocontrollern zu steuern. Drei Varianten stellen wir auf dieser Seite vor: die Ansteuerung mit einem ftDuino von Till Harbaum, einem Arduino Uno mit Uno-F5 Shield sowie einem micro:bit mit IO F5-Board von didacta advance. Sketche und Programme für einzelne Modelle werden wir hier nach und nach ergänzen.

ftDuino
Eigenschaften und technische Daten
Der ftDuino basiert auf dem Layout des Arduino Leonardo und verfügt über kurzschlussfeste und verpolungssichere Eingänge sowie Motortreiber. Das Layout entspricht dem des TX(T) Controllers von fischertechnik: Acht Eingänge links, vier PWM-Motorausgänge sowie vier schnelle Zählereingänge rechts. Auch die Maße des geschlossenen, transparenten Gehäuses entsprechen in Höhe und Breite dem TX(T) Controller, allerdings ist es mit nur 13 mm deutlich flacher. Die Motorausgänge sind bis 600 mA belastbar (bis 1,2 A in der Spitze). Servo-Motoren können über den I²C-Bus angebunden werden.

Vorteile
Alle Ein- und Ausgänge sind über Bundhülsen zugänglich, in die die fischertechnik-Flachstecker passen. Es gibt ausreichend viele GND-Anschlüsse, man benötigt dafür also keine em-Verteilerplatten (31327/31328) oder zusätzlich angelötete Pins. Der I²C-Anschluss arbeitet mit 5V-Logik. Die Mini-USB-Buchse erfordert keinen (heute unüblichen) Typ-B-Stecker (wie der Arduino), und die Hohlstecker-Buchse für den 9V-Anschluss ist mit den aktuellen fischertechnik-Netzteilen kompatibel. Alle Anschlüsse sind kurzschlussfest und verpolungssicher. Der Mikrocontroller kommt in einem Gehäuse mit seitlichen fischertechnik-Nuten und ist daher gut verbaubar. Ein Filter sorgt für eine Entprellung der Eingänge der vier schnellen Zähler; es werden Ereignisse ab einer Millisekunde Dauer registriert.
Konstruktion
Der ftDuino hat an zwei Seiten je sechs fischertechnik-kompatible Nuten, mit denen er verbaut werden kann; außerdem können auf der Oberseite vier Zapfen eingeschoben werden (um 1/2 Rastereinheit gegenüber den seitlichen Nuten verschoben). Alternativ kann man auch – wie im Buch für das Sunfounder-Arduino-Gehäuse beschrieben (S. 16) – auf der Unterseite zwei Bauplatten 30×45 mit doppelseitigem Klebeband befestigen, um einen Anbau an der Unterseite zu ermöglichen. Schließlich hat Till Harbaum auch Anbau-Ecken in 3D entworfen, die man selbst ausdrucken oder im Shop von Peter Habermehl für eine geringe Gebühr beziehen kann.
Da das Gehäuse des ftDuino rund 2,5 cm breiter und knapp 0,5 cm länger ist als das des Arduino, müssen wir ihn im Buggy und im Flitzer jeweils rund 1 cm erhöht montieren, damit er nicht mit den Rädern in Berührung kommt. Die geringere Bauhöhe gleicht das jedoch teilweise wieder aus. Den Anschluss des ftDuino an den Greifer zeigt die folgende Abbildung.

Programmierung
Die wesentlichen Anpassungen in der Programmierung entstehen durch die abweichende Auflösung des A/D-Wandlers bei der Spannungs- bzw. Widerstandsmessung (0…9000 beim ftDuino im Unterschied zu 0…1023 beim Arduino) und den kleineren Bereich der PWM-Steuerung der Motoren (0…63 beim ftDuino und 0…255 beim Adafruit Motor Shield).
Wir haben einige der Sketche aus dem Buch an den ftDuino adaptiert:
Sketche Greifer (ftDuino).zip
Uno-F5 Shield
Eigenschaften und technische Daten
Das Uno-F5 Shield wird – wie das Adafruit Motor Shield – direkt auf die Pins des Arduino Uno gesteckt und benötigt eine Stromversorgung von 6-9 V über Schraubanschlüsse oder Hohlstecker (kompatibel mit dem fischertechnik-Netzgerät). Der Arduino wird automatisch mitversorgt; ein Jumper (wie beim Adafruit Shield) ist nicht erforderlich. Wie die fischertechnik-Controller bietet das Uno-F5 Shield vier Motor- (resp. acht Lampen-) Ausgänge, die mit je 600 mA belastet werden können. Außerdem verfügt es über zwei Servo-Anschlüsse, die die PWM-Pins D3 und D5 belegen. Es fasst jeweils zwei digitale Arduino-Pins zu einem Motor-Ausgang zusammen, daher bleiben nur die sechs analogen sowie zwei digitale Pins (D2 und D7) für Sensoren übrig, an die maximal 8 V angelegt werden dürfen. Der I²C-Bus ist über Schraubklemmen zugänglich, eine Nutzung von SPI ist nicht vorgesehen. Mit Pin D2 ist auch nur einer der beiden Interrupt-Pins nutzbar.

Vorteile
(Fast) alle Pins sind über Steckbuchsen erreichbar, in die die fischertechnik-Flachstecker passen; außerdem gibt es 16 GND-Anschlüsse. Das vereinfacht die Verkabelung erheblich und erspart auch hier die Verwendung der historischen em-Verteilerplatten (31327/31328).
Konstruktion
Das Uno-F5 Shield wird anstelle des Adafruit Motor Shield auf den Arduino gesteckt – ansonsten sind an den meisten unserer Roboter-Modelle keine Anpassungen erforderlich. Die beim Adafruit Shield seitlich in die Ports eingesteckten Breakout-Boards (das Display TM1637 und der Ultraschallsensor HC-SR04) müssen mit Jumper-Kabeln und einem fischertechnik-Flachstecker mit dem Uno-F5 Shield verbunden und auf andere Weise am Modell befestigt werden.

Sensoren und Aktoren
Das Uno-F5 Shield unterstützt die SPI-Anschlüsse nicht; daher ist eine Nutzung der Pixy bzw. Pixy2 nur über das (deutlich langsamere) I²C-Protokoll möglich (betrifft Modellvarianten von Buggy, Flitzer und Delta). Da die Ausgangsports keine Schrittmotorsteuerung unterstützen, ist eine Ansteuerung des Plotters mit dem Uno-F5 Shield nicht möglich.
Programmierung
Das Uno-F5 Shield benötigt keine speziellen Treiber: An die Ausgangs-Pins werden lediglich die gewünschten PWM-Werte angelegt. Kollisionen durch die Mehrfachbelegung der Arduino-Pins (insbesondere durch die Verwendung als Motor-Ausgänge) müssen bei der Programmierung beachtet und ausgeschlossen werden, daher müssen wir bei der Implementierung teilweise andere Ports verwenden.
Wir haben einige der Sketche aus dem Buch an das Uno-F5 Shield adaptiert:
Sketche Buggy (Uno-F5).zip


micro:bit IO F5-Board
Hintergrund
Der BBC micro:bit ist ein von der BBC zur Unterstützung der MINT-Bildung (speziell der Informationstechnik) in britischen Schulen im Jahr 2015 vorgestellter Einplatinen-Mikrocontroller. (Ein ähnliches Projekt hatte die BBC Anfang der 1980er Jahre mit dem BBC Micro, einem von Acorn entwickelten Homecomputer initiiert – in dessen Verlauf 1983 der „fischertechnik-Buggy“, an den der Einstiegs-Roboter in unserem Buch anknüpft, an britischen Schulen Einzug hielt.) Zum micro:bit gibt es von didacta advance ein mit fischertechnik-Flachsteckern kompatibles IO-Board, in das der micro:bit eingesteckt wird.
Eigenschaften und technische Daten
Der micro:bit wird über das IO F5-Board mit 6-9 V versorgt. Die Stromversorgung kann über eine Buchse (je nach Board-Variante mit 3,45/1,3-mm- oder 5,5/2,1-mm-Hohlstecker, passend zu den neuen/alten fischertechnik-Netzteilen) bzw. über Schraubklemmen (Batteriehalter) verbunden werden. Über zwei mit je 500 mA belastbare 5 V- bzw. 3,3 V-Ausgänge können externe Sensoren oder Aktoren via Schraubklemme versorgt werden; auch die I²C-Takt- und Signalausgänge SCL/SDA sind über Schraubklemmen zugänglich. Daneben bietet das IO F5-Board sechs Universaleingänge, die mit maximal 9V belegt werden dürfen, und vier PWM-Motorausgänge, die mit bis zu 600 mA belastet werden können.
Auch die Sensoren und Aktoren, die der micro:bit „an Bord“ hat, können direkt genutzt werden: zwei Mikrotaster, ein Beschleunigungssensor, ein Kompass-Sensor, ein Temperatursensor, ein Bluetooth-Modul (BLE) und 25 LEDs.

Vorteile
Mehrere interessante Sensoren stehen direkt auf dem Board zur Verfügung (Kompass-, Temperatur- und Beschleunigungssensor) und belegen bei Nutzung keinen der (knappen) Universal-Ports. Alle Ein- und Ausgänge sind mit fischertechnik-Flachsteckern nutzbar; allein der I²C-Bus ist nur über Schraubklemmen zugänglich. Außerdem gibt es genügend GND-Anschlüsse. Beides vereinfacht die Verkabelung und Nutzung des Boards. Mit einem 32-bit-ARM-Prozessor ist der micro:bit deutlich schneller als Arduino und ftDuino; RAM und Flash-Speicher sind achtmal so groß. Mit 9,5 x 7,8 ist das Board inklusive micro:bit deutlich größer als ein Arduino, aber schlanker als ein ftDuino.
Konstruktion
Für das IO F5-Board gibt es kein Gehäuse; es muss daher über vier (mit 6 cm im fischertechnik-Maß angebrachten) Bohrungen z. B. über BS 30 mit Loch mit dem Modell verschraubt werden. Auch hier müssen die beim Adafruit Shield seitlich in die Ports eingesteckten Breakout-Boards (das Display TM1637 und der Ultraschallsensor HC-SR04) mit Jumper-Kabeln und einem fischertechnik-Flachstecker an das Board angeschlossen und auf andere Weise am Modell befestigt werden.
Sensoren und Aktoren
Der micro:bit und das IO F5-Board unterstützen das SPI-Protokoll nicht; daher ist auch bei dieser Variante eine Nutzung der Pixy bzw. Pixy2 nur über das deutlich langsamere I²C-Protokoll möglich. Die Motor-Anschlüsse unterstützen ebenfalls keine Schrittmotorsteuerung, daher ist eine Ansteuerung des Plotters nicht möglich. Durch die integrierte Bluetooth-Schnittstelle (BLE) können Modelle jedoch ohne zusätzliche Hardware von einem Smartphone gesteuert werden. Schwerer wiegt, dass es keinen Servo-Anschluss gibt; Servos müssen daher mit entsprechenden PWM-Signalen von einem der (5V-) Ports angesteuert werden.