Krugovi

Kako izgraditi 8x8x8 LED kocka i kontrolirati je s Arduino: 7 koraka (sa slikama)

How to make a 8x8x8 LED Cube at Home

How to make a 8x8x8 LED Cube at Home

Sadržaj:

Anonim

Postoji mnogo LED kocki na Instructables, pa zašto onda napraviti još jedan? Većina su za male kocke koje se sastoje od 27 ili 64 LED-a, što je rijetko veće jer su ograničene na broj izlaza dostupnih na mikrokontroleru. Ova kocka će imati 512 LED dioda, a trebat će vam samo 11 izlaznih žica od Arduina. Kako je ovo moguće? Korištenjem Allegro Microsystems LED upravljačkog programa A6276EA.
Pokazat ću vam kako sam napravila samu kocku, ploču s kontrolerima i konačno kod koji će ga zasjati.


Pribor:

Korak 1: Materijali

Svi dijelovi koje ćete morati izraditi:
1 Arduino / Freeduino s čipom Atmega168 ili višim
512 LED dioda, veličina i boja ovise o vama, koristio sam 3mm crvene
4 A6276EA čipovi upravljačkih programa za LED iz Allegro
8 NPN tranzistora za kontrolu protoka napona, koristio sam BDX53B Darlington tranzistor
4 otpornika od 1000 oma, 1/4 vata ili više
12 otpornika 560 ohma, 1/4 vata ili više
1 330uF elektrolitički kondenzator
4 24-pinska IC utičnica
9 16-pinskih IC utičnica
4 "x4" (ili veći) komad perfboarda koji drži sve dijelove,
Stari obožavatelj računala
Stari kabel kontrolera
Staro napajanje računala
Puno žica za spajanje, lemljenje, lemilo, fluks, bilo što drugo
učinite život lakšim dok to činite.
7 "x7" (ili veći) komad drva koji se koristi za izradu vodilice za LED lemljenje
Lijep slučaj za prikaz gotove kocke
Moj izbor Arduino / Freeduino je Bare Bones Board (BBB) ​​s www.moderndevice.com. LED diode kupljene su od eBay-a i koštale su 23 USD za 1000 LED dioda isporučenih iz Kine. Preostala elektronika kupljena je od tvrtke Newark Electronics (www.newark.com) i trebala bi koštati samo 25 USD. Ako morate kupiti sve, ovaj projekt bi trebao koštati samo oko 100 dolara.
Imam mnogo stare kompjuterske opreme tako da su ti dijelovi skinuti s gomile otpada.

Korak 2: Sastavite slojeve

Kako napraviti 1 sloj (64 LED) ove 512 LED kocke:
LED diode koje sam kupio bile su promjera 3 mm. Odlučio sam koristiti male LED diode kako bih smanjio troškove i učinio konačnu veličinu kocke dovoljno malom da sjedim na stolu ili polici bez potpunog preuzimanja stola ili police.
Nacrtao sam rešetku 8x8 s približno 6 inča između redaka. To mi je dalo kocku veličine oko 4,25 inča po strani. Izbušite rupe od 3 mm gdje se linije sastaju kako biste napravili šablonu koja će držati LED diode dok lemite svaki sloj.
A6276EA je trenutni uređaj za uvrtanje. To znači da pruža put do zemlje, a ne put do izvora napona. Morat ćete izgraditi kocku u zajedničkoj anodnoj konfiguraciji. Većina kocki je izgrađena kao zajednička katoda.
Duga strana LED diode općenito je anoda, provjerite je li vaša. Prvo što sam učinio bilo je testiranje svake LED. Da, to je dug i dosadan proces i možete ga preskočiti ako želite. Radije bih proveo vrijeme da testiram LED diode nego da nađem mrtvu točku u svojoj kocki nakon što je sastavljena. Našao sam 1 mrtvi LED od 1000. Nije loše.
Izrežite 11 komada čvrste, neizolirane žice za spajanje na 5 inča. Stavite 1 LED u svaki kraj retka u vašoj jig-u, a zatim lemite žicu na svaku anodu. Sada stavite preostalih 6 LED u red i lemite te anode na žicu. To može biti okomito ili vodoravno, bez obzira na sve slojeve na isti način. Dok završavate svaki red, izrežite višak olova iz anoda. Otišao sam oko 1/8 ".
Ponovite sve dok ne završite svih 8 redaka. Sada lemite 3 komada žice preko redova koje ste upravo napravili kako biste ih sve spojili u jedan komad. Zatim sam testirao sloj pričvršćujući 5 volti
spojite žičanu rešetku kroz otpornik i dotaknite uzemljenje svake katode. Zamijenite sve LED diode koje se ne upale.
Pažljivo uklonite sloj iz šablona i stavite ga na stranu. Ako savijate žice, ne brinite, samo ih ispravite što bolje možete. Vrlo je lako saviti se. Kao što možete vidjeti na mojim slikama, imao sam mnogo savijenih žica.
Čestitamo, učinili ste 1/8. Napravite još 7 slojeva.
OPCIJA: Kako bi se slojevi lemljenja zajedno (korak 3) učinili lakšim, dok je svaki sljedeći sloj još uvijek u šablonskom zavoju gornje četvrtine inča katode naprijed 45 do 90 stupnjeva. To će omogućiti
voditi do LED-a koji se spaja i učinit će lemljenje mnogo lakšim. Nemojte to činiti na svoj prvi sloj, mi ćemo proglasiti da je jedan donji sloj i da vodi moraju biti ravni.

Korak 3: Sastavite kocku

Kako spajati sve slojeve kako bi napravili kocku:
Težak dio je gotovo gotov. Sada, pažljivo postavite jedan sloj natrag u jig, ali nemojte koristiti previše pritiska, želimo ga moći ukloniti bez savijanja. Ovaj prvi sloj je gornja strana kocke. Stavite drugi sloj na vrh prvog, poravnajte vodiče i počnite lemiti. Otkrio sam da je najlakše napraviti kutove prvo, a zatim vanjski rub, a zatim unutar redaka.
Nastavite dodavati slojeve dok ne završite. Ako pre-savijena vodi onda pobrinite se da spremite sloj s ravno vodi za posljednji. To je dno.
Imao sam malo previše prostora između svakog sloja pa nisam dobio oblik kocke. Nije to ništa, mogu živjeti s tim.

Korak 4: Izgradnja Upravljačkog odbora

Kako izgraditi ploču kontrolera i spojiti je na Arduino:
Slijedite shemu i izgradite ploču kako god odaberete. Postavio sam kontrolne čipove u središte ploče i koristio lijevu stranu za držanje tranzistora koji kontroliraju struju za svaki sloj kocke i koristio je desnu stranu za držanje konektora koji idu od čipova kontrolera do katoda LED stupaca.
Pronašao sam stari 40-milimetarski računarski ventilator s ženskim molex konektorom da ga uključi u napajanje računala. Ovo je bilo savršeno. Mala količina strujanja zraka preko čipa je korisna i sada imam jednostavan način da osiguram 5 volti kontrolerima i Arduinu.
Na shematskom prikazu, RC je otpornik ograničenja struje za sve LED diode spojene na svaki A6276EA. Koristio sam 1000 ohma jer daje 5 miliampera na LED, dovoljno da ga zapali. Koristim High Brightness, a ne Super Brite LED diode, tako da je trenutni odvod manji. Ako je svih 8 LED dioda u stupcu upaljeno odjednom, to je samo 40 miliampera. Svaki izlaz A6276EA može podnijeti 90 miliampera tako da sam dobro u dometu.
RL je otpornik spojen na logičke ili signalne vodove. Stvarna vrijednost nije jako važna sve dok postoji i nije prevelika. Koristim 560 ohma jer sam ih imao na raspolaganju.
Koristio sam tranzistor snage sposoban za rukovanje do 6 ampera za kontrolu struje koja ide do svakog sloja kocke. Ovo je pretjerano za ovaj projekt, jer će svaki sloj kocke privući samo 320 miliampera sa svim LED-ovima. Htjela sam da prostor raste i da bih kasnije mogao koristiti kontrolnu ploču. Koristite bilo koju veličinu tranzistora koji odgovara vašim potrebama.
Kondenzator od 330 uF preko izvora napona je tu da pomogne izgladiti bilo kakve manje fluktuacije napona. Budući da koristim staro napajanje računala, to nije potrebno, ali sam ga ostavio u slučaju da netko želi koristiti adapter od 5 volti za napajanje svoje kocke.
Svaki A6276EA kontrolni čip ima 16 izlaza. Nisam imao nijednu drugu prikladnu konektor tako da sam zalemljen dovodi do nekih 16 pin IC utičnice i da će koristiti one za povezivanje odbora odbora na kocke. Također sam izrezati IC socket na pola i koristi ga za spajanje 8 žica koje povezuju tranzistore na slojeve kocke.
Odrezao sam oko 5 inča od kraja starog disketnog kabela koji će se koristiti kao priključak za Arduino. Floppy kabel je 2 reda od 20 pinova, a Gola Bones ima 18 pinova. To je vrlo jeftin način (besplatno) za povezivanje Arduina s pločom. Razdvojio sam trakasti kabel u skupine od po 2 žice, skinuo krajeve i zalemio ih zajedno. To vam omogućuje da priključite Arduino u bilo koji red konektora. Slijedite shemu i spojite konektor na svoje mjesto. Nemojte zaboraviti lemiti 5 volti i uzemljenje za konektor kako bi osigurao napajanje Arduinu.
Namjeravam koristiti ovu ploču kontrolera za druge projekte tako da modularni dizajn lijepo radi za mene. Ako želite ožičiti veze, to je u redu.

Korak 5: Izgradite kućište za prikaz

Učinite da finalni proizvod izgleda lijepo:
Našao sam ovu drvenu škrinju u Hobby Lobbyju za 4 dolara i mislio da će biti savršeno jer ima prostora unutra da drži svu žicu plus izgleda lijepo. Zamrljala sam jednu crvenu, istu mrlju koju sam upotrijebila na radnom stolu tako da se slažu.
Nacrtajte rešetku na vrhu iste veličine kao i rešetku koja se koristi za šablon za lemljenje (.6 inča između redaka). Izbušite rupe kako biste omogućili dovodima kroz vrh, i izbušite drugu rupu iza rešetke za žice sloja / ravnine (od tranzistora u koraku 4). Naučio sam na teži način da je pokušati poravnati 64 vodstva i proći kroz rupe vrlo teško. Napokon sam odlučio ponovno bušiti sve rupe malo veće kako bi se proces brže odvijao. Završio sam koristeći oko 0,25 svrdla.
Sada kada kocka sjedi na vrhu zaslona, ​​savijte ugaone vodove tako da kocka ostane na mjestu dok pričvršćujete žice. Provjerite jeste li sve žice pričvrstili ispravnim redoslijedom.
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
I spojite žice između slojeva (označene kao "ravnine" na shematskom prikazu) i tranzistore. Tranzistor na Arduino pin 6 je gornji sloj kocke.
Ako ste dobili pogrešne žice, to je donekle ispravljivo unutar koda, ali to može zahtijevati puno posla, pa ih pokušajte dovesti u pravi red.
Ok, sve je izgrađeno i spremno za pokretanje, idemo uzeti neki kod i isprobati ga.

Korak 6: Kod

Kôd za ovu kocku je drugačiji od većine, objasnit ću kako se prilagoditi.
Većina kocka koristi izravne zapise u stupce. Kod kaže da stupac X mora biti osvijetljen tako da mu damo malo soka i gotovi smo. To ne radi kada se koriste kontrolni čipovi.
Upravljački čipovi koriste 4 žice za razgovor s Arduinom: SPI-in, Sat, Latch i Enable. Ja prizemljena Enable pin (pin 21) kroz otpornik (RL) tako da je izlaz uvijek omogućen. Nikada nisam koristio Enable tako da sam ga izvadio iz koda. SPI-in je podatak iz Arduina, Sat je vremenski signal između njih dok razgovaraju, a Latch govori kontroleru da je vrijeme da prihvati nove podatke.
Svaki izlaz za svaki čip kontrolira 16-bitni binarni broj. Na primjer; slanje 1010101010101010 u kontroler uzrokovalo bi da svaka druga LED dioda na kontroleru svijetli. Vaš kod treba proći kroz sve što je potrebno za prikaz i izgraditi taj binarni broj, a zatim ga poslati na čip. Lakše je nego što zvuči. Tehnički, to je hrpa bitovskih dodataka, ali ja sam loš u bitovskoj matematici pa sve radim u decimalnom.
Decimalna za prvih 16 bitova je sljedeća:
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
1 << 4 == 16
1 << 5 == 32
1 << 6 == 64
1 << 7 == 128
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
1 << 11 == 2048
1 << 12 == 4096
1 << 13 == 8192
1 << 14 == 16384
1 << 15 == 32768
To znači da ako želite osvijetliti izlaze 2 i 10, dodajte decimale (2 i 512) zajedno kako biste dobili 514. Pošalji 514 u kontroler i izlazi 2 i 10 će svijetliti.
No, imamo više od 16 LED-a, tako da postaje malo teže. Moramo izgraditi informacije o prikazu za 4 čipa. Što je lako kao i izgradnja za 1, samo to još 3 puta. Koristim globalni niz varijabli za držanje kontrolnih kodova. Tako je lakše.
Kada ste spremni za slanje svih 4 prikaza, ispustite zasun (postavite ga na LOW) i počnite slati kodove. Prvo morate poslati posljednji. Pošaljite kodove za čip 4, zatim 3, zatim 2, zatim 1, a zatim ponovno postavite zasun na HIGH. Budući da je pin uključivanja uvijek spojen na masu, zaslon se odmah mijenja.
Većina kubičnih kodova koje sam vidjela na Instructablesu i webu općenito, sastoji se od velikog skupa kodova postavljenih za izvođenje unaprijed postavljene animacije.To dobro radi za manje kocke, ali za pohranu, čitanje i slanje 512 bita binarnih datoteka svaki put kada želite promijeniti zaslon zauzima puno memorije. Arduino nije mogao podnijeti više od nekoliko okvira. Tako sam napisao neke jednostavne funkcije da pokažem kocku u akciji koja se oslanja na izračunavanje, a ne na unaprijed postavljene animacije. Uključio sam malu animaciju kako bih pokazao kako se to radi, ali prepustit ću vam da napravite vlastite zaslone.
cube8x8x8.pde je Arduino kod. Planiram nastaviti dodavati funkcije kôdu i povremeno ću ažurirati program.
matrix8x8.pde je program u obradi za izradu vlastitih zaslona. Prvi dati broj ide u pattern1 , drugi u pattern2 , itd.
Tehnički list za A6276EA dostupan je na:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Korak 7: Prikažite svoj ručni rad

Gotovi ste, sada je vrijeme da uživate u vašoj kocki.


Kao što možete vidjeti, moja kocka je izašla malo iskrivljena. Nisam baš zainteresirana za izgradnju još jedne, iako ću živjeti s time da je kriva. Imam nekoliko mrtvih spotova u koje moram pogledati. Možda je to loša veza, ili će mi možda trebati novi čip kontrolera.
Nadam se da će vas ovaj Instructable inspirirati da napravite vlastitu kocku ili neki drugi LED projekt pomoću A6276AE. Objavite vezu u komentarima ako je izgradite.
Pokušavam odlučiti odakle ću otići. Upravljačka ploča će također kontrolirati 4x4x4 RGB kocku, tako da je to moguće. Mislim da bi bilo uredno napraviti sferu i način na koji sam napisao kod, to ne bi bilo preteško.