Um bei einem Roboter festzustellen, in welche Richtung er sich wie weit bewegt (hat), nutzt man Odometrie, also Wegmessung. Dieses hilft bei einer Orientierung im Raum, um zum Beispiel festzustellen, ob die Anweisung „fahre x Sekunden lang“ oder „fahre y weit“ auch wirklich funktioniert hat. Der Adafruit BNO055 9-DOF Sensor IMU Breakout macht es einem nicht leicht – oder doch? weiterlesen
Autor: Markus Knapp
ROS auf dem Raspberry Pi – Teil 3: Ansteuerung einer LED mit Python
Der Vollständigkeit erst mal eine Erklärung noch ohne ROS: Eine LED mit dem Raspberry Pi mit Python und RPi.GPIO Library ist denkbar einfach. ROS auf dem Raspberry Pi – Teil 3: Ansteuerung einer LED mit Python weiterlesen
Raspberry Pi Kamera-Fehler mmal ENOSPC beheben
Beim Testen meiner Raspberry Pi-Kamera mittels
raspistill -o test.jpg
kam seit einigen Tagen immer diese Fehlermeldung:
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC mmal: camera component couldn't be enabled mmal: main: Failed to create camera component mmal: Failed to run camera app. Please check for firmware updates
Zuerst wurde natürlich eines der letzten Updates durch sudo apt-get update und sudo apt-get upgrade als Ursache vermutet. Aber Fehlanzeige. Auf Betriebsystem-Eben erschien alles einwandfrei. Für das Ubuntu ist die Kamera offenbar einsatzbereit. Raspberry Pi Kamera-Fehler mmal ENOSPC beheben weiterlesen
ROS auf dem Raspberry Pi – Teil 2: Ubuntu Mate anpassen
Nachdem ich im ersten Teil beschrieb, wie man ROS auf einem Raspberry Pi installiert, geht es nun um Anpassungen, die ich anschließend vornahm.
ROS auf dem Raspberry Pi – Teil 2: Ubuntu Mate anpassen weiterlesen
ROS auf dem Raspberry Pi – Teil 1: Installation und Test
Nun ist es also soweit: Nach viel Zeit mit dem Lesen von Büchern – ja, echten Büchern aus Papier – und dem Stöbern in sehr vielen Online-Tutorials und sonstigen Webseiten, habe ich endlich das Robot Operating System (ROS) auf einem Raspberry Pi 3 zum Laufen bekommen. Hier werde ich nun erklären, bzw. eine Art Anleitung schreiben, wie das funktioniert. Außerdem zeige ich meine ROS-Programme , die meinen selbstgebauten Roboter minibot steuern oder einfach nur eine LED ansteuern („ROS LED Blinky“).
ROS auf dem Raspberry Pi – Teil 1: Installation und Test weiterlesen
Spannungsmessung mit AD-Wandler am Raspberry Pi – Update
Damit das für den minibot angeschaffte OLED-Display auch einen vernünftigen Nutzen hat, soll es unter anderem für die Überwachung der Akku-Spannung genutzt werden. Dazu sind drei Schritte notwendig: Spannungsmessung mit AD-Wandler am Raspberry Pi – Update weiterlesen
OLED? Grafik! Eine Batterie-Anzeige
Wenn das zuletzt gezeigte OLED-Display schon ein grafisches ist, dann sollte man das auch nutzen. Gesagt getan. Hier das Ergebnis:

Ansteuerung eines OLED-Displays via I2C
Ich finde ja, ein Roboter der etwas auf sich hält, benötigt ein Display. :) Nicht nur, dass es „was hermacht“, es ist auch hervorragend zum Anzeigen wichtiger Informationen oder zum Debuggen hilfreich.
Der Einfachheit halber entschied ich mich beim minibot für ein kleines und günstiges OLED-Display, welches via I2C angesteuert wird. Damit kann es sehr einfach für einen Raspberry Pi, als auch für einen Arduino genutzt werden. Die Auflösung des LCD beträgt 128×64 Pixel und es ist ganze 0,96″ groß – für meine Zwecke aber völlig ausreichend. Aber Vorsicht: Es wird nicht immer die gleiche Version der Platine geliefert. Manchmal sind + und – je nach Lieferung vertauscht (aber stets korrekt beschriftet)!
Es ist übrigens ein grafisches Display. Das bedeutet, man kann nicht nur Text, sondern auch Bilder anzeigen oder selbst Linien, Kreise etc. zeichnen. Für diesen Zweck gibt es zwei fertige Bibliotheken, für die Adafruit mal wieder ganze Arbeit geleistet hat!
Besser wäre es gewesen, ein Original Adafruit-Display zu kaufen, denn diese stellen mal wieder eine super Anleitung zur Ansteuerung zur Verfügung.
Und das Ganze hat dann auch mal auf Anhieb funktioniert – sogar mit eigenem Font:

Motoransteuerung reloaded
Nachdem ich letztes Mal ewig nach einem Fehler bei der Ansteuerung des Monster Moto Shields suchte, lief es am Ende noch immer nicht mit beiden Motoren – und vor allem nicht in beiden Fahrtrichtungen! Aber woran lag es?
Debugging minibot
Manchmal sieht etwas so einfach aus: Schaltplan skizzieren, alles aufbauen und los geht’s. Das dachte ich auch bei meinem neuen Roboter dem minibot. Aber leider bewegten sich die Motoren meines kleinen Bots kein Stück.
Lange suchte ich den Fehler in der neu erstellten Test-Software, die ich (erstmals) in Python programmierte. Insbesondere, da das Monster Moto Shield zur Geschwindigkeitsregelung der Motoren PWM (Pulsweitenmodulation) benötigt. Diese wird mit dem verwendeten Python-Modul GPIO per Software erzeugt. Zum Mitmachen und Suchen des Fehlers hier einmal der verwendete Sourcecode: