Kazalo:
- 1. korak: Sestavite LED ploščo
- 2. korak: Pripravite Raspberry Pi
- 3. korak: Priključite Pi + Matrix Hat + LED ploščo
- 4. korak: Preizkusite matriko RGB
- 5. korak: Stopnje multipleksiranja in skeniranja (ali: trenutna preusmeritev na poti v grob)
- 6. korak: program Starboard (ali: Nazaj na skladbo in pripravljen na slikovno piko)
Video: RPi 3 Starboard / Generator delcev: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Vam je z Raspberry Pi dolgčas? Ali ste pripravljeni poveljevati zelo elementarnim silam vesolja, priklicati in odpuščati fotone po svoji volji? Ali želite le nekaj zanimivega obesiti v svojo dnevno sobo ali pa kakšen domišljijski projekt, ki bi ga objavili na facebooku, da bi Denise pokazali, da ste v teh dneh v redu, hvala lepa? Ali ste ujeti v računalniški simulaciji in zapravljate ure, dokler niste osvobojeni ali izbrisani? Če vas kateri od teh ali vsi opisujejo, potem [glas napovedovalca] Dobrodošli!
Ta vadnica vam bo pokazala, kako sestaviti in nastaviti zaslon generatorja delcev z uporabo Raspberry Pi 3 in nekaterih matričnih plošč RGB. Trajalo bi od ene do dveh ur, končni izdelek pa bo približno 30 "x8" (ne vključuje Pi) in ga lahko namestite na steno. Je zelo kul dekoracija za dnevno sobo, pisarno, igralnico ali kamor koli drugam, kamor jo želite postaviti.
Preden začnete, boste potrebovali naslednje in kakšni so približni stroški:
- Rpi 3 + SD kartica + etui + napajalnik: 70 USD (pri Canakitu, vendar jih lahko verjetno kupite ceneje, če jih kupite ločeno.)
- 4x 32x32 RGB LED matrika (po možnosti p6 v zaprtih prostorih s 1/16 skeniranjem): 80–100 USD, poslano na Alibabi ali Aliexpressu; 160 dolarjev za Adafruit ali Sparkfun.
- Klobuk Adafruit RGB Matrix: 25 USD
- Napajanje 5V 4A: 15 USD
- Natisnjeni posnetki v 3D: 1 USD (ti so za povezovanje plošč in njihovo obešanje na steno; če nimate dostopa do 3D tiskalnika, jih lahko uporabite skupaj s kosim trakom in nekaj nosilcev iz trgovine s strojno opremo do obesite ga na steno. Poskušal sem najti oblikovalske datoteke ali datoteke.stls za te, vendar se zdi, da so prišle z zemlje. Posnetke je precej enostavno modelirati.)
- 14x vijaki M4x10: 5 USD
- Štirje IDX kabli 4x8 in tri napajalne kable za matrike RGB (ne vem, kako se temu reče!). Ti bi morali biti vključeni v vaše LED plošče.
- Skupaj: približno 200 USD, daj ali vzemi.
Projekt ne zahteva spajkanja ali posebnega znanja programiranja; predpostavlja se, da veste, kako zapisati sliko na kartico microSD. Če niste prepričani, kako to storiti, ima fundacija Raspberry Pi dobro vadnico.
Predvideva tudi, da imate osnovno znanje o tem, kako narediti stvari iz ukazne vrstice v Linuxu, pri sprejemu kode pa predpostavljate, da poznate osnove Pythona (vendar - vam ni treba slediti korakom po korakih, da bi lahko ustvarili in zaženite generator delcev.) Če se pri katerem koli od korakov zataknete, vprašajte ali objavite vprašanje v /r /raspberry_pi (kar je tudi, predvidevam, glavna publika za to navodilo)
1. korak: Sestavite LED ploščo
Najprej boste posamezne LED plošče 32x32 sestavili v eno veliko ploščo velikosti 128x32. Pogledati morate svoje plošče in poiskati puščice, ki označujejo vrstni red povezav; na mojem so tik ob priključkih IDC HUB75/2x8. Prepričajte se, da so puščice usmerjene od mesta, kjer se bo Rpi povezal (desno na zgornji fotografiji) navzdol po dolžini plošče.
Prav tako morate priključiti napajalne kable. Večina teh kablov ima dva ženska priključka, ki se pritrdijo na plošče, in en komplet lopatic, ki se priključi na vir napajanja. Plošče, s katerimi delam, imajo indikatorje za 5V in GND skoraj v celoti skrite pod samimi priključki, vendar se kabli povezujejo samo v eno smer. Poskrbeti boste morali, da vse 5V skupaj povežete in vse GND skupaj, kajti če jih napajate nazaj, jih boste skoraj zagotovo ocvrli.
Ker so bili napajalni kabli, priloženi mojim ploščam, tako kratki, sem moral enega podaljšati tako, da sem vtič lopatice vtaknil v konektor drugega (To je precej preprosto - morda boste morali terminale lopatice rahlo upogniti navznoter, vendar sem za vsak slučaj sem priložil sliko). Končal sem z dvema kompletoma lopaticnih terminalov in enim 2x8 IDC priključkom desno od moje zdaj podolgovate LED plošče.
Opazili boste tudi, da imam dva vijaka, ki nista pritrjena na nič na obeh straneh plošče; ti bodo na vrhu, ko se vse skupaj obrne, in se bodo uporabili za pritrditev na steno.
Torej - ko povežete vse plošče skupaj s sponkami, 2x8 IDC kabli in napajalnimi kabli, ste pripravljeni na naslednji korak!
2. korak: Pripravite Raspberry Pi
Nato boste LED ploščo (zaenkrat) odstranili in Pi 3 pripravili za delovanje. Uporabljali bomo Raspbian Stretch Lite in hzellerjevo knjižnico matrik RGB (namesto knjižnice matrik Adafruit, ki je starejša in ne vzdržuje.)
Najprej boste želeli zapisati sliko Raspbian Lite na kartico SD; ko to storite, priključite monitor in tipkovnico na pi in ga zaženite. (To lahko storite tudi brez glave, bodisi prek ssh ali serijskega priključka, če pa grete tako, vam verjetno ne potrebujem, da vam povem, kako to storiti.) Za to potrebujete internetno povezavo; Če imate wifi, povežite Pi z brezžičnim omrežjem tako, da uredite /etc/wpa_supplicant/wpa_supplicant.conf in zaženete wpa_cli -i wlan0 reconfigure. (Če tega še niste storili, lahko tukaj dobite navodila).
Ko se povežete z internetom, bomo posodobili nastavitve skladišča dpkg in prenesli knjižnice, ki jih potrebujemo, z izvajanjem naslednjih ukazov:
sudo apt-get posodobitev
sudo apt-get install git python-dev python-pil
git clone
Zdaj moramo sestaviti in namestiti matrično kodo. Torej pojdite v mapo, ki vsebuje knjižnico:
cd rpi-rgb-led-matrika
in ga sestavite (to lahko traja minuto):
make && make build-python
in namestite vezi python:
sudo make install-python
Če med sestavljanjem kode knjižnice pride do napak, se vrnite in se prepričajte, da ste pravilno namestili python-dev in python-pil! Povezave python se ne bodo prevedle brez namestitve obeh teh paketov.
Prav tako boste morali z urejanjem /boot/config.txt onemogočiti zvočni izhod vašega Pi-ja (vgrajen zvok moti kodo matrice). Poiščite vrstico z napisom dtparam = audio = vklopljeno in jo spremenite v dtparam = audio = off.
Če je vse sestavljeno v redu (dobili boste nekaj opozoril glede protokolov Wstrict), mora biti vaš pi pripravljen za zagon matrične plošče. Pojdi naprej in ga izklopi (sudo shutdown now), ga izključi in v naslednjem koraku bomo svetlobno ploščo povezali s pi.
3. korak: Priključite Pi + Matrix Hat + LED ploščo
Torej, zdaj, ko je vaš Pi izklopljen in priključen, povežimo matrični klobuk s pi in LED ploščo z matričnim klobukom. Če vaš Pi še ni v tem primeru, je pravi čas, da ga vstavite.
Namestite klobuk matrice tako, da ga položite z zatiči GPIO na Pi in ga nežno potisnete navzdol z enakomerno silo na obeh straneh. Prepričajte se, da so zatiči pravilno poravnani, tako da ženske glave na klobuku natančno pokrivajo zatiče GPIO na pi. Če ga poravnate, to ni katastrofa; le nežno ga izvlecite in poravnajte vse zatiče, ki so se upognili.
Ko nosite klobuk, postavite Pi desno od sestavljene LED plošče (še enkrat znova preverite napajalne povezave in se prepričajte, da puščice kažejo od Pi navzdol po plošči) in povežite IDC kabel do matričnega klobuka.
Nato boste želeli priključiti lopatice za napajanje v priključni blok matričnega klobuka. Na vsaki strani imate dva priključka za lopato, vendar se morata oba dobro prilegati. Najprej odvijte vijake in - to je samoumevno - obvezno vstavite 5V priključke na stran z oznako + (ti morajo biti rdeči, vendar - še enkrat - dvakrat preverite svoje konektorje in ne domnevajte, da so izdelani pravilno) in priključki GND (ti naj bodo črni) na strani z oznako -. Ko so notri, privijte vijake na vrhu spončnega bloka in za ta korak bi morali imeti nekaj, kar izgleda kot slika glave.
Morda ste opazili, da ta posebna konfiguracija pusti polovico lopatice na obeh straneh izpostavljeno in lebdi le milimetre nad matrico (in ne zelo daleč drug od drugega.) IN - lopatice bodo kmalu nosi več voltov in več amperov surove energije. Je to (slišim, da sprašujete z druge strani zaslona) res prava pot? Je to, (se nagnete bližje in šepetate), dobra ideja?
In odgovor je (odgovorim in skomignem z rameni) - ne, ni. Pravilen način bi bil, da odstranite lopatice s napajalnih kablov in jih ponovno stisnete v pravi konektor za to sponko (ali pa jih pustite kot gole žice in jih priključite brez priključka v blok). Če tega ne storite, lahko okoli izpostavljene strani priključka lopatice položite toplotno skrčljivo cev ali pa jo preprosto zavijete v električni trak. Toda svet je padel in človek je len in zaman, zato tega nisem storil.
Toda - zaviti ali razviti - so lopatice priključene na priključni blok in pripravljeni smo na naslednji korak.
4. korak: Preizkusite matriko RGB
Zdaj, ko je vaš Pi priključen na svetlobno ploščo, obrnite ploščo in znova vklopite Pi. Matrični klobuk lahko napajate, ko je Pi priključen; če pa vklopite klobuk pred Pi, se bo Pi poskušal zagnati s premajhnim tokom in se bo bridko pritoževal (in lahko povzroči paniko jedra in se sploh ne bo zagnal.)
Če imate težave pri zagonu Pi z nameščenim matričnim klobukom, se prepričajte, da uporabljate dovolj močan napajalnik za Pi (2A+ bi morala biti dobra) in poskusite priključiti napajalnik za klobuk in za Pii v isti razdelilnik ali podaljšek in jih skupaj vklopite.
Ko se Pi zažene, smo pripravljeni preizkusiti matrice. Pojdite tja, kjer so vzorci vezave python (cd/rpi-rgb-led-matrix/bindings/python/vzorci) in preizkusite generator vrtljivih blokov z naslednjim ukazom:
sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4
Zagnati ga morate kot sudo, ker matrična knjižnica pri inicializaciji potrebuje dostop do strojne opreme na nizki ravni. -M določa način, kako so plošče povezane s pi (v tem primeru klobuk iz adafruta), veriga --led pa -uganili ste -koliko plošč smo povezali skupaj. Vrstice in stolpci na plošči so privzeto nastavljeni na 32, zato smo tam dobri.
Zdaj, ko program izvedete, se bo zgodila ena od dveh (ali res ena od treh) stvari:
- Se ne zgodi nič
- Na sredini svetlobne deske dobite lep vrtljiv blok.
- Svetlobna tabla deluje, uh, mislim, vendar izgleda … čudno (polovica je zelena, nekatere vrstice ne svetijo itd.)
Če se nič ne zgodi ali če je plošča videti čudno, pritisnite ctrl+c, da zapustite vzorčni program, izklopite pi in preverite vse svoje povezave (kabel IDC, napajanje, preverite, ali sta oba napajalnika priključena itd.) Prepričajte se tudi, da je klobuk pravilno priključen; če tega ne odpravite, ga odnesite na eno ploščo (pri preizkusu uporabite --led-chain 1) in preverite, ali je morda ena od plošč slaba. Če to ne deluje, si oglejte nasvete za odpravljanje težav podjetja Hzeller. če TO še vedno ne deluje, poskusite objaviti na /r /raspberry_pi (ali na forumih Adafruit, če ste svoje plošče dobili od Adafruit, ali pa zamenjati kup itd.)
Če nekako deluje, vendar še vedno izgleda čudno (morda kot slika glave tega razdelka), potem ko ste preverili povezave, je možno, da imate vse pravilno povezane, da plošče delujejo pravilno, vendar se dogaja še kaj drugega naprej. Kar nas bo pripeljalo do naslednjega koraka - več preusmeritve kot koraka - pri stopnjah multipleksiranja in skeniranja. (Če vaša LED plošča deluje dobro in vas notranje delovanje teh plošč ne zanima, preskočite naslednji korak.)
5. korak: Stopnje multipleksiranja in skeniranja (ali: trenutna preusmeritev na poti v grob)
Torej, ena od napak, ki sem jih naredil, ko sem naročil svoj prvi komplet plošč pri Alibabi, je, da sem dobil zunanje plošče (zakaj ne, sem si mislil - vodotesne so in svetlejše!). In ko sem jih priklopil na svoj matrični klobuk, je bilo videti … da ni v redu.
Da bi razumeli, zakaj je tako, si bomo vzeli minuto časa, da si ogledamo Phila Burgessa iz Adafrutovega opisa delovanja teh plošč. Opazili boste, da Burgess poudarja, da plošče ne prižgejo vseh LED naenkrat - prižgejo niz vrstic. Razmerje med višino plošče v pikslih in številom vrstic, ki zasvetijo hkrati, imenujemo hitrost skeniranja. Tako na primer - Na plošči 32x32 s skeniranjem 1/16 se hkrati osvetlita dve vrstici (1 in 17, 2 in 18, 3 in 19 itd.), Vse do plošče, nato pa se krmilnik ponovi. Večina knjižnic, ki poganjajo matrike RGB, je zgrajena za plošče, kjer je stopnja optičnega branja 1/2 višine v slikovnih pikah - to pomeni, da poganjajo dve vrsti LED naenkrat.
Zunanje plošče (in nekatere notranje plošče - pred naročilom si oglejte specifikacije) imajo stopnje skeniranja 1/4 višine v pikslih, kar pomeni, da pričakujejo, da bodo naenkrat prevožene štiri vrstice. Zaradi tega so svetlejši (kar je dobro), vendar veliko standardne kode ne deluje z njimi (kar je slabo). Poleg tega imajo ponavadi notranje nepravilnosti v pikslih, kar zahteva preoblikovanje vrednosti x in y v programski opremi, da bi lahko obravnavali prave slikovne pike. Zakaj so narejeni tako? Nimam pojma. Ali veš? Če je tako, mi prosim povejte. V nasprotnem primeru bo morala ostati skrivnost.
Torej, če imate eno od teh čudnih zunanjih plošč, imate (verjetno) srečo! hzeller je nedavno v svojo knjižnico dodal podporo za običajne konfiguracije teh vrst plošč. Več o tem lahko preberete na strani github za projekt, lahko pa posredujete --led-multiplexing = {0, 1, 2, 3} vzorčni kodi (morda se boste morali pretvarjati, da imate dvojne dolžine verig iz polovičnih dolžin) in bi morala delovati.
Obstaja nekaj vzorcev preoblikovanja slikovnih pik, ki pa niso podprti - in (uganite, kaj) imajo moje plošče enega od njih! Zato sem moral napisati svojo kodo za preoblikovanje (tudi jaz - iz kakršnega koli razloga - moram knjižnici povedati, naj se obnaša, kot da imam osem plošč 16x32 povezanih skupaj). ki je sledeč:
def transformPixels (j, k): effJ = j % 32
effK = k % 32
modY = k
modX = j
#modX in modY sta spremenjena X in Y;
#effJ in effK se prepričajte, da se pred potiskanjem preoblikujemo v matriki 32x32
če ((effJ)> 15):
modX = modX + 16
če ((effK)> 7):
modY = modY - 8
modX = modX + 16
če ((effK)> 15):
modX = modX - 16
če ((effK)> 23):
modY = modY - 8
modX = modX + 16
#Nato jih potisnemo na pravo mesto (vsak x+32 premakne eno ploščo)
če (j> 31):
modX += 32
če (j> 63):
modX += 32
če (j> 95):
modX += 32
return (modX, modY)
Če imate ploščo, kot je moja, bi to morda delovalo. Če se ne bo, boste morali sami napisati - torej, veste, veliko sreče in vse dobro.
6. korak: program Starboard (ali: Nazaj na skladbo in pripravljen na slikovno piko)
Zdaj, ko imate matrice operativne in pripravljene za delo, morate le postaviti desni program na svoj Pi in ga pripraviti za uporabo. Prepričajte se, da ste v domačem imeniku uporabnika pi (cd /home /pi) in zaženite naslednji ukaz:
git clone
imeti bi morali novo mapo, desno, ki vsebuje tri datoteke: LICENSE.md, README.md in starboard_s16.py. Preizkusite program desnega desnega kota tako, da ga zaženete prek pythona:
sudo python./starboard_s16.py
in morali bi dobiti kup delcev, ki se gibljejo z različno hitrostjo in razpadajo z različno hitrostjo. Vsakih 10.000 klopov (za urejanje/spreminjanje pojdite v skript python) bo spremenil načine (obstajajo štirje: RGB, HSV, Rainbow in Greyscale).
Torej, edino, kar je še treba storiti, je, da se zagonska koda zažene ob zagonu. To bomo storili z urejanjem (s sudo) /etc/rc.local. Kar želite narediti, je, da tik pred "izhodom 0" v skriptu dodate naslednjo vrstico:
python /home/pi/starboard/starboard_s16.py &
Ko to storite, znova zaženite pi - ko teče skozi zagonsko zaporedje, se mora skript starboard_s16.py zagnati takoj!
Če želite pobrskati po skriptu, lahko to storite - licencirano je pod GNU GPL 3.0. Če vam skript ne bo deloval ali imate težave z njim, mi sporočite ali pošljite napako na githubu, pa bom videl, kaj lahko popravim!
(Zelo) zadnja stvar, ki bi jo morda želeli narediti, je, da nastavite SSH na pi, tako da se lahko odmaknete in varno izklopite. Geslo boste / zagotovo / želeli spremeniti (z ukazom passwd), tukaj pa najdete navodila za omogočanje ssh (tudi iz ukazne vrstice).
Priporočena:
Zgradite napravo za nadzor energije z elektrono delcev: 5 korakov (s slikami)
Zgradite napravo za nadzor energije z elektrono delcev: V večini podjetij imamo energijo za poslovni strošek. Račun se prikaže v naši pošti ali po e -pošti in ga plačamo pred datumom odpovedi. S pojavom interneta stvari in pametnih naprav Energy začenja zavzemati novo mesto v poslovnem ravnovesju
Sniffer delcev: 6 korakov (s slikami)
Delček Sniffer: Med delom s prejšnjimi projekti o oceni PM2.5 sem opazil pomanjkljivost, ker nisem mogel najti točkovnih virov onesnaženja z majhnimi delci. Večina vzorcev, ki jih opravijo občine, in satelitski posnetki zbirajo široke vire, ki ne
Analizator sončnih delcev: 5 korakov (s slikami)
Analizator sončnih delcev: Nedavno sem bil na konferenci v Fairbanksu na Aljaski, kjer je lokalno podjetje za premog (rudnik premoga Usibelli) sponzoriralo inovatorje pri razmišljanju o načinih izboljšanja kakovosti zraka. Očitno ironično, a tudi res odlično. Zdi se, da to ni bila raziskava
Spremljanje kakovosti zraka s fotonom delcev: 11 korakov (s slikami)
Spremljanje kakovosti zraka s fotonom delcev: V tem projektu se senzor delcev PPD42NJ uporablja za merjenje kakovosti zraka (PM 2,5) v zraku s fotonom delcev. Ne prikazuje samo podatkov na konzoli Particle and dweet.io, temveč tudi spreminja kakovost zraka z uporabo LED RGB
Spremljanje konferenčne sobe z uporabo fotona delcev: 8 korakov (s slikami)
Spremljanje konferenčne sobe z uporabo delcev Photon: Uvod V tej vadnici bomo naredili monitor konferenčne sobe z uporabo Particle Photon. V tem delcu je integriran s Slackom z uporabo Webhooks za pridobivanje posodobitev v realnem času o tem, ali je soba na voljo ali ne. Senzorji PIR se uporabljajo za