Heute werde ich Ihnen zeigen, wie Sie einen Koffer für den Raspberry Pi 4 zusammenbauen, der aus einer Himbeere einen echten Mini-Computer macht.
Das Gehäuse ist teilweise 3D-gedruckt und teilweise aus transparentem Acryl, sodass Sie die "Innenseiten" unseres Mini-PCs sehen können. Um den Prozessor zu kühlen, habe ich einen Ice Tower-Kühler verwendet, aber den Lüfter nicht am Kühler, sondern an der Kastenwand befestigt.
Ich habe auch ein OLED-Display in die Vorderseite des Gehäuses eingebaut, das die IP-Adresse und Daten des Raspberry wie CPU-Leistung und -Temperatur, Speicher und Speichernutzung anzeigt.
Hier ist ein Video der Montage, des Gehäuses und des Displays:
Was Sie benötigen, um Ihren eigenen Raspberry Pi 4 Mini-Desktop-Computer zu erstellen
- Raspberry Pi 4 (jedes Modell reicht aus)
- Micro SD Karte;
- Raspberry Pi Netzteil;
- Kühler Eisturm;
- I2C OLED-Display;
- Flachbandkabel;
- Buchsenstecker;
- Befestigungsschrauben;
- Acryl 2mm;
- Schwarzer Kunststoff für 3D-Drucker (PLA).
Sie benötigen außerdem einen 3D-Drucker, um das Kunststoffteil des Gehäuses zu drucken. Ich verwende den Creality Ender 3 Pro, der meiner Meinung nach Erschwinglichkeit und Qualität kombiniert.
Für die Montage ist kein Lasergravierer erforderlich, obwohl dies die Herstellung von Körperteilen erheblich erleichtert. Sie können sie jederzeit einfach von Hand mit den vorhandenen Werkzeugen schneiden oder einen Laserschneideservice verwenden. Ich habe einen K40-Desktop-Lasergravierer verwendet.
Lassen Sie uns unseren Raspberry Pi 4 Fall zusammenbauen
Wir drucken den Körper auf einem 3D-Drucker
Ich begann damit, ein 3D-Modell des zukünftigen Boxens in Tinkercad zu erstellen .
Laden Sie das Modell herunter
Entwicklung eines Fallmodells unter Berücksichtigung der beabsichtigten Platzierung des Raspberry Pi in der Box. Gemäß dem Plan sind USB- und Ethernet-Anschlüsse an der Vorderseite verfügbar, während Strom-, HDMI- und Audioanschlüsse an der Rückseite vorhanden sind.
Das OLED-Display befindet sich an der Vorderseite des Gehäuses über den Anschlüssen. Oben befestigen wir es mit zwei kleinen Clips, unten mit einem Plastikclip mit einer Schraube. Ich habe diese Methode zuvor beim Erstellen eines Arduino-basierten Reaktionszeitgebers verwendet .
Ich werde die "Himbeere" auf den Messinggestellen installieren, die mit dem Eisturm geliefert wurden. Ich habe gerade ein paar M2.5-Löcher hinzugefügt.
Ich ziehe meine SD-Karte nicht oft aus der Himbeere, daher habe ich keinen Ausschnitt hinzugefügt, um das Entfernen zu erleichtern. Wenn Sie dies vorhaben, fügen Sie einfach einen runden Ausschnitt auf der Rückseite des Gehäuses hinzu. Das Ersetzen der SD-Karte ohne diesen Ausschnitt ist etwas schwieriger, da Sie zuerst Ihren Einplatinencomputer aus der Verpackung nehmen müssen.
Ich habe unser Mini-Computergehäuse aus schwarzem Kunststoff mit einer Schichthöhe von 0,2 mm und einer Deckkraft von 15% in 3D gedruckt. Gleichzeitig habe ich beim Drucken die Ausschnitte für das Display und die Anschlüsse auf der Vorderseite berücksichtigt. Dies kann einfach in einem 3D-Modellierungsprogramm durchgeführt werden. Sie müssen auch einen kleinen Plastik-Display-Clip drucken.
Raspberry Pi und Kühler einbetten
Nachdem der Hauptteil des Gehäuses fertig ist, installieren wir den Raspberry Pi darin. Schrauben Sie zuerst die Messingpfosten in die Löcher in der Basis.
Beachten Sie, dass ich die Ausrichtung der Schrauben und Füße, die mit dem Eisturm geliefert werden, so geändert habe, dass sie direkt in den Boden des Gehäuses eingeschraubt werden und keine Durchgangslöcher erfordern. Wenn Sie das Handbuch zum Eisturm lesen, werden Sie feststellen, dass die Ständer und Schrauben vertauscht sind.
Wir müssen den Lüfter vom Kühler entfernen, damit wir ihn an der transparenten Seitenwand befestigen können. Wir stellen den Lüfter genau hier auf, um sicherzustellen, dass kühle Luft von der Außenseite des Gehäuses angesaugt und dann durch die Lüftungsschlitze auf der gegenüberliegenden Seite ausgestoßen wird.
Installieren Sie die Halterungen gemäß den Anweisungen an der Unterseite des Eisturmkühlers. Stellen Sie sicher, dass Sie alles richtig machen.
Platzieren Sie die Himbeere an ihrem Platz und verwenden Sie dann den zweiten Satz Messingstreben, die in den Boden des Gehäuses geschraubt sind, um alles zu sichern.
Kleben Sie das Kühlkörperpad auf den Prozessor und entfernen Sie die obere Schutzfolie. Setzen Sie den Ice Tower-Kühlkörper auf das Heizkissen des Prozessors und befestigen Sie ihn mit vier Schrauben in den Messingständern.
Installieren des OLED-Displays
Jetzt müssen wir das OLED-Display installieren. Wenn Ihre Anzeigestifte nicht verlötet sind, löten Sie sie auf die Rückseite des Displays.
Schieben Sie die Oberkante des Displays unter die Plastikklammern und drücken Sie sie vorsichtig hinein.
Verwenden Sie den 3D-gedruckten Clip und befestigen Sie ihn mit einer kleinen Schraube. Zum Festziehen der Schraube kann eine flexible Welle oder ein 90-Grad-Winkelschraubendreher erforderlich sein.
Jetzt müssen wir die Drähte zum OLED-Display führen. Sie müssen 4 Verbindungen zu den GPIO-Pins (General Purpose I / O Interface) herstellen - zwei für die Stromversorgung und zwei für die Kommunikation. Ich habe ein kurzes Überbrückungskabel aus DuPont-Anschlussstiften und Flachbandkabel hergestellt. Sie können auch mehrere Steckbrettstifte oder Jumper verwenden, um das Display mit Ihrem Malinka zu verbinden.
Schließen Sie nach dem Zusammenbau des Kabels eine Seite des Kabels wie folgt an die Rückseite des Displays und die andere an die GPIO-Pins an:
- VCC → Pin1 3,3 V Stromversorgung;
- GND → Pin14 Masse;
- SCL → Pin3 SCL;
- SDA → Pin2 SDA.
Mir ist aufgefallen, dass es zwei Versionen dieser OLED-Displays gibt. Die Reihenfolge der Platzierung der Kontakte ist geringfügig unterschiedlich. Stellen Sie also sicher, dass Sie die Stromversorgung an die richtigen Pins anschließen.
Wir machen Acrylwände
Im Allgemeinen sind wir mit den inneren Teilen unseres Falles fertig. Lassen Sie uns nun einige Acrylwände machen, um es zu vervollständigen.
Ich öffnete Tinkercad (kostenlose 3D-Modellierungssoftware - ed.) Wieder und fand grob heraus, wo sich der Kühlkörper des Eisturms befinden sollte, sodass sich die Lüfterbefestigungslöcher an der richtigen Stelle an den Seitenwänden befanden. Dann exportierte ich ein Bild der Gehäusewände, um es in Inkscape zu öffnen und ein Lasergravur-Layout zu zeichnen.
Wir machen zwei Acrylwände: eine mit einem Ventilator für Ansaugluft, die andere mit Öffnungen für Abluft.
Sie können den Umriss des Teils entfernen, da wir nur den Umriss der Wand und die Löcher darin schneiden müssen. Im Allgemeinen muss das Modell ein Lüfterloch und vier Schraubenlöcher enthalten. Es ist auch wichtig, Löcher hinzuzufügen, um die Acrylwand am zuvor bedruckten Gehäuse zu befestigen.
Dann habe ich die Form der Wand dupliziert, an der der Lüfter installiert werden soll, und anstelle des Lochs eine Reihe von Sechsecken gezeichnet. Die Logik ist einfach: Sechsecke sind für den Abluftstrom.
Laden Sie ein Modell von Acrylwänden
herunter Laden Sie ein Modell eines Teils des Gehäuses für den 3D-Druck herunter
Wenn Sie keine Lasermaschine für solch präzises und komplexes Schneiden haben, bohren Sie einfach an derselben Stelle runde Löcher (ca. 8 mm Durchmesser).
Wir schneiden! Für die Seitenwände habe ich 2mm klares Acryl verwendet.
Sie können jedes gewünschte Acryl verwenden - durchscheinend getönt oder undurchsichtig. Das am meisten verfügbare Plexiglas ist 3 mm dick. Im Allgemeinen spielt die Dicke keine Rolle, Sie haben nur etwas dickere Kanten.
Um den Lüfter an der Seitenwand zu montieren, drücken Sie mehrere M3-Muttern in die entsprechenden Schlitze. Am einfachsten ist es, die Mutter auf eine ebene Fläche zu legen, das gewünschte Loch darüber zu positionieren, um den Lüfter zu sichern, und zu drücken, bis sie einrastet. Die Muttern halten fest, sodass Sie beim Anziehen der Schrauben keinen Schraubenschlüssel verwenden müssen.
Wenn Sie Lüfterschrauben verwenden möchten, werde ich Ihnen sofort mitteilen, dass diese zu kurz sind, um durch Acryl, Lüfter und Mutter zu passen. Es ist auch nicht der beste Weg, einen Lüfter anzubringen.
Schrauben Sie das Seitenglas mit vier Sechskantschrauben M3 x 8 mm an das 3D-gedruckte Gehäuse.
Dies ist schwierig, da sich in den Löchern des bedruckten Gehäuses keine Gewinde befinden.
Schließen Sie nun den Lüfter an eine 5-V-Stromversorgung an und installieren Sie die zweite Acrylplatte (mit Auslasslöchern). Roter Draht zu Pin4 (5V) und schwarzer Draht zu Pin6 (Masse).
Damit ist die Montage abgeschlossen. Unser Raspberry Pi 4 Mini Desktop ist fertig. Jetzt muss das Display funktionieren.
Programmieren des OLED-Displays
Damit die Anzeige funktioniert, müssen Sie ein Python-Skript ausführen. Dazu müssen Sie die "Himbeere" ausführen.
Der Raspberry Pi kommuniziert mit dem Display über das I2C-Protokoll. Berücksichtigen Sie dies also unbedingt in Ihren Einstellungen. Überprüfen Sie auch, ob Sie Python-smbus- und i2c-tools-Bibliotheken installiert haben. Sie sollten standardmäßig sein, aber hier ist es besser, sie zu überschreiben und trotzdem zu überprüfen.
Das folgende Skript basiert auf einem der Skripte in der Python Adafruit-Bibliothek für OLED-Anzeigemodule. Einige Änderungen wurden von Shahizat Nurgaliev vorgenommen , um den angezeigten Daten die CPU-Temperatur hinzuzufügen und das Anzeigeformat zu ändern.
# Copyright (c) 2017 Adafruit Industries
# Author: Tony DiCola & James DeVito
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import subprocess
# Raspberry Pi pin configuration:
RST = None # on the PiOLED this pin isnt used
# Note the following are only used with SPI:
DC = 23
SPI_PORT = 0
SPI_DEVICE = 0
# Beaglebone Black pin configuration:
# RST = 'P9_12'
# Note the following are only used with SPI:
# DC = 'P9_15'
# SPI_PORT = 1
# SPI_DEVICE = 0
# 128x32 display with hardware I2C:
disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)
# 128x64 display with hardware I2C:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
# Note you can change the I2C address by passing an i2c_address parameter like:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST, i2c_address=0x3C)
# Alternatively you can specify an explicit I2C bus number, for example
# with the 128x32 display you would use:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, i2c_bus=2)
# 128x32 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))
# 128x64 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))
# Alternatively you can specify a software SPI implementation by providing
# digital GPIO pin numbers for all the required display pins. For example
# on a Raspberry Pi with the 128x32 display you might use:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, dc=DC, sclk=18, din=25, cs=22)
# Initialize library.
disp.begin()
# Clear display.
disp.clear()
disp.display()
# Create blank image for drawing.
# Make sure to create image with mode '1' for 1-bit color.
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
# Get drawing object to draw on image.
draw = ImageDraw.Draw(image)
# Draw a black filled box to clear the image.
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Draw some shapes.
# First define some constants to allow easy resizing of shapes.
padding = -2
top = padding
bottom = height-padding
# Move left to right keeping track of the current x position for drawing shapes.
x = 0
# Load default font.
font = ImageFont.load_default()
# Alternatively load a TTF font. Make sure the .ttf font file is in the same directory as the python script!
# Some other nice fonts to try: http://www.dafont.com/bitmap.php
# font = ImageFont.truetype('Minecraftia.ttf', 8)
while True:
# Draw a black filled box to clear the image.
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Shell scripts for system monitoring from here : https://unix.stackexchange.com/questions/119126/command-to-display-memory-usage-disk-usage-and-cpu-load
cmd = "hostname -I |cut -f 2 -d ' '"
IP = subprocess.check_output(cmd, shell = True )
cmd = "top -bn1 | grep load | awk '{printf \"CPU Load: %.2f\", $(NF-2)}'"
CPU = subprocess.check_output(cmd, shell = True )
cmd = "free -m | awk 'NR==2{printf \"Mem: %s/%sMB %.2f%%\", $3,$2,$3*100/$2 }'"
MemUsage = subprocess.check_output(cmd, shell = True )
cmd = "df -h | awk '$NF==\"/\"{printf \"Disk: %d/%dGB %s\", $3,$2,$5}'"
Disk = subprocess.check_output(cmd, shell = True )
cmd = "vcgencmd measure_temp |cut -f 2 -d '='"
temp = subprocess.check_output(cmd, shell = True )
# Write two lines of text.
draw.text((x, top), "IP: " + str(IP,'utf-8'), font=font, fill=255)
draw.text((x, top+8), str(CPU,'utf-8') + " " + str(temp,'utf-8') , font=font, fill=255)
draw.text((x, top+16), str(MemUsage,'utf-8'), font=font, fill=255)
draw.text((x, top+25), str(Disk,'utf-8'), font=font, fill=255)
# Display image.
disp.image(image)
disp.display()
time.sleep(.1)
Skript für OLED-Anzeige herunterladen
Sie müssen die ursprüngliche Adafruit-Bibliothek von Github herunterladen , um die Einrichtung abzuschließen, indem Sie die folgenden Schritte ausführen.
Öffnen Sie ein neues Terminalfenster und wechseln Sie in das Bibliotheksverzeichnis:
cd Adafruit_Python_SSD1306
Installieren Sie die Bibliothek für Python 3:
sudo python3 setup.py install
Anschließend können Sie die obige Datei stats.py oder die Beispieldatei stats.py im Adafruit-Verzeichnis ausführen. In diesem Fall erhalten Sie nur ein etwas anderes Anzeigelayout.
Wechseln Sie in das Verzeichnis mit dem Skript stats.py:
cd examples
Führen Sie das Skript aus:
python3 stats.py
Ich empfehle, das Skript zu testen, um sicherzustellen, dass die Anzeige fehlerfrei funktioniert, bevor Sie festlegen, dass es automatisch gestartet wird.
Um das Skript für die automatische Ausführung zu konfigurieren, müssen Sie das Skriptverzeichnis suchen, dann crontab öffnen und eine Zeile hinzufügen, um es auszuführen:
@reboot python3 /home/pi/stats.py &
Natürlich müssen Sie den Namen des Verzeichnisses / home / pi / ändern, um das hervorzuheben, in dem Sie das gewünschte Skript gespeichert haben.
Vergessen Sie nicht, & am Ende hinzuzufügen, damit Malinka weiter ausgeführt wird und das Skript im Hintergrund ausgeführt wird.
Starten Sie Ihren Raspberry Pi neu, um das Skript automatisch auszuführen. Danach sollten Sie die angezeigten Statistiken auf dem OLED-Display sehen, wenn Sie Ihren Mini-PC starten.