Abschnittsübersicht


    • Vorstellen

      Mein Name ist Katrin Gerling und ich bin eure Trainerin in diesem Kurs der Webakademie. Ich habe in Magdeburg Ingenieurinformatik studiert und habe anschließend als Softwareentwicklerin gearbeitet. Seit meiner Studienzeit gebe ich Kurse zum Thema Robotik und Programmieren und betreue Teams in der Vorbereitung auf Robotik-Wettbewerbe.

    • Voraussetzungen

      Voraussetzung für diesen Kurs sind Kenntnisse im Umgang mit dem Calliope mini und der Programmierumgebung NEPO. Außerdem benötigst du einen Calliope mini. 


      Wenn du bereits einen Calliope-Kurs hier in der Webakademie absolviert hast, bist du hier genau richtig. In diesem Kurs werden wir aus dem Calliope mini einen Calli:bot kreieren, dass heißt unser Calliope mini bekommt ein Fahrgestell, so dass wir einen kleinen Roboter haben, den wir programmieren können. Der Roboter kann sich dann durch dein Zimmer bewegen.

    • Kursdauer

      29.08. - 29.09.2022

    • Aufgrund von Lieferschwierigkeiten des Calli:Bots wird nach einer Alternative gesucht und der Kurs verschiebt sich etwas.


      Der Kurs beginnt am 10.11.2022 und endet am 15.12.2022

    • Zugeschicktes Material

      Du solltest von der Webakademie für diesen Kurs den Calli:bot2 in einer Verpackung zugeschickt bekommen haben, wie im folgenden Bild zusehen:

      Die Verpackung ist sehr stabil, so dass du deinen Calli:bot bei Nichtgebrauch immer wieder in die Schachtel zurücklegen kannst, dann staubt er auch nicht ein zwinkernd

    • Login zum Programmieren

      Wir programmieren den Calli:bot2 mit der Programmierumgebung NEPO: https://lab.open-roberta.org/

      Wenn du bereits einen Calliope-Kurs bei mir hier in der Webakademie mitgemacht hast, dann kannst du deinen Login dafür auch weiterverwenden. Falls du dein Passwort dafür vergessen haben solltest, schreib mir eine kurze Nachricht, dann kann ich das Passwort auch zurücksetzen.

      Wer noch keine Login-Daten von mir hat (weil man in einem anderen Kurs den Calliope mini kennengelernt hat, oder sich selbständig zuhause damit beschäftigt hat), schreibt mir kurz, dann erstelle ich einen neuen Login.

    • Batterien

      Beim Calliope mini gab es 2 AAA-Batterien dazu. Für den Calli:bot2 benötigst du 3 AAA-Batterien. 

      In der Bedienungsanleitung gibt es noch ein paar Sicherheitshinweise zu Batterien:

    • Aufbau

      Auf der Seite zu den Technischen Daten kannst du nachlesen woraus das Fahrgestell besteht, bzw. wo die Bauelemente angeordnet sind:


      In diesem Abschnitt bauen wir den Calli:bot2 zusammen.

      1. Nimm das Fahrgestell aus der Verpackung heraus:

      2. Setze 3 AAA-Batterien in das Batteriefach ein.

      3. Schraube die Befestigungsbolzen für die Halterung des Calliope mini vom Fahrgestell ab und lege den Calliope mini bereit.

      Die folgenden Schritte 4, 5 und 6 kannst du auch in ihrer Reihenfolge tauschen.

      4. Den Calliope mini mit den Befestigungsbolzen über die Pins 1 und 2 befestigen, so dass der USB-Anschluss vom Calliope mini nach hinten zeigt.

      5. Schließe das Datenkabel (mit 4 Drähten) am Grove-Anschluss des Calliope mini an neben der Taste A.

      6. Schließe das Stromversorgungskabel an der Batteriebuchse des Calliope mini an.

      Fertig!


    • Programmieren

      Der Calli:bot kann mit MakeCode, NEPO oder TigerJython4Kidsprogrammiert werden. Wir verwenden in diesem Kurs die Programmierumgebung NEPO. Unter folgender Webadresse kann der Webeditor aufgerufen werden:

      https://lab.open-roberta.org/

      Bei der Auswahl des Robotiksystems wählst du den Calliope mini aus.

    • Konfiguration

      Um den Calli:bot2 in NEPO zu konfigurieren, also damit du ihn programmieren kannst, muss er dem System erst "vorgestellt" werden. Folge dafür der Schritt für Schritt Anleitung.

      1. ROBOTERKONFIGURATION anklicken

      2. Aktion auswählen

      3. Die Konfigurationen für den Calli:bot2 rausziehen und neben dem Calliope mini ablegen.

      4. Verbindung zum Grove-Anschluss sollte automatisch hergestellt werden.

      5. Die Bezeichnungen finden sich auf den Programmierblöcken wieder. Durch das Anpassen dieser Bezeichnungen fällt das Programmieren leichter. Aus diesem Grund ändere die Bezeichnungen wie folgt:

      6. Wechsel zurück auf PROGRAMM NEPOprog. Anschließend findest du die Bezeichnungen oder auch neuen Programmierblöcke im Experten-Modus. Dafür klickst du auch den Stern mit der 2.

    • Bevor wir Programmieren solltest du dich noch mit deinem Benutzer anmelden, den du aus einem vorherigen Calliope-Kurs von mir bekommen hast.

      Falls du keinen Kurs bei mir besucht hast, aber den Calliope mini schon kennst und auch hast, schreibe mir eine kurze Nachricht, dann lege ich dir einen Benutzer in meiner Gruppe an, damit du deine Lösungen zu den Aufgaben unkompliziert einreichen kannst.
    • Nun ist die Vorbereitung abgeschlossen und du kannst mit dem Programmieren loslegen. Probieren wir es zunächst gemeinsam aus.

    • Erste Programmierschritte

      Wähle in der Kategorie Aktion den Unterpunkt Bewegen aus. Dort findest du alle Programmierblöcke, die für eine Bewegung des Calli:bots genutzt werden können.

      Damit unser Calli:bot ein Stück vorwärts fährt, wählen wir den ersten Block aus der Liste. Wir stellen hier Motor_links und Motor_rechts ein. Außerdem setzen wir das Tempo der Motoren für beide jeweils auf 50%. Anschließend fügen wir im Programm einen Warte-Block ein, damit unser Programm 5000ms wartet bevor es die nächste Aktion ausführt und dabei stoppen soll.

      Das Programm sieht dann wie folgt aus:

      Herunterladen des Programms

      1. Achte darauf, dass der Calliope und der Calli:bot ausgeschaltet sind.
      2. Schließe das USB-Kabel an deinen Calliope mini.
      3. Schließe das andere Ende des USB-Kabels an deinen Computer an. (Dabei sollte die Status-Leuchte des Calliope mini leuchten (gelb/orange).
      4. Lade das Programm auf deinen Calliope mini, wie du es bereits aus einem vorherigen Kurs kennst.
      (Empfehlung: nutze den Programmplatz 01 auf dem Flash-Speicher. Dafür nennst du das Programm z.B. 01_Bewegen.hex und das Programm was noch mit 01...hex existiert entfernst du. Dann hast du dein Programm auf dem 1. Programmspeicherplatz und kannst schneller starten.)
      5. Nach dem Herunterladen, ziehe das USB-Kabel vorsichtig vom Calliope ab.
      6. Schalte den Calli:bot ein. (Auf der Rückseite gibt es 2 Tasten. Ein/On zum Einschalten und Aus/Off zum Ausschalten.) (Der Calli:bot wir das letzt Programm, was er gestartet hatte, erneut ausführen.)
      7. Drücke die Reset-Taste bis alle LEDs vom Display leuchten. Dann sollte anschließend die 1. LED für den 1. Programmspeicherplatz aufleuchten.
      8. Um den 1. Programmspeicherplatz auszuwählen drücke die Tasten A und B gleichzeitig.

      Nun sollte der Calli:bot fahren bzw. das Programm ausführen.

      Wenn du fertig bist mit Testen und Ausprobieren, schalte den Calli:bot wieder aus.

    • Als nächstes probieren wir negative Zahlen für das Tempo, also -50%.


    • Ausblick

      Beim nächsten Mal werden wir uns noch etwas mit Bewegungen beschäftigen.

    • In der ersten Lektion hast du den Calli:bot zusammengesetzt (das Fahrgestell mit dem Calliope mini verbunden) und erste Bewegungen ausprobiert. In dieser Lektion werden wir ein paar Programmierübungen mit den Motoren durchführen.

    • Tipp: Wenn der linke und rechte Motor bei gleicher Geschwindigkeitseinstellung nicht zusammen geradeaus fahren, kannst du die Geschwindigkeit so anpassen, dass einer schneller als der andere eingestellt wird, damit sie gemeinsam dann geradeaus fahren. In dem Fall gleicht die Software (also dein Programm) Hardware-"Probleme" (unterschiedliches Verhalten der Motoren) aus.

    • Ausblick

      In der nächsten Lektion werden wir uns mit dem Optimieren von Programmen beschäftigen.

    • Erst lesen, wenn du die Aufgaben zum Quadrat fahren aus der letzten Woche und Dreieck fahren beendet hast.

    • Ausblick

      In der nächsten Woche werden wir einen Sensor in unsere Programmierung integrieren, so dass der Calli:bot seine Umgebung  wahrnimmt.

    • Eine LED ist eine Leuchtdiode. LED steht dabei für Light Emitting Diode. Auf deutsch heißt es lichtemittierende Diode und bedeutet Licht aussendende Diode.

      Die Funktionsweise einer LED ist uns bereits aus der Tierwelt bekannt. Denn überspitzt formuliert ist zum Beispiel das energiegeladene Glühwürmchen eine fliegende LED. Der Unterschied besteht einzig darin, wie die Atome im Inneren angeregt und somit zum Leuchten gebracht werden. Den Leuchtkäfern gelingt dies durch eine chemische Reaktion. Bei der LED passiert das mithilfe elektrischen Stroms – kurz: Elektrolumineszenz.
      Eine Leuchtdiode besteht aus einer Anode und einer Kathode. Für den Stromfluss zwischen beiden Polen sorgt ein Draht, der sogenannte Bonddraht. Hierüber fließt die notwendige Energie für die gewünschte Elektrolumineszenz.
      Auf der Kathode sitzt ein Chip, der umgeben ist von einer Kunststofflinse, die den Chip schützen und das Licht im Raum verteilen soll. Der zur Lichterzeugung verwendete Chip ist in eine sogenannte Reflektorwanne eingesetzt, durch die eine gute Lichtausbeute und ein hoher Wirkungsgrad erzielt wird.
      Beim Chip handelt es sich um einen Halbleiterkristall aus zwei verschiedenen Materialien, welche unterschiedlich dotiert sind. Das bedeutet, dass ein Überschuss an positiven oder negativen Ladungsträgern existiert. Fließt nun Strom, reagieren die Elektronen, und es wird Energie in Form von Photonen freigesetzt. Die LED leuchtet.


      Neun Vorteile der LED auf einen Blick

      1. Sehr geringer Stromverbrauch. LEDs sind äußerst effizient, wenn es darum geht Energie in Licht umzuwandeln.

      2. Hohe Lichtausbeute. LED-Leuchtmittel können mit relativ wenig Strom viel Leuchtkraft entwickeln.

      3. Lange Lebensdauer. LEDs müssen deutlich weniger oft ausgetauscht werden als herkömmliche Glühbirnen.

      4. Leichter Austausch/Wechsel durch einheitliche Fassung.

      5. Enthält keine gesundheitsgefährdenden Stoffe, wie beispielsweise Quecksilber. Eine beschädigte LED-Lampe ist nicht gefährlich.

      6. Keine Einschaltverzögerungen. LEDs entfalten sofort nach dem Einschalten die gewünschte Leuchtkraft.

      7. Keine UV-Strahlung. UV-Strahlung bedeutet Wärme, da LED-Lampen kein UV-Licht abstrahlen, eignen sie sich besonders gut für Orte, an denen eine Erwärmung ungünstig wäre.

      8. Funktionieren auch bei extremen Temperaturen. LED-Lampen sind bei Temperaturen bis zu minus 60 Grad Celsius einsatzfähig.

      9. LED-Lampen sind vielseitig einsetzbar. Ihre geringe Hitzeentwicklung und die vielen Möglichkeiten bezüglich Lichtintensität, Lichtfarbe und Form machen sie universell einsetzbar.

      (Quelle: https://www.vattenfall.de/infowelt-energie/funktionsweise-einer-led-vorteile)

    • Wer etwas mehr zur Herstellung einer LED wissen möchte, kann sich das Video von der Sendung mit der Maus ansehen:


    • Kommen wir nun zu unserem Calli:Bot. Wir wollen die LEDs, die der Calli:Bot besitzt leuchten lassen. Der Calli:Bot besitzt auf der Unterseite seines Fahrgestells 4 RGB LEDs. Sie funktionieren wie die RGB-LED auf dem Calliope mini. 

      Ein kleines Programm für das Einschalten der RGB-LED des Calliope Mini (in der Farbe rot) sieht wie folgt aus:


      _R steht bei mir für die RGB-LED am Calliope mini. Öffnet man die Auswahlliste, sind auch alle RGB-LEDs des Calli:Bot verfügbar. Die Beschriftung der RGB-LEDs des Calli:Bot sind dabei die Gleichen, wie in der Konfiguration, was wir zu Beginn des Kurses bereits durchgenommen hatten. Die Beschriftung der RGB-LED des Calliope wird hingegen vom System festgelegt.


      Wie du es vielleicht noch vom Calliope mini Kurs kennst, kannst du die RGB-LED mit einem Block einschalten und eine Farbe festlegen, in der die LED leuchten soll und mit einem weiteren Block wieder ausschalten. Damit wir festlegen können, wie lange eine LED leuchtet, nutzen wir den Warte-Block und geben die Zeit in Millisekunden ms an, bevor der nächste Block ausgeführt wird und in meinem Fall die LED ausgeschaltet wird.

      Die Programmier-Blöcke für die RGB-LED befinden sich in der 1. Programmblock-Palette in der Kategorie Aktion. 


      Der Warte-Block befindet sich in der Kategorie Kontrolle.

      Eine kleine Besonderheit gibt es noch für die LEDs des Calli:Bot. Du kannst sie alle gleichzeitig ansteuern und programmieren. Wenn alle zur gleichen Zeit in der gleichen Farbe leuchten sollen, ist dies ganz nützlich und spart Programmieraufwand und Speicherplatz.

    • Der Calli:Bot besitzt noch 2 weitere LEDs. Dies befinden sich oben an der Vorderseite und sind rot. Sie können auch nur rot leuchten. Aufgrund ihrer Anordnung kann man sie zum Beispiel als Blinker verwenden.

      Die Programmierung ist prinzipiell ähnlich der RGB-LED, jedoch wählen wir keine Farbe aus, sondern schalten die entsprechende LED ein oder aus. 


      Das einzig "schwierige" dabei ist den Programmierblock zu finden. Dieser ist in der erweiterten Programmierpalette 2 (mit dem Stern) unter Aktion und dann Statusleuchte zu finden. Siehe dazu folgendes Bild:


    • Ausblick

      Im nächsten Kursinhalt werden wir den Ultraschallsensor kennenlernen.

    • Der Ultraschallsensor ist der Sensor, der wie 2 Augen aussieht und an der Vorderseite des Calli:Bot angesteckt ist. Der Sensor misst in welcher Entfernung ein Objekt oder Hindernis zum Calli:Bot steht. Dabei wird ein Ultraschallsignal ausgesendet, es reflektiert an einem festen Objekt und wird vom Ultraschallsensor wieder empfangen. Anhand der Zeit, die das Signal vom Aussenden bis zum Empfangen braucht, berechnet der Roboter beziehungsweise das Programm, wie weit das Hindernis entfernt ist. In der folgenden Grafik ist es schematisch dargestellt.

       Quelle: https://www.generationrobots.com/blog/de/ultraschallsensoren-fur-kollisionvermeidung/

    • Um die Programmierung des Sensors kennenzulernen, werden wir als erstes den Messwert auf dem Calliope mini ausgeben lassen. Den Block für den Ultraschallsensor findest du in der 2. Blockpalette unter der Kategorie Sensoren. Da die Liste dort sehr lang ist, musst du ein bisschen nach unten scrollen, um den Block für den Ultraschallsensor zu finden.

      Dieser Sensorblock hat eine dunkelblaue Verknüpfungsstelle, das bedeutet es werden Zahlenwerte ermittelt.

      Im folgenden Beispiel siehst du, dass dieser Block mit dem "Zeige Text"-Block verbunden ist. Dadurch werden die gemessenen Werte auf dem Calliope mini ausgegeben. Da so eine Messung in einem Bruchteil einer Sekunde erfolgt, sollte man die Messung öfter durchführen lassen, wie im Beispiel in einer Wiederholungsschleife. Damit man die Zahlen auf dem Display auch lesen kann, muss noch ein "warte ms"-Block eingebunden werden, da unsere Augen die Werte sonst nicht so schnell lesen können.


    • Ausblick

      Bei nächsten Mal werden wir uns den Lichtsensor genauer ansehen.

  • Hervorgehoben
    • Der Lichtsensor befindet sich auf der Unterseite des Calli:Bots und ist durch die Kugelhalterung geschützt. An der Kugelhalterung befindet sich eine Öffnung mit 3 Aussparungen. Die helle Diode in der Mitte ist eine Infrarot-LED und die dunklen Dioden sind Infrarot-Sensoren (Infrarot kurz IR). Die LED sendet ein Infrarot-Signal aus und die Reflexion wird von den beiden IR-Sensoren empfangen. Anhand der Messwerte kann man somit zwischen hell (weiß) und dunkel (schwarz) unterscheiden.

       Quelle: https://spacehal.github.io/docs/sensoren/irSensor

    • Für die Verwendung und Programmierung sollte man folgendes beachten, die Linie sollte sich vom Untergrund gut unterscheiden können. Zum Beispiel weiße Linie auf schwarzem Untergrund oder schwarze Linie auf weißem Untergrund. Die ideale Linie sollte entweder schmaler als der Abstand der beiden IR-Sensoren sein, so dass die Sensoren reagieren sollen, wenn die Linie gesehen wird. Oder die Linie ist ein wenig größer als der Abstand der beiden IR-Sensoren und die Sensoren reagieren, sobald der Untergrund zusehen ist. Außerdem sollte der Untergrund und die Linie das IR-Signal reflektieren können und nicht "verschlucken".

      Ich habe verschiedene Materialien ausprobiert und am besten eignete sich eine etwas glattere Oberfläche. Isolierband könnte als Linie funktionieren. (Dies lässt sich auch gut wieder ablösen.)

    • Programmierbeispiel zur Linienverfolgung

      Da das Programmierbeispiel etwas komplexer ist, stelle ich meine Lösung zur Verfügung.


      Es gibt 4 Zustände, die möglich sind.

      1. Beide IR-Sensoren liefern eine dunkle Linie, dann sollen beide Motoren gleich schnell drehen.
      2. Der linke IR-Sensor sieht eine dunkle Linie und der rechte IR-Sensor sieht den hellen Untergrund, dann muss sich der rechte Motor drehen, um zu korrigieren.
      3. Der rechte IR-Sensor sieht eine dunkle Linie und der linke IR-Sensor sieht den hellen Untergrund, dann muss sich der linke Motor drehen, um zu korrigieren.
      4. Wenn beide IR-Sensoren den hellen Untergrund sehen, ist die Linie zu ende, oder der Roboter ist von der Linie komplett abgekommen und soll anhalten. (Da es nur diese 4 Zustände gibt, kann man 3 Zustände mit einer Bedingung definieren und den letzten mit sonst nutzen.)

    • Kompasssensor

      Mit dem Calliope mini kannst du auch den Kompasssensor programmieren, um genauere Kurven zu fahren. Dabei sollte man daran denken, dass der Kompasssensor vor jedem Einsatz kalibriert werden muss. Der Calliope mini fordert einen auf ihn erst zu schütteln und dann in alle Richtungen drehen, bis auf dem Display alle LEDs aufleuchten.

      Berührungssensor

      Der Calli:Bot ist außerdem mit 2 Berührungssensoren ausgestattet, so dass eine Stoßstange angebaut werden könnte. In der NEPO Umgebung sind diese Sensoren jedoch noch nicht implementiert. An dieser Stelle müsste man aktuell (Stand: Dez. 2022) auf die MakeCode-Programmierumgebung wechseln.

      Abschluss

      Ich hoffe, dir hat der Kurs Spaß gemacht und du hast deinen Calli:Bot durch die Gegend fahren lassen. Vielleicht hast du ja ein paar eigene Aufgaben für deinen Calli:Bot entwickelt. Du kannst mir auch gern von deinen Ideen mit dem Calli:Bot berichten. Viele Grüße und ein schönes Weihnachtsfest wünscht dir deine Trainerin Katrin Gerling