Roboter Hund Bittle
In diesem Kurs geht es darum, einen Roboterhund mit individuellen Fähigkeiten zu entwickeln.
Table of Contents
1. Learning Outcome
1.1. Einführung
Menschen haben Roboter erfunden, damit sie sehr langweilige oder schwere Arbeit nicht mehr selbst erledigen müssen. Ein Roboter ist in der Lage, komplexe Aktionen automatisch und sehr genau auszuführen. Roboter können von einem externen Steuergerät wie z.B. einem Joystick geführt werden oder die Steuerung befindet sich innerhalb des Roboters wie das Gehirn bei einem Menschen (🧠).
In diesem Kurs geht es um unsere Roboterhunde “Bittle” und ihre Erziehung. Mit deiner Programmierung können sie Aktionen ausführen oder Kunststücke machen.
1.2. Was du dafür brauchst
1.2.1. Hardware
- Bittle Roboterhund
1.2.2. Software
2. Einführung
Schaut euch zunächst die verschiedenen Arten von Robotern an:
Coole Roboter, oder? Auch die Programmierung ist nicht so schwierig. Man benötigt nur etwas Übung und Geduld 🧘♂.
Todo:
Diskutiere die folgenden Fragen mit deinem Nachbarn:
- Wo werden Roboter eingesetzt?
- Wie bewegen sich die Roboter im dargestellten Video?
- Hast du schonmal einen 4-beinigen Roboter wie eine Katze oder einen Hund gesehen?
- Wofür könnte man einen 4-beinigen Roboter nutzen?
Jetzt machen wir eine kurze Videopause 🥤. Das Video wurde an der DARPA Robotics Challenge (DRC) gemacht. Bei der Challenge sollten Roboter Rettungsaktionen ausführen. Ohne die richtige Programmierung ist für einen Roboter nichts selbstverständlich. Der Roboter kann nicht einmal von selbst das Gleichgewicht halten oder etwas greifen. Aber überzeuge dich selbst:
3. Grundlagen von Robotern und Programmierung
Jetzt kommen wir zu Bittle, unserem Roboterhund. In diesem Teil erhältst du Informationen über den Hund und lernst, wie ein Programmierer zu denken. Bittle sieht aus und funktioniert wie ein echter Hund.

Bittle ist zu vielen Dingen fähig, sieh dir die kurze Demo an.
Um solche Roboter herzustellen, benötigt man einige wichtige Komponenten:
- Control Board: Dies ist das Gehirn des Roboters. Du gibst dem Board mit deiner Programmierung Anweisungen und es wird diesen Anweisungen folgen.
- Motoren: Mit den Motoren kann sich Bittle bewegen. Sie wandeln elektrische Energie (Strom) in mechanische Energie (Drehmoment) um. Sie sind in verschiedenen Größen erhältlich.
- Batterie: Dies ist die Energiequelle für Roboter. Dadurch kann sich Bittle frei bewegen, ohne dass er an eine Steckdose angeschlossen werden muss.
Der digitale Zwilling des Roboterhundes spielt auch bei der Herstellung des Hundes eine Rolle. Der digitale Zwilling ist die digitale Darstellung des Hundes und beschreibt alle seine Komponenten.

Versuche einmal Bittle zu sagen, dass er sich setzen soll. Hat es etwas bewirkt? 🐶😵
Wahrscheinlich nicht. Derzeit versteht Bittle die Anweisungen nicht. Du musst dem Hund beibringen, was bei dem Befehl “Sitz!” zu machen ist. Wenn du Computern oder Robotern Anweisungen gibst, die sie verstehen und ausführen, wird das Programmieren genannt.
Ein Programm ist eine Liste von Anweisungen, die dann von dem Roboter ausgeführt werden. Oft ist es schwierig, die richtige Reihenfolge der Anweisungen zu erkennen. Man verwendet dann Flussdiagramme, um den Prozess zu planen. Ein Flussdiagramm zeigt einen Entscheidungsprozess, der ein bisschen wie ein Code aufgebaut ist. Wenn du zum Beispiel eine Tasse Tee zubereiten möchtest, dann könntest du ein Flussdiagramm wie dieses erstellen.

Die Bedeutung der Symbole ist unten angegeben:

Ein weiteres Beispiel für ein Flussdiagramm kann wie folgt sein: Stell dir vor, du müsstest eine Straße überqueren und es gibt keine Ampel auf der Straße. Du musst also überprüfen, ob die Straße leer ist und ob du sie überqueren kannst. Wenn ein Auto in der Nähe der Kreuzung ist, dann wartest du solange, bis es wieder sicher aussieht. Dies wird Entscheidungsprozess genannt. Versuche, ein Flussdiagramm für die Situation mit der Straßenkreuzung zu zeichnen.
Der Entscheidungsprozess spielt eine wichtige Rolle bei der Programmierung. Bevor du mit einem Projekt oder einer Programmieraufgabe beginnst, solltest du dir folgende Fragen stellen:
- Was sind die Ziele?
- Was weiß ich über das Projekt?
- Was muss ich lernen, um diese Aufgabe zu erledigen?
- Kann ich eine große Anweisung in kleine, einfache Anweisungen zerlegen?
4. Programmierung
In diesem Teil lernst du Bittle zu programmieren. Aufgeregt? 🤯
Um den Roboterhund zu programmieren, verwendest du die Codecraft-Software. Die Schnittstelle sieht so aus:

Zum Programmieren kannst du den Blockkatalog öffnen und einen Block in den Arbeitsbereich ziehen. Gehe die folgende Anleitung durch, damit du mit dem Programmieren beginnen kannst.
4.1. Roboter mit PC verbinden
Um das Programm auf dem Roboter hochzuladen, musst du Bittle an einen PC anschließen. Du benötigst folgende Dinge:
- Roboterhund
- USB-Kabel
- USB-Anschluss für Roboter (USB-TTL-Konverter)
Folge den unteren Schritten:
- Entferne die Abdeckung des Roboters.

- Stecke die Micro-USB-Seite des Kabels in den USB-Stecker und verbinde den USB-Stecker mit dem Roboterhund.

-
Verbinde das andere Ende des USB-Kabels mit dem PC.
-
Unter dem Hund befindet sich ein kleiner Knopf. Halte den Knopf einige Sekunden lang gedrückt, bis ein blaues Licht neben dem Knopf leuchtet. So wird der Roboter eingeschaltet.

- Öffne die Codecraft-Software über die Taskleiste.
![]()
- Wähle Bittle in der Hardwareauswahl aus.

- Klicke auf der linken Seite auf die Schaltfläche Verbinden. Wähle dein Gerät aus der Liste aus und bestätige mit OK.

- Du siehst ein Pop-Up-Fenster, das die Verbindung bestätigt. Wenn nicht, dann wende dich an einen Betreuer.

Sehr gut, der Hund ist mit dem Programm verbunden! Lies dir noch kurz eine Einleitung zu den Blöcken durch, dann kannst du mit dem Programmieren beginnen.
4.2. Programmierung mit Bausteinen
Um den Roboter zu programmieren, werden Blöcke verwendet. Blöcke haben verschiedene Formen und Farben. Hinter den Blöcken sind einzelne Code-Schnipsel. Der PC verwendet ein anderes Programm, um die einzelnen Schnipsel zu einem Programm zu fügen und auf den Roboter hochzuladen. Die Blöcke sind also nur eine Hilfestellung, um dir das Programmieren zu erleichtern.
4.2.1. Blockformen
Es gibt fünf verschiedene Blockformen in Codecraft:
- Kopfblock (Hat Block)
- Stapelblock (Stack Block)
- Boolescher Block (Boolean Block)
- Reporter-Block (Reporter Block)
- C-Block

Beschreibung:
- Kopfblock: Dies sind die Blöcke, die jedes Skript starten. Der Rest der Blöcke sollte am Kopfblock befestigt werden. Bitte beachte, dass verschiedene Kopfblöcke jeden Programmcode auf unterschiedliche Weise starten.
- Stapelblock: Diese Blöcke führen die Hauptbefehle aus. Sie sind oben mit einer Kerbe und unten mit einer Erhebung geformt, damit viele Stapelblöcke aufeinander gestapelt werden können.
- Boolescher Block: Sie können in entsprechenden sechseckigen Löchern platziert werden und können nicht ohne einen passenden anderen Block verwendet werden. Mit Boolean ist eine Bedingung (wahr oder falsch) gemeint. Erinnere dich an das Beispiel mit der Straßenkreuzung. Hier wurden auch boolsche Bedingungen verwendet, um eine Entscheidung zu finden.
- Reporter-Block: Reporter-Blöcke können überall dort platziert werden, wo Daten benötigt werden. Du kannst sie wie die Booleschen Blöcke nicht einzeln verwenden. Wenn es einen Steckplatz gibt, der einem Reporterblock entspricht, kann er nach Bedarf platziert werden. Reporter-Blöcke können Zahlen und Zeichenfolgen enthalten.
- C-Block: Diese Blöcke haben die Form eines „C“. Diese Blöcke wiederholen die Anweisungen innerhalb des Cs solange, wie ihre Bedingung wahr ist. Die Bedingung kann am Anfang oder am Ende des Blocks stehen und wird von dir festgelegt. Du könntest dem Hund zum Beispiel mit dem C-Block die Anweisung geben: „Laufe solange gerade aus, bis ich eine Taste auf der Fernbedienung drücke.“
🥱 Ein letzter Abschnitt, dann kannst du endlich mit Bittle spielen.
4.3. Katalog 📚
Es gibt etwa 10 Kataloge, in denen die Blöcke nach ihrer Anwendung unterteilt sind. Die wichtigsten Kataloge sind:
- System: Enthält Blöcke wie Setup & Loop, Buzzer-Blöcke und andere integrierte Hardware-Blöcke. Du brauchst diese Blöcke zum Starten des Programms.
- Skill: Enthält Blöcke mit vordefinierten Fertigkeiten wie Gehen, Sitzen, Liegestütze und vieles mehr.
- Control: Enthält Blöcke, die bei der Entscheidungsfindung helfen. Dies kann ein if-else-Block, ein C-Block oder ein Programmendblock sein.
Du kannst auch gerne die anderen Kategorien erkunden.
Es gibt einen wichtigen Block. Es ist ein spezieller Block, der nur einmal in einem Programm verwendet wird. Er heißt Setup & Loop Block. Du findest ihn im Systemkatalog. Dieser Block besteht, wie im Namen, aus 2 Teilen, Setup und Loop.
- Der Setup-Teil führt die darin enthaltenen Blöcke nur einmal aus. Dies kann verwendet werden, um Startmelodien abzuspielen. So kannst du dem Benutzer mitteilen, dass der Roboter gestartet ist.
- Der Loop-Teil führt die darin enthaltenen Blöcke wiederholt aus. Die Reihenfolge der Ausführung ist von oben nach unten.
Wenn du mehrere Setup & Loop Blöcke in deinem Programm hast, dann funktioniert dein Programm nicht wie gewünscht.
Jetzt kannst du mit dem Programmieren beginnen. Hier sind ein paar Aufgaben.
5. Tasks
5.1. Aufgabe 1 👩🏭 - Erste Tests
Teil 1
- Füge einen Setup & Loop-Block hinzu.
- Füge in Setup eine Buzzer-Melodie (Der Block heißt: “Buzzer play melody”) hinzu.
- Klicke auf der linken Seite auf die Schaltfläche hochladen (Upload). Warte, bis der Upload abgeschlossen ist.


Teil 2 👩🏭
- Verschiebe nun die Buzzer-Melodie von Setup auf Loop.
- Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.
Was beobachtest du? Was verändert sich, wenn man den Melodie-Block von Setup in Loop verschiebt?
Erklärung: Wenn ein Block im Setup ist, dann läuft er nur einmal zu Beginn eines Programms ab. Wenn ein Block in einer Schleife (Loop) ist, dann wird er immer und immer wieder ausgeführt (bis der Akku leer ist).
5.2. Aufgabe 2 - Lassen Sie den Hund laufen
- Entferne die Buzzer-Melodie, wenn du sie nicht mehr hören möchtest.
- Füge den Walk-Block aus dem Skill-Katalog innerhalb der Schleife (Loop) hinzu.
- Füge den Bewegungsblock (Execute the movement) nach dieser Schleife (Loop) aus. Dieser Block ist wichtig, da nur mit ihm eine Bewegung ausgeführt wird.
- Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.
Bittle sollte jetzt anfangen zu laufen. Sei vorsichtig, da er immer noch mit dem PC verbunden ist. Entferne den USB-Anschluss, um mit ihm spazieren zu gehen.
Erklärung: In der obigen Aufgabe hast du den Befehl Walk (Gehen) und dann die Bewegung ausführen (Execute the movement) verwendet. Der Befehl Walk wird nur zur Vorbereitung für die Aktion gebraucht. Ausgelöst wird die Bewegung mit dem Bewegung-ausführen-Block (Execute the movement).
5.3. Aufgabe 3 - Steuere den Hund mit der Fernbedienung. 👩🏭
- Füge die Blöcke wie im Bild ein und verbinde sie passend.

- Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.
- Zunächst beginnt Bittle zu laufen. Drücke nun die obere linke Taste auf der Fernbedienung.
Was siehst du? Hält der Roboter an?
Erklärung: In dieser Aufgabe hast du einen if-Block verwendet. Der If-Block ist eine Anweisung mit einer Bedingung, die vorher abgefragt wird. Wenn eine bestimmte Bedingung erfüllt ist, wird dieser Teil des Codes ausgeführt. Der Code wird übersprungen, wenn die Bedingung nicht erfüllt ist. Der If-Block ähnelt den Überlegungen aus deinem täglichen Leben.

Hier hast du den if-Block verwendet, um die Verbindung zwischen Roboter und Fernbedienung zu überprüfen. Wenn Bittle das Signal empfängt, dann ist die Bedingung des ersten If-Blocks korrekt und die Bedingung des zweiten If-Blocks wird überprüft. Jetzt wird geprüft, welche Taste gedrückt wurde. Wenn du die von dir programmierte Taste gedrückt hast, dann ist auch die zweite Bedingung korrekt und die Anweisung des zweiten If-Blocks wird ausgeführt. Wenn du eine andere zufällige Taste gedrückt hast, dann wird der if-Block übersprungen und der Rest des Codes läuft weiter.
Wow, du bist schon fertig und hast das Ende der heutigen Reise erreicht.
Schon fertig und noch Zeit?
Unten findest du noch zusätzliche Aufgaben 😉
6. Weitere Informationen zu Bittle
Möchtest du mehr über den Roboterhund erfahren? Diese Websites können dir helfen:
Grundlagen / Ich habe gerade erst angefangen:
Mittelstufe / Ich weiß etwas:
Fortgeschritten / Bring it on:
Scanne diesen QR-Code und erhalte alle Links direkt aufs Handy.

Wenn du Projektvorschläge oder andere Ideen hast, dann schreibe uns gerne eine E-Mail!

7. Zusätzliche Aufgaben
7.1. Aufgabe 4 🎮 - Programmiere eine Fernbedienung, um die Bewegung des Hundes zu steuern.
Erstelle einen Code für die Fernsteuerung wie im Bild.

Wenn du also die Vorwärts-Taste drückst, dann muss der Hund vorwärts gehen. Wenn du die Links-Taste drückst, dann muss Bittle nach links gehen. Am besten verwendest du if-Blöcke ähnlich wie in der vorherigen Aufgabe.
Du musst den if-Block mit „Infrared Receiver started“ nur einmal hinzufügen.
- Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.
Hat alles geklappt? Gute Leistung! 🔥
Versuche dich an der nächsten Aufgabe.
7.2. Aufgabe 5 - Roboterübung 🧘♂️
Schaue dir das unten an und hilf dem Roboter, einige Übungen zu machen.
Du kannst verschiedene fixed poses (Programmblöcke für einzelne Kunststücke) verwenden, damit die Hunde die Fitnessübungen machen. An dieser Stelle kannst du auch kreativ werden und dir eigene Fitnessübungen für Bittle überlegen.
7.3. Aufgabe 6 - Digitaler Zwilling
Ein digitaler Zwilling (oder „digital twin“ auf Englisch) ist eine digitale Nachbildung (zum Beispiel von einer Maschine). Dabei werden alle Daten über die Maschine wie die Betriebsanleitung, Sensordaten oder Programme gesammelt und verwaltet. Die Daten sind nicht nur aus der Anwendung des Bittle. Es können auch Daten aus der Konstruktion sein. Und sogar die Daten, die beim Recycling eines Bittle generiert werden, können im digitalen Zwilling gespeichert werden.
Was für ein Zweck hat ein digitaler Zwilling? Überlegt zusammen nach möglichen Vorteilen für ein Unternehmen, wenn es von einer Maschine einen digitalen Zwilling anfertigt.
Das ist alles, was wir für heute haben. Danke dass du so gut mitgemacht hast 🥳