Seit einiger Zeit betreue ich die Informatik-AG in unserer örtlichen Grundschule - dort arbeiten wir mit dem Calliope Mini. Als Programmier-Umgebung haben wir bisher OpenRobertas NEPO verwendet, steigen aber für die fortgeschrittenen Schüler immer mehr auf MakeCode um, da es dafür einfach mehr Möglichkeiten zur Integration externer Bausteine (Sensoren, Aktoren) gibt.
MotivationWir haben schon recht früh begonnen, externe Bauelemente mit in unsere AG-Projekte zu integrieren (z.B. LED-Ampeln, Feuchtigkeits-Messer für Blumen, Servos und Fotowiderstände für künstliche Sonnenblumen etc.). Die selbstgebastelten Lösungen mit Holz etc. waren aber nicht sonderlich haltbar :-) Wir haben daher in der AG die Erweiterung "Calli:bot" angeschafft - welche letztlich auf einer angepassten Adapter-Platine für den BBC Micro:bit basiert. Aber auch damit werden wir recht schnell an Grenzen stoßen, insbesondere an weiterführenden Schulen.
In meiner Retro-Computing-Sammlung hatte ich noch einige Fischertechnik Computing Baukästen aus den 80er Jahren - und sofort war meine Begeisterung geweckt, diese Komponenten in die Gegenwart zu integrieren. Bei meinen Recherchen bin ich über verschiedene Projekte gestoßen (z.B. die tollen Erweiterungen auf Thingiverse zur Integration von günstigen "China-Teilen" in Fischertechnik, welche zum Teil auch in der FT-Community von sehr netten Leuten beschrieben werden). Dort gibt es auch so spannende Projekte wie den TX-PI und den ftduino. Entscheidend war aber der Kontakt zu Michael, der bereits erste Platinen zur Anbindung von Fischertechnik an den Calliope entwickelt hatte - mit der genialen Idee, die FT-Stecker direkt in die Platine stecken zu können.
Das neue BaordIch habe diese Idee weitergesponnen und verschiedene Ideen kombiniert. Herausgekommen ist das folgende Board auf einer 10x10cm großen Platine. Da die ICs eh nur in SMD zu bekommen sind und ich das Format kostengünstig halten wollte, habe ich gleich alles in SMD ausgelegt (allerdings schön groß im Format 1206 - das ist wirklich schneller zu löten als klassische Bauelemente - echt!).
Funktionen
Das Board hat folgende Funktionen:
- Es gibt einen Eingang (Hohlbuchse) als Spannungsversorgung für bei Fischertechnik üblichen Spannungen von z.B. 9V (für Motoren/Lampen). Daraus werden mittels Spannungsreglern noch 5V und 3, 3V für weitere Sensoren/Aktoren und die Versorgung des Calliope mini abgeleitet (Anzeige durch 2 LEDs).
- Die Herausführung aller relevanten analogen und digitalen Ein- und Ausgänge des Calliope erfolgt auf FT-kompatible Buchsen. Es stehen auch die Anschlüsse C4-C12 zur Verfügung, welche aber nur nutzbar sind, wenn man das Display abschaltet (dazu gibt es passende Funktionen in NEPO und MakeCode). Auch funktionieren an diesen Pins zwar die Pullup-Widerstände "Lege Pin x als Schalter fest" und die Auswertungen "Pin x gedrückt/losgelassen", nicht jedoch die eventgesteuerte Ausführung "wenn Pin x gedrückt" etc.
- Für die analogen Eingänge P1, P2, C16, C17 (sofern sie als solche konfiguriert sind) kann per Jumper eingestellt werden, ob Spannungen bis 3, 3 oder bis 5V erfasst werden sollen (Spannungsteiler). Natürlich muss das Signal dann auch am richtigen Pin (es gibt je Kontakt 2!) angeschlossen werden. Hier ist Vorsicht bei hohen Spannungen geboten, der versehentliche kurze Anschluss von 9V an diesen Pins hat den Calliope mini in den IC-Himmel geschickt...
- Möchte man z.B. die (Fischertechnik-) Fotowiderstände als Sensoren betreiben, benötigt man einen Spannungsteiler mit Pullup für den Widerstand am analogen Eingang. Dieser kann auf der Platine ebenfalls über Jumper für P1 und P2 geschaltet werden. Das erspart externe Beschaltungen.
- Es gibt Anschlüsse für zwei Servos (C16, C17) - diese können direkt ohne weitere Extension über NEPO oder MakeCode gesteuert werden.
- Das Board hat Anschluss für 8 weitere Servos oder anderweitige Nutzung wie LEDs mit Spannungsversorgung mittels PCA9685. Die Basis-Adresse (0x40) kann über zwei Lötbrücken verändert werden. Der PCA9685 steuert auch die beiden Motor-Treiber.
- Dazu gibt es zwei Motor-Treiber / H-Brücken DRV8833 für den Anschluss von 4 Motoren, Lampen, Magneten usw. oder zwei Stepper-Motoren. Die Drehrichtung / Polung wird jeweils durch rote/grüne LEDs angezeigt.
- Dann gibt es noch einen I2C-Hub mit zwei weitere I2C Grove-Anschlüsse in Ergänzung zum Anschluss A0 auf dem Calliope selber.
Die Schaltpläne, Gerberfiles und Links zu den Erweiterungen stehen unten.
Verbindung zum Calliope
An den Calliope müssen unter (!) die Platine passende Buchsenleisten für die Motor-Leiste und den Expension-Port gelötet werden (Teile siehe BOM). Dann wird der Calliope einfach auf die Platine gesteckt (dort befinden sich passende Stiftleisten). Bitte immer genau prüfen, dass alles passt und nichts schief gesteckt wird!
Adapter MotorausgängeIch habe mich entschieden, die Ausgänge der Motortreiber auf normale Schraubanschlüsse zu legen. Wer aber hier direkt die FT-Stecker anschließen möchte, kann das Adapterboard verwenden (nur der LINKE Tel der folgenden Platine, der Nutzen ist nocht getrennt worden):
Wenn man die relevanten Pins abschneidet, passt der Adapter direkt in die Schraubklemmen. Alternativ kann mal auch die senkrechten Stiftleisten des Adapter beschtücken und die Apdaterplatine anstelle der Schraubleisten auf dem Board auflöten.
Auch dazu findet man das Gerber-File im Anhang.
BefestigungDamit man die Platine auf einem FT-Board anbringen kann, habe ich mir auf Basis eines bestehenden Designs (siehe unten) einen 15mm Baustein mit Schraubloch erstellt:
Die STL-Datei dazu liegt auch im Anhang.
In AktionAnbei noch ein Bild der Integration in die Computing-Lösung "Turm von Hanoi":
Hier gibts auch ein Video im Betrieb,
ReferenzenDie ursprüngliche Idee ist von Michael Klein mit seinem Fischertechnik-Board für Calliope (Link). Von ihm stammt auch die passende Erweiterung für MakeCode (Link).
Der Sockel für die Montage basiert auf einem Design von Jens (Link),
LizenzCC-BY-NC-SA
Comments