Bringt dem ZUM und Arduino bei, auf eure Befehle zu gehorchen und steuert ihn mit einem Taster und bedingten Anweisungen!

Probiert es hier aus bitbloq.bq.com

Bitbloq 2 ist eine Programmiersprache, mit der ihr aus Blöcken einfache oder komplexe Programme für Arduino-kompatible Plattformen, wie den BQ ZUM erstellen könnt! Damit könnt ihr alle Fähigkeiten der C++ Sprache umsetzen, auf der Arduino basiert, ohne die komplizierte Syntax, Komma- und Klammerregeln der Sprache auswendig lernen zu müssen.

Mit Bitbloq 2 kann jeder ab 8 Jahren die Grundlagen der Programmierung und Robotik lernen!


In dieser Lektion wollen wir uns ansehen, wie ihr ein Programm mit einem Taster steuern könnt und wie der Prozessor im ZUM oder Arduino dazu denken. Aber zuerst mal zum Taster selbst – wie funktioniert der eigentlich? Der Taster ist eigentlich nur ein Kontakt, der mit einem Blech einen Stromkreis schließt; solange der Taster nicht gedrückt ist, kann kein Strom durchfließen. Wenn der Taster gedrückt wird, fließt Strom und der Eingang am ZUM lädt sich in einem Sekundenbruchteil auf ungefähr 5 Volt auf – das ist die Betriebsspannung, mit der das Board läuft und die gleiche Menge an Spannung, mit der ihr eure Handys über USB aufladet. Genau das kann der ZUM erkennen und einlesen – wenn wir die Funktion “Lesen” verwenden, wird geprüft, ob der Eingang gerade näher an 0V oder an 5V liegt, damit können wir unterscheiden, ob der Taster gerade gedrückt wird oder nicht.

Der Taster hat nur zwei Zustände – gedrückt oder nicht gedrückt, genauso gibt es am Eingang einfach gesagt auch nur 0V oder 5V. So ein Signal nennt sich binäres Signal, vom Lateinischen bi, zwei, weil es eben genau zwei Zustände haben kann. Im Programm gibt es diese zwei Zustände natürlich genauso, und zwar als 0 und 1, oder falsch und wahr. Ich nutze lieber “falsch” für “nicht gedrückt” und “wahr” für “gedrückt”, aber 0 für “nicht gedrückt” und 1 für “gedrückt” ist genau das Selbe.

Überlegt mal, wir haben das Konzept von binären Zuständen schon öfter verwendet, wenn es darum ging, mit Komponenten zu kommunizieren. Genau, bei den LEDs, auch die haben wir auf zwei Zustände, aus und an, reduziert und sie einfacher steuern zu können. Eine LED kann mit vielen verschiedenen Helligkeiten leuchten, je nachdem mit wie viel Strom die LED versorgt wird. Wir schalten die LED am ZUM Board aber immer ganz an oder aus, wie ihr trotzdem die Helligkeit einstellen könnt, sehen wir noch in einem späteren Video.

Wir wollten den Taster aber jetzt als Steuerung für unser Programm verwenden. Als erstes bauen wir die Hardware auf, ich habe die LED an Pin 5 und den Taster an Pin 7 angeschlossen. Das gleiche bauen wir jetzt in Bitbloq nach, sowohl die LED als auch den Taster findet ihr in “Komponenten”.

Taster und LED

Als erstes wollen wir mal die LED mit dem Taster einschalten – dazu können wir im Software-Bereich den “Wenn” Block aus dem Bereich “Steuerung” nutzen. Dieser Block hat zwei Bereiche, einmal die Bedingung und einmal die Anweisungen, die nur dann ausgeführt werden, wenn die Bedingung stimmt. Wenn der Vergleich in der Bedingung falsch ist, werden alle Anweisungen einfach übersprungen. Ein praktisches Beispiel: Wenn der Zustand des Fensters gleich “offen” ist, schließe das Fenster. Oder, wenn die Temperatur deines Tees kleiner als 45°C ist, trinke den Tee und räume dann die Tasse auf.

Für diese Programm jetzt also: Wenn der Taster gedrückt ist, schalte die LED an. Zuerst vergleichen wir also den Zustand des Tasters mit dem Zustand “gedrückt” – die beiden müssen gleich sein. Nehmt euch also den Block “Lesen”, Taster, als ersten Teil des Vergleichs und als zweiten Teil “Wahr” aus dem Bereich “Logik” oder den Zahlenblock aus “Mathematik” mit einer 1. Beides bedeutet exakt das gleiche. Damit wird der innere Teil der Anweisungen nur ausgeführt, wenn der Taster gedrückt ist. Nehmt euch noch den “LED” Block, um die LED anzuschalten und schon könnt ihr das Ganze hochladen.

Wenn, dann...

Und das Programm macht genau das, was wir programmiert haben – wenn der Taster gedrückt wird, geht die LED an. Aber sie geht nie wieder aus! Klar, wir schalten die LED ja auch nirgends wieder aus. Dafür können wir jetzt noch einen Block einfügen, der immer dann ausgeführt wird, wenn der Vergleich im ersten Wenn Block nicht stimmte. Der Block nennt sich “im gegenteiligen Fall ausführen”, wenn wir hier noch zusätzliche Bedingungen anknüpfen wollten, könnten wir auch den “ansonsten, wenn” Block verwenden. Immer wenn der Zustand des Tasters nicht wahr, also nicht gedrückt, ist, wollen wir die LED wieder ausschalten.

Wenn, dann, ansonsten...

Damit können wir die LED jetzt einfach mit dem Taster steuern, die LED geht immer dann an, wenn der Taster gedrückt wird.

Solche Abfragen und Bedingungen machen Programme “intelligent” und sorgen dafür, dass Computer und Roboter auch auf ihre Umgebung oder auf Eingaben vom Nutzer zu reagieren.

Probiert doch mal aus, ob ihr es schafft, die LED blinken zu lassen, solange der Taster gedrückt wird. In der nächsten Lektion sehen wir uns an, wie ihr noch mehr Sensoren, wie zum Beispiel den Lichtsensor verwenden könnt. Bis dann!