Menyatukan mini-PC berdasarkan Raspberry Pi 4 dengan tampilan yang mendemonstrasikan mode prosesor



Hari ini saya akan menunjukkan kepada Anda cara merakit kasing untuk Raspberry Pi 4, yang mengubah raspberry menjadi komputer mini sungguhan.



Casingnya sebagian dicetak 3D dan sebagian lagi terbuat dari akrilik transparan, sehingga Anda dapat melihat "bagian dalam" mini-PC kami. Untuk mendinginkan prosesor, saya menggunakan pendingin Menara Es, tetapi saya tidak memasang kipas ke radiator, tetapi ke dinding kotak.



Saya juga mengintegrasikan layar OLED ke bagian depan kasing, yang menampilkan alamat IP dan data Raspberry seperti kinerja dan suhu CPU, penyimpanan dan penggunaan memori.



Berikut adalah video perakitan, case dan display:





Apa yang Anda perlukan untuk membuat komputer desktop mini Raspberry Pi 4 Anda sendiri







  • Raspberry Pi 4 (model apa pun bisa digunakan)
  • Kartu Micro SD;
  • Catu daya Raspberry Pi;
  • Menara Es Pendingin;
  • Layar I2C OLED;
  • Kabel pita;
  • Konektor laki-laki perempuan;
  • Sekrup pemasangan;
  • Akrilik 2mm;
  • Plastik hitam untuk printer 3D (PLA).


Anda juga memerlukan printer 3D untuk mencetak bagian plastik casing. Saya menggunakan Creality Ender 3 Pro, yang menurut saya menggabungkan keterjangkauan dan kualitas.



Pengukir laser tidak diperlukan untuk perakitan, meskipun membuatnya lebih mudah untuk membuat bagian tubuh. Anda selalu dapat memotongnya dengan tangan menggunakan alat yang Anda miliki, atau menggunakan layanan pemotongan laser. Saya menggunakan pengukir laser desktop K40.



Mari kita merakit case Raspberry Pi 4 kita



Kami mencetak tubuh pada printer 3D



Saya mulai dengan membuat model 3D dari tinju masa depan di Tinkercad .





Unduh modelnya


Mengembangkan model casing dengan mempertimbangkan penempatan Raspberry Pi yang diinginkan di dalam kotak. Rencananya, port USB dan Ethernet tersedia di bagian depan, sedangkan port power, HDMI dan audio ada di bagian belakang.



Layar OLED terletak di bagian depan casing, di atas port. Di bagian atas kami akan memperbaikinya dengan dua klem kecil, di bawah - dengan penjepit plastik dengan sekrup. Saya sebelumnya telah menggunakan metode ini saat membuat pengatur waktu reaksi berbasis Arduino .





Saya akan memasang "raspberry" di rak kuningan yang disertakan dengan Menara Es. Saya baru saja menambahkan beberapa lubang M2.5.



Saya tidak sering menarik kartu SD saya dari raspberry, jadi saya tidak menambahkan potongan untuk membuatnya lebih mudah dilepas. Jika Anda berencana melakukan ini, cukup tambahkan potongan bundar ke bagian belakang casing. Mengganti kartu SD tanpa potongan ini akan sedikit lebih sulit karena Anda harus melepaskan komputer papan tunggal Anda dari kotaknya terlebih dahulu.





Saya 3D mencetak casing komputer mini kami yang terbuat dari plastik hitam dengan tinggi lapisan 0,2 mm dan cakupan 15%. Pada saat yang sama, saya memperhitungkan potongan untuk tampilan dan port pada panel depan saat mencetak. Ini dapat dilakukan dengan mudah dalam program pemodelan 3D. Anda juga perlu mencetak klip layar plastik kecil.





Menyematkan Raspberry Pi dan Cooler



Sekarang badan utama kasing sudah siap, mari kita instal Raspberry Pi ke dalamnya. Pertama, kencangkan tiang kuningan ke dalam lubang di alasnya.





Perhatikan bahwa saya telah mengubah orientasi sekrup dan kaki yang disertakan dengan Menara Es sehingga sekrup tersebut langsung disekrup ke bagian bawah casing dan tidak perlu melalui lubang. Jika Anda mempelajari manual Menara Es, Anda akan melihat bahwa dudukan dan sekrup terbalik.





Kita perlu melepas kipas dari pendingin agar kita bisa memasangnya ke panel samping transparan. Kami meletakkan kipas di sini untuk memastikan udara dingin masuk dari luar casing dan kemudian dikeluarkan melalui ventilasi di sisi yang berlawanan.





Pasang braket penopang ke bagian bawah radiator Menara Es sesuai dengan petunjuk. Pastikan Anda melakukan segalanya dengan benar.





Tempatkan "raspberry" di tempatnya, lalu gunakan set tiang kuningan kedua yang disekrup ke "bagian bawah" casing untuk mengamankan semuanya.





Rekatkan bantalan unit pendingin ke prosesor dan lepaskan film pelindung atas. Tempatkan heatsink Menara Es pada bantalan panas pada prosesor dan kencangkan dengan empat sekrup pada penyangga kuningan.



Memasang layar OLED



Sekarang kita perlu menginstal layar OLED. Jika pin layar Anda tidak disolder, solderlah ke bagian belakang layar.





Geser tepi atas layar di bawah klip plastik, lalu dorong perlahan ke tempatnya.





Gunakan klip yang kami cetak 3D dan kencangkan dengan sekrup kecil. Poros fleksibel atau obeng sudut 90 derajat mungkin diperlukan untuk mengencangkan sekrup.





Sekarang kita perlu mengarahkan kabel ke layar OLED. Anda perlu membuat 4 koneksi ke pin General Purpose Input / Output Interface (GPIO) - dua untuk daya dan dua untuk komunikasi. Saya membuat kabel jumper pendek dari pin konektor DuPont dan kabel pita. Anda juga dapat menggunakan beberapa pin papan tempat memotong roti atau jumper untuk menghubungkan tampilan ke Malinka Anda.





Saat kabel dipasang, sambungkan satu sisi kabel ke bagian belakang monitor dan sisi lainnya ke pin GPIO sebagai berikut:



  • VCC โ†’ Pin1 3.3V Daya;
  • GND โ†’ Pin14 Ground;
  • SCL โ†’ Pin3 SCL;
  • SDA โ†’ Pin2 SDA.




Saya perhatikan bahwa ada dua versi tampilan OLED ini, urutan penempatan kontak di dalamnya sedikit berbeda. Jadi pastikan Anda menghubungkan daya ke pin yang benar.



Kami membuat dinding akrilik



Secara umum, kami selesai dengan bagian dalam casing kami. Sekarang mari kita membuat beberapa dinding akrilik untuk melengkapinya.





Saya membuka kembali Tinkercad (perangkat lunak pemodelan 3D gratis - red.) Dan secara kasar mengetahui di mana letak radiator Menara Es, sehingga lubang pemasangan kipas berada di tempat yang tepat di panel samping. Kemudian saya mengekspor gambar dinding casing untuk dibuka di Inkscape dan menggambar tata letak ukiran laser.



Kami membuat dua dinding akrilik: satu dengan kipas untuk udara masuk, yang lainnya dengan bukaan untuk udara buang.





Anda dapat menghilangkan garis luar bagian tersebut, karena kita hanya perlu memotong garis luar dinding dan lubang di dalamnya. Secara umum, model perlu menyertakan lubang kipas dan empat lubang sekrup. Penting juga untuk menambahkan lubang untuk mengamankan dinding akrilik ke wadah yang telah dicetak sebelumnya.





Kemudian saya menduplikasi bentuk dinding tempat kipas akan dipasang dan menggambar serangkaian segi enam sebagai pengganti lubang. Logikanya sederhana: segi enam untuk aliran udara buangan.





Unduh model dinding akrilik

Unduh model bagian casing untuk pencetakan 3D


Jika Anda tidak memiliki mesin laser untuk pemotongan yang presisi dan rumit seperti itu, cukup bor lubang bundar (dengan diameter sekitar 8 mm) di tempat yang sama.





Kami memotong! Untuk panel samping saya menggunakan akrilik bening 2mm.





Anda dapat menggunakan akrilik apa pun yang Anda inginkan - tembus pandang atau buram. Plexiglass yang paling banyak tersedia adalah setebal 3 mm. Secara keseluruhan, ketebalan tidak terlalu penting, Anda hanya memiliki tepi yang sedikit lebih tebal.





Untuk memasang kipas ke panel samping, tekan beberapa mur M3 ke dalam slot yang sesuai. Cara termudah adalah dengan meletakkan mur pada permukaan yang rata, posisikan lubang yang diinginkan di atasnya untuk menahan kipas, dan tekan hingga terpasang pada tempatnya. Mur akan menahan dengan kuat, jadi Anda tidak perlu menggunakan kunci inggris untuk menahannya saat mengencangkan sekrup.



Jika Anda ingin menggunakan sekrup kipas, saya akan langsung memberi tahu Anda bahwa sekrup tersebut terlalu pendek untuk dimasukkan ke dalam akrilik, kipas, dan mur. Ini juga bukan cara terbaik untuk memasang kipas angin.





Kencangkan kaca samping ke kotak cetakan 3D dengan empat sekrup kepala hex M3 x 8mm.





Ini akan rumit karena tidak ada benang di dalam lubang pada kotak cetakan.





Sekarang sambungkan kipas ke catu daya 5V dan pasang panel akrilik kedua (dengan lubang knalpot). Kabel merah ke Pin4 (5V) dan kabel hitam ke Pin6 (Ground).





Ini melengkapi perakitan. Desktop mini Raspberry Pi 4 kami sudah siap. Sekarang kita membutuhkan tampilan agar berfungsi.



Memprogram tampilan OLED



Agar tampilan berfungsi, Anda perlu menjalankan skrip Python. Untuk melakukan ini, Anda perlu menjalankan "raspberry".



Raspberry Pi berkomunikasi dengan tampilan menggunakan protokol I2C, jadi pastikan untuk memasukkan ini ke dalam pengaturan Anda. Juga periksa apakah Anda telah menginstal pustaka python-smbus dan i2c-tools. Mereka seharusnya secara default, tetapi di sini lebih baik untuk mengganti dan tetap memeriksanya.



Skrip di bawah ini didasarkan pada salah satu skrip di pustaka Python Adafruit untuk modul tampilan OLED dengan beberapa perubahan yang dibuat oleh Shahizat Nurgaliev untuk menambahkan suhu CPU ke data yang ditampilkan dan mengubah format tampilan.



# 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)


Unduh skrip untuk tampilan OLED


Anda perlu mengunduh pustaka Adafruit asli dari Github untuk menyelesaikan penyiapan dengan mengikuti langkah-langkah ini.



Buka jendela terminal baru, lalu ubah ke direktori perpustakaan:



cd Adafruit_Python_SSD1306


Instal perpustakaan untuk Python 3:



sudo python3 setup.py install


Kemudian Anda dapat menjalankan file stats.py di atas atau file contoh stats.py di direktori Adafruit - dalam hal ini Anda hanya akan mendapatkan tata letak tampilan yang sedikit berbeda.



Ubah ke direktori yang berisi skrip stats.py:



cd examples


Jalankan skrip:



python3 stats.py


Saya sarankan menguji skrip untuk memastikan tampilan berfungsi tanpa kesalahan sebelum mengaturnya untuk memulai secara otomatis.



Untuk mengonfigurasi peluncuran otomatis skrip, Anda perlu menemukan direktori skrip, lalu buka crontab dan tambahkan baris untuk memulainya:



@reboot python3 /home/pi/stats.py &


Jelasnya, Anda perlu mengubah nama direktori / home / pi / untuk menyorot tempat Anda menyimpan skrip yang diinginkan.



Jangan lupa untuk menambahkan & di akhir, ini akan memberi tahu Malinka untuk terus berjalan dan menjalankan skrip di latar belakang.





Reboot Raspberry Pi Anda untuk menjalankan skrip secara otomatis. Setelah itu, Anda akan melihat statistik yang ditunjukkan pada layar OLED saat Anda memulai PC mini.














All Articles