Mainos
Joulu on taas täällä, ja onko kyse vuoden suosikkilomastasi vai tuoko se sinut esiin kylmässä hikeessä, koristeet alkavat nousta. Miksi et sisällyttäisi DIY-tekniikkaa koristeisiisi korostamaan niitä tänä vuonna?
Tässä projektissa rakennamme säänkestävää, liikeaktivoitua 8 x 8 LED-matriisia tyhjästä… alle 20 dollarilla. Se on suunniteltu sopimaan normaalin joulupukin seppeleen keskelle, vaikka sitä voitaisiin käyttää missä tahansa talon ympäristössä. Ja koska se on akkukäyttöinen, myös muualla talossa!
Osaluettelo
Tätä hanketta varten tarvitset:
- Työläs.
- Käytin nano sillä se on pieni koko, mutta voit käyttää melkein mitä tahansa Arduino-yhteensopiva mikrokontrolleri Arduinon osto-opas: minkä lautakunnan pitäisi hankkia?Siellä on niin monia erilaisia Arduino-levyjä, sinulle annetaan anteeksi sekoittaaksesi. Mitä sinun pitäisi ostaa projektiisi? Autamme meitä tässä Arduinon osto-oppaassa! Lue lisää .
- 64 x punaiset merkkivalot.
- 8 x 220 ohmin vastukset.
- PIR-liiketunnistin.
- monet Arduino-aloitussarjat Mitä sisältyy Arduino-aloituspakettiin? [MakeUseOf selittää]Olen aiemmin esitellyt Arduinon avoimen lähdekoodin laitteiston täällä MakeUseOfilla, mutta tarvitset muutakin kuin pelkkää Arduinoa rakentaaksesi siitä jotain ja aloittaaksesi käytännössä. Arduinon "aloitussarjat" ovat ... Lue lisää tule näiden kanssa. Ostin monipakkauksen Amazon 10 dollaria.
- 1 pala prototyyppikortti.
- Tässä käytettiin 9 x 7 cm, vaikka voit käyttää mitä tahansa haluamaasi kokoa.
- 7-12v akku.
- Tässä käytetään budjettisyistä yksinkertaista akkua, mutta a matkapuhelinlaturi Paras Pokemon Go -pankkiPokemon Go lyö hekkiä puhelimen akusta. Pokemon-tarttuvan mehun puristaminen puhelimesta vaatii virtapankin. Mutta mikä on paras akku siellä? Lue lisää voi kestää vielä kauemmin.
- Valikoima lyhyt lankapala.
- Tupperware-laatikko tai vastaava säänkestävä kotelo.
- Varmista, että se on riittävän suuri, jotta se mahtuu kaikkiin komponentteihisi!
- Joulukranssi.
- Mikä tahansa tekee, varmista vain, että kotelorasia mahtuu sen sisälle.
- Juotosrauda ja juote.
Vaikka se ei ole ehdottoman välttämätöntä, koska komponentteja voitiin juottaa suoraan Nanoon, löysin myös pienen leipätaulun erittäin hyödylliseksi testauksen aikana. Kuuma liimapistooli auttaa myös kaikkien osien kokoamisessa.
Tämä projekti vaatii melko paljon juottamista, ja aloittelijana se voi tuntua pelottavalta. Olen henkilökohtaisesti vielä hyvin aloittelija juottamisessa ja huomannut, ettei se ole niin haastavaa tai aikaa vievää kuin miltä näyttää. Jos olet myös uusi juottamista varten, tässä on joitain hyviä vinkkejä Opi juottamaan näiden yksinkertaisten vinkkien ja projektien avullaOletko pelotella sinua hieman ajatuksesta kuumasta raudasta ja sulasta metallista? Jos haluat aloittaa työskentelyn elektroniikan kanssa, sinun on opittava juottamaan. Autamme meitä. Lue lisää .
Jos et todella ole kiinnostunut juotosideasta, tämä projekti on myös mahdollista LED-nauhat Viikonloppuhanke: Rakenna jättiläinen LED-pikselinäyttöRakastan LED-pikseleitä: kirkkaita, helppo hallita, halpoja ja niin monipuolisia. Tänään muutamme niistä iso pikselinäyttö, joka voidaan ripustaa seinälle. Lue lisää tai valmis LED-matriisi, joka sinulla voi olla aloituspakkauksessa. Jotkut koodisäädöt ovat tarpeen, jos päätät mennä tälle reitille.
Arduinon asentaminen
Aloitamme piirikaaviosta Arduinolle ja johdoille, jotka kiinnitämme PIR-anturiin ja LED-matriisiin.
Matriisin sisällä
Nyt tehdä 8 x 8 LED-matriisi. On hyvä aloittaa luomalla matriisin yksi rivi ja yksi sarake varmistaaksesi, että se on tarkalleen missä haluat sen prototyyppikortille.
Yllä olevassa valokuvassa kaikki LEDit on sijoitettu siten, että anodit (pidempi, positiivinen jalka) ovat kohti etulevyn yläosaa. Tämä on tärkeää, koska aiomme luoda sarakkeita yhteisistä anodoista yhdistämällä ne toisiinsa ja rivejä yhteisiä katodeja (lyhyempi, negatiivinen osa). Tämän saaminen heti säästää päänsärkyä myöhemmin!
Aion rakentaa yhteisen rivin katodimatriisin, tämä kaavio näyttää kuinka se kaikki on kytketty.
Se voi aluksi näyttää hieman pelottavalta, mutta se on melko yksinkertainen kokoonpano. Kussakin rivissä kaikki katodit yhdistetään oikealta vasemmalle ja kiinnitetään sitten yhteen Arduino-nastamme. Tämän jälkeen teemme saman jokaiselle anodisarakkeelle. Tällä tavalla, riippuen siitä mihin sarakkeeseen virtaa käytetään ja mihin riviin liitumme maahan, voimme kytkeä minkä tahansa yksittäisen LEDin taulukkoon.
Anna juottamisen alkaa
Aloita asettamalla ensimmäinen LED-rivi. Varmista, että kaikki anodit ovat ylöspäin, ja käännä se yli. Huomasin, että lisäämällä uusi LED jokaiseen nurkkaan ja kiinnittämällä toinen päälevyn päälle joustavalla johdolla auttoi pitämään kaiken paikoillaan.
Taivuta nyt yksi kerrallaan kunkin ledin katodi (lyhyt) jalka vasemmalle niin, että ne kaikki menevät päällekkäin. Se on helpointa aloittaa vasemmalta ja toimia oikealta. Jos käytät suurempaa kappaletta protolevyä, voit juottaa ne ensin taululle ja liittää ne yhteen tyynyillä. Ole varovainen, ettet liity mihinkään katodista mihinkään muuhun taulun linjaan tai mihinkään anodiin!
Toista tämä prosessi kaikille kahdeksalle riville, ja kun olet valmis, sinulla pitäisi olla jotain, joka näyttää noin:
Hyppäävät anodit!
Anodien sarakkeet ovat hiukan siistimpiä. Yllä olevassa kaaviossa anodit käyrät joka kerta, kun ne ylittävät katodirivin. Tämä johtuu siitä, että he eivät voi koskettaa rivejä ollenkaan. Meidän on taivutettava anodit katodirivien yli ja kiinnitettävä ne toisiinsa. Saatat huomata, että kynän käyttäminen jalkojen taivuttamiseen auttaa paljon.
Tee tämä jokaiselle anodiriville ja kiinnitä vastus jokaiselle yläandoille. Luultavasti on helpompaa laittaa vastus protolevyn seuraavaan reikään ja liittyä tyynyihin juotolla. Sinulla pitäisi nyt olla jotain tällaista:
Onnittelut! LED-matriisi on valmis. Tarkista juotos huolellisesti tässä vaiheessa varmistaaksesi, ettei siinä ole katkoja ja ettei mikään sarakkeista kosketa rivejä. Älä huolestu, jos se ei näytä kauniilta, tarvitsemme sen vain toimimaan! Voit tarkistaa jokaisen ledin nyt erikseen kiinnittämällä 5v mihin tahansa pylväspäähän ja maadoittamalla mihin tahansa rivinpäähän.
Jos kaikki on hyvin, kiinnitä kiinnitysjohdot jokaiseen sarakkeeseen ja jokaiseen riviin ja kiinnitä ne Arduino-laitteeseesi yllä olevan kuvan osoittamalla tavalla.
Otetaan koodausta
Avaa Arduino IDE ja valitse kortti ja portti. Jos olet uusi Arduino, tutustu tähän aloitusopas. Arduinon aloittaminen: Aloittelijan opasArduino on avoimen lähdekoodin elektroniikan prototyyppialusta, joka perustuu joustavaan, helppokäyttöiseen laitteistoon ja ohjelmistoon. Se on tarkoitettu taiteilijoille, suunnittelijoille, harrastajalle ja kaikille, jotka ovat kiinnostuneita luomaan interaktiivisia esineitä tai ympäristöjä. Lue lisää
Kirjoita tämä koodi editoriin. Se on melko tiheä koodi, jos et tunne sitä, mutta se on saatavilla tässä täysin merkitty auttamaan ymmärtämään, miten se toimii.
const int -rivi [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = väärä; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pikseliä [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME tyhjä = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & tyhjä, & threedownthreein, & tyhjä, & tyhjä, & threedownthreein. }; tyhjä asetus () {varten (int i = 0; i <8; i ++) {pinMode (rivi [i], OUTPUT); pinMode (col [i], OUTPUT); // liiketunnistin pinMode (pirPin, INPUT); digitalWrite (sarake [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; for (int x = 0; x <8; x ++) {varten (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (päällä) {pikseliä [x] [y] = KORKEA; } else {pikseliä [x] [y] = LOW; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} tyhjä refreshScreen () {varten (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (rivi [currentRow], LOW); varten (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = pikseliä [currentRow] [currentCol]; digitalWrite (sarake [currentCol], tämä liite); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (rivi [currentRow], HIGH); }} tyhjä silmukka () {val = digitalRead (pirPin); if (val == KORKEA) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); lähtölaskenta--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Tärkeät ymmärrettävät osat ovat:
refreshSpeed muuttuja. Tämä muuttuja määrittelee kuinka näytön välinen aika päivittyy. Suurempi numero tarkoittaa pidempää odottamista.
Const CHAR_MAP_NAMEs. Tähän laitat jokaisen merkkikartan (tai kehyksen, jos on helpompi ajatella niitä tällä tavalla), jonka haluat näyttää.
noOfFrames muuttuja. Tämä määrittelee kuinka monta kehystä näytetään yhdessä täydessä toistossa. Huomaa, että se voi olla erilainen kuin merkkikarttojen lukumäärä. Jos esimerkiksi haluat näyttää ”CAT”, sinun on määritettävä vain neljä erillistä kehystä: tyhjä, an , a C ja a T.
Kun liiketunnistin havaitsee liikkeen, LED-näytön tulisi vilkkua LED kolme alaspäin ja kolme sisään vasemmasta yläkulmasta. Jos se ei näy oikein, tarkista johdotus uudelleen varmistaaksesi, että kaikki on oikeassa paikassa! Kun lisäät oman kuvan tai viestin, se voi katkaista aikaisin tai toistaa liian kauan. Yritä muuttaa pirLockTime muuttuja, kunnes se pelaa haluamasi ajan.
Jokaisen kehyksen lisääminen LED-näyttöön voi olla hiukan työläs, joten olemme luoneet tämä laskentataulukko jotta tekstiä ja kuvia voidaan luoda hieman helpompaa LED-matriisia varten (kopio Google Sheetistä, jotta voit muokata sitä).
Laskentataulukon avulla voit kopioida luomuksesi suoraan koodiin.
Tee se rohkeiksi alkuaineiksi
Nyt kun meillä on toimiva LED-matriisi, tarvitsemme sen tapaa selviytyä talvisäästä. Vaikka tämä menetelmä ei välttämättä kestä trooppista myrskyä tai uppoutumista uima-altaaseen, sen pitäisi riittää pitämään kaikki elektroniikka turvassa elementeiltä.
Käytin pyöreää Tupperware-laatikkoa, jonka halkaisija on 15 cm ja syvyys 6 cm, koska se sopii komponenteihini täydellisesti. Leikkaa kannessa ikkuna, joka on hiukan suurempi kuin LED-matriisi, ja kiinnitä siihen kirkas muovikalvo varmistaen, että nesteen päälle ei jää tilaa. Joidenkin pakkausten tukeva muovi toimisi parhaiten, mutta tämä oli kaikki mitä minulla oli. Voit myös kiinnittää joitain kiinnikkeitä protolevyyn, vaikka molemmat työt voitaisiin helposti tehdä vahvalla vedenpitävällä teipillä.
Tee seuraavaksi pieni reikä ikkunan alle, laajenna sitä sitten varovasti ja hitaasti, kunnes PIR-anturi voi vain päästä läpi. Haluat sen sopivan niin tiukasti kuin mahdollista.
Kiinnitä PIR-anturi ja täytä kaikki aukot, jotka näet nauhalla tai kuumalla liimalla.
Puhdista kaikki teipit tai liimat, jotka saattavat estää laatikon sulkeutumisen kunnolla, ja lisää kaikki komponentit laatikkoon akun mukana. Tässä käytettiin yksinkertaista AA-akkua, joka oli kytketty suoraan nanon VCC-nastaan. Muutamia pieniä korkkipalasia lisättiin kotelon ulkopuolelle auttamaan rakenteen ripustamisessa seppeleen keskelle.
Ja olemme valmiita
Kun laatikko on sinetöity, ripusta se jouluseppeleesi ja odota kävijöiden reaktiota huipputeknologian sub 20 dollarin henkilökohtaiseen tervetuloon! Voit jopa mennä askeleen pidemmälle ja luoda mahtava DIY-koristeet 3D-tulostettu joulukoristeita täydelliseen geeky-lomaanMiksi et säästää itsellesi rahaa jouluna ja 3D-tulosta kotisi juhlakoristeita? Lue lisää myös muualle talon ympärille!
Tässä projektissa olemme rakentaneet itsenäisen LED-matriisijärjestelmän alusta alkaen, joka on aktivoitu liikkeelle ja voi selviytyä ulkona olemisesta kaikissa paikoissa pahimmassa säässä. Tästä rakennuksesta tulee hyötyä kauan sen jälkeen, kun lomakausi on ohi muissa projekteissa, ja samaa tekniikkaa voitaisiin käyttää halpojen säänkestävien koteloiden luomiseen myös muihin hankkeisiin.
Oletko luonut mitään antaaksesi joulullesi DIY-käännöksen? Suunnitteletko DIY-aiheisia joululahjoja tänä vuonna? Kerro meille alla olevissa kommenteissa!
Ian Buckley on freelance-toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei kirjoita tai näyttämöllä, hän söpöi DIY-elektroniikkaa tai -koodia toivossa tullakseen hulluksi tiedemieheksi.