Einführung TinkerGen Bittle
Bittle ist ein kleiner, wendiger und leistungsstarker Roboterhund. Er stellt ein ideales Werkzeug für das Erlernen, Unterrichten und Erforschen von Robotern dar. Mit einem speziell angefertigten Arduino-Board, das alle instinktiven und anspruchsvollen Bewegungen koordiniert, können Sie verschiedene Sensoren anbringen, um weitere Sensorik für “Wahrnehmungen” des Roboterhundes hinzuzufügen. Sie können auch künstliche Intelligenz integrieren, indem Sie einen Raspberry Pi oder andere KI-Chips montieren.
Der Start mit dem Bittle ist einfach, da bereits bei der Auslieferung ein Programm mit vorkonfigurierten Bewegungsabläufen installiert ist. Diese Bewegungen lassen sich mithilfe der beiliegenden Fernbedienung aufrufen. So kann der Bittle ohne jeglichen Programmieraufwand rennen, sitzen oder Pfote geben.
Der Roboter kann nach den ersten „Gehversuchen“ selber programmiert werden.
Die Programmierung kann über verschiedene Wege erfolgen. Mit einfachen blockbasierten Programmbausteinen, aber auch über Hochsprache wie Arduino und Python ist die Programmierung möglich.
Insbesondere Schülerinnen und Schüler können mittels Arduino (C++), Python oder grafisch über die TinkerGen IDE Programme schreiben oder bereits bestehende Programme erweitern und verändern.
Weitere Informationen zur Programmierung finden Sie hier: https://github.com/PetoiCamp/OpenCat
Die OpenCat-Software funktioniert neben dem Bittle, auch auf dem Nybble (eine andere Roboterplattform). Die Software kommuniziert dabei mit einem Arduino kompatiblem Mikrocontroller mit dem Namen NyBoard, der wie auch viele Arduino Mikrocontroller auf dem Chip ATmega328P basieren. Eine ausführlichere Dokumentation finden Sie auf der Herstellerseite.
Hardwareübersicht
Roboter, einschließlich des Bionischen Roboterhundes (Bittle) von Tinkergen, bestehen aus verschiedenen Komponenten, die miteinander arbeiten. Anhand des äußeren Erscheinungsbilds ist es möglich, zu erkennen, wie sie fortgeschrittene Bewegungsfunktionen ausführen können. In dieser Anleitung werden wir uns ausführlich mit den Modulen befassen, aus denen Bittle besteht, und wie sie miteinander interagieren.
Hauptkomponenten
An dieser Stelle werden die Hauptkomponenten des Bittle Roboterhundes erläutert.
Servos
Es gibt Servomotoren in jedem beweglichen Gelenk, für Schulter-, Hüft- und Kopfgelenk. Servos sind Motoren, die präzise gesteuert werden können, um sich auf einen bestimmten Winkel zu drehen. Ein Servo ähnelt einem Elektromotor – tatsächlich handelt es sich um einen Elektromotor mit einem Steuerchip, einem Potentiometer und Getrieben zur Geschwindigkeitsreduzierung, die alle in einem Kunststoffgehäuse untergebracht sind. Es werden Potentiometer verwendet, um den Drehwinkel der Welle zu messen, und mithilfe eines Steuerkreises können wir den Servoschaft präzise auf eine vorgegebene Position bewegen. Im Gegensatz zu einfachen Gleichstrommotoren, bei denen nur die Richtung und Geschwindigkeit gesteuert werden können, sind Servos in Robotikanwendungen einzigartig nützlich.
Batterie
Unter dem Bauch vom Bittle Roboter ist eine Batterie installiert, die über den Mikro-USB-Anschluss aufgeladen werden kann.
Die in Bittle von Tinkergen verwendete Batterie ist eine Lithium-Ionen-Batterie. Eine Lithium-Ionen-Batterie ist eine leichte, leistungsstarke Batterie, die in Laptops und Mobiltelefonen verwendet wird. Dies macht sie ideal für Geräte, die eine hohe Stromstärke haben aber dennoch leicht sein müssen.
Hauptplatine
Wenn man die hintere Abdeckung entfernt, ist die Oberseite der Hauptplatine zu sehen. Aufgrund von Produktaktualisierungen gibt es verschiedene Versionen der Hauptplatine im Bittle-Kit von Tinkergen. Die Version des Mainboards kann für die spätere Programmierung relevant sein. Man kann feststellen, um welche Version des Bittle-Mainboard es sich handelt, indem man den Aufdruck der Version auf dem Mainboard abliest.
Auf der Vorderseite der Platine, die auch NyBoard genannt wird, ist die Version zu erkennen. In diesem Fall handelt es sich um die Version V1_1.
Bittle Roboter programmieren
Wichtiger Hinweis
Schalten Sie auch die Batteriestromversorgung ein, wenn Sie USB zum programmieren bei Bittle verwenden. Die Stromversorgungskapazität von Standard-USB Ports reicht nicht aus, um Bittle ordnungsgemäß zu betreiben, und kann zu einem Stromstoß am USB-Anschluss des Computers führen, der die USB-Selbstwiederherstellungssicherung auslöst und den aktuellen USB-Anschluss vorübergehend deaktiviert (Sie können den Computer neu starten, um ihn zu reaktivieren). Bitte laden Sie die Batterie vor jeder Verwendung von Bittle vollständig auf. Obwohl eine schwächere Batterie Bittle betreiben kann, führt eine niedrigere Spannung zu einer Verschlechterung der Leistung des Servos. Wenn Sie Bittle längere Zeit nicht verwenden, bewahren Sie die Batterie bitte aufgeladen an einem trockenen und belüfteten Ort auf.
Hardwarekonfiguration
Am Mainboard gibt es einen Schiebeschalter, mit dem die Verwendungsmethode ausgewählt werden kann. Je nachdem ob das integrierte Arduino-Board oder ein externer Mikrocontroller (wie Raspberry etc.) verwendet werden soll. Es können die Schalterpositionen “Arduino” oder “RPI” ausgewählt werden.
Der I2C-Schalter ändert den Master der I2C-Geräte (Gyro/Beschleunigungsmesser, Servo-Treiber, externes EEPROM).
Bei der Standardeinstellung „Arduino“ verwendet NyBoard den eingebauten ATmega328P als Master-Chip und bei „RPi“ verwendet NyBoard externe Chips, die über die I2C-Ports (SDA, SCL) angeschlossen sind, als Master-Chip.
Der Modus “Arduino” ist standardmäßig ausgewählt.
Verbindung von Bittle zu Ihrem Computer
Um Bittle mit Ihrem PC zu verbinden, heben Sie zuerst die hintere Abdeckung an.
Befestigen Sie dann den USB-TTL-Konverter (kleine grüne Platine) an Bittles Hauptplatine – achten Sie auf die Stiftreihenfolge! Sie sollte auf dem USB-TTL-Konverter und der Hauptplatine von Bittle gleich sein. Um dies zu gewährleisten, kann man die Beschriftung der Kontakte an beiden Seiten prüfen.
Anschließend verbinden Sie den USB-TTL-Konverter mit dem PC über ein USB Kabel.
Programmierumgebung und Programmiersprache wählen
Falls Sie sich bereits mit der Arduino IDE vertraut gemacht haben, empfehlen wir Ihnen, diese weiterhin zu nutzen. Falls Sie sich schon mit Scratch oder ähnlicher Software vertraut gemacht haben, können Sie sich mit der TinkerGen IDE vertraut zu machen, da sie Ihnen wahrscheinlich recht einfach erscheinen wird.
Im Falle, dass Sie ein Lehrer sind, empfehlen wir Ihnen einfach weiterzulehren, womit Sie bereits Ihre Schüler unterrichtet haben. Falls Sie gerade erst in das Thema einsteigen, würden wir Ihnen die TinkerGen IDE empfehlen, da man sich schnell in diese einarbeiten kann.
Wenn Sie sich später dazu entscheiden, auf die Arduino IDE zu wechseln oder sie generell den Schülern zeigen möchten, ist das immer unter dem „Code“ Tab möglich. Dort wird das blockbasierte Programm als Arduino-Code angezeigt.
Programmieren mit Arduino
Arduino herunterladen
Laden Sie die neueste Softwareversion von der offiziellen Arduino-Website entsprechend Ihrem Computersystem herunter:
Verbindung von Arduino und Bittle
Nach der Installation öffnen Sie Arduino und gehen zu „Tools → Port“, um den entsprechenden COM-Port zu finden. Bei mehreren COM-Ports überprüfen Sie den Geräte-Manager Ihres Computers. Falls dieser nicht automatisch ausgewählt wird, wähle für den Port „Arduino Uno“ aus.
Verbindungstest
Schalten Sie den Bittle-Schalter ein, öffnen Sie den Arduino Serial Monitor, setzen Sie die Baudrate auf 115200 und drücken Sie die Bittle-Reset-Taste. Eine erfolgreiche Verbindung wird durch den Testcode von Bittle im seriellen Monitor angezeigt.
Einstellungen in der Arduinosoftware vornehmen
Bittle ist für Anfänger konzipiert und verwendet das Standard-Arduino-Entwicklungsboard mit dem gleichen offiziellen Bootloader wie das ATMega328PA (UNO-Entwicklungsboard). Richten Sie die Arduino-Umgebung ein, indem Sie unter „Tools → Boards“ „Arduino UNO“ im Bereich „Arduino AVR Boards“ auswählen.
Herunterladen von Beispielprogrammen
Auf dem Bittle Roboter ist bereits bei der Auslieferung ein Programm aufgespielt. Es ist ein sogenannter Arduino-Sketch mit dem Namen OpenCat.ino. Dieser Sketch reagiert auf die Daten, die andere Programme, wie Tinkergen Blocks an den Roboterhund senden.
Dieses Programm wird überspielt, wenn mithilfe der Arduino-Software Programme hochgeladen werden. Aber keine Sorge, das ursprüngliche Prgramm OpenCat.ino kann man immer wieder aufspielen.
ACHTUNG, an dieser Stelle ist ein Hinweis ganz wichtig. Bevor zu einem späteren Zeitpunkt der Sketch OpenCad.ino wieder auf den Bittle geladen wird, muss in dem Sketch in der Arduinosoftware die Versionsnummer des Mainboards eingestellt werden. Ansonsten könnte der Kontakt zum Mainboard abbrechen. In diesem Fall müsste der Bootloader neu aufgespielt werden. Wie das funktioniert erklären wir im weiteren Verlauf der Anleitung. An dieser Stelle empfiehlt es sich jedenfalls, das Github repository zum Bittle durchzulesen.
https://github.com/PetoiCamp/OpenCat.
Nun starten wir mit eigenen Programmen und werden den Bittle programmieren.
Erfahrene Arduino-Nutzer wissen, dass man auch beim Programmieren die Welt nicht neu erfinden muss. Daher verschafft man sich häufig mit Hilfe von fertigen Programmen einen Überblick über die Programmfunktionen. Fertige Beispielprogramme für den Bittle gibt es bei Github. Unter dem folgenden Link laden wir bei GitHub ein Softwarepaket herunter: https://github.com/PetoiCamp/OpenCat.
Im Ordner „ModuleTests“ befinden sich Test-Codes zum Testen unabhängiger Funktionsmodule. Als Beispiel testen wir an dieser Stelle den Sketch „testBuzzer.ino“ und laden ihn auf den Bittle Roboterhund. Voerher stellen wir natürlich in der Arduino Software das Board und den Port ein. Der Code wird sofort ausgeführt. Öffnen Sie den Seriellen Monitor mit einer Baudrate von 115200.
Tinkergen IDE und Blocks
Hier geht es nun um die blockbasierte Programmierung des Bittle Roboterhundes. Auf der Website von Tinkergen wählen wir zunächst die Kategorie Bittle aus.
Die Sprache der Internetseite kann in einem oberen Menü auf “Deutsch” eingestellt werden.
Zunächst verbindet man den Bittle mit Hilfe des USB-Kabels mit dem Computer. Danach klickt man auf „Connect“ bzw. “Verbinden”, um sich mit dem Bittle zu verbinden. An dieser Stelle erfolgt der Hinweis, dass der Treiber für den Bittle noch installiert werden muss, falls dies vorher noch nicht geschehen ist.
Die Treiber werden über den Geräteassistenten installiert.
Die Bedingung ist danach recht einfach bzw. recht gut vergleichbar mit der Bedingung von Scratch und vergleichbaren Blockbasierten Programmieroberflächen. Ein Beispiel dazu wäre dieses Programm, das sagt, dass der Roboter für eine Sekunde laufen soll, dann nach einer Sekunde stoppen soll und dann wieder nach einer weiteren Sekunde weiterlaufen soll.
Jetzt nur noch auf „Hochladen“ klicken, und schon ist der Roboter programmiert.
Wählen Sie den Port aus und klicken Sie auf „OK“.
Troubleshooting / Problemlösung
Spannungsversorgung
Es kann vorkommen, dass der upload des Codes erfolgreich war, aber der Bittle nur eine lustige Melodie von sich gibt. In den meisten Fällen liegt es dann daran, dass die Batterie nicht ausreichend geladen, oder ausgeschaltet ist.
Lösung: Batterie einschalten oder aufladen.
Probleme beim Upload
Es ist nicht möglich, ein Programm auf den Bittle zu laden. Der Fehler, der beim Hochladen des Programms auftritt, wird unten angezeigt.
Diese Fehlermeldung besagt, dass der PC keine Daten an das Mainboard senden kann. Dafür kann es verschiedene Gründe geben. In dem folgenden Schaubild visualisieren wir dazu eine Vorgehensweise zur Fehlersuche.
[1]. Führen Sie die folgenden einfachen Überprüfungen durch:
Vergewissern Sie sich, dass kein anderes Programm die serielle Schnittstelle verwendet. Wenn Sie die Arduino IDE und ihren seriellen Monitor geöffnet haben, kann dies die serielle Schnittstelle belegen.
Stellen Sie sicher, dass der Uploader ( grüne Platine) richtig an das NyBoard angeschlossen ist.
Vergewissern Sie sich, dass Sie das mitgelieferte USB-Kabel verwenden. Manche andere USB-Kabel haben nur zwei Adern für die Stromversorgung, aber keine Datenadern.
[2]. Für diesen Test können Sie einen einfachen Sketch auf den Bittle laden.
a) Wählen Sie in der Arduino IDE den Mainboard-Typ aus: Board-> Arduino AVR Boards-> Arduino Uno,
b) Laden Sie folgenden Sketch hoch
Datei-> Beispiele→04.Kommunikation→ASCIITable.
Mit der Petoi Desktop App, wählen Sie den Mainboard-Typ: NyBoard_V1_*, dann können Sie die Standard-Firmware aktualisieren.
Diese Software wird im späteren Verlauf dieser Anleitung thematisiert.
[3]. Installieren Sie den USB-Uploader-Treiber.
Mac: http://www.wch-ic.com/download/CH341SER_MAC_ZIP.html
Windows: http://www.wch-ic.com/downloads/CH341SER_EXE.html
Linux: http://www.wch-ic.com/downloads/CH341SER_LINUX_ZIP.html
[4]. Setzen Sie den Bootloader zurück.
https://docs.petoi.com/technical-support/burn-bootloader-for-nyboard
Sollte das Zurücksetzen des Bootloaders vorgenommen werden, muss danach die Grundkonfiguration der Gelenke (der Servomotoren) vorgenommen werden. Der sog. Gelenkkalibrator wird in dieser Anleitung ebenfalls beschrieben.
Gelenkkalibrator
Als Erstes müssen wir die Petoi Desktop App herunterladen. Den Link dazu findest du hier:
https://www.petoi.com/pages/software-apps
https://github.com/PetoiCamp/OpenCat/releases
Wenn du das getan hast, erhältst du eine ZIP-Datei.
Diese entpackst du und öffnest die UI.exe
In der Petoi Desktop App klickst du auf „Joint Calibrator“ oder, falls die App auf Deutsch angezeigt wird, auf „Gelenkkalibrator“.
Du kannst die Firmware des Bittle Roboters zurücksetzen, indem du auf „Firmware Uploader“ klickst. Wenn du ihn zurücksetzt, achte darauf, dass er gerade steht, da sonst der Lagesensor (MPU6050) auf dem Mainboard falsch konfiguriert wird, was später dazu führen wird, dass der Bittle nicht geradeaus läuft.
Danach wird der Bittle automatisch mit der Software verbunden.
Nun kannst du mithilfe des orangenen Justierwinkels, der mit dem Bittle geliefert wurde, die Position der Servos überprüfen. Sollten die Beine des Bittle nicht mit dem Justierwinkel übereinstimmen, kann die Position der einzelnen Servos mithilfe der Software angepasst werden.
Um die Kalibrierung zu starten, klickst du auf „Kalibrieren“ und nach Abschluss auf „Speichern“. Du kannst auch überprüfen, ob er normal stehen kann, indem du auf den „Aufstehen“ -Knopf drückst.