Das Kind muss endlich Programmieren lernen – Teil 2: Der Rest

Im ersten Teil dieses Posts habe ich bereits das Ziel eingeführt: Es soll eine Plattform, bestehend aus einem Roboter und einem Board, entstehen mit der Kinder erste Schritte in Richtung Programmieren auf spielerische Art machen können. Dieser zweite Teil beschreibt nun den Aufbau und die Programmierung des Programmier-Boards.

Das Board besteht aus mehreren Komponenten. Zunächst sind das acht Slots mit je zwei Buchsen zum Aufstecken der Programmierbausteine. Außerdem gibt es eine zusätzliche Leiste mit vier Slots, die zur Programmierung einer Subroutine verwendet werden können. Auf dieser Leiste kann man eine Folge von bis zu vier Bausteinen kombinieren. Verwendet man dann im eigentlichen Programm einen Subroutinen-Baustein, dann werden anstelle dessen die Subroutinen-Befehle im Roboter angesteuert. Zusätzlich findet man auf dem Board eine LED, die beim Betrieb leuchtet, und einen Start-Knopf. In dem Board sorgt ein Ardunio Mega für die Verarbeitung der Befehle und die Kommunikation mit dem Roboter.

board

In die Slots steckt man zum Programmieren je einen Programmierbaustein. In der aktuellen Version sind vier Baustein-Varianten umgesetzt: Vorwärts, Linksdrehung, Rechtsdrehung, Subroutine aufrufen. Durch Einstecken eines Bausteins in einen Slot erstellt man einen Spannungsteiler. Damit lässt sich auf einem Arduino-GPIO-Eingang eine abfallende Spannung messen und damit der eingesteckte Baustein identifizieren.

spannungsteiler

Der Widerstand R2 ist auf dem Baustein verbaut und verbindet dort die beiden Pins. Die Widerstände R1 (je einer pro Slot auf dem Board) sind auf einer kleinen Platine untergebracht. Die Widerstände R1 haben je 10k-Ohm, für die Widerstände R2 haben zurzeit 1k-Ohm, 1.5k-Ohm, 2.2k-Ohm und 3.3k-Ohm für die vier Bausteintypen in Verwendung. Bei einem Baustein mit einem 1.5k-Ohm-Widerstand lässt sich am GPIO demnach eine Spannung von 5V * 10k-Ohm / (10k-Ohm + 1.5k-Ohm) = 0.87 * 5V messen. Der Input liefert also einen Wert von etwa 891 bei einem Wertebereich 0 … 1023. Die Abstände zwischen den Gruppen müssen natürlich groß genug sein, damit die analogen Eingänge des Arduinos sie auch unterscheiden können. Nach meinen Erfahrungen liegt die Ungenauigkeit der Schaltung und der Messung bei weniger als 0.01V, sodass hier keinerlei Probleme auftraten. Als GPIO-Anschlüsse werden analoge Eingänge des Arduinos verwendet.

widerstaende

Für die Stecker und Buchsen habe ich Modelleisenbau-Stecker verbaut. In jedem Baustein sind die zwei Stecker direkt über den Widerstand R2 verbunden. Die Stecker sind dann in zwei passende Löcher geklopft und sitzen damit ausreichend fest. Als Abdeckung wird noch ein Sperrholzplättchen darüber geklebt, das auf der Innenseite einen Hohlraum für den Widerstand gedremelt bekam. Auf der Boardseite werden jeweils zwei passende Buchsen verwendet, die mit der Widerstandsplatine verbunden sind.

baustein

Das Board kommuniziert mit dem Roboter über Wifi. Der Roboter dient dabei als Server, das Board muss also lediglich Anfragen verschicken. Allerdings hat ein Arduino Mega in der Grundversion keine Wifi-Karte verbaut. Mit dem ESP8266-Chip steht aber eine sehr günstige Lösung bereit. Beim Verbinden des Chips mit dem Arduino ist zu beachten, dass der Arduino mit 5V arbeitet, der ESP8266 aber nur mit 3.3V. Bei der Verbindung ist daher ein Logik-Level-Konverter zwischenzuschalten. Für die Versorgung des Chips mit 3.3V kommt ein AMS1117-Spannungsregler mit einer Ausgangsspannung von 3.3V zum Einsatz. Meine Recherchen haben zwar ergeben, dass dieser eigentlich über eine externe Spannungsquelle versorgt werden sollte; ich habe ihn aber direkt an den 5V-Ausgang des Arduinos angeschlossen und konnte bisher keine Probleme damit feststellen.

esp8266

Das entsprechende Schaltbild sieht so aus:

esp8266_schaltung

Hat man die Hardware korrekt verkabelt, dann kann man über den seriellen Monitor der Arduino IDE mit TX-Befehlen mit dem ESP8266 sprechen. Eleganter und im hier verwendeten Arduino-Sketch auch so umgesetzt geht es aber natürlich über die Verwendung einer Arduino-Bibliothek.

Nun fehlt nur noch die Ansteuerung des Tasters und der LED. Wie so etwas prinzipiell geht, habe ich bereits bei früheren Posts (zum Beispiel bei der Kinderkasse) beschrieben. In beiden Fällen verwendet man einen digitalen GPIO und je einen Pull-Up-Widerstand.

Und das wars. Das Raster, auf dem sich der Roboter bewegt, lässt sich natürlich noch viel ansprechender gestalten. Für die Akzeptanz hilfreich wären wohl Abbildungen von Piraten, Drachen und Dinosauriern. Das kann aber ja noch kommen. Zunächst kann das Programmieren starten. Die gesamte Programmierstation aus Roboter und Board kann man sich in Aktion in diesem YouTube-Video ansehen:

Den Arduino-Sketch für das Board findet man auf GitHub unter https://github.com/pjenke/makerguy.

Jetzt gilt es zu sehen, ob sich das eine oder andere Kind mit diesem Aufbau nicht vielleicht frühzeitig für das Programmieren begeistern lässt.

Dritte Hand, Vierte Hand, …

Jede(r) die/der (ich habe gerade wieder ein Girls’Day-Tag gehabt) mit Elektronik-Bauteilen experimentiert, kennt das Problem: In einer Hand den Lötdraht, in der anderen Hand den Lötkolben. Und wer hält jetzt die Kabel, Dioden, Widerstände, …? Der Baumarkt meines Vertrauens hat leider keine passende Befestigungsmöglichkeit im Sortiment. Da bleibt nur selber machen. Glücklicherweise gibt es unzählige DIY-Varianten einer “Dritten Hand” im Netz zu finden. Eine gute Basis, eine weitere Variante beizusteuern.

Am Anfang was das Brett. Das Brett dient als Fundament und sollte daher eine gewisse Massivität mitbringen. Ich habe auf der Rückseite Filzgleiter angebracht. Das erhöht die Stabilität zusätzlich.

dritte_hand01Diese Bodenplatte bekommt außerdem ein Loch, in das man den Halteschaft stecken kann. Der ist ein einfacher Holzstift.

dritte_hand02Auf dem Halteschaft muss man jetzt noch etwas anbringen, das die Bauteile später halten kann. Diese Halterung soll bei meiner Ausführung eine ausgediente Wäscheklammer sein. Theoretisch könnte ich die einfach auf die Haltestange schrauben und fertig.

dritte_hand03Leider weiss man vorher nicht, auf welcher Höhe genau gearbeitet werden soll. Daher habe ich den Halteschaft am oberen Ende eingebohrt und eine Gewindestange M5 eingelassen.

dritte_hand04Auf der Gewindestange kann ich nun mit zwei Unterlegscheiben und zwei Muttern die Wäscheklammer anbringen und in der Höhe verstellen. Damit sollte ausreichend Flexibilität gegeben sein. Wenn ich nun mehrere Bauteile miteinander verlöten möchte, kann jedes seiner Dimensionierung entsprechend mit seiner Klammer auf der richtigen Höhe gehalten werden.

dritte_hand05Eine halbe Stunde Arbeit und schon hat man nicht drei, nein, gleich vier Hände. Löwenherz, äh, … Löterherz, was willst du mehr?

Der Trecker ist weg!

Es ist ja einfach so. Alle wollen das Beste für ihr Kind und so kauft man (neben vielen anderen Sachen) immer weiter ökologisch einwandfreies, pädagogisch wertvolles Bio-Spielzeug. Zur Förderung der motorischen Fähigkeiten zum Beispiel ein Holzpuzzle. Keine zwei Tage ist es her, dass der freundliche Mann von DHL das Fahrzeugpuzzle vorbeigebracht hat, schon ist das Drama groß: Der Trecker ist weg! Und nun?

trecker01Ein neuer Trecker muss natürlich vor allem in die dafür vorgesehene Öffnung passen. Daher wird zunächst der Umriss “abgepaust” und auf eine Papierschablone übertragen.

trecker02Die Papierschablone hilft dann beim Einzeichnen der Umrisse auf etwas Sperrholz.

trecker03Glücklicherweise sind die alte Laubsäge und etwas feines Schmirgelpapier noch zur Hand. So kann man den neuen Trecker recht schnell erahnen.

trecker04Als viel größere Herausforderung als das Zurechtsägen, stellt sich aber die Bemalung heraus. Es ist gar nicht so einfach, eine lösemittelfreie, für Kinderspielzeug geeignete Farbe zu finden, die man auf Holz auftragen kann. Uns blieb nur, auf Farbe zu verzichten und uns mit den Konturen zufrieden zu geben. Die Konturen kann man mit dem Lötkolben einbrennen.

trecker05Jetzt fehlt noch der Anfasser, der aufgeklebt und mit einer kleinen Schraube von hinten fixiert wird.

trecker06Welch ein Glück, jetzt klappt es auch wieder mit dem Puzzle.

trecker07Zugegebenermaßen fügt sich der neue Trecker nicht ganz nahtlos ins Bild der anderen Fahrzeuge ein. Aber so ist das eben mit den Treckern, die sind zum Arbeiten da und nicht zum schön aussehen.

Oh Tannenbaum, …

Pünktlich zum Fest noch ein Kleinstprojekt. Schnell zu machen, praktisch und quasi für umsonst.

Die üblichen Weihnachtsbaumständer aus Metall haben uns nicht so richtig angesprochen und auf der Suche nach etwas anderem sind wir auf irgendeiner Seite auf ein Foto gestoßen, das wir als Inspiration genutzt haben. Dies ist dabei rausgekommen. Man benötigt eine Holzleiste, aus der man zwei macht. Irgendwo haben wir gelesen, dass die beiden Streben etwa ein Drittel der Baumhöhe lang sein sollen. Unsere sind gut 50 cm lang. In der Mitte wird jeweils eine Kärbe gesägt, sodass sich die beiden Hälfen ineinanderstecken lassen.

weihnachtsbaumstaender01Genau dort wird auch ein ordentliches Loch gebohrt, in das später des Stumpf des Baumes gesteckt wird. Die beiden Streben werden dann ineinandergesteckt und zur Sicherheit verschraubt.

weihnachtsbaumstaender02

Damit ist der Weihnachtsbaumständer im Prinzip auch schon fertig. Der Stumpf des Baumes muss soweit verschmälert werden, dass er in das Loch passt. Ist der Baum einigermaßen ausgerichtet, wird die Position mit ein paar Keilen fixiert.

weihnachtsbaumstaender03

Frohe Weihnachten.

Kransteuerung ist für Kinder

Ursprünglich als Weihnachtsgeschenk gedacht, habe ich eine Elektronik-Spielerei zusammengebaut. Die Idee war, eine kleine Winde zu entwickeln, die dann modular mit verschiedenen Baukastensystemen wie Lego Technik oder Matador verwendet werden kann. Auf den zweite Blick fiel auf, dass die Idee als Geschenk nicht so recht geeigent war, und so habe ich sie für mich gebaut.

Zunächst habe ich mir die Bauteile bei eBay zusammengekauft: einen Mini-Motor mit Getriebe, einen dreistufigen Schalter (Aus, Ein (Vor), Ein (Zurück)) und einen Batterieblock. Dazu habe ich keinen kleinen Bauplan gezeichnet und die Gehäusebauteile aus Sperrholz gesägt.

01_bauteile

Etwas fummelig war die Verkabelung von Motor und Schalter, weil die einfach unheimlich klein sind, mein Lötkolben schon bessere Tage gesehen hat und meine Kompetenz im Löten doch arg beschränkt ist. Allen Hürden zum Trotz waren am Ende alle Kabel an der richtigen Stelle.

02_elektronik

Glücklicherweise passte das alles dann auch noch in das Gehäuse, das ich vorher lackiert hatte.

03_zusammengebaut

Hier auch in bewegten Bildern.

Spätestens in dieser Stelle wurde einmal mehr klar, dass der Bau zwar viel Spass gemacht hat, die konkrete Anwendung aber weiterhin fehlt. Die urspüngliche Idee war eine Seilwinde, etwa für einen Kran, in einem beliebigen Baukastensystem. Leider hatte ich keinen passenden und so musste noch einmal eBay zur Hilfe kommen. Für ein paar Euro habe ich einen alten, unvollständigen, aber für diese Zwecke hervorragend geeigneten Märklin-Metallbaukasten gefunden. Damit konnte ich schließlich einen Testaufbau zusammenstellen.

04_kran

In meiner Elektronikkiste habe ich nun noch den DC-Brick von Tinkerforge zum Steuern von Gleichstrommotoren wiederentdeckt. Damit kann ich die Winde auch per Computer bedienen. Eine mobil zu steuernde Variante ist in Planung, das wird aber noch eine Weile dauern.

Hoch lebe Lifelong Kindergarden.