Sisällysluettelo:

HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPikselit: 9 vaihetta (kuvilla)
HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPikselit: 9 vaihetta (kuvilla)

Video: HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPikselit: 9 vaihetta (kuvilla)

Video: HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPikselit: 9 vaihetta (kuvilla)
Video: Потерян передатчик для беспроводной мышки или клавиатуры Logitech Unifying receiver 2024, Kesäkuu
Anonim
Image
Image
HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPixels
HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPixels
HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPixels
HALO: Kätevä Arduino -lamppu Rev1.0 W/NeoPixels

Tässä ohjeessa näytän sinulle, kuinka rakentaa HALO tai Handy Arduino Lamp Rev1.0.

HALO on yksinkertainen lamppu, jonka virtalähteenä on Arduino Nano. Sen kokonaisjalanjälki on noin 2 x 3 ja painotettu puupohja äärimmäistä vakautta varten. Joustava kaula ja 12 erittäin kirkasta NeoPixeliä valaisevat helposti kaikki yksityiskohdat kaikilla pinnoilla. HALOssa on kaksi painiketta eri valotilojen selaamiseen, joista 15 on esiohjelmoitu. Koska Arduino Nano on käytetty prosessorina, voit ohjelmoida sen uudelleen lisäominaisuuksilla. Yksittäistä potentiometriä käytetään säätämään kirkkautta ja/tai nopeutta, jolla tila näytetään. Yksinkertainen metallirakenne tekee HALOsta erittäin kestävän lampun, joka sopii käytettäväksi missä tahansa korjaamossa. Helppokäyttöisyyttä lisää nanon sisäänrakennettu tehonsäädin, joten HALO voidaan saada virtaa joko USB: n tai takana olevan 5 mm: n vakioliittimen kautta.

Toivon, että monet ihmiset käyttävät näitä lamppuja lähitulevaisuudessa, koska tällä suunnittelulla on niin paljon mahdollisuuksia. Jätä äänestys mikrokontrollikilpailuun, jos pidät tästä tai pidät sitä hyödyllisenä jollakin tavalla, olisin todella kiitollinen siitä.

Ennen kuin pääsemme tähän Instructableen, haluaisin sanoa lyhyen kiitoksen kaikille seuraajilleni ja kaikille, jotka ovat koskaan kommentoineet, lisänneet suosikkeihini tai äänestäneet projekteistani. Kiitos teille, Cardboard -ohjeistani tuli valtava menestys, ja olen nyt kirjoittamalla tämän saavuttamassa lähes 100 seuraajaa, mikä on mielestäni suuri virstanpylväs. Arvostan todella kaikkea tukea, jonka saan teiltä, kun laitoin Ibleni, ja kun se tulee siihen, en olisi siellä missä olen tänään ilman teitä. Näin sanoen, kiitos kaikille!

HUOMAUTUS: Tässä oppaassa on lihavoituja lauseita. Nämä ovat tärkeitä osia jokaisessa vaiheessa, eikä niitä pidä jättää huomiotta. Tämä ei ole sitä, että huudan tai tarkoituksellisesti olen töykeä, vaan yritän yksinkertaisesti uutta kirjoitustekniikkaa korostaakseni paremmin, mitä on tehtävä. Jos et pidä siitä ja pidät mieluummin tavastani kirjoittaa vaiheitani, kerro siitä kommentteihin, niin vaihdan takaisin vanhaan tyyliini.

Vaihe 1: Materiaalien kerääminen

Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen

Kuinka monta kertaa minun on sanottava se? Sinulla on aina mitä tarvitset, ja voit taata, että pystyt rakentamaan jotain loppuun asti.

Huomautus: Jotkut näistä ovat kumppanilinkkejä (merkitty "al"). Saat pienen takaiskun, jos ostat niiden kautta ilman lisäkustannuksia. Kiitos jos ostat linkkien kautta

Osat:

1x Arduino Nano Nano - al

1x 10k pyörivä potentiometri 5 kpl 10k potentiometriä - al

1x 5 mm tynnyritunkki (minun on kierrätetty paistetusta Arduino Unosta) Naaraspuolinen tynnyritankki (5 kpl) - al

2x 2-nastainen hetkellinen painike 10 kpl SPST-painikekytkin-al

12x NeoPixels 60 LED/metrin säikeestä (mikä tahansa vastaava, esim. WS2812B, toimii) Adafruit NeoPixels

Arkki 0,5 mm alumiinia

Joustava kaula vanhasta flex -sytyttimestä

Yläkannen rengas "Stick and Click" LED -kaappivalaisimesta LED -kaapin valo - al

Pieni arkki 1/4 tuuman vaneria

Raskas, litteä metalli, jonka mitat (suunnilleen) 1,5 " - 2,5" - 0,25"

Säikeinen sähköjohto

Työkalut:

Kuuma liimapistooli ja liima

Juotin ja juote

Akkuporakone ja valikoima pieniä kierrepäitä

X-acto-veitsi (tai hyötyveitsi)

Langanpoistimet

Pihdit

Lankaleikkurit/katkaisijat

Raskaat sakset

Jos sinulla ei ole tasaista metallipainoa, tarvitset myös:

1 rulla halpaa juotosta (ei juotamiseen käytettävää tavaraa) Halpa lyijytön juote

Alkoholikynttilä (tai Bunsen -poltin)

Pieni karkaistu teräsastia, jota et halua pilata (tai pieni upokas, jos sinulla on sellainen)

Kolmijalka kyseiselle astialle/upokkaalle (tein omani 12 -kertaisesta teräslangasta)

Savikasvisruoka (yksi niistä ruuan alla olevista asioista)

Jotain alumiinifoliota

HUOMAUTUS: Jos sinulla on hitsaussarja tai 3D -tulostin, et ehkä tarvitse kaikkia tässä lueteltuja työkaluja.

Vaihe 2: Paino

Painon tekeminen
Painon tekeminen
Painon tekeminen
Painon tekeminen
Painon tekeminen
Painon tekeminen

Tämä on melko vaikea vaihe, ja sinun on noudatettava äärimmäistä varovaisuutta. Jos sinulla on raskasmetallipaino tai litteä neodyymimagneetti, joka on noin 2,75 x 1,75 x 0,25 tuumaa, suosittelen käyttämään sitä sen sijaan (ja magneetin avulla voit jopa sijoittaa lampun sivuttain metallipinnoille!).

Vastuuvapauslauseke: En ole vastuussa mistään vammoistasi, joten käytä tervettä järkeä

Tee tämä myös ulkopuolella betonipinnan yli, joka ei haittaa, jos se hiukan palaa (tämä on vain varotoimi). Minulla ei ole kuvia tästä prosessista, koska kamera olisi ollut ylimääräinen häiriötekijä, jota en tarvinnut tai halunnut.

Tee ensin pieni muotti alumiinifoliosta tai märästä savesta, noin 2 3/4 tuumaa 1 3/4 tuumaa 1/4 tuumaa sisämitoissa. Se voi olla munankaltainen, kuten minun, tai suorakulmio. Käytä useita kerroksia kalvoa tai paksuja savikerroksia.

Aseta muotti keraamiseen kasviastiaan ja täytä sekä muotti että tarjotin kylmällä vedellä.

Ota palamaton alkoholikynttilä/bunsen -poltin ja aseta teräsastia/upokas jalustalle niin, että liekki lämmittää astian keskiosaa (palaessaan). Varmista ennen polttimen sytyttämistä, että sinulla on käsissäsi vähintään yksi pihdit tai metallintyöstöpihdit, ellei 2.

Seuraavien vaiheiden aikana on hyvä käyttää nahkakäsineitä, pitkiä hihoja, pitkiä housuja, suljettuja kenkiä ja silmäsuojaimia

Kelaa ja katkaise joukko halpaa juottoa kelalta ja aseta se teräsastiaan ja sytytä sitten poltin. Odota, kunnes kela sulaa kokonaan, ja aloita loput juotteen syöttäminen astiaan kohtuullisella vauhdilla. Jos juotoksessa on hartsia, se voi palaa itsestään kuumuudessa muodostaen vaaleankeltaisen liekin ja mustan savun. Älä huoli, tämä on tapahtunut minulle useita kertoja ja on täysin normaalia.

Jatka juottamista astiaan, kunnes viimeinen sulaa.

Anna polttohartsin liekkien sammua kokonaan ja käytä pihtejä/pihtejä tarttumaan astiaan ja pyörittele sulanutta metallia varovasti sisällä pitäen sitä varovasti liekissä.

Kun olet varma, että kaikki juote on täysin nesteytetty ja hyvässä kuumassa lämpötilassa, poista se nopeasti ja varovasti liekistä ja kaada se muottiin. Kuuluu voimakas sihisevä ääni ja höyry, kun osa vedestä höyrystyy ja loput pakotetaan muotista korvaamaan sulalla juotoksella.

Anna juotteen jäähtyä, sammuta poltin/puhalla kynttilä ja aseta teräsastia turvalliseen paikkaan jäähtyä. Voit kaataa kylmää vettä jäähdytysjuotteen päälle nopeuttaaksesi jäähdytystä ja kovettamaan sitä edelleen. (Kylmä vesi saa ulkopuolen jäähtymään nopeammin kuin sisäpuoli, mikä luo sisäistä jännitystä, joka tekee metallista kovempaa ja jäykempää, kuten Prince Rupertin pudotus.) Voit myös valuttaa vettä metalliastian yli, mutta siitä tulee hauras., varsinkin jos se tehdään useita kertoja.

Kun juote on jäähtynyt kokonaan (noin 20 minuuttia turvalliseksi), poista se folio muotista.

Omani päätyi paksummaksi toiselta puolelta kuin toiselta, joten tasoitin ja tasoitin reunat vasaralla (tuloksena on kuvissa näkyvä muoto). Hioin sen sitten kevyesti juoksevan veden alla kiillottaakseni ja laitoin sen sivuun myöhempää käyttöä varten.

Vaihe 3: Elektroniikkakotelon rakentaminen, vaihe 1

Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1
Elektroniikkakotelon rakentaminen, vaihe 1

Nämä ovat kuoren osat, joihin Nano asennetaan, käyttöliittymä asennetaan ja se pitää HALO -lampun yhdessä. Tein omani 0,5 mm: n alumiinilla ja kuumaliimalla, mutta jos sinulla on 3D -tulostin (jotain, jota olen yrittänyt saada myymälääni jo jonkin aikaa), tein. STL -version Tinkercadissa, jonka liitin tänne sinulle ladata. Koska minulla ei ole tulostinta itse, en voinut testata mallin tulostusta nähdäkseni, tulostuuko kaikki oikein, mutta mielestäni sen pitäisi olla kunnossa, jos lisäät viipaleeseen oikeat tukirakenteet. Voit myös kopioida ja muokata lähdetiedostoa täällä, jos tarvitset tai haluat hieman erilaisen suunnittelun tai esteettisyyden.

Mitat olivat itse asiassa johdettu metallipainosta, jonka valasin itselleni juotoksesta, ei elektroniikan koosta, mutta se osoittautui joka tapauksessa varsin hyväksi ja mitat ovat melko optimaaliset.

Kuvat esittävät hieman erilaista toimintatapaa kuin mitä kirjoitan tänne, koska tämä johtuu siitä, että olen kehittänyt parannetun menetelmän alkuperäisen menetelmäni tulosten perusteella.

Jos kokoat pellistä kuten minä, sinun on tehtävä tämä:

Vaihe 1: Kasvot

Leikkaa kaksi identtistä puoliympyrän muotoista muotoa noin 1,5 "pitkä ja 3" leveä. (Vapautin omani, joten ne näyttävät vähän kuin jukelaatikon etupuolelta).

Poraa yhteen kahdesta levystä kolme reikää painikkeita ja potentiometriä varten. Omani olivat halkaisijaltaan 1/4 tuumaa. Nämä voivat olla missä tahansa asettelussa, mutta mieluummin potentiometrini on hieman koholla keskellä, ja molemmin puolin olevat painikkeet muodostavat tasakylkisen kolmion. Poratessani teen aina pienen reiän ennen halutun kokoisen terän siirtymistä, se auttaa reikien keskittämisessä ja tekee niistä hieman puhtaampia.

Vaihe 2: Kaareva kansi

Taivuta alumiinikappaleen päälle sopimaan yhden etulevyn kaarevuuden ympärille ja merkitse oikea reunan pituus.

Leikkaa tämän pituinen ja noin 2 tuumaa leveä nauha ja muodosta siitä kaari, joka vastaa etulevyjen käyrän muotoa kummallakin puolella.

Etsi keskipiste käyrän yläosasta ja poraa reikä sytyttimen taipuisan kaulan mukaan. Poistin reiän taaksepäin omassani, koska lampun kaula on enimmäkseen kallistettu käytön aikana, joten halusin lisätä siihen hieman vastapainoa. Joustava kaulani oli halkaisijaltaan hieman yli 1/4 tuumaa, joten käytin 1/4 tuuman bittiä (suurin omistamani kierrepala, joka on alle 3/4 tuumaa) ja käänsin vain varovasti kulmaan poraa reikä reikään, kunnes kaula sopii.

Nyt kun meillä on kuoren osat, seuraava askel on lisätä elektroniikkaa ja koota se yhteen!

Vaihe 4: Elektroniikkakotelon rakentaminen, vaihe 2

Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2
Elektroniikkakotelon rakentaminen, vaihe 2

Nyt lisätään painikkeet ja potentiometri ja laitetaan kaikki yhteen.

Vaihe 1: Painikkeet ja pultit

Kierrä kuusiomutterit irti painikkeista ja potentiometristä. Mutterin alla pitäisi olla tartuntarengas, jätä tämä paikalleen.

Työnnä jokainen komponentti vastaavan reiän läpi ja kiinnitä sitten mutterit takaisin paikoilleen kiertämällä. Kiristä mutterit siihen kohtaan, jossa olet varma, että jokainen komponentti on täysin paikallaan.

Vaihe 2. Joustava kaula

Työnnä joustava kaula kaarevan kappaleen yläreunan läpi. Kuuma liima tai hitsaus (jos sinulla on varusteet) niska tukevasti paikallaan.

Jos käytät kuumaa liimaa kuten minä, on hyvä liimata se liimalla kummallakin puolella paljon liimaa levitettynä suurelle alueelle, jotta liima ei irtoa myöhemmin.

Vaihe 3: Kuoren kokoonpano (ei koske 3D -tulostettua kuorta)

Kiinnitä etu- ja takasivulevyt joko hitsaussauvalla tai kuumaliimalla paikoilleen kaarevassa kannessa. Kesti pari yritystä liimani tarttumiseen, ja kuten ennenkin, temppu on käyttää paljon liimaa liitoksen molemmilla puolilla, aivan kuten niska. Mitä suurempi liiman peittämä alue, sitä paremmin se tarttuu.

Nyt kun meillä on kuori, voimme siirtyä lisäämään kaikki piiripiirit.

Vaihe 5: Elektroniikan lisääminen

Elektroniikan lisääminen
Elektroniikan lisääminen
Elektroniikan lisääminen
Elektroniikan lisääminen
Elektroniikan lisääminen
Elektroniikan lisääminen

Ja tässä on hauska osa: juottaminen! Viime viikkoina olen rehellisesti väsynyt juottamiseen, koska olen tehnyt niin paljon viime aikoina yrittäessäni saada valmiiksi toisen projektin, jonka minun pitäisi pian laittaa pystyyn (pidä silmällä radikaalistunutta uutta versiota robottinäytöstä alustat), minkä seurauksena pilaan yhden raudan ja saan toisen … Joka tapauksessa täällä ei ole paljon juotettavaa, joten tämän pitäisi olla melko suoraviivaista.

Huomautus: Jos Nano -laitteessasi on jo nastatunnisteet, suosittelen niiden juottamisen poistamista tälle projektille, sillä ne vain häiritsevät.

Yllä olevissa kuvissa on kaavio, voit seurata sitä, jos haluat.

Vaihe 1: Käyttöliittymä

Juotos jokaisesta kytkimestä johto yhdestä nastasta potentiometrin sivutappiin. Juotos lanka tästä samasta sivutapista Nanon maadoitusnastaan.

Juotosjohdin potentiometrin keskitapista nanoon A0.

Juotos lanka kummankin kytkimen irrottamattomasta nastasta A1: een Nanossa.

Juotos lanka toisen kytkimen irrottamattomasta nastasta A2: een Nanossa.

Huomautus: Ei ole väliä, mikä kytkin on mikä tahansa, voit muuttaa niitä erittäin helposti koodissa sen lisäksi, että yksi kytkin yksinkertaisesti toimii päinvastoin kuin toinen.

Leikkaa lanka 4 tuumaa pidempään kuin joustava kaula ja irrota molemmat puolet. Merkitse Sharpien avulla yksi puoli yhdellä viivalla.

Juotosjohdin potentiometrin viimeiseen irrottamattomaan sivutappiin, kierrä tämän johdon irrallista päätä yhdessä viimeisen alavaiheen johtimen merkitsemättömän pään kanssa.

Juotos tämä liittyi loppuun 5V Nano.

Vaihe 2: Näyttö- ja virtajohdot

Leikkaa 2 lankaa 4 tuumaa pidempään kuin joustava kaula ja kuori molemmat päät.

Merkitse Sharpiellä jokaisen langan päät, yksi lanka kahdella viivalla ja toinen kolmella.

Juotta johto kahdella rivillä Nanon digitaaliseen nastaan 9.

Juotos 5 mm: n tynnyripistokkeesi johdolla keskitapista (positiivinen) Nanon Viniin.

Juotos toinen johto piippuliittimen sivutappiin (maa/negatiivi).

Kierrä pitkä lanka kolmella rivillä yhdessä langan kanssa tynnyrin liittimen sivutapista.

Juotos nämä johdot Nanon avoimeen GND -nastaan.

Eristä liitännät tarvittaessa sähköteipillä tai kuumaliimalla.

Vaihe 3: Reikien leikkaaminen (vain metalliversiossa, jos tulostit kannen 3D -muodossa, sinun pitäisi olla kunnossa)

Tee poranterällä ja X-acto- tai Utility-veitsellä varovasti reikä kannen sivulle Nanon USB-porttia varten.

Tee toinen reikä, joka on suunnilleen tynnyrin liittimen kannen takaosaan, mieluiten lähempänä USB -portin reiän vastakkaista puolta.

Vaihe 4: Komponenttien asennus

Vie kolme pitkää johtoa joustavan kaulan läpi ja ulos toiselta puolelta.

Asenna tynnyrinosturi paikalleen käyttäen runsaasti kuumaa liimaa ja tapit kannen yläosaa kohti.

Asenna Nano uudelleen runsaalla kuumalla liimalla paikalleen nollauspainike alaspäin ja USB -portti paikkaansa. Tein "kuumaliimasillan" tynnyrin jakkin ja nanon väliin, mikä saa molemmat pitämään toisen tiukasti paikallaan.

Nyt voimme jatkaa painotetun pohjan tekemistä!

Vaihe 6: Painotettu pohja

Painotettu pohja
Painotettu pohja
Painotettu pohja
Painotettu pohja
Painotettu pohja
Painotettu pohja

Olen varma juotostaidoistani ja olin suunnitellut tämän hyvin, joten jatkoin ja lisäsin pohjan ennen koodin testaamista. Jos olet vähemmän luottavainen taitoihisi, suosittelen ohittamaan tämän vaiheen ja palaamaan siihen lopussa, kun tiedät, että kaikki toimii.

Jos teit 3D -painetun version, voit ohittaa ensimmäisen vaiheen ja siirtyä toiseen.

Vaihe 1: Puu

Leikkaa 1/4 tuuman vanerilevystä pohja noin 3 x 2 tuumaa.

Hio reunat tasoittaaksesi ja poistaaksesi porat.

Vaihe 2: Paino

Varmista ensin valitsemasi paino, olipa magneetti, metalli tai mukautettu juotos, joka sopii tekemämme metallikannen reunoihin. Omani oli hiukan suuri yhteen suuntaan, joten ajelin hieman sivulta X-acto-veitsellä. Jos omasi ei ole sellainen, jossa voit tehdä tämän, saatat joutua piilottamaan eri pohjarakenteen kanssa.

Kuumaa liimaa painosi vanerikappaleen keskelle tai 3D -tulostetun mallin tapauksessa tätä tarkoitusta varten suunnitellulle keskimmäiselle "lokeroalueelle".

Vaihe 3: Pohja

Aseta metallikansi painon päälle ja keskitä se puualustalle. (Jos kyseessä on 3D-tulostettu malli, sovita se valmiiksi tehtyihin uriin.)

Varmista, että paino ei häiritse elektroniikkaa

Kiinnitä pohja paikalleen kuumalla liimalla. Käytä tarpeeksi varmistaaksesi kiinteän yhteyden.

Nyt kun ohjauskotelomme on kokonaan tehty, siirrymme valojen pariin.

Vaihe 7: NeoPixel Halo Ring

NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring

Tämän lampun nimen inspiraationa tämä osa on NeoPixel -halorengas, jota käytämme valaistuksen lähteenä. Tätä kappaletta voidaan haluttaessa muokata tai korvata millä tahansa NeoPixel- tai yksilöllisesti osoitettavalla LED -renkaalla.

Vaihe 1: Juotos

Leikkaa NeoPixels 12 LED -valon pituus.

Juotos GND -tappi lankaan joustavan kaulan kohdalta, jossa on 3 viivaa.

Juotos Din -tappi lankaan, jossa on 2 riviä.

Juotos 5V nasta johdin, jossa on 1 rivi.

Vaihe 2: Testaa valot

Lataa ja asenna Adafruit_NeoPixel -kirjasto ja avaa "strandtest" -koodi.

Vaihda vakio -PIN -koodi arvoon 9.

Muuta rivi, jossa nauha on määritetty siten, että se on määritetty 12 LEDille.

Lataa koodi Nano -laitteeseen ja varmista, että kaikki LED -valot toimivat oikein.

Vaihda vialliset LEDit toimiviin, kunnes koko nauha toimii.

Vaihe 3: Soita

Ota ylärengas "Stick and Click" -valosta ja katkaise kaikki sisäreunan ruuvikiinnikkeet.

Leikkaa nauhasta johtimien reunasta pieni lovi.

Irrota NeoPixelien takana olevan teipin kansi (jos sellainen on) ja kiinnitä se renkaan sisään, niin että nauhan toinen pää on juuri tekemämme loven kohdalla.

Kiinnitä nauhan reunat tukevasti kuumalla liimalla

Kun liima on jäähtynyt kokonaan, testaa pikselit uudelleen. Tällä varmistetaan, että kukaan ei ole nirso kuumuudesta ja käpristymisestä (muutama omani oli).

Vaihe 4: Asenna

Leikkaa kaksi pientä suorakulmiota 1/4 tuuman puusta, noin renkaan korkeudesta ja 1 2/3 kertaa leveämmästä.

Liimaa nämä yhdensuuntaisesti toisiinsa johtimien molemmilla puolilla renkaasta täyttämällä rako ja peittämällä välissä olevat johdot kokonaan liimalla.

Työnnä ylimääräinen lanka varovasti takaisin taipuisaan kaulaan ja liimaa sitten puukappaleet kaulan päähän käyttäen runsaasti liimaa ja täyttämällä kaikki aukot varovasti (täyttämättä kaulaa liimalla).

Vaihe 6: Viimeistely

Voit maalata sormuksen ja asentaa minkä tahansa värin, jos haluat, mieluummin hopeanvärinen viimeistely, joten peitin vain Sharpien peittämään sormukseen (ärsyttävästi) painetun logon. Sama pätee muuhun lamppuun.

Nyt voimme siirtyä lopulliseen koodiin!

Vaihe 8: Koodit ja testit

Koodit ja testit
Koodit ja testit
Koodit ja testit
Koodit ja testit

Joten nyt meidän tarvitsee vain ohjelmoida lamppu ja testata se. Liitteenä on nykyinen koodiversio (rev1.0), olen testannut tätä koodia melko laajasti ja se toimii erittäin hyvin. Työskentelen rev2.0: n parissa, jossa painikkeet on määritetty ulkoisiksi keskeytyksiksi, jotta tiloja voidaan vaihtaa helpommin, mutta tämä versio on viallinen eikä ole vielä valmis julkaistavaksi. Nykyisessä versiossa sinun on pidettävä painiketta painettuna, kunnes se suorittaa Debounce -silmukan ja tunnistaa tilanmuutoksen, mikä voi olla ärsyttävää pidemmissä "dynaamisissa" silmukoissa. Alla on koodi, johon on kirjoitettu joitakin selityksiä (ladattavassa versiossa on samat selitykset).

#Sisällytä #ifdef _AVR_ #Sisällytä #Endif

#määritä PIN -koodi 9

#define POT A0 #define BUTTON1 A1 #define BUTTON2 A2

// Parametri 1 = pikselien lukumäärä nauhassa

// Parametri 2 = Arduino -pin -numero (useimmat ovat kelvollisia) // Parametri 3 = pikselityyppiset liput, lisää tarvittaessa: // NEO_KHZ800 800 KHz: n bittivirta (useimmat NeoPixel -tuotteet, joissa WS2812 -LEDit) // NEO_KHZ400 400 KHz (klassinen) v1 '(ei v2) FLORA -pikseliä, WS2811 -ohjaimet) // NEO_GRB Pikselit on kytketty GRB -bittivirtaan (useimmat NeoPixel -tuotteet) // NEO_RGB Pikselit on kytketty RGB -bittivirtaan (v1 FLORA -pikseliä, ei v2) // NEO_RGBW -pikselit RGBW -bittivirta (NeoPixel RGBW -tuotteet) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Ja nyt, turvallisuusviesti ystäviltämme Adafruitissa:

// TÄRKEÄÄ: Vähennä NeoPixel -palamisriskiä lisäämällä 1000 uF kondensaattoria

// pikselivirtajohdot, lisää 300-500 ohmin vastus ensimmäisen pikselin tiedonsiirtoon // ja minimoi etäisyys Arduinon ja ensimmäisen pikselin välillä. Vältä kytkemistä // jännitteiseen piiriin… jos on, kytke ensin GND.

// Muuttujat

int -painikeTila1; int -painikeTila2; // nykyinen lukema tulonapista int lastButtonState1 = LOW; // edellinen lukema tulonapista int lastButtonState2 = LOW; int -tila; // valojemme tila voi olla yksi 16 asetuksesta (0-15) int brightVal = 0; // potentiometrin asettama kirkkaus/ nopeus

// seuraavat muuttujat ovat pitkiä, koska aika millisekunteina mitattuna

// tulee nopeasti isompi luku kuin int. long lastDebounceTime = 0; // viimeksi, kun lähtönasta on vaihdettu pitkä debounceDelay = 50; // palautusaika; kasvaa, jos lähtö vilkkuu

void debounce () {

// lukee kytkimen tilan paikalliseksi muuttujaksi: int reading1 = digitalRead (BUTTON1); int luku2 = digitalRead (PAINIKE2); // Jos jompikumpi painikkeista muuttui kohinan tai painalluksen vuoksi: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// nollaa palautusajastin lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// jos painikkeen tila on varmasti muuttunut painamisen/vapauttamisen vuoksi: if (reading1! = buttonState1) {buttonState1 = reading1; // aseta se lukemaksi, jos se on muuttunut, jos (buttonState1 == LOW) {// nämä on asetettu aktiivisiksi alhaisen kytkimen tilaksi ++; jos (tila == 16) {tila = 0; }}} jos (lukeminen2! = painikkeen tila2) {painikkeen tila2 = lukeminen2; if (buttonState2 == LOW) {tila = tila - 1; jos (tila == -1) {tila = 15; }}}} // tallenna lukema seuraavan kerran silmukan kautta lastButtonState1 = reading1; lastButtonState2 = luku2; }

void getBright () {// koodi, jolla luemme potentiometrin, antaa arvon välillä 0–255. Käytetään kirkkauden asettamiseen joissakin tiloissa ja nopeuteen toisissa.

int potVal = analoginen lukema (POT); brightVal = kartta (potVal, 0, 1023, 0, 255); }

// Tässä ovat väritilamme. Jotkut näistä ovat peräisin ketjutestiesimerkistä, toiset ovat alkuperäisiä.

// Täytä pisteet peräkkäin värillä (väripyyhe, johdettu testistä)

void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i

// sateenkaaritoiminnot (johdettu myös strandtestistä)

mitätön sateenkaari (uint8_t wait) {

uint16_t i, j;

(j = 0; j <256; j ++) {for (i = 0; i

// Hieman erilainen, tämä tekee sateenkaaren tasaisesti jakautuneeksi kaikkialle

void rainbowCycle (uint8_t odota) {uint16_t i, j;

for (j = 0; j <256*5; j ++) {// 5 sykliä kaikissa väreissä pyörässä (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPikselit ()) + j) & 255)); } halo.show (); viive (odota); }}

// Syötä arvo 0–255 saadaksesi väriarvon.

// Värit ovat siirtymä r - g - b - takaisin r: ään. uint32_t Pyörä (tavua WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return halo. Color (255 - WheelPos * 3, 0, WheelPos * 3); } jos (WheelPos <170) {WheelPos -= 85; paluu halo. Väri (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; paluu halo. Väri (WheelPos * 3, 255 - WheelPos * 3, 0); }

void setup () {

// Tämä koskee Trinket 5V 16MHz -laitetta, voit poistaa nämä kolme riviä, jos et käytä Trinket #if -määritelmää (_AVR_ATtiny85_), jos (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Herkun erikoiskoodin loppu pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Sarja.alku (9600); // debugging stuff halo.begin (); halo.show (); // Alusta kaikki pikselit pois päältä}

void loop () {

debounce ();

//Sarja.println (tila); // lisää virheenkorjausta //Serial.println(lastButtonState1); //Sarja.println(lastButtonState2);

jos (tila == 0) {

getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // aseta kaikki pikselit valkoisiksi} halo.show (); }; jos (tila == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // aseta kaikki pikselit punaisiksi} halo.show (); }; jos (tila == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // aseta kaikki pikselit vihreäksi} halo.show (); }; jos (tila == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // aseta kaikki pikselit siniseksi} halo.show (); }; jos (tila == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // aseta kaikki pikselit syaaniksi} halo.show (); }; jos (tila == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // aseta kaikki pikselit violetiksi/magentaksi} halo.show (); }; jos (tila == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // aseta kaikki pikselit oranssiksi/keltaiseksi} halo.show (); }; if (tila == 7) {// nyt dynaamiset tilat getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Punainen}; jos (tila == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Vihreä}; jos (tila == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Sininen}; jos (tila == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // valkoinen}; jos (tila == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // oranssi/keltainen}; jos (tila == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // syaani}; jos (tila == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // violetti/magenta}; if (tila == 14) {// kaksi viimeistä ovat nopeudensäätöä, koska kirkkaus on dynaamista getBright (); sateenkaari (kirkasVal); }; jos (tila == 15) {getBright (); rainbowCycle (kirkasVal); }; viive (10); // anna suorittimen levätä}

Vaihe 9: Suuri finaali

Suuri finaali
Suuri finaali

Ja nyt meillä on upea, erittäin kirkas pieni lamppu!

Voit muokata sitä edelleen täältä tai jättää sen sellaisenaan. Voit vaihtaa koodin tai jopa kirjoittaa kokonaan uuden. Voit suurentaa jalustaa ja lisätä paristoja. Voit lisätä tuulettimen. Voit lisätä lisää NeoPixeleitä. Luettelo kaikesta, mitä voit tehdä tällä, on lähes loputon. Sanon "melkein", koska olen melko varma, että meillä ei vieläkään ole tekniikkaa muuttaa tätä miniportaaligeneraattoriksi (valitettavasti), mutta tällaisten asioiden lisäksi ainoa raja on mielikuvitus (ja jossain määrin, kuten olen äskettäin havainnut, työpajasi työkalut). Mutta jos sinulla ei ole työkaluja, älä anna sen estää sinua, jos todella haluat tehdä jotain, on aina tapa.

Se on osa tämän projektin tarkoitusta todistaa itselleni (ja vähemmässä määrin koko maailmalle), että voin tehdä hyödyllisiä juttuja, joita muutkin haluaisivat, vaikka minulla olisi vain todellinen roskapino vanhoja ja romutettuja komponentit ja säiliö Arduino -tarvikkeita.

Jätän tänne, koska mielestäni tämä meni melko hyvin. Jos sinulla on parannusehdotuksia tai kysymyksiä menetelmistäni, jätä kommentti alla. Jos teit tämän, ota kuva, me kaikki haluamme nähdä sen!

Älä unohda äänestää, jos pidät tästä!

Kuten aina, nämä ovat Dangerously Explosiven, hänen elinikäisen tehtävänsä projekteja "Rakentaa rohkeasti mitä haluat rakentaa ja paljon muuta!"

Loput projektistani löydät täältä.

Kiitos lukemisesta ja hyvää tekemistä!

Suositeltava: