Obsah:

Generátor pravoboku / částic RPi 3: 6 kroků (s obrázky)
Generátor pravoboku / částic RPi 3: 6 kroků (s obrázky)

Video: Generátor pravoboku / částic RPi 3: 6 kroků (s obrázky)

Video: Generátor pravoboku / částic RPi 3: 6 kroků (s obrázky)
Video: 274 000 $ 2013 CARVER 34 COMMAND BRIDGE Тур на моторной яхте начального уровня / стартовая лодка для 2024, Červenec
Anonim
Image
Image
Sestavte desku LED
Sestavte desku LED

Už vás nudí váš Raspberry Pi? Jste připraveni velet samotným elementárním silám vesmíru, svolávat a odmítat fotony podle libosti? Chcete jen něco zajímavého pověsit ve svém obývacím pokoji, nebo efektní projekt, který zveřejníte na Facebooku, abyste Denise ukázali, že se vám v dnešní době daří, moc děkuji? Jste uvězněni v počítačové simulaci a utíkáte hodiny, dokud nebudete osvobozeni nebo odstraněni? Pokud vás některý nebo všechny z nich charakterizují, pak [hlas hlasatele] Vítejte!

Tento tutoriál vám ukáže, jak sestavit a nastavit displej generátoru částic pomocí panelu Raspberry Pi 3 a některých maticových panelů RGB. Mělo by vám to trvat jednu až dvě hodiny a hotový výrobek bude přibližně 30 x 8 palců (bez Pi) a lze jej namontovat na zeď. Je to skvělá dekorace do obývacího pokoje, kanceláře, herny nebo kamkoli jinam, kam ji chcete umístit.

Než začnete, zde je to, co budete potřebovat a jaké jsou přibližné náklady:

  • Rpi 3 + SD karta + pouzdro + napájecí zdroj: 70 $ (od Canakit, ale pravděpodobně můžete získat díly levněji, pokud je koupíte samostatně.)
  • 4x 32x32 RGB LED Matrix (nejlépe p6 indoor s skenováním 1/16): 80 $-100 $ zasláno na Alibaba nebo Aliexpress; 160 dolarů na Adafruit nebo Sparkfun.
  • Klobouk Matrix Adafruit RGB: 25 $
  • Napájení 5V 4A: 15 $
  • 3D tištěné klipy: 1 $ (platí za připojení panelů a jejich zavěšení na zeď; pokud nemáte přístup k 3D tiskárně, můžete je pomocí furringového pásu držet pohromadě a některé držáky z železářství pověsit ze zdi. Zkoušel jsem pro ně najít návrhové soubory nebo.stls, ale zdá se, že prošly ze země. Klipy se ale modelují docela snadno.)
  • 14x šrouby M4x10: 5 $
  • Čtyři kabely 4x8 IDC a tři napájecí kabely pro matice RGB (nevím, jak se tomu říká!). Ty by měly být součástí vašich LED panelů.
  • Celkem: Kolem 200 $, dejte nebo vezměte.

Projekt nevyžaduje, abyste pájili nebo měli nějaké specifické znalosti programování; předpokládá, že víte, jak zapsat obrázek na kartu microSD. Pokud si nejste jisti, jak to udělat, nadace Raspberry Pi má dobrý návod zde.

Předpokládá také, že máte základní znalosti o tom, jak dělat věci z příkazového řádku v Linuxu, a návod v kódu předpokládá, že znáte základy Pythonu (ale - nemusíte se řídit návodem k kódu, abyste mohli stavět a spusťte generátor částic.) Pokud narazíte na některý z kroků, neváhejte se zeptat nebo napsat příspěvek v /r /raspberry_pi (což je také, předpokládám, hlavní publikum pro tento návod)

Krok 1: Sestavte desku LED

Sestavte desku LED
Sestavte desku LED

Nejprve budete sestavovat jednotlivé LED panely 32x32 do jednoho velkého panelu 128x32. Budete se muset podívat na své desky a najít malé šipky, které označují pořadí připojení; na mém jsou přímo v blízkosti konektorů HUB75/2x8 IDC. Ujistěte se, že šipky směřují od místa, kde se Rpi připojí (na fotografii výše nahoře) po celé délce desky.

Budete také muset připojit napájecí kabely. Většina těchto kabelů má dva zásuvkové konektory, které se připevňují k deskám, a jednu sadu koncovek, které se připojují ke zdroji energie. Panely, se kterými pracuji, mají indikátory pro 5V a GND téměř úplně skryté pod samotnými konektory, ale kabely se připojují pouze jedním směrem. Budete se chtít ujistit, že spojujete všechny 5V dohromady a všechny GND dohromady, protože pokud je napájíte dozadu, téměř jistě je smažíte.

Protože napájecí kabely dodávané s mými deskami byly tak krátké, musel jsem jeden prodloužit vložením hrotů konektoru rýče do konektoru druhého (To je docela jednoduché - možná budete muset ohnout koncovky rýče mírně dovnitř, ale já ' pro jistotu jsem vložil obrázek). Skončil jsem se dvěma sadami rýčových terminálů a jedním 2x8 IDC konektorem vpravo od mé nyní prodloužené desky LED.

Také si všimnete, že mám na obou koncích desky dva šrouby, které nejsou k ničemu připevněny; ty budou nahoře, jakmile se celá věc převrátí, a budou použity k připevnění na zeď.

Takže - jakmile propojíte všechny panely dohromady pomocí klipů, kabelů 2x8 IDC a napájecích kabelů, jste připraveni přejít k dalšímu kroku!

Krok 2: Připravte si Raspberry Pi

Dále odložíte desku LED stranou (prozatím) a připravte Pi 3 na spuštění. Budeme používat Raspbian Stretch Lite a RGB maticovou knihovnu hzeller (spíše než maticovou knihovnu Adafruit, která je starší a neudržovaná.)

Nejprve budete chtít napsat obrázek Raspbian Lite na kartu SD; Jakmile to uděláte, pokračujte a připojte monitor a klávesnici k pí a spusťte jej. (Můžete to také udělat bez hlavy, buď přes ssh nebo sériový konektor, ale pokud se tímto směrem vydáte, pravděpodobně nebudete potřebovat, abych vám řekl, jak to udělat.) K tomu budete potřebovat připojení k internetu; Pokud máte wifi, připojte Pi k bezdrátové síti úpravou /etc/wpa_supplicant/wpa_supplicant.conf a spuštěním wpa_cli -i wlan0 překonfigurujte. (Pokud jste to nikdy neudělali, můžete zde získat pokyny).

Jakmile budete připojeni k internetu, aktualizujeme nastavení úložiště dpkg a stáhneme potřebné knihovny spuštěním následujících příkazů:

sudo apt-get update

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

klon git

Nyní musíme kompilovat a nainstalovat kód matice. Přejdete tedy do složky obsahující knihovnu:

cd rpi-rgb-led-matrix

a zkompilovat (může to chvíli trvat):

make && make build-python

a nainstalujte vazby pythonu:

sudo make install-python

Pokud se vám při kompilaci kódu knihovny objeví nějaké chyby, vraťte se zpět a ujistěte se, že jste správně nainstalovali python-dev a python-pil! Vazby pythonu se nebudou kompilovat, aniž by byly nainstalovány oba tyto balíčky.

Budete také muset vypnout zvukový výstup vašeho Pi (integrovaný zvuk zasahuje do maticového kódu) úpravou /boot/config.txt. Vyhledejte řádek, který říká dtparam = audio = on, a změňte jej na dtparam = audio = off.

Pokud je vše kompilováno v pořádku (dostanete několik varování o Wstrict-protoypech), vaše pi by mělo být připraveno ke spuštění maticové desky. Pokračujte a vypněte jej (okamžité vypnutí), odpojte jej a v dalším kroku připojíme světelnou desku k pí.

Krok 3: Připojte desku Pi + Matrix Hat + LED

Connect Pi + Matrix Hat + LED Board
Connect Pi + Matrix Hat + LED Board

Nyní, když je váš Pi vypnutý a odpojený, připojme maticový klobouk k pí a LED desku k maticovému klobouku. Pokud váš Pi již není v takovém případě, nyní je vhodný čas jej tam vložit.

Nainstalujte maticový klobouk tak, že jej zarovnáte s kolíky GPIO na Pi a jemně jej zatlačíte dolů rovnoměrnou silou na obou stranách. Ujistěte se, že jsou piny správně zarovnány, aby ženské záhlaví na klobouku přesně zakrývaly kolíky GPIO na pí. Pokud to špatně umístíte, není to katastrofa; jen jej jemně stáhněte a narovnejte všechny kolíky, které se ohnuly.

Jakmile nasadíte klobouk, vložte Pi napravo od sestavené desky LED (znovu zkontrolujte připojení napájení a ujistěte se, že šipky směřují od Pi dolů po desce) a připojte IDC kabel do maticového klobouku.

Dále budete chtít připojit svorkovnice pro napájení do svorkovnice matrix hat. Na každé straně máte dva konektory rýče, ale oba by se tam měly vejít dobře. Nejprve povolte šrouby a - Mělo by to být samozřejmé - ujistěte se, že jste vložili 5V svorky na stranu označenou + (ty by měly být červené, ale - znovu - zkontrolujte své konektory a nepředpokládejte, že byly vyrobeny správně) a svorky GND (ty by měly být černé) na straně označené -. Jakmile jsou tam, utáhněte šrouby v horní části svorkovnice a měli byste mít něco, co vypadá jako obrázek záhlaví pro tento krok.

Nyní - možná jste si všimli, že tato konkrétní konfigurace nechává odhalenou polovinu rýčového terminálu na obou stranách a vznáší se pouhé milimetry nad kloboukem matice (a ne příliš daleko od sebe.) A - rýčové terminály budou velmi brzy nesoucí jak několik voltů, tak několik zesilovačů Raw Power. Je to opravdu (slyším vás ptát se z druhé strany obrazovky) opravdu ten správný způsob, jak to udělat? Je to, (nakloníte se blíž a zašeptáte), dobrý nápad?

A odpověď zní (odpovídám a pokrčím rameny) - ne, není. Správný způsob, jak to udělat, je oddělit svorky rýče z napájecích kabelů a znovu je zalisovat do správného konektoru pro danou svorkovnici (nebo je ponechat jako holé vodiče a připojit je bez konektoru do bloku). V opačném případě můžete kolem odkryté strany konektoru rýče umístit smršťovací hadičku nebo ji jednoduše zabalit elektrickou páskou. Ale svět padl a člověk je líný a ješitný, takže jsem to neudělal.

Ale - zabalené nebo rozbalené - svorky rýče jsou připojeny ke svorkovnici a my jsme připraveni přejít k dalšímu kroku.

Krok 4: Otestujte matici RGB

Nyní, když je váš Pi připojen k světelné desce, otočte desku a znovu zapněte Pi. Maticový klobouk můžete napájet po zapojení Pi; pokud však zapnete klobouk před Pi, Pi se pokusí spustit s nedostatečným proudem a bude si hořce stěžovat (a může vám způsobit paniku jádra a vůbec se nespustí.)

Pokud máte potíže se spuštěním Pi s maticovým kloboukem, ujistěte se, že používáte dostatečně silný napájecí zdroj pro Pi (2A+ by mělo být dobré) a zkuste zapojit napájecí zdroj pro klobouk i pro Pii zapojte do stejného prodlužovacího kabelu nebo prodlužovacího kabelu a společně je zapojte.

Jakmile se Pi spustí, jsme připraveni testovat matice. Přejděte na místo, kde jsou vzorky vazby pythonu (cd/rpi-rgb-led-matrix-bindings/python/sample) a vyzkoušejte generátor rotujících bloků následujícím příkazem:

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

Musíte to spustit jako sudo, protože knihovna matic potřebuje při inicializaci přístup k hardwaru na nízké úrovni. -M určuje způsob připojení panelů k pí (v tomto případě klobouk adafruit) a --led -chain určuje -uhodli jste -kolik panelů jsme spojili dohromady. Výchozí hodnota pro řádky a sloupce na panel je 32, takže jsme tam dobří.

Nyní - jakmile spustíte program, dojde k jedné ze dvou (nebo skutečně jedné ze tří) věcí:

  • Nic se neděje
  • Uprostřed světelné tabule získáte pěkný otočný blok.
  • Myslím, že světelná deska funguje, ale vypadá … divně (polovina je zelená, některé řádky nesvítí atd.)

Pokud se nic nestane, nebo pokud panel vypadá divně, stiskněte ctrl+c pro ukončení ukázkového programu, vypněte pi a zkontrolujte všechna vaše připojení (kabel IDC, napájení, ujistěte se, že jsou zapojeny oba napájecí zdroje atd.) Také se ujistěte, že je klobouk správně připojen; pokud to nevyřeší, sundejte to na jeden panel (při testování nezapomeňte použít --led-chain 1) a zjistěte, zda jeden z panelů může být špatný. Pokud to nefunguje, podívejte se na tipy pro řešení problémů hzeller. pokud TO STÁLE nefunguje, zkuste přidat příspěvek na /r /raspberry_pi (nebo na fóra Adafruit, pokud máte panely od Adafruit, nebo výměnu zásobníků atd.)

Pokud to funguje, ale stále vypadá divně (možná jako obrázek záhlaví této části), i když jste zkontrolovali připojení, je možné, že máte vše správně připojené, že panely fungují správně, ale že se chystá něco jiného na. Což nás přivede k našemu dalšímu kroku - více odklonu než kroku - k multiplexování a rychlosti skenování. (Pokud vaše led deska funguje dobře a nezajímá vás vnitřní fungování těchto panelů, další krok přeskočte.)

Krok 5: Multiplexování a rychlosti skenování (nebo: Okamžité odklonění na cestě do hrobu)

Jednou z chyb, které jsem udělal, když jsem si objednal svou první sadu panelů z Alibaba, je, že jsem dostal venkovní panely (proč ne, pomyslel jsem si - jsou vodotěsné a jasnější!). A když jsem je zapojil do svého klobouku, vypadalo to, že to není v pořádku.

Abychom pochopili, proč tomu tak je, chvíli se podíváme na Phila Burgesse z Adafruitova popisu fungování těchto panelů. Všimněte si, že Burgess poukazuje na to, že panely nesvítí všechny jejich LED najednou - rozsvítí sady řádků. Vztah mezi výškou panelu v pixelech a počtem řádků, které se rozsvítí najednou, se nazývá rychlost skenování. Takže například - Na panelu 32x32 s skenováním 1/16 se rozsvítí dvě řady (1 a 17, 2 a 18, 3 a 19 atd.) Najednou, úplně dolů po desce, a pak se ovladač opakuje. Většina knihoven, které řídí matice RGB, je postavena pro panely, kde je rychlost skenování 1/2 výšky v pixelech - to znamená, že pohání dvě řady LED diod najednou.

Venkovní panely (a některé vnitřní panely - nezapomeňte se před objednáním podívat na specifikace) mají rychlosti skenování, které jsou 1/4 výšky v pixelech, což znamená, že očekávají, že budou řízeny čtyři řádky najednou. Díky tomu jsou jasnější (což je dobré), ale spousta standardních kódů s nimi nefunguje (což je špatné). Kromě toho mívají interně pixely mimo provoz, což vyžaduje transformaci hodnot x a y v softwaru, aby bylo možné adresovat správné pixely. Proč jsou vyráběny tímto způsobem? Nemám ponětí. Víš? Pokud ano, řekněte mi to. Jinak to prostě musí zůstat záhadou.

Pokud tedy máte jeden z těchto podivných venkovních panelů, máte (pravděpodobně) štěstí! hzeller nedávno přidal do své knihovny podporu pro běžné konfigurace těchto typů panelů. Můžete si o tom přečíst více na stránce github projektu, ale do ukázkového kódu můžete předat --led-multiplexing = {0, 1, 2, 3} (možná budete muset také předstírat, že máte dvojitý řetěz polovičních panelů) a mělo by to fungovat.

Existují však některé vzorce transformace pixelů, které nejsou podporovány - a (hádejte co) moje panely jeden z nich mají! Takže jsem musel napsat svůj vlastní transformační kód (také jsem - z jakéhokoli důvodu - musel říct knihovně, aby se chovala tak, že mám osm panelů 16x32 zřetězených dohromady). což je následující:

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

effK = k % 32

modY = k

modX = j

#modX a modY jsou upravené X a Y;

#effJ a effK se ujistěte, že před tlačením transformujeme v matici 32x32

if ((effJ)> 15):

modX = modX + 16

if ((effK)> 7):

modY = modY - 8

modX = modX + 16

if ((effK)> 15):

modX = modX - 16

if ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Poté je zatlačíme na správné místo (každý x+32 posune o jeden panel)

pokud (j> 31):

modX += 32

pokud (j> 63):

modX += 32

pokud (j> 95):

modX += 32

návrat (modX, modY)

Pokud máte panel jako já, může to fungovat. Pokud tomu tak není, budete muset napsat svůj vlastní - takže, víte, hodně štěstí a boží rychlosti.

Krok 6: Program Starboard (nebo: Zpět na stopu a Ready to Pixel)

Nyní, když máte své matice funkční a připravené k provozu, nezbývá než na pravou stranu nainstalovat svůj pravý program a připravit se. Ujistěte se, že jste v domovském adresáři uživatele pi (cd /home /pi) a spusťte následující příkaz:

git clone

měli byste mít novou složku, pravobok, která obsahuje tři soubory: LICENSE.md, README.md a starboard_s16.py. Vyzkoušejte pravý program spuštěním pomocí pythonu:

sudo python./starboard_s16.py

a měli byste dostat spoustu částic pohybujících se různými rychlostmi a rozpadajících se různými rychlostmi. Každých přibližně 10 000 zaškrtnutí (můžete to změnit/změnit ve skriptu pythonu) změní režimy (existují čtyři: RGB, HSV, Rainbow a Stupně šedi).

Nyní tedy zbývá udělat pouze to, aby se kód pravoboku spustil při spuštění. Uděláme to úpravou (sudo) /etc/rc.local. Co chcete udělat, je přidat následující řádek těsně před „exit 0“ve skriptu:

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

Poté, co to uděláte, restartujte pi - jakmile proběhne spouštěcí sekvencí, skript starboard_s16.py by měl začít hned!

Pokud si chcete ve skriptu pošťuchovat, udělejte to - je licencován pod GNU GPL 3.0. Pokud se vám skript nespustí, nebo s ním máte potíže, dejte mi vědět nebo odešlete chybu na github a já uvidím, co mohu udělat, abych to napravil!

(Úplně) poslední věc, kterou byste mohli chtít udělat, je nastavit SSH na pi, abyste jej mohli dálkově ovládat a bezpečně vypnout. Budete / určitě / chtít změnit heslo (pomocí příkazu passwd) a pokyny pro povolení ssh (také z příkazového řádku) najdete zde.

Doporučuje: