Satura rādītājs:

RPi 3 pa labi / daļiņu ģenerators: 6 soļi (ar attēliem)
RPi 3 pa labi / daļiņu ģenerators: 6 soļi (ar attēliem)

Video: RPi 3 pa labi / daļiņu ģenerators: 6 soļi (ar attēliem)

Video: RPi 3 pa labi / daļiņu ģenerators: 6 soļi (ar attēliem)
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Jūlijs
Anonim
Image
Image
Salieciet LED paneli
Salieciet LED paneli

Vai jums ir garlaicīgi ar savu Raspberry Pi? Vai esat gatavs pavēlēt visuma elementārajiem spēkiem, izsaucot un atlaižot fotonus pēc vēlēšanās? Vai jūs vienkārši vēlaties kaut ko interesantu pakārt savā dzīvojamā istabā vai kādu iedomātu projektu, ko ievietot Facebook, lai parādītu Denīzei, ka šajās dienās jums iet lieliski, liels paldies? Vai esat ieslodzīts datorsimulācijā un svārstāties stundas, līdz esat atbrīvots vai izdzēsts? Ja kāds vai visi no tiem raksturo jūs, tad [diktora balss] Laipni lūdzam!

Šī apmācība parādīs, kā salikt un iestatīt daļiņu ģeneratora displeju, izmantojot Raspberry Pi 3 un dažus RGB matricas paneļus. Tam vajadzētu aizņemt no vienas līdz divām stundām, un gatavais produkts būs aptuveni 30 x 8 collu (neieskaitot Pi) un piestiprināms pie sienas. Tas padara diezgan vēsu rotājumu viesistabai, birojam, spēļu istabai vai jebkurai citai vietai, kur to vēlaties ievietot.

Pirms sākat darbu, jums ir nepieciešams un aptuvenās izmaksas

  • RPI 3 + SD karte + futrālis + barošanas avots: 70 ASV dolāri (no Canakit, bet, iespējams, jūs varat iegādāties detaļas lētāk, ja tās pērkat atsevišķi.)
  • 4x 32x32 RGB LED matrica (vēlams p6 iekštelpās ar 1/16 skenēšanu): $ 80- $ 100 piegādā Alibaba vai Aliexpress; 160 USD par Adafruit vai Sparkfun.
  • Adafruit RGB Matrix cepure: 25 ASV dolāri
  • 5V 4A barošanas avots: 15 ASV dolāri
  • 3D drukāti klipi: 1 USD (tie ir paneļu savienošanai un pakarināšanai pie sienas; ja jums nav piekļuves 3D printerim, varat izmantot kažokādas sloksni, lai tos turētu kopā, un dažas iekavas no datortehnikas veikala pakariet to pie sienas. Es mēģināju atrast šiem projektēšanas failus vai.stls, taču šķiet, ka tie ir pārgājuši no zemes. Tomēr klipus ir diezgan viegli modelēt.)
  • 14x M4x10 skrūves: 5 USD
  • Četri 4x8 IDC kabeļi un trīs barošanas kabeļi RGB matricām (es nezinu, kā tos sauc!). Tie bija jāiekļauj jūsu LED paneļos.
  • Kopā: aptuveni 200 USD, dodiet vai ņemiet.

Projektam nav nepieciešama lodēšana vai īpašas programmēšanas zināšanas; tas pieņem, ka jūs zināt, kā ierakstīt attēlu microSD kartē. Ja neesat pārliecināts, kā to izdarīt, fondam Raspberry Pi šeit ir laba apmācība.

Tas arī pieņem, ka jums ir pamatzināšanas par to, kā rīkoties, izmantojot Linux komandrindu, un koda pārskatā tiek pieņemts, ka jūs zināt Python pamatus (bet - jums nav jāievēro koda pārskats, lai varētu izveidot un palaist daļiņu ģeneratoru.) Ja esat iestrēdzis kādā no darbībām, nekautrējieties uzdot jautājumu vai ievietot ziņu /r /raspberry_pi (kas, manuprāt, ir arī šī pamācības galvenā auditorija)

1. darbība: samontējiet LED paneli

Salieciet LED paneli
Salieciet LED paneli

Pirmkārt, jūs saliksit atsevišķus 32x32 LED paneļus vienā lielā 128x32 panelī. Jums būs jāaplūko dēļi un jāatrod mazās bultiņas, kas norāda savienojuma secību; manējā tie atrodas netālu no HUB75/2x8 IDC savienotājiem. Pārliecinieties, ka bultiņas norāda, no kurienes Rpi pieslēgsies (augšējā fotoattēlā pa labi) uz tāfeles garuma.

Jums būs arī jāpievieno barošanas kabeļi. Lielākajai daļai šo kabeļu ir divi savienotāji, kas piestiprināti pie plāksnēm, un viens lāpstiņu spaiļu komplekts, kas piestiprināts pie barošanas avota. Paneļiem, ar kuriem es strādāju, 5V un GND indikatori ir gandrīz pilnībā paslēpti zem pašiem savienotājiem, bet kabeļi savienojas tikai vienā virzienā. Jūs vēlaties pārliecināties, ka jūs savienojat visus 5 V un visus GND kopā, jo, ja jūs tos ieslēdzat atpakaļ, jūs gandrīz noteikti tos cepat.

Tā kā barošanas kabeļi, kas bija iekļauti manos dēļos, bija tik īsi, man bija jāpagarina viens, ievietojot lāpstiņas spailes zarus cita savienotājā (tas ir diezgan vienkārši - jums, iespējams, nāksies saliekt lāpstiņas spailes nedaudz uz iekšu, bet es Katram gadījumam pievienoju attēlu). Es beidzu ar diviem lāpstiņu termināļu komplektiem un vienu 2x8 IDC savienotāju pa labi no manas tagad izstieptās LED plates.

Jūs arī pamanīsit, ka man ir divas skrūves, kas nav nevienam piestiprinātas abos dēļa galos; tie būs augšpusē, kad visa lieta tiks apgāzta, un tiks izmantoti, lai to piestiprinātu pie sienas.

Tātad - kad visus paneļus esat savienojis kopā ar skavām, 2x8 IDC kabeļiem un strāvas kabeļiem, esat gatavs pāriet uz nākamo darbību!

2. darbība: sagatavojiet Raspberry Pi

Tālāk jūs noliksit LED dēli malā (pagaidām) un sagatavosit Pi 3, lai to palaistu. Mēs izmantosim Raspbian Stretch Lite un hzeller RGB matricu bibliotēku (nevis Adafruit matricas bibliotēku, kas ir vecāka un netiek uzturēta).

Pirmkārt, jūs vēlaties ierakstīt Raspbian Lite attēlu SD kartē; kad esat to izdarījis, pievienojiet monitoram un tastatūrai pi un palaidiet to. (To var izdarīt arī bez galvas, izmantojot ssh vai seriālo savienotāju, bet, ja jūs tā darāt, iespējams, man nav jāstāsta, kā to izdarīt.) Lai to izdarītu, jums būs nepieciešams interneta savienojums.; Ja jums ir wifi, pievienojiet Pi savam bezvadu tīklam, rediģējot /etc/wpa_supplicant/wpa_supplicant.conf un palaižot wpa_cli -i wlan0 pārkonfigurēt. (Ja jūs to nekad neesat darījis, norādījumus varat iegūt šeit).

Kad esat izveidojis savienojumu ar internetu, mēs atjaunināsim dpkg krātuves iestatījumus un lejupielādēsim nepieciešamās bibliotēkas, izpildot šādas komandas:

sudo apt-get update

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

git klons

Tagad mums ir jāapkopo un jāinstalē matricas kods. Tātad jūs nonāksit mapē, kurā atrodas bibliotēka:

cd rpi-rgb-led-matrica

un apkopojiet to (tas var aizņemt minūti):

make && make build-python

un instalējiet python stiprinājumus:

sudo padarīt instalēt-python

Ja bibliotēkas koda apkopošanas laikā rodas kļūdas, atgriezieties un pārliecinieties, vai esat pareizi instalējis python-dev un python-pil! Python saites netiks apkopotas, ja nebūs instalētas abas šīs paketes.

Jums būs arī jāatspējo Pi skaņas izvade (iebūvētā skaņa traucē matricas kodam), rediģējot /boot/config.txt. Atrodiet rindu, kurā teikts: dtparam = audio = ieslēgts, un mainiet to uz dtparam = audio = izslēgts.

Ja viss ir apkopots labi (jūs saņemsit dažus brīdinājumus par Wstrict-protoypes), jūsu pi jābūt gatavam palaist matricas dēli. Iet uz priekšu un izslēdziet to (sudo izslēgšana tūlīt), atvienojiet to, un nākamajā solī mēs savienosim gaismas paneli ar pi.

3. darbība: pievienojiet Pi + Matrix Hat + LED dēli

Savienojiet Pi + Matrix cepuri + LED dēli
Savienojiet Pi + Matrix cepuri + LED dēli

Tātad, tagad, kad jūsu Pi ir izslēgts un atvienots no elektrotīkla, savienosim matricas cepuri ar pi un LED plāksni ar matricas cepuri. Ja jūsu Pi vēl nav tā korpusā, ir īstais laiks to ievietot tur.

Uzstādiet matricas cepuri, izlīdzinot to ar GPIO tapām uz Pi un viegli piespiežot to uz leju ar vienmērīgu spēku abās pusēs. Pārliecinieties, vai tapas ir ievietotas pareizi, lai cepures sieviešu galviņas precīzi pārklātu uz GP esošās tapas. Ja jūs to nepareizi sakārtojat, tā nav katastrofa; vienkārši viegli pavelciet to atpakaļ un iztaisnojiet visus izliektos tapas.

Kad esat uzvilcis cepuri, novietojiet Pi pa labi no samontētās LED plates (vēlreiz pārbaudiet strāvas savienojumus un pārliecinieties, vai bultiņas ir vērstas no Pi uz tāfeles garuma) un pievienojiet IDC kabelis uz matricas cepuri.

Tālāk jūs vēlaties savienot strāvas padeves spailes matricas cepures spaiļu blokā. Katrā pusē ir divi lāpstas savienotāji, taču tiem abiem vajadzētu labi iederēties. Vispirms atskrūvējiet skrūves un - tas būtu pats par sevi saprotams - noteikti ievietojiet 5 V spailes pusē, kas apzīmēta ar + (tiem jābūt sarkaniem, bet - vēlreiz - vēlreiz pārbaudiet savienotājus un neuzskatiet, ka tie ir pareizi izgatavoti) un GND spailēm (tām jābūt melnām) pusē, kas apzīmēta ar -. Kad tie ir tur, pievelciet skrūves spaiļu bloka augšpusē, un jums vajadzētu būt kaut kam, kas izskatās kā šīs darbības galvenes attēls.

Tagad - jūs, iespējams, pamanījāt, ka šī konkrētā konfigurācija atstāj pusi no lāpstiņas spailes abās pusēs, kas atrodas tikai milimetros virs matricas cepures (un ne pārāk tālu viena no otras.) UN - lāpstiņas termināļi drīz būs nesot gan vairākus voltus, gan vairākus ampērus neapstrādātas jaudas. Vai tas (es dzirdu, kā jūs jautājat no ekrāna otras puses) tiešām ir pareizais veids, kā to izdarīt? Vai tā ir (tu pieliecies tuvāk un pačuksti), laba ideja?

Un atbilde ir (es atbildu, paraustot plecus) - nē, tā nav. Pareizais veids, kā to izdarīt, ir noņemt strāvas kabeļus no lāpstiņas spailēm un atkārtoti saspiest tos atbilstošajā spaiļu bloka savienotājā (vai atstāt tos kā tukšus vadus un savienot tos bez savienotāja blokā). Ja tas nenotiek, jūs varat novietot dažas termiski saraušanās caurules ap lāpstiņas savienotāja atklāto pusi vai vienkārši ietīt to elektriskā lentē. Bet pasaule ir kritusi, un cilvēks ir slinks un veltīgs, tāpēc es to neesmu darījis.

Bet - iesaiņoti vai neiesaiņoti - lāpstas spailes ir savienotas ar spaiļu bloku, un mēs esam gatavi pāriet uz nākamo soli.

4. darbība: pārbaudiet RGB matricu

Tagad, kad jūsu Pi ir savienots ar gaismas dēli, apgrieziet to un atkal ieslēdziet. Jūs varat barot matricas cepuri pēc tam, kad ir pievienots Pi; tomēr, ja jūs ieslēgsit cepuri pirms Pi, Pi mēģinās palaist ar nepietiekamu strāvu un rūgti sūdzēsies (un tas var izraisīt paniku un vispār neuzsākt.)

Ja jums ir grūtības panākt, lai Pi sāktu darbu ar matricas cepuri, pārliecinieties, vai izmantojat pietiekami jaudīgu Pi barošanas avotu (2A+ vajadzētu būt labai), un mēģiniet pievienot gan cepures, gan Pievienojiet to pašu barošanas bloku vai pagarinātāju un ieslēdziet tos kopā.

Kad Pi ir startējis, mēs esam gatavi pārbaudīt matricas. Dodieties uz vietu, kur atrodas pitona saistošie paraugi (cd/rpi-rgb-led-matrica/saistījumi/python/paraugi), un izmēģiniet rotējošo bloku ģeneratoru ar šādu komandu:

sudo./rotating-block-generator.py -m adafruit-hat-ķēžu ķēde 4

Jums tas jādarbina kā sudo, jo matricas bibliotēkai inicializācijas laikā nepieciešama zema līmeņa piekļuve aparatūrai. -M norāda veidu, kā paneļi ir savienoti ar pi (šajā gadījumā -adafruit cepure), un -led -chain norāda, kā jūs uzminējāt, -cik paneļu esam sasaistījuši kopā. Rindas un kolonnas vienā panelī pēc noklusējuma ir 32, tāpēc mums ir labi.

Tagad - kad esat izpildījis programmu, notiks viena no divām (vai tiešām viena no trim) lietām:

  • Nekas nenotiek
  • Jūs saņemsiet jauku rotējošu bloku gaismas dēļa vidū.
  • Gaismas plāksne, manuprāt, darbojas, bet izskatās… dīvaini (puse no tā ir zaļa, dažas rindas nedeg utt.)

Ja nekas nenotiek vai panelis izskatās dīvaini, nospiediet taustiņu kombināciju ctrl+c, lai izietu no parauga programmas, izslēdziet pi un pārbaudiet visus savienojumus (IDC kabelis, barošana, pārliecinieties, vai abi barošanas avoti ir pievienoti elektrotīklam utt.) Pārliecinieties arī, vai cepure ir pareizi pievienota; ja tas nepalīdz, nogādājiet to pie viena paneļa (pārbaudot to noteikti izmantojiet -led-chain 1) un pārbaudiet, vai kāds no paneļiem varētu būt slikts. Ja tas nedarbojas, skatiet hzeller problēmu novēršanas padomus. ja TĀDĒL nestrādā, pamēģiniet ievietot /r /raspberry_pi (vai Adafruit forumos, ja esat saņēmis paneļus no Adafruit vai kaudzes apmaiņas utt. utt.)

Ja pēc sakaru pārbaudes tas kaut kā darbojas, bet joprojām izskatās dīvaini (iespējams, kā šīs sadaļas galvenes attēls), iespējams, ka viss ir pareizi savienots, paneļi darbojas pareizi, bet kaut kas cits notiek uz. Kas mūs novedīs pie nākamā soļa - vairāk novirzīšanas nekā solis - uz multipleksēšanu un skenēšanas ātrumu. (Ja jūsu vadītā plāksne darbojas labi un jūs neinteresē šo paneļu iekšējā darbība, lūdzu, izlaidiet nākamo soli.)

5. darbība: multipleksēšanas un skenēšanas ātrumi (vai: īslaicīga novirzīšana ceļā uz kapu)

Tātad, viena no kļūdām, ko es pieļāvu, pasūtot savu pirmo paneļu komplektu no Alibaba, ir tā, ka es saņēmu āra paneļus (kāpēc gan ne, es domāju - tie ir ūdensizturīgi un gaišāki!). Un, kad es tos pieslēdzu savai matricas cepurei, viss izskatījās.. nav pareizi.

Lai saprastu, kāpēc tas tā ir, veltīsim minūti laika, lai apskatītu Filu Burgesu no Adafruit apraksta par šo paneļu darbību. Jūs atzīmēsit, ka Burgess norāda, ka paneļi nededzina visas savas gaismas diodes vienlaikus - tās iedegas rindu kopas. Attiecību starp paneļa augstumu pikseļos un rindu skaitu, kas iedegas uzreiz, sauc par skenēšanas ātrumu. Tā, piemēram, - 32x32 panelī ar 1/16 skenēšanu divas rindas (1 un 17, 2 un 18, 3 un 19 utt.) Tiek izgaismotas uzreiz, līdz galam uz leju, un tad kontrolieris atkārtojas. Lielākā daļa bibliotēku, kas vada RGB matricas, ir veidotas paneļiem, kuros skenēšanas ātrums ir 1/2 no pikseļu augstuma - tas ir, tie vada divas LED rindas vienlaikus.

Āra paneļiem (un dažiem iekštelpu paneļiem - pirms pasūtīšanas noteikti apskatiet specifikācijas) skenēšanas ātrums ir 1/4 no pikseļu augstuma, kas nozīmē, ka viņi sagaida četras līnijas vienlaikus. Tas padara tos gaišākus (kas ir labi), bet liek daudziem standarta kodiem ar tiem nedarboties (kas ir slikti). Turklāt pikseļi tiem iekšēji mēdz būt nesakārtoti, tādēļ ir jāpārveido x un y vērtības programmatūrā, lai pievērstos pareizajiem pikseļiem. Kāpēc tas ir izgatavots šādā veidā? Man nav ne jausmas. Vai Tu zini? Ja tā, lūdzu, pastāstiet man. Pretējā gadījumā tam vienkārši jāpaliek noslēpumam.

Tātad, ja jums ir kāds no šiem dīvainajiem āra paneļiem, jums (iespējams) veicas! hzellers savai bibliotēkai nesen pievienoja atbalstu šāda veida paneļu parastajām konfigurācijām. Plašāku informāciju par to varat izlasīt projekta Github lapā, bet parauga kodam varat nodot --led-multiplexing = {0, 1, 2, 3} (iespējams, jums būs jāizliekas arī kā pusgaru paneļu divkārša ķēde), un tam vajadzētu darboties.

Tomēr ir daži pikseļu pārveidošanas modeļi, kas netiek atbalstīti - un (uzmini), maniem paneļiem ir viens no tiem! Tātad, man bija jāraksta savs transformācijas kods (man arī - kāda iemesla dēļ - ir jāpasaka bibliotēkai, lai tā rīkojas tā, it kā būtu salikti kopā astoņi 16x32 paneļi). kas ir šāds:

def pārveidot Pikseļi (j, k): effJ = j % 32

effK = k % 32

modY = k

modX = j

#modX un modY ir modificētie X un Y;

#effJ un effK pirms stumšanas pārliecinieties, ka mēs pārveidojam 32x32 matricas ietvaros

ja ((effJ)> 15):

modX = modX + 16

ja ((effK)> 7):

modY = modY - 8

modX = modX + 16

ja ((effK)> 15):

modX = modX - 16

ja ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Pēc tam mēs virzām tos pareizajā vietā (katrs x+32 pārvieto vienu paneli)

ja (j> 31):

modX += 32

ja (j> 63):

modX += 32

ja (j> 95):

modX += 32

atgriešanās (modX, modY)

Ja jums ir tāds panelis kā mans, tas varētu noderēt. Ja tā nav, jums būs jāraksta savs - tātad, ziniet, veiksmi un dievsātrumu.

6. darbība: labā borda programma (vai: atpakaļ uz ceļa un gatava pikseļiem)

Tagad, kad esat izveidojis savas matricas un esat gatavs darbam, viss, kas jums jādara, ir ievietot labā borta programmu savā Pi un sagatavot to darbam. Pārliecinieties, vai atrodaties pi lietotāja mājas direktorijā (cd /home /pi) un palaidiet šādu komandu:

git klons

jums vajadzētu izveidot jaunu mapi, pa labi, kurā ir trīs faili: LICENSE.md, README.md un starboard_s16.py. Izmēģiniet labo borta programmu, palaižot to caur python:

sudo python./starboard_s16.py

un jums vajadzētu iegūt ķekars daļiņu, kas pārvietojas ar dažādu ātrumu un sabrūk ar atšķirīgu ātrumu. Ik pēc aptuveni 10 000 ērcēm (jūs varat iedziļināties python skriptā, lai to rediģētu/mainītu), tas mainīs režīmus (ir četri: RGB, HSV, Rainbow un Greyscale).

Tātad, tagad vienīgais, kas jādara, ir likt labajam kodam darboties, startējot. Mēs to darīsim, rediģējot (ar sudo) /etc/rc.local. Tas, ko vēlaties darīt, ir pievienot šādu rindu tieši pirms "exit 0" skriptā:

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

Pēc tam, kad esat to izdarījis, atsāknējiet pi - kad tas ir palaidis sāknēšanas secību, starboard_s16.py skriptam jāsākas uzreiz!

Ja vēlaties skriptēt, lūdzu, dariet to - tas ir licencēts saskaņā ar GNU GPL 3.0. Ja skripts jums nedarbosies vai jums ir problēmas ar to, lūdzu, dariet man to zināmu vai iesniedziet kļūdu vietnē github, un es redzēšu, ko es varu darīt, lai to labotu!

Pēdējā lieta (ļoti), ko jūs varētu vēlēties darīt, ir iestatīt SSH uz pi, lai jūs varētu to attālināti ievietot un droši izslēgt. Jūs / noteikti / vēlaties mainīt paroli (izmantojot komandu passwd), un šeit varat atrast norādījumus par ssh iespējošanu (arī no komandrindas).

Ieteicams: