Përmbajtje:

RPi 3 Starboard / Particle Generator: 6 hapa (me fotografi)
RPi 3 Starboard / Particle Generator: 6 hapa (me fotografi)

Video: RPi 3 Starboard / Particle Generator: 6 hapa (me fotografi)

Video: RPi 3 Starboard / Particle Generator: 6 hapa (me fotografi)
Video: Stepping into the Future: Linnaeus University's IoT & AI Live Stream Marathon⚡🤩 2024, Korrik
Anonim
Image
Image
Mblidhni bordin LED
Mblidhni bordin LED

A ndiheni të mërzitur me Raspberry Pi tuaj? A jeni gati të komandoni forcat elementare të universit, duke thirrur dhe shkarkuar fotone sipas dëshirës? Dëshironi vetëm diçka interesante të varet në dhomën tuaj të ndenjes, apo një projekt të zbukuruar që të postoni në facebook për t'i treguar Denisit se jeni mirë, këto ditë, faleminderit shumë? A jeni të bllokuar në një simulim kompjuterik dhe po i ulni orët derisa të liroheni ose fshiheni? Nëse ndonjë ose të gjitha këto ju përshkruajnë, atëherë [zëri i lajmëtarit] Mirë se vini!

Ky tutorial do t'ju tregojë se si të mblidhni dhe vendosni një ekran të gjeneratorit të grimcave duke përdorur një Raspberry Pi 3 dhe disa panele të matricës RGB. Duhet të marrë një deri në dy orë, dhe produkti i përfunduar do të jetë afërsisht 30 "x8" (pa përfshirë Pi) dhe i montueshëm në mur. Bën një dekorim mjaft të lezetshëm për një dhomë të gjallë, zyrë, dhomë lojërash, ose kudo tjetër që dëshironi ta vendosni.

Para se të filloni, ja çfarë keni nevojë dhe cilat janë kostot e përafërta:

  • Rpi 3 + Kartë SD + Rast + Furnizim me energji: 70 dollarë (nga Canakit, por me siguri mund t’i merrni pjesët më lirë nëse i blini veç e veç.)
  • Matricë LED 4x 32x32 RGB (mundësisht p6 e brendshme me skanim 1/16): $ 80-$ 100 dërguar në Alibaba ose Aliexpress; 160 dollarë në Adafruit ose Sparkfun.
  • Kapelë Adafruit RGB Matrix: 25 dollarë
  • Furnizimi me energji 5V 4A: 15 dollarë
  • Kapëset e printuara 3D: 1 $ (këto janë për lidhjen e paneleve dhe varjen e tyre në mur; nëse nuk keni qasje në një printer 3D, mund të përdorni një shirit me qime për t'i mbajtur ato së bashku dhe disa kllapa nga dyqani i pajisjeve në vareni atë nga muri. Unë u përpoqa të gjeja skedarët e projektimit ose.stls për këto, por ato duket se kanë kaluar nga toka. Klipet janë shumë të lehta për tu modeluar, megjithatë.)
  • Rrufe 14x M4x10: 5 dollarë
  • Katër kabllo 4x8 IDC dhe tre kabllo energjie për matricat RGB (nuk e di se si quhen këto!). Këto duhet të jenë përfshirë me panelet tuaja LED.
  • Gjithsej: Rreth $ 200, jepni ose merrni.

Projekti nuk kërkon që ju të lidhni ose të keni ndonjë njohuri specifike programimi; supozon se ju e dini se si të shkruani një imazh në një kartë microSD. Nëse nuk jeni të sigurt se si ta bëni këtë, fondacioni Raspberry Pi ka një mësim të mirë këtu.

Gjithashtu supozon se keni një njohuri themelore se si të bëni gjëra nga linja e komandës në Linux, dhe ecuria e kodit supozon se i dini bazat e Python (por - nuk keni nevojë të ndiqni ecurinë e kodit për të qenë në gjendje të ndërtoni dhe drejtoni gjeneratorin e grimcave.) Nëse ngecni në ndonjërin nga hapat, mos ngurroni të bëni një pyetje ose të postoni në /r /raspberry_pi (që është gjithashtu, po supozoj, auditori kryesor për këtë udhëzues)

Hapi 1: Mblidhni bordin LED

Mblidhni bordin LED
Mblidhni bordin LED

Së pari, ju do të mblidhni panelet individuale LED 32x32 në një panel të madh 128x32. Ju do të duhet të shikoni dërrasat tuaja dhe të gjeni shigjetat e vogla që tregojnë rendin e lidhjes; në timen ata janë afër lidhësve HUB75/2x8 IDC. Sigurohuni që keni shigjetat që tregojnë nga vendi ku do të lidhet Rpi (nga e djathta në foton më lart) poshtë gjatësisë së tabelës.

Ju gjithashtu do të duhet të lidhni kabllot e energjisë. Shumica e këtyre kabllove kanë dy lidhje femra që ngjiten në dërrasa dhe një seri terminalesh lopatë që i bashkëngjiten burimit të energjisë. Panelet me të cilat po punoj kanë treguesit për 5V dhe GND pothuajse plotësisht të fshehur nën vetë lidhësit, por kabllot lidhen vetëm në një drejtim. Ju do të dëshironi të siguroheni që po i lidhni të gjitha 5V -të së bashku dhe të gjitha GND -të së bashku, sepse nëse i ndizni ato prapa, me siguri do t'i skuqni ato.

Për shkak se kabllot e rrymës të përfshira në dërrasat e mia ishin kaq të shkurtra, më duhej të zgjasja një duke futur prizat e terminalit lopatë në lidhësin e një tjetri (Kjo është goxha e drejtpërdrejtë - mund t'ju duhet të përkulni terminalet e lopatës pak nga brenda, por unë kam përfshirë një fotografi për çdo rast). Përfundova me dy grupe të terminaleve me lopatë dhe një lidhës 2x8 IDC në të djathtë të bordit tim tani të zgjatur LED.

Ju gjithashtu do të vini re se unë kam dy bulona që nuk janë ngjitur në asgjë në asnjë skaj të tabelës; këto do të jenë në majë pasi e gjithë gjëja të përmbyset dhe do të përdoret për ta ngjitur në mur.

Pra - pasi të keni lidhur të gjitha panelet së bashku me kapëset, kabllot 2x8 IDC dhe kabllot e energjisë, jeni gati për të kaluar në hapin tjetër!

Hapi 2: Përgatitni Raspberry Pi

Tjetra, do ta lini mënjanë bordin LED (tani për tani) dhe do ta bëni Pi 3 gati për ta drejtuar atë. Ne do të përdorim bibliotekën Raspbian Stretch Lite dhe matricën RGB të hzeller (në vend të bibliotekës së matricës së Adafruit, e cila është më e vjetër dhe e pa mirëmbajtur.)

Së pari, do të dëshironi të shkruani imazhin Raspbian Lite në një kartë SD; pasi ta keni bërë këtë, vazhdoni dhe lidhni një monitor dhe tastierë me pi dhe niseni atë. (Ju gjithashtu mund ta bëni këtë pa kokë, ose përmes ssh ose një lidhës serik, por nëse jeni në këtë mënyrë, ndoshta nuk keni nevojë që unë t'ju tregoj se si ta bëni.) Për këtë do t'ju duhet një lidhje interneti; Nëse keni Wi -Fi, lidheni Pi me rrjetin tuaj pa tel duke redaktuar /etc/wpa_supplicant/wpa_supplicant.conf dhe duke rindërtuar wpa_cli -i wlan0. (Nëse nuk e keni bërë kurrë këtë, mund të merrni udhëzime këtu).

Pasi të jeni lidhur me internetin, ne do të azhurnojmë cilësimet e depove të dpkg dhe do të shkarkojmë bibliotekat që na duhen duke ekzekutuar komandat e mëposhtme:

përditësim sudo apt-get

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

git klon

Tani na duhet të përpilojmë dhe instalojmë kodin e matricës. Pra, do të futeni në dosjen që përmban bibliotekën:

cd rpi-rgb-led-matricë

dhe përpilojeni atë (kjo mund të zgjasë një minutë):

bëj && bëj build-python

dhe instaloni lidhjet e python:

sudo make install-python

Nëse merrni ndonjë gabim gjatë përpilimit të kodit të bibliotekës, kthehuni dhe sigurohuni që keni instaluar python-dev dhe python-pil në mënyrë korrekte! Lidhjet python nuk do të përpilohen pa të dyja ato pako të instaluara.

Ju gjithashtu do të duhet të çaktivizoni daljen e tingullit të Pi tuaj (tingulli në bord ndërhyn me kodin e matricës) duke redaktuar /boot/config.txt. Shikoni për vijën që thotë dtparam = audio = aktiv dhe ndryshojeni në dtparam = audio = off.

Nëse gjithçka përpilohet në rregull (do të merrni disa paralajmërime në lidhje me protoipet Wstrict) pi juaj duhet të jetë gati për të drejtuar tabelën e matricës. Shkoni përpara dhe fikeni atë (mbyllja sudo tani), shkëputeni atë dhe ne do ta lidhim tabelën e dritës me pi në hapin tjetër.

Hapi 3: Lidhni Pi + Matrix Hat + Bordin LED

Lidhni Pi + Matrix Hat + LED Board
Lidhni Pi + Matrix Hat + LED Board

Pra, tani që Pi juaj është fikur dhe shkëputur, le të lidhim kapelën e matricës me pi dhe bordin LED me kapelën e matricës. Nëse Pi juaj nuk është tashmë në rastin e tij, tani është një kohë e mirë për ta vënë atë atje.

Instaloni kapelën e matricës duke e rreshtuar atë me kunjat GPIO në Pi dhe duke e shtyrë atë butësisht poshtë me forcë të barabartë në të dy anët. Sigurohuni që kunjat të jenë rreshtuar saktë, në mënyrë që titujt femra në kapelë të mbulojnë saktësisht kunjat GPIO në pi. Nëse e keqorganizoni, nuk është një katastrofë; thjesht tërhiqeni atë butësisht dhe drejtojeni çdo kunj të përkulur.

Pasi të keni veshur kapelën, vendosni Pi në të djathtë të tabelës LED të montuar (kontrolloni përsëri lidhjet e energjisë përsëri dhe sigurohuni që shigjetat të jenë drejtuar nga Pi poshtë gjatësisë së tabelës) dhe lidhni IDC kabllo në kapelën e matricës.

Tjetra, do të dëshironi të lidhni terminalet me lopatë për energjinë në bllokun terminal të kapelës së matricës. Keni dy lidhje me lopatë për anë, por të dyja duhet të përshtaten mirë aty. Lironi së pari vidhat dhe - Kjo duhet të shkojë pa thënë - sigurohuni që të vendosni terminalet 5V në anën e etiketuar + (këto duhet të jenë të kuqe, por - përsëri - kontrolloni dy herë lidhësit tuaj dhe mos supozoni se janë prodhuar si duhet) dhe terminalet GND (këto duhet të jenë të zeza) në anën e etiketuar -. Pasi të jenë atje, shtrëngoni vidhat në krye të bllokut të terminalit dhe duhet të keni diçka që duket si imazhi i kokës për këtë hap.

Tani - ju mund të keni vënë re se ky konfigurim i veçantë lë gjysmën e terminalit të lopatës në të dyja anët të ekspozuara, duke qëndruar vetëm milimetra mbi kapelën e matricës (dhe jo shumë larg njëri -tjetrit.) DHE - terminalet e lopatës do të jenë shumë shpejt që mbante edhe disa volt edhe disa amps të Raw Power. A është kjo, (mund t’ju dëgjoj të pyesni nga ana tjetër e ekranit) me të vërtetë Mënyra e duhur për ta bërë atë? A është, (përkuluni më afër dhe pëshpëritni), një ide e mirë?

Dhe përgjigja është (Unë përgjigjem, duke ngritur supet) - jo, nuk është. Mënyra e duhur për ta bërë këtë do të ishte heqja e terminaleve të lopatës nga kabllot e energjisë dhe rimidhja e tyre në lidhësin e duhur për atë bllok terminali (ose lënia e tyre si tela të zhveshur dhe lidhja e tyre pa një lidhës në bllok). Nëse nuk arrini këtë, mund të vendosni disa tuba për tkurrjen e nxehtësisë rreth anës së ekspozuar të lidhësit të lopatës ose thjesht ta mbështillni me shirit elektrik. Por bota ka rënë dhe njeriu është dembel dhe i kotë, kështu që unë nuk e kam bërë këtë.

Por - të mbështjellura ose të pazbuluara - terminalet me lopatë janë të lidhura me bllokun e terminalit dhe ne jemi gati të kalojmë në hapin tjetër.

Hapi 4: Provoni Matricën RGB

Tani që Pi juaj është i lidhur me tabelën e dritës, përmbyseni bordin dhe ndizeni Pi përsëri. Mund ta ndizni kapelën e matricës pasi Pi të jetë lidhur; nëse e vendosni kapelën para Pi, megjithatë, Pi do të përpiqet të ndizet me rrymë jo të mjaftueshme dhe do të ankohet me hidhërim (dhe mund t'ju japë një panik të kernelit dhe aspak boot.)

Nëse keni probleme që Pi të nisë me kapelën e matricës, sigurohuni që po përdorni një furnizim me energji mjaft të fortë për Pi (2A+ duhet të jetë i mirë) dhe provoni të lidhni si furnizimin me energji elektrike për kapelen ashtu edhe për atë Pii në të njëjtën shirit elektrik ose kordon zgjatues, dhe ndizni ato së bashku.

Pasi Pi të jetë nisur, ne jemi gati për të testuar matricat. Shkoni atje ku janë mostrat e lidhjes së pythonit (cd/rpi-rgb-led-matrix/lidhjet/python/mostrat) dhe provoni gjeneratorin e bllokut rrotullues me komandën e mëposhtme:

sudo./rotating-block-generator.py -m adafruit-hat-zinxhir me zinxhirë 4

Duhet ta përdorni si sudo sepse biblioteka e matricës ka nevojë për qasje të nivelit të ulët në harduer gjatë inicimit. -M specifikon mënyrën e lidhjes së paneleve me pi (në këtë rast, një kapelë adafruit) dhe zinxhiri me -specifikon -e keni menduar -sa panele kemi lidhur me zinxhirë së bashku. Rreshtat dhe kolonat për panel të dy janë të parazgjedhur në 32, kështu që ne jemi mirë atje.

Tani - pasi të keni ekzekutuar programin, një nga dy (ose, me të vërtetë, një nga tre) gjërat do të ndodhë:

  • Asgjë nuk ndodh
  • Ju merrni një bllok të bukur rrotullues në mes të tabelës tuaj të dritës.
  • Bordi i dritës funksionon, mendoj, por duket … e çuditshme (gjysma e saj është e gjelbër, disa rreshta nuk ndizen, etj.)

Nëse asgjë nuk ndodh, ose nëse paneli duket i çuditshëm, shtypni ctrl+c për të dalë nga programi mostër, mbyllni pi dhe kontrolloni të gjitha lidhjet tuaja (kabllo IDC, energji elektrike, sigurohuni që të dy furnizimet me energji elektrike janë të kyçura, etj.) Gjithashtu sigurohuni që kapela të jetë lidhur siç duhet; nëse kjo nuk e rregullon atë, çojeni në një panel (sigurohuni që të përdorni zinxhirin me litar 1 kur e testoni) dhe shikoni nëse njëra prej paneleve mund të jetë e keqe. Nëse kjo nuk funksionon, shikoni këshilla për zgjidhjen e problemeve të hzeller. nëse kjo ende nuk funksionon, provoni të postoni në /r /raspberry_pi (ose forumet e Adafruit, nëse i keni marrë panelet tuaja nga Adafruit, ose shkëmbimin e pirgjeve, etj, etj.)

Nëse funksionon, por ende duket e çuditshme (ndoshta si imazhi i kokës për këtë seksion) pasi të keni kontrolluar lidhjet, është e mundur që të keni gjithçka të lidhur siç duhet, që panelet të funksionojnë siç duhet, por që Diçka tjetër po shkon më E cila do të na çojë në hapin tonë të ardhshëm - më shumë një devijim sesa një hap - në normat e multipleximit dhe skanimit. (Nëse bordi juaj drejtues punon mirë dhe nuk jeni të interesuar për funksionimin e brendshëm të këtyre paneleve, mos ngurroni të kaloni hapin tjetër.)

Hapi 5: Tarifat e Multipleksimit dhe Skanimit (ose: një devijim momental në rrugën drejt varrit)

Pra, një nga gabimet që kam bërë kur kam porositur grupin tim të parë të paneleve jashtë Alibaba është se kam marrë panele në natyrë (pse jo, mendova - ato janë të papërshkueshme nga uji dhe më të ndritshme!). Dhe, kur i lidha me kapelën time të matricës, gjërat dukeshin … jo të drejta.

Për të kuptuar pse është kështu, do të marrim një minutë për të parë Phil Burgess nga përshkrimi i Adafruit se si funksionojnë këto panele. Ju do të vini re se Burgess thekson se panelet nuk ndriçojnë të gjitha LED -të e tyre menjëherë - ato ndriçojnë grupe rreshtash. Marrëdhënia midis lartësisë së panelit në piksel dhe numrit të rreshtave që ndriçohen menjëherë quhet shkalla e skanimit. Kështu, për shembull - Në një panel 32x32 me skanim 1/16, dy rreshta (1 dhe 17, 2 dhe 18, 3 dhe 19, etj) ndriçohen menjëherë, deri në tabelë, dhe pastaj kontrolluesi përsërit Me Shumica e bibliotekave që drejtojnë matricat RGB janë ndërtuar për panele ku shkalla e skanimit është 1/2 e lartësisë në piksel - domethënë ato drejtojnë dy rreshta LED njëherësh.

Panelet në natyrë (dhe disa panele të brendshme - sigurohuni që të shikoni specifikimet para se të porosisni) kanë norma skanimi që janë 1/4 e lartësisë në piksel, që do të thotë se ata presin që të drejtohen katër rreshta njëherësh. Kjo i bën ata më të ndritshëm (që është mirë), por bën që shumë kode standarde të mos punojnë me ta (gjë që është e keqe). Përveç kësaj, ata priren të kenë pikselët jashtë rregullit brenda, gjë që kërkon transformimin e vlerave x dhe y në softuer në mënyrë që të adresojnë pikselët e duhur. Pse janë bërë në këtë mënyrë? Nuk e kam idenë. A e dini? Nëse po, ju lutem më tregoni. Përndryshe, thjesht do të mbetet një mister.

Pra, nëse keni një nga këto panele të çuditshme në natyrë, ju (me siguri) keni fat! kohët e fundit hzeller shtoi mbështetjen për konfigurimet e zakonshme të këtyre llojeve të paneleve në bibliotekën e tij. Mund të lexoni më shumë rreth saj në faqen e github për projektin, por mund të kaloni --led-multiplexing = {0, 1, 2, 3} në kodin shembull (mund t'ju duhet gjithashtu të pretendoni sikur keni një zinxhir me gjatësi të dyfishtë të paneleve me gjysmë gjatësi) dhe duhet të funksionojë.

Ka disa modele të transformimit të pikselëve që nuk mbështeten, megjithatë - dhe (me mend se çfarë) panelet e mia kanë një prej tyre! Kështu, më duhej të shkruaja kodin tim të transformimit (unë gjithashtu - për çfarëdo arsye - duhet t'i them bibliotekës të veprojë sikur të kem tetë panele 16x32 të lidhur së bashku). e cila është si më poshtë:

def transformo Pixel (j, k): effJ = j % 32

effK = k % 32

modY = k

modX = j

#modX dhe modY janë X dhe Y të modifikuara;

#effJ dhe effK sigurohuni që të transformohemi brenda një matricë 32x32 para se të shtyjmë

nëse ((effJ)> 15):

modX = modX + 16

nëse ((effK)> 7):

modY = modY - 8

modX = modX + 16

nëse ((effK)> 15):

modX = modX - 16

nëse ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Pastaj, i shtyjmë në vendndodhjen e duhur (secila x+32 lëviz një panel)

nëse (j> 31):

modX += 32

nëse (j> 63):

modX += 32

nëse (j> 95):

modX += 32

kthimi (modX, modY)

Nëse keni një panel si i imi, kjo mund të funksionojë për të. Nëse jo, do të duhet të shkruani tuajin - kështu, e dini, fat të mirë dhe shpejtësi perëndie.

Hapi 6: Programi Starboard (ose: Kthehu në rrugën e duhur dhe gati për Pixel)

Tani që i keni funksionuar matricat tuaja dhe jeni gati për të shkuar, gjithçka që duhet të bëni është të vendosni programin e djathtë në Pi tuaj dhe ta bëni gati për të shkuar. Sigurohuni që jeni në drejtorinë shtëpiake të përdoruesit pi (cd /home /pi) dhe ekzekutoni komandën e mëposhtme:

git klon

duhet të keni një dosje të re, djathtas, që përmban tre skedarë: LICENSE.md, README.md dhe starboard_s16.py. Provoni programin e djathtë duke e ekzekutuar atë përmes python:

sudo python./starboard_s16.py

dhe ju duhet të merrni një bandë grimcash që lëvizin me shpejtësi të ndryshme dhe prishen me ritme të ndryshme. Çdo 10, 000 rriqra ose më shumë (mund të futeni në shkrimin python për ta redaktuar/ndryshuar këtë) do të ndryshojë modalitetet (janë katër: RGB, HSV, Rainbow dhe Greyscale).

Pra, tani e vetmja gjë që mbetet për të bërë është që kodi i djathtë të funksionojë gjatë fillimit. Ne do ta bëjmë atë duke redaktuar (me sudo) /etc/rc.local. Ajo që dëshironi të bëni është të shtoni rreshtin e mëposhtëm menjëherë para "daljes 0" në skenar:

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

Pasi ta bëni këtë, rindizni pi - pasi të kalojë në sekuencën e nisjes, skenari starboard_s16.py duhet të fillojë menjëherë!

Nëse doni të futeni në skenar, mos ngurroni ta bëni këtë - është i licencuar sipas GNU GPL 3.0. Nëse skenari nuk do të funksionojë për ju, ose keni probleme me të, mos ngurroni të më njoftoni ose paraqisni një defekt në github dhe do të shoh se çfarë mund të bëj për ta rregulluar atë!

Gjëja (shumë) e fundit që mund të dëshironi të bëni është të vendosni SSH në pi, në mënyrë që të mund të largoheni dhe ta mbyllni me siguri. Ju do të / definitivisht / dëshironi të ndryshoni fjalëkalimin tuaj (përmes komandës passwd), dhe mund të gjeni udhëzime për aktivizimin e ssh (gjithashtu nga rreshti i komandës) këtu.

Recommended: