Obsah:

NeoClock: 7 krokov (s obrázkami)
NeoClock: 7 krokov (s obrázkami)

Video: NeoClock: 7 krokov (s obrázkami)

Video: NeoClock: 7 krokov (s obrázkami)
Video: ТОЛЬКО не СМОТРЕТЬ на голодный желудок!! Одесские Пельмени Посылка от Липован 2024, Jún
Anonim
Image
Image

Ide o stavbu hodín pomocou fantastických neopixelových prsteňov od spoločnosti Adafruit. Zábavné na týchto hodinách je, že v skutočnosti majú dva prstence neopixelov, jeden na určovanie hodín a druhý na minúty, sekundy a milisekundy. Hodiny udržujú perfektný čas pomocou čipu DS3234 DeadOn Real Time Clock od Sparkfun. Jednoduché zostavenie a zábavné úpravy. Dúfam, že to inšpiruje ostatných k stavbe hodín alebo iného umenia pomocou neopixelových krúžkov.

Tí z vás, ktorí chcú získať všetky svoje súbory v jednoducho spravovateľnom formáte, si ich môžu stiahnuť z môjho úložiska github pre tento projekt na

Krok 1: Navrhovanie hodín

Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín
Navrhovanie hodín

Od začiatku som vedel, že chcem použiť aspoň dva prstene neopixelov. Po nejakej práci som sa rozhodol, že najlepším návrhom bude mať jeden prsteň v druhom, ktorý zachováva pôvodnú podobu hodín. Menší krúžok by predstavoval hodiny a zostávajúci čas by bol ponechaný na väčšom kruhu. Niektoré úvahy o dizajne zahŕňali náklady na neopixely, požiadavku na výkon, veľkosť dielov laserom rezaných a aké umenie som na ne chcel vložiť.

Keď bol tento krok dokončený, rozhodol som sa, že pred vytvorením plánov laserového rezania hodinového tela musím porozumieť elektronike.

Krok 2: Navrhovanie elektroniky

Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky
Navrhovanie elektroniky

Pri navrhovaní elektroniky došlo k tomu, že som vopred poznal prvky, ktoré som chcel v hodinách:

  • Neopixelové prstene (60 a 24)
  • Arduino (mozog)
  • Regulácia hodín (arduinos nemá dobrý čas)
  • Správa napájania

Požiadavky na veľkosť a výkon neopixelov sú dobre zdokumentované. Pretože beží na 5V DC, rozhodol som sa ísť s 5V Arduino a veci si sám uľahčiť. Keďže som zvažoval priestor, rozhodol som sa prototypovať bežné Arduino Uno, ale pre konečnú elektroniku som si vybral Arduino Mini.

Prvá iterácia tohto projektu pochádza priamo zo stránky Adafruit NeoPixel Basic Connections. Na uľahčenie práce som vložil diagram z webovej stránky. Z toho sú dôležité dve veci:

  1. Na to, aby počiatočný prúdový náraz nepoškodil pixely, je potrebný kondenzátor 1000uF.
  2. Na prvom pixeli 60 počítacieho prstenca je potrebný odpor 470 ohmov (tento odpor je zabudovaný do 24 počítacieho prstenca)

Adafruit má tiež súbor osvedčených postupov pre NeoPixel, ktoré by ste si mali prečítať, než budete pokračovať v návrhu.

Udržanie času na hodinách je ďalším problémom. Vstavané hodiny na arduine nestačia na to, aby ste si udržali dobrý čas po dlhšiu dobu. Horším problémom je, že čas na arduine môže byť potrebné resetovať zakaždým. Počítače tento problém riešia použitím malej batérie na hodinovom čipe, ktorá udržiava čas medzi výpadkami napájania. V minulosti som používal niečo ako ChronoDot od spoločnosti Adafruit. Ale v tomto prípade som chcel ospravedlnenie pre použitie DS3234 (DeadOn RTC) od SparkFun. Informácie o dátume môžete uložiť aj do DeadOn RTC, ak ich chcete integrovať do hodín.

Napokon, manažment napájania potreboval trochu zvážiť. Už som vedel, že všetko musí byť na 5V, ale množstvo potrebného prúdu sa zdalo byť záhadou. Bežným regulátorom napätia vo väčšine projektov je L7805. Bude to trvať napätie až 24V a maximálny prúd až 1,5A. Vedel som, že mám položenú mladinu na stenu 1,5 V 1,5 A, a tak som sa rozhodol, že to bude perfektný (a lacný!) Regulátor napätia pre projekt.

Zostávajúce kusy budú pochádzať z mojej škatule s dielmi alebo z Radio Shack. Obsahovali káble, prepínače a napájací konektor DC.

Krok 3: Výroba elektroniky

Stavba elektroniky
Stavba elektroniky
Stavba elektroniky
Stavba elektroniky
Stavba elektroniky
Stavba elektroniky

Úplný zoznam elektroniky, ktorú som si kúpil na stavbu tohto projektu, nájdete v mojom úložisku github tu: Zoznam súčiastok elektroniky. Obsahuje odkazy na stránku produktu pre každý kus a obsahuje niektoré ďalšie informácie vrátane SKU produktu. Rýchlo som to prototypoval na doske a pred fotografovaním som sa presunul na rezanie a stavanie laserom. Postavil som ho však tak, aby sa dal ľahko rozobrať, a tak som pre vás rozložil kúsky na vyššie uvedených fotografiách.

Pozrite sa pozorne na obrázky, pretože drôty boli úmyselne ohnuté tak, aby ich bolo možné ľahko sledovať a aby bol celý profil elektroniky tenký. Vykonanie tejto počiatočnej prototypácie pred návrhom rezaným laserom mi umožnilo skontrolovať hrúbku dielov, aby som mohol zistiť konečné rozmery tela hodiniek.

Všimnete si, že som vyrobil niekoľko vlastných chlebov. Pokúsil som sa odfotiť zadnú stranu týchto dosiek, aby ste ich mohli zopakovať. Sortiment takýchto dosiek si môžete kúpiť za pár dolárov a prispôsobiť ich svojmu projektu.

Elektroinštalácia je priamočiara, ale dôležité veci, ktoré si z obrázkov musíte zapamätať, sú tieto:

  • Prepínače Mode a Set budú potrebovať sťahovacie odpory. Použil som odpory 2,21 ohmov, ktoré som mal položené, ale akýkoľvek malý odpor bude fungovať (najlepšie nie menší ako 1 kOhm). To stabilizuje pripojené vstupné kolíky Arduino, takže keď idú vysoko, je to rozlíšiteľné od šumu.
  • Štvorcová vlna (SQW) na DS3234 bola uzemnená, pretože sa nepoužíva.
  • Napájanie z L7805 je vložené do kolíka Arduino Mini v pine RAW. Do RAW vždy vložte výkon, ktorý prichádza do Arduina.
  • Prvý pixel 60 neopixelového prstenca má odpor 470 Ohm, aby sa znížilo akékoľvek poškodenie prvého pixelu v dôsledku špičiek údajov. To by nemal byť problém, pretože 24 -násobný neopixel má na to už zabudovaný odpor, ale je to lepšie bezpečné ako ľúto.
  • Prepínače Mode a Set sú dočasné spínače tlačidiel SPST

Farby vodičov sú:

  • Červená: +5 VDC
  • Čierna: Zem
  • Zelená: Údaje
  • Žltá, modrá, biela: Špeciálne vodiče pre DS3234

Ak používate neopixely prvýkrát, mali by ste mať na pamäti, že ich možno považovať za dlhý reťazec. Mohlo by sa zdať čudné hovoriť o „prvom pixeli“v krúžku, ale v skutočnosti existuje začiatok a koniec každého reťazca v krúžkoch. V tomto projekte je 24 pixelov malého krúžku na prvom mieste a 60 pixelov väčšieho prstenca nasleduje. To skutočne znamená, že mám reťazec 84 neopixelov.

Pre zapojenie na Arduino Mini:

  • DS3234 sa pripája na piny 10 - 13
  • Prepínače Mode a Set sú na kolíkoch 2 a 3
  • Údaje o neopixeli pochádzajú z pinu 6.

Odporúčam tiež umiestniť 6 záhlaví na spodok Arduino Mini, aby ste ho mohli naprogramovať pomocou kábla FTDI.

Dôležitá poznámka k prúdu: Tieto hodiny vyžadujú veľa. Som si istý, že by som to mohol vyriešiť, ale moja praktická skúsenosť je, že čokoľvek rovnaké alebo menej ako 500 mA nakoniec spôsobí hnedé výstupy. To sa prejavuje tak, že hodiny blikajú šialenými farbami a nedodržiavajú čas. Moja konečná mladina je 12 V a 1,5 A a nikdy som s ňou nezhasol. 1,5 A je však limit, ktorý regulátor napätia (a ďalšie časti) vezme. Neprekračujte preto túto čiastku.

Krok 4: Kódovanie hodín

Kódovanie hodín
Kódovanie hodín

Úplný kód hodín nájdete v kóde NeoClock na GitHub. Súbor som zahrnul sem, ale všetky zmeny sa uskutočnia v úložisku.

Zdá sa mi, že písanie kódu môže byť skľučujúce, ak sa pokúsite urobiť všetko naraz. Namiesto toho sa snažím vychádzať z fungujúceho príkladu a vytvárať funkcie tak, ako ich potrebujem. Predtým, ako sa k tomu dostanem, chcem zdôrazniť, že môj kód pochádza z kombinácie mnohých príkladov z nasledujúcich úložísk a fóra Arduino CC. Vždy poskytnite kredit tam, kde je splatný!

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

Niektoré ukážkové kódy z týchto úložísk nájdete v mojom adresári Code examples

Poradie operácií, ktoré som použil na zostavenie kódu, prebiehalo zhruba takto:

  • Uistite sa, že neopixely fungujú pomocou príkladu testovania prameňov
  • Skúste spustiť hodiny s kódom časovej slučky
  • Upravte hodiny tak, aby fungovali na dvoch krúžkoch, nie iba na jednom
  • Pridajte DS3234, aby ste ušetrili čas prostredníctvom príkladu DeadOn RTC
  • Pridajte režim a nastavte prepínače
  • Pridajte kód Debounce s pomocou tutoriálu Arduion Debounce
  • Pridajte niekoľko farebných motívov pre LED diódy hodín
  • Pridajte niekoľko animácií pre značky 0, 15, 30 a 45 minút
  • Pridajte k hodinám body kompasu na orientáciu značiek 0, 15, 30 a 45 minút

Ak chcete vidieť, ako som tento kód zostavil, môžete v skutočnosti použiť GitHub na zobrazenie každého potvrdenia kódu. História hodín je v histórii potvrdenia.

Farebné schémy bolo zábavné pridávať, ale nakoniec som do ponuky zaradil iba štyri z nich. Každá téma nastavuje konkrétnu farbu „ručičiek“hodiny, minúty, sekundy a milisekundy. Možnosti sú tu skutočne nekonečné, ale zahrnul som témy (uvedené názvy metód):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

V kóde však nájdete tieto ďalšie metódy:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Pridali sa animácie, pretože sa mi páčila myšlienka, že staré hodiny budú zvoniť v pätnásťminútových bodoch na hodinách. Pre tieto hodiny som vytvoril nasledujúce animácie:

  • 15 minút: Vyfarbi prstene na červeno
  • 30 minút: Vyfarbi prstene na zeleno
  • 45 minút: Vyfarbi prstene na modro
  • Horná časť hodiny: Vykonajte dúhu cez dva prstene

Ukázalo sa, že s hodinami je problém s použiteľnosťou, pretože hodiny nikto nevie orientovať. Sú to predsa len dva prstence diód LED. Aby som problém vyriešil, pridal som body kompasu k hodinám. To zlepšilo schopnosť veľa povedať času. Keby som o tom vedel pred odoslaním laserom rezaných kúskov, možno by som namiesto toho pridal niečo do umenia. Ukazuje sa však, že v tme nemôžete umenie tak dobre vidieť, takže používanie bodov kompasu skutočne pomáha. Jednou z úvah je, že keď sa rozhodnete zafarbiť pixel, mali by ste najskôr zachytiť aktuálnu farbu a vytvoriť novú zmiešanú farbu. To mu dodáva prirodzenejší pocit.

Jeden posledný kúsok je o milisekundách. Milisekundy na Arduine vychádzajú z vnútorného kryštálu Arduino a nie z DS3234. Je na vás, či chcete zobrazovať milisekundy alebo nie, ale ja som to urobil, hodiny vždy vyzerali, že niečo robia. Možno vám bude vadiť, že milisekundy a sekundy sa nie vždy zhodujú, ale v praxi mi to nikto pri pohľade na hodiny nikdy nespomenul a myslím si, že to vyzerá pekne.

Krok 5: Navrhovanie súborov rezaných laserom

Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom
Navrhovanie súborov rezaných laserom

Pri návrhu laserom rezaných pilníkov som musel vziať do úvahy dve veci. Prvým bol materiál, z ktorého som ho chcel postaviť, a druhým, akým spôsobom bude skonštruovaný. Vedel som, že chcem povrchovú úpravu dreva s akrylom, ktorý rozptýli neopixely. Aby som zistil materiál, najskôr som si objednal niekoľko vzoriek od Ponoko:

  • 1x dyha MDF - orech
  • 1x dyha MDF - čerešňa
  • 1x akryl - svetlo šedá
  • 1x Akryl - opál

Výbery dreva mi umožnili zistiť, ako bude vyzerať rasterizácia a ako bude popálenina vyzerať na strane hodín. Akryl mi dovolil otestovať difúziu neopixelov a porovnať, ako by vyzeral proti drevu. Nakoniec som sa rozhodol pre čerešňové drevo s opálovým akrylom.

Rozmery hodín boli určené predovšetkým veľkosťou prstencov neopixelov. Čo som nevedel, bolo to, aké hrubé to musí byť, aby sa tam zmestila elektronika. Keď som postavil elektroniku a vedel som, že drevo je hrubé asi 5,5 mm, zistil som, že vo vnútri hodín potrebujem asi 15 mm priestoru. To znamenalo tri vrstvy dreva. Ale pretože predná a zadná strana už zaberali väčšinu priestoru v mojom návrhu, potreboval som tie prstene rozložiť na „rebrá“, ktoré by som neskôr mohol zlepiť.

Na kreslenie šablóny poskytnutej Ponoko som použil InkScape. Po vytiahnutí tela hodín som sa pustil do kreslenia stromu ručne. Pôvodný obrázok, ktorý ma inšpiroval, sa mi importovať nepodarilo, ale prísť na to, ako niečo podobné urobiť sám, nebolo nič strašné.

Náklady na materiál boli len asi 20 dolárov, ale náklady na rezanie vyšli asi o 100 dolárov viac. Prispeli k tomu dve veci:

  • Krivky a kruhy sú drahšie, pretože sa stroj pohybuje v dvoch osiach a tento dizajn má veľa kriviek
  • Rasterizácia vyžaduje veľa prihrávok tam a späť naprieč dielom. Zahodením tejto položky by sa ušetrilo najviac peňazí, ale páčilo sa mi to.

Po dokončení návrhu som poslal súbory EPS spoločnosti Ponoko a moje kúsky boli hotové asi o týždeň neskôr.

Všimnite si toho, že som do návrhu nezahrnul prepínače Mode a Set ani DC Power Jack. Keď som to odoslal, stále som sa nerozhodol pre tieto časti. Aby som si poskytol väčšiu flexibilitu, nechal som ich a rozhodol som sa ich neskôr vŕtať ručne.

Krok 6: Konštrukcia hodín

Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín
Konštrukcia hodín

Keď prišli všetky diely, zostrojil som hodiny. Prvým krokom bolo telo hodín, ktoré od mňa vyžadovalo vyrazenie rebier a ich prilepenie na zadnú a prednú stranu. Na zadnú stranu som položil dve vrstvy rebier a na prednú jednu a položil som ich lepidlom na drevo. Na prednú stranu som pomocou lepidla na drevo spojil akrylové krúžky a drevené kruhy. Mal som náhradný stredový kus, ktorý som odrezal ako polotovar, ktorý sa mi počas stavby hodil. Prilepil som ho na zadnú stranu stromčeka a to mi dalo miesto, kde som neskôr mohol prilepiť neopixely.

Keď bolo telo skonštruované, rozhodol som sa vyvŕtať otvory pre vypínače a napájací konektor. Malá geometria (ako je vidieť na obrázku) mi pomohla všetko zarovnať. Pri vŕtaní (veľmi opatrne!) Zvonku pomocou samostatného kusa dreva som urobil otvory a prilepil vypínače a zdvihák.

Ďalej vošla všetka elektronika. Najprv som nalepil neopixely a potom kondenzátor. Tieto som zapojil do dosky na prerušenie napájania neopixela. Potom zozadu som položil vodiče na spínače a napájací konektor. Priložil som aj regulátor napätia L7805.

Krátka poznámka k orientácii krúžkov. Na veľký prsteň 60 pixelov musíte hodiny nastaviť tak, aby jeden z pixelov bol presne v hornej časti a označil nulté minúty. Na ktorom pixeli nezáleží a za minútu sa dostanem k tomu, prečo. Na malý prstenec s 24 pixelmi musíte hodiny nasmerovať tak, aby bol vrchol v skutočnosti medzi dvoma pixelmi. Dôvodom je to, že ak chcete označiť 12 hodín, potom sa rozsvietia dva pixely namiesto jedného. Vďaka posunu a difúzii plastu bude pôsobiť, akoby ste skutočne mali 12 širokých pixelov.

Pokiaľ ide o pixel, ktorý kód označuje ako „vrchol“každého prstenca, musíte kód trochu upraviť. V kóde mám dve hodnoty s názvom „inner_top_led“a „vnější_top_led“. V mojich hodinách bol parameter „inner_top_led“11 pixelov od začiatku malého krúžku a „vnější_top_led“bol 36 pixelov od začiatku veľkého krúžku. Ak by ste náhodou krúžky orientovali inak, potom by ste zmenili tieto hodnoty tak, aby zodpovedali vašej orientácii. Trochu experimentovania a veľmi rýchlo nájdete správnu hodnotu.

V tomto mieste som vyskúšal, že všetko funguje podľa očakávania.

Ale ako pri každom projekte, aj tu som narazil na problém, pretože som si uvedomil, že som neprišiel na to, ako to bude držať spolu. Všimol som si, že medzi neopixelmi a rebrami mám asi 3/8 palca priestoru, a tak som zamieril do Home Depot a dostal som 3/8 palcovú hmoždinku a niekoľko neodýmových magnetov. Na troch miestach som postavil malé stojany na drevo a obrúsil ich, aby som na každý stojan (pomocou super lepidla) mohol dať dva magnety. Skončil som s 3 pármi po 2 stojanoch. Potom som tieto nalepil do rámu a držal som to všetko na mieste pomocou svorky. Urobil som to, kým bolo lepidlo na stojanoch mokré, aby sa všetko zarovnalo a potom zaschlo na správnom mieste. Toto fungovalo perfektne a som rád, že vydanie je všetko skryté.

Nakoniec som prišiel na to, že ho potrebujem zavesiť na stenu, a tak som vyvŕtal malý hangár na zadnej strane, aby som ho mohol postaviť na stenu.

Krok 7: Záverečné myšlienky

Tento projekt bolo veľmi zábavné stavať a bavilo ma učiť sa o neopixeloch a DS3234. Zvlášť ma bavilo konečne postaviť projekt, ktorý vyzeral pekne od začiatku do konca. Ak by som to urobil znova, existuje niekoľko vecí, ktoré by som aktualizoval, ale sú nepodstatné:

  • Zvolil som kvôli jednoduchosti dve tlačidlá namiesto troch. Ale mať tlačidlo, ktoré by mi umožnilo ísť dole aj hore, by bolo fajn na nastavenie hodín
  • Tlačidlo režimu a tlačidlo nastavenia sú na nerozoznanie. Často ich miešam. Možno by som ich v budúcnosti postavil na opačné strany.
  • Nikdy som nedokončil prednú časť dreva. Spočiatku sa mi páčil surový vzhľad a neskôr som sa obával, že ak som pokazil povrchovú úpravu, oprava bude stáť veľa.
  • Rastrovanie stromu bolo v poriadku, ale v budúcnosti som mohol strom nakresliť podrobnejšie.
  • Stmievanie hodín by bolo tiež pekné, pretože v tme je celkom svetlé. Stmievanie je však viazané na farbu a zistenie, že bit trvá príliš dlho, som upustil. V budúcnosti by som do tejto funkcie pravdepodobne znova investoval.

Ďakujeme, že ste si prečítali tento návod. Dúfam, že si vyrobíte vlastný projekt hodín alebo neopixelov a podelíte sa o to so mnou. Šťastnú stavbu!

Odporúča: