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

 

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:

Debugging minibot weiterlesen

Abschluss der Verkabelung des minibot

Wie gestern auf Twitter angekündigt, ging es weiter mit der Verkabelung meines neuen minibot. Und das konnte endlich abgeschlossen werden! Der aktuelle Stand soll natürlich wie immer hier dokumentiert werden. Und warum mich ein Nicht-Rastermaß sehr genervt hat, sieht man auch später. Aber der Reihe nach.

Zwei Schaltregler - leider unterschiedlich groß
Zwei Schaltregler – leider unterschiedlich groß

Abschluss der Verkabelung des minibot weiterlesen

Neues Jahr, neuer Bot – minibot

Ja, wie das so mit Nachwuchs ist. Man findet erst mal weniger Zeit, für sich und seine Hobbys. Darunter leidet leider auch diese Seite etwas, weil die Prioritäten (hobbymäßig) auf meinen Podcasts Robotiklabor und Reich & Knapp liegen.

Nun war es mit dem letzten Bot irgendwie nicht so richtig weitergegangen und er war ja nun auch wieder etwas groß geraten. Außerdem wollte ich mich bereits seit langer Zeit an ROS (Robot Operating System) wagen.
Der Focus wandert also aktuell etwas weg vom Hardwaredesign, hin zu einer Arbeit bzw. Umsetzung mit bereits existierenden Software-Bibliotheken/-Komponenten. Und mit ROS muss man das Rad nicht komplett neu erfinden, so wie ich es aus Neugierde und Spaß mit der bisherigen direcs-Software bisher tat. Mit allen Vor- und Nachteilen, die letzteres so mit sich brachte.

Ich habe mich nun also in 2017 für ein sehr kleine, fertige Fahr-Plattform entschieden, den RP6 von Conrad – allerdings nur für das nackte Fahrgestell.

Oben drauf soll eine einfach Platine zur Verkabelung und Montage der Sensoren und Elektronik montiert werden. Zur Verwendung kommen voraussichtlich folgende Komponenten

  1. Ein Raspberry Pi („Raspi“) – das Hirn des Roboter.
  2. Ein Hokuyo URG-04LX-UG01 Laserscanner – der vorerst einzige Sensor des Roboters.
  3. Ein Sparkfun Monster MotoShield – zur Ansteuerung der beiden Motoren.
  4. Update: Ein Adafruit DC & Stepper Motor HAT for Raspberry Pi – Mini Kit – zur Ansteuerung der Motoren per I2C.
  5. Ein 0815-Schaltregler – zur Erzeugung der notwendigen 5V-Spannung für den Raspi.
  6. Ein Akku – die Stromversorgung für den Roboter.

Ach ja, heißen soll der Roboter – wie immer sehr kreativ ;) – „minibot„.

Wie das Ganze bisher aussieht? Hier wie immer die aktuellen Fotos. Ich bin gespannt über euer Feedback!

minibot mit Schrauben als Platinenhalter
minibot mit Schrauben als Platinenhalter

Neues Jahr, neuer Bot – minibot weiterlesen

T-962 kein schlechter SMD-Reflow-Ofen – zumindest nach Hack

SMD-Bauteile lassen sich grundsätzlich selbst von Hand einlöten, aber hier sind meines Erachtens nach gewisse Grenzen. Die Teile und Pinabstände werden immer kleiner, und besonders kleine und damit leichte Teile schiebt man beim Einlöten mit einem Lötkolben leicht weg – kein einfacher Vorgang also.

Auf der Suche nach einem bezahlbaren Hobby-Reflow-Ofen stieß ich auf den T-962 bzw. T962. Ein ziemlich günstiger Ofen aus China, den man bequem und trotz der Ferne sehr schnell Singapur bei Ebay bestellen kann. Für unter 180 € erwarb ich einen solchen Ofen, der innerhalb von 3 Werktagen (offenbar aus einem Lager aus Deutschland) geliefert war!

So, wie der Reflow-Ofen out-of-the-box geliefert wird, sollte er auf keinen Fall in Betrieb genommen werden!

Warum?
T-962 kein schlechter SMD-Reflow-Ofen – zumindest nach Hack weiterlesen

Überarbeitung der Deckplattenbefestigung

Bisher war die Deckplatte mit jeweils zwei Schrauben und den dreieckigen Haltern an den Aluprofilen befestigt. Hier besteht aber das Risiko, dass es mehr Möglichkeiten gibt, wo sich etwas lockern kann.

Darum wurden nun 5 mm-Gewinde in die senkrechten Profile gebohrt. Das Ganze lässt das ganze trotz weniger Schrauben wesentlicher stabiler erscheinen. Und hier die Bilder im Detail:

Die Aluprofile mit selbst gemachten 5mm-Löchern
Die Aluprofile mit selbst gemachten 5mm-Löchern

Überarbeitung der Deckplattenbefestigung weiterlesen

Eine Zwischenebene für den omnibot

Damit die Elektronik auf dem Bot gut untergebracht werden kann, wurde eine Zwischenebene aus Kunststoff eingebaut. Diese hat außerdem den Vorteil, dass sie nicht-leitend ist. Dadurch können Platinen so ohne Kurzschlussrisiko problemlos montiert werden.

Halter für die Zwischenebene
Halter für die Zwischenebene

Eine Zwischenebene für den omnibot weiterlesen