Sisukord:

RPi 3 parempoolne / osakeste generaator: 6 sammu (piltidega)
RPi 3 parempoolne / osakeste generaator: 6 sammu (piltidega)

Video: RPi 3 parempoolne / osakeste generaator: 6 sammu (piltidega)

Video: RPi 3 parempoolne / osakeste generaator: 6 sammu (piltidega)
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Juuli
Anonim
Image
Image
Pange LED -plaat kokku
Pange LED -plaat kokku

Kas tunnete oma Raspberry Pi -ga igavust? Kas olete valmis juhtima universumi elementaarseid jõude, kutsudes välja ja vallandades footoneid? Kas soovite lihtsalt midagi huvitavat oma elutuppa riputada või mõnda uhket projekti postitada Facebooki, et näidata Denise'ile, et teil läheb tänapäeval kõik hästi, aitäh? Kas olete lõksus arvutisimulatsioonis ja virutate tunde, kuni olete vabastatud või kustutatud? Kui mõni või kõik neist kirjeldavad teid, siis [teadustaja hääl] Tere tulemast!

See õpetus näitab teile, kuidas osakeste generaatori ekraani Raspberry Pi 3 ja mõne RGB maatrikspaneeli abil kokku panna ja seadistada. See peaks võtma aega üks kuni kaks tundi ja valmistoode on ligikaudu 30 x 8 tolli (välja arvatud Pi) ja seinale kinnitatav. See muudab päris lahedaks kaunistuseks elutoa, kontori, mängutoa või mujale, kuhu soovite selle paigutada.

Enne alustamist on teil vaja järgmist ja ligikaudsed kulud:

  • RPI 3 + SD -kaart + ümbris + toiteallikas: 70 dollarit (Canakitilt, kuid tõenäoliselt saate osad odavamalt osta, kui ostate need eraldi.)
  • 4x 32x32 RGB LED-maatriks (eelistatavalt p6 siseruumides 1/16 skannimisega): 80–100 dollarit tarnitakse Alibabas või Aliexpressis; 160 dollarit Adafruitil või Sparkfunil.
  • Adafruit RGB maatriksi müts: 25 dollarit
  • 5V 4A toiteallikas: 15 dollarit
  • 3D -trükitud klipid: 1 dollar (need on paneelide ühendamiseks ja seinale riputamiseks; kui teil pole 3D -printerile juurdepääsu, saate neid karvkattega ribade abil kokku hoida ja mõned sulgud riistvara poest riputage see seinale. Üritasin leida nende jaoks kujundusfaile või.stls -e, kuid need tundusid olevat maa pealt möödunud. Klippe on siiski üsna lihtne modelleerida.)
  • 14x M4x10 poldid: 5 dollarit
  • Neli 4x8 IDC kaablit ja kolm toitekaablit RGB maatriksite jaoks (ma ei tea, kuidas neid nimetatakse!). Need oleks pidanud teie LED -paneelidega kaasas olema.
  • Kokku: umbes 200 dollarit, anna või võta.

Projekt ei nõua teilt jootmist ega konkreetseid programmeerimisalaseid teadmisi; see eeldab, et teate, kuidas pilti microSD -kaardile kirjutada. Kui te pole kindel, kuidas seda teha, on Raspberry Pi sihtasutusel siin hea õpetus.

Samuti eeldatakse, et teil on põhiteadmised Linuxis käsurealt toimingute tegemiseks ja koodi läbikäik eeldab, et teate Pythoni põhitõdesid (kuid - te ei pea koodi loomiseks ja käivitamiseks koodi läbimist järgima) käivitage osakeste generaator.) Kui jääte mõne sammuga vahele, esitage julgelt küsimus või postitage aadressil /r /raspberry_pi (mis on ka eeldatavasti selle juhendi peamine publik)

Samm: pange LED -plaat kokku

Pange LED -plaat kokku
Pange LED -plaat kokku

Esiteks koondate üksikud 32x32 LED -paneelid üheks suureks 128x32 paneeliks. Peate oma lauad vaatama ja leidma väikesed nooled, mis näitavad ühenduse järjekorda; minu oma on need HUB75/2x8 IDC pistikute lähedal. Veenduge, et nooled osutaksid kohast, kus Rpi ühendub (ülaltoodud fotol paremal), mööda tahvli pikkust.

Samuti peate ühendama toitekaablid. Enamikul neist kaablitest on kaks pistikut, mis kinnitatakse plaatide külge, ja üks komplekt labidaterminale, mis kinnitub toiteallikale. Paneelidel, millega ma töötan, on 5V ja GND indikaatorid peaaegu täielikult pistikute endi all peidetud, kuid kaablid ühenduvad ainult ühes suunas. Soovite veenduda, et ühendate kõik 5 V ja kõik GND -d kokku, sest kui neid tagasi lülitada, hakkate neid kindlasti praadima.

Kuna mu plaatidega kaasas olnud toitekaablid olid nii lühikesed, pidin ühte pikendama, sisestades labidaterminali pistikud teise pistikusse (See on üsna lihtne - peate võib -olla labida klemmid kergelt sissepoole painutama, kuid lisasin igaks juhuks pildi). Lõppkokkuvõttes sain oma nüüd piklikust LED-tahvlist paremale kaks labidaterminali komplekti ja ühe 2x8 IDC-pistiku.

Samuti märkate, et mul on kaks polti, mis pole plaadi kummaski otsas millegi külge kinnitatud; need on peal, kui kogu asi on ümber pööratud, ja neid kasutatakse selle seinale kinnitamiseks.

Niisiis - kui olete kõik paneelid klambrite, 2x8 IDC -kaablite ja toitekaablitega ühendanud, olete valmis järgmise sammu juurde liikuma!

Samm: valmistage ette Raspberry Pi

Järgmisena panete LED -plaadi kõrvale (praegu) ja valmistate Pi 3 selle käivitamiseks valmis. Kasutame Raspbian Stretch Lite'i ja hzelleri RGB maatriksiteeki (mitte Adafruit'i maatriksiteeki, mis on vanem ja hooldamata).

Esiteks soovite kirjutada Raspbian Lite'i pildi SD -kaardile; kui olete seda teinud, jätkake ja ühendage monitor ja klaviatuur pi -ga ning käivitage see. (Seda saate teha ka peata, kas ssh või jadapistiku kaudu, kuid kui see nii läheb, ei pea te ilmselt mulle ütlema, kuidas seda teha.) Selle jaoks on teil vaja Interneti -ühendust; Kui teil on wifi, ühendage Pi oma traadita võrguga, muutes /etc/wpa_supplicant/wpa_supplicant.conf ja käivitades wpa_cli -i wlan0 uuesti. (Kui te pole seda kunagi teinud, saate juhiseid siit).

Kui olete Interneti -ühenduse loonud, värskendame hoidla dpkg seadeid ja laadime alla vajalikud teegid, käivitades järgmised käsud:

sudo apt-get update

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

git kloon

Nüüd peame maatrikskoodi kompileerima ja installima. Nii lähete teeki sisaldavasse kausta:

cd rpi-rgb-led-maatriks

ja kompileerige see (selleks võib kuluda minut):

make && make build-python

ja installige pythoni köited:

sudo make install-python

Kui teeki koodi koostamisel ilmneb tõrkeid, minge tagasi ja veenduge, et installisite python-dev ja python-pil õigesti! Pythoni sidumised ei kompileeri, kui mõlemad paketid pole installitud.

Samuti peate keelama oma Pi heliväljundi (pardal olev heli segab maatrikskoodi), muutes /boot/config.txt. Otsige rida, mis ütleb dtparam = audio = on ja muutke see dtparam = audio = off.

Kui kõik on kompileeritud (saate paar hoiatust Wstrict-protokolli kohta), peaks teie pi olema valmis maatrikstahvlit käitama. Lülitage see välja (sudo väljalülitamine kohe), eemaldage see vooluvõrgust ja järgmisel etapil ühendame valgusplaadi pi -ga.

Samm: ühendage Pi + Matrix Hat + LED -plaat

Ühendage Pi + Matrix Hat + LED -plaat
Ühendage Pi + Matrix Hat + LED -plaat

Niisiis, nüüd, kui teie Pi on välja lülitatud ja vooluvõrgust lahti ühendatud, ühendame maatriksi mütsi pi ja LED -plaadi maatriksi mütsiga. Kui teie Pi pole veel ümbrises, on nüüd hea aeg see sinna panna.

Paigaldage maatriksmüts, joondades selle GP -tihvtidega Pi -le ja surudes seda õrnalt alla mõlema poole ühtlase jõuga. Veenduge, et tihvtid oleksid õigesti joondatud, nii et mütsi naissoost päised kataksid täpselt pi GP GP tihvte. Kui te selle valesti joondate, pole see katastroof; tõmmake see õrnalt tagasi ja sirutage kõik painutatud tihvtid välja.

Kui olete mütsi pähe pannud, pange Pi kokkupandud LED -plaadist paremale (kontrollige veelkord toiteühendusi ja veenduge, et nooled suunaksid P -st tahvli pikkusest allapoole) ja ühendage IDC kaabel maatriksi mütsi külge.

Järgmisena soovite ühendada toiteploki klemmid maatriksi mütsi klemmliistuga. Teil on kaks labidaühendust kummalgi küljel, kuid need peaksid sinna hästi sobima. Keerake esmalt kruvid lahti ja - see on ütlematagi selge - pange 5V klemmid kindlasti küljele, mis on märgistatud + (need peaksid olema punased, kuid - jällegi - kontrollige oma pistikuid ja ärge eeldage, et need on õigesti toodetud) ja GND klemmid (need peaksid olema mustad) küljel märgistusega -. Kui need on seal, keerake klemmiploki peal olevad kruvid kinni ja teil peaks olema midagi, mis näeb välja nagu selle sammu päise pilt.

Nüüd - olete võib -olla märganud, et see konkreetne konfiguratsioon jätab poole labidaterminalist mõlemal küljel avatuks, hõljudes vaid millimeetrites maatriksimütsi kohal (ja mitte väga kaugel üksteisest.) JA - labidaterminalid on varsti kaasas nii mitu volti kui ka mitu amprit toorvõimsust. Kas see (kuulen, kuidas te küsite ekraani teisest servast) on tõesti õige viis seda teha? Kas see (kaldud lähemale ja sosistad) on hea idee?

Ja vastus on (vastan õlgu kehitades) - ei, ei ole. Õige viis seda teha oleks eemaldada labidaklemmid toitekaablitelt ja kruvida need uuesti selle klemmiploki jaoks sobivasse pistikusse (või jätta need tühjade juhtmetena ja ühendada need ilma pistikuta plokki). Kui see ei õnnestu, võite labidaühenduse avatud külje ümber asetada mõne termokahaneva toru või mähkida selle lihtsalt elektrilindiga. Kuid maailm on langenud ja inimene on laisk ja edev, nii et ma pole seda teinud.

Kuid - pakitud või lahti pakkimata - labidaklemmid on ühendatud klemmiplokiga ja oleme valmis järgmise sammu juurde liikuma.

Samm: testige RGB maatriksit

Nüüd, kui teie Pi on valgusplaadiga ühendatud, pöörake plaat ümber ja lülitage Pi uuesti sisse. Maatriksi mütsi saate sisse lülitada pärast Pi ühendamist; kui aga müts enne Pi -d sisse lülitada, proovib Pi käivitada ebapiisava vooluga ja kaebab kibedalt (ja võib tekitada kerneli paanika ja üldse mitte käivitada).

Kui teil on probleeme Pi käivitamisega, kui maatriksimüts on peas, veenduge, et kasutate Pi jaoks piisavalt tugevat toiteallikat (2A+ peaks olema hea) ja proovige ühendada nii mütsi kui ka Piige sama vooluvõrku või pikendusjuhe ja ühendage need kokku.

Kui Pi on käivitunud, oleme valmis maatriksit testima. Minge sinna, kus on püütoni siduvad proovid (cd/rpi-rgb-led-maatriks/sidumised/python/proovid) ja proovige pöörleva ploki generaatorit järgmise käsuga:

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

Peate selle käivitama sudo-vormingus, kuna maatriksiteek vajab lähtestamisel madala taseme juurdepääsu riistvarale. -M määrab viisi, kuidas paneelid pi -ga ühendatakse (antud juhul adafruit -müts), ja -led -kett täpsustab -nagu arvate -mitu paneeli oleme kokku aheldanud. Ridad ja veerud paneeli kohta on vaikimisi 32, nii et meil läheb hästi.

Nüüd - kui olete programmi käivitanud, juhtub üks kahest (või tõesti üks kolmest) asjast:

  • Midagi ei juhtu
  • Saate oma valguslaua keskele kena pöörleva ploki.
  • Valgusplaat töötab, ma arvan, aga see tundub … imelik (pool sellest on roheline, mõned read ei sütti jne)

Kui midagi ei juhtu või kui paneel tundub imelik, vajutage prooviprogrammist väljumiseks klahve ctrl+c, sulgege pi ja kontrollige kõiki ühendusi (IDC -kaabel, toide, veenduge, et mõlemad toiteallikad on ühendatud jne). Samuti veenduge, et müts oleks õigesti ühendatud; kui see ei aita, viige see alla ühele paneelile (kasutage testimisel kindlasti -led-chain 1) ja vaadake, kas üks paneelidest võib olla halb. Kui SEE ei tööta, vaadake hzelleri tõrkeotsingu näpunäiteid. kui see ikkagi ei tööta, proovige postitada aadressile /r /raspberry_pi (või Adafruit'i foorumitesse, kui olete oma paneelid saanud Adafruitist või stäkkivahetusest jne.)

Kui see töötab, kuid tundub pärast ühenduste kontrollimist endiselt imelik (võib -olla nagu selle jaotise päisepilt), on võimalik, et kõik on õigesti ühendatud, paneelid töötavad korralikult, kuid midagi muud juhtub peal. Mis viib meid järgmisele sammule - pigem kõrvalekalle kui samm - multipleksimise ja skaneerimise kiiruse osas. (Kui teie juhtpaneel töötab hästi ja teid ei huvita nende paneelide sisemine töö, jätke järgmine samm vahele.)

Samm: multipleksimine ja skaneerimiskiirused (või: hetkeline ümbersuunamine teel hauale)

Niisiis, üks vigadest, mille tegin, kui tellisin oma esimese paneelide komplekti Alibabast, on see, et sain välispaneelid (miks mitte, arvasin - need on veekindlad ja heledamad!). Ja kui ma need oma maatriksimütsi külge ühendasin, tundus asi.. mitte õige.

Et mõista, miks see nii on, võtame minuti, et vaadata Phil Burgessi Adafruit'i kirjeldusest nende paneelide toimimise kohta. Pange tähele, et Burgess juhib tähelepanu sellele, et paneelid ei sütti kõiki oma LED -e korraga - nad süttivad ridade komplekte. Paneeli kõrguse pikslites ja korraga süttivate ridade arvu vahelist suhet nimetatakse skaneerimiskiiruseks. Nii näiteks - 32x32 paneelil, mille skaneerimine on 1/16, süttib korraga kaks rida (1 ja 17, 2 ja 18, 3 ja 19 jne), kuni tahvli lõpuni allapoole, ja siis kontroller kordab. Enamik raamatukogusid, mis juhivad RGB maatriksit, on ehitatud paneelide jaoks, mille skaneerimiskiirus on 1/2 pikslite kõrgusest - see tähendab, et nad juhivad kahte rida LED -e korraga.

Välispaneelide (ja mõned siseruumide paneelid - enne tellimist vaadake kindlasti spetsifikatsioone) skaneerimiskiirus on 1/4 pikslite kõrgusest, mis tähendab, et nad ootavad korraga nelja joone juhtimist. See muudab need heledamaks (mis on hea), kuid paneb paljud standardkoodid nendega töötama (mis on halb). Lisaks on neil pikslid sisemiselt korrast ära, mis nõuab x- ja y -väärtuste muutmist tarkvaras, et õigeid piksleid käsitleda. Miks on need sellisel viisil valmistatud? Mul pole õrna aimugi. Kas sa tead? Kui jah, siis palun öelge mulle. Muidu peab see lihtsalt saladuseks jääma.

Niisiis, kui teil on üks neist veidratest välispaneelidest, on teil (tõenäoliselt) õnne! hzeller lisas hiljuti oma teeki seda tüüpi paneelide tavaliste konfiguratsioonide toe. Selle kohta saate rohkem lugeda projekti githubi lehelt, kuid saate näidiskoodile edastada --led-multiplexing = {0, 1, 2, 3} (peate võib-olla ka teesklema, et teil on poolpikkuste paneelide kahekordne kett) ja see peaks toimima.

Siiski on mõningaid pikslite muundamise mustreid, mida ei toetata - ja (arvake ära) minu paneelidel on üks neist! Niisiis, ma pidin kirjutama oma teisenduskoodi (samuti pean mingil põhjusel ütlema raamatukogule, et ta käituks nagu mul oleks kaheksa 16x32 paneeli kokku aheldatud). mis on järgmine:

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

effK = k % 32

modY = k

modX = j

#modX ja modY on muudetud X ja Y;

#effJ ja effK veenduge enne tõukamist, et teisendame maatriksi 32x32 piires

kui ((effJ)> 15):

modX = modX + 16

kui ((effK)> 7):

modY = modY - 8

modX = modX + 16

kui ((effK)> 15):

modX = modX - 16

kui ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Seejärel lükkame need õigesse kohta (iga x+32 liigutab ühe paneeli)

kui (j> 31):

modX += 32

kui (j> 63):

modX += 32

kui (j> 95):

modX += 32

return (modX, modY)

Kui teil on minu sarnane paneel, võib see selle jaoks töötada. Kui ei, siis peate kirjutama oma - nii et teate, õnne ja jumala kiirust.

6. samm: parempoolne programm (või: tagasi rajale ja valmis Pixeliks)

Nüüd, kui olete oma maatriksid töökorras ja töövalmis, peate vaid panema parempoolsuse programmi oma Pi -le ja valmistama selle kasutamiseks. Veenduge, et olete pi kasutaja kodukataloogis (cd /home /pi) ja käivitage järgmine käsk:

git kloon

Teil peaks olema uus kaust, parempoolne, mis sisaldab kolme faili: LICENSE.md, README.md ja starboard_s16.py. Proovige parempoolset programmi, käivitades selle pythonist:

sudo python./starboard_s16.py

ja peaksite saama hunniku osakesi, mis liiguvad erineva kiirusega ja lagunevad erineva kiirusega. Iga umbes 10 000 puugi (saate selle redigeerimiseks/muutmiseks minna pythoni skripti) muudab režiime (neid on neli: RGB, HSV, Rainbow ja Halltoonid).

Niisiis, nüüd jääb üle vaid parempoolne kood käivitamisel käivitada. Teeme seda redigeerides (sudo abil) /etc/rc.local. Mida soovite teha, on lisada skripti vahetult enne väljapääsu 0 järgmine rida:

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

Pärast seda taaskäivitage pi - kui see käivitusjärjestuse läbib, peaks starboard_s16.py skript kohe käivituma!

Kui soovite stsenaariumis ringi käia, tehke seda julgelt - see on litsentsitud GNU GPL 3.0 alusel. Kui skript ei tööta teie jaoks või kui teil on sellega probleeme, andke mulle sellest teada või saatke githubis viga ja ma vaatan, mida teha, et seda parandada!

(Väga) viimane asi, mida võiksite teha, on SS -i seadistamine pi -le, et saaksite selle kaugjuhtida ja turvaliselt välja lülitada. Soovite / kindlasti / soovite oma parooli muuta (käsu passwd kaudu) ja juhised ssh lubamiseks (ka käsurealt) leiate siit.

Soovitan: