Für Interessierte

Wenn man mit den Sachen spielt, ergeben sich natürlich eine Menge neuer Ideen, man probiert aus und erweitert. Einige Sachen sollen hier vorgestellt werden.

Zum einen gibt es die Möglichkeit, andere Hardware anzuschließen. Ein kleines Männchen, das man selbst gestalten kann und das schon Sensoren eingebaut hat, war die erste Idee.

In Sachen Software experimentieren wir auch immer mit anderen Ansätzen. Die erste Idee drehte sich um Zustände, angelehnt an Automatengraphen. Auch andere Entwicklungswerkzeuge sind ein Thema, denn Processing erlaubt zwar die parallele Entwicklung für PC und Android, bereitet dabei aber auch Probleme. JavaScript ist evtl. eine Lösung.

All diese Ansätze laden dazu ein, sie zu verändern. Deswegen findet man auf den Bastler- und Programmiererseiten die Details.


Hardware-Alternativen

Gezeigt wird hier alternative Hardware, die mit den vorgestellten Programmen funktioniert. Dies ist eine Einladung zum Nachbau und vielleicht auch Grundlage eigener Ideen.

ArduMännel

Arbeitet man mit Arduinos, so stellt der Spannungsteiler auch in oberen Klassen immer noch die größte Hürde beim Messen dar. Solche Sachen sind schwer zu verstehen. Ohne Physik gehts eben nicht. Es wäre also schön, etwas zu haben, wo Aktoren und Sensoren samt Spannungsteilern schon verbaut sind. So entstand die Idee, aus Holz ein kleines Männel1 zu bauen. Dieses enthält vier LEDs, zwei LDRs, einen Lautsprecher und einen NTC. Außerdem ist noch ein Bluetooth-Adapter verbaut.

Dieses kann man an jeden Computer anschließen und sofort loslegen. Wer will, kann das Männel natürlich auch verzieren, also aus Pappe oder Papier eine Front bauen.

Das Männel kann man klassisch über die Arduino-Software programmieren. Aber auch SimpleProg und StateProg sind dafür ausgelegt. Hier muss man einfach in den Einstellungen umschalten. Programmiert man mit der Arduino-Software, muss man die Anschlüsse kennen. Diese sind unten aufgelistet. In SimpleProg und StateProg ist bereits alles vorbereitet.

Eingang Sensor
A0 Licht links
A1 Licht rechts
A2 NTC (Temperatur)

Die Ausgänge sind wieder PWM-Signale, damit man auch Helligkeiten einstellen kann. D0 und D1 sind für die serielle Kommunikation mit dem Computer, D11 und D12 für die Kommunikation über Bluetooth reserviert.

Eingang Ausgang
D3 Auge links außen
D5 Auge links innen
D6 Auge rechts innen
D9 Auge rechts außen
D10 Lautsprecher

Was kann man damit machen?

Nun Töne ausgeben, Augen blinken lassen, nach links bzw. rechts gucken lassen, Schlafen (Augen aus) bei Dunkelheit usw. Reizvoll erscheint, mehrere Männeln zusammen “singen” zu lassen. Das haben wir aber noch nicht probiert.

Im LBZ sind momentan vier Männel vorrätig. Das oben gezeigte Design stammt von meiner Schwester Dagmar Flemming.


Arduino pur

Natürlich kann man auch einen blanken Arduino Uno nehmen. Aber lohnt eine Anpassung des Programms SimpleProg dafür? Nein, denn SimpleProg gibt Befehle vor, deren konkrete technische Umsetzung (was wird wie über welches Pin ausgegeben?) interessiert nicht. Wohl aber kam beim komplexeren StateProg sehr schnell der Wunsch auf, den Arduino direkt zu verwenden. Dort ist er auf dem Init-Bildschirm auch auswählbar.

Allerdings gelten ein paar Einschränkungen. Der Arduino braucht wieder die Firmware, somit sind D0 und D1 für die serielle Kommunikation reserviert. Auch D11 und D12 fallen weg, denn natürlich kann man auf den Arduino einen Bluetooth-Adapter stecken (StateProg ist auf dem Tablet auch viel schöner zu bedienen).


Software-Alternativen

Da die Software mit der Arduino-Firmware über ein definiertes Protokoll kommuniziert, kann man natürlich auch andere Software auf PC- oder Tablet-Seite verwenden. Es gibt verschiedene Gründe, dies zu tun.

Zum ersten ist da vielleicht die Unzufriedenheit mit dem Programm oder der Wunsch, Werkzeuge für ältere Schüler anzubieten. Ein Versuch eines zustandsbasierten Programmes ist StateProg.

Weiterhin muss man auch in die Zukunft schauen. Tablets werden billiger und Windows raubt einen manchmal den letzten Nerv (besonders in Verbindung mit dem Arduino). Es ist also an der Zeit, andere Entwicklungsumgebungen zu testen. Momentan erscheint JavaScript vielversprechend, Versuche sollen hier vorgestellt werden.

StateProg

StateProg ist ein zustandsbasierter Ansatz und wie SimpleProg in Processing geschrieben. Das meiste (Verbindungsaufbau, Installation etc.) für SimpleProg Gesagte gilt auch für dieses Programm. Die Unterschiede beziehen sich naturgemäß auf die Programmierung. Dazu wollen wir hier einige Worte verlieren.

Neben Box und Männel wird auch der blanke UNO unterstützt.

Um einen Überblick über die Möglichkeiten von StateProg zu bekommen, lohnt ein Blick auf den zentralen Bildschirm, der nach der üblichen Verbindungsaufnahme (USB, Bluetooth) erscheint.

Links ist das Menü, das verkleinerbar ist, um mehr Platz für den Zustandsgraphen zu haben. Ein völliges Ausblenden erschien nicht sinnvoll.

Der oberste Block betrifft die Zustände.

Der nächste Block behandelt die Ausführung.

Der letzte Block enthält noch ein paar allgemeine Sachen.

Der hier noch aufgeführte Roboter war ein Versuch, ein Fahrgestell mit Arduino und Minibreadboard (auf welchem ein 293 sitzt) zu bauen. Momentaner Stand ist, dass Aufwand und Nutzen in keinem guten Verhältnis stehen.

Ganz unten auf dem zentralen Bildschirm stehen noch die Sensorwerte. Da zu diesem Zeitpunkt gerade das Männel eingestellt war, sind nur drei zu sehen.

Programmierung

Zur Illustration der Programmiertechnik sollen wieder die beiden Beispiele Blinken und Helligkeitssschalter herhalten. Ein wenig Vorwissen in Bezug auf Zustandsgraphen schadet nicht.

Das Blinkprogramm

Das Blinkprogramm besteht wieder aus vier Befehlen: Lampe an - Warten - Lampe aus - Warten. Nun sind diese vier Befehle an Zustände gebunden. Ein Zustandswechsel kann immer oder bei einem bestimmten Sensorwert (wieder Vergleich mit < oder >) erfolgen. Folglich braucht man vier Zustände, deren Zustandswechsel immer vollzogen werden.

Zuerst erzeugt man sich vier Zustände (mit Neu, S0 bis S3) und verteilt diese. Anschließend wählt man S0 und bearbeitet diesen mit Edit.

Es gibt nur einen Wechsel. Man trägt (analog zu SimpleProg durch Anklicken) ein, dass Immer die Lampe 1 angeschaltet wird. Als neuer Zustand wird S1 gewählt.

Analog trägt man bei den anderen Zuständen die Aktionen (“Warte kurz” und “Lampe 1 = 0” ) ein. Der Zustand S3 verzweigt dann wieder auf S0. Ist alles ok, bekommt man folgendes Bild.

Nun kann man per Einzelschritt oder Lauf durch das Programm schreiten oder selbiges an den Arduino schicken.

Der Helligkeitsschalter

Soll bei Dunkelheit eine Lampe angehen, dann braucht man nur zwei Zustände: S0 mit Lampe aus (bzw. “Es ist hell”) und S1 mit Lampe an (bzw. “Es ist dunkel”). Es gilt wieder, dass als Mitte zwischen hell und dunkel (willkürlich) die 50 gewählt wird. Bei Dunkelheit werden die Werte größer.

Es ergibt sich somit dieses kleine Programm. Wie man sieht, wurde in eine ordentlcihe Linienführung der Kanten des Graphen noch keine Arbeit investiert.

Zurück


  1. Männel: sächsisch für Männchen, auch Männel, Martin - legendärer Torhüter des FC Erzgebirge Aue