Ein GPIO Display am Raspberry konfigurieren und andere Sachen

Hier in Kurz einmal meinen Weg, wie ich die Software (Retropie) auf dem RaspberryPi mit dem Raspberry Display eingerichtet habe.

Retropie hier runterladen und auf eine SD Karte „brennen“ (z.B. mit Win32 Disk Imager)
http://blog.petrockblock.com/retropie/retropie-downloads/

Eine Manuelle Installation ist auch möglich
http://blog.petrockblock.com/2012/07/22/retropie-setup-an-initialization-script-for-retroarch-on-the-raspberry-pi/

Nach dem ersten Einloggen über SSH dann erst mal

ausführen und das Dateisystem auf die gesamte Speicherkarte ausweiten (Punkt 1). Dies ist besonders dann notwendig, wenn man das Komplettimage runtergeladen und auf die Speicherkarte „gebrannt“ hat. Wenn man schon dabei ist, kann man auch gleich die Internationalisierungsoptionen (Punkt 4) auswählen und z.B. das Tastaturlayout (change keyboard layout) einstellen.

Danach dann gleich ein

Hier wählt man im ersten Schritt “UTF-8” aus. Im zweiten Schritt “Guess optimal character set”; im dritten “Terminus” und im vierten und letzten Schritt “6×12 (framebuffer only).”. Diese Einstellung sorgt dafür, dass wir die Konsole im kleinen Display besser lesen können.

Jetzt updaten wir einmal das System mit folgenden Befehlen

Damit sollte Retropie auf dem neusten Stand sein.

Bisher bleibt das über die GPIO Pins angeschlossene Display noch schwarz. Das wollen wir nun ändern.

Es wird ein kleines Skript runtergeladen und dann ausgeführt. Beim Ausführen bekam ich die Meldung, dass kein „FBTFT“ gefunden wurde und ob ich das System updaten wolle. Dieses habe ich mit Ja beantwortet.

Nun muss man noch ein bisschen in der Bootconfig von RaspberryPi rumfummeln.

Folgende Zeilen sollen in der config.txt am Ende eingefügt werden.

Jetzt muss SPI noch aktiviert werden.

Hier muss die Zeile mit „blacklist spi-bcm2708“ auskommentiert werden (mit # ).

Wenn man nun die Kommandozeile auf dem Display sehen möchte, muss man in cmdline.txt noch etwas anfügen.

Einfach am Ende der langen Zeile noch dies hier anhängen:

Natürlich nicht vergessen, alle Änderungen zu speichern.

Nach einem Reboot ( sudo reboot), sollte die Kommandozeile im Display zu sehen sein. Sobald jedoch EmulationStation (die grafische Oberfläche des Emulators) startet, bleibt das kleine Display schwarz. Hier ist noch ein bisschen Arbeit nötig.

Folgende Befehle nacheinander in der Kommandozeile eingeben:

Nun ist der FrameBufferKopierer installiert. Einfach mal „fbcp&“ in die Konsole eingeben. Schon sollte auch der Emulator nun auf dem Display laufen. Leider muss man bei jedem Neustart fbcp& eingeben, was bei einem Gameboy-Clone ohne Tastatur nur schwer möglich ist.

Es wird einfach ein neues keines Skript angelegt mit

Inhalt des Skriptes ist

Nun machen wir das neue Skript nach dem Speichern noch ausführbar mit

und fügen es der Gruppe und dem Besitzer „root“ zu

Damit unser kleines Skipt bei jedem Neustart ausgeführt wird, geben wir noch dieses in die Konsole ein

Nun sollte der Emulator auch bei jedem Neustart auf dem kleinen Display zu sehen sein.

Es kann sein, dass die Schrift im Emulator schwer zu lesen ist. Ein wenig Abhilfe könnte dies hier schaffen.

In dieser Datei runterscrollen bis zur „gamelist“ Sektion. Dort den Wert von „primaryColor“ auf 000000 ändern. Und dann noch die „fontSize“ von 0.03 auf 0.05 erhöhen.

Wer jetzt noch seine Buttons konfigurieren möchte, muss sich hier ein bisschen einlesen: https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons Vermutlich muss das Programm „retrogame“ neu kompliert werden. Das ist aber nicht weiter schlimm und steht im eben genannten Link.

Nun noch die richtigen ROMs auf die Speicherkarte kopieren und schon kann der Spaß losgehen.

Wer nun noch einen kleinen WLAN Stick am Raspberry nutzen möchte, kann dies einfach machen. In „interfaces“ müssen nur die richtigen Daten eingetragen werden.

Bei meiner Bluetooth Tastatur hapert es noch ein wenig. Bisher schaffe ich es nicht, dass die Tastatur nach einem Neustart verwendet werden kann. Bisher habe ich folgendes versucht. http://elinux.org/RPi_Bluetooth_keyboard_setup

Den letzten Befehl muss ich immer erst manuell ausführen, damit die Bluetooth Tastatur verunden wird. Eigentlich sollte der vorletzte Befehl genau dieses erübrigen.

Hier noch unsortiert die Links, die ich bei der Einrichtung studiert habe:

http://www.forum-raspberrypi.de/Thread-gameboy-pi-a
http://www.forum-raspberrypi.de/Thread-bitte-um-hilfe-bei-display?page=3
https://github.com/notro/fbtft/wiki/Framebuffer-use#framebuffer-mirroring
https://learn.adafruit.com/running-opengl-based-games-and-emulators-on-adafruit-pitft-displays/adding-controls
http://seite360.de/2013/10/12/retroppie-schritt-fur-schritt-zur-retrogame-emulationstation-mit-dem-raspberry-pi/
https://github.com/watterott/RPi-Display/blob/master/docu/FAQ.md
http://elinux.org/RPiconfig

You SLS – SLS 3D Drucker zum Nachbauen

Wer Lust und Zeit hat, kann sich seinen eigenen SLS 3D Drucker zusammenbauen.  hat angefangen dazu auf Instructables eine Anleitung zu schreiben.

You-SLS

18-year-old German student Lukas Hoppe has therefore spent the last year or so working on an open-source SLS 3D printer, and through a successful Indiegogo campaign, he now has the funds to complete and share his YOU-SLS machine.

Bei IndieGoGo hat Andreas auch eine Kampagne gestartet, um seine Maschine weiter zu verbessern, Einen 3D Drucker können die Unterstützer hierbei nicht erwerben. Es geht hier rein um Unterstützung bei der Entwicklung.

Insgesamt soll der SLS 3D Drucker an Material um die 2200 Euro kosten.

Ein paar Testdrucke – Becher

Ich habe meine 0.8mm Düse für den 3D Drucker wieder eingebaut. Was kann man gut mit dieser Düse machen? Naja, auf Grund der dicken Wände lassen sich damit gut einwandige Modelle drucken.

Zuerst habe ich mit etwas ganz Einfachem angefangen. Ein Sechseck, das noch oben weiter wird. Mir war das dann zu langweilig.

Einfacher Becher
Einfacher Becher

Also habe ich hier und da ein bisschen am 3D Modell herumgezerrt und heraus kam dieses tassenähnlihce Gebilde. Der Zacken hinten hat mich an einen Henkel erinnert. Nur kann man diesen hier nicht wirklich anfassen, da sich der Zapfen nach oben verjüngt und die Finger daran abrutschen.

Ewas mehr Ecken
Ewas mehr Ecken

Gleich ein neuer Versuch. Der Henkel ist nun henkeliger geworden. Jedenfalls rutscht man nun nicht mehr daran ab.

Becher mit
Becher mit „Henkel“

Alle Becher sind 5 cm hoch und haben einen Grundduchmesser von ca 8 cm. Gedruckt wurden sie in PLA in 0,2 mm Schichthöhe… So wirklich einzelne Schichten im klassischen Sinne gibt es aber nicht. Der Vorteil von einwandingen Modellen ist, dass man diese auch spiralförmig von unten nach oben hochdrucken kann. Statt also nach einer Umrundung den Druckkopf um 0,2 mm anzuheben, wird nun kontinuierlich der Kopf angehoben, während der Druckkopf seine Kreise zieht. Dies zieht einen optischen Vorteil nach sich. Es entsteht keine Naht an der Stelle, wo der Kopf angehoben wird und eine neue Schicht entsteht.

Die Wandstärke liegt bei ungefähr 0,9 mm. Das gibt ein Objekt dieser Größe genügend Stabilität. Da eine Umrundung recht schnell abgefahren ist, hat das Material, gerade bei dieser Dicke, nicht genügend Zeit, abzukühlen und fest zu werden. Hier musste ich mit zwei Lüftern für einen ausreichenden kühlenden Luftstrom sorgen.

 

Was kann diese Düse nicht? Kleine Objekte drucken. Nicht nur weil die Düse zu groß wäre, denn dies spielt bei einem Kreis oder Viereck keine große Rolle, sondern weil viel Material aus der Düse herauskommt, das erst einmal abkühlen muss. Kleine Objekte können gar nicht langsam genug gedruckt werden, damit diese Wartezeit erreicht wird. Zudem überträgt die große Fläche der Düse auch sehr viel Wärme auf die darunter liegenden bereits verfestigten Schichten, so dass diese wieder weich werden.

 

Hier die STL Datei: http://community.shapedo.com/guin/simple_cup

Hundeblinklicht Version 6

Mit dem Programm für das Blinklicht bin ich soweit zufrieden. Das Gehäuse lässt aber weiterhin Platz für Verbesserungen. Vor allem die Größe soll reduziert werden. Dies ist mir über die verscheidenen Versionen auch schon sehr gut gelaungen. Gerade der Sprung vom Arduino Mino Pro zum ATtiny und verkleinertem Akku hat das Gehäuse sehr schrumpfen lassen.

Hundeblinklicht
Altes Gehäuse mit dem Arduino Mini und großem Akku.

Zuerst hatte ich einen Arduino Mini Pro als Hirn für das Blinklicht benutzt. Der Arduino war überdimensioniert für die einfache Blinkaufgabe und hat auch zu viel Energie verbraucht.

Hundeblinklicht
Hundeblinklicht mit ATtiny und großem Akku.

Ein kleiner ATtiny ist völlig ausreichend und lässt das Gehäuse als auch den Stromverbauch kleiner werden.

Hundeblinklicht
Dies ist die Version, die gerade im Feld getestet wird.

Durch den verkleinerten Stromverbraucht konnte auch der Akku stark verkleinert werden. Ich verwende nun einen 3,7V 110 mAH Lithium Akku. Im Blinkbetrieb hat dieser Akku ca 12 Stunden durchgehalten.

Hundeblinklicht im Größenvergleich
Hundeblinklicht im Größenvergleich

Viel kleiner bekomme ich das Gehäuse nun nicht mehr. Der hintere schmale Teil wird vom Akku ausgefüllt und vorne sitzen der ATiny mit den ganzen Kablen und auch der Taster.

Jetzt muss ich mir immer noch eine gute Möglichkeit einfallen lassen, das Gehäuse bequem am Hundegeschirr zu befestigen. Bisher klebe ich den Blinki einfach mit Tesafilm an oder klette ein Klettband herum.

Hundeblinklicht V5 – Nachtrag

Im letzten Code gab es ein paar Unstimmigkeiten. Beim Testen habe ich festgestellt, dass durch die Schaltung selbst im Power Down Modus immer noch etwas über 1 mA fließt. Der Grund dafür war ganz einfach. Statt in den Power Down Modus zu gehen, wurden einfach nur die LEDs ausgeschaltet. Von Außen macht das keinen Unterschied, aber der Stromverbraucht ist schon enorm unterschiedlich.

Den Code habe ich nun etwas geändert. Leider funktioniert mein Code nun nicht mehr mit dem ATTiny45. Statt dessen habe ich nun den ATTiny85 eingebaut. Der Stromverbrauch im Power Down Modus liegt nun bei 0,1 µA. Diesen Wert zeigt jedenfalls mein Messgerät an.

Die Stromsparfunktion müsste eigentlich auch mit dem ATTiny45 funktionieren. Vielleicht finde ich noch heraus, was da schief läuft.

Hundeblinklicht, Version 5 – es wird Tiny

Der kleine Arduino, den ich bisher in den Hundeblinklichtern verbaut habe, war einfach zu groß und auch zu teuer. Ein kleiner ATTiny45 reicht für das bisschen Blinken völlig aus. Man könnte die Funktion natürlich auch als diskrete Schaltung aufbauen. Nachteil ist nur, dass diese Schaltung mit meinen hier vorhandenen Bauteilen alles andere als stromsparend ist. Der kleine ATTiny hingegen ist im Betrieb schon stromsparend und kann sogar noch in einen Schlafmodus versetzt werden. Somit erspare ich mir einen Schalter, mit dem ich die Stromzufuhr unterbechen muss. Der bereits vorhandene Taster schaltet nun zwischen den verschiedenen Modi durch. 1. Blinkmodus mit sehr hellen Blinkimpulsen. 2. Dauerlicht, das nicht ganz so hell ist, damit es nicht blendet. 3. Aus: der ATTiny wird in den Schlafmodus versetzt. Im Schlafmodus soll der Stromverbrauch so gering sein, so dass der verwendete Akku sehr lange hält. Laut dieser Seite http://www.mikrocontroller.net/articles/Sleep_Mode#Power_Down_Mode fließen nur um die 0,3 µA. Mein Messgerät zeigt in diesem Modus allerdings immer noch 1 mA an. Leider bin ich mir auch nicht so ganz sicher, ob ich den ATTiny richtig programmiert habe. Die Funktion für den Schlafmodus (Methode goToSleep)habe ich aus dieser Seite entnommen: http://www.arduino-hausautomation.de/2014/emils-ampel-attiny45-im-tiefschlaf
Vielleicht mache ich da was falsch. Viel Ahnung habe ich noch nicht.

Blinklicht für Hunde
Links Version 4, Rechts Version 5

 

 

Blinklicht für Hunde
Links Version 4, Rechts Version 5

Ich bin aber schon mal froh, dass der Schalter nun weg ist. Dieser war schwierig vor Wasser zu schützen.

Blinklicht für Hunde
Dank des neuen Innenlebens ist die neue Version um einiges kleiner geworden

Der Tester liegt im Innern des Gehäuses und kann duch Eindrücken des Gehäusedeckels (0,4 mm dickes Nylon) betätigt werden.

Blinklicht für Hunde
Hundeblinklicht, vorne: neue Version

Die seitlichen Arme habe ich nun auch wieder durch einen fertigen Schlauch ersetzt. Viel stabiler und transparenter. Es sind noch Pins am ATTiny frei. Da könnte ich noch eine Akkuanzeige einbauen. Wenn die Spannung des Akkus auf einen bestimmten Wert absinkt, fängt eine rote LED an zu blinken.