Zum Inhalt springen
  • Über uns
  • Robotics
    • Robo4Earth
    • RoboSDG
    • RoboSDG Jr.
  • Möglichkeiten
  • Workshops & Events
  • Team
  • Kontakt
  • Über uns
  • Robotics
    • Robo4Earth
    • RoboSDG
    • RoboSDG Jr.
  • Möglichkeiten
  • Workshops & Events
  • Team
  • Kontakt
Kontakt
Robo4earth

Microsoft Make:Code

Programmieren mit Microsoft MakeCode

Die Robo4Earth kann auch in der Entwicklungsumgebung Microsoft MakeCode für den Micro:bit programmiert werden.
In dieser Umgebung hast du mehr Möglichkeiten: Du kannst eigene Sensoren oder Aktoren einbinden und deine Robo4Earth nicht nur mit Anweisungsblöcken, sondern auch mit Python oder JavaScript programmieren.

Diese Anleitung richtet sich an fortgeschrittene Nutzer:innen.

Grundlegende Konzepte wie „Was ist ein Programm?“, „Was ist eine Schleife oder Bedingung?“ oder „Wie funktioniert eine Funktion?“ werden hier nicht im Detail erklärt.

Erweiterung »
Systemvoraussetzungen »

MakeCode Erweiterung

MakeCode Erweiterung für Robo4Earth

In der MakeCode-Entwicklungsumgebung kannst du deine Robo4Earth mit Blöcken, Python oder JavaScript programmieren. Um die Robo4Earth richtig anzusteuern, brauchst du unsere eigene Erweiterung – damit kannst du die Motoren steuern, Melodien abspielen und vieles mehr.

So fügst du die Erweiterung ein:

  1. Öffne makecode.microbit.org
  2. Klicke auf + Neues Projekt und gib deinem Projekt einen Namen
  3. Wähle in der Menüleiste den Punkt + Erweiterungen
  4. Gib im Suchfeld folgende Adresse ein: github.com/zimdaustria/pxt-robo4earth
  5. Klicke auf die angezeigte Erweiterung, um sie zu importieren

Nach dem erfolgreichen Laden findest du die Robo4Earth-Kategorie in der Blockleiste. Von dort kannst du alle neuen Blöcke per Drag & Drop in dein Programm ziehen.

Programmierbeispiel

Das folgende Beispiel zeigt, wie du deine Robo4Earth auf laute Geräusche reagieren lässt:

  • Beim Start wird ein Lautstärkeschwellenwert gesetzt
  • Die Robo4Earth zeigt ein Herzsymbol
  • Sie fährt 5 Sekunden vorwärts, dann 5 Sekunden rückwärts
  • Anschließend wird der Bildschirm gelöscht

Zusätzlich wird die Funktion schuettel_dich() aufgerufen, wenn ein lautes Geräusch erkannt wird. Die Robo4Earth schaut dabei „böse“ und beginnt zu wackeln.

Hinweis: Verwende beim Programmieren keine Umlaute oder Sonderzeichen in Funktionsnamen – deshalb wird „ü“ zu „ue“.

Programmiersprachen wechseln

Du kannst dein Programm in Blöcken, JavaScript oder Python anzeigen lassen. So funktioniert der Wechsel:

  • Oben in der blauen Leiste auf JavaScript klicken, um den Code in Textform zu sehen
  • Auf den kleinen Pfeil neben JavaScript klicken und Python auswählen, um die Python-Version anzuzeigen

Wenn du eine Programmiersprache ausgewählt hast, kannst du dir durch Klicken auf einen Block anzeigen lassen, wie der entsprechende Funktionsaufruf aussieht – inklusive kurzer Beschreibung der Parameter.

Beispiel: Der Block „fahre in Richtung direction mit Tempo speed für seconds Sekunden“ entspricht im

Code: roboearth.drive(direction, speed, seconds)

Autovervollständigung

Beim Programmieren in Python oder JavaScript hilft dir die Autovervollständigung: Wenn du mit dem Tippen beginnst, werden passende Funktionen vorgeschlagen. Du kannst dann eine davon auswählen – inklusive der Standard-Parameter, die du nur noch anpassen musst.
Simulation in MakeCode
Auf der linken Seite der MakeCode-Entwicklungsumgebung findest du eine Simulation des Micro:bit. Sobald du ein Programm erstellt hast, wird es dort automatisch ausgeführt. In unserem Beispielprogramm wird ein Lautstärkeschwellenwert gesetzt. In der Simulation erscheint dann ein Balken mit einem leuchtenden Mikrofon-Symbol. Wenn der Micro:bit farbig dargestellt ist, läuft die Simulation. Ist er grau, ist sie pausiert. Du kannst die Knöpfe am virtuellen Micro:bit drücken oder den Lautstärkepegel verändern und beobachten, wie sich das Programm verhält. Auch Motorfunktionen lassen sich prüfen: Leuchtet ein Pin rot, liegt dort eine Spannung an.
Programm auf den Micro:bit laden

Wenn du dein Programm getestet hast, kannst du es als HEX-Datei auf den echten Micro:bit übertragen:

  1. Klicke auf den Herunterladen-Button (violett, links unten in MakeCode)
  2. Schließe den Micro:bit per USB-Kabel (Micro-B) an deinen Computer an
  3. Der Micro:bit erscheint als externes Laufwerk
  4. Ziehe die heruntergeladene HEX-Datei per Drag & Drop auf das Laufwerk
  5. Alternativ: Rechtsklick auf die Datei → Senden an → MICROBIT

Beim Übertragen blinkt die gelbe LED – danach startet das Programm automatisch.

Micro:bit direkt mit MakeCode verbinden

Für den Einsatz in der Schule kannst du den Micro:bit auch direkt mit MakeCode verbinden. So wird das Programm beim Klicken auf „Herunterladen“ direkt übertragen.

So funktioniert es:

  1. Klicke auf die drei Punkte neben dem Herunterladen-Button
  2. Wähle „Gerät verbinden“
  3. Folge den Anweisungen im Pop-up-Fenster
Dateinamen anpassen

Der Name deiner HEX-Datei wird automatisch aus dem Programmnamen generiert. Dabei werden Leerzeichen durch Bindestriche ersetzt. Beispiel:
Ein Projekt namens „test all“ wird zu microbit-test-all.hex.

Wenn du den Namen ändern möchtest, gib einen neuen Namen ins weiße Feld neben dem Herunterladen-Button ein.

Speichere dein Projekt mit dem Disketten-Symbol oben links.

Funktionen und Variablen

Funktionen

Um das Programm übersichtlicher zu machen und sich das Suchen von Fehlern zu erleichtern, sollte man Funktionen für Code erstellen. Das bietet sich vor allem an, wenn derselbe Code öfter im Programm wiederholt wird. Die erstellten Funktionen kann man an den benötigten Stellen im Code aufrufen.

Um eine Funktion zu erstellen, klicke auf die Kategorie Fortgeschritten. Klicke dann auf die dunkelblaue Kategorie Funktionen und auf Funktion erstellen.
Funktion bearbeiten Fenster

Um Parameter (Eingabewerte) zur Funktion hinzuzufügen, klicke auf den gewünschten Datentyp (Text, Bool, Zahl,…).

Der Funktionsname soll zeigen, was die Funktion macht, zum Beispiel “zählePunkte” oder “stoppeMotoren”. Schreibe den Namen anstatt macheEtwas in den Funktionsblock. Funktionsnamen sollten keine Leerzeichen, Sonderzeichen oder Umlaute haben. Üblicherweise wird für Funktionsnamen die Camelcase Schreibweise benutzt (kleinAmAnfangDannGroßbuchstabenAmWortanfang) oder die Snake Case Schreibweise (alles_klein_und_durch_unterstriche_getrennt). Du kannst dir aussuchen, was dir besser gefällt und bleibe dann wenn möglich bei einer Variante.
FUnktion aufrufen

Um deine Funktion aufzurufen, klicke mit Rechtsklick auf die Funktion im Programmbereich und wähle “Erstelle Aufruf Funktionsname” ganz unten. Du bekommst dann einen Funktionsbaustein, den du in dein Programm einbauen kannst. Alternativ kannst du den Aufruf-Block deiner Funktion aus der Kategorie Funktionen in den Programmierbereich ziehen.

Funktionen kann man mit Pfeilen auf- und zuklappen. Damit kannst du sie platzsparend am Bildschirm anordnen.

Beispielfunktion

Es wurde die Funktion schuettle_dich_so_oft erstellt. Der Name zeigt an, dass sich die Robo4earth schüttelt und dass die eingegebene Zahl die Wiederholungen vorgibt. Den Parameter (num = eine Zahl) kann man per Drag & Drop innerhalb der Funktion einsetzen, hier wurde er für die Wiederholung in der Schleife eingesetzt.
Programm: Zeige beim Start ‚Hi!‘. Zeige dauerhaft, wenn Lautstärke über 120: Symbol ‚böser Blick‘, Aufruf schuettle_dich_so_oft zwei Mal, dann Bildschirminhalt löschen

Beim Aufruf der Funktion kannst du die gewünschten Werte als Parameter einsetzen. Hier wurde 2 statt 1 in den Funktionsaufruf geschrieben. Der Roboter schüttelt sich also zweimal und schaut böse wenn es zu laut ist.

Variablen

Für das Programmieren von Sensoren und Aktoren sind Variablen sehr praktisch. In diesen können Werte und Zustände gespeichert werden. Das Programm wird durch den Einsatz von Variablen weniger anfällig für Fehler und verständlicher. Unter der roten Kategorie Variablen können eigene Variablen erstellt werden. Die erstellten Variablen können wie Werte (abgerundete Blöcke) im Programm eingesetzt werden oder mit den beiden Bausteinen setze variable auf und ändere variable um bearbeitet werden.
Programm ‚HindernisErkannt‘

Im ersten Beispiel wird die Variable hindernisErkannt verwendet, um den Sensorwert eines Infrarotsensors zu speichern und anzuzeigen. Der Sensor gibt 0 aus, wenn ein Hindernis erkannt wird. In der Programmierung steht 0 auch für False (Falsch) und 1 für True (Wahr). Daher wird in der Variable hindernisErkannt eine 1 gespeichert wenn ein Hindernis erkannt wird und eine 0 wenn der Weg frei ist.
Setze Zähler auf 0 bei Start, wenn Knopf A geklickt, dann ändere Zähler um 1, zeige die Zahl des Zähelers an. Micro:bit zeigt nun die Zahl ‚2‘ an.

Eine Variable kann zum Beispiel auch als Zähler eingesetzt werden. Das ist sehr praktisch bei der Programmierung von Punkteständen in Spielen oder zum Herunterzählen von Leben (ändere variable um -1).

Mikrocontroller (MC) programmieren

Beim Programmieren in Python oder JavaScript hilft dir die Autovervollständigung: Wenn du mit dem Tippen beginnst, werden passende Funktionen vorgeschlagen. Du kannst dann eine davon auswählen – inklusive der Standard-Parameter, die du nur noch anpassen musst.
Mikrocontroller programmieren

Bei der Programmierung von Mikrocontrollern ist zu beachten, dass es im Gegensatz zu einem “normalen” Computerprogramm kein Programmende gibt. Stattdessen gibt es meistens eine optionale Setup-Funktion, die zum Start ausgeführt wird und ein Hauptprogramm, welches in Dauerschleife wiederholt wird. In Makecode gibt es dafür die Bausteine beim Start und dauerhaft in der hellblauen Kategorie Grundlagen.

In der Setup Funktion werden Variablen initialisiert und Sensoren kalibriert sowie Motoren, wenn nötig, in die richtige Ausgangsposition gebracht. Man kann auch ein Bild anzeigen oder einen Klang zur Begrüßung abspielen. Daran kann man beim Einschalten erkennen, ob das Programm gestartet wurde und es ist praktisch, um zu kontrollieren, ob das richtige Programm am Micro:bit läuft.

Die Dauerschleife wird immer wiederholt, solange der Mikrocontroller Strom bekommt. In der Dauerschleife kann der Mikrocontroller auf Eingangssignale reagieren oder Werte einlesen und verarbeiten. Man sollte darauf achten, dass nur zuvor initialisierte Variablen hier verwendet werden. Sonst könnte es passieren, dass ein Roboter beim Einschalten sofort losfährt, was zu Verletzungen und der Beschädigung von Bauteilen führen kann.

Die Makecode IDE bietet eine Micro:bit Simulation. Man sollte diese Simulation nach jeder Änderung im Programm nutzen, und ein erstelltes Programm immer ausreichend testen, bevor man es auf den Mikro:bit lädt.
Beispielprogramm: erklärt im Text

In dem gezeigten Beispielprogramm zeigt der Micro:bit beim Starten ein Bild für 2 Sekunden an. In der Dauerschleife reagiert er auf die Knöpfe A und B.

Ereignisse

Es gibt die Möglichkeit, Ereignisse (Events) zu generieren, auf die das Programm reagiert. Ein Ereignis kann zum Beispiel das Drücken eines Knopfes sein oder ein bestimmtes Eingangssignal eines Sensors. Die sogenannten Event-Handler sind Funktionen, die auf ein Ereignis reagieren. Diese können außerhalb der Dauerschleife definiert werden und werden immer dann ausgeführt, wenn das jeweilige Ereignis eintrifft. In dem folgenden Beispielcode wurde die Dauerschleife durch Event-Handler ersetzt. Diese sind pinke Bausteine aus der Kategorie Eingabe, welche keine Kerbe oben und unten haben (Stand-Alone Funktionen wie “beim Start” und “dauerhaft”).

Signale

Mit Sensoren kann sich der Roboter im Raum lokalisieren und er kann die Welt um sich herum wahrnehmen, mit Aktoren kann er etwas tun, Dinge um sich herum manipulieren oder sich bewegen. Sensoren liefern Input-Signale, Aktoren werden durch Output-Signale gesteuert. Die Anschlüsse für Ein- und Ausgangssignale am Mikrocontroller nennt man “Pins”. Ein Signal kann entweder digital oder analog sein.

Ein digitales Signal hat genau zwei mögliche Zustände: 1 und 0 bzw. An und Aus. Ein Beispiel für ein digitales Eingangssignal ist zum Beispiel ein Schalter. Ein Beispiel für ein digitales Ausgangssignal ist zum Beispiel das Ein-/und Ausschalten einer LED. Du kannst zum Beispiel das Eingangssignal eines Schalters verwenden, um eine LED ein- und auszuschalten.

Bei einem Mikrocontroller zeigt ein digitales Signal an, ob Spannung an einem Pin anliegt (1) oder nicht (0).

Ein analoges Signal nimmt kontinuierlich Werte innerhalb eines bestimmten Intervalls ein. Das kann zum Beispiel bei einem Sensor die Temperatur von –30°C bis +60°C sein oder der Abstand zu einem Hindernis in cm (von 3cm bis 300cm zum Beispiel). Mit einem analogen Ausgangssignal kann man zum Beispiel die Geschwindigkeit von Motoren steuern oder eine LED dimmen.

Am Micro:bit liegt bei einem analogen Signal eine Spannung zwischen 0V und 3V an. Diese Eingangsspannung wird in eine Zahl zwischen 0 und 1023 umgewandelt, welche im Programm weiterverarbeitet werden kann. Umgekehrt muss ein Ausgangssignal an einen Aktor als Zahl zwischen 0 und 1023 ausgegeben werden. Diese Zahl wird vom Micro:bit in eine Spannung von 0V bis 3V umgewandelt, die dann am entsprechenden Pin anliegt.

Micro:bit Aktoren & Sensoren

Der Micro:bit hat eine 5×5 LED-Matrix, die auch als Lichtsensor programmiert werden kann. Ebenso hat der Micro:bit ein Mikrofon und seit Version 2 auch einen eingebauten Lautsprecher. 2 programmierbare Buttons A und B und ein kapazitiver Berührungssensor im Micro:bit Logo (ab Version 2) sind ebenfalls integriert. Der Micro:bit enthält weiters einen Bewegungssensor inklusive Beschleunigungssensor und Kompass und einen Temperatursensor. Die Onboard Sensoren können mit den Blöcken der pinken Kategorie Eingabe verwendet werden. Für die Audioausgabe und die LED-Matrix gibt es eigene Kategorien Musik und LED.

robo4earth

Zurück zur Startseite »

IMPRESSUM | © 2023 InnovationsMacherIN | DATENSCHUTZ | Made with love by Nordik Moon Studios

imunify-bot-check
InnovationsMacherIN
Cookie-Einwilligung verwalten
Hey Keks-Fans!

Wir verwenden Cookies, um eure Online-Erfahrung zu verbessern – aber keine Sorge, wir backen nichts aus deinen Daten! Diese winzigen Keks-Dateien helfen uns, unsere Website zu verbessern und machen dein Surfen so süß wie Schokoladen-Chip-Cookies. Indem du unsere Website nutzt, stimmst du der Cookie-Zauberei zu. Wenn du mehr darüber erfahren möchten oder einfach nur Hallo sagen willst, kontaktiere uns!

Crumb-a-lot, deine InnovationsMacherINNEN

 [Letztes Update: 20.02.24]
Funktional Immer aktiv
Die technische Speicherung oder der Zugriff ist unbedingt erforderlich für den legitimen Zweck, die Nutzung eines bestimmten, vom Abonnenten oder Benutzer ausdrücklich gewünschten Dienstes zu ermöglichen, oder für den alleinigen Zweck, eine Kommunikation über ein elektronisches Kommunikationsnetz zu übertragen.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistiken
The technical storage or access that is used exclusively for statistical purposes. Die technische Speicherung bzw. der Zugriff dient ausschließlich anonymen Statistikzwecken. Ohne eine Vorladung, die freiwillige Einhaltung seitens Ihres Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen in der Regel nicht dazu verwendet werden, Sie zu identifizieren.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
  • Optionen verwalten
  • Dienste verwalten
  • Verwalten von {vendor_count}-Lieferanten
  • Lese mehr über diese Zwecke
Einstellungen anzeigen
  • {title}
  • {title}
  • {title}