Verkabelung der Encoder

Da ich mit dem neuen Chassis ja bessere Odometrie bekommen wollte, als mit dem Raupenantrieb, war es langsam an der Zeit die Encoder der Motoren zu verkabeln.

Hier sprechen wir von vier Leitungen pro Motor: GND, 3.3 Volt, „links“ und „rechts“. Diese sollen am besten per Flachbandkabel mit dem Raspberry Pi verbunden werden. Hierzu habe ich mir eine kleine Adapterplatine mit Wannenstecker gelötet:

Auf die kleinen Pins kommen die Stecker von den Motoren.
Auf die kleinen Pins kommen die Stecker von den Motoren.
Etwas unscharf, aber man bekommt eine Idee.

Auf dem Motor HAT für den Raspberry Pi ist praktischerweise noch Platz für eigene Bauteile, hier habe ich nun den Wannenstecker für das Flachbandkabel als Gegenstück eingelötet und mit den GPIOs der Pi verbunden.

Die Unterseite des Motor HAT
Die Unterseite des Motor HAT
Die vier grünen Leitungen sind jeweils für die Richtung "vorwärts" eines Motors.
Die vier grünen Leitungen sind jeweils für die Richtung „vorwärts“ eines Motors.

Und da man am Ende immer vergessen hat, wie die Belegung war, hier schnell ein Foto für meine eigene Dokumentation:

PS.: Ja, hier fehlen noch ein paar Pins links und rechts für GND und 3,3 Volt. Kommen…!

Neue Motoren, neuer Schaltregler

Durch das neue Chassis für den minibot, und damit den neuen vier Motoren, stieg der Stromverbrauch derart an, dass ein neuer Schaltregler her musste. Dieser regelt die Spannung von der LiPo-Batterie auf 6 Volt für die Motoren bzw. das Motor-Hat herunter.

minibot - Neuer Schaltregler 1
minibot – alter (links) und neuer Schaltregler (rechts)

Neue Motoren, neuer Schaltregler weiterlesen

Ein neues Fahrgestell für den minibot

Wie sich bei Tests herausstellte, sind die zuvor aufwändig montierten Lichtschranken/Encoder offenbar nicht das Gelbe vom Ei. Wie man im folgenden Screenshot gut erkennen kann, erzeugt die Lichtschranke nämlich Impulse, obwohl die Räder still stehen:

Ungewollte Lichtschranken-Impulse
Ungewollte Lichtschranken-Impulse

Ein neues Fahrgestell für den minibot weiterlesen

Spannungsmessung mit AD-Wandler am Raspberry Pi – verbessert mit I2C

Bisher hatte ich für meinen Roboter die Akku-Überwachung mittels MCP3008 realisiert. Aber irgendwie funktionierte dieser auf einmal nicht mehr – und lässt sich wegen SPI nicht groß auf dem Raspberry Pi debuggen. Also habe ich mir eine schöne neue Lösung mit I2C gesucht. Außerdem wurde das OLED komplett neu angesteuert und die Spannung überwacht. Spannungsmessung mit AD-Wandler am Raspberry Pi – verbessert mit I2C weiterlesen

minibot Radencoder für den RP5/RP6 mit Aufkleber als Download

Odometrie

Wie weiß man, wie weit ein Roboter gefahren ist oder wo er sich befindet? Mit Odometrie! Um dieses für meinen minibot umzusetzen habe ich auf Radencoder zurückgegriffen, die bei jeder Bewegung der Räder Impulse an ein Lichtschranken auslösen. minibot Radencoder für den RP5/RP6 mit Aufkleber als Download weiterlesen

Der Adafruit BNO055 9-DOF Sensor IMU Breakout macht es einem nicht leicht – oder doch?

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

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

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

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:

minibot - hello world
minibot – hello world