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
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“).
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:
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?
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: