Turinys:

RPi 3 dešinysis / dalelių generatorius: 6 žingsniai (su paveikslėliais)
RPi 3 dešinysis / dalelių generatorius: 6 žingsniai (su paveikslėliais)

Video: RPi 3 dešinysis / dalelių generatorius: 6 žingsniai (su paveikslėliais)

Video: RPi 3 dešinysis / dalelių generatorius: 6 žingsniai (su paveikslėliais)
Video: High Density 2022 2024, Lapkritis
Anonim
Image
Image
Surinkite LED plokštę
Surinkite LED plokštę

Ar jaučiatės nuobodu su savo „Raspberry Pi“? Ar esate pasirengęs vadovauti pačioms elementariausioms visatos jėgoms, šaukti ir atleisti fotonus savo nuožiūra? Ar tiesiog norite ką nors įdomaus pakabinti savo gyvenamajame kambaryje, ar išgalvotą projektą paskelbti „Facebook“, kad parodytumėte Denisei, kad šiomis dienomis jums sekasi puikiai, ačiū? Ar esate įstrigęs kompiuteriniame modeliavime ir praleidžiate valandas, kol būsite išlaisvintas ar ištrintas? Jei kas nors ar visa tai apibūdina jus, tada [pranešėjo balsas] Sveiki!

Ši pamoka parodys, kaip surinkti ir nustatyti dalelių generatoriaus ekraną naudojant „Raspberry Pi 3“ir kai kurias RGB matricos plokštes. Tai užtruks nuo vienos iki dviejų valandų, o gatavas produktas bus maždaug 30 x 8 colių (neįskaitant „Pi“) ir tvirtinamas prie sienos. Tai gana šauni dekoracija svetainei, biurui, žaidimų kambariui ar bet kur kitur, kur norite jį įdėti.

Prieš pradėdami, štai ko jums reikės ir kokios yra apytikslės išlaidos:

  • „RPI 3“+ SD kortelė + dėklas + maitinimo šaltinis: 70 USD (iš „Canakit“, tačiau tikriausiai galite nusipirkti dalių pigiau, jei perkate jas atskirai.)
  • 4x 32x32 RGB LED matrica (pageidautina p6 patalpoje su 1/16 nuskaitymu): 80–100 USD, siunčiama „Alibaba“arba „Aliexpress“; 160 USD „Adafruit“ar „Sparkfun“.
  • „Adafruit RGB Matrix“skrybėlė: 25 USD
  • 5V 4A maitinimo šaltinis: 15 USD
  • 3D spausdinti klipai: 1 USD (jie skirti skydams prijungti ir pakabinti ant sienos; jei neturite prieigos prie 3D spausdintuvo, galite juos laikyti kartu su kailio juosta ir kai kuriuos skliaustus iš techninės įrangos parduotuvės) pakabinkite jį nuo sienos. Bandžiau rasti jų dizaino failus arba.stls, bet atrodo, kad jie praėjo iš žemės. Vis dėlto klipus gana lengva modeliuoti.)
  • 14x M4x10 varžtai: 5 USD
  • Keturi 4x8 IDC kabeliai ir trys maitinimo kabeliai RGB matricoms (nežinau, kaip jie vadinami!). Jie turėjo būti įtraukti į jūsų LED plokštes.
  • Iš viso: apie 200 USD, duok arba imk.

Projektui nereikia lituoti ar turėti specialių programavimo žinių; manoma, kad žinote, kaip įrašyti vaizdą į „microSD“kortelę. Jei nesate tikri, kaip tai padaryti, Raspberry Pi fondas čia turi gerą pamoką.

Taip pat daroma prielaida, kad turite pagrindinių žinių apie tai, kaip atlikti veiksmus iš komandinės eilutės „Linux“, o kodo peržiūroje daroma prielaida, kad žinote „Python“pagrindus (bet - jums nereikia sekti kodo peržiūros, kad galėtumėte kurti ir paleiskite dalelių generatorių.) Jei įstrigote atlikdami bet kurį iš veiksmų, nedvejodami užduokite klausimą ar paskelbkite /r /raspberry_pi (tai, manau, yra ir pagrindinė šios pamokos auditorija)

1 žingsnis: Surinkite LED plokštę

Surinkite LED plokštę
Surinkite LED plokštę

Pirma, jūs surinksite atskiras 32x32 LED plokštes į vieną didelį 128x32 skydelį. Turėsite pažvelgti į savo plokštes ir rasti mažas rodykles, rodančias prisijungimo tvarką; mano jie yra visai šalia HUB75/2x8 IDC jungčių. Įsitikinkite, kad rodyklės nukreiptos iš tos vietos, kur Rpi jungsis (iš dešinės, aukščiau esančioje nuotraukoje) lentos ilgiu.

Taip pat turėsite prijungti maitinimo laidus. Dauguma šių kabelių turi dvi jungtis, pritvirtintas prie plokščių, ir vieną kastuvinių gnybtų rinkinį, kuris pritvirtinamas prie maitinimo šaltinio. Plokštėse, su kuriomis dirbu, 5V ir GND indikatoriai beveik visiškai paslėpti po pačiomis jungtimis, tačiau kabeliai jungiasi tik viena kryptimi. Norite įsitikinti, kad sujungiate visus 5V ir visus GND kartu, nes jei įjungsite juos atgal, beveik neabejotinai juos pakepsite.

Kadangi maitinimo kabeliai, pridedami prie mano plokščių, buvo tokie trumpi, turėjau vieną pratęsti, įkišdamas kastuvo gnybtų kištukus į kito jungtį (tai gana paprasta - gali tekti šiek tiek sulenkti kastuvo gnybtus į vidų, bet aš tik pridėjau nuotrauką). Galų gale turėjau du kastuvinių gnybtų rinkinius ir vieną 2x8 IDC jungtį, esančią dešinėje nuo dabar pailgos LED plokštės.

Taip pat pastebėsite, kad aš turiu du varžtus, kurie nėra pritvirtinti prie nieko abiejuose lentos galuose; jie bus viršuje, kai visa tai bus apversta, ir bus naudojami pritvirtinti prie sienos.

Taigi - kai sujungsite visas plokštes su spaustukais, 2x8 IDC kabeliais ir maitinimo kabeliais, būsite pasiruošę pereiti prie kito žingsnio!

2 žingsnis: Paruoškite „Raspberry Pi“

Tada jūs ketinate atidėti LED plokštę (kol kas) ir paruošti „Pi 3“ją paleisti. Mes naudosime „Raspbian Stretch Lite“ir „hzeller“RGB matricų biblioteką (o ne „Adafruit“matricos biblioteką, kuri yra senesnė ir neprižiūrima).

Pirma, norėsite įrašyti „Raspbian Lite“vaizdą į SD kortelę; kai tai padarysite, eikite į priekį ir prijunkite monitorių ir klaviatūrą prie „pi“ir paleiskite. (Taip pat galite tai padaryti be galvos, naudodamiesi ssh arba nuoseklia jungtimi, bet jei taip einate, man tikriausiai nereikia, kad pasakyčiau, kaip tai padaryti.) Tam jums reikės interneto ryšio.; Jei turite „Wi -Fi“, prijunkite „Pi“prie belaidžio tinklo, redaguodami /etc/wpa_supplicant/wpa_supplicant.conf ir paleisdami „wpa_cli -i wlan0“. (Jei to niekada nedarėte, instrukcijas galite gauti čia).

Kai būsite prisijungę prie interneto, atnaujinsime dpkg saugyklos nustatymus ir atsisiųsime reikalingas bibliotekas vykdydami šias komandas:

sudo apt-get atnaujinimas

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

git klonas

Dabar turime surinkti ir įdiegti matricos kodą. Taigi jūs pateksite į aplanką, kuriame yra biblioteka:

cd rpi-rgb-led-matrica

ir sukompiliuokite (tai gali užtrukti minutę):

sukurti ir sukurti „build-python“

ir įdiekite „python“apkaustus:

sudo make install-python

Jei kurdami bibliotekos kodą gaunate klaidų, grįžkite atgal ir įsitikinkite, kad teisingai įdiegėte „python-dev“ir „python-pil“! „Python“susiejimai nebus kompiliuojami neįdiegus abiejų šių paketų.

Taip pat turėsite išjungti „Pi“garso išvestį (vidinis garsas trukdo matricos kodui), redaguodami /boot/config.txt. Ieškokite eilutės, kurioje sakoma dtparam = audio = įjungta, ir pakeiskite ją į dtparam = audio = išjungta.

Jei viskas sudaryta gerai (gausite kelis įspėjimus apie „Wstrict“protoypes), jūsų pi turėtų būti pasirengęs paleisti matricos lentą. Eikite į priekį ir išjunkite (sudo išjungimas dabar), atjunkite jį ir kitą žingsnį prijungsime šviesos plokštę prie pi.

3 žingsnis: prijunkite „Pi + Matrix Hat“+ LED plokštę

Prijunkite Pi + Matrix Hat + LED plokštę
Prijunkite Pi + Matrix Hat + LED plokštę

Taigi, dabar, kai jūsų „Pi“yra išjungtas ir atjungtas nuo elektros tinklo, prijunkime matricos skrybėlę prie pi ir LED plokštę prie matricos skrybėlės. Jei jūsų „Pi“dar nėra tokiame dėkle, dabar tinkamas laikas jį įdėti.

Įdiekite matricos skrybėlę, suklijuodami ją prie GP kaiščių ant Pi ir švelniai stumdami žemyn tolygiai jėga iš abiejų pusių. Įsitikinkite, kad smeigtukai yra teisingai išdėstyti, kad skrybėlės antgaliai tiksliai uždengtų ant GP esančius kaiščius. Jei neteisingai sulygiuojate, tai nėra katastrofa; tiesiog švelniai atitraukite jį ir ištiesinkite visus sulenktus kaiščius.

Užsidėję skrybėlę, padėkite „Pi“į dešinę nuo surinktos LED plokštės (dar kartą patikrinkite maitinimo jungtis ir įsitikinkite, kad rodyklės nukreiptos nuo „Pi“žemyn plokštės ilgiu) ir prijunkite IDC kabelis prie matricos skrybėlės.

Tada norėsite prijungti maitinimo kastuvus prie matricos skrybėlės gnybtų bloko. Jūs turite dvi kastuvines jungtis iš vienos pusės, tačiau jos abi turėtų gerai tilpti. Pirmiausia atlaisvinkite varžtus ir - tai savaime suprantama - būtinai įdėkite 5 V gnybtus į šoną, pažymėtą + (jie turėtų būti raudoni, bet - dar kartą - dar kartą patikrinkite jungtis ir nemanykite, kad jie pagaminti teisingai) ir GND gnybtai (jie turi būti juodi) pusėje, pažymėtoje -. Kai jie bus ten, priveržkite gnybtų bloko viršuje esančius varžtus ir turėsite kažką panašaus į šio veiksmo antraštės vaizdą.

Dabar - galbūt pastebėjote, kad ši konkreti konfigūracija palieka pusę kastuvo gnybto abiejose pusėse ir pakyla tik milimetrais virš matricos skrybėlės (ir nėra labai toli viena nuo kitos.) IR - kastuvų gnybtai bus labai greitai turintis tiek kelis voltus, tiek kelis amperus žalios galios. Ar tai (girdžiu, kad klausiate kitoje ekrano pusėje) tikrai yra teisingas būdas tai padaryti? Ar tai, (prisilenkite arčiau ir šnabždate), gera idėja?

Ir atsakymas yra toks (aš atsakau gūžtelėdamas pečiais) - ne, taip nėra. Tinkamas būdas tai būtų nuimti maitinimo kabelius nuo kastuvų gnybtų ir iš naujo suspausti juos į tinkamą gnybtų bloko jungtį (arba palikti juos kaip plikus laidus ir prijungti be jungties prie bloko). Jei to nepadarysite, aplink atvirą kastuvo jungties pusę galite uždėti termiškai susitraukiančius vamzdelius arba tiesiog apvynioti juostele. Bet pasaulis sugriuvo, o žmogus tingus ir tuščias, todėl to nepadariau.

Bet - suvynioti ar išvynioti - kastuviniai gnybtai yra prijungti prie gnybtų bloko, ir mes pasiruošę pereiti prie kito žingsnio.

4 žingsnis: išbandykite RGB matricą

Dabar, kai jūsų „Pi“yra prijungtas prie švieslentės, apverskite plokštę ir vėl įjunkite „Pi“. Galite įjungti matricos skrybėlę, kai „Pi“yra prijungtas; Tačiau, jei įjungsite skrybėlę prieš „Pi“, „Pi“bandys paleisti esant nepakankamai srovės ir kartingai skųsis (ir gali sukelti panikos branduolį ir visai nepaleisti.)

Jei kyla problemų priversti „Pi“paleisti su matricos skrybėle, įsitikinkite, kad naudojate pakankamai galingą „Pi“maitinimo šaltinį (2A+ turėtų būti geras) ir pabandykite prijungti tiek skrybėlės, tiek Įjunkite tą patį maitinimo laidą arba ilgintuvą ir įjunkite juos kartu.

Kai „Pi“paleidžiamas, esame pasirengę išbandyti matricas. Eikite ten, kur yra „Python“surišimo pavyzdžiai (cd/rpi-rgb-led-matrix/bindings/python/sample), ir išbandykite besisukantį blokų generatorių naudodami šią komandą:

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

Turite paleisti kaip sudo, nes matricos bibliotekai inicijuojant reikia žemo lygio prieigos prie aparatūros. -M nurodo, kaip plokštės yra sujungtos su pi (šiuo atveju -adafruit skrybėlę), o -led -grandinė nurodo, kaip jūs atspėjote, kiek plokščių sujungėme. Eilutės ir stulpeliai viename skydelyje yra numatyti 32, taigi mums viskas gerai.

Dabar - kai jau įvykdysite programą, įvyks vienas iš dviejų (arba, tiesą sakant, vienas iš trijų) dalykų:

  • Nieko neįvyksta
  • Šviesos lentos viduryje gausite gražų besisukantį bloką.
  • Šviesos lenta, manau, veikia, bet atrodo … keista (pusė jos žalia, kai kurios eilutės neužsidega ir pan.)

Jei nieko neįvyksta arba skydelis atrodo keistai, paspauskite „Ctrl“+c, kad išeitumėte iš pavyzdinės programos, išjunkite „pi“ir patikrinkite visus ryšius (IDC kabelis, maitinimas, įsitikinkite, kad abu maitinimo šaltiniai yra prijungti ir pan.) Taip pat įsitikinkite, kad skrybėlė tinkamai prijungta; jei tai nepadeda, nukelkite jį į vieną skydelį (bandydami būtinai naudokite -led-chain 1) ir pažiūrėkite, ar viena iš plokščių gali būti bloga. Jei tai nepadeda, peržiūrėkite „hzeller“trikčių šalinimo patarimus. jei TAI vis tiek neveikia, pabandykite paskelbti /r /raspberry_pi (arba „Adafruit“forumus, jei gavote savo skydelius iš „Adafruit“, ar kamino mainų ir tt ir tt)

Jei patikrinus ryšius jis tarsi veikia, bet vis tiek atrodo keistai (galbūt kaip šio skyriaus antraštės vaizdas), gali būti, kad viskas prijungta teisingai, skydeliai veikia tinkamai, bet kažkas vyksta ant. Tai nukels mus į kitą žingsnį - labiau nukreipimą nei žingsnį - į multipleksavimą ir nuskaitymo rodiklius. (Jei jūsų LED plokštė veikia gerai ir jums neįdomu vidinė šių plokščių veikla, nedvejodami praleiskite kitą veiksmą.)

5 žingsnis: multipleksavimo ir nuskaitymo rodikliai (arba: momentinis nukrypimas kelyje į kapą)

Taigi, viena iš klaidų, kurią padariau užsisakydama pirmąjį plokščių komplektą iš „Alibaba“, yra tai, kad gavau lauko plokštes (kodėl gi ne, aš maniau - jos atsparios vandeniui ir ryškesnės!). Ir kai aš prijungiau juos prie savo matricos skrybėlės, viskas atrodė.. ne taip.

Kad suprastume, kodėl taip yra, per minutę pažiūrėsime į Philą Burgessą iš „Adafruit“aprašymo, kaip šios plokštės veikia. Atkreipkite dėmesį, kad „Burgess“nurodo, kad plokštės neuždega visų jų šviesos diodų vienu metu - jie apšviečia eilučių rinkinius. Ryšys tarp skydelio aukščio pikseliais ir iš karto užsidegančių eilučių skaičiaus vadinamas nuskaitymo greičiu. Taigi, pavyzdžiui, 32x32 skydelyje su 1/16 nuskaitymu, dvi eilutės (1 ir 17, 2 ir 18, 3 ir 19 ir tt) užsidega vienu metu, iki pat plokštės, ir tada valdiklis kartoja. Dauguma bibliotekų, valdančių RGB matricas, yra sukurtos skydams, kuriuose nuskaitymo greitis yra 1/2 aukščio pikseliais - tai yra, jie vienu metu valdo dvi LED eilutes.

Lauko skydelių (ir kai kurių vidaus plokščių - prieš užsakydami būtinai pažiūrėkite į specifikacijas) skenavimo dažnis yra 1/4 pikselių aukščio, o tai reiškia, kad jie tikisi, kad vienu metu bus vedamos keturios linijos. Tai daro juos ryškesnius (o tai yra gerai), tačiau daug standartinio kodo su jais neveikia (o tai yra blogai). Be to, jie linkę turėti pikselių nesuderinamumą viduje, todėl norint pakeisti tinkamus pikselius, programinėje įrangoje reikia pakeisti x ir y reikšmes. Kodėl gaminami taip? Neturiu supratimo. Ar tu žinai? Jei taip, pasakykite man. Priešingu atveju tai tiesiog liks paslaptis.

Taigi, jei turite vieną iš šių keistų lauko plokščių, jums (tikriausiai) pasisekė! „hzeller“neseniai pridėjo prie savo bibliotekos palaikymą įprastoms šių tipų plokščių konfigūracijoms. Daugiau apie tai galite perskaityti projekto „Github“puslapyje, tačiau pavyzdžio kodui galite perduoti --led-multiplexing = {0, 1, 2, 3} (taip pat gali tekti apsimesti, kad turite dvigubo ilgio pusės ilgio plokščių grandinė) ir ji turėtų veikti.

Tačiau kai kurie pikselių transformacijos modeliai nepalaikomi - ir (atspėkite) mano skydai turi vieną iš jų! Taigi, aš turėjau parašyti savo transformacijos kodą (aš taip pat - dėl kokių nors priežasčių - turiu pasakyti bibliotekai, kad ji elgtųsi taip, lyg aš sujungčiau aštuonias 16 x 32 plokštes). kuris yra toks:

32. transformuoti Pikseliai (j, k): effJ = j %

32

modY = k

modX = j

#modX ir modY yra modifikuoti X ir Y;

#effJ ir effK prieš stumdami įsitikinkite, kad transformuojame 32x32 matricoje

jei ((effJ)> 15):

modX = modX + 16

jei ((effK)> 7):

modY = modY - 8

modX = modX + 16

jei ((effK)> 15):

modX = modX - 16

jei ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Tada mes stumiame juos į teisingą vietą (kiekvienas x+32 perkelia vieną skydelį)

jei (j> 31):

modX += 32

jei (j> 63):

modX += 32

jei (j> 95):

modX += 32

grįžimas (modX, modY)

Jei turite tokį skydą kaip mano, tai gali būti naudinga. Jei ne, turėsite parašyti savo - taigi, žinokite, sėkmės ir dievobaimingumo.

6 veiksmas: „Starboard“programa (arba: grįžkite į kelią ir pasiruošę „Pixel“)

Dabar, kai matricos veikia ir esate pasiruošę veikti, viskas, ką jums reikia padaryti, tai įdėti dešiniojo borto programą į „Pi“ir paruošti ją naudoti. Įsitikinkite, kad esate pi vartotojo namų kataloge (cd /home /pi) ir paleiskite šią komandą:

git klonas

turėtumėte turėti naują aplanką, dešinįjį bortą, kuriame yra trys failai: LICENSE.md, README.md ir starboard_s16.py. Išbandykite dešiniojo šono programą paleisdami ją per „python“:

sudo python./starboard_s16.py

ir turėtumėte gauti krūvą dalelių, judančių skirtingu greičiu ir suyrančias skirtingu greičiu. Maždaug kas 10 000 erkių (galite pereiti į „python“scenarijų, norėdami jį redaguoti/pakeisti) pakeis režimus (yra keturi: RGB, HSV, „Rainbow“ir „Greyscale“).

Taigi, dabar belieka paleisti dešiniojo kodo kodą paleidžiant. Tai padarysime redaguodami (naudodami sudo) /etc/rc.local. Ką norite padaryti, tai pridėti šią eilutę prieš scenarijų „exit 0“:

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

Kai tai padarysite, iš naujo paleiskite „pi“- kai jis bus paleistas per įkrovos seką, „starboard_s16.py“scenarijus turėtų prasidėti iškart!

Jei norite pasidairyti scenarijuje, nedvejodami tai darykite - tai licencijuota pagal GNU GPL 3.0. Jei scenarijus jums neveiks arba turite problemų, nedvejodami praneškite man arba pateikite klaidą „github“, ir aš pamatysiu, ką galiu padaryti, kad tai ištaisytumėte!

Paskutinis dalykas, kurį galbūt norėsite padaryti, yra nustatyti piH SSH, kad galėtumėte nuotoliniu būdu prisijungti ir saugiai jį išjungti. Jūs / tikrai / norite pakeisti slaptažodį (naudodami komandą passwd), o instrukcijas, kaip įjungti ssh (taip pat iš komandinės eilutės), rasite čia.

Rekomenduojamas: