Satura rādītājs:

RGB LED kubs ar Bluetooth lietotni un animāciju Izveidotājs: 14 soļi (ar attēliem)
RGB LED kubs ar Bluetooth lietotni un animāciju Izveidotājs: 14 soļi (ar attēliem)

Video: RGB LED kubs ar Bluetooth lietotni un animāciju Izveidotājs: 14 soļi (ar attēliem)

Video: RGB LED kubs ar Bluetooth lietotni un animāciju Izveidotājs: 14 soļi (ar attēliem)
Video: 8x8x8 LED CUBE WITH ARDUINO UNO 2024, Novembris
Anonim
RGB LED kubs ar Bluetooth lietotni + AnimationCreator
RGB LED kubs ar Bluetooth lietotni + AnimationCreator

Šī ir pamācība, kā izveidot 6x6x6 RGB LED (kopējo anodu) kubu, ko kontrolē Bluetooth lietotne, izmantojot Arduino Nano. Visa konstrukcija ir viegli pielāgojama, piemēram, 4x4x4 vai 8x8x8 kubam. Šo projektu iedvesmojis GreatScott. Es nolēmu izvēlēties sarežģītāku konstrukciju, izmantojot lielākas gaismas diodes (8 mm), ar mazāku attālumu + pievienojot Bluetooth sakarus, kas ievērojami atvieglo jaunu funkciju pievienošanu, kā arī palielina iespēju izveidot lietotni, lai kontrolētu kubu. Tas arī ļauj man piem. kodējiet čūsku spēli (3. vitrīnas video beigās). Papildus tam es pievienoju audio vizualizētāja režīmu, kas ļauj kubam vizualizēt AUX ieeju, piem. Mūzika, izmantojot MSGEQ7 (demonstrējiet video beigās). Turklāt es uzrakstīju AnimationCreator lietojumprogrammu Java ar viegli lietojamu lietotāja saskarni, lai izveidotu un pielāgotu animācijas, lai ikviens varētu ļoti ātri izveidot pielāgotas animācijas. Tātad lietotne Sketch + Bluetooth nodrošina ietvaru jebkurai LED kuba konfigurācijai, un ar Animation Creator jums nav jāuztraucas par pielāgotu animāciju ieviešanu.

Saites uz Arduino skici un Bluetooth lietotni:

RGBCube_Arduino skice (Github)+Animācijas veidotājs.jar

Cubo Bluetooth lietotne (Github)

Kuba detaļu saraksts:

  • 216x RGB LED (parastais anods) (8 mm) (AliExpress / Ebay)-> 6x6x6 = 216
  • Lentes kabelis (pietiek ar 1 m 40 pin) (AliExpress / Ebay / Amazon)
  • Sieviešu un vīriešu galvenes (vismaz 4x40 pin katrā) (AliExpress / Ebay / Amazon)
  • Alvas vara / sudraba stieple 0,8 mm (~ 25 metri) (AliExpress / Ebay / Amazon)
  • Saraušanās caurule (AliExpress / Ebay / Amazon)

Vadības paneļu detaļu saraksts:

  • 7 x TLC5940 LED draiveris (Ebay / AliExpress)
  • 6 x IRF 9540 P kanālu MOSFET (Amazon / Ebay / AliExpress)
  • 8 x 10 uF kondensatori (Amazon / Ebay / AliExpress)
  • 3 x 1000 uF kondensatori (Amazon / Ebay / AliExpress)
  • 14x 2,2 kOhm rezistori (Amazon / Ebay / AliExpress)
  • 1 x 1 kOhm rezistors (Amazon / Ebay / AliExpress)
  • 7 x 28 kontaktu ligzdas (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 diode (jebkura parasta diode) (Amazon / Ebay / AliExpress)
  • 8 x 0.1uF kondensatori (ebay)
  • 1 x DC Jack PCB stiprinājums (Amazon / Ebay / AliExpress)
  • 1 x HC-05 Bluetooth modulis (Amazon / Ebay / AliExpress)

1. solis: teorija

Teorija
Teorija

Ja jūs neinteresē multipleksēšanas teorija, pārejiet uz 2. darbību, lai sāktu faktisko veidošanu

Tā kā aparatūra un programmatūra ir vienlīdz lielas šī projekta daļas, vispirms apskatīsim teoriju.

Kuba smadzenes ir Arduino Nano. Tas nodrošina pietiekami daudz I/O, lai mijiedarbotos ar izmantotajiem LED draiveriem, kā arī izveidotu Bluetooth savienojumu ar moduli HC-05 un citu vadības aparatūru. Ja esat apskatījis citas LED kuba konstrukcijas, jūs zināt, ka lielākā daļa cilvēku izmanto vienkāršus Shift reģistrus, lai saglabātu atsevišķu gaismas diožu krāsu spilgtuma vērtības. Šī būve neizmanto Shift reģistrus, bet tā saucamos "TLC5940" LED draiverus. Kā redzēsim vēlāk, tas mums ietaupa daudz laika, kā arī tonnas papildu aparatūras (piemēram, rezistorus).

Kuba vadības pamatfunkcija izmanto multipleksēšanu. Šajā gadījumā mēs multipleksējam 6 kuba slāņus, kas nozīmē, ka visi slāņa visu gaismas diožu anodi (+) ir savienoti, turpretī visu vienas kolonnas visu LED katodi ir savienoti ar apakšu. Tas nozīmē, ka, ja vēlaties iedegt gaismas diodi pozīcijā x = 1, y = 2, z = 3, krāsa: zaļa, jums ir jānodrošina 5 V pie 3. slāņa anoda un jāpievieno GND kolonnas katodam, kas atbilst Zaļā tapa x = 1, y = 2. Tātad patiesībā vienā brīdī faktiski tiek ieslēgts tikai viens kuba slānis, bet, kā redzēsit vēlāk kodeksā, mēs tik ātri izslēdzam un ieslēdzam atsevišķus slāņus, ka mūsu acs domā, ka viss kubs ir ieslēgts.

Lai kontrolētu tādas lietas kā spilgtums, animācijas un tā tālāk, mēs izmantojam Bluetooth moduli HC-05, kas savienots ar Arduino Nano. Moduļa lietošana ar Arduino ir ļoti vienkārša, jo jums ir nepieciešams tikai 4 kontaktu savienojums, un jūs varat vienkārši saskarties ar moduli, izmantojot Arduino noklusējuma sērijveida saziņu. Šīs pamācības beigās jūs redzēsit, cik viegli ir uzrakstīt savu Bluetooth lietotni, lai kontrolētu kubu.

PIEZĪME

Manā Arduino shēmas shēmas shēmā varat redzēt arī nelielu shēmu MSGEQ7 mikroshēmas procesa audio ieejas saskarnei, tas absolūti nav nepieciešams faktiskajam kubam, un tā ir tikai papildu funkcionalitāte, ko es pievienoju, tāpēc jūs varat vienkārši ignorēt atzīmēto shēmu ar "MSGEQ7"

2. darbība: aparatūra: LED kuba veidošana

Aparatūra: LED kuba veidošana
Aparatūra: LED kuba veidošana
Aparatūra: LED kuba veidošana
Aparatūra: LED kuba veidošana
Aparatūra: LED kuba veidošana
Aparatūra: LED kuba veidošana

Tātad, pirms runājam par vadības ķēdi ap Arduino Nano, apskatīsim, kā izveidot pašu kubu.

Kubu konstrukcijas detaļu saraksts:

  • 216x RGB LED (parastais anods) (AliExpress / Ebay)-> 6x6x6 = 216
  • Lentes kabelis (pietiek ar 1 m 40 pin) (AliExpress / Ebay / Amazon)
  • Sieviešu un vīriešu galvenes (vismaz 4x40 pin) (AliExpress / Ebay / Amazon)
  • Alvas vara / sudraba stieple 0,8 mm (~ 25 metri) (AliExpress / Ebay / Amazon)
  • Saraušanās caurule (AliExpress / Ebay / Amazon)

Pirmā lieta, kas jādara, un tagad es esmu garlaicīga, bet nepieciešama, mums ir jāpārbauda gaismas diodes. Lai to izdarītu, mēs vienkārši pievienojam barošanas bloku, piemēram, 9 V akumulatora bloku ar skavu, breaboardam. Kā redzams 3. Pirms GND pievienošanas katodām krāsām (sarkans, zaļš, zils) katram katodam pievienojiet 220 omu rezistoru, lai ierobežotu strāvu. Tagad izklaidējieties, pārbaudot visas 216 gaismas diodes.

Nākamajā solī mēs sagatavosim pārbaudītās gaismas diodes, lai vēlāk tās varētu viegli salikt kolonnās.

3. solis: LED rindas

LED rindas
LED rindas
LED rindas
LED rindas
LED rindas
LED rindas

Pirms mēs varam lodēt gaismas diodes attiecīgajās rindās, mums ir nepieciešams saliekt un sagriezt vadus.

Kā redzams pirmajā attēlā, es vienkārši koka gabalā izurbju 8 mm caurumu (8 mm gaismas diodēm) un izurbēju 3 ļoti mazus urbjus pa kreisi no LED cauruma un otru pa labi no cauruma. Šie urbji ir marķieri, lai pareizi saliektu vadus, un tiem jābūt apmēram 1 cm attālumā no gaismas diodes atveres vidus.

Šo tehniku iedvesmojis Stīvs Manlijs, vietnē YouTube varat atrast video, kurā viņš to dara nelielās variācijās.

Pirms sagriežat un saliekat vadus ap urbjiem, kā redzams 2. un 3. attēlā, pārliecinieties, vai vadu orientācija atbilst 1. attēlam (zils augšpusē pa kreisi, tad zaļš, pēc tam anods + pa labi un atkal sarkans pa kreisi). Apļa, kuru esat ieliekis vados, diametram jābūt pietiekami lielam, lai tas atbilstu alvas vara stieplei (0,8 mm). Šis solis ievērojami atvieglo jauku LED lodēšanu.

Tagad, kad visas gaismas diodes ir sagatavotas, mēs vēlamies tās salikt 6 rindās, kur ir pievienoti anodi (+):

  1. Izveidojiet nelielu džigu, kā redzams 6. attēlā, izurbiet 6 caurumus (diametrs 0,8 mm) ar 2,5 cm attālumu līdz nākamajam caurumam. Tas ļauj mums džigā vienlaikus ievietot 6 gaismas diodes
  2. Lai savienotu anodus, mums ir nepieciešams taisns tinēts vara stieples gabals ~ 16 cm garumā (ar papildu rezervi). Lai vadu padarītu jauku un taisnu, vienu stieples galu var uzstādīt, piemēram, elektriskā urbjmašīnā, vienlaikus nostiprināt uz galda apmēram 2 m vadu, pēc tam turot urbi tā, lai stieple būtu izstiepta un cieši pievilkta, un ieslēdziet sējmašīnu dažas sekundes ar ļoti ātri iztaisno vadu. Pēc tam jūs varat nogriezt vadu tieši vietā, kur nostiprinājāt gabalu. Varat arī izmantot divus knaibles un vienlaikus pievilkt mazākus stieples gabalus, taču tas ir daudz garlaicīgāk
  3. Kad jums ir 16 cm gari vadi, novirziet tos caur diodes anoda (+) caurumiem un pielodējiet anoda tapas pie stieples (7. attēls)

Visam kubam mums vajadzēs 6x6 = 36 no šīm LED rindām

4. solis: slāņa montāža

Slāņu montāža
Slāņu montāža
Slāņu montāža
Slāņu montāža
Slāņu montāža
Slāņu montāža

Kā jau minēju iepriekš, mēs kubā slāņus multipleksēsim, bet montāžai ir vieglāk uzbūvēt 6 sienas no 6x6 gaismas diodēm un pēc tam salikt tās viena otrai blakus un vienkārši palaist vienu alvas vara stiepli, kas savieno savienojuma anodus. rindas kopā slānī.

Uzmanieties, ka šis solis prasa daudz laika un pacietības, lai to izdarītu pareizi, kopumā būvei būs jāpielodē ap 1000 lodēšanas savienojumu, tāpēc nesteidzieties!

Lai izveidotu LED sienu:

  1. Džigam: lai izveidotu sienu, mums ir nepieciešams koka gabals ar 6 cirsts līnijām, lai tās ietilptu 6 rindas viena virs otras. Džigu var redzēt 2. attēlā (attālumi starp rindām: 2,5 cm)
  2. Jūs ievietojat 6 LED rindas kokgriezumos ar anoda vadu uz leju cirsts līnijā tā, lai 3 katodi (R, G, B) būtu vērsti uz augšu
  3. Lai savienotu katodus, kas novietoti viens virs otra (skat. 2. attēlu), mums ir nepieciešams vēl kāds vads (tātad atkal mēs 6 kolonnas x 3 katodi x 6 sienas = 108 alvas stieples gabali, kā aprakstīts pēdējā solī (2.) (arī tāds pats garums))
  4. Bīdiet stieples gabalus no kolonnas apakšas caur katodu caurumiem līdz augšējai rindai un pielodējiet vadu vietā pie katras gaismas diodes

To darot 6 reizes, lai iegūtu 6 LED gaismas diodes.

Tagad mēs faktiski varam salikt sienas faktiskajā kubā. Bet, lai noturētu kubu, mums jāveido sava veida zemes plakne. Šim nolūkam es vienkārši izmantoju kādu plānu saplāksni un izurbju tajā mazus 0,8 mm caurumus, lai tie atbilstu vadiem, kas karājās no zemākajām LED rindām (visām 6 LED sienām). Viena LED caurumu mērījumi ir dokumentēti 3. solī, un attālumi starp katru LED ir 2,5 cm.

Kad caurumi ir savās vietās, mēs tagad paņemam pirmo sienu un manevrējam to caurumos, kas atrodas saplākšņa kreisajā pusē. Gaismas diodes rindai apakšā vajadzētu sēdēt tieši pie koka, lai galu galā visas sienas būtu vienādas.

Turpiniet darīt to pašu ar pārējām LED sienām, taču atcerieties, ka sienu anodi vienmēr ir vērsti vienā virzienā. (3. attēlā visi sienu anodi ir vērsti pa kreisi)

Kad viss kubs ir ievietots, mums ir jāsalodē katra slāņa anodi. Lai to izdarītu, mēs ņemam vēl ~ 16 cm taisnas stieples gabalu un uzliekam to virs pirmā slāņa tā, lai vads vienā slānī pieskartos visiem 6 sienu anoda vadiem. Uzmanieties, lai jaunais vads nepieskartos nevienam no katodiem. Lodējiet vadu vietā un atkārtojiet to pašu 5 atlikušajiem slāņiem.

5. solis: Kubu elektroinstalācija

LED draivera panelis
LED draivera panelis
LED draivera panelis
LED draivera panelis
LED draivera panelis
LED draivera panelis

LED draivera plates daļas:

  • 7 x TLC5940
  • 6/7 x 10 uF kondensatori
  • 2 x 1000 uF kondensatori
  • 7x 2,2 kOhm rezistori
  • 7 x 28 kontaktu IC ligzdas
  • 7 x 0.1uF kondensatori
  • Lentes kabelis

Pārejot pie vadības shēmām, vispirms apskatīsim LED draivera paneli. Kā minēts iepriekš, mums ir nepieciešami 7 TLC5940, kas savienoti ar Arduino Nano. Visas TLC5940 mikroshēmas ir savienotas ar ķēdi, kas nozīmē, ka visas draiveru vadības tapas ir savstarpēji savienotas (piemēram, pirmā TLC BLANK tapa ir savienota ar otrā, trešā, ceturtā,… TLC BLANK) un visas ir savienotas ar Arduinowith tie paši vadi, izņemot Serial In, kas vispirms ir pievienots no Arduino digitālās tapas pirmajam TLC, tad šīs pirmās TLC sērijas izejas tapa ir savienota ar otrā TLC SIN tapu un tā tālāk (skat. 4. attēlu) …

Tātad TLC dēļa shēma ir diezgan vienkārša, kā jūs varat redzēt pievienotajā shematikā.

(JA JŪS VĒLATIES UZ LĒKT UZ LĪDZEKĻU LĪDZ 8. SOLIEM)

Es pievienoju arī shēmas ekrānuzņēmumu frizzwhich, kas ietver pin etiķetes un arī GIMP.xcf failus ar slāņiem katram Control Pin savienojumam.

Sāciet lodēt visas IC ligzdas savās vietās, pēc tam pievienojiet 100 nF kondensatorus katram TLC, kam seko 2,2 kOhm rezistori IREFand GND un 7 kontaktu galvene augšējā labajā stūrī. Pēc tam varat vienkārši sekot.xcf failam, sākot ar "SIN slāni" Gimp failā, kurā parādīts, kā savienot draiveru sērijas IN/OUT tapas, izmantojot lentes kabeļus, pēc tam iespējojot CLK slāni GIMP un tā tālāk. Pārliecinieties, vai jums ir labi + un - kontaktu savienojumi ar tapas galveni augšējā labajā stūrī. Pārējās shēmas shēmai vajadzētu būt pašsaprotamai, taču pārliecinieties, vai tāfelei pievienojat pietiekami daudz 1000uF un 10uF kondensatoru, tāpēc nav tik svarīgi, kur tieši jūs tos pozicionējat.

Kad šī tāfele ir pabeigta, nākamajā solī varat pāriet uz Arduino dēli.

7. solis: Arduino + Bluetooth vadības panelis

Arduino + Bluetooth vadības panelis
Arduino + Bluetooth vadības panelis

Vadības paneļa daļas:

  • 6 x IRF 9540 P-kanālu MOSFET
  • 1 x 10 uF kondensatori
  • 1 x 1000 uF kondensatori
  • 7 x 2,2 kOhm rezistori
  • 1 x 1 kOhm rezistors
  • 2 x 14 sieviešu tapas galviņa
  • 1 x Arduino Nano
  • 1 x 1N4001 diode
  • 1 x 0.1uF kondensatori
  • 1 x DC Jack PCB stiprinājums
  • 1 x HC-05 Bluetooth modulis
  • 1 x 3,5 mm audio ligzda

Arduino vadības padome galvenokārt apstrādā multipleksēšanu, kā arī nodrošina LED draivera plates tapas galvenes ekvivalentu.

Lodēšana uz perfboard:

  1. Novietojiet divas sieviešu tapas, lai tās darbotos kā ligzda Arduino plāksnes vidū.
  2. Novietojiet 6 MOSFET rindas blakus viens otram Arduino labajā pusē (pusē ar analogo tapām) un pievienojiet 2,2 kOhm rezistoru starp pirmo un pēdējo tapu.
  3. Tagad novietojiet 6 kontaktu galviņu MOSFET (rindas vidū) priekšā un pievienojiet FET 6 DRAIN tapas (vidējā tapa) pie galvenes un FET GATE tapas (kreisā tapa) ar attiecīgajām Arduino analogās tapām..
  4. Pēc tam lodējiet 7 kontaktu galveni LEDDriver savienojumam Arduino otrā pusē, atstājiet vietu kabeļiem un lodējiet visus savienojumus no Arduino līdz tapas galvenei.
  5. Pievienojiet dažus kondensatorus (1-2 1000uF, 1 10uF, 100nF blakus Arduino) iespējamai strāvas novadīšanai.
  6. Lodējiet 4 kontaktu galviņu blakus Arduino aizmugurei HC-05 modulim un izveidojiet 4 savienojumus ar VCC, RX, TX, GND un neaizmirstiet izveidot sprieguma dalītāju no HC-05 un RX tapas. Arduino TX tapa (skat. šeit)
  7. Novietojiet līdzstrāvas ligzdu uz jebkuras plāksnes malas ar slēdzi blakus un pievienojiet slēdža labo tapu līdzstrāvas ligzdas + tapai
  8. Visbeidzot izveidojiet visus nepieciešamos strāvas savienojumus no DC ligzdas GND tapas un slēdža labās tapas (VCC) līdz Arduino, MOSFET, kondensatoriem un HC-05, kā redzams shēmā. Neaizmirstiet pievienot diodi, kas nodrošina jaudu tikai no slēdža VCC tapas, lai ieplūstu Arduinos 5V tapā, nevis otrādi. (Tas aizsargā Arduino, kad to programmē, izmantojot USB savienojumu)

Strāvas savienojumam es izmantoju līdzstrāvas kontaktligzdu ar vienkāršu slēdzi, ja vēlaties, varat izmantot arī USB savienotāju. Strāvas savienotāju uzticēju citai nelielai shēmas platei, lai tā labi iekļautos manā koka korpusā, bet jūs varat to vienkārši ievietot tieši uz Arduino dēļa. Kā minēts pirmajā solī, shēmā ir arī MSGEQ7 savienojuma shēma, bet vienkārši ignorējiet to, ja neizmantojat MSGEQ7. (Lai iegūtu vairāk informācijas par MSGEQ7 funkcionalitāti, noklikšķiniet šeit)

Neaizmirstiet izgatavot vēl vienu 7Pin lentes kabeli ar vīriešu tapu galviņām katrā galā, lai savienotu Arduino plāksni ar vadītāja paneli

8. darbība: pēc izvēles: shēmas plates kodināšana

Pēc izvēles: shēmas plates kodināšana
Pēc izvēles: shēmas plates kodināšana
Pēc izvēles: shēmas plates kodināšana
Pēc izvēles: shēmas plates kodināšana
Pēc izvēles: shēmas plates kodināšana
Pēc izvēles: shēmas plates kodināšana

Tātad, ja jums nepatīk daudz kabeļu lodēšana, protams, varat arī iegravēt nepieciešamās PCB, ja vēlaties.

Manā kubā Arduino plate un barošanas/audio savienotāja plate ir iegravēti dēļi, izmantojot pievienotos shematiskos/EAGLE failus. Pirmo reizi shematiski pieļāvu kļūdu, tāpēc nācās pārtaisīt LED draivera paneli tāpat kā pēdējā solī. Dēļa iegravēšanai, nevis perboard izmantošanai nav milzīgu priekšrocību, tāpēc jūtieties brīvi vai nu kodināt tā dēli, vai pielodēt to uz perfboard.

Pievienotajā.zip failā var atrast gan BOARD, gan SHEMATIC failu.

Ievērojiet, ka augšējā slāņa pēdas (sarkanās) ir jābūt stiepļu tiltiem (jo es nevaru kodināt divpusējus dēļus mājās). Neievadītās pēdas parāda savienojumus, kas jāizveido, izmantojot kabeļus sieviešu tapu galviņām.

Shēmā ir iekļauta funkcija MSGEQ7, kuru varat vienkārši izlaist, izdzēšot shematiskās sadaļas atzīmi "(MSGEQ7)".pdf shēmas ekrānuzņēmumā.

9. darbība: pievienojiet kubu

Kuba savienošana
Kuba savienošana
Kuba savienošana
Kuba savienošana
Kuba savienošana
Kuba savienošana

Lai savienotu visas kuba daļas, vispirms pievienojiet 7 kontaktu kabeli Arduino un vadītāja pultim (pārliecinieties, vai orientācija ir pareiza!). Pēc tam pievienojiet HC05 moduli 4 kontaktu galvenei un pievienojiet barošanas paneli, ja tas ir atdalīts.

Lai savienotu kuba 7x16 kontaktu galvenes, noteikti sāciet ar pirmo TLC (to, kura SIN tapa ir tieši savienota ar Arduino). Atrodiet pareizo 16 kontaktu kabeli no kuba un pievienojiet to pirmā TLC tapas galvenei (pārliecinieties, vai katoda Nr.0 kabelis ir savienots ar pirmo TLC OUT0 tapu!). Turpiniet un pievienojiet pārējos 16 kontaktu kabeļus atbilstošajām TLC galvenēm pareizā secībā.

Visbeidzot, pievienojiet 6Pin kabeli anodiem no kuba līdz 6Pin galvenei vadības panelī blakus MOSFET.

Lai pabeigtu kubu, es korpusam pievienoju sienas ar vēl kādu saplāksni ar melnu krāsu un pielīmēju.

Tagad esam pabeiguši visu aparatūru, kas nepieciešama visai būvei!

10. solis: programmatūra: multipleksēšanas cikls

Programmatūra: multipleksēšanas cikls
Programmatūra: multipleksēšanas cikls

Tagad teorētiski Arduino pastāvīgi veic šādu ciklu:

  1. Ja LayerDuration ir pagājis, ielādējiet nākamā slāņa vērtības TLC, izslēdziet pašreizējo slāni, ieslēdziet nākamo slāni, atiestatiet LayerDuration, piesaistiet jaunās vērtības TLC
  2. Ja FrameDuration ir pagājis, ielādējiet pašreizējās animācijas jauno rāmi, saglabājot visu LED un krāsu vērtības ValueLed buferī, atiestatiet FrameDuration
  3. Ja ir pieejami Bluetooth dati, reaģējiet uz tiem (mainīt animācijas, spilgtumu …) (sīkāka informācija vēlāk)

Kā redzat, galvenais koda uzsvars tiek likts uz ātrumu. Ir svarīgi, lai laiks slāņa maiņai būtu minimāls.

Jo ātrāk ieslēgsit/izslēgsiet slāņus, jo vairāk "rāmju" saņemsiet. šādam 6x6x6 RGB LED kubam es sapratu, ka slāņa ilgums ir 1700 microSec. ir pietiekami labs, lai mirgošana būtu minimāla, un jāatstāj pie šīs vērtības. FrameDuration kontrolē vairāk animācijas ātruma, lai to varētu mainīt dažādām animācijām.

Nākamajā solī mēs apskatīsim, kā mēs patiesībā varam uzrakstīt savas animācijas.

11. darbība: pielāgotas animācijas

Pielāgotas animācijas
Pielāgotas animācijas
Pielāgotas animācijas
Pielāgotas animācijas

Lai ieviestu animāciju, mums katru reizi, kad FrameDuration ir pagājis, jāiestata buferis ValueLed uz vēlamajām vērtībām nākamajā kadrā. Mēs to darām, izsaucot makro funkciju "SETLED (x, y, z, COLOR, Brightness)"

x, y, z ir tās gaismas diodes koordinātas, kuras mēs vēlamies iestatīt, un KRĀSA (SARKANA, ZAĻA vai ZILA) ir krāsa, kuru mēs vēlamies iestatīt, un Spilgtums ir šīs noteiktās krāsas faktiskā vērtība.

Tātad, lai, piemēram, ieviestu animāciju, kas visā kubā vienkārši nejauši parāda sarkanu, zaļu un zilu krāsu, varat to vienkārši izdarīt:

void randomLedsFull () {

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

Šī metode tiek izsaukta katru reizi, kad FrameDuration ir pagājis, un tā tiek atlasīta no komandas switch-case cilpā (). Ja rakstāt jaunas animācijas, varat tās pievienot, vienkārši pievienojot slēdžiem.

12. darbība. Papildu: AnimationCreator

Papildus: AnimationCreator
Papildus: AnimationCreator

Turklāt es uzrakstīju AnimationCreator, izmantojot JavaFX un Java3D.

Tas atvieglo pielāgotu animāciju izveidi un rediģēšanu, nodrošinot viegli saprotamu lietotāja saskarni.

Jūs varat izveidot, rediģēt, pārdēvēt un pārkonfigurēt animācijas 4x4x4, 6x6x6 vai 8x8x8 LED kubiem

Lai izveidotu jaunu animāciju, vienkārši nospiediet Fails> Jauns, sadaļā "Kubs" varat atlasīt kuba izmēru, lai iestatītu gaismas diodes krāsu, atlasiet vēlamo krāsu ar krāsu atlasītāju kreisajā pusē un pēc tam ar peles kreiso taustiņu noklikšķiniet uz vēlamajām gaismas diodēm šī rāmja krāsa. Lai pievienotu vēl vienu kadru, nospiediet "Tālāk" vai "+". Pārējās lietotāja saskarnes vadīklas ir diezgan pašsaprotamas, atzīmējot izvēles rūtiņas blakus kubu slāņiem, ir jāpārbauda, kurus slāņus vajadzētu ietekmēt, pārvietojot un saglabājot rāmi. Vienkārši pārbaudiet to, un jūs visu sapratīsit īsā laikā.

Turklāt, lai simulētu animāciju, varat noklikšķināt uz pogas "Skatīt 3D", kas atver citu logu ar Java 3D kuba modeli. Jūs varat pagriezt kameru, turot nospiestu peles kreiso pogu (nospiediet R, lai atiestatītu kameru). Lai atskaņotu/apturētu animāciju, nospiediet taustiņu P, lai atiestatītu animācijas trāpījumu Q. Teksta lauks zem sadaļas "Skatīt 3D" norāda uz pašreizējo FrameTime, piemēram, jūsu animācijas ātrums.

Kad esat pabeidzis animāciju, piešķiriet tai nosaukumu un nospiediet Fails> Saglabāt kā … un saglabājiet animāciju tajā pašā mapē, kurā atrodas skice Cubo_Control.ino.

Lai skicē iekļautu jaunu animāciju, atveriet vietni Cubo_Control.ino un skices virspusē pievienojiet šādu kodu:

#include "RGBit.h" // Aizstāt

Ritiniet uz leju līdz BTEvent () un pievienojiet gadījuma paziņojumu animāciju pārslēgšanas gadījumam

slēdzis (curAnim) {

… 10. gadījums: animācija = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; pārtraukums; 11. gadījums: // JŪSU JAUNĀ ANIMĀCIJA animācija = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; pārtraukums; }

13. darbība. Bluetooth lietotne

Bluetooth lietotne
Bluetooth lietotne

Lai faktiski kontrolētu kubu, pateicoties HC-05 modulim, ir pavisam vienkārši izveidot Bluetooth lietotni, lai savienotu tālruni ar kubu.

Saite uz lietotni: Github

Lietotne ir atvērtā koda, tāpēc varat brīvi pievienot papildu animācijas/funkcijas.

  • Palaidiet lietotni, tā lūdz ieslēgt Bluetooth
  • Noklikšķiniet uz "Meklēt", un parādās pieejamo Bluetooth savienojumu saraksts. No kuba identificējiet HC-05 moduli un noklikšķiniet uz tā.
  • Ja, mēģinot izveidot savienojumu ar Cube, rodas kļūda, mēģiniet pārī savienot HC-05 moduli Bluetooth iestatījumos manuāli
  • Pēc pievienošanas lietotne pārslēdzas uz vadības ekrānu un ir izveidots Bluetooth savienojums

Vadīklas

  • Ātrums un spilgtums: mainiet slīdņa vērtības, lai paātrinātu/palēninātu animāciju vai mainītu spilgtumu
  • Animācijas: noklikšķiniet uz pogas, lai mainītu animāciju, pēc noklusējuma animācijas tiek atkārtotas (sākot ar augšējo kreiso pogu, poga atbilst currAnim)
  • Teksta ritināšana: noklikšķiniet uz pogas "Teksts", kas parāda dialoglodziņu, lai ievadītu tekstu, kas tiks ritināts pa kubu
  • Komanda: Jūs varat ievadīt komandas manuāli, izmantojot komandu TextField (skatiet sintaksi Cubo_Control.ino BTEvent () metodē)
  • Čūska: klasiskā čūsku spēle (sarkana: ābols, zaļa: čūskas galva, zila: ielīst aste) (vadīklas: 4 virziena pogas, uz augšu un uz leju tiek iedarbināta, pagriežot tālruni uz priekšu (uz augšu) vai atpakaļ (uz leju))
  • Audio vizualizators: MSGEQ7 izmanto, lai vizualizētu 6 audio joslas no AUX ligzdas (poga animācijai 7)

14. darbība: demonstrēšana

Ieteicams: