Sisällysluettelo:

NeoClock: 7 vaihetta (kuvilla)
NeoClock: 7 vaihetta (kuvilla)

Video: NeoClock: 7 vaihetta (kuvilla)

Video: NeoClock: 7 vaihetta (kuvilla)
Video: Два Уникальных Ханских Плова - Невероятное мастерство Азербайджанского Шефа! 2024, Marraskuu
Anonim
Image
Image

Tässä on kyse kellon rakentamisesta käyttämällä Adafruitin upeita neopikselirenkaita. Hauska asia tässä kellossa on se, että siinä on itse asiassa kaksi neopikselirengasta, joista toinen kertoo tunnit ja toinen minuutit, sekunnit ja millisekunnit. Kello pitää täydellisen ajan Sparkfunin DS3234 DeadOn Real Time Clock -sirulla. Helppo rakentaa ja hauska muokata. Toivon, että se innostaa muita rakentamaan kelloja tai muuta taidetta käyttäen neopikselirenkaita.

Niille teistä, jotka haluavat saada kaikki tiedostoni yksinkertaisesti hallittavaan muotoon, voit ladata ne tämän projektin github -arkistostani osoitteesta

Vaihe 1: Kellon suunnittelu

Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu
Kellon suunnittelu

Tiesin alusta asti, että haluan käyttää vähintään kahta neopikselirengasta. Työn jälkeen päätin, että paras malli olisi saada yksi rengas toisen sisään, mikä säilyttää kellon alkuperäisen muodon. Pienempi rengas olisi tunteja ja jäljellä oleva aika pidettäisiin suuremmalla renkaalla. Jotkut suunnittelunäkökohdat sisälsivät neopikselien kustannukset, tehontarpeen, laserleikattujen kappaleiden koon ja millaisen taiteen halusin laittaa siihen.

Tämän vaiheen päätyttyä päätin, että minun on ymmärrettävä elektroniikka ennen kuin suunnittelen kellon rungon laserleikkausta.

Vaihe 2: Elektroniikan suunnittelu

Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu
Elektroniikan suunnittelu

Elektroniikan suunnittelussa tuli tietää etukäteen elementit, jotka halusin kellosta:

  • Neopikselirenkaat (60 ja 24)
  • Arduino (aivot)
  • Kellon asetus (arduinot eivät pidä hyvää aikaa)
  • Virranhallinta

Neopikselien koko ja tehovaatimukset on dokumentoitu hyvin. Koska ne toimivat 5 V DC: llä, päätin mennä 5 V: n Arduinon kanssa ja tehdä asioista yksinkertaisempia itselleni. Kun tilaa harkitsin, päätin prototyypittää tavallisen Arduino Unon, mutta lopullista elektroniikkaa varten valitsin Arduino Minin.

Tämän projektin ensimmäinen iterointi tuli suoraan Adafruitin NeoPixel Basic Connections -sivulta. Olen lisännyt kaavion verkkosivustolta helpottaaksesi asioita. Tästä on kaksi tärkeää asiaa:

  1. 1000uF -kondensaattoria tarvitaan estämään alkuvirran isku vaurioittamasta pikseliä.
  2. 470 ohmin vastusta tarvitaan 60 -laskurirenkaan ensimmäiseen pikseliin (tämä vastus on sisäänrakennettu 24 -laskurirenkaaseen)

Adafruitilla on myös joukko NeoPixelin parhaita käytäntöjä, jotka kannattaa lukea ennen suunnittelun jatkamista.

Ajan pitäminen kellossa on toinen ongelma. Arduinon sisäänrakennettu kello ei riitä pitämään hyvää aikaa pitkiä aikoja. Pahempi ongelma on, että arduinon aika on ehkä nollattava joka kerta. Tietokoneet ratkaisevat tämän ongelman käyttämällä pientä akkua kellosirussa pitääkseen virrankatkaisujen välisen ajan. Aiemmin käytin jotain Adafruutin ChronoDotin kaltaista. Mutta tässä tapauksessa halusin tekosyyn käyttää SparkFunin DS3234 (DeadOn RTC) -laitetta. Voit myös säilyttää DeadOn RTC: n päivämäärätiedot, jos haluat integroida ne kelloon.

Lopuksi virranhallintaa oli harkittava. Tiesin jo kaiken olevan 5V, mutta tarvittavan virran määrä näytti olevan mysteeri. Yleinen jännitesäädin useimmissa projekteissa on L7805. Tämä kestää jopa 24 V: n jännitteen ja enintään 1,5 A: n virran. Tiesin, että minulla oli 12 V: n 1,5 A: n seinämäreppu, joten päätin, että tämä olisi täydellinen (ja halpa!) Jännitesäädin hankkeelle.

Loput kappaleet olivat peräisin osalaatikostani tai Radio Shackista. Mukana olivat johdot, kytkimet ja DC -virtaliitin.

Vaihe 3: Elektroniikan rakentaminen

Elektroniikan rakentaminen
Elektroniikan rakentaminen
Elektroniikan rakentaminen
Elektroniikan rakentaminen
Elektroniikan rakentaminen
Elektroniikan rakentaminen

Täydellinen luettelo tämän hankkeen rakentamiseen ostamastani elektroniikasta löytyy github -arkistostani täältä: Elektroniikan osaluettelo. Siinä on linkkejä jokaisen kappaleen tuotesivulle ja lisätietoa, mukaan lukien tuotteen SKU. Prototyyppasin tämän nopeasti leipälaudalla ja siirryin laserleikkaukseen ja rakentamiseen ennen kuvien ottamista. Rakensin sen kuitenkin helposti purettavaksi, joten olen hajottanut yllä olevien kuvien palat sinulle.

Katso tarkasti kuvia, koska johdot taivutettiin tarkoituksella siten, että niitä on helppo seurata ja elektroniikan koko profiili on ohut. Tämän alkuperäisen prototyypin tekeminen ennen laserleikkaussuunnittelua antoi minulle mahdollisuuden tarkistaa osien paksuuden, jotta voisin selvittää kellon rungon lopulliset mitat.

Huomaat, että tein pari mukautettua leipälevyä. Olen yrittänyt ottaa kuvia näiden taulujen takaa, jotta voit toistaa ne. Voit ostaa valikoiman tällaisia leipälautoja parilla dollarilla ja saada ne sopimaan projektiin.

Johdotus on suoraan eteenpäin, mutta tärkeitä asioita, jotka on muistettava kuvista, ovat seuraavat:

  • Mode- ja Set -kytkimet tarvitsevat alasvetovastauksia. Käytin 2,21 ohmin vastuksia, jotka minulla oli makaamassa, mutta kaikki pienet vastukset toimivat (mieluiten vähintään 1 kOhm). Tämä vakauttaa liitetyt Arduino -tulonastat niin, että kun ne nousevat korkealle, ne erottuvat kohinasta.
  • DS3234: n neliöaalto (SQW) maadoitettiin, koska se ei ole käytössä.
  • L7805: n virta syötetään Arduino Miniin RAW -nastassa. Laita Arduinon virta aina RAW -muotoon.
  • 60 neopikselirenkaan ensimmäisessä pikselissä on 470 ohmin vastus, joka vähentää datapiikeistä aiheutuvia vaurioita ensimmäiselle pikselille. Tämän ei pitäisi olla ongelma, koska 24 -kertaisella neopikselillä on sisäänrakennettu vastus tätä varten, mutta parempi varoittaa kuin pahoillani.
  • Mode- ja Set -kytkimet ovat hetkellisiä SPST -painikekytkimiä

Langan värit ovat:

  • Punainen: +5VDC
  • Musta: Maa
  • Vihreä: Tiedot
  • Keltainen, sininen, valkoinen: erikoisjohdot DS3234: lle

Jos käytät ensimmäistä kertaa neopikseleitä, muista, että niitä voidaan pitää pitkänä ketjana. Joten saattaa tuntua oudolta puhua renkaan "ensimmäisestä pikselistä", mutta itse asiassa jokaisella renkaiden ketjulla on alku ja loppu. Tässä projektissa pienen renkaan 24 pikseliä tulevat ensin ja suuremman renkaan 60 pikseliä jälkeen. Tämä tarkoittaa todella sitä, että minulla on 84 neopikselin ketju.

Arduino Minin johdotus:

  • DS3234 liitetään nastoihin 10 - 13
  • Mode- ja Set -kytkimet ovat nastoissa 2 ja 3
  • Neopikselitiedot tulevat nastasta 6.

Suosittelen myös asettamaan 6 otsikkoa Arduino Minin pohjaan, jotta voit ohjelmoida sen FTDI -kaapelin kautta.

Tärkeä huomio virrasta: Tämä kello vaatii paljon. Olen varma, että voisin selvittää sen, mutta käytännön kokemukseni on, että mikä tahansa 500 mA: n tai sitä pienempi aiheuttaa lopulta ruskeita ulostuloja. Tämä ilmenee siitä, että kello vilkkuu hulluja värejä eikä pidä aikaa. Viimeinen seinämärttuni on 12V ja 1,5A, eikä minulla ole koskaan ollut ruskeaa. 1.5A on kuitenkin raja, jonka jännitesäädin (ja muut osat) kestää. Älä siis ylitä tätä määrää.

Vaihe 4: Kellon koodaus

Kellon koodaus
Kellon koodaus

Kellon koko koodi löytyy GitHubin NeoClock -koodista. Olen sisällyttänyt tiedoston tähän, mutta kaikki muutokset tapahtuvat arkistossa.

Mielestäni koodin kirjoittaminen voi olla pelottavaa, jos yrität tehdä kaiken kerralla. Sen sijaan yritän aloittaa toimivasta esimerkistä ja rakentaa ominaisuuksia tarpeen mukaan. Ennen kuin pääsen siihen, haluan huomauttaa, että koodini tuli yhdistämällä monia esimerkkejä seuraavista arkistoista ja Arduino CC -foorumilta. Anna luottoa aina, kun se on maksettava!

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

Joitakin esimerkkikoodeja näistä arkistoista löytyy koodiesimerkkihakemistostani

Koodin rakentamiseen käytetty toimintatapa meni suunnilleen näin:

  • Varmista, että neopikselit toimivat Strand Test -esimerkin kanssa
  • Yritä käyttää kelloa Time Loop -koodilla
  • Muokkaa kelloa toimimaan kahdella renkaalla yhden sijasta
  • Lisää DS3234 pitääksesi aikaa DeadOn RTC -esimerkin kautta
  • Lisää tila- ja asetuskytkimet
  • Lisää Debounce -koodi Arduion Debounce -opetusohjelman avulla
  • Lisää väriteemoja kellon merkkivaloille
  • Lisää animaatioita 0, 15, 30 ja 45 minuutin merkkeihin
  • Lisää kompassipisteitä kelloon 0, 15, 30 ja 45 minuutin merkkien suuntaamiseksi

Jos haluat nähdä, kuinka rakensin tämän koodin, voit itse käyttää GitHubia tarkastellaksesi jokaista koodin sitoutumista. Kellon historia on sitoumushistoriassa.

Värimalleja oli hauskaa lisätä, mutta lopulta sisällytin valikkoon vain neljä niistä. Jokainen teema asettaa tietyn värin tunnin, minuutin, sekunnin ja millisekunnin "käsille". Oikeastaan vaihtoehdot ovat loputtomat täällä, mutta sisällytin aiheet (luetellut menetelmien nimet):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

Löydät kuitenkin nämä lisämenetelmät koodista:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Animaatioita lisättiin, koska pidin ajatuksesta, että vanhat kellot soivat kellon neljässä viidentoista minuutin kohdassa. Tein tälle kellolle seuraavat animaatiot:

  • 15 minuuttia: Väritä renkaat punaisiksi
  • 30 minuuttia: Väritä renkaat vihreiksi
  • 45 minuuttia: Väritä renkaat siniseksi
  • Tunnin alkuun: Tee sateenkaari kahden renkaan poikki

Käytettävyys osoittautui kellon ongelmaksi, koska kukaan ei pystynyt suunnistamaan kelloa. Se on vain kaksi LED -rengasta. Joten ongelman ratkaisemiseksi lisäsin kompassipisteet kelloon. Tämä paransi kykyä kertoa aikaa paljon. Jos olisin tiennyt tästä ennen laserleikattujen kappaleiden lähettämistä, olisin ehkä lisännyt jotain taiteeseen. Mutta käy ilmi, että et voi nähdä taidetta niin hyvin pimeässä, joten kompassipisteiden käyttö todella auttaa. Yksi huomio on tämä, että kun päätät värittää pikselin, sinun on ensin kaapattava nykyinen väri ja luotava uusi sekoitettu väri. Tämä antaa sille luonnollisemman tunteen.

Viimeinen asia on millisekuntia. Arduinon millisekunnit tulevat sisäisestä Arduino -kristallista, eivät DS3234: stä. On sinun valintasi, haluatko näyttää millisekuntia vai et, mutta tein niin, että kello näytti aina tekevän jotain. Saattaa häiritä sinua, että millisekunnit ja sekunnit eivät aina ole linjassa, mutta käytännössä kukaan ei ole koskaan maininnut sitä minulle kelloa katsoessani ja mielestäni se näyttää hyvältä.

Vaihe 5: Laserleikattujen tiedostojen suunnittelu

Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu
Laserleikattujen tiedostojen suunnittelu

Laserleikattuja tiedostoja suunniteltaessa minun on otettava huomioon kaksi näkökohtaa. Ensimmäinen oli materiaali, josta halusin rakentaa sen, ja toinen oli se, miten se rakennettaisiin. Tiesin, että halusin puupinnan, jossa akryyli hajottaa neopikselit. Materiaalin selvittämiseksi tilasin ensin joitain näytteitä Ponokolta:

  • 1x MDF -viilu - pähkinä
  • 1x MDF -viilu - kirsikka
  • 1x akryyli - vaaleanharmaa
  • 1x akryyli - opaali

Puuvalinnat antavat minun nähdä miltä rasterointi näyttäisi ja miltä palovamma näyttäisi kellon puolella. Akryyli antaisi minun testata neopikselien diffuusiota ja verrata miltä se näyttäisi puuta vasten. Lopulta päätin kirsikkapuusta Opal -akryylillä.

Kellon mitat määräytyivät pääasiassa neopikselirenkaiden koon mukaan. En tiennyt, kuinka paksua sen piti olla, jotta se sopisi elektroniikkaan. Kun olin rakentanut elektroniikan ja tiesin, että puu oli noin 5,5 mm paksu, päätin tarvita noin 15 mm tilaa kellon sisällä. Se tarkoitti kolmea puukerrosta. Mutta kun etu- ja takaosa jo ottivat suurimman osan suunnittelustani, minun piti hajottaa ne renkaat "kylkiluiksi", jotka voisin liimata yhteen myöhemmin.

Käytän InkScapea piirtämään Ponokon tarjoamaan malliin. Vedettyäni kellon rungon ulos, aloitin puun piirtämisen käsin. En voinut tuoda alkuperäistä kuvaa, joka inspiroi minua, mutta ei ollut kauheaa keksiä, miten tehdä jotain vastaavaa itse.

Materiaalikustannukset olivat vain noin 20 dollaria, mutta leikkauskustannukset olivat noin 100 dollaria enemmän. Tähän vaikutti kaksi asiaa:

  • Kaaret ja ympyrät maksavat enemmän, koska kone liikkuu kahdella akselilla ja tässä mallissa on paljon kaaria
  • Rasterointi vaatii paljon siirtoja edestakaisin kappaleen läpi. Tämän pudottaminen olisi säästänyt eniten rahaa, mutta pidin siitä.

Suunnittelun viimeistelyn jälkeen lähetin EPS -tiedostot Ponokolle ja palaseni valmistuivat noin viikkoa myöhemmin.

Huomaa, että en sisällyttänyt Mode- ja Set -kytkimiä tai DC -virtaliitintä suunnitteluun. Kun lähetin tämän, en ollut vieläkään päättänyt noista osista. Antaakseni enemmän joustavuutta jätin ne pois ja päätin porata ne myöhemmin käsin.

Vaihe 6: Kellon rakentaminen

Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen
Kellon rakentaminen

Kun kaikki palat saapuivat, rakensin kellon. Ensimmäinen askel oli kellon runko, joka vaati minua lävistämään kylkiluut ja liimaamaan ne taakse ja eteen. Laitoin kaksi kerrosta kylkiluita taakse ja yhden kerroksen eteen ja asetin ne puuliimalla. Edessä käytin puuliimaa akryylirenkaiden ja puupiirien yhdistämiseen. Minulla oli vara -keskuskappale, jonka leikkasin aihioksi ja joka oli kätevä rakentamisen aikana. Liimasin sen puukappaleen taakse ja se antoi minulle paikan, jossa voisin liimata neopikselit myöhemmin.

Kun runko on rakennettu, päätin porata reikiä kytkimille ja virtaliittimelle. Pieni geometria (kuten kuvassa) auttoi minua kohdistamaan kaiken. Käyttäen ulkopuolelta erillistä puukappaletta poratessani (erittäin huolellisesti!) Tein reiät ja liimasin kytkimet ja tunkin.

Kaikki elektroniikka meni seuraavaksi. Liimasin ensin neopikselit alas ja sen jälkeen kondensaattorin. Nämä johdotin neopixel -virrankatkaisukorttiin. Sitten takaosaan laitoin johdot kytkimiin ja virtaliitäntään. Mukana oli myös L7805 -jännitesäädin.

Nopea huomautus renkaiden suunnasta. Suuressa 60 pikselin renkaassa sinun on suunnattava kello siten, että yksi kuvapisteistä on tarkalleen yläreunassa merkitäksesi nolla minuuttia. Millä pikselillä ei ole väliä, ja ymmärrän miksi minuutissa. 24 -pikselisen pienen renkaan kohdalla sinun on suunnattava kello niin, että yläosa on todella kahden pikselin välissä. Syynä tähän on se, että jos haluat merkitä 12 tuntia, sytytät kaksi pikseliä yhden sijasta. Siirtymä ja muovin leviäminen näyttävät siltä, että sinulla on todella 12 leveää pikseliä.

Mitä pikseliä koodi nimeää jokaisen soiton "alkuun", sinun on muokattava koodia hieman. Koodissani on kaksi arvoa, joiden nimi on "internal_top_led" ja "external_top_led". Kelloissani "sisäinen_opas_" oli 11 pikseliä pienen renkaan alusta ja "ulkoinen_top_led" oli 36 pikseliä suuren renkaan alusta. Jos satut suuntaamaan renkaat eri tavalla, muutat nämä arvot vastaaviksi. Vähän kokeilua ja löydät oikean arvon melko nopeasti.

Tässä vaiheessa testasin, että kaikki toimi odotetusti.

Mutta kuten kaikissa projekteissa, törmäsin ongelmaan, kun tajusin, etten ollut arvannut, miten se pysyy yhdessä. Huomasin, että minulla oli noin 3/8 tuumaa tilaa neopikselien ja kylkiluiden välillä, joten menin Home Depotiin ja sain 3/8 tuuman tapin ja useita neodyymimagneetteja. Rakensin pieniä puutelineitä kolmeen paikkaan ja hioin ne alas, jotta voisin laittaa kaksi magneettia jokaiseen telineeseen (käyttämällä superliimaa). Päädyin 3 pariin 2 kpl. Sitten liimasin ne runkoon ja pidin kaiken paikallaan puristimella. Tein tämän, kun jalkojen liima oli märkä, jotta kaikki kohdistuisivat ja kuivuvat sitten oikeassa paikassa. Tämä toimi täydellisesti ja pidän siitä, että julkaisu on piilotettu.

Lopulta tajusin, että minun on ripustettava se seinälle, joten porasin pienen angaarin taakse, jotta voisin laittaa sen seinälle.

Vaihe 7: Viimeiset ajatukset

Tämä projekti oli erittäin hauska rakentaa ja nautin oppia neopikseleistä ja DS3234: stä. Nautin erityisesti siitä, että sain vihdoin rakentaa projektin, joka näytti hyvältä alusta loppuun. Muutamia asioita päivitän, jos teen tämän uudelleen, mutta ne ovat vähäisiä:

  • Valitsin yksinkertaisuuden vuoksi kaksi painiketta kolmen sijasta. Mutta kellon asettaminen olisi ollut mukavaa napin avulla, joka sallii minun mennä alas ja ylös
  • Tila- ja asetuspainike ovat erottamattomia. Sekoitan ne usein. Ehkä asetan ne vastakkaisille puolille tulevaisuudessa.
  • En koskaan valmistanut puuta. Pidin aluksi raakasta ulkonäöstä ja myöhemmin huolestuin siitä, että jos sekoitan viimeistelyn, sen korjaaminen maksaa paljon.
  • Puun rasterointi oli ok ulkoasu, mutta olisin ehkä piirtänyt puun yksityiskohtia tulevaisuudessa.
  • Kellon himmentäminen olisi myös hieno ominaisuus, koska se on melko kirkas pimeässä. Himmennys on kuitenkin sidottu väriin ja sen ymmärtäminen, että bitti kesti liian kauan, joten pudotin sen. Sijoittaisin todennäköisesti tähän ominaisuuteen uudelleen tulevaisuudessa.

Kiitos, että luit tämän ohjeen läpi. Toivottavasti teet oman kellosi tai neopikseliprojektisi ja jaat sen kanssani. Onnellista rakentamista!

Suositeltava: