Tartalomjegyzék:

RGB LED kocka Bluetooth alkalmazással és animációval Készítő: 14 lépés (képekkel)
RGB LED kocka Bluetooth alkalmazással és animációval Készítő: 14 lépés (képekkel)

Videó: RGB LED kocka Bluetooth alkalmazással és animációval Készítő: 14 lépés (képekkel)

Videó: RGB LED kocka Bluetooth alkalmazással és animációval Készítő: 14 lépés (képekkel)
Videó: Laura és Norman 2024, November
Anonim
RGB LED kocka Bluetooth alkalmazással + AnimationCreator
RGB LED kocka Bluetooth alkalmazással + AnimationCreator

Ez egy tanulságos, hogyan lehet 6x6x6 RGB LED (Common Anodes) kockát építeni egy Bluetooth -alkalmazás segítségével, Arduino Nano segítségével. Az egész felépítés könnyen adaptálható mondjuk 4x4x4 vagy 8x8x8 kockákhoz. Ezt a projektet a GreatScott ihlette. Úgy döntöttem, hogy kifinomultabb konstrukciót választok nagyobb LED -ek (8 mm) használatával, kisebb távolsággal + Bluetooth -kommunikáció hozzáadásával, ami sokkal könnyebbé teszi az új funkciók hozzáadását, és növeli az alkalmazást a kocka vezérléséhez. Ez lehetővé teszi számomra azt is, hogy pl. kódoljon egy kígyójátékot (3. bemutató videó a végén). Ezen felül hozzáadtam egy Audio Visualizer módot, amely lehetővé teszi a kocka számára, hogy megjelenítse az AUX bemenetet, pl. Zene MSGEQ7 használatával (bemutató videó a végén). Ezenkívül írtam egy AnimationCreator alkalmazást Java nyelven, egy könnyen kezelhető felhasználói felülettel animációk létrehozására és módosítására, hogy bárki nagyon gyorsan elkészíthesse az egyéni animációkat. A Sketch + Bluetooth alkalmazás tehát keretet biztosít minden LED -kocka konfigurációhoz, és az Animation Creator segítségével nem kell aggódnia az egyéni animációk végrehajtása miatt.

Linkek az Arduino Sketch és Bluetooth alkalmazáshoz:

RGBCube_Arduino Sketch (Github)+Animation Creator.jar

Cubo Bluetooth alkalmazás (Github)

A kocka alkatrészlistája:

  • 216x RGB LED (közös anód) (8 mm) (AliExpress / Ebay)-> 6x6x6 = 216
  • Szalagkábel (1 m 40 tűnek elegendőnek kell lennie) (AliExpress / Ebay / Amazon)
  • Női és férfi fejlécek (egyenként legalább 4x40 tű) (AliExpress / Ebay / Amazon)
  • Ónozott réz / ezüst huzal 0,8 mm (~ 25 méter) (AliExpress / Ebay / Amazon)
  • Zsugorcső (AliExpress / Ebay / Amazon)

A vezérlőpanelek alkatrészlistája:

  • 7 x TLC5940 LED illesztőprogram (Ebay / AliExpress)
  • 6 db IRF 9540 P-csatornás MOSFET (Amazon / Ebay / AliExpress)
  • 8 x 10 uF kondenzátor (Amazon / Ebay / AliExpress)
  • 3 x 1000 uF kondenzátor (Amazon / Ebay / AliExpress)
  • 14x 2,2 kOhm ellenállás (Amazon / Ebay / AliExpress)
  • 1 x 1 kOhm ellenállás (Amazon / Ebay / AliExpress)
  • 7 x 28 tűs IC aljzat (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 dióda (bármilyen közös dióda) (Amazon / Ebay / AliExpress)
  • 8 x 0,1uF kondenzátor (Ebay)
  • 1 x DC Jack NYÁK -tartó (Amazon / Ebay / AliExpress)
  • 1 x HC-05 Bluetooth modul (Amazon / Ebay / AliExpress)

1. lépés: Elmélet

Elmélet
Elmélet

Ha nem érdekli a multiplexelés elmélete, akkor ugorjon a 2. lépésre a tényleges építés megkezdéséhez

Mivel a hardver és a szoftver egyformán nagy részét képezi ennek a projektnek, először nézzük meg az elméletet.

A kocka agya egy Arduino Nano. Elegendő I/O kapcsolatot biztosít a használt LED-illesztőprogramokkal, valamint Bluetooth-kapcsolatot létesít egy HC-05 modullal és más vezérlő hardverekkel. Ha más LED kocka konstrukciókat nézett meg, akkor tudja, hogy a legtöbb ember egyszerű Shift regisztereket használ az egyes LED -ek színeinek fényerősségének tárolására. Ez a build nem használ Shift regisztereket, hanem úgynevezett "TLC5940" LED meghajtókat. Amint később látni fogjuk, ez sok időt takarít meg, valamint rengeteg további hardvert (pl. Ellenállásokat).

A kocka vezérlésének alapvető funkciói multiplexelést használnak. Ebben az esetben a kocka 6 rétegét multiplexeljük, ami azt jelenti, hogy a réteg összes LED -jének minden anódja (+) össze van kötve, míg az oszlopban lévő összes LED egyedi katódja alul van. Ez azt jelenti, hogy ha meg szeretné világítani a LED -et az x = 1, y = 2, z = 3, szín: zöld helyzetben, akkor 5 V feszültséget kell biztosítania a 3. réteg anódján, és csatlakoztatnia kell a GND -t az oszlop katódjához. Zöld pin x = 1, y = 2. Tehát a valóságban egy adott időpontban a kocka csak egy rétege van bekapcsolva, de amint a Kódex későbbi részében látni fogjuk, olyan gyorsan kapcsoljuk ki és kapcsoljuk be az egyes rétegeket, hogy a szemünk azt hiszi, hogy az egész kocka be van kapcsolva.

A fényerő, az animációk és így tovább vezérléséhez az Arduino Nano-hoz csatlakoztatott HC-05 Bluetooth modult használunk. Nagyon egyszerű használni a modult Arduino-val, mivel csak 4 tűs kapcsolatra van szüksége, és egyszerűen csatlakoztathatja a modult az Arduino alapértelmezett soros-kommunikációs rendszeren keresztül. Ennek az utasításnak a vége felé látni fogja, milyen könnyű saját Bluetooth -alkalmazást írni a kocka vezérléséhez.

JEGYZET

Az Arduino áramköri áramköri rajzomban egy kis vázlatot is láthat az MSGEQ7 chip audio process bemenetének összekapcsolására, ez egyáltalán nem szükséges a tényleges kockához, és csak egy kiegészítő funkció, amelyet hozzáadtam, ezért egyszerűen figyelmen kívül hagyhatja a "MSGEQ7" segítségével

2. lépés: Hardver: LED kocka felépítése

Hardver: LED Cube Build
Hardver: LED Cube Build
Hardver: LED Cube Build
Hardver: LED Cube Build
Hardver: LED Cube Build
Hardver: LED Cube Build

Tehát nézzük meg, hogyan kell felépíteni a kockát, mielőtt az Arduino Nano körüli vezérlő áramkörről beszélünk.

A kocka konstrukciójának alkatrészlistája:

  • 216x RGB LED (közös anód) (AliExpress / Ebay)-> 6x6x6 = 216
  • Szalagkábel (1 m 40 tűnek elegendőnek kell lennie) (AliExpress / Ebay / Amazon)
  • Női és férfi fejlécek (legalább 4x40pin) (AliExpress / Ebay / Amazon)
  • Ónozott réz / ezüst huzal 0,8 mm (~ 25 méter) (AliExpress / Ebay / Amazon)
  • Zsugorcső (AliExpress / Ebay / Amazon)

Az első dolog, és most már unalmas, de szükséges, meg kell vizsgálnunk a LED -eket. Ehhez egyszerűen csatlakoztassunk egy tápegységet, pl. Amint a 3. képen látható, a LED -ek leghosszabb csapja az anód (+), így ezt a csapot az akkumulátor +9 V -os csatlakozójához kell csatlakoztatni. Mielőtt a GND -t az egyes színekhez csatlakoztatná, katódok (piros, zöld, kék), adjon hozzá 220 ohmos ellenállást minden katódhoz, hogy korlátozza az áramot. Most szórakozzon a 216 LED összes színének tesztelésével.

A következő lépésben előkészítjük a tesztelt LED -eket, hogy később könnyen össze tudjuk őket rakni oszlopokba.

3. lépés: LED sorok

LED sorok
LED sorok
LED sorok
LED sorok
LED sorok
LED sorok

Mielőtt a LED -eket a megfelelő sorokba forraszthatnánk, meg kell hajlítani és vágni kell a vezetékeket.

Amint az első képen látható, egyszerűen fúrtam egy 8 mm -es lyukat (8 mm -es LED -ekhez) egy fadarabba, és 3 nagyon kis fúrót fúrtam a LED -lyuk bal oldalán, egy másikat pedig a lyuk jobb oldalán. Ezek a fúrók jelölik a vezetékek megfelelő hajlítását, és körülbelül 1 cm távolságra kell lenniük a LED -es furat közepétől.

Ezt a technikát Steve Manley ihlette, a YouTube -on egy kis variációban talál róla videót.

Mielőtt elvágná és meghajlítaná a vezetékeket a fúrók körül, amint az a 2. és 3. képen látható, győződjön meg arról, hogy a vezetékek tájolása megfelel az 1. képnek (kék a bal felső, majd a zöld, majd az anód + a jobb oldalon, és megint piros maradt). A körnek, amelyet a vezetékekbe hajlított, elég nagy átmérőjűnek kell lennie ahhoz, hogy illeszkedjen az ónozott rézhuzalhoz (0,8 mm). Ez a lépés nagyszerűen megkönnyíti a LED -ek szép forrasztását.

Most, hogy az összes LED elő van készítve, szeretnénk azokat 6 -os sorokban összeállítani, ahol az anódok (+) csatlakoztatva vannak:

  1. Építsen egy kis szúrót a 6. képen látható módon, fúrjon 6 lyukat (0,8 mm átmérőjű) 2,5 cm távolságra a következő furathoz. Ez lehetővé teszi számunkra, hogy egyszerre 6 LED -et illesszünk a jigbe
  2. Az anódok csatlakoztatásához egyenes, ónozott, ~ 16 cm hosszú rézhuzaldarabra van szükség (némi extra tartalékkal). Ahhoz, hogy a huzal szép és egyenes legyen, a huzal egyik végét rögzítheti pl. Elektromos fúrógépbe, rögzítse egyszerre körülbelül 2 m huzalt az asztalra, majd tartsa a fúrót úgy, hogy a huzal feszes és feszes legyen, és kapcsolja be a fúrót néhány másodpercig nagyon gyorsan kiegyenesíti a vezetéket. Ezután elvághatja a vezetéket ott, ahol rögzítette a darabot. Két fogót is használhat, és egyszerre meghúzhatja a kisebb drótdarabokat, de ez sokkal unalmasabb
  3. Miután megvan a 16 cm hosszú huzal, vezesse át a LED -ek anódon (+) lévő lyukain, és forrasztja az anódcsapokat a huzalra (7. kép)

A teljes kockához 6x6 = 36 LED sorra lesz szükségünk

4. lépés: Rétegszerelés

Rétegszerelés
Rétegszerelés
Rétegszerelés
Rétegszerelés
Rétegszerelés
Rétegszerelés

Amint már említettem, multiplexeljük a kocka rétegeit, de az összeszereléshez könnyebb 6 db 6x6 LED -es falat építeni, majd egymás mellé szerelni, és egyszerűen egyetlen ónozott rézhuzalt futtatni sorban egy rétegben.

Vigyázzon, hogy ez a lépés sok időt és türelmet igényel a helyes elvégzéséhez, összesen körülbelül 1000 forrasztási kötést kell forrasztani az építéshez, ezért szánjon időt!

LED fal építése:

  1. A jighez: Egy fa darabra van szükségünk, 6 faragott vonallal, hogy illeszkedjünk 6 sorba egymás fölé a fal építéséhez. Maga a jig látható a 2. képen (sorok közötti távolság: 2,5 cm)
  2. A 6 sor LED -et illeszti a faragványokba, az anódhuzal lefelé a faragott vonalba úgy, hogy a 3 katód (R, G, B) felfelé nézzen
  3. Az egymás fölött elhelyezett katódok összekapcsolásához (lásd a 2. ábrát) több vezetékre van szükségünk (tehát ismét 6 oszlop x 3 katód x 6 fal = 108 ónozott huzaldarab az utolsó lépésben leírtak szerint (2.) (ugyanolyan hosszú))
  4. Csúsztassa a huzaldarabokat az oszlop aljáról a katódok lyukain keresztül a felső sorba, és forrasztja a vezetéket a helyére minden LED -nél

Ezt 6 -szor végezheti el, hogy 6 fal LED -t kapjon.

Most tulajdonképpen össze tudjuk szerelni a falakat a tényleges kockába. A kocka megtartásához azonban valamilyen földi síkot kell felépítenünk. Ehhez egyszerűen vékony rétegelt lemezt használtam, és kis 0,8 mm -es lyukakat fúrtam bele, hogy illeszkedjek a legalacsonyabb LED -sorokról függő vezetékekhez (mind a 6 LED -falhoz). Az egyetlen LED lyukainak méréseit a 3. lépés dokumentálja, és az egyes LED -ek közötti távolság 2,5 cm.

Ha a lyukak a helyükön vannak, most fogjuk az első falat, és manőverezzük be a rétegelt lemez bal oldalán található lyukakba. Az alján lévő LED -sornak közvetlenül a fán kell elhelyezkednie, hogy a végén minden fal azonos legyen.

Folytassa ugyanezt a LED -es fal többi részével is, de ne feledje, hogy a falak anódjai mindig ugyanabba az irányba néznek. (a 3. képen a falak összes anódja balra néz)

Miután a teljes kocka a helyén van, össze kell forrasztanunk az egyes rétegek anódjait. Ehhez további ~ 16 cm -es egyenes drótot veszünk, és az első réteg tetejére fektetjük, úgy, hogy a huzal egy rétegben érintse meg a 6 fal összes anód vezetékét. Ügyeljen arra, hogy az új vezeték ne érintse meg a katódokat. Forrasztja a vezetéket a helyére, és ismételje meg ugyanezt az 5 fennmaradó réteggel.

5. lépés: A kocka bekötése

LED meghajtó tábla
LED meghajtó tábla
LED meghajtó tábla
LED meghajtó tábla
LED meghajtó tábla
LED meghajtó tábla

A LED meghajtó panel alkatrészei:

  • 7 x TLC5940
  • 6/7 x 10 uF kondenzátorok
  • 2 x 1000 uF kondenzátor
  • 7x 2,2 kOhm ellenállás
  • 7 x 28 tűs IC aljzat
  • 7 x 0,1uF kondenzátor
  • Szalagkábel

A vezérlőáramkörökre áttérve először tekintsük át a LED meghajtó táblát. Amint korábban említettük, 7 TLC5940 szükséges az Arduino Nano -hoz. Az összes TLC5940 chip láncra van kötve, ami azt jelenti, hogy az illesztőprogramok összes vezérlőcsapja össze van kötve (pl. Az első TLC BLANK csapja a második, harmadik, negyedik,… TLC BLANK -hoz van csatlakoztatva), és mindegyik az Arduinowith -hez van csatlakoztatva ugyanazok a vezetékek, kivéve a soros bemenetet, amelyet először az Arduino digitális tűről az első TLC -hez csatlakoztatnak, majd ennek az első TLC -nek a soros kimeneti érintkezőjét a második TLC SIN -érintkezőjéhez és így tovább (lásd a 4. ábrát) …

Tehát a TLC Board vázlata meglehetősen egyszerű, amint azt a mellékelt sematikus ábrán láthatja.

(HA A TÁBLÁZAT UGRÁSÁT VÁRNI A 8. LÉPÉSRE)

Csatoltam egy képernyőképet is a sémából, amely pin címkéket és GIMP.xcf fájlokat tartalmaz, rétegekkel minden Control Pin kapcsolathoz.

Kezdje az összes IC aljzat forrasztásával, majd a 100 nF kondenzátorok hozzáadásával minden TLC -hez, majd a 2,2 kOhm -os ellenállást az IREFand GND -hez és a 7 tűs fejlécet a jobb felső sarokban. Ezt követően egyszerűen követheti az.xcf fájlt kezdve a "SIN réteggel" a Gimp fájlban, amely bemutatja, hogyan kell csatlakoztatni az illesztőprogramok soros IN/OUT csapjait szalagkábelek segítségével, majd engedélyezve a CLK réteget a GIMP -ben és így tovább. Győződjön meg arról, hogy a + és - csapok jól vannak összekötve a jobb felső sarokban lévő csapfejjel. A vázlat többi részének magától értetődőnek kell lennie, de győződjön meg arról, hogy elegendő 1000uF és 10uF kondenzátort ad a táblához, nem annyira fontos, hogy pontosan hol elhelyezed őket.

Miután ez a tábla elkészült, a következő lépésben továbbléphet az Arduino táblára.

7. lépés: Arduino + Bluetooth vezérlőpult

Arduino + Bluetooth vezérlőpult
Arduino + Bluetooth vezérlőpult

A vezérlőpult alkatrészei:

  • 6 db IRF 9540 P-csatornás MOSFET
  • 1 x 10 uF kondenzátor
  • 1 x 1000 uF kondenzátor
  • 7 x 2,2 kOhm ellenállás
  • 1 x 1 kOhm ellenállás
  • 2 x 14 hüvelyes tűfej
  • 1 x Arduino Nano
  • 1 x 1N4001 dióda
  • 1 x 0,1uF kondenzátor
  • 1 x DC Jack NYÁK -tartó
  • 1 x HC-05 Bluetooth modul
  • 1 x 3,5 mm -es audio jack

Az Arduino vezérlőpult elsősorban a multiplexelést kezeli, valamint a LED meghajtó kártya csapfejének megfelelőjét biztosítja.

Forrasztás perfboardon:

  1. Helyezzen két női Pin fejlécet az Arduino aljzataként a tábla közepére.
  2. Tegye a 6 MOSFET -et egymás mellé az Arduino jobb oldalára (az analóg érintkezőkkel ellátott oldalra), és adjon hozzá 2,2 kOhm -os ellenállást az első és az utolsó tű közé.
  3. Most helyezze a 6 tűs fejlécet a MOSFET -ek elé (a sor közepére), és csatlakoztassa a FET -ek 6 DRAIN csapját (középső csap) a fejrészhez, és a FET -ek GATE csapjait (bal tű) a megfelelő Arduino analóg csapokhoz..
  4. Ezután forrasztja a 7 tűs fejlécet a LEDDriver csatlakozáshoz az Arduino másik oldalán, hagyjon némi helyet a kábeleknek, és forrasztja fel az összes csatlakozást az Arduino és a csapfej között.
  5. Adjon hozzá néhány kondenzátort (1-2 1000uF, 1 10uF, 100nF az Arduino mellett) a lehetséges áramleeresztésekhez.
  6. Forrasztjon egy 4 tűs fejlécet az Arduino hátsó oldala mellé a HC-05 modulhoz, és végezze el a 4 csatlakozást a VCC, RX, TX, GND-hez, és ne felejtse el feszültségmegosztót készíteni a HC-05 és az Arduino TX csapja (lásd itt)
  7. Helyezze a DC jack aljzatot a tábla bármely szélére úgy, hogy a kapcsoló mellett van, és csatlakoztassa a kapcsoló jobb oldali érintkezőjét a DC Jack + tűjéhez.
  8. Végül végezze el az összes szükséges tápcsatlakozást a DC Jack GND csapjától és a kapcsoló jobb oldali érintkezőjétől (VCC) az Arduino-hoz, a MOSFET-ekhez, a kondenzátorokhoz és a HC-05-hez, ahogy az az ábrán látható. Ne felejtse el hozzáadni a diódát, amely csak a kapcsoló VCC tűjéről biztosítja az áramot, hogy az Arduinos 5V -os érintkezőjébe áramoljon, és nem a másik irányba. (Ez megvédi az Arduino -t, amikor USB -kapcsolaton keresztül programozza)

A tápcsatlakozáshoz egyenáramú tápcsatlakozót használtam egy egyszerű kapcsolóval, ha akar, használhat USB -csatlakozót is. A tápcsatlakozót egy másik kis áramköri lapra bíztam, hogy jól illeszkedjen a fa tokomba, de egyszerűen elhelyezheti az Arduino táblára. Amint az első lépésben említettük, a vázlatban van egy MSGEQ7 csatlakozási áramkör is, de egyszerűen figyelmen kívül hagyja ezt, ha nem használ MSGEQ7 -et. (Ha többet szeretne megtudni az MSGEQ7 funkcióiról, kattintson ide)

Ne felejtse el elkészíteni egy másik 7 tűs szalagkábelt, mindkét végén dugófejjel az Arduino kártya és a meghajtó tábla csatlakoztatásához

8. lépés: Opcionális: Az áramköri lapok maratása

Opcionális: Az áramköri lapok maratása
Opcionális: Az áramköri lapok maratása
Opcionális: Az áramköri lapok maratása
Opcionális: Az áramköri lapok maratása
Opcionális: Az áramköri lapok maratása
Opcionális: Az áramköri lapok maratása

Tehát ha nem szeret sok kábelt forrasztani, akkor természetesen a szükséges NYÁK -t is marathatja, ha úgy tetszik.

Az én kockámban az Arduino kártya és a Power/Audio csatlakozó kártya egyaránt maratott tábla a mellékelt sematikus/EAGLE fájlok használatával. Az első alkalommal hibáztam a sematikus ábrán, így újra kellett csinálnom a LED meghajtó táblát, mint az utolsó lépésben. Nincs nagy előnye a lemez maratásának a perboard használata helyett, ezért bátran vagy marathatja a táblát, vagy forraszthatja a perboardra.

A mellékelt.zip fájlban megtalálható egy BOARD és egy SCHEMATIC fájl is.

Vegye figyelembe, hogy a felső réteg nyomai (pirosak) dróthidak (feltételezem, hogy otthon nem tudok maratni kétoldalas táblákat). Az elvezetetlen nyomvonalak bemutatják a csatlakozóelemeket, amelyeket a női csapok csatlakozóinak kábelein keresztül kell létrehozni.

A vázlat tartalmazza az MSGEQ7 szolgáltatást, amelyet egyszerűen kihagyhat, ha törli a.pdf sematika képernyőképén a "(MSGEQ7)" jelű sematikus részt.

9. lépés: A kocka csatlakoztatása

A kocka csatlakoztatása
A kocka csatlakoztatása
A kocka csatlakoztatása
A kocka csatlakoztatása
A kocka csatlakoztatása
A kocka csatlakoztatása

A kocka összes alkatrészének csatlakoztatásához először csatlakoztassa a 7 tűs kábelt az Arduino táblához és a meghajtó táblához (győződjön meg arról, hogy a tájolás helyes!). Ezután csatlakoztassa a HC05 modult a 4 tűs csatlakozóhoz, és csatlakoztassa a tápegységet, ha külön van.

A kocka 7x16 tűs fejléceinek csatlakoztatásához győződjön meg arról, hogy az első TLC -vel kezdi (azzal, amelynek SIN csapja közvetlenül az Arduino -hoz van csatlakoztatva). Keresse meg a megfelelő 16 tűs kábelt a kockából, és csatlakoztassa az első TLC tűfejlécéhez (győződjön meg arról, hogy a 0 -ás katód kábele csatlakozik az első TLC OUT0 tűhöz!). Folytassa, és csatlakoztassa a többi 16 tűs kábelt a megfelelő sorrendben a megfelelő TLC fejlécekhez.

Végül, de nem utolsó sorban csatlakoztassa a 6Pin kábelt az anódokhoz a kockából a 6Pin fejléchez a vezérlőpulton a MOSFET -ek mellett.

A kocka befejezéséhez falakat tettem hozzá a tokhoz, még néhány rétegelt lemezzel, fekete festékkel, és ragasztottam őket.

Most elkészültünk a teljes kivitelezéshez szükséges hardverrel!

10. lépés: Szoftver: multiplexelési ciklus

Szoftver: Multiplexelési ciklus
Szoftver: Multiplexelési ciklus

Most elméletileg az Arduino folyamatosan hajtja végre a következő ciklust:

  1. Ha a LayerDuration eltelt, töltse be a következő réteg értékeit a TLC -kbe, kapcsolja ki az aktuális réteget, kapcsolja be a következő réteget, állítsa vissza a LayerDuration -t, és kötelezze az új értékeket a TLC -re
  2. Ha a FrameDuration lejárt, töltse be az aktuális animáció új keretét úgy, hogy az összes LED és szín értékeit a ValueLed pufferben tárolja, állítsa vissza a FrameDuration értéket
  3. Ha rendelkezésre állnak Bluetooth adatok, reagáljon rájuk (Animációk módosítása, Fényerő…) (további információ később)

Mint látható, a kód fő hangsúlya a sebesség. Fontos, hogy a Réteg megváltoztatásának ideje minimális legyen.

Minél gyorsabban kapcsolja be/ki a rétegeket, annál több „keretet” kap. egy ilyen 6x6x6 RGB LED kocka esetében rájöttem, hogy a réteg időtartama 1700 microSec. elég jó ahhoz, hogy a villogás minimális legyen, és ezt az értéket kell hagyni. A FrameDuration nagyobb mértékben szabályozza az animáció sebességét, így az különböző animációkhoz módosítható.

A következő lépésben megvizsgáljuk, hogyan írhatjuk meg saját animációinkat.

11. lépés: Egyéni animációk

Egyéni animációk
Egyéni animációk
Egyéni animációk
Egyéni animációk

Animáció megvalósításához minden alkalommal, amikor a FrameDuration eltelt, a ValueLed puffert a következő képkockához szükséges értékekre kell állítanunk. Ezt úgy tehetjük meg, hogy meghívjuk a makró függvényt "SETLED (x, y, z, COLOR, Brightness)"

x, y, z a beállítani kívánt LED koordinátái, a SZÍN (PIROS, ZÖLD vagy KÉK) pedig a beállítani kívánt szín, a Fényerő pedig a beállított szín tényleges értéke.

Így például egy olyan animáció megvalósításához, amely egyszerűen véletlenszerűen jeleníti meg a vörös, zöld és kék színt a teljes kockán, egyszerűen tegye ezt:

void randomLedsFull () {

for (uint8_t j = 0; j <CUBE_SIZE; j ++) {for (uint8_t x = 0; x <CUBE_SIZE; x ++) {for (uint8_t y = 0; y <CUBE_SIZE; y ++) {uint8_t rand = random8 (3); SETLED (x, y, j, rand, maxBright); }}}}

Ezt a módszert minden alkalommal meghívják, amikor a FrameDuration eltelt, és a loop () kapcsoló-parancsból választják ki. Ha új animációkat ír, egyszerűen hozzáadhatja őket a kapcsolótokhoz.

12. lépés: További: AnimationCreator

További: AnimationCreator
További: AnimationCreator

Ezenkívül írtam egy AnimationCreatort JavaFX és Java3D használatával.

Nagyon egyszerűvé teszi az egyéni animációk létrehozását és szerkesztését azáltal, hogy könnyen érthető felhasználói felületet biztosít.

Létrehozhat, szerkeszthet, átnevezhet és újra konfigurálhat animációkat 4x4x4, 6x6x6 vagy 8x8x8 LED kockákhoz

Új animáció létrehozásához egyszerűen nyomja meg a Fájl> Új gombot, a "Kocka" alatt kiválaszthatja a kocka méretét, a LED színének beállításához válassza ki a kívánt színt a bal oldali Színválasztóval, majd kattintson bal egérgombbal a kívánt LED -ekre ezt a színt ehhez a kerethez. Újabb keret hozzáadásához nyomja meg a "Tovább" vagy a "+" gombot. A többi kezelőfelület vezérlőeleme teljesen magától értetődő, a kockák rétegei melletti jelölőnégyzetek ellenőrzik, hogy mely rétegeket érinti az eltolás és a "Keret megtartása". Csak próbálja ki, és rövid időn belül mindent kitalál.

Az animáció szimulálásához kattintson a "3D nézet" gombra, amely megnyit egy másik ablakot a kocka Java3D modelljével. Elforgathatja a kamerát, miközben lenyomva tartja a bal egérgombot (nyomja meg az R gombot a kamera alaphelyzetbe állításához). Az Animáció lejátszásához/szüneteltetéséhez nyomja meg a P gombot, az Animációs találat visszaállításához Q. A "3D nézet" alatti szövegmező azonban jelzi az aktuális FrameTime, tehát az animáció sebessége.

Ha elkészült az animációval, adjon neki egy nevet, majd nyomja meg a Fájl> Mentés másként… gombot, és mentse az animációt a Cubo_Control.ino Sketch mappájába.

Ha új animációt szeretne felvenni a vázlatba, nyissa meg a Cubo_Control.ino webhelyet, és adja hozzá a következő kódot a vázlat tetejéhez:

#include "RGBit.h" // Csere

Görgessen le a BTEvent () elemhez, és adjon hozzá kis- és nagybetűket az animációk kapcsolóbetűihez

kapcsoló (curAnim) {

… 10. eset: animation = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; szünet; 11. eset: // AZ ÚJ ANIMÁCIÓD animáció = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; szünet; }

13. lépés: Bluetooth -alkalmazás

Bluetooth alkalmazás
Bluetooth alkalmazás

A Cube tényleges vezérléséhez a HC-05 modulnak köszönhetően meglehetősen egyszerű Bluetooth alkalmazást létrehozni a telefon és a kocka csatlakoztatásához.

Link az alkalmazáshoz: Github

Az alkalmazás nyílt forráskódú, így bátran adhat hozzá további animációkat/funkciókat.

  • Indítsa el az alkalmazást, és kéri, hogy kapcsolja be a Bluetooth funkciót
  • Kattintson a "Keresés" gombra, és megjelenik az elérhető Bluetooth -kapcsolatok listája. Azonosítsa a HC-05 modult a kockából, és kattintson rá.
  • Ha hiba történt a Cube-hoz való csatlakozáskor, próbálja meg manuálisan párosítani a HC-05 modult a Bluetooth-beállításokban
  • A csatlakoztatás után az alkalmazás átkapcsol a vezérlőképernyőre, és létrejött a Bluetooth -kapcsolat

Vezérlők

  • Sebesség és fényerő: A csúszka értékeinek megváltoztatásával gyorsíthatja/lassíthatja az animációt, vagy módosíthatja a fényerőt
  • Animációk: Kattintson egy gombra az animáció megváltoztatásához, alapértelmezés szerint az animációk ciklusban vannak (A bal felső sarokban kezdődő gomb a currAnim -nek felel meg)
  • Szöveg görgetése: Kattintson a "Szöveg" gombra, amely megjeleníti a párbeszédpanelt, hogy bevigyen néhány szöveget, amelyet a kockán keresztül görget.
  • Parancs: A parancsokat manuálisan is megadhatja a Command TextField segítségével (a szintaxishoz keresse meg a Cubo_Control.ino BTEvent () metódusát)
  • Kígyó: klasszikus kígyójáték (piros: alma, zöld: kígyófej, kék: besurranó farok) (Vezérlők: 4 iránygomb, Fel és Le a telefon előre (fel) vagy hátra (le) forgatásával váltható ki
  • Audiovizualizátor: Az MSGEQ7 6 audio sáv megjelenítésére szolgál az AUX Jack -ről (7 -es animációs gomb)

14. lépés: Bemutató

Ajánlott: