Modul 1: SOS Signalanlage

Im folgenden Modul wirst du lernen, wie du den Octopus am PC anschließt und ein erstes Programm schreibst. Weiter wirst du lernen, wie du die LEDs am Octopus nutzt und sie zum Leuchten bringst.

Lernpfad

Das Problem

An einem Bahnübergang ist keine Signalanlage angebracht. Die Autofahrer müssen sich also sehr genau umsehen, ob ein Zug kommt. Da Züge sehr schnell sind, kann es bei einer Unaufmerksamkeit aber schnell zu Unfällen kommen, wie Video 1 auf der rechten Seite neben dem Text zeigt. 

Wir wollen daher im Folgenden den IoT-Octopus nutzen, um eine solche Signalanlage zu bauen. Doch wie muss so eine Signalanlage aussehen? 

Wie können wir das Problem lösen?

Die Signalanlage sollte über Lichtsignale verfügen, die den Autofahrern unmissverständlich zeigen, dass gleich ein Zug am Bahnübergang vorbeikommen wird. Der Octopus verfügt über zwei LEDs, die in verschiedenen Farben aufleuchten können (vgl. Abbildung 1). 

Abb. 1 Die RGB-LEDs des Octopus (gelb umkreist)
Den Octopus am PC anschließen und ArduBlock einrichten

In einem nächsten Schritt werden wir uns anschauen, wie man den Octopus am PC anschließt und ein Programm schreibt. Der Octopus besitzt eine Micro-USB Schnittstelle, mit welcher er am PC angeschlossen werden kann (vgl. Abb. 2). Du schließt den Octopus dabei genau so am PC an, wie du dein Smartphone mit dem Ladekabel verbindest. Achte beim Einstecken besonders darauf, dass du den Micro-USB Anschluss richtig herum hältst. Sollte der Octopus am PC angeschlossen sein (vgl. Abb. 3), können wir die Entwicklungsumgebung einrichten.

Abb. 2 Die USB Schnittstelle des Ocotpus befindet sich auf seiner linken Seite
Abb. 3 So sieht es aus, wenn der Octopus am PC angeschlossen ist

Ardublock einrichten

Abb. 4 So sieht der ArduBlock aus, wenn du ihn gestartet hast

Wie du die Programmierumgebung Ardublock einrichtest und startest, erklärt das Video 2 auf der rechten Seite neben dem Text. Um den Octopus verwenden zu können, musst du in der Entwicklungsumgebung darauf achten, den richtigen Port einzustellen. Er zeigt dem Programm, über welchen Anschluss der Octopus mit dem PC verbunden ist.

Solltest du den ArduBlock, wie in Abbildung 4 dargestellt, vor dir sehen, können wir mit der Programmierung des Octopus und der Umsetzung unserer Signalanlage beginnen.

Die Signalanlage umsetzen

Ein erstes Programm - Die LED leuchten lassen

Abb. 5 So sollte das Programm aussehen, mit welchem wir die linke LED in roter Farbe zum Aufleuchten bringen

Um die linke LED am Octopus zum Leuchten zu bringen, wählen wir das Bauteil "Neopixel" aus der Schublade "Anzeigen/Aktoren" am linken Rand des Ardublocks. Wir ziehen das Modul mit gedrückter linker Maustaste in die Schleife des gelben "IoT2"-Hauptbauteils in der Mitte der Arbeitsfläche. Alle Elemente in der Schleife werden immer wieder ausgeführt, während die Elemente im "Setup" nur einmal beim Start des Octopus ausgeführt werden.

In Abbildung 5 siehst du das fertige Programm, mit dem wir die LED rot zum Aufleuchten bringen. Du kannst auch die Farbe ändern, indem du auf den kleinen Pfeil am roten Bauteil neben dem "Farbe"-Feld klickst. Weiter kannst du die Position der LED auf die gleiche Weise ändern, indem du auf das rote Bauteil neben dem "Ort"-Feld klickst.

 

Die LED blinken lassen

Abb. 6 Um die LED blinken zu lassen, müssen wir auch das Ausschalten der LED anfordern

Als nächstes wollen wir die LED blinken lassen. Hierfür müssen wir aktiv das Ausschalten der LED anfordern, da die LED sonst einfach immer durchbrennt. Um dies zu erreichen setzen wir die Farbe auf "Aus". Weiter müssen wir angeben, wie lange die LED an beziehungsweise aus bleibt. Dafür benötigen wir das Bauteil "Warte Millisekunden", welches wir in der Schublade "Kontrollstrukturen" finden. In Abbildung 6 siehst du ein Beispiel für ein fertiges Programm. Hier ist die LED abwechselnd eine Sekunde an und danach eine Sekunde aus.

Linke und rechte LED blinken lassen

Abb. 7 So sieht das fertige Programm für die Signalanlage aus

Um die LEDs nun in Form der Signalanlage leuchten zu lassen, verbinden wir die linke und die rechte LED, indem wir sie nacheinander an- und ausschalten. Weiter müssen wir darauf achten, dass wir auch hier angeben, wie lange unsere LEDs an beziehungsweise aus sein sollen, indem wir das "Warte Millisekunden"-Bauteil verwenden.

In Abbildung 7 siehst du, wie das fertige Programm aussehen soll.

Was können wir noch tun? (optional)

Zählen mit dem Octopus

Manchmal kann es sein, dass man Programmabschnitte wiederholen möchte. Hierfür bieten sich Schleifen an. Der Ardublock enthält zwei Bausteine, mit denen wir die Anzahl an Durchläufen festlegen können. Zum einen gibt es das "Wiederhole"-Bauteil aus der Kontrollstrukturen-Schublade (vgl. Abbildung 8). In diesem Bauteil gibt man die Anzahl an Schleifendurchläufen an. Alle Bauteile, die man im Modul verwendet, werden dann genauso oft wie angegeben ausgeführt. Falls man jedoch auf einen Schleifendurchlauf reagieren möchte (z.B. soll in Schleifendurchlauf 3 die LED blau leuchten), benötigen wir das Bauteil "Zählschleife". Die Nummer des Schleifendurchlaufs wird hier immer in der Variablen (einem Speicherort oder Zettel, auf dem sich der Computer Dinge merken kann) gespeichert, deren Namen wir zu Beginn festlegen (vgl. Abbildung 9).

Abb. 8 Das "Wiederhole"-Bauteil führt alle ihm zugeordnete Bauteile 5 Mal aus
Abb. 9 Die Nummer des Schleifendurchlauf wird in der angegebenen Variable gespeichert. So lässt sich per if-Abfrage auf einen Schleifendurchlauf reagieren

Für Profis: SOS Signalanlage

Wir möchten unsere Signalanlange verbessern, indem wir sie nicht nur rot blinken lassen, sondern das Blinken so gestalten, dass es dem SOS-Morsecode entspricht. Dieser besteht aus drei kurzen, drei langen und wieder drei kurzen Leuchtsignalen. Insgesamt müssen wir also neun Mal die LED aufblinken lassen. Wir können mit den bisher gelernten Mitteln ohne Probleme umsetzen, indem wir eine große Anzahl an "NeoPixel"-Bauteilen hintereinander hängen (vgl. Abbildung 10 für die ersten drei kurzen Signale). Dadurch wird unser Programm aber sehr lang und unübersichtlich. Es ist daher effizienter Schleifen einzusetzen.

Verwenden wir die Wiederhole-Schleife, müssen wir drei Schleifen hintereinander auszuführen. Die erste Schleife steht für die ersten drei kurzen Signale, die zweite Schleife für die drei langen Signale und die dritte Schleife wiederum für drei kurze Signale (vgl. Abbildung 11). 

Weiter können wir auch eine Wiederhole-Schleife ersetzen und stattdessen eine Zählschleife verwenden. Nutzen wir das Fall/Sonst-Bauteil, das du noch weiter in Modul 2 kennen lernen wirst, ist es uns möglich, auf die Schleifendurchläufe zu reagieren und die gewünschten Bauteile nur dann auszuführen, wenn sie wirklich benötigt werden (vgl. Abbildung 12).

Abb. 10 Wir können das SOS auch ohne Schleife umsetzen. Dann benötigen wir jedoch viele Bauteile
Abb. 11 Wenn wir die Wiederhole-Schleife verwenden, können wir einige Bauteile sparen
Abb. 12 Verwenden wir die Zählschleife, können wir sogar auf die Schleifendurchläufe reagieren
Fachliche Informationen (optional)

Was ist ein Mikrocontroller?

Abb. 13 Der ESP ist auf dem IoT-Octopus zu finden. Er besitzt ein eingebautes WLAN-Modul.

Der Octopus basiert auf einem Mikrocontroller. Doch was ist das genau?

Mikrocontroller sind spezielle Mikrorechner, die neben einem Prozessor diverse andere wichtige Komponenten und Peripherie-Elemente auf einem Chip vereinen, also ein Ein-Chip-System. Der Prozessor führt die Befehle aus, die wir programmiert haben. Den Arbeitsspeicher (RAM, Random Access Memory) nutzt er dabei, um sich Dinge zu merken (Variablen). Über ein Eingabe-/Ausgabesystem kann er mit seiner Umgebung interagieren oder über ein WLAN-Interface ins Internet gehen.
 
Ein Mikrocontroller ist also ein kompletter Computer in einem Fingernagel großen Bauteil.   

Der Mikrocontroller ist als eingebettetens System im Alltag oft unbemerkt in technischen Gebrauchsartikeln verbaut, zum Beispiel in Waschmaschinen, Chipkarten (Geld-, Telefonkarten), Unterhaltungselektronik (CD-/DVD-SpielerRadiosFernsehgerätenFernbedienungen), Büroelektronik, Segways, Kraftfahrzeugen (Steuergeräte für z. B. ABSAirbagMotorKombiinstrument usw.), Mobiltelefonen und sogar in Uhren und Armbanduhren. Darüber hinaus sind sie in praktisch allen Computer-Peripheriegeräten enthalten (TastaturMausDruckerMonitorScanner uvm.).

Für Bastler oder Maker haben sie den Vorteil, dass sie häufig günstig zu erstehen sind und sich leicht in eigene Projekte einbinden lassen. Dabei ist zu beachten, dass nicht alle Mikrocontroller die gleichen Fähigkeiten haben!

Bekannte Mikrocontoller sind zum Beispiel der ATmega, den man auf dem Arduino findet, der ARM Cortex, der zum Beispiel auf dem Raspberry Pi im Einsatz ist und der ESP, der auf dem Octopus zu finden ist (vgl. Abbildung 13). Weltweit werden jährlich fast 500 Milliarden Mikrocontroller hergestellt und verbaut (vgl. Link).

 

Der IoT-Octopus im Detail

Der IoT-Octopus ist ein Gerät, welches, wie im Abschnitt zuvor erwähnt, auf dem ESP8266 basiert, einem circa 1,5cm x 1cm großen Mikrocontroller (siehe Abbildung 13 und Abbildung 14). Der Octopus erweitert diesen Mikrocontroller um eine Reihe von Anschlüssen (siehe Abbildung 15 und Abbildung 16). An ihnen können Featherwing- und Groove-Module angeschlossen werden. Die Groove-Stecker eigenen sich sowohl für AIN (Analog IN) als auch für I2C (Inter-Integrated Circuit) Module. Wie im Lernmodul zuvor gezeigt, besitzt er zudem LEDs (siehe Abbildung 17) und einen Micro-USB Anschluss (siehe Abbildung 18), die es uns erlauben, schnell und sicher eigene IoT-Projekte umzusetzen. Du fragst dich nun vielleicht, was den Octopus denn nun zum IoT-Gerät macht. Der ESP besitzt von Haus aus eine WLAN-Schnittstelle, sodass er ohne jegliche Erweiterung mit dem Internet kommunizieren kann. Aus diesem Grund kann er Teil des Internets der Dinge sein.

Weiter besitzt der Octopus einen Analogen Anschluss (AIN) in Form von Kontakten, den wir in Modul 2 genauer kennen lernen. Hier kann man Bananensteckern anstecken, die du vielleicht aus dem Physikunterricht kennst (siehe Abbildung 19). Zudem kann man den Octopus auch mit einem Akku oder einem Batteriefach ausstatten. Hierfür sind allerdings Lötarbeiten notwendig (vgl. Abbildung 20).

Abschließend verfügt der Octopus über den Umwelt-Sensor Bosch BME 280/680 (siehe Abbildung 21), der es uns erlaubt, die Temperatur, Luftfeuchtig und den Luftdruck im Raum zu bestimmen. Mit ihm werden wir uns im Detail in Modul 3 und Modul 4 auseinandersetzen.

Abb. 14 So sieht der IoT-Octopus von oben aus
Abb. 15 Der Featherwing-Anschluss auf der Vorderseite des Octopus
Abb. 16 Die Groove-Stecker am oberen Teil des Octopus
Abb. 17 Die zwei NeoPixel sind über dem Featherwing-Anschluss zu finden
Abb. 18 An der linken Seite des Octopus findest du den Micro-USB-Anschluss
Abb. 19 Über dem USB-Anschluss findest du die analogen Kontakte, an denen auch Bananenstecker befestigt werden können
Abb. 20 Ein Batteriefach kann mit etwas Lötarbeit am unteren Teil des Octopus befestigt werden
Abb. 21 Der Bosch Umwelt-Sensor ist unter dem Griff des "Henkel" des Octopus zu finden

Der IoT-Octopus

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Video 1 - Das Problem

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Video 2 - Ardublock starten

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

Video 3: Lösung

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

back-to-top nach oben