Turinys:

RGB LED kubas su „Bluetooth“programa ir animacija Kūrėjas: 14 žingsnių (su paveikslėliais)
RGB LED kubas su „Bluetooth“programa ir animacija Kūrėjas: 14 žingsnių (su paveikslėliais)

Video: RGB LED kubas su „Bluetooth“programa ir animacija Kūrėjas: 14 žingsnių (su paveikslėliais)

Video: RGB LED kubas su „Bluetooth“programa ir animacija Kūrėjas: 14 žingsnių (su paveikslėliais)
Video: Smart Light Wireless Fast Charger Bluetooth Speaker for iPhone Samsung Mobile Phone Dock Station 2024, Gruodis
Anonim
RGB LED kubas su „Bluetooth“programa ir „AnimationCreator“
RGB LED kubas su „Bluetooth“programa ir „AnimationCreator“

Tai yra instrukcija, kaip sukurti 6x6x6 RGB LED (bendrųjų anodų) kubą, valdomą „Bluetooth“programėle naudojant „Arduino Nano“. Visa konstrukcija lengvai pritaikoma prie 4x4x4 arba 8x8x8 kubo. Šį projektą įkvėpė „GreatScott“. Nusprendžiau pasirinkti sudėtingesnę konstrukciją, naudodamas didesnius šviesos diodus (8 mm), mažesnį atstumą ir pridėdamas „Bluetooth“ryšį, kuris labai palengvina naujų funkcijų pridėjimą ir taip pat suteikia galimybę sukurti programą, skirtą kubui valdyti. Tai taip pat leidžia man pvz. koduokite „Snake Game“(trečiasis demonstracinis vaizdo įrašas pabaigoje). Be to, aš pridėjau garso vizualizatoriaus režimą, kuris leidžia kubui vizualizuoti AUX įvestį, pvz. Muzika naudojant MSGEQ7 (demonstruokite vaizdo įrašą pabaigoje). Be to, „Java“parašiau „AnimationCreator“programą su paprasta vartotojo sąsaja animacijoms kurti ir patobulinti, kad kiekvienas galėtų labai greitai sukurti pasirinktinę animaciją. Taigi „Sketch + Bluetooth“programa suteikia pagrindą bet kokiai LED kubo konfigūracijai, o su „Animation Creator“jums nereikia jaudintis dėl pritaikytų animacijų.

Nuorodos į „Arduino Sketch“ir „Bluetooth“programą:

RGBCube_Arduino eskizas („Github“)+animacijos kūrėjas.jar

„Cubo“„Bluetooth“programa („Github“)

Kubo dalių sąrašas:

  • 216x RGB šviesos diodas (bendras anodas) (8 mm) („AliExpress“/ „Ebay“)-> 6x6x6 = 216
  • Juostelės kabelis (turėtų pakakti 1 m 40 PIN) („AliExpress“/ „Ebay“/ „Amazon“)
  • Moterų ir vyrų antraštės (mažiausiai 4 x 40 taškų) („AliExpress“/ „Ebay“/ „Amazon“)
  • Konservuota varinė / sidabrinė viela 0,8 mm (~ 25 metrai) („AliExpress“/ „Ebay“/ „Amazon“)
  • Susitraukiantis vamzdelis („AliExpress“/ „Ebay“/ „Amazon“)

Valdymo skydų dalių sąrašas:

  • 7 x TLC5940 LED tvarkyklė („Ebay“/ „AliExpress“)
  • 6 x IRF 9540 P kanalų MOSFET („Amazon“/ „Ebay“/ „AliExpress“)
  • 8 x 10 uF kondensatoriai („Amazon“/ „Ebay“/ „AliExpress“)
  • 3 x 1000 uF kondensatorių („Amazon“/ „Ebay“/ „AliExpress“)
  • 14x 2,2 kOhm rezistoriai („Amazon“/ „Ebay“/ „AliExpress“)
  • 1 x 1 kOhm rezistorius („Amazon“/ „Ebay“/ „AliExpress“)
  • 7 x 28 kontaktų lizdai („Amazon“/ „Ebay“/ „AliExpress“)
  • 1 x „Arduino Nano“(„Amazon“/ „Ebay“/ „AliExpress“)
  • 1 x 1N4001 diodas (bet kuris įprastas diodas) („Amazon“/ „Ebay“/ „AliExpress“)
  • 8 x 0.1uF kondensatoriai („Ebay“)
  • 1 x DC Jack PCB Mount („Amazon“/ „Ebay“/ „AliExpress“)
  • 1 x „HC-05“„Bluetooth“modulis („Amazon“/ „Ebay“/ „AliExpress“)

1 žingsnis: teorija

Teorija
Teorija

Jei jums neįdomi multipleksavimo teorija, pereikite prie 2 veiksmo, kad pradėtumėte faktinį kūrimą

Kadangi techninė ir programinė įranga yra vienodai didelės šio projekto dalys, pirmiausia pažvelkime į teoriją.

Kubo smegenys yra „Arduino Nano“. Jis suteikia pakankamai įvesties/išvesties sąveikos su naudojamomis LED tvarkyklėmis, taip pat užmezga „Bluetooth“ryšį su HC-05 moduliu ir kita valdymo įranga. Jei peržiūrėjote kitas LED kubo konstrukcijas, žinosite, kad dauguma žmonių naudoja paprastus „Shift“registrus, kad išsaugotų atskirų šviesos diodų spalvų ryškumo vertes. Šioje versijoje nenaudojami „Shift“registrai, o vadinamosios „TLC5940“LED tvarkyklės. Kaip matysime vėliau, tai sutaupys mums daug laiko ir tonų papildomos aparatūros (pvz., Rezistorių).

Pagrindinė kubo valdymo funkcija naudoja multipleksavimą. Šiuo atveju mes multipleksuojame 6 kubo sluoksnius, tai reiškia, kad visi sluoksnio šviesos diodų anodai (+) yra sujungti, o atskiri visų to paties stulpelio šviesos diodų katodai yra prijungti prie apačios. Tai reiškia, kad jei norite uždegti šviesos diodą, esantį x = 1, y = 2, z = 3, spalva: žalia, 3 sluoksnio anode turite įjungti 5 V įtampą ir prijungti GND prie stulpelio katodo. Žalia smeigtukas x = 1, y = 2. Taigi iš tikrųjų vienu metu įjungiamas tik vienas kubo sluoksnis, tačiau, kaip pamatysite vėliau kodekse, mes taip greitai išjungiame ir atskirus sluoksnius, kad mūsų akys mano, kad visas kubas yra.

Norėdami valdyti tokius dalykus kaip ryškumas, animacija ir pan., Mes naudojame „HC-05“„Bluetooth“modulį, prijungtą prie „Arduino Nano“. Naudoti modulį su „Arduino“yra labai paprasta, nes jums reikia tik 4 kontaktų ryšio ir galite tiesiog sujungti modulį per numatytąjį „Arduino“serijinį sujungimą. Šios pamokos pabaigoje pamatysite, kaip lengva parašyti savo „Bluetooth“programą, kad galėtumėte valdyti kubą.

PASTABA

Mano „Arduino“plokštės schemoje taip pat galite pamatyti nedidelę schemą, skirtą MSGEQ7 mikroschemos sąsajai sujungti garso įvestį, tai visiškai nebūtina tikram kubui ir yra tik papildoma funkcija, kurią pridėjau, todėl galite tiesiog nepaisyti pažymėtos schemos su „MSGEQ7“

2 žingsnis: Aparatūra: LED kubo kūrimas

Techninė įranga: LED kubo konstrukcija
Techninė įranga: LED kubo konstrukcija
Techninė įranga: LED kubo konstrukcija
Techninė įranga: LED kubo konstrukcija
Techninė įranga: LED kubo konstrukcija
Techninė įranga: LED kubo konstrukcija

Taigi, prieš kalbėdami apie „Arduino Nano“valdymo grandinę, pažvelkime, kaip sukurti patį kubą.

Kubo konstrukcijos dalių sąrašas:

  • 216x RGB šviesos diodas (bendras anodas) („AliExpress“/ „Ebay“)-> 6x6x6 = 216
  • Juostelės kabelis (turėtų pakakti 1 m 40 PIN) („AliExpress“/ „Ebay“/ „Amazon“)
  • Moterų ir vyrų antraštės (mažiausiai 4 x 40 taškų) („AliExpress“/ „Ebay“/ „Amazon“)
  • Konservuota varinė / sidabrinė viela 0,8 mm (~ 25 metrai) („AliExpress“/ „Ebay“/ „Amazon“)
  • Susitraukiantis vamzdelis („AliExpress“/ „Ebay“/ „Amazon“)

Pirmas dalykas, kurį reikia padaryti, ir dabar tai yra nuobodu, bet būtina, turime išbandyti šviesos diodus. Norėdami tai padaryti, mes paprasčiausiai prijungiame maitinimo šaltinį, pvz., 9 V akumuliatoriaus bloką su spaustuku, prie breabo. Kaip matote 3 paveiksle, ilgiausias šviesos diodų kaištis yra anodas (+), todėl šį kaištį prijungiate prie +9 V akumuliatoriaus. Prieš prijungdami GND prie atskirų spalvų katodų (raudona, žalia, mėlyna), prie kiekvieno katodo pridėkite 220 omų rezistorių, kad apribotumėte srovę. Dabar smagiai išbandykite visas visų 216 šviesos diodų spalvas.

Kitame etape mes paruošime išbandytus šviesos diodus, kad vėliau juos būtų galima lengvai surinkti stulpeliuose.

3 žingsnis: LED eilutės

LED eilutės
LED eilutės
LED eilutės
LED eilutės
LED eilutės
LED eilutės

Prieš pradėdami lituoti šviesos diodus į atitinkamas eilutes, turime sulenkti ir supjaustyti laidus.

Kaip matote pirmame paveikslėlyje, aš paprasčiausiai išgręžiau 8 mm skylę (8 mm šviesos diodams) į medžio gabalą ir išgręžiau 3 labai mažus grąžtus į kairę nuo LED skylės, o kitą - į dešinę. Šie grąžtai yra žymekliai, skirti tinkamai sulenkti laidus ir turėtų būti maždaug 1 cm atstumu nuo šviesos diodo angos vidurio.

Šią techniką įkvėpė Steve'as Manley, „YouTube“galite rasti vaizdo įrašą, kuriame jis tai daro šiek tiek.

Prieš pjaustydami ir lenkdami laidus aplink grąžtus, kaip parodyta 2 ir 3 paveikslėliuose, įsitikinkite, kad laidų orientacija atitinka 1 paveikslą (mėlyna viršuje į kairę, tada žalia, tada anodas + į dešinę ir vėl kairė raudona). Apskritimas, kurį sulenkėte į laidus, turėtų būti pakankamai didelio skersmens, kad tilptų į alavuotą varinę vielą (0,8 mm). Šis žingsnis leidžia nepaprastai lengviau gražiai lituoti šviesos diodus.

Dabar, kai visi šviesos diodai yra paruošti, norime surinkti juos į 6 eilutes, kuriose yra prijungti anodai (+):

  1. Sukurkite nedidelį stendą, kaip parodyta 6 paveiksle, išgręžkite 6 skyles (0,8 mm skersmens) 2,5 cm atstumu iki kitos skylės. Tai leidžia mums vienu metu įtaisyti 6 šviesos diodus
  2. Norėdami prijungti anodus, mums reikia tiesios alavuotos varinės vielos gabalo, kurio ilgis ~ 16 cm (su papildoma paraštė). Kad viela būtų graži ir tiesi, vieną laido galą galite pritvirtinti prie, pvz., Elektrinio gręžtuvo, vienu metu pritvirtinkite maždaug 2 m laidų ant stalo, tada laikykite grąžtą taip, kad viela būtų ištempta ir įtempta, ir įjunkite grąžtą kelias sekundes su labai greitai ištiesina vielą. Tada galite nupjauti vielą toje vietoje, kur pritvirtinote gabalą. Taip pat galite naudoti dvi reples ir vienu metu priveržti mažesnius vielos gabalus, tačiau tai yra daug varginanti
  3. Kai turėsite 16 cm ilgio laidus, nukreipkite juos per LED anodo (+) skyles ir prijunkite anodo kaiščius prie laido (7 pav.)

Visam kubui mums reikės 6x6 = 36 šių LED eilučių

4 žingsnis: sluoksnio surinkimas

Sluoksnio surinkimas
Sluoksnio surinkimas
Sluoksnio surinkimas
Sluoksnio surinkimas
Sluoksnio surinkimas
Sluoksnio surinkimas

Kaip jau minėjau anksčiau, mes dauginsime kubo sluoksnius, tačiau surinkimui lengviau pastatyti 6 sienas iš 6x6 šviesos diodų, tada jas surinkti viena šalia kitos ir tiesiog paleisti vieną alavuotą varinę vielą, jungiančią anodus eilutes kartu sluoksniu.

Saugokitės, kad šis žingsnis užtruks daug laiko ir kantrybės, kad tai padarytumėte teisingai, iš viso turėsite lituoti apie 1000 litavimo siūlių, todėl neskubėkite!

Norėdami pastatyti LED sieną:

  1. Jigui: mums reikia medžio gabalo su 6 raižytomis linijomis, kad tilptų 6 eilės viena virš kitos, kad pastatytume sieną. Paveikslėlį galite pamatyti 2 paveiksle (atstumai tarp eilučių: 2,5 cm)
  2. Įdėkite 6 šviesos diodų eilutes į raižinius, anodo viela žemyn į raižytą liniją, kad 3 katodai (R, G, B) būtų nukreipti į viršų
  3. Norėdami sujungti katodus, esančius vienas virš kito (žr. 2 paveikslą), mums reikia šiek tiek daugiau vielos (taigi vėl 6 stulpeliai x 3 katodai x 6 sienos = 108 alavuotos vielos dalys, kaip aprašyta paskutiniame žingsnyje (2) (taip pat to paties ilgio))
  4. Išstumkite vielos gabalus iš stulpelio apačios per katodų skyles į viršutinę eilę ir prilituokite vielą prie kiekvieno šviesos diodo

Padarykite tai 6 kartus, kad gautumėte 6 šviesos diodų sienas.

Dabar mes iš tikrųjų galime surinkti sienas į patį kubą. Tačiau norėdami išlaikyti kubą, turime sukurti tam tikrą įžeminimo plokštumą. Tam aš paprasčiausiai panaudojau ploną fanerą ir išgręžiau į ją 0,8 mm skyles, kad tilptų laidai, kabantys nuo žemiausių LED eilučių (visoms 6 LED sienoms). Vieno šviesos diodo skylių matavimai aprašyti 3 žingsnyje, o atstumai tarp kiekvieno šviesos diodo yra 2,5 cm.

Kai skylės yra vietoje, dabar paimame pirmąją sieną ir manevruojame ją į skyles, esančias pačioje faneros kairėje. Šviesos diodų eilutė apačioje turėtų būti tiesiai ant medžio, kad galų gale visos sienos būtų vienodos.

Tęskite tą patį su likusiomis LED sienomis, tačiau atminkite, kad sienų anodai visada nukreipti ta pačia kryptimi. (3 paveiksle visi sienų anodai nukreipti į kairę)

Kai visas kubas yra vietoje, turime kartu lituoti kiekvieno sluoksnio anodus. Norėdami tai padaryti, paimame dar ~ 16 cm tiesios vielos gabalėlį ir uždedame ant pirmojo sluoksnio, kad viela viename sluoksnyje liestų visus 6 sienų anodo laidus. Saugokitės, kad naujas laidas neliestų nė vieno katodo. Lituokite vielą vietoje ir pakartokite tą patį 5 likusiems sluoksniams.

5 žingsnis: kubo laidų prijungimas

LED vairuotojo lenta
LED vairuotojo lenta
LED vairuotojo lenta
LED vairuotojo lenta
LED vairuotojo lenta
LED vairuotojo lenta

LED vairuotojo plokštės dalys:

  • 7 x TLC5940
  • 6/7 x 10 uF kondensatoriai
  • 2 x 1000 uF kondensatoriai
  • 7x 2,2 kOhm rezistoriai
  • 7 x 28 kontaktų IC lizdai
  • 7 x 0.1uF kondensatoriai
  • Juostos kabelis

Pereinant prie valdymo grandinių, pirmiausia pažvelkime į LED tvarkyklės plokštę. Kaip minėta anksčiau, mums reikia 7 TLC5940, prijungtų prie „Arduino Nano“. Visi TLC5940 lustai yra sujungti grandine, o tai reiškia, kad visi tvarkyklių valdymo kaiščiai yra tarpusavyje sujungti (pvz., Pirmojo TLC BLANK kaištis yra prijungtas prie BLANK antrojo, trečiojo, ketvirtojo,… TLC) ir visi yra prijungti prie Arduinowith tie patys laidai, išskyrus „Serial In“, kuris pirmą kartą prijungtas iš „Arduino“skaitmeninio kaiščio prie pirmojo TLC, tada šio pirmojo TLC serijinės išvesties kaištis yra prijungtas prie antrojo TLC SIN kaiščio ir pan. (žr. 4 paveikslą) …

Taigi TLC plokštės schema yra gana paprasta, kaip matote pridedamoje schemoje.

(JEI NORITE PANAIKTI LENTOS ŠOKIU Į 8 ŽINGSNĮ)

Aš taip pat pridėjau „frizz“schemos ekrano kopiją, kurioje yra kaiščių etiketės ir GIMP.xcf failai su sluoksniais kiekvienam atskirtam „Control Pin“ryšiui.

Pradėkite lituoti visus IC lizdus savo vietose, tada į kiekvieną TLC pridėkite 100 nF kondensatorių, po to 2,2 kOhm rezistorių IREFand GND ir 7 kontaktų antraštę viršutiniame dešiniajame kampe. Po to galite tiesiog sekti.xcf failą pradedant nuo „SIN sluoksnio“Gimp faile, kuriame parodyta, kaip prijungti tvarkyklių nuoseklius įvesties/išvesties kaiščius naudojant juostinius kabelius, tada įjungiant CLK sluoksnį GIMP ir pan. Įsitikinkite, kad viršuje dešinėje esančios kaiščių antraštės yra gerai sujungtos „ +“ir „smeigtukais“. Likusi schemos dalis turėtų būti savaime suprantama, tačiau įsitikinkite, kad prie plokštės pridėjote pakankamai 1000uF ir 10uF kondensatorių, nesvarbu, kur tiksliai jūs juos išdėstote.

Kai ši lenta bus baigta, kitame žingsnyje galėsite pereiti prie „Arduino“lentos.

7 veiksmas: „Arduino + Bluetooth“valdymo plokštė

„Arduino + Bluetooth“valdymo plokštė
„Arduino + Bluetooth“valdymo plokštė

Valdymo plokštės dalys:

  • 6 x IRF 9540 P kanalų MOSFET
  • 1 x 10 uF kondensatoriai
  • 1 x 1000 uF kondensatorių
  • 7 x 2,2 kOhm rezistoriai
  • 1 x 1 kOhm rezistorius
  • 2 x 14 moteriško kaiščio antraštė
  • 1 x „Arduino Nano“
  • 1 x 1N4001 diodas
  • 1 x 0.1uF kondensatoriai
  • 1 x DC Jack PCB laikiklis
  • 1 x „HC-05“„Bluetooth“modulis
  • 1 x 3,5 mm garso lizdas

„Arduino“valdymo plokštė daugiausia tvarko multipleksavimą, taip pat yra LED tvarkyklės plokštės kaiščio antraštės atitikmuo.

Litavimas ant perforatoriaus:

  1. Lentos viduryje įdėkite dvi „Pin“antraštes, kad jos veiktų kaip „Arduino“lizdas.
  2. Padėkite 6 MOSFET iš eilės vienas šalia kito dešinėje „Arduino“pusėje (pusėje su analoginiais kaiščiais) ir pridėkite 2,2 kOhm rezistorių tarp pirmojo ir paskutinio kaiščio.
  3. Dabar padėkite 6 kontaktų antgalį prieš MOSFET (eilutės viduryje) ir prijunkite 6 FET (DAPIN) kaiščius (vidurinis kaištis) prie antraštės, o GET kaiščiai (kairysis kaištis) prie atitinkamų „Arduino“analoginių kaiščių..
  4. Tada lituokite 7 kontaktų antgalį, skirtą „LEDDriver“jungčiai kitoje „Arduino“pusėje, palikite šiek tiek vietos kabeliams ir lituokite visas jungtis nuo „Arduino“iki kaiščio antraštės.
  5. Pridėkite keletą kondensatorių (1-2 1000uF, 1 10uF, 100nF šalia „Arduino“), kad būtų galima išleisti srovę.
  6. Lituokite 4 kontaktų antgalį šalia galinės „Arduino“pusės HC-05 moduliui ir prijunkite 4 jungtis prie VCC, RX, TX, GND ir nepamirškite iš HC-05 RX kaiščio ir „Arduino“TX kaištis (žr. čia)
  7. Padėkite nuolatinės srovės lizdą ant bet kurio plokštės krašto su jungikliu šalia ir prijunkite dešinį jungiklio kaištį prie „DC“lizdo + kaiščio
  8. Galiausiai prijunkite visas reikalingas maitinimo jungtis nuo DC lizdo GND kaiščio ir dešiniojo jungiklio kaiščio (VCC) iki „Arduino“, MOSFET, kondensatorių ir HC-05, kaip parodyta schemoje. Nepamirškite pridėti diodo, kuris suteikia maitinimą tik iš jungiklio VCC kaiščio, kad tekėtų į „Arduinos 5V“kaištį, o ne kitu būdu. (Tai apsaugo „Arduino“, kai programuojate per USB jungtį)

Norėdami prijungti maitinimą, naudoju nuolatinės srovės maitinimo lizdą su paprastu jungikliu, jei norite, taip pat galite naudoti USB jungtį. Maitinimo jungtį perdaviau kitai mažai grandinės plokštei, kad ji puikiai tilptų į mano medinį dėklą, bet galite tiesiog įdėti jį tiesiai į „Arduino“lentą. Kaip minėta pirmame žingsnyje, schemoje taip pat yra MSGEQ7 ryšio grandinė, tačiau tiesiog ignoruokite tai, jei nenaudojate MSGEQ7. (Norėdami gauti daugiau informacijos apie MSGEQ7 funkcijas, spustelėkite čia)

Nepamirškite pasigaminti dar vieno „7Pin“juostelės kabelio su kištukinėmis antgalėmis kiekviename gale, kad galėtumėte prijungti „Arduino“plokštę prie tvarkyklės plokštės

8 veiksmas: pasirinktinai: grandinių plokščių ėsdinimas

Neprivaloma: grandinių plokščių ėsdinimas
Neprivaloma: grandinių plokščių ėsdinimas
Neprivaloma: grandinių plokščių ėsdinimas
Neprivaloma: grandinių plokščių ėsdinimas
Neprivaloma: grandinių plokščių ėsdinimas
Neprivaloma: grandinių plokščių ėsdinimas

Taigi, jei jums nepatinka lituoti daug kabelių, žinoma, jei norite, taip pat galite išgraviruoti reikiamas PCB.

Mano „Cube“„Arduino“plokštė ir „Power/Audio“jungties plokštė yra išgraviruotos plokštės, naudojant pridėtus scheminius/EAGLE failus. Pirmą kartą padariau klaidą schemoje, todėl turėjau iš naujo padaryti „LED Driver“plokštę, kaip tai dariau paskutiniame žingsnyje. Lentos ėsdinimas vietoj „Perboard“nėra didžiulių pranašumų, todėl drąsiai galite išgraviruoti lentą arba lituoti ją ant perforatoriaus.

Pridėtame.zip galite rasti ir BOARD failą, ir SCHEMATIC failą.

Atkreipkite dėmesį, kad viršutinio sluoksnio pėdsakai (raudoni) turėtų būti vieliniai tiltai (nes aš negaliu namuose išgraviruoti dviejų pusių plokščių). Neregistruoti pėdsakai parodo jungtis, kurias reikia atlikti per kaiščius, skirtus kaiščių antgaliams.

Schemoje yra MSGEQ7 funkcija, kurios galite tiesiog praleisti ištrindami schemos skiltį, pažymėtą "(MSGEQ7)", esančioje.pdf schemos ekrano kopijoje.

9 veiksmas: prijunkite kubą

Kubo prijungimas
Kubo prijungimas
Kubo prijungimas
Kubo prijungimas
Kubo prijungimas
Kubo prijungimas

Norėdami prijungti visas kubo dalis, pirmiausia prijunkite 7 kontaktų kabelį prie „Arduino“plokštės ir vairuotojo plokštės (įsitikinkite, kad orientacija yra teisinga!). Tada prijunkite HC05 modulį prie 4 kontaktų jungties ir, jei atskirta, prijunkite maitinimo plokštę.

Norėdami prijungti kubo 7x16 kaiščių antraštes, būtinai pradėkite nuo pirmojo TLC (to, kurio SIN kaištis yra tiesiogiai prijungtas prie „Arduino“). Iš „Cube“suraskite tinkamą 16 kontaktų kabelį ir prijunkite jį prie pirmojo TLC kaiščio antraštės (įsitikinkite, kad katodo Nr.0 kabelis prijungtas prie pirmojo TLC OUT0 kaiščio!). Eikite ir prijunkite kitus 16 kontaktų kabelius prie atitinkamų TLC antraščių teisinga tvarka.

Paskutinis, bet ne mažiau svarbus dalykas - prijunkite 6Pin kabelį anodams iš kubo prie 6Pin antraštės, esančios valdymo skydelyje šalia MOSFET.

Norėdami užbaigti kubą, prie korpuso pridėjau dar faneros su juodais dažais ir priklijavau.

Dabar mes baigėme visą techninę įrangą, reikalingą visam kūriniui!

10 veiksmas: programinė įranga: multipleksavimo ciklas

Programinė įranga: multipleksavimo ciklas
Programinė įranga: multipleksavimo ciklas

Dabar teoriškai „Arduino“nuolat vykdo šį ciklą:

  1. Jei „LayerDuration“praėjo, įjunkite kito sluoksnio reikšmes į TLC, išjunkite dabartinį sluoksnį, įjunkite kitą sluoksnį, iš naujo nustatykite „LayerDuration“, nustatykite naujas reikšmes TLC
  2. Jei „FrameDuration“praėjo, įkelkite naują dabartinės animacijos kadrą, išsaugodami visų šviesos diodų ir spalvų reikšmes į „ValueLed buferį, iš naujo nustatykite„ FrameDuration “
  3. Jei yra „Bluetooth“duomenų, reaguokite į juos (keiskite animacijas, ryškumą …) (daugiau informacijos vėliau)

Kaip matote, pagrindinis kodo tikslas yra greitis. Svarbu, kad laikas pakeisti sluoksnį būtų minimalus.

Kuo greičiau įjungsite/išjungsite sluoksnius, tuo daugiau „rėmelių“gausite. Tokiam 6x6x6 RGB LED kubui aš supratau, kad sluoksnio trukmė yra 1700 microSec. yra pakankamai geras, kad mirgėtų mažiausiai, ir turėtų būti palikta tokia vertė. „FrameDuration“valdo daugiau animacijos greičio, todėl ją galima keisti skirtingoms animacijoms.

Kitame žingsnyje apžvelgsime, kaip iš tikrųjų galime parašyti savo animacijas.

11 veiksmas: pasirinktinės animacijos

Individualizuotos animacijos
Individualizuotos animacijos
Individualizuotos animacijos
Individualizuotos animacijos

Norėdami įgyvendinti animaciją, kiekvieną kartą, kai praeis „FrameDuration“, turime nustatyti „ValueLed buferį į norimas vertes kitam kadrui. Tai darome vadindami makrokomandos funkciją „SETLED (x, y, z, COLOR, Brightness)“

x, y, z yra norimo nustatyti šviesos diodo koordinatės, o SPALVA (RAUDONA, ŽALIA arba MĖLYNA) yra spalva, kurią norime nustatyti, o ryškumas yra tikroji šios nustatytos spalvos vertė.

Taigi, pavyzdžiui, norėdami įgyvendinti animaciją, kurioje visame kube tiesiog atsitiktinai rodoma raudona, žalia ir mėlyna spalvos, galite tai padaryti:

void randomLedsFull () {

(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); }}}}

Šis metodas vadinamas kiekvieną kartą, kai „FrameDuration“praėjo, ir pasirenkamas iš komandos „switch-case“cikle (). Jei rašote naujas animacijas, galite jas pridėti tiesiog pridėdami jas prie jungiklio.

12 veiksmas: papildomas: „AnimationCreator“

Papildomai: AnimationCreator
Papildomai: AnimationCreator

Be to, parašiau „AnimationCreator“naudodami „JavaFX“ir „Java3D“.

Tai labai palengvina tinkintų animacijų kūrimą ir redagavimą, nes suteikia lengvai suprantamą vartotojo sąsają.

Galite kurti, redaguoti, pervardyti ir perkonfigūruoti 4x4x4, 6x6x6 arba 8x8x8 LED kubelių animacijas

Norėdami sukurti naują animaciją, tiesiog paspauskite Failas> Naujas, skiltyje „Kubas“galite pasirinkti kubo dydį, kad nustatytumėte šviesos diodo spalvą, pasirinkite norimą spalvą naudodami spalvų parinkiklį kairėje, tada kairėje spustelėkite norimus šviesos diodus tą rėmelio spalvą. Norėdami pridėti kitą kadrą, spustelėkite „Kitas“arba „+“. Likusi vartotojo sąsajos valdiklių dalis yra visiškai savaime suprantama, pažymėjus langelius šalia kubų sluoksnių, reikia patikrinti, kuriems sluoksniams turėtų turėti įtakos poslinkis ir „Išlaikyti rėmelį“. Tiesiog išbandykite ir greitai viską išsiaiškinsite.

Be to, norėdami imituoti animaciją, galite spustelėti mygtuką „Žiūrėti 3D“, kuris atveria kitą langą su „Java3D“kubo modeliu. Galite pasukti fotoaparatą laikydami nuspaudę kairįjį pelės klavišą (paspauskite R, kad iš naujo nustatytumėte fotoaparatą). Norėdami paleisti/pristabdyti animaciją, paspauskite klavišą P, kad iš naujo nustatytumėte animacijos hitą. „FrameTime“, taigi ir animacijos greitis.

Kai baigsite animaciją, suteikite jai pavadinimą ir paspauskite Failas> Įrašyti kaip … ir išsaugokite animaciją tame pačiame aplanke kaip ir „Cubo_Control.ino Sketch“.

Norėdami įtraukti naują animaciją į eskizą, atidarykite „Cubo_Control.ino“ir pridėkite šį kodą ant eskizo:

#include "RGBit.h" // Pakeisti

Slinkite žemyn iki „BTEvent“() ir pridėkite didžiosios ir mažosios raidės prie animacijų

jungiklis (curAnim) {

… 10 atvejis: animacija = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; pertrauka; 11 atvejis: // JŪSŲ NAUJA ANIMACIJA animacija = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; pertrauka; }

13 veiksmas: „Bluetooth“programa

„Bluetooth“programa
„Bluetooth“programa

Norint iš tikrųjų valdyti kubą, HC-05 modulio dėka yra gana paprasta sukurti „Bluetooth“programą, skirtą prijungti telefoną prie kubo.

Nuoroda į programą: „Github“

Programa yra atviro kodo, todėl nedvejodami pridėkite papildomų animacijų/funkcijų.

  • Paleiskite programą, ji prašo įjungti „Bluetooth“
  • Spustelėkite „Ieškoti“ir pasirodys galimų „Bluetooth“ryšių sąrašas. Iš kubo nustatykite HC-05 modulį ir spustelėkite jį.
  • Jei bandant prisijungti prie „Cube“įvyko klaida, pabandykite susieti HC-05 modulį „Bluetooth“nustatymuose rankiniu būdu
  • Prisijungus programa persijungia į valdymo ekraną ir užmezgamas „Bluetooth“ryšys

Valdikliai

  • Greitis ir ryškumas: pakeiskite slankiklio reikšmes, kad pagreitintumėte/sulėtintumėte animaciją arba pakeistumėte ryškumą
  • Animacijos: spustelėkite mygtuką, kad pakeistumėte animaciją, pagal numatytuosius nustatymus animacijos kartojasi (pradedant nuo viršaus kairėje, mygtukas atitinka currAnim)
  • Teksto slinkimas: spustelėkite mygtuką „Tekstas“, kuris parodys dialogo langą, kuriame bus įvestas tekstas, kuris bus slenkamas per kubą
  • Komanda: Komandas galite įvesti rankiniu būdu naudodami „Command TextField“(ieškokite sintaksės „Cubo_Control.ino“BTEvent () metodo)
  • Gyvatė: klasikinis gyvatės žaidimas (raudona: obuolys, žalia: gyvatės galva, mėlyna: sėlinti uodega) (valdikliai: 4 kryptiniai mygtukai, aukštyn ir žemyn suaktyvinama pasukus telefoną į priekį (aukštyn) arba atgal (žemyn))
  • Garso vizualizatorius: MSGEQ7 naudojamas 6 garso juostoms vizualizuoti iš „AUX Jack“(7 animacijos mygtukas)

14 žingsnis: demonstracija

Rekomenduojamas: