Raspberry Pi Projekte



3D-Drucker-Futter

Mitten im Wohnzimmer macht ein Haufen zusammengesteckter Elektronik natürlich nicht viel her. Vielleicht geht es noch als Kunst-Installation durch aber für den Alltag braucht der Raspberry Pi ein stabiles, halbwegs ansehbares Gehäuse. Kindersicher muß das Ganze auch noch sein.

Konzept

Erst war die Idee, ein Holzgehäuse zu zimmern. Im Zeitalter der 3D-Drucker könnte man aber auch einfach ein Gehäuse ausdrucken. Die Betonung liegt hierbei auf "einfach". Was natürlich mal wieder doch nicht ganz so einfach ist.

Denn bevor ein 3D-Drucker anfängt zu drucken, benötigt er erst mal eine 3D-Konstruktion die dann in einen Druckauftrag umgewandelt wird und dann gedruckt wird. Und man benötigt auch noch eine 3D-Drucker. Der Drucker war am schnellsten zu lösen, da ein Kollege sich einen zugelegt hat.

Schwieriger war schon die 3D-Konstruktion. Zuerst habe ich es mit dem 3D-Kontruktionsprogramm FreeCAD probiert, bin aber auch mit drei Versuchen nicht wirklich Vorwärts gekommen. Ich bin halt Programmierer, kein Konstrukteur. Dann bekam ich den Tipp, dass es auch 3D-Konstruktionsprogramme gibt, bei denen man das 3D-Objekt programmiert. Das klang dann schon eher nach einer für mich passenden Lösung.

Hinter den Vorschaubildern finden sich immer Links auf die Bilder in voller Größe oder die Webseiter der Tool.

OpenSCAD - The Programmers Solid 3D CAD Modeller

3D Objekte zu programmieren klingt zunächst etwas skuril. Beim genaueren hinsehen hat diese Vorgehensweise aber auch einen gewissen Scharm. Ich kann in der mir vertrauten Welt bleiben und alle gegebenen Größen schnell ändern, die Anpassung am Objekt macht dann das Tool.

Das Ganze hat natürlich auch ein paar Nachteile. Komplizierte Formen sind auch nicht gerade leicht zu programmieren. Und das rendern eines großen Objektes dauert eben seine Zeit.

OpenSCAD unterstützt einen bei der Arbeit sehr stark. Das fertig gerendete Objekt kann in alle Richtungen schnell gedreht und gezoomt werden, so das man sich die Ergebnisse der Programmierung sehr schön ansehenen kann. So macht das "programmieren" von 3D-Objekten einfach Spass. Und OpenSCAD ist auch noch Open Source!

Die Installation unter Linux ist simple. Die in den Repositories der Linux-Distributionen bereitgestellten Pakete sind leider sehr alt. Ich verwende deshalb die im Download-Bereich der Webseite bereitgestellten AppImage-Datei für Debian/Fedora Linux. Dabei haben sich die bereitgestellten Releases als sehr stabil gezeigt. Habe noch keinen Absturz erlebt. Mit dem Menü-Editor füge ich noch einen Menüeintrag hinzu und schon kann es losgehen.

Wenn es unbedingt Windows sein muss... Auch dafür gibt es im Download-Bereich einen Installer und ein Zip-Paket. Installieren oder auspacken und schon kann es losgehen.

OpenSCAD - Die Programmierung

Wie man mit OpenSCAD 3D-Modelle programmiert, ist nicht Inhalt dieser Seite!

Am Ende habe ich aber ein paar "Tipps & Tricks" oder "Best Practis" zusammengetragen. Wenn man diese beachtet, spart man sich viel nacharbeit bei der Änderung der gewünschten Dimension des Gehäuses.

Vorbereitung

Bei der Konstruktion des Gehäuses wäre es sehr praktisch, wenn man sehen könnte, wie die verwendeten Baugruppen im Gehäuse plaziert sind. Besonders die Höhe der einzelnen Baugruppen hat sich als Problem bein einem "schönen" Gehäuse herausgestellt.

Aus diesem Grund habe ich von allen verwendeten Baugruppen und Bauteilen mehr oder weniger detailierte Modelle erstellt. Diese können dann bei der Konstruktion verwendet werden, um den Platzbedarf zu bestimmen. Das Bild auf der rechten Seite zeigt z.B. die bisher entstanden Raspberry Pi Modelle.

Folgende Baugruppen sind mittlerweile entstanden:

  • RaspberryPi Zero, RaspberryPi 3B, RaspberryPi 4B, RaspberryPi Pico, RaspberryPi Camera HQ, RaspberryPi Fan
  • PiUSVplus HAT, UPS Pico HV30B plus HAT, Hifi Berry Dac Plus HAT
  • Leiterplatten-Vorlagen für RaspberryPi und HAT
  • Diverse Bauteile, die auf den Baugruppen verwendet werden (Buchsen und Stecker, Chips, ...)

Gehäuse für das Internet-Radio

Es ist mittlerweile die dritte Version des Gehäuses entstanden. Alle Versionen haben verschiedene Schwerpunkte. Die "Programmierung" der Konstruktion ist so konzipiert, dass an zentraler Stelle die gewünschten Maße für das Gehäuse eingestellt werden und sich dann die abhängigen Maße automatisch berechnen. Auch ist es relativ einfach, ein anderes Display zu verwenden (z.B. ein 10-Zoll-Display für mehr Platz).

Bei allen gleich ist die Ansicht von Vorn (siehe Bild auf der rechten Seite). Diese wird von den Abmessungen des 7-Zoll-Displays bestimmt.

Gehäuse für den StopMotionPi

Mein großes Open Source Projekt ist qStopMotion. Mit dem Raspberry Pi 3 ist qStopMotion auch auf dem Raspberry Pi die empfohlene Software für Stop Motion Film-Produktionen. Seit Neuestem gibt es von Raspberry eine Hight Quality Kamera Module. Zusammen mit einem alten Nikon-Objektiv entsteht ein ultrakompaktes Trickfilm-Aufnahmegerät.

In einem kleinen Gehäuse wird es sehr praktikabel für Schüler und Lehrer oder Kinder und Eltern.

Vorlage für ein Drei-Teile-Gehäuse

Nach dem zweiten dreiteiligen Gehäuse habe ich den allgemeinen Teil in eine Vorlage ausgelagert. Wenn also ein neues Gehäuse gebraucht wird, diese Vorlage hilft.

Quellen

Als Freund der Open Source Bewegung stehen die Quellen aller Baugruppen und Gehäuse als Quelltexte im Netz. Ein Klick auf das GitHub-Logo führt direkt zu den Quellen.

Für den vollen Funktionsumfang benötigt man alle Datei incl. Unterverzeichnisse. Was angezeigt bzw. als 3D-Druckerdatei exportiert werden soll, wird immer mit den globalen Variablen im oberen Teil der Quelltexte gesteuert.

                    
  // Which one would you like to see?
  displayFront = false;         // Front part of the case
  displayChassis = true;        // Chassis part of the case
  displayBack = false;          // Back part of the case
  displayAll = false;           // All parts together
  displayImage = false;         // All parts together in one image

  displayDevices = true;
  withThread = false;
                    
                  

Tipps & Tricks


Zahlen und Konstanten

Jede Zahl, die man mehr als einmal benötigt, sollte man als Variablen definieren. Das spart jede Menge Tip-Arbeit, wenn sich die Zahl einmal ändert. Und die Erfahrung zeigt, es ändert sich jede Zahl, mehrfach.

Wichtige Zahlen sollte man als "Konstanten" in eine eigene Datei auslagern und mit der include-Anweisung einbinden. Ich habe z.B. alle Maßangaben der einzelnen Baugruppen und Bauelement in separate Dateien mit dem Postfix "_Constants" ausgelagert. Darin sind dann unter anderem für den Raspberry Pi die Breite, Tiefe und Höhe definiert, aber auch Bohrloch-Abstand und Bohrloch-Durchmesser.

Die für die einzelnen OpenSCAD Anweisungen benötigten Positions- und Dimensionsangaben werden dann mit diesen Variablen berechnet. Eine Änderung einer Zahl zeigt sich dann nach einem Neuzeichnen sofort.

Zum nutzen der einzelnen Funktionen zum Zeichnen der Baugruppen sillte man mit der use-Anweisung einbinden. Damit ist es egal, ob man dort die Anzeige eines Modules eingeschaltet ist.

Baugruppen anzeigen

Eigentlich hatte ich mir eingebildet, dass ich ein gutes Vorstellungsvermögen habe. Die Konstruktion von 3D Gehäuseteilen ist dann doch noch mal eine neue Ebene.

Um zu sehen, wie alles zusammenspielt, ist es sehr hilfreich, so viele Baugruppen/Teile während der Konstruktion mit anzuzeigen. Das verlängert zwar die Zeit, die für das Rendern der Grafik benötigt wird, aber es zeigt genau ob es passt. Diese Anzeige muss aber abschaltbar sein, damit am Ende auch der Input für den 3D-Drucker generiert werden kann.

                    
  displayDevices = true;
  ...
  module case7front(withDevices = false) {
    ...
    if (withDevices) {
      ...
    }
  }
                    
                  
Yyy

Xxx.

                    
  code
  code