Isi kandungan:

RPi 3 Starboard / Particle Generator: 6 Langkah (dengan Gambar)
RPi 3 Starboard / Particle Generator: 6 Langkah (dengan Gambar)

Video: RPi 3 Starboard / Particle Generator: 6 Langkah (dengan Gambar)

Video: RPi 3 Starboard / Particle Generator: 6 Langkah (dengan Gambar)
Video: Stepping into the Future: Linnaeus University's IoT & AI Live Stream Marathon⚡🤩 2024, November
Anonim
Image
Image
Pasang Papan LED
Pasang Papan LED

Adakah anda merasa bosan dengan Raspberry Pi anda? Adakah anda bersedia untuk memerintahkan kekuatan alam semesta, memanggil dan menolak foton sesuka hati? Adakah anda hanya mahukan sesuatu yang menarik untuk digantung di ruang tamu anda, atau projek mewah untuk disiarkan di facebook untuk menunjukkan kepada Denise bahawa anda baik-baik saja hari ini, terima kasih banyak? Adakah anda terperangkap dalam simulasi komputer dan menghabiskan masa sehingga anda dibebaskan atau dihapuskan? Sekiranya ada atau semua ini menggambarkan anda, maka [suara penyiar] Selamat Datang!

Tutorial ini akan menunjukkan kepada anda cara memasang dan memasang paparan penjana zarah menggunakan Raspberry Pi 3 dan beberapa panel matriks RGB. Anda memerlukan masa antara satu hingga dua jam, dan produk siap kira-kira 30 "x8" (tidak termasuk Pi) dan dapat dipasang di dinding. Ia membuat hiasan yang cukup sejuk untuk ruang tamu, pejabat, bilik permainan, atau di mana sahaja anda mahu meletakkannya.

Sebelum anda memulakan, inilah yang anda perlukan dan berapa anggaran kos:

  • Rpi 3 + Kad SD + Sarung + Bekalan Kuasa: $ 70 (dari Canakit, tetapi anda mungkin boleh mendapatkan bahagiannya lebih murah jika anda membelinya secara berasingan.)
  • Matriks LED 4x 32x32 RGB (lebih baik p6 dalaman dengan 1/16 imbasan): $ 80- $ 100 dihantar di Alibaba atau Aliexpress; $ 160 untuk Adafruit atau Sparkfun.
  • Topi Adafruit RGB Matrix: $ 25
  • Bekalan Kuasa 5V 4A: $ 15
  • Klip bercetak 3D: $ 1ish (ini adalah untuk menyambungkan panel dan menggantungnya di dinding; jika anda tidak mempunyai akses ke pencetak 3D, anda boleh menggunakan jalur furring untuk menahannya dan beberapa pendakap dari kedai perkakasan ke gantungkannya dari dinding. Saya cuba mencari fail reka bentuk atau.stls untuk ini, tetapi nampaknya ia telah berlalu dari bumi. Walaupun begitu, klipnya cukup mudah dimodelkan.)
  • Selak 14x M4x10: $ 5ish
  • Empat kabel IDC 4x8 dan tiga kabel kuasa untuk matriks RGB (saya tidak tahu apa itu dipanggil!). Ini semestinya disertakan dengan panel LED anda.
  • Jumlah: Sekitar $ 200, berikan atau ambil.

Projek ini tidak menghendaki anda menyolder atau mempunyai pengetahuan pengaturcaraan tertentu; ia menganggap anda tahu bagaimana menulis gambar ke kad microSD. Sekiranya anda tidak pasti bagaimana melakukannya, asas Raspberry Pi mempunyai tutorial yang baik di sini.

Ini juga menganggap anda mempunyai pengetahuan asas tentang bagaimana melakukan sesuatu dari baris perintah di Linux, dan panduan kod menganggap anda mengetahui asas-asas Python (tetapi - anda tidak perlu mengikuti panduan kod untuk dapat membina dan jalankan penjana zarah.) Sekiranya anda terjebak pada salah satu langkah, jangan ragu untuk mengemukakan soalan atau hantar di / r / raspberry_pi (yang juga, saya anggap, penonton utama untuk arahan ini)

Langkah 1: Pasang Papan LED

Pasang Papan LED
Pasang Papan LED

Pertama, anda akan memasang panel LED 32x32 individu menjadi satu panel 128x32 besar. Anda perlu melihat papan anda dan mencari anak panah kecil yang menunjukkan susunan sambungan; di lombong mereka betul-betul berhampiran penyambung IDC HUB75 / 2x8. Pastikan anda mempunyai anak panah yang menunjuk dari mana Rpi akan bersambung (dari sebelah kanan pada foto di atas) ke sepanjang papan.

Anda juga perlu menyambungkan kabel kuasa. Sebilangan besar kabel ini mempunyai dua penyambung wanita yang melekat pada papan, dan satu set terminal sekop yang melekat pada sumber kuasa. Panel yang saya bekerjasama mempunyai petunjuk untuk 5V dan GND hampir tersembunyi di bawah penyambung itu sendiri, tetapi kabel hanya bersambung dalam satu arah. Anda mesti memastikan bahawa anda menghubungkan semua 5V bersama dan semua GND bersama-sama, kerana jika anda mengaktifkannya ke belakang, anda pasti akan menggorengnya.

Kerana kabel kuasa yang disertakan dengan papan saya sangat pendek, saya terpaksa memanjangkannya dengan memasukkan prong terminal sekop ke penyambung yang lain (Ini cukup mudah - anda mungkin harus membengkokkan terminal sekop sedikit ke dalam, tetapi saya ' termasuk gambar untuk berjaga-jaga). Saya berakhir dengan dua set terminal sekop dan satu penyambung IDC 2x8 di sebelah kanan papan LED saya yang kini memanjang.

Anda juga akan melihat bahawa saya mempunyai dua baut yang tidak terpasang pada apa-apa di kedua-dua hujung papan; ini akan berada di bahagian atas setelah semuanya terbalik, dan akan digunakan untuk memasangkannya ke dinding.

Oleh itu - setelah anda menghubungkan semua panel dengan klip, kabel IDC 2x8, dan kabel kuasa, anda sudah bersedia untuk melangkah ke langkah seterusnya!

Langkah 2: Sediakan Raspberry Pi

Seterusnya, anda akan mengetepikan papan LED (buat masa ini) dan siapkan Pi 3 untuk menjalankannya. Kami akan menggunakan perpustakaan matriks Raspbian Stretch Lite dan RGB hzeller (bukan perpustakaan matriks Adafruit, yang lebih tua dan tidak dikenali.)

Pertama, anda ingin menulis gambar Raspbian Lite ke kad SD; setelah anda melakukan ini, teruskan dan sambungkan monitor dan papan kekunci ke pi dan boot. (Anda juga boleh melakukan ini tanpa kepala, sama ada melalui ssh atau penyambung bersiri, tetapi jika seperti itu, anda mungkin tidak memerlukan saya memberitahu anda bagaimana melakukannya.) Anda memerlukan sambungan internet untuk ini; Sekiranya anda mempunyai wifi, sambungkan Pi ke rangkaian wayarles anda dengan mengedit /etc/wpa_supplicant/wpa_supplicant.conf dan menjalankan wpa_cli -i wlan0 reconfigure. (Sekiranya anda tidak pernah melakukan ini, anda boleh mendapatkan arahan di sini).

Setelah anda tersambung ke internet, kami akan mengemas kini tetapan repositori dpkg dan memuat turun perpustakaan yang kami perlukan dengan menjalankan perintah berikut:

sudo apt-get kemas kini

sudo apt-get install git python-dev python-pil

git klon

Sekarang kita perlu menyusun dan memasang kod matriks. Oleh itu, anda akan masuk ke folder yang mengandungi perpustakaan:

cd rpi-rgb-led-matriks

dan menyusunnya (ini mungkin mengambil masa sebentar):

buat && buat build-python

dan pasang pengikat python:

sudo buat install-python

Sekiranya anda mendapat kesilapan semasa menyusun kod perpustakaan, kembalilah dan pastikan anda memasang python-dev dan python-pil dengan betul! Pengikatan python tidak akan disusun tanpa kedua-dua pakej tersebut dipasang.

Anda juga perlu mematikan output suara Pi anda (suara on-line mengganggu kod matriks) dengan mengedit /boot/config.txt. Cari baris yang mengatakan dtparam = audio = aktif dan ubah menjadi dtparam = audio = mati.

Sekiranya semuanya disusun OK (anda akan mendapat beberapa amaran mengenai Wstrict-protoypes) pi anda harus bersedia menjalankan papan matriks. Teruskan dan matikan (sudo shutdown sekarang), cabut palamnya, dan kami akan menyambungkan papan cahaya ke pi pada langkah seterusnya.

Langkah 3: Sambungkan Pi + Matrix Hat + LED Board

Sambungkan Pi + Matrix Hat + LED Board
Sambungkan Pi + Matrix Hat + LED Board

Oleh itu, setelah Pi anda mati dan dicabut, mari sambungkan topi matriks ke pi dan papan LED ke topi matriks. Sekiranya Pi anda belum ada, sekarang adalah masa yang tepat untuk memasukkannya ke sana.

Pasang topi matriks dengan melampirkannya dengan pin GPIO pada Pi dan tolaknya perlahan-lahan dengan kekuatan merata di kedua-dua belah pihak. Pastikan pin dibariskan dengan betul, sehingga kepala wanita pada topi betul-betul menutup pin GPIO pada pi. Sekiranya anda tidak selaras, itu bukan malapetaka; perlahan-lahan tarik kembali dan luruskan pin yang bengkok.

Setelah memakai topi, pasang Pi di sebelah kanan papan LED yang dipasang (periksa semula sambungan kuasa sekali lagi, dan pastikan anak panah menunjuk dari Pi ke sepanjang papan) dan sambungkan IDC kabel ke topi matriks.

Seterusnya, anda ingin menyambungkan terminal sekop untuk kuasa ke blok terminal topi matriks. Anda mempunyai dua penyambung sekop di setiap sisi, tetapi kedua-duanya harus dipasang dengan baik. Longgarkan skru terlebih dahulu dan - Ini tidak perlu dikatakan - pastikan anda meletakkan terminal 5V di sisi berlabel + (ini harus berwarna merah, tetapi - sekali lagi - periksa semula penyambung anda dan jangan anggap ia dikeluarkan dengan betul) dan terminal GND (ini mesti berwarna hitam) di sisi berlabel -. Setelah mereka berada di sana, ketatkan skru di atas blok terminal, dan anda harus mempunyai sesuatu yang kelihatan seperti gambar tajuk untuk langkah ini.

Sekarang - anda mungkin menyedari bahawa konfigurasi tertentu ini meninggalkan separuh terminal sekop di kedua-dua belah pihak yang terdedah, melayang hanya milimeter di atas topi matriks (dan tidak terlalu jauh antara satu sama lain.) DAN - terminal sekop akan segera membawa kedua-dua volt dan beberapa amp Kuasa Mentah. Adakah ini, (saya dapat mendengar anda bertanya dari seberang skrin) Betulkah Cara Yang Betul Untuk Melakukannya? Adakah, (anda bersandar lebih dekat dan berbisik), Idea Baik?

Dan jawapannya adalah (saya menjawab, mengangkat bahu) - tidak, tidak. Cara yang betul untuk melakukannya adalah dengan melucutkan terminal sekop dari kabel kuasa dan merapatkannya semula ke penyambung yang betul untuk blok terminal (atau membiarkannya sebagai wayar kosong dan menghubungkannya tanpa penyambung ke blok). Sekiranya tidak, anda boleh meletakkan tiub pengecutan panas di sekitar sisi penyambung sekop yang terdedah atau hanya membungkusnya dengan pita elektrik. Tetapi dunia ini jatuh dan manusia malas dan sia-sia, jadi saya tidak melakukannya.

Tetapi - dibungkus atau tidak dibungkus - terminal sekop dihubungkan ke blok terminal, dan kami sudah bersedia untuk melangkah ke langkah seterusnya.

Langkah 4: Uji Matriks RGB

Setelah Pi anda disambungkan ke papan cahaya, balikkan papan dan hidupkan Pi semula. Anda boleh menghidupkan topi matriks setelah Pi dipasang; jika anda menggunakan topi sebelum Pi, Pi akan cuba boot dengan arus yang tidak mencukupi, dan akan mengeluh dengan pahit (dan mungkin akan menimbulkan panik kernel dan tidak boot sama sekali.)

Sekiranya anda menghadapi masalah untuk mendapatkan Pi untuk boot dengan topi matriks, pastikan anda menggunakan bekalan kuasa yang cukup kuat untuk Pi (2A + semestinya baik) dan cuba pasangkan kedua-dua bekalan kuasa untuk topi dan untuk Masukkan jalur kuasa atau kabel sambungan yang sama, dan aktifkan bersama.

Setelah Pi dimuat, kami bersedia untuk menguji matriks. Pergi ke tempat sampel mengikat python (cd / rpi-rgb-led-matrix / bindings / python / samples) dan cuba penjana blok berputar dengan arahan berikut:

sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4

Anda mesti menjalankannya sebagai sudo kerana perpustakaan matriks memerlukan akses tahap rendah ke perkakasan pada permulaannya. The -m menentukan cara panel disambungkan ke pi (dalam kes ini, topi adafruit) dan - rantai berpakaian menentukan - anda meneka - berapa banyak panel yang telah kita rantai bersama. Baris dan lajur setiap panel lalai ke 32, jadi kami baik di sana.

Sekarang - setelah anda melaksanakan program, satu daripada dua (atau, benar-benar, satu daripada tiga) perkara akan berlaku:

  • Tiada apa yang berlaku
  • Anda mendapat blok berputar yang bagus di tengah papan cahaya anda.
  • Papan cahaya berfungsi, eh, saya rasa, tetapi nampaknya … pelik (separuh daripadanya berwarna hijau, beberapa baris tidak menyala, dll.)

Sekiranya tidak ada yang berlaku, atau jika panel kelihatan pelik, tekan ctrl + c untuk keluar dari program sampel, matikan pi, dan periksa semua sambungan anda (kabel IDC, kuasa, pastikan kedua-dua bekalan kuasa dipasang, dll.) Pastikan juga topi disambungkan dengan betul; jika itu tidak memperbaikinya, turunkan ke satu panel (pastikan untuk menggunakan --led-chain 1 ketika mengujinya) dan lihat apakah salah satu panelnya mungkin buruk. Sekiranya TIDAK berfungsi, lihat petua penyelesaian masalah hzeller. jika MASIH tidak berfungsi, cuba hantarkan ke / r / raspberry_pi (atau forum Adafruit, jika anda mendapat panel dari Adafruit, atau pertukaran timbunan, dll. dll.)

Sekiranya ia berfungsi tetapi masih kelihatan pelik (mungkin seperti gambar tajuk untuk bahagian ini) setelah anda memeriksa sambungannya, ada kemungkinan anda mempunyai semua yang tersambung dengan betul, bahawa panel berfungsi dengan betul, tetapi Sesuatu yang Lain akan berlaku pada. Yang akan membawa kita ke langkah seterusnya - lebih banyak pengalihan daripada langkah - pada kadar multiplexing dan imbasan. (Sekiranya papan petunjuk anda berfungsi dengan baik dan anda tidak berminat dengan cara kerja panel ini, sila lewati langkah seterusnya.)

Langkah 5: Kadar Multipleks dan Imbasan (atau: Pengalihan Sesaat di Jalan menuju Kubur)

Oleh itu, salah satu kesilapan yang saya buat semasa saya memesan set panel pertama saya di Alibaba ialah saya mendapat panel luar (mengapa tidak, saya fikir - ia kalis air, dan lebih terang!). Dan, ketika saya memasangkannya ke topi matriks saya, semuanya kelihatan.. tidak betul.

Untuk memahami mengapa demikian, kami akan mengambil masa sebentar untuk melihat Phil Burgess dari penerangan Adafruit tentang bagaimana panel ini berfungsi. Anda akan perhatikan bahawa Burgess menunjukkan bahawa panel tidak menyalakan semua LED mereka sekaligus - mereka menyalakan set baris. Hubungan antara ketinggian panel dalam piksel dan bilangan baris yang menyala sekaligus disebut kadar imbasan. Jadi, sebagai contoh - Pada panel 32x32 dengan 1/16 imbasan, dua baris (1 dan 17, 2 dan 18, 3 dan 19, dan lain-lain) menyala sekaligus, sepanjang papan, dan kemudian pengawal mengulang. Sebilangan besar perpustakaan yang menggerakkan matriks RGB dibina untuk panel di mana kadar imbasan adalah 1/2 dari tinggi dalam piksel - iaitu, mereka menggerakkan dua baris LED sekaligus.

Panel luaran (dan beberapa panel dalaman - pastikan anda melihat spesifikasi sebelum membuat pesanan) mempunyai kadar imbasan yang 1/4 dari ketinggian piksel, yang bermaksud mereka mengharapkan empat garisan dipacu sekaligus. Ini menjadikan mereka lebih terang (yang baik) tetapi membuat banyak kod standard tidak berfungsi dengan mereka (yang mana tidak baik). Selain itu, mereka cenderung memiliki piksel tidak teratur secara dalaman, yang memerlukan mengubah nilai x dan y dalam perisian untuk mengatasi piksel yang tepat. Mengapa dibuat dengan cara ini? Saya tidak tahu. Adakah awak tahu? Sekiranya ada, sila beritahu saya. Jika tidak, ia mesti menjadi misteri.

Oleh itu, jika anda mempunyai salah satu panel luar yang pelik ini, anda (mungkin) bernasib baik! hzeller baru-baru ini menambahkan sokongan untuk konfigurasi umum panel jenis ini ke perpustakaannya. Anda boleh membaca lebih lanjut mengenainya di halaman github untuk projek tersebut, tetapi anda boleh meneruskan - multiplexing = {0, 1, 2, 3} ke contoh kod (anda mungkin juga perlu berpura-pura seperti anda mempunyai rantai panjang panel separuh panjang) dan ia mesti berfungsi.

Terdapat beberapa corak transformasi piksel yang tidak disokong - dan (kira apa) panel saya mempunyai salah satunya! Jadi, saya terpaksa menulis kod transformasi saya sendiri (saya juga - atas sebab apa pun - harus memberitahu perpustakaan untuk bertindak seperti saya mempunyai lapan panel 16x32 yang dirantai bersama). seperti berikut:

def transformPixels (j, k): effJ = j% 32

effK = k% 32

modY = k

modX = j

#modX dan modY adalah X dan Y yang diubah suai;

#effJ dan effK pastikan kita berubah dalam matriks 32x32 sebelum menekan

jika ((effJ)> 15):

modX = modX + 16

jika ((effK)> 7):

modY = modY - 8

modX = modX + 16

jika ((effK)> 15):

modX = modX - 16

jika ((effK)> 23):

modY = modY - 8

modX = modX + 16

# Kemudian, kami mendorong mereka ke lokasi yang betul (setiap x + 32 bergerak satu panel)

jika (j> 31):

modX + = 32

jika (j> 63):

modX + = 32

jika (j> 95):

modX + = 32

kembali (modX, modY)

Sekiranya anda mempunyai panel seperti saya, ini mungkin berfungsi untuknya. Sekiranya tidak, anda mesti menulis sendiri - jadi, anda tahu, semoga berjaya dan kecepatan.

Langkah 6: Program Starboard (atau: Kembali ke Laluan dan Siap Pixel)

Sekarang setelah matriks anda beroperasi dan bersedia untuk digunakan, yang perlu anda lakukan ialah meletakkan program papan atas pada Pi anda dan menyiapkannya. Pastikan anda berada di direktori home pengguna pi (cd / home / pi) dan jalankan arahan berikut:

git klon

anda harus mempunyai folder baru, papan pemuka, yang mengandungi tiga fail: LICENSE.md, README.md dan starboard_s16.py. Cubalah program pemula dengan menjalankannya melalui python:

sudo python./starboard_s16.py

dan anda harus mendapat sekumpulan zarah yang bergerak pada kelajuan yang berbeza dan reput pada kadar yang berbeza. Setiap 10, 000 kutu atau lebih (anda boleh masuk ke skrip python untuk mengedit / mengubahnya) ia akan mengubah mod (ada empat: RGB, HSV, Rainbow, dan Greyscale).

Oleh itu, satu-satunya perkara yang perlu dilakukan ialah membuat kod pemula dijalankan semasa permulaan. Kami akan melakukannya dengan mengedit (dengan sudo) /etc/rc.local. Apa yang ingin anda lakukan ialah menambahkan baris berikut tepat sebelum "keluar 0" dalam skrip:

python /home/pi/starboard/starboard_s16.py &

Selepas anda melakukannya, reboot pi - setelah menjalankan urutan boot, skrip starboard_s16.py akan bermula dengan betul!

Sekiranya anda ingin membaca skrip, jangan ragu - ia dilesenkan di bawah GNU GPL 3.0. Sekiranya skrip tidak berfungsi untuk anda, atau anda menghadapi masalah, sila beritahu saya atau menghantar bug di github, dan saya akan melihat apa yang boleh saya lakukan untuk memperbaikinya!

Perkara terakhir yang mungkin anda mahu lakukan ialah menyiapkan SSH pada pi, supaya anda dapat masuk dan menutupnya dengan selamat. Anda / pasti / ingin menukar kata laluan anda (melalui arahan passwd), dan anda boleh mendapatkan arahan untuk mengaktifkan ssh (juga dari baris perintah) di sini.

Disyorkan: