Interessante Projekte mit dem BBC Micro:bit Projekt 1 Nachrichten senden und empfangen 1 (Einzelne Buchstaben senden und empfangen) Schritt 1: Start.) Eine Variable mit dem Namen ABC hat als Inhalt die 26 Buchstaben des Alphabets und die Zeichen! und?. (Eine Folge von Zeichen, z.b. von Buchstaben nennt man einen String.) Man sagt, die Variable ABC ist eine Stringvariable..) Die Fungkgruppe ist 0, alle Micro:bits die dieser Funkgruppe angehören, können die gesendete Nachricht später empfangen. Schritt 2: Wählen eines Buchstabens mittels Tastendruck - aufsteigend.) Nun soll durch Drücken der Taste B aus den 26 Buchstaben und den 2 Zeichen eines ermittelt werden. Jedem Zeichen entspricht eine Zahl zwischen 1 und 28. Die Zahl gibt die Position des Buchstabens oder des Zeichens in der Stringvariablen an. (A hat Position 1, B die Position 2 etc.).) Der Inhalt einer Variablen Position soll sich bei jedem Drücken der B-Taste um 1 erhöhen. So werden nacheinander die Buchstaben des Alphabets in aufsteigender Reihenfolge auf der LED-Matrix dargestellt und so kann ich einen beliebigen Buchstaben auswählen!.) Ist der Inhalt von Position größer als 28, wird der Inhalt wieder auf 1 gesetzt. Die Möglichkeit, einen Buchstaben auszuwählen, beginnt wieder bei Position 1 (Buchstabe A). Heerdegen-Leitner & Heerdegen, 2018 Seite 1
.) Der so ermittelte Buchstabe, das so ermittelte Zeichen, wird in einer Variablen Buchstabe gespeichert..) Auf unserer LED-Matrix wird dieser Buchstabe dann ausgegeben. Schritt 3: Wählen eines Buchstabens mittels Tastendruck absteigend.) Möchte ich, dass die Buchstaben und Zeichen in absteigender Reihenfolge auf der LED- Matrix dargestellt werden, verändern wir das vorherige Script folgendermaßen:.) Der Inhalt der Variablen Position wird sich bei jedem Drücken der A-Taste um 1 verringern. So werden nacheinander die Buchstaben des Alphabets in absteigender Reihenfolge auf der LED-Matrix dargestellt und so kann ich wiederum einen beliebigen Buchstaben auswählen!.) Ist der Inhalt von Position kleiner als 1, wird der Inhalt wieder auf 28 gesetzt. Die Möglichkeit, einen Buchstaben auszuwählen, beginnt wieder bei Position 28 (Zeichen? ). Heerdegen-Leitner & Heerdegen, 2018 Seite 2
.) Der so ermittelte Buchstabe, das so ermittelte Zeichen, wird wieder in der Variablen Buchstabe gespeichert..) Auf unserer LED-Matrix wird dieser Buchstabe dann ausgegeben..) Dieses Verfahren lässt uns ganz rasch mit den Tasten A und B im Alphabet hin und her navigieren! Schritt 4: Senden der Nachricht.) Bei gleichzeitigem Drücken der Tasten A und B wird der so ermittelte Buchstabe gesendet! Schritt 5: Empfangen der Nachricht.) Der Befehlsblock wenn Datenpaket empfangen receivedstring wartet auf ein Datenpaket, das von einem Micro:bit über eine Bluetoothverbindung an einen anderen Micro:bit (oder auch an mehrere) gesendet wurde. Der (Die) Micro:bit(s) müssen alle der selben Funkgruppe (in unserem Fall der Gruppe 0, siehe Startblock) angehören!.) Dabei ist recivedstring eine Variable, die als Inhalt in unserem Fall den Buchstaben hat, der gesendet wurde..) Der Befehl zeige Zeichenfolge RecivedString stellt nun den gesendetet Buchstaben auf unserer LED-Matrix dar. Heerdegen-Leitner & Heerdegen, 2018 Seite 3
Schritt 6: Zu beachten.) Das vollständige Programm muss auf beide Micro:bits überspielt werden! So können die beiden User sowohl Sender als auch Empfänger sein. Es kann mit diesem Programm nur jeweils ein Buchstabe gesendet werden! Sende ich die Buchstaben eines Wortes hintereinander, kann ich sehr wohl kleinere Nachrichten senden. Der Empfänger kann danach auf die Nachricht antworten. Interessanter wird es, wenn wir im nächsten Projekt das Programm so abändern, das ganze Wörter und Sätze auf einmal gesendet werden können..) Möchte ich, dass nur ein User der Sender und der (die) andere (anderen) der (die) Empfänger ist (sind), braucht der Sender nur folgende Skripte: Heerdegen-Leitner & Heerdegen, 2018 Seite 4
.) Für den (die) Empfänger genügen folgende beiden Skripte: Video Heerdegen-Leitner & Heerdegen, 2018 Seite 5
Projekt 2 Nachrichten senden und empfangen 2 (Ganze Wörter und Sätze senden und empfangen) Schritt 1: Start.) Eine Variable mit dem Namen ABC hat als Inhalt die 26 Buchstaben des Alphabets und die Zeichen! und?. (Eine Folge von Zeichen, z.b. von Buchstaben nennt man einen String.) Man sagt, die Variable ABC ist eine Stringvariable..) Eine zweite Stringvariable mit Namen Text hat als Inhalt vorerst einen leeren String. Später sollen dieser Stringvariablen die ermittelten Zeichen hinzugefügt werden..) Die Fungkgruppe ist 0, alle Micro:bits die dieser Funkgruppe angehören, können die gesendete Nachricht später empfangen. Schritt 2: Wählen eines Buchstabens mittels Tastendruck aufsteigend und absteigend Heerdegen-Leitner & Heerdegen, 2018 Seite 6
.) Genau so wie bei Projekt 1 werden durch Drücken der A-Taste und der B-Taste die benötigten Buchstaben ermittelt und auf dem Bildschirm ausgegeben! Schritt 3: Zusammenfügen der einzelnen Buchstaben zu einem Wort (Satz).) Die Stringvariable Text ist beim Start leer..) Nun werden durch gleichzeitiges Drücken der A-Taste und der B-Taste die ermittelten Buchstaben in die Stringvariable Text befördert. Dies so lange, bis das fertige Wort (der fertige Satz) als Inhalt von Text abgelegt ist. Schritt 4: Senden der Nachricht.) Der Micro:bit verfügt über einen Lagesensor. Da die Tasten A und B bereits belegt sind, müssen wir uns etwas anderes für das Senden überlegen. Heerdegen-Leitner & Heerdegen, 2018 Seite 7
.) Wenn der Micro:bit mit dem Display nach unten gerichtet wird, wird der Inhalt von Text gesendet..) Danach wird der Bildschirminhalt gelöscht..) Zum Schluss wird der nun abgesendete Text aus der Variablen Text gelöscht. Dies deshalb, damit beim nächsten Senden nur der neue Text und der alte Text nicht noch einmal dazu gesendet wird. Schritt 5: Empfangen der Nachricht.) Der bereits empfangene Text ist in der Variablen alter Text gespeichert. Bevor der neue Text auf dem Display ausgegeben wird, wird die Variable altertext geleert, damit er nicht noch einmal zusammen mit dem neuen Text ausgegeben wird. Schritt 6: Zu beachten.) Das vollständige Programm muss natürlich wieder auf beide (auf alle) Micro:bits überspielt werden! So können die beiden (alle) User sowohl Sender als auch Empfänger sein..) Möchte ich, dass nur ein User der Sender und der (die) andere (anderen) der (die) Empfänger ist (sind), braucht der Sender nur folgende Skripte: Heerdegen-Leitner & Heerdegen, 2018 Seite 8
Heerdegen-Leitner & Heerdegen, 2018 Seite 9
.) Für den (die) Empfänger genügen folgende beiden Skripte: Video Heerdegen-Leitner & Heerdegen, 2018 Seite 10
Projekt 3 Nachrichten senden und empfangen 3 (Einsatz eines Potentiometers) Schritt 1: Start.) Eine Variable Letzteposition wird auf 0 gesetzt..) Unsere Stringvariable mit Namen Text hat als Inhalt vorerst einen leeren String. (Ein String ist eine Folge von Zeichen, z.b. von Buchstaben.) Später sollen dieser Stringvariablen die ermittelten Zeichen hinzugefügt werden..) Die Fungkgruppe ist 0, alle Micro:bits die dieser Funkgruppe angehören, können die gesendete Nachricht später empfangen. Schritt 2: Wählen eines Buchstabens über ein Potentiometer.) Das Potentiometer ist ein variabler Widerstand mit einem Drehknopf. Durch Drehen des Knopfes kann man den Widerstand ändern. Der Micro:bit kann die sich durch Drehen des Knopfes ändernde Eingangsspannung an den Pins 0, 1 und 2 ablesen und sie als analogen Wert zwischen 0 und 1023 abbilden. Im unserem Beispiel erhält die Variable Potentiometer den gerade aktuellen Wert von Pin 0 nach dem Drehen des Potentiometerknopfes..) Da wir 26 Zeichen in unserem Alphabet haben, und die Zeichen? und! und das Zeichen * als Ersatz für ein Leerzeichen noch dazu nehmen, also 29 Zeichen verwenden, wandeln wir den Bereich von 0 bis 1023 in einen Bereich von 0 bis 29 um. Heerdegen-Leitner & Heerdegen, 2018 Seite 11
.) Je nachdem, wie groß die Eingangsspannung an Pin 0 nun ist, wird nun der analoge Wert von Pin 0 (eine Zahl zwischen 0 und 29) in der Variablen Position als Zahl gespeichert..) Die so ermittelte Zahl entspricht der Position eines der 29 Zeichen (26 Buchstaben und 3 Zeichen). Dieses Zeichen (z.b. 5 = E) wird nun in einer Variablen Buchstabe gespeichert..) Um zu wissen, ob der Benutzer das Potentiometer weit genug gedreht hat, um das aktuelle Zeichen zu ändern, müssen wir die Position des letzten Zeichens speichern, um es zu vergleichen. ( ändere Letzteposition auf Position ).) Der so ermittelte Buchstabe wird auf dem Bildschirm ausgegeben. Heerdegen-Leitner & Heerdegen, 2018 Seite 12
Schritt 3: Zusammenfassung der Zeichen zu einem Text.) Die Stringvariable Text ist beim Start leer..) Nun wird durch Drücken der A-Taste der ermittelte Buchstabe in die Stringvariable Text befördert. Dies so lange, bis das fertige Wort (der fertige Satz) als Inhalt von Text abgelegt ist. Schritt 4: Senden der Nachricht.) Wenn die B-Taste gedrückt wird, wird der Inhalt von Text gesendet..) Der Text erscheint als Laufschrift auf dem Display..) Zum Schluss wird der nun abgesendete Text aus der Variablen Text gelöscht. Dies deshalb, damit beim nächsten Senden nur der neue Text und der alte Text nicht noch einmal dazu gesendet wird. Schritt 5: Empfangen der Nachricht.) Ein zweiter Micro:bit ist der Empfänger! Jetzt müssen wir nur unsere Nachricht empfangen. Besonders wenn wir in mehreren Teams arbeiten, ist es sehr wichtig, dass wir dieselbe Funkgruppe einstellen. Heerdegen-Leitner & Heerdegen, 2018 Seite 13
.) Der Befehl zeige Zeichenfolge RecivedString stellt nun den gesendetet Text auf der LED-Matrix des Empfängers dar. Schritt 6: Verkabelung Das folgende Bild zeigt, wie der Sender mit dem Potentiometer verbunden wird: Heerdegen-Leitner & Heerdegen, 2018 Seite 14
Video Heerdegen-Leitner & Heerdegen, 2018 Seite 15