Talaan ng mga Nilalaman:

RPi 3 Starboard / Particle Generator: 6 Mga Hakbang (na may Mga Larawan)
RPi 3 Starboard / Particle Generator: 6 Mga Hakbang (na may Mga Larawan)

Video: RPi 3 Starboard / Particle Generator: 6 Mga Hakbang (na may Mga Larawan)

Video: RPi 3 Starboard / Particle Generator: 6 Mga Hakbang (na may Mga Larawan)
Video: Stepping into the Future: Linnaeus University's IoT & AI Live Stream Marathon⚡🤩 2024, Hulyo
Anonim
Image
Image
Ipunin ang LED Board
Ipunin ang LED Board

Nakakainis ka ba sa iyong Raspberry Pi? Handa ka na bang utusan ang mga pangunahing elemento ng puwersa ng sansinukob, na tumatawag at tinatanggal ang mga photon nang nais? Nais mo lamang ang isang bagay na kawili-wiling isabit sa iyong sala, o isang magarbong proyekto upang mai-post sa facebook upang ipakita kay Denise na maayos ka lang sa mga panahong ito, maraming salamat? Nakulong ka ba sa isang simulate ng computer at habang tinatanggal ang mga oras hanggang mapalaya ka o matanggal? Kung ang alinman o lahat sa mga ito ay naglalarawan sa iyo, pagkatapos [boses ng tagapagbalita] Maligayang pagdating!

Ipapakita sa iyo ng tutorial na ito kung paano magtipon at mag-set up ng isang pagpapakita ng maliit na butil na gamit ang isang Raspberry Pi 3 at ilang mga RGB matrix panel. Dapat kang dalhin sa pagitan ng isa at dalawang oras, at ang natapos na produkto ay humigit-kumulang na 30 "x8" (hindi kasama ang Pi) at mailalagay sa dingding. Gumagawa ito ng isang medyo cool na dekorasyon para sa isang sala, opisina, silid ng laro, o saanman nais mong ilagay ito.

Bago ka magsimula, narito ang kakailanganin mo, at kung ano ang tinatayang gastos:

  • Rpi 3 + SD Card + Case + Power Supply: $ 70 (mula sa Canakit, ngunit maaari mong makuha ang mga bahagi na mas mura kung binili mo ito nang magkahiwalay.)
  • 4x 32x32 RGB LED Matrix (mas mabuti p6 panloob na may 1/16 scan): $ 80- $ 100 na ipinadala sa Alibaba o Aliexpress; $ 160 sa Adafruit o Sparkfun.
  • Adafruit RGB Matrix hat: $ 25
  • 5V 4A Power Supply: $ 15
  • Mga naka-print na 3D clip: $ 1ish (ito ay para sa pagkonekta ng mga panel at pag-hang sa kanila sa dingding; kung wala kang access sa isang 3D printer, maaari mong gamitin ang isang furring strip upang hawakan ang mga ito at ang ilang mga braket mula sa tindahan ng hardware upang i-hang ito sa dingding. Sinubukan kong hanapin ang mga file ng disenyo o ang.stls para sa mga ito, ngunit tila lumipas mula sa lupa. Gayunpaman, ang mga clip ay medyo madaling i-modelo.)
  • 14x M4x10 bolts: $ 5ish
  • Apat na 4x8 IDC cable at tatlong power cables para sa RGB matrices (Hindi ko alam kung ano ang tawag sa mga ito!). Dapat na isama ang mga ito sa iyong mga LED panel.
  • Kabuuan: Sa paligid ng $ 200, magbigay o kukuha.

Hindi ka hinihiling ng proyekto na maghinang o magkaroon ng anumang tukoy na kaalaman sa programa; ipinapalagay na alam mo kung paano magsulat ng isang imahe sa isang microSD card. Kung hindi ka sigurado kung paano gawin iyon, ang pundasyong Raspberry Pi ay may magandang tutorial dito.

Ipinapalagay din na mayroon kang isang pangunahing kaalaman sa kung paano gumawa ng mga bagay mula sa linya ng utos sa Linux, at ipinapalagay ng walkthrough ng code na alam mo ang mga pangunahing kaalaman sa Python (ngunit - hindi mo kailangang sundin ang walkthrough ng code upang makapagtayo at patakbuhin ang generator ng maliit na butil.) Kung makaalis ka sa anuman sa mga hakbang, huwag mag-atubiling magtanong ng isang katanungan o mag-post sa / r / raspberry_pi (na kung saan ay din, ipinapalagay ko, ang pangunahing madla para sa itinuro na ito)

Hakbang 1: Magtipon ng LED Board

Ipunin ang LED Board
Ipunin ang LED Board

Una, tipunin mo ang mga indibidwal na 32x32 LED panel sa isang malaking 128x32 panel. Kakailanganin mong tingnan ang iyong mga board at hanapin ang maliit na mga arrow na nagpapahiwatig ng pagkakasunud-sunod ng koneksyon; sa minahan malapit sila sa mga konektor ng HUB75 / 2x8 IDC. Tiyaking mayroon kang mga arrow na nakaturo mula sa kung saan makakonekta ang Rpi (papunta sa kanan sa larawan sa itaas) pababa sa haba ng board.

Kakailanganin mo ring ikonekta ang mga kable ng kuryente. Karamihan sa mga kable na ito ay may dalawang babaeng konektor na nakakabit sa mga board, at isang hanay ng mga terminal ng spade na nakakabit sa pinagmulan ng kuryente. Ang mga panel na pinagtatrabahuhan ko ay may mga tagapagpahiwatig para sa 5V at GND na halos ganap na nakatago sa ilalim ng mga konektor mismo, ngunit ang mga kable ay kumokonekta lamang sa isang direksyon. Gusto mong tiyakin na ikonekta mo ang lahat ng 5V magkasama at lahat ng mga GND magkasama, dahil kung pinapagana mo ang mga ito paatras ay halos tiyak na iprito mo sila.

Dahil ang mga kable ng kuryente na kasama ng aking mga board ay masyadong maikli, kailangan kong pahabain ang isa sa pamamagitan ng pagpasok ng mga prongs ng spade terminal sa konektor ng isa pa (Ito ay medyo prangka - maaaring kailangan mong yumuko ang mga terminal ng pala sa loob, ngunit ako ay nagsama ng larawan kung sakali). Natapos ako sa dalawang hanay ng mga spade terminal at isang 2x8 IDC na konektor sa kanan ng aking pinahabang LED board.

Mapapansin mo rin na mayroon akong dalawang bolts na hindi naka-attach sa anumang bagay sa alinman sa dulo ng board; ang mga ito ay nasa tuktok kapag ang buong bagay ay nabaliktad, at gagamitin upang ilakip ito sa dingding.

Kaya - sa sandaling nakakonekta mo ang lahat ng mga panel kasama ang mga clip, 2x8 IDC cable, at mga power cable, handa ka nang magpatuloy sa susunod na hakbang!

Hakbang 2: Ihanda ang Raspberry Pi

Susunod, itatakda mo ang LED board (sa ngayon) at ihanda ang Pi 3 upang patakbuhin ito. Gagamitin namin ang Raspbian Stretch Lite at RGB matrix library ng hzeller (kaysa sa library ng matrix ng Adafruit, na mas matanda at hindi maingat.)

Una, gugustuhin mong isulat ang imahe ng Raspbian Lite sa isang SD card; sa sandaling nagawa mo ito, magpatuloy at kumonekta sa isang monitor at keyboard sa pi at i-boot ito. (Maaari mo ring gawin ito nang walang ulo, alinman sa over ssh o isang serial konektor, ngunit kung iyon ang paraan ng pagpunta mo marahil ay hindi mo ako kailangan upang sabihin sa iyo kung paano ito gawin.) Kakailanganin mo ang isang koneksyon sa internet para dito; Kung mayroon kang wifi, ikonekta ang Pi sa iyong wireless network sa pamamagitan ng pag-edit /etc/wpa_supplicant/wpa_supplicant.conf at pagpapatakbo ng wpa_cli -i wlan0 reconfigure. (Kung hindi mo pa nagagawa ito, makakakuha ka ng mga tagubilin dito).

Kapag nakakonekta ka sa internet, ia-update namin ang mga setting ng repository ng dpkg at i-download ang mga library na kailangan namin sa pamamagitan ng pagpapatakbo ng mga sumusunod na utos:

sudo apt-get update

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

git clone

Ngayon kailangan naming mag-ipon at mai-install ang matrix code. Kaya't pupunta ka sa folder na naglalaman ng silid-aklatan:

cd rpi-rgb-led-matrix

at ipunin ito (maaaring tumagal ito ng isang minuto):

gumawa && gumawa ng build-python

at i-install ang python bindings:

sudo gumawa ng install-python

Kung nakakuha ka ng anumang mga error habang pinagsasama ang code ng library, bumalik at tiyaking na-install mo nang tama ang python-dev at python-pil! Ang mga binding ng sawa ay hindi makakaipon nang wala ang parehong mga package na naka-install.

Kakailanganin mo ring huwag paganahin ang output ng tunog ng iyong Pi (ang on-board na tunog ay nakakagambala sa matrix code) sa pamamagitan ng pag-edit /boot/config.txt. Hanapin ang linya na nagsasabing dtparam = audio = on at baguhin ito sa dtparam = audio = off.

Kung naayos ang lahat ng OK (makakakuha ka ng ilang mga babala tungkol sa mga Wstrict-protocol) ang iyong pi ay dapat handa na patakbuhin ang matrix board. Sige at i-shut down ito (sudo shutdown ngayon), i-unplug ito, at ikonekta namin ang light board sa pi sa susunod na hakbang.

Hakbang 3: Ikonekta ang Pi + Matrix Hat + LED Board

Ikonekta ang Pi + Matrix Hat + LED Board
Ikonekta ang Pi + Matrix Hat + LED Board

Kaya, ngayong naka-off at naka-plug ang iyong Pi, ikonekta natin ang matrix hat sa pi at ang LED board sa matrix hat. Kung ang iyong Pi ay wala pa sa kaso, ngayon ay isang magandang panahon upang ilagay ito doon.

I-install ang matrix hat sa pamamagitan ng paglalagay nito gamit ang mga GPIO pin sa Pi at itulak ito ng dahan-dahang pababa na may pantay na puwersa sa magkabilang panig. Siguraduhin na ang mga pin ay nakapila nang tama, upang ang mga babaeng header sa sumbrero ay eksaktong takip ng mga GPIO pin sa pi. Kung mali mo ito, hindi ito isang sakuna; dahan-dahang hilahin lamang ito at ituwid ang anumang mga pin na nabaluktot.

Kapag nakuha mo na ang sumbrero, ilagay ang Pi sa kanan ng tipunin na LED board (i-double check muli ang mga koneksyon ng kuryente, at siguraduhin na ang mga arrow ay nakaturo mula sa Pi pababa sa haba ng board) at ikonekta ang IDC cable sa sumbrero ng matrix.

Susunod, gugustuhin mong ikonekta ang mga terminal ng spade para sa lakas sa terminal block ng matrix hat. Mayroon kang dalawang mga konektor ng pala sa bawat panig, ngunit dapat silang parehong magkasya doon na mabuti. Paluwagin muna ang mga tornilyo at - Dapat itong hindi sabihin - tiyaking inilagay mo ang mga terminal ng 5V sa gilid na may label na + (ang mga ito ay dapat na pula, ngunit - muli - i-double check ang iyong mga konektor at huwag isiping tama ang pagkakagawa ng mga ito) at ang mga terminal ng GND (ang mga ito ay dapat na itim) sa gilid na may label na -. Kapag nandoon na sila, higpitan ang mga turnilyo sa tuktok ng terminal block, at dapat mayroon kang isang bagay na mukhang imahe ng header para sa hakbang na ito.

Ngayon - maaaring napansin mo na ang partikular na pagsasaayos na ito ay nag-iiwan ng kalahati ng spade terminal sa magkabilang panig na nakalantad, lumilipat lamang ng mga milimeter sa itaas ng matrix hat (at hindi masyadong malayo mula sa bawat isa.) AT - ang mga terminal ng pala ay malapit na nagdadala ng parehong maraming volts at maraming mga amp ng Raw Power. Ito ba, (Naririnig kita na humihiling mula sa kabilang panig ng screen) talaga na The Right Way To Do It? Ito ba, (sumandal ka sa mas malapit at bumulong), Isang Magandang Idea?

At ang sagot ay (Tumugon ako, nakakibit balikat) - hindi, hindi ito. Ang tamang paraan upang gawin ito ay upang alisin ang mga terminal ng spade mula sa mga cable ng kuryente at muling i-crimp sa kanila sa tamang konektor para sa terminal block na iyon (o iwanan sila bilang mga hubad na wire at ikonekta ang mga ito nang walang isang konektor sa bloke). Nabigo iyon, maaari kang maglagay ng tubong pag-urong ng init sa paligid ng nakalantad na bahagi ng spade konektor o ibalot lamang ito sa electrical tape. Ngunit ang mundo ay bumagsak at ang tao ay tamad at walang kabuluhan, kaya hindi ko nagawa iyon.

Ngunit - nakabalot o hindi nakabalot - ang mga spade terminal ay konektado sa terminal block, at handa na kaming magpatuloy sa susunod na hakbang.

Hakbang 4: Subukan ang RGB Matrix

Ngayon na nakakonekta ang iyong Pi hanggang sa light board, i-flip ang board at i-on muli ang Pi. Maaari mong paganahin ang sumbrero ng matrix pagkatapos na mai-plug in ang Pi; kung pinapagana mo ang sumbrero bago ang Pi, bagaman, susubukan ng Pi na mag-boot nang walang sapat na kasalukuyang, at magreklamo ng mapait (at maaaring bigyan ka ng isang takot sa kernel at hindi talaga mag-boot.)

Kung nagkakaproblema ka sa pag-boot ng Pi gamit ang matrix hat, tiyaking gumagamit ka ng sapat na suplay ng kuryente para sa Pi (2A + ay dapat na mabuti) at subukang i-plug ang parehong power supply para sa sumbrero at para sa Pii sa parehong strip ng kuryente o extension cord, at pinagsasama-sama ang mga ito.

Kapag na-boot ang Pi, handa na kaming subukan ang mga matris. Pumunta sa kung saan ang mga sample ng umiiral na python ay (cd / rpi-rgb-led-matrix / bindings / python / sample) at subukan ang umiikot na block generator na may sumusunod na utos:

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

Kailangan mong patakbuhin ito bilang sudo dahil ang library ng matrix ay nangangailangan ng mababang antas na pag-access sa hardware sa pagsisimula. Tinutukoy ng -m ang paraan ng pagkonekta ng mga panel sa pi (sa kasong ito, isang sumbrero ng adafruit) at ang --led-chain na tumutukoy - nahulaan mo ito - kung gaano karaming mga panel ang aming naidena. Ang mga row at haligi bawat panel ay parehong default sa 32, kaya't mahusay kami doon.

Ngayon - kapag naisakatuparan mo ang programa, isa sa dalawa (o, talaga, isa sa tatlong) mga bagay ang magaganap:

  • Walang nangyari
  • Nakakakuha ka ng magandang rotating block sa gitna ng iyong light board.
  • Gumagana ang light board, uh, sa palagay ko, ngunit mukhang… kakaiba (kalahati nito ay berde, ang ilang mga hilera ay hindi nag-iilaw, atbp.)

Kung walang nangyari, o kung ang panel ay mukhang kakaiba, pindutin ang ctrl + c upang lumabas sa sample na programa, isara ang pi, at suriin ang lahat ng iyong mga koneksyon (IDC cable, kapangyarihan, tiyakin na ang parehong mga supply ng kuryente ay naka-plug in, atbp.) Siguraduhin din na ang sumbrero ay konektado nang tama; kung hindi ito ayusin, dalhin ito sa isang panel (tiyaking gumamit ng --led-chain 1 kapag sinusubukan ito) at tingnan kung ang isa sa mga panel ay maaaring masama. Kung hindi gagana iyon, suriin ang mga tip sa pag-troubleshoot ng hzeller. kung hindi pa rin gagana iyon, subukang mag-post sa / r / raspberry_pi (o ang mga forum ng Adafruit, kung nakuha mo ang iyong mga panel mula sa Adafruit, o stack exchange, atbp., atbp.)

Kung ito ay uri ng paggana ngunit mukhang kakaiba pa rin (marahil tulad ng imahe ng header para sa seksyong ito) pagkatapos mong suriin ang mga koneksyon, posible na mayroon kang lahat na konektado nang tama, na gumagana nang maayos ang mga panel, ngunit ang Isang bagay na Iba pa ay pupunta sa Alin ang magdadala sa amin sa aming susunod na hakbang - higit pa sa isang paglilipat kaysa sa isang hakbang - sa mga rate ng multiplexing at pag-scan. (Kung ang iyong led board ay gumagana nang maayos at hindi ka interesado sa panloob na paggana ng mga panel na ito, huwag mag-atubiling laktawan ang susunod na hakbang.)

Hakbang 5: Mga Rate ng Multiplexing at Scan (o: isang Sandali na Pagkakaiba sa Daan patungong Libingan)

Kaya, ang isa sa mga pagkakamaling nagawa ko nang mag-order ako ng aking unang hanay ng mga panel sa Alibaba ay nakuha ko ang mga panlabas na panel (bakit hindi, naisip ko - hindi tinatagusan ng tubig, at mas maliwanag!). At, nang i-wire ko ang mga ito hanggang sa aking matrix hat, ang mga bagay ay tumingin.. hindi tama.

Upang maunawaan kung bakit iyon, kukuha kami ng isang minuto upang tingnan ang Phil Burgess mula sa paglalarawan ng Adafruit kung paano gumagana ang mga panel na ito. Mapapansin mo na itinuro ni Burgess na ang mga panel ay hindi ilaw ng lahat ng kanilang mga LED nang sabay-sabay - sinisindi nila ang mga hanay ng mga hilera. Ang ugnayan sa pagitan ng taas ng panel sa mga pixel at ang bilang ng mga hilera na lumiliwanag nang sabay-sabay ay tinatawag na rate ng pag-scan. Kaya, halimbawa - Sa isang 32x32 panel na may 1/16 scan, dalawang mga hilera (1 at 17, 2 at 18, 3 at 19, atbp) ay naiilawan nang sabay-sabay, pababa sa board, at pagkatapos ay inuulit ng controller. Karamihan sa mga aklatan na nagtutulak ng mga RGB matrice ay itinayo para sa mga panel kung saan ang rate ng pag-scan ay 1/2 ng taas sa mga pixel - iyon ay, hinihimok nila ang dalawang hilera ng LEDs nang sabay-sabay.

Ang mga panlabas na panel (at ilang panloob na mga panel - siguraduhin na tumingin ka sa mga panoorin bago mag-order) ay may mga rate ng pag-scan na 1/4 ng taas sa mga pixel, na nangangahulugang inaasahan nilang apat na linya ang maitutulak nang sabay-sabay. Ginagawa itong mas maliwanag (na mabuti) ngunit gumagawa ng maraming karaniwang code na hindi gagana sa kanila (na masama). Bilang karagdagan sa na, may posibilidad silang magkaroon ng mga pixel na hindi maayos sa panloob, na nangangailangan ng pagbabago ng mga halagang x at y sa software upang matugunan ang mga tamang pixel. Bakit ginagawa ang ganito sa Wala akong ideya. Alam mo ba? Kung gayon, mangyaring sabihin sa akin. Kung hindi man ay mananatili lamang itong isang misteryo.

Kaya, kung mayroon kang isa sa mga kakaibang panlabas na panel, ikaw ay (marahil) swerte! Kamakailan ay nagdagdag si hzeller ng suporta para sa mga karaniwang pagsasaayos ng mga ganitong uri ng mga panel sa kanyang silid-aklatan. Maaari mong basahin ang higit pa tungkol dito sa pahina ng github para sa proyekto, ngunit maaari mong ipasa --led-multiplexing = {0, 1, 2, 3} sa sample code (maaaring kailangan mo ring magpanggap na tulad ng nakuha mo dobleng haba na kadena ng mga kalahating haba na panel) at dapat itong gumana.

Mayroong ilang mga pattern ng pagbabago ng pixel na hindi suportado, kahit na - at (hulaan kung ano) ang aking mga panel ay may isa sa mga ito! Kaya, kailangan kong magsulat ng aking sariling code ng pagbabago (ako rin - para sa anumang kadahilanan - ay dapat sabihin sa library na kumilos tulad ng mayroon akong walong 16x32 na mga panel na nakakadena). na kung saan ay ang mga sumusunod:

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

effK = k% 32

modY = k

modX = j

Ang #modX at modY ang binago X at Y;

Siguraduhin ng #effJ at effK na magbago kami sa loob ng isang 32x32 matrix bago itulak

kung ((effJ)> 15):

modX = modX + 16

kung ((effK)> 7):

modY = modY - 8

modX = modX + 16

kung ((effK)> 15):

modX = modX - 16

kung ((effK)> 23):

modY = modY - 8

modX = modX + 16

# Pagkatapos, itulak namin sila sa tamang lokasyon (bawat x + 32 ay gumagalaw sa isang panel)

kung (j> 31):

modX + = 32

kung (j> 63):

modX + = 32

kung (j> 95):

modX + = 32

bumalik (modX, modY)

Kung mayroon kang isang panel tulad ng sa akin, maaari itong gumana para dito. Kung hindi, kakailanganin mong magsulat ng sarili mo - kaya, alam mo, good luck at godpeed.

Hakbang 6: Ang Starboard Program (o: Bumalik sa Subaybayan at Handa na sa Pixel)

Ngayon na nakuha mo na ang iyong mga matrice na pagpapatakbo at handa nang umalis, ang kailangan mo lang gawin ay ilagay ang programang starboard sa iyong Pi at ihanda itong umalis. Tiyaking nasa direktoryo sa bahay ng gumagamit (cd / home / pi) at patakbuhin ang sumusunod na utos:

git clone

dapat mayroon kang isang bagong folder, starboard, na naglalaman ng tatlong mga file: LICENSE.md, README.md at starboard_s16.py. Subukan ang programang starboard sa pamamagitan ng pagpapatakbo nito sa pamamagitan ng sawa:

sudo python./starboard_s16.py

at dapat kang makakuha ng isang bungkos ng mga particle na gumagalaw sa iba't ibang mga bilis at pagkabulok sa iba't ibang mga rate. Tuwing 10, 000 ticks o higit pa (maaari kang pumunta sa script ng sawa upang mai-edit / baguhin ito) babaguhin nito ang mga mode (mayroong apat: RGB, HSV, Rainbow, at Greyscale).

Kaya, ngayon ang tanging natitirang gawin ay gawin ang starboard code na tumakbo sa pagsisimula. Gagawin namin iyon sa pamamagitan ng pag-edit (na may sudo) /etc/rc.local. Ang nais mong gawin ay idagdag ang sumusunod na linya bago mismo ang "exit 0" sa script:

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

Matapos mong gawin iyon, i-reboot ang pi - sa sandaling tumakbo ito sa pamamagitan ng pagkakasunud-sunod ng bootup, dapat magsimula ang starboard_s16.py script!

Kung nais mong sundutin ang script, huwag mag-atubiling gawin ito - ito ay lisensyado sa ilalim ng GNU GPL 3.0. Kung hindi tatakbo para sa iyo ang script, o nagkakaproblema ka rito, huwag mag atubili na ipaalam sa akin o magsumite ng isang bug sa github, at makikita ko kung ano ang magagawa ko upang ayusin ito!

Ang (napaka) huling bagay na maaaring nais mong gawin ay ang pag-set up ng SSH sa pi, upang maaari kang makapasok at ligtas itong ma-shut down. Gusto / tiyak / nais mong baguhin ang iyong password (sa pamamagitan ng passwd command), at mahahanap mo ang mga tagubilin para sa pagpapagana ng ssh (mula rin sa linya ng utos) dito.

Inirerekumendang: