Talaan ng mga Nilalaman:

RGB LED Cube Sa Bluetooth App + AnimationCreator: 14 Mga Hakbang (na may Mga Larawan)
RGB LED Cube Sa Bluetooth App + AnimationCreator: 14 Mga Hakbang (na may Mga Larawan)

Video: RGB LED Cube Sa Bluetooth App + AnimationCreator: 14 Mga Hakbang (na may Mga Larawan)

Video: RGB LED Cube Sa Bluetooth App + AnimationCreator: 14 Mga Hakbang (na may Mga Larawan)
Video: Ai robots taking over ping pong 👀 #shorts 2024, Disyembre
Anonim
RGB LED Cube Sa Bluetooth App + AnimationCreator
RGB LED Cube Sa Bluetooth App + AnimationCreator

Ito ay isang itinuturo sa kung paano bumuo ng isang 6x6x6 RGB LED (Common Anodes) Cube na kinokontrol ng isang Bluetooth App gamit ang isang Arduino Nano. Ang buong build ay madaling iakma sa isang say na 4x4x4 o 8x8x8 Cube. Ang proyektong ito ay inspirasyon ng GreatScott. Nagpasya akong pumunta para sa isang mas sopistikadong build gamit ang mas malalaking mga leds (8mm), na may mas kaunting distansya + pagdaragdag ng komunikasyon sa Bluetooth na ginagawang mas madali ang pagdaragdag ng mga bagong pag-andar at dinadagdag ang kakayahang bumuo ng isang app upang makontrol ang kubo. Pinapayagan din ako nitong hal. code ng isang Snake Game (ika-3 showcase na video sa dulo). Sa itaas ng iyon nagdagdag ako ng isang mode ng Audio Visualizer na nagbibigay-daan sa cube na mailarawan ang isang AUX Input hal. Musika gamit ang isang MSGEQ7 (showcase video sa dulo). Bukod pa rito nagsulat ako ng isang application na AnimationCreator sa Java na may madaling gamitin na UI upang lumikha at mag-tweak ng Mga Animasyon, upang ang sinuman ay maaaring makabuo ng mga pasadyang animasyon na napakabilis. Kaya ang Sketch + Bluetooth App ay nagbibigay ng isang balangkas para sa anumang pag-configure ng LED Cube at sa Animation Creator hindi mo kailangang mag-alala tungkol sa pagpapatupad ng mga pasadyang animasyon.

Mga link sa Arduino Sketch at Bluetooth App:

RGBCube_Arduino Sketch (Github) + Animation Creator.jar

Cubo Bluetooth App (Github)

Listahan ng mga bahagi para sa Cube:

  • 216x RGB LED (Karaniwang Anode) (8mm) (AliExpress / Ebay) -> 6x6x6 = 216
  • Ribbon Cable (1m 40Pin dapat sapat) (AliExpress / Ebay / Amazon)
  • Mga Header ng Babae at Lalaki (hindi bababa sa 4x40pin bawat isa) (AliExpress / Ebay / Amazon)
  • Tinned Copper / Silver Wire 0.8mm (~ 25Meter) (AliExpress / Ebay / Amazon)
  • Shrinking Tube (AliExpress / Ebay / Amazon)

Listahan ng mga bahagi para sa mga Control Board:

  • 7 x TLC5940 LED Driver (Ebay / AliExpress)
  • 6 x IRF 9540 P-Channel MOSFETs (Amazon / Ebay / AliExpress)
  • 8 x 10 uF Capacitors (Amazon / Ebay / AliExpress)
  • 3 x 1000 uF Capacitors (Amazon / Ebay / AliExpress)
  • 14x 2.2kOhm Resistors (Amazon / Ebay / AliExpress)
  • 1 x 1kOhm Resistor (Amazon / Ebay / AliExpress)
  • 7 x 28pin IC Sockets (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 Diode (Anumang karaniwang Diode) (Amazon / Ebay / AliExpress)
  • 8 x 0.1uF Capacitors (Ebay)
  • 1 x DC Jack PCB Mount (Amazon / Ebay / AliExpress)
  • 1 x HC-05 Bluetooth Module (Amazon / Ebay / AliExpress)

Hakbang 1: Teorya

Teorya
Teorya

Kung hindi ka interesado sa teorya tungkol sa multiplexing kaysa tumalon sa Hakbang 2 para sa pagsisimula ng aktwal na pagbuo

Dahil ang hardware at software ay pantay na malaking bahagi ng proyektong ito, tingnan muna ang teorya.

Ang utak ng kubo ay isang Arduino Nano. Nagbibigay ito ng sapat na I / O upang makagambala sa mga ginamit na LED Driver pati na rin magtaguyod ng isang koneksyon sa Bluetooth sa isang module na HC-05 at iba pang control hardware. Kung tiningnan mo ang iba pang mga pagbuo ng LED Cube, malalaman mo na ang karamihan sa mga tao ay gumagamit ng simpleng mga rehistro ng Shift upang mag-imbak ng mga halaga ng ningning ng mga kulay ng mga indibidwal na LED. Ang build na ito ay hindi gumagamit ng mga rehistro ng Shift, ngunit sa halip ay tinawag itong "TLC5940" LED Drivers. Tulad ng makikita natin sa paglaon, nakakatipid ito sa atin ng maraming oras pati na rin ang tone-toneladang karagdagang hardware (hal. Resistors).

Ang pangunahing pagpapaandar ng pagkontrol sa kubo ay gumagamit ng multiplexing. Sa kasong ito pinaparami namin ang 6 na mga layer ng kubo, ibig sabihin lahat ng mga Anode (+) ng lahat ng mga LED sa isang layer ay konektado, samantalang ang mga indibidwal na Cathode ng lahat ng mga LED sa parehong Haligi ay konektado patungo sa ibaba. Nangangahulugan ito na kung nais mong sindihan ang LED sa posisyon x = 1, y = 2, z = 3, kulay: berde kailangan mong magbigay ng 5V sa Anode ng Layer 3 at ikonekta ang GND sa Cathode ng Column na naaayon sa Green Pin ng x = 1, y = 2. Kaya't sa katotohanan sa isang punto ng oras, isang layer lamang ng Cube ang aktwal na naka-on, ngunit tulad ng makikita mo sa paglaon sa Code na papatayin namin at sa mga indibidwal na Layer na napakabilis, na iniisip ng aming mata na ang buong kubo ay nakabukas.

Upang makontrol ang mga bagay tulad ng ningning, mga animasyon at iba pa gumagamit kami ng isang HC-05 Bluetooth module na konektado sa Arduino Nano. Napakadaling gamitin ang module sa isang Arduino dahil kakailanganin mo lamang ang koneksyon na 4 Pin at maaaring madaling mai-interface ang module sa pamamagitan ng default na Serial-Commuincation ng Arduino. Sa pagtatapos ng pagtuturo na ito ay makikita mo kung gaano kadali magsulat ng iyong sariling Bluetooth App upang makontrol ang Cube.

TANDAAN

Sa aking eskematiko ng Arduino Circuit board maaari mo ring makita ang isang maliit na eskematiko para sa pag-interfaced ng isang proseso ng chip ng MSGEQ7 na Audio Input, ito ay ganap na hindi kinakailangan para sa aktwal na kubo at isang karagdagang pag-andar na idinagdag ko, kaya't maaari mong balewalain lamang ang marka ng Schematic kasama ang "MSGEQ7"

Hakbang 2: Hardware: Bumuo ng LED Cube

Hardware: LED Cube Build
Hardware: LED Cube Build
Hardware: LED Cube Build
Hardware: LED Cube Build
Hardware: LED Cube Build
Hardware: LED Cube Build

Kaya't tingnan kung paano mabuo ang Cube mismo, bago pag-usapan ang tungkol sa control circuit sa paligid ng Arduino Nano.

Listahan ng Mga Bahagi para sa Konstruksyon ng Cube:

  • 216x RGB LED (Karaniwang Anode) (AliExpress / Ebay) -> 6x6x6 = 216
  • Ribbon Cable (1m 40Pin dapat sapat) (AliExpress / Ebay / Amazon)
  • Mga Header ng Babae at Lalaki (hindi bababa sa 4x40pin) (AliExpress / Ebay / Amazon)
  • Tinned Copper / Silver Wire 0.8mm (~ 25Meter) (AliExpress / Ebay / Amazon)
  • Shrinking Tube (AliExpress / Ebay / Amazon)

Ang unang bagay na dapat gawin, at ako ngayon ay nakakapagod ngunit kinakailangan, kailangan naming subukan ang mga LED. Upang gawin iyon, simpleng ikonekta namin ang isang supply ng kuryente hal. 9V Battery block na may clip sa isang breaboard. Tulad ng nakikita mo sa larawan 3 ang pinakamahabang Pin ng mga LED ay ang Anode (+) kaya't ikinonekta mo ang pin na ito sa + 9V ng baterya. Ngayon bago ikonekta ang GND sa mga indibidwal na kulay ng mga Cathode (Pula, berde, Asul) magdagdag ng isang resistor na 220Ohm sa bawat katod upang malimitahan ang kasalukuyang. Ngayon ay masaya sa pagsubok ng lahat ng mga kulay ng lahat ng 216 LEDs.

Sa susunod na hakbang ay ihahanda namin ang mga nasubok na LEDs upang madali naming mapagsama ang mga ito sa mga haligi sa paglaon.

Hakbang 3: LED Rows

LED Rows
LED Rows
LED Rows
LED Rows
LED Rows
LED Rows

Bago namin maghinang ang mga LED sa kani-kanilang mga hilera kailangan naming yumuko at gupitin ang mga lead.

Tulad ng nakikita mo sa unang larawan simpleng drill ko ang isang 8mm hole (para sa 8mm LEDs) sa isang piraso ng kahoy at nag-drill ng 3 napakaliit na drill sa kaliwa ng LED hole at isa pa sa kanan ng butas. Ang mga drills na ito ay mga marker para sa baluktot nang tama ang mga lead at dapat may distansya na halos 1cm mula sa gitna ng butas para sa LED.

Ang diskarteng ito ay inspirasyon ni Steve Manley, maaari kang makahanap ng isang video na ginagawa niya ito sa kaunting pagkakaiba-iba sa YouTube.

Bago mo gupitin at yumuko ang mga lead sa paligid ng mga drills tulad ng nakikita sa larawan 2 at 3, tiyakin na ang oryentasyon ng mga lead ay tumutugma sa larawan 1 (Asul sa itaas sa kaliwa, pagkatapos ay berde, pagkatapos ay anode + sa kanan, at pulang kaliwa ulit). Ang bilog na iyong baluktot sa mga lead ay dapat magkaroon ng isang malaking sapat na lapad upang magkasya sa tinned wire na tanso (0.8mm). Ang hakbang na ito ay ginagawang mas madali nang madali upang maghinang ng maayos ang mga LED sa lugar.

Ngayon na ang lahat ng mga LED ay handa na, nais naming tipunin ang mga ito sa mga hilera ng 6 kung saan nakakonekta ang Anodes (+):

  1. Bumuo ng isang maliit na jig tulad ng nakikita sa larawan 6, mag-drill ng 6 na butas (diameter 0.8mm) na may distansya na 2.5cm sa susunod na butas. Pinapayagan kaming magkasya na 6 LEDs sa bawat oras sa jig
  2. Upang ikonekta ang mga anod kailangan namin ng isang tuwid na naka-tin na tanso na kawad na piraso ng ~ 16cm ang haba (na may ilang labis na margin). Upang makuha ang kawad na maayos at tuwid maaari mong mai-mount ang isang dulo ng kawad sa hal. Isang de-kuryenteng drill, i-secure ang halos 2m na mga wire nang paisa-isa sa isang mesa, pagkatapos ay hawakan ang drill upang ang kawad ay nakaunat at masikip at may kapangyarihan sa drill para sa isang ilang segundo sa straightens out ang wire nang napakabilis. Maaari mo ring i-cut ang kawad mismo sa kung saan mo na-secure ang piraso. Maaari mo ring gamitin ang dalawang plier at higpitan ang mas maliit na mga piraso ng kawad nang paisa-isa, ngunit mas nakakapagod iyon
  3. Kapag mayroon kang 16cm na haba na mga wire ididirekta mo ang mga ito sa pamamagitan ng mga butas ng Anode (+) ng mga LED sa jig at solder ang mga pin ng Anode sa kawad (Larawan 7)

Para sa buong cube kakailanganin namin ng 6x6 = 36 ng mga LED row

Hakbang 4: Layer Assembly

Layer Assembly
Layer Assembly
Layer Assembly
Layer Assembly
Layer Assembly
Layer Assembly

Tulad ng nabanggit ko na dati, multiplex namin ang mga layer ng cube, ngunit para sa pagpupulong ay mas madali itong magtayo ng 6 Walls ng 6x6 LEDs at pagkatapos ay tipunin ang mga ito sa tabi-tabi at magpatakbo lamang ng isang solong naka-tinned na wire na tanso na kumokonekta sa mga anode ng mga hilera sa isang layer magkasama.

Mag-ingat na ang hakbang na ito ay tumatagal ng maraming oras at pasensya upang gawin ito ng tama, sa kabuuan kailangan mong maghinang sa paligid ng 1000 solder joint para sa pagbuo kaya't gugulin ang iyong oras!

Upang bumuo ng isang LED Wall:

  1. Para sa jig: Kailangan namin ng isang piraso ng kahoy na may 6 na larawang inukit upang magkasya sa 6 na hilera isa sa itaas ng isa pa upang makabuo ng isang pader. Maaari mong makita ang jig mismo sa larawan 2 (mga distansya sa pagitan ng mga hilera: 2.5cm)
  2. Inakma mo ang 6 na hanay ng mga LED sa mga larawang inukit, kasama ang Anode wire na nakaharap sa larawang inukit, upang ang 3 mga Cathode (R, G, B) ay nakaharap
  3. Upang ikonekta ang mga Cathode na nakaposisyon sa itaas ng bawat isa (tingnan ang larawan 2) kailangan namin ng higit pang kawad (kaya't muli kaming 6 Haligi x 3 Cathodes x 6 Walls = 108 mga tinned wire na piraso tulad ng inilarawan sa huling hakbang (2.) (parehong haba pati na rin))
  4. I-slide ang mga piraso ng kawad mula sa ilalim ng isang haligi sa pamamagitan ng mga butas ng mga Cathode patungo sa tuktok na hilera at solder ang kawad sa lugar sa bawat LED

Ginagawa mo ito ng 6 beses upang makakuha ng 6 Walls ng LEDs.

Ngayon ay maaari na talaga nating tipunin ang mga Wall sa mismong aktwal na kubo. Ngunit upang hawakan ang kubo, kailangan naming bumuo ng isang uri ng ground plan. Para sa mga ito ay simpleng ginamit ko ang ilang manipis na playwud at nag-drill ng maliit na mga butas na 0.8mm dito, upang magkasya ang mga wire na nakabitin mula sa pinakamababang LED Rows (para sa lahat ng 6 LED Walls). Ang mga pagsukat para sa mga butas ng isang solong LED ay naitala sa Hakbang 3 at ang mga distansya sa pagitan ng bawat LED ay 2.5cm.

Gamit ang mga butas sa lugar kinukuha namin ngayon ang unang pader at maniobra ito sa mga butas sa kaliwang kaliwa ng playwud. Ang hilera ng LED sa ibaba ay dapat na umupo mismo sa kahoy, upang sa huli ang lahat ng mga pader ay magkahanay na nakahanay.

Patuloy na gawin ang parehong bagay sa natitirang mga LED Wall, ngunit tandaan na ang Anodes ng Walls ay palaging nakaharap sa parehong direksyon. (sa larawan 3 lahat ng Anodes ng Walls ay nakaharap sa kaliwa)

Kapag ang buong Cube ay nasa lugar na, kailangan nating maghinang ng mga Anode ng bawat layer nang magkasama. Upang magawa ito kumuha kami ng isa pang ~ 16cm na piraso ng tuwid na kawad at itabi ito sa tuktok ng unang layer, upang ang kawad ay hawakan ang lahat ng mga wire ng Anode ng 6 na pader sa isang layer. Panoorin na ang bagong kawad ay hindi hawakan ang alinman sa mga Cathode. Ihihinang ang kawad sa lugar at ulitin ang parehong bagay para sa 5 natitirang mga layer.

Hakbang 5: Mga Kable ng Cube

LED Driver Board
LED Driver Board
LED Driver Board
LED Driver Board
LED Driver Board
LED Driver Board

Mga bahagi para sa LED Driver Board:

  • 7 x TLC5940
  • 6/7 x 10 uF Mga Capacitor
  • 2 x 1000 uF Capacitors
  • 7x 2.2kOhm Mga Resistor
  • 7 x 28pin IC Sockets
  • 7 x 0.1uF Capacitors
  • Ribbon Cable

Ang paglipat sa mga control circuit, hinayaan muna ang pagtingin sa LED Driver board. Tulad ng nabanggit bago kailangan namin ng 7 TLC5940 na konektado sa Arduino Nano. Ang lahat ng mga TLC5940 Chips ay daisy na nakakadena na nangangahulugang ang lahat ng mga control Pins ng mga Driver ay magkakaugnay (hal. Ang BLANK pin ng unang TLC ay konektado sa BLANK ng pangalawa, pangatlo, pang-apat,… TLC) at lahat ay konektado sa Arduinowith ang parehong mga wire, maliban sa Serial In na unang konektado mula sa isang Arduino Digital Pin sa unang TLC, pagkatapos ang Serial Out pin ng unang TLC na ito ay konektado sa SIN pin ng pangalawang TLC at iba pa (tingnan ang larawan 4)…

Kaya't ang eskematiko ng TLC Board ay medyo simple tulad ng nakikita mo sa naka-attach na eskematiko.

(KUNG GUSTO NYONG GUSTO ANG BOARD JUMP TO STEP 8)

Nag-attach din ako ng isang screenshot ng eskematiko sa frizz na kinabibilangan ng mga label ng pin at isang GIMP.xcf file na may mga layer para sa bawat koneksyon sa Control Pin na pinaghiwalay.

Magsimula sa pamamagitan ng paghihinang sa lahat ng mga socket ng IC sa lugar, pagkatapos ay idaragdag ang 100nF Capacitors sa bawat TLC, na sinusundan ng 2.2kOhm resistorsto sa IREFand GND at ang 7 pin Header sa kanang tuktok na sulok.. Pagkatapos nito maaari mo lamang sundin ang.xcf file sa pamamagitan ng nagsisimula sa "SIN layer" sa Gimp file na nagpapakita kung paano ikonekta ang mga Serial IN / OUT na mga pin ng mga Driver gamit ang Ribbon Cables, pagkatapos ay paganahin ang CLK Layer sa GIMP at iba pa. Siguraduhin na mayroon kang mahusay na mga koneksyon ng + at - Mga Pin sa pin Header sa kanang itaas Ang natitirang iskema ay dapat na nagpapaliwanag sa sarili ngunit siguraduhing nagdaragdag ka ng sapat na 1000uF at 10uF Capacitors sa pisara na ito ay hindi gaanong nauugnay kung saan eksaktong iposisyon mo sila.

Kapag natapos ang board na ito maaari kang magpatuloy sa Arduino Board sa susunod na hakbang.

Hakbang 7: Arduino + Bluetooth Control Board

Arduino + Bluetooth Control Board
Arduino + Bluetooth Control Board

Mga Bahagi para sa Control Board:

  • 6 x IRF 9540 P-Channel MOSFETs
  • 1 x 10 uF Capacitors
  • 1 x 1000 uF Capacitors
  • 7 x 2.2kOhm Mga Resistor
  • 1 x 1kOhm Resistor
  • 2 x 14 Babae na pin Header
  • 1 x Arduino Nano
  • 1 x 1N4001 Diode
  • 1 x 0.1uF Capacitors
  • 1 x DC Jack PCB Mount
  • 1 x HC-05 Bluetooth Module
  • 1 x 3.5mm Audio Jack

Pangunahing hinahawakan ng Arduino Control Board ang multiplexing pati na rin ang pagbibigay ng katapat ng pin header ng LED Driver board.

Paghihinang sa perfboard:

  1. Maglagay ng dalawang babaeng header ng Pin upang kumilos bilang socket para sa Arduino sa gitna ng pisara.
  2. Ilagay ang 6 MOSFETs sa isang hilera sa tabi ng bawat isa sa kanang bahagi ng Arduino (ang gilid sa mga Analog Pins) at magdagdag ng isang resistor na 2.2kOhm sa pagitan ng una at huling pin bawat.
  3. Ngayon ilagay ang 6 pin header sa harap ng MOSFETs (gitna ng hilera) at ikonekta ang 6 DRAIN pin ng FETs (gitnang pin) sa header at ang mga pin ng GATE (kaliwang pin) ng FET sa kani-kanilang mga Arduino Analog pin.
  4. Susunod, maghinang ang 7pin header para sa koneksyon sa LEDDriver sa kabilang panig ng Arduino, mag-iwan ng ilang puwang para sa mga kable at solder ang lahat ng mga koneksyon mula sa Arduino sa pin header.
  5. Magdagdag ng ilang mga capacitor (1-2 1000uF, 1 10uF, 100nF sa tabi ng Arduino) para sa mga posibleng kasalukuyang drains.
  6. Maghinang ng isang 4 pin header sa tabi ng likod na bahagi ng Arduino para sa module na HC-05 at gawin ang 4 na koneksyon sa VCC, RX, TX, GND at huwag kalimutang gumawa ng isang boltahe na mahati mula sa RX Pin ng HC-05 at ang TX Pin ng Arduino (tingnan dito)
  7. Ilagay ang DC Jack sa anumang gilid ng board na may switch sa tabi at ikonekta ang kanang pin ng switch sa + Pin ng DC Jack
  8. Panghuli gawin ang lahat ng kinakailangang mga koneksyon sa Power mula sa GND Pin ng DC Jack at sa kanang pin ng switch (VCC) sa Arduino, MOSFETs, Capacitors at HC-05 tulad ng nakikita sa eskematiko. Tandaan na idagdag lamang ang Diode na nagbibigay lamang ng Power mula sa VCC pin ng switch upang dumaloy sa Arduinos 5V pin, hindi sa ibang paraan. (Pinoprotektahan nito ang Arduino kapag pinaprograma ito sa pamamagitan ng koneksyon sa USB)

Para sa koneksyon ng kuryente ginamit ko ang isang DC Power Jack na may isang simpleng switch, maaari mo ring gamitin ang isang USB Connector kung nais mo. Na-outsource ko ang power konektor sa isa pang maliit na circuit board upang maipasok nang mabuti sa aking kaso na gawa sa kahoy ngunit maaari mo lamang itong direktang ilagay papunta sa Arduino Board. Tulad ng nabanggit sa unang hakbang mayroon ding isang MSGEQ7 Connection Circuit sa eskematiko ngunit balewalain lamang iyon kung hindi mo ginagamit ang isang MSGEQ7. (Para sa karagdagang impormasyon tungkol sa pag-andar ng MSGEQ7 mag-click dito)

Huwag kalimutang gumawa ng isa pang 7Pin Ribbon Cable na may mga male pin Header sa bawat dulo para sa pagkonekta sa Arduino board sa Driver board

Hakbang 8: Opsyonal: Pag-ukit sa Mga Circuit Board

Opsyonal: Pag-ukit sa Mga Circuit Board
Opsyonal: Pag-ukit sa Mga Circuit Board
Opsyonal: Pag-ukit sa Mga Circuit Board
Opsyonal: Pag-ukit sa Mga Circuit Board
Opsyonal: Pag-ukit sa Mga Circuit Board
Opsyonal: Pag-ukit sa Mga Circuit Board

Kaya't kung hindi mo gusto ang paghihinang ng maraming mga kable ng kurso maaari mo ring pag-ukitin ang mga kinakailangang PCB kung mas gusto mo iyon.

Sa aking Cube ang Arduino board at ang Power / Audio konektor board ay parehong nakaukit na mga board gamit ang kalakip na eskematiko / EAGLE na mga file. Sa unang pagkakataon na nagkamali ako sa eskematiko kaya kinailangan kong gawing muli ang LED Driver board tulad ng ginawa ko sa huling hakbang. Walang malaking kalamangan upang mag-ukit ng board sa halip na gumamit ng perboard, kaya huwag mag-atubiling mag-ukit sa board o maghinang ito sa perfboard.

Sa naka-attach na.zip maaari kang makahanap ng parehong isang BOARD file pati na rin isang file na SKEMATIK.

Pansinin na ang mga nangungunang bakas ng layer (pula) ay dapat na mga tulay ng kawad (dahil hindi ko maukit ang dalawang panig na board sa bahay). Ipinapakita ng hindi nababagong mga bakas ang mga koneksyon na gagawin sa pamamagitan ng mga kable para sa mga babaeng Pin Header.

Kasama sa eskematiko ang tampok na MSGEQ7, na maaari mo lamang ialis sa pamamagitan ng pagtanggal ng seksyon ng eskematikong minarkahang "(MSGEQ7)" sa screenshot ng iskemang.pdf.

Hakbang 9: Pagkonekta sa Cube

Pagkonekta sa Cube
Pagkonekta sa Cube
Pagkonekta sa Cube
Pagkonekta sa Cube
Pagkonekta sa Cube
Pagkonekta sa Cube

Upang ikonekta ang lahat ng mga bahagi ng Cube, magsimula sa pamamagitan ng pag-plug sa 7pin Cable sa Arduino Board at sa Driver Board (tiyaking tama ang oryentasyon!). Susunod na plug sa HC05 Module sa 4 Pin header at ikonekta ang Power Board kung pinaghiwalay.

Upang ikonekta ang 7x16 Pin Headers ng Cube siguraduhing magsimula sa unang TLC (ang isa na ang SIN pin ay konektado sa Arduino nang direkta). Hanapin ang tamang 16pin Cable mula sa Cube at ikonekta ito sa header ng pin ng unang TLC (siguraduhin na ang cable para sa Cathode Nr.0 ay kumokonekta sa unang TLC OUT0 Pin!). Magpatuloy at ikonekta ang iba pang mga 16pin Cables sa mga kaukulang header ng TLC sa tamang pagkakasunud-sunod.

Huling ngunit hindi pa huli, ikonekta ang 6Pin Cable para sa Anodes mula sa Cube sa header ng 6Pin sa Control Board sa tabi ng MOSFETs.

Upang tapusin ang Cube nagdagdag ako ng mga pader sa kaso na may ilang higit pang playwud na may itim na pintura dito at nakadikit sa kanila.

Natapos na kami sa lahat ng kinakailangang hardware para sa buong build!

Hakbang 10: Software: Multiplexing Cycle

Software: Multiplexing Cycle
Software: Multiplexing Cycle

Ngayon sa teorya ang Arduino ay patuloy na nagpapatupad ng sumusunod na ikot:

  1. Kung ang LayerDuration ay lumipas na, i-load ang Mga Halaga para sa susunod na Layer sa mga TLC, i-off ang kasalukuyang Layer, i-on ang susunod na Layer, i-reset ang LayerDuration, gawin ang mga bagong Halaga sa mga TLC
  2. Kung ang FrameDuration ay lumipas na, i-load ang bagong Frame ng kasalukuyang Animation sa pamamagitan ng pag-iimbak ng mga halaga para sa lahat ng mga LED at Kulay sa buffer ng ValueLed , i-reset ang FrameDuration
  3. Kung magagamit ang Bluetooth Data, mag-react sa kanila (Baguhin ang Mga Animation, Liwanag,…) (karagdagang impormasyon sa paglaon)

Tulad ng nakikita mo ang pangunahing pokus ng code ay ang bilis. Mahalaga na ang oras upang baguhin ang Layer ay minimal.

Kung mas mabilis mong buksan / i-off ang Mga Layer mas maraming "Mga Frame" ang makukuha mo. para sa isang 6x6x6 RGB LED Cube tulad nito naisip ko na ang isang Tagal ng Layer na 1700 microSec. ay sapat na mabuti upang mapanatili ang pag-flicker sa isang minimum at dapat iwanang sa halagang ito. Kinokontrol ng FrameDuration ang higit pa sa bilis ng Animation upang mabago ito para sa iba't ibang Mga Animasyon.

Sa susunod na hakbang titingnan namin kung paano talaga namin maisusulat ang aming sariling mga Animation.

Hakbang 11: Pasadyang Mga Animasyon

Pasadyang Mga Animasyon
Pasadyang Mga Animasyon
Pasadyang Mga Animasyon
Pasadyang Mga Animasyon

Upang magpatupad ng isang animasyon kailangan naming itakda ang buffer ng ValueLed sa Mga Halaga na gusto namin para sa susunod na Frame tuwing lumipas ang FrameDuration. Ginagawa namin iyon sa pamamagitan ng pagtawag sa pagpapaandar ng Macro na "SETLED (x, y, z, COLOR, Brightness)"

Ang x, y, z ay ang mga coordinate ng LED na nais naming itakda at ang Kulay (PULANG, GREEN o BLUE) ang kulay na nais naming itakda at ang Liwanag ay ang aktwal na Halaga para sa partikular na kulay na itinakda namin.

Kaya't halimbawa ipatupad ang isang Animation na simpleng ipinapakita ang kulay ng Red, Green at Blue nang sapalaran sa buong cube maaari mo lamang itong gawin:

walang bisa randomLedsFull () {

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

Ang pamamaraang ito ay tinatawag na sa tuwing lumipas ang FrameDuration at napili mula sa switch ng case na case sa loop (). Kung sumulat ka ng mga bagong animasyon maaari mong idagdag ang mga ito sa pamamagitan lamang ng pagdaragdag ng mga ito sa switch-case.

Hakbang 12: Karagdagang: AnimationCreator

Karagdagang: AnimationCreator
Karagdagang: AnimationCreator

Sumulat din ako ng isang AnimationCreator gamit ang JavaFX at Java3D.

Ginagawa nitong napakadali sa paglikha at pag-edit ng mga pasadyang Animation sa pamamagitan ng pagbibigay ng isang madaling maunawaan na UI.

Maaari kang lumikha, mag-edit, palitan ang pangalan at muling ayusin ang mga Animation para sa 4x4x4, 6x6x6 o 8x8x8 LED Cubes

Upang lumikha ng isang bagong Animation pindutin lamang ang File> Bago, sa ilalim ng "Cube" maaari mong piliin ang laki ng Cube, upang maitakda ang Kulay ng isang LED piliin ang kulay na gusto mo sa tagapili ng Kulay sa kaliwa at pagkatapos ay kaliwa i-click ang LEDs na gusto mo ang kulay para sa Frame na iyon. Upang magdagdag ng isa pang hit ng Frame na "Susunod" o "+". Ang natitirang Kontrol ng UI ay lubos na nagpapaliwanag, ang mga checkbox sa tabi ng Mga Cubes Layer ay upang suriin kung aling Mga Layer ang dapat na maapektuhan ng paglilipat at "Panatilihin ang Frame". Subukan lamang ito at malalaman mo ang lahat nang walang oras.

Bilang karagdagan upang gayahin ang Animation maaari mong i-click ang Button na "Tingnan ang 3D" na magbubukas ng isa pang window na may isang Java3D Model ng Cube. Maaari mong paikutin ang Camera habang pinipigilan ang kaliwang pindutan ng mouse (Pindutin ang R upang i-reset ang Camera). Upang i-play / i-pause ang Animation pindutin ang P Key, upang i-reset ang hit ng Animation Q. Ang TextField sa ibaba ng "View 3D" ay nagpapahiwatig ng kasalukuyang FrameTime, burahin ang bilis ng iyong animasyon.

Kapag tapos ka na sa Animation bigyan ito ng isang pangalan at pindutin ang File> I-save Bilang … at i-save ang Animation sa parehong folder bilang Cubo_Control.ino Sketch.

Upang maisama sa iyo ang bagong Animation sa Sketch buksan ang Cubo_Control.ino at idagdag ang sumusunod na code sa tuktok ng Sketch:

# isama ang "RGBit.h" // Palitan

Mag-scroll pababa sa BTEvent () at magdagdag ng pahayag ng kaso sa switch-case ng mga animasyon

switch (curAnim) {

… Case 10: animation = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; pahinga; kaso 11: // IYONG BAGONG animasyon animasyon = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; pahinga; }

Hakbang 13: Bluetooth App

Bluetooth App
Bluetooth App

Upang aktwal na makontrol ang Cube, salamat sa HC-05 Module ito ay medyo simple upang bumuo ng isang Bluetooth app upang ikonekta ang iyong Telepono sa Cube.

Link sa App: Github

Ang App ay bukas na mapagkukunan kaya't huwag mag-atubiling magdagdag ng karagdagang Mga Animation / tampok sa iyong sarili.

  • Simulan ang App, hihilingin sa iyo na i-on ang Bluetooth
  • I-click ang "Paghahanap" at lilitaw ang isang listahan ng mga magagamit na koneksyon sa Bluetooth. Kilalanin ang HC-05 Modyul mula sa Cube at mag-click dito.
  • Kung mayroong isang error kapag sinusubukang kumonekta sa Cube, subukang ipares ang module na HC-05 sa mga setting ng Bluetooth nang manu-mano
  • Kapag nakakonekta ang App ay lumipat sa Control Screen at ang koneksyon sa Bluetooth ay naitaguyod

Mga Kontrol

  • Bilis at Liwanag: Baguhin ang mga halaga ng slider upang pabilisin / pabagalin ang Animation o baguhin ang ningning
  • Mga Animation: Mag-click sa isang pindutan upang baguhin ang Animation, bilang default ang mga Animation ay nag-loop (Simula mula sa kaliwang tuktok, ang pindutan ay tumutugma sa currAnim)
  • Pag-scroll sa Teksto: I-click ang pindutang "Teksto" na nagdadala ng isang dayalogo upang mai-input ang ilang teksto na mai-scroll sa cube
  • Command: Maaari mong ipasok ang mga utos nang manu-mano gamit ang Command TextField (tingnan ang paraan ng BTEvent () ng Cubo_Control.ino para sa syntax)
  • Ahas: klasikong Laro ng Ahas (pula: mansanas, berde: ahas Ulo, asul: sneak Tail) (Mga Kontrol: 4 na direktang Mga Pindutan, Pataas at Pababa ay nag-uudyok sa pamamagitan ng pag-on ng Telepono pasulong (Pataas) o paatras (Pababa))
  • Audio Visualizer: Ginamit ng MSGEQ7 upang mailarawan ang 6 na audio band mula sa AUX Jack (Button para sa Animation 7)

Hakbang 14: Showcase

Inirerekumendang: