Tartalomjegyzék:

RPi 3 jobb oldali / részecskegenerátor: 6 lépés (képekkel)
RPi 3 jobb oldali / részecskegenerátor: 6 lépés (képekkel)

Videó: RPi 3 jobb oldali / részecskegenerátor: 6 lépés (képekkel)

Videó: RPi 3 jobb oldali / részecskegenerátor: 6 lépés (képekkel)
Videó: Бесшумное zigbee реле в подрозетник без нулевой линии, особенности монтажа, установка конденсатора 2024, November
Anonim
Image
Image
Szerelje össze a LED táblát
Szerelje össze a LED táblát

Unatkozol a Raspberry Pi -n? Készen állsz arra, hogy parancsold a világegyetem legelemibb erőit, fotókat hívj be és utasíts el tetszésed szerint? Szeretne valami érdekeset felfüggeszteni a nappalijába, vagy egy fantasztikus projektet közzétenni a Facebookon, hogy megmutassa Denise -nek, hogy mostanában jól érzi magát, köszönöm szépen? Csapdába esett egy számítógépes szimulációban, és elvonja az órákat a kiszabadulásig vagy a törlésig? Ha ezek egyike vagy mindegyike leír téged, akkor [bemondó hangja] Üdvözlünk!

Ez az oktatóanyag megmutatja, hogyan kell összeállítani és beállítani a részecskegenerátor -kijelzőt Raspberry Pi 3 és néhány RGB mátrixpanel használatával. Egy-két órát vesz igénybe, és a késztermék körülbelül 30 "x8" méretű lesz (a Pi-t nem számítva), és falra szerelhető. Nagyon klassz dekoráció a nappaliban, irodában, játékteremben, vagy bárhol, ahol el szeretné helyezni.

Mielőtt elkezdené, íme, mire lesz szüksége, és mennyi a hozzávetőleges költség:

  • Rpi 3 + SD kártya + tok + tápegység: 70 USD (a Canakit cégtől, de valószínűleg olcsóbban szerezheti be az alkatrészeket, ha külön vásárolja meg őket.)
  • 4x 32x32 RGB LED-mátrix (lehetőleg p6 beltéri 1/16 szkenneléssel): 80–100 dollár az Alibaba vagy az Aliexpress szállításakor; 160 dollár az Adafruit vagy a Sparkfun áron.
  • Adafruit RGB mátrix kalap: 25 dollár
  • 5V 4A tápegység: 15 USD
  • 3D nyomtatott klipek: 1 dollár akaszd fel a falra. Megpróbáltam megtalálni a tervezési fájlokat vagy az.stls fájlokat ezekhez, de úgy tűnik, hogy elhagyták a földet. A klipeket azonban elég könnyű modellezni.)
  • 14x M4x10 csavar: 5 USD
  • Négy 4x8 IDC kábel és három tápkábel az RGB mátrixokhoz (nem tudom, hogy hívják ezeket!). Ezeket a LED paneleknek is tartalmazniuk kellett volna.
  • Összesen: 200 dollár körül, adj vagy vegyél.

A projekt nem igényel forrasztást vagy speciális programozási ismereteket; feltételezi, hogy tudja, hogyan kell képet írni a microSD -kártyára. Ha nem biztos benne, hogyan kell ezt megtenni, a Raspberry Pi alapítványnak itt van egy jó bemutatója.

Azt is feltételezi, hogy alapvető ismeretekkel rendelkezik a Linux parancssorból történő elvégzéséről, és a kód áttekintése feltételezi, hogy ismeri a Python alapjait (de - nem kell követnie a kódot, hogy építeni és futtassa a részecskegenerátort.) Ha elakad valamelyik lépésnél, kérdezzen bátran, vagy tegyen közzé egy üzenetet a /r /raspberry_pi mappában (feltételezem, hogy ennek a tanulságnak a főközönsége is)

Lépés: Szerelje össze a LED táblát

Szerelje össze a LED táblát
Szerelje össze a LED táblát

Először össze kell szerelni az egyes 32x32 LED -es paneleket egy nagy 128x32 -es panelbe. Meg kell néznie a táblákat, és meg kell találnia a kis nyilakat, amelyek a csatlakozási sorrendet jelzik; az enyémben a HUB75/2x8 IDC csatlakozók közelében vannak. Győződjön meg arról, hogy a nyilak arra mutatnak, ahonnan az Rpi csatlakozik (a fenti képen jobbra) a tábla hosszában.

A tápkábeleket is csatlakoztatnia kell. Ezeknek a kábeleknek a többsége két hüvelyi csatlakozóval rendelkezik, amelyek a táblákhoz rögzíthetők, és egy sor ásócsatlakozóval, amely az áramforráshoz csatlakozik. A paneleken, amelyeken dolgozom, az 5V és a GND jelzői szinte teljesen el vannak rejtve a csatlakozók alatt, de a kábelek csak egy irányba csatlakoznak. Győződjön meg arról, hogy összekapcsolja az összes 5 V -ot és az összes GND -t, mert ha ezeket visszafelé kapcsolja, akkor szinte biztosan megsütni fogja őket.

Mivel a tábláimhoz mellékelt tápkábelek olyan rövidek voltak, az egyiket úgy kellett meghosszabbítanom, hogy az ásócsatlakozó szárait behelyeztem a másik csatlakozójába (Ez elég egyszerű - lehet, hogy kissé befelé kell hajlítani az ásókapcsokat, de mellékeltem egy képet minden esetre). Végül két ásó sorkapcsot és egy 2x8 IDC csatlakozót kaptam a most megnyúlt LED táblámtól jobbra.

Azt is észreveheti, hogy két csavart nem rögzítettem semmihez a tábla egyik végén sem; ezek a tetején lesznek, miután az egészet megfordítják, és a falra rögzítésre szolgálnak.

Tehát - miután az összes panelt klipekkel, 2x8 IDC kábellel és tápkábellel összekapcsolta, készen áll a következő lépésre!

2. lépés: Készítse elő a Raspberry Pi -t

Ezután tegye félre a LED táblát (egyelőre), és készen áll a Pi 3 futtatására. A Raspbian Stretch Lite és a hzeller RGB mátrixkönyvtárát fogjuk használni (nem az Adafruit mátrixkönyvtárát, amely régebbi és nem karbantartott.)

Először is, a Raspbian Lite képet SD -kártyára kell írnia; miután ezt megtette, csatlakoztassa a monitort és a billentyűzetet a pi -hez, és indítsa el. (Ezt fej nélkül is megteheti, akár ssh -n, akár soros csatlakozón keresztül, de ha így halad, akkor valószínűleg nem kell, hogy megmondjam, hogyan kell csinálni.) Ehhez internetkapcsolatra lesz szüksége; Ha van wifi, csatlakoztassa a Pi -t a vezeték nélküli hálózatához az /etc/wpa_supplicant/wpa_supplicant.conf szerkesztésével és a wpa_cli -i wlan0 újrakonfigurálásával. (Ha még soha nem tette meg, itt talál útmutatást.)

Miután csatlakozott az internethez, frissítjük a dpkg lerakat beállításait és letöltjük a szükséges könyvtárakat a következő parancsok futtatásával:

sudo apt-get update

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

git klón

Most össze kell állítanunk és telepítenünk kell a mátrix kódot. Tehát belép a könyvtárat tartalmazó mappába:

cd rpi-rgb-led-mátrix

és fordítsa le (ez eltarthat egy percig):

make && make build-python

és telepítse a python kötéseket:

sudo make install-python

Ha bármilyen hibát észlel a könyvtári kód fordítása közben, menjen vissza, és győződjön meg arról, hogy helyesen telepítette a python-dev és a python-pil programokat! A python -összerendelések nem fordíthatók le mindkét csomag telepítése nélkül.

Ezenkívül le kell tiltania a Pi hangkimenetét (a fedélzeti hang zavarja a mátrixkódot) a /boot/config.txt szerkesztésével. Keresse meg a dtparam = audio = bekapcsolt sort, és módosítsa dtparam = audio = off értékre.

Ha minden rendben van (néhány figyelmeztetést kap a Wstrict-protoypes-ről), akkor a pi-nek készen kell állnia a mátrix tábla futtatására. Menjen előre, és kapcsolja ki (sudo shutdown now), húzza ki a konnektorból, és a következő lépésben csatlakoztatjuk a fénykártyát a pi -hez.

3. lépés: Csatlakoztassa a Pi + Matrix Hat + LED táblát

Csatlakoztassa a Pi + Matrix Hat + LED táblát
Csatlakoztassa a Pi + Matrix Hat + LED táblát

Tehát most, hogy a Pi ki van kapcsolva és ki van húzva, csatlakoztassuk a mátrixkalapot a pi -hez és a LED -táblát a mátrix kalapjához. Ha a Pi még nincs a tokjában, akkor itt az ideje, hogy behelyezze.

Szerelje be a mátrixsapkát úgy, hogy felsorakoztatja a Pi -n lévő GPIO csapokkal, és óvatosan lefelé nyomja, egyenletes erővel mindkét oldalon. Győződjön meg arról, hogy a csapok helyesen vannak beállítva, hogy a kalapon lévő női fejrészek pontosan lefedjék a pi GPIO csapjait. Ha félreigazítja, az nem katasztrófa; csak óvatosan húzza vissza, és egyenesítse ki a meggörbült csapokat.

Miután felvette a kalapot, tegye a PI -t az összeszerelt LED -kártya jobb oldalára (ellenőrizze újra a tápcsatlakozásokat, és győződjön meg arról, hogy a nyilak a P -ről a tábla hosszában mutatnak), és csatlakoztassa az IDC -t kábel a mátrix kalaphoz.

Ezután csatlakoztassa a tápellátásra szolgáló ásókapcsokat a mátrix kalap sorkapocsához. Két oldalas csatlakozó van oldalanként, de mindkettő jól illeszkedik. Először lazítsa meg a csavarokat, és - ez magától értetődik - győződjön meg arról, hogy az 5 V -os csatlakozókat a + feliratú oldalra helyezi (ezeknek pirosnak kell lenniük, de - ismét - ellenőrizze újra a csatlakozókat, és ne feltételezze, hogy megfelelően gyártották őket). a GND sorkapcsokat (ezeknek fekete színűnek kell lenniük) a -feliratú oldalon. Ha már ott vannak, húzza meg a csavarokat a sorkapocs tetején, és valami olyannak kell lennie, amely hasonlít a fejléc képéhez ehhez a lépéshez.

Most - talán észrevette, hogy ez a speciális konfiguráció az ásókapocs egyik felét mindkét oldalon szabadon hagyja, csupán milliméterekkel lebeg a mátrix kalapja felett (és nem sokkal távolabb egymástól.) ÉS - az ásókapcsok hamarosan több volt és több amper nyers teljesítményt szállít. Ez (hallom, hogy kérdezed a képernyő másik oldaláról) valóban a helyes út? Ez, (közelebb hajol és suttogsz), egy jó ötlet?

És a válasz (válaszolok, vállamat vonom) - nem, nem az. Ennek helyes módja az lenne, ha lehúzná az ásócsatlakozókat a tápkábelekről, és újra bepréselné őket az adott sorkapocs megfelelő csatlakozójába (vagy hagyja csupasz vezetékként, és csatlakozó nélkül csatlakoztassa őket a blokkhoz). Ennek hiányában tehet néhány zsugorcsövet az ásócsatlakozó szabad oldalára, vagy csak tekerje be elektromos szalaggal. De a világ elesett, az ember lusta és hiú, ezért ezt nem tettem.

De - becsomagolva vagy kicsomagolva - az ásókapcsok csatlakoztatva vannak a sorkapocshoz, és készen állunk a következő lépésre.

4. lépés: Tesztelje az RGB mátrixot

Most, hogy a Pi csatlakozik a fénykártyához, fordítsa meg a táblát, és kapcsolja be újra a Pi -t. A mátrix kalapot a Pi csatlakoztatása után táplálhatja; ha a kalapot a Pi előtt hajtja, a Pi megpróbál nem elegendő árammal indítani, és keserűen panaszkodik (és kernel -pánikot okozhat, és egyáltalán nem indul el.)

Ha problémái vannak azzal, hogy a Pi -t mátrixsapkával indítsa el, győződjön meg arról, hogy a Pi -hez elég erős tápellátást használ (a 2A+ -nak jónak kell lennie), és próbálja meg csatlakoztatni mind a kalap, mind a Csatlakoztassa ugyanabba az elosztóba vagy hosszabbítóba, és kapcsolja be őket.

Miután a Pi elindult, készen állunk a mátrixok tesztelésére. Menjen oda, ahol a python-kötési minták vannak (cd/rpi-rgb-led-mátrix/kötések/python/minták), és próbálja ki a forgó blokkgenerátort a következő paranccsal:

sudo./rotating-block-generator.py -m adafruit-hat-kalapált lánc 4

Sudo-ként kell futtatnia, mert a mátrixkönyvtárnak alacsony szintű hozzáférésre van szüksége a hardverhez az inicializáláskor. Az -m határozza meg a panelek pi -hez való csatlakoztatásának módját (ebben az esetben egy adafruit kalapot), az -led -lánc pedig -ahogy sejtette -azt határozza meg, hogy hány panelt láncoltunk össze. A panelenkénti sorok és oszlopok alapértelmezett értéke 32, tehát jól járunk.

Most - miután végrehajtotta a programot, két dolog közül egy (vagy valójában a három közül az egyik) fog történni:

  • Semmi nem történik
  • Szép forgó tömböt kap a fénytábla közepén.
  • A világítótábla működik, azt hiszem, de furán néz ki (fele zöld, néhány sor nem világít stb.)

Ha semmi sem történik, vagy ha a panel furcsán néz ki, nyomja meg a ctrl+c billentyűt a mintaprogramból való kilépéshez, kapcsolja ki a pi -t, és ellenőrizze az összes kapcsolatot (IDC -kábel, tápellátás, győződjön meg arról, hogy mindkét tápegység be van dugva, stb.) Győződjön meg arról is, hogy a sapka megfelelően van csatlakoztatva; ha ez nem oldja meg, vegye le az egyik panelhez (a tesztelés során feltétlenül használja az -led-chain 1-et), és nézze meg, hogy az egyik panel rossz-e. Ha EZ nem működik, nézze meg a hzeller hibaelhárítási tippjeit. ha EZ MÉG nem működik, próbálja meg közzétenni a /r /raspberry_pi címen (vagy az Adafruit fórumokon, ha paneleit az Adafruit -tól szerezte be, vagy veremcsere, stb., stb.)

Ha valahogy működik, de mégis furcsán néz ki (talán, mint ennek a résznek a fejlécképe) a kapcsolatok ellenőrzése után, akkor lehetséges, hogy minden megfelelően van csatlakoztatva, a panelek megfelelően működnek, de valami más megy tovább. Ez elvezet minket a multiplexelés és a szkennelési arányok következő lépéséhez - inkább eltérítéshez, mint lépéshez. (Ha a led tábla jól működik, és nem érdekli a panelek belső működése, nyugodtan hagyja ki a következő lépést.)

5. lépés: Multiplexelés és szkennelési arányok (vagy: pillanatnyi eltérítés a sírba vezető úton)

Tehát az egyik hiba, amit elkövettem, amikor megrendeltem az első panelkészletet az Alibabáról, az, hogy szabadtéri paneleket kaptam (gondoltam, miért ne, azt gondoltam - vízállóak és fényesebbek!). És amikor a mátrixkalapomhoz kötöttem őket, a dolgok úgy néztek ki.. nem stimmel.

Ahhoz, hogy megértsük, miért van ez, szánunk egy percet Phil Burgessre az Adafruit leírásából, amely szerint ezek a panelek működnek. Megjegyzi, hogy Burgess rámutat arra, hogy a panelek nem világítják meg egyszerre az összes LED -jüket - sorok halmazát. A panel képpontmagassága és az egyszerre világító sorok közötti kapcsolatot szkennelési sebességnek nevezzük. Például: - 32x32 méretű, 1/16 szkennelésű panelen két sor (1 és 17, 2 és 18, 3 és 19 stb.) Egyszerre világít, egészen a táblán, majd a vezérlő megismétli. Az RGB mátrixokat vezérlő könyvtárak többsége olyan panelekhez készült, ahol a szkennelési arány a képpontok magasságának 1/2 -e - vagyis két sor LED -et vezetnek egyszerre.

A kültéri panelek (és néhány beltéri panel - rendelés előtt nézze meg a specifikációkat) szkennelési sebessége a képpontok magasságának 1/4 -e, ami azt jelenti, hogy négy vonal egyidejű vezetését várják. Ez világosabbá teszi őket (ami jó), de sok szabványos kód nem működik velük (ami rossz). Ezenkívül a pixelek általában nem működnek rendben, ami megköveteli az x és y értékek szoftverben történő átalakítását a megfelelő képpontok kezelésére. Miért készülnek így? Fogalmam sincs. Tudod? Ha igen, kérem, mondja meg. Ellenkező esetben csak rejtélynek kell maradnia.

Tehát, ha rendelkezik ilyen furcsa kültéri panelekkel, akkor (valószínűleg) szerencséje van! hzeller nemrégiben hozzáadta az ilyen típusú panelek általános konfigurációinak támogatását könyvtárához. Erről bővebben a projekt github oldalán olvashat, de átadhatja az félhosszú panelek kettős hosszúságú lánca), és működnie kell.

Vannak azonban olyan képpont -transzformációs minták, amelyeket nem támogatnak - és (gondoljátok mit) a paneleim közül van ilyen! Tehát meg kellett írnom a saját átalakítási kódomat (nekem is - bármilyen okból - meg kell mondanom a könyvtárnak, hogy úgy viselkedjen, mintha nyolc 16x32 -es panelt láncoltam volna össze). ami a következő:

def transzformáció Pixelek (j, k): effJ = j % 32

32. effK = k %

modY = k

modX = j

#modX és modY a módosított X és Y;

#effJ és effK a tolás előtt győződjön meg arról, hogy 32x32 mátrixon belül átalakulunk

ha ((effJ)> 15):

modX = modX + 16

ha ((effK)> 7):

modY = modY - 8

modX = modX + 16

ha ((effK)> 15):

modX = modX - 16

ha ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Ezután toljuk őket a megfelelő helyre (minden x+32 egy panelt mozgat)

ha (j> 31):

modX += 32

ha (j> 63):

modX += 32

ha (j> 95):

modX += 32

return (modX, modY)

Ha van olyan panele, mint az enyém, akkor ez működhet. Ha nem, akkor meg kell írnia a sajátját - szóval, sok sikert és isteni sebességet.

6. lépés: A jobb oldali program (vagy: Vissza a pályára és készen a Pixelre)

Most, hogy a mátrixai működőképesek és indulásra készek, mindössze annyit kell tennie, hogy a jobb oldali programot a Pi -re helyezi, és készen áll a használatra. Győződjön meg róla, hogy a pi felhasználó saját könyvtárában van (cd /home /pi), és futtassa a következő parancsot:

git klón

új mappával kell rendelkeznie, a jobb oldalon, amely három fájlt tartalmaz: LICENSE.md, README.md és starboard_s16.py. Próbálja ki a jobb oldali programot futtatva a pythonon:

sudo python./starboard_s16.py

és kapnia kell egy csomó részecskét, amelyek különböző sebességgel mozognak és különböző sebességgel bomlanak. Körülbelül 10 000 kullancs (ezt a szerkesztést/módosítást a python szkriptben is elvégezheti) módot vált (négy van: RGB, HSV, Rainbow és Greyscale).

Tehát most már csak az a dolgunk, hogy indítsuk el a jobb oldali kódot. Ezt a (sudo segítségével) /etc/rc.local szerkesztéssel tehetjük meg. A következő sort kell hozzáadnia közvetlenül a "exit 0" előtt a szkriptben:

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

Ezt követően indítsa újra a pi -t - amint a rendszerindítási sorrendben fut, a starboard_s16.py parancsfájlnak azonnal el kell indulnia!

Ha a szkriptben szeretne bóklászni, bátran tegye meg - a GNU GPL 3.0 licenc alatt van. Ha a szkript nem fut Önnek, vagy problémái vannak vele, nyugodtan tudassa velem, vagy küldjön be egy hibát a githubon, és meglátom, mit tehetek a javítás érdekében!

Az utolsó dolog, amit érdemes tennie, az SSH beállítása a pi -n, hogy távolról bekapcsolhassa és biztonságosan leállíthassa. Ön / határozottan / szeretné megváltoztatni jelszavát (a passwd paranccsal), és itt talál utasításokat az ssh engedélyezéséhez (szintén a parancssorból).

Ajánlott: