Nástěnné hodiny TheSUN, Arduino Powered Design: 6 kroků (s obrázky)
Nástěnné hodiny TheSUN, Arduino Powered Design: 6 kroků (s obrázky)
Anonim
Nástěnné hodiny TheSUN, Arduino Powered Design
Nástěnné hodiny TheSUN, Arduino Powered Design
Nástěnné hodiny TheSUN, Arduino Powered Design
Nástěnné hodiny TheSUN, Arduino Powered Design
Nástěnné hodiny TheSUN, Arduino Powered Design
Nástěnné hodiny TheSUN, Arduino Powered Design

Ahoj znovu, instruktoři-lidi!:-P

Kvůli problémům s přepravou jsem nemohl pokračovat ve svém projektu ABTW, a tak jsem se rozhodl ukázat vám další, můj nejnovější výtvor.

Myslím, že mnozí z nás, jako já, mají rádi ty pěkné adresovatelné LED pásky (nazývané také NEOPIXEL LED). Můžete je získat z ADAFRUIT. Ostatní prodejci budou také poskytovat podobné produkty. Na ADAFRUITS - GitHub (klikněte na mě) je k dispozici knihovna včetně ukázkového kódu. Kódování by tedy mělo být přímočaré …

Viděl jsem ty NEOPIXELY jako myšlenku, co mám… dělat s těmi lesklými maličkostmi.

  • LED maticový displej? -> Složité a nepoužívám to (v tuto chvíli)
  • Osvětlení X-Mas? -> Hodí se k sezóně, ale bylo by levnější koupit si:-P
  • hodiny? -> Proč ne! Ale mělo by to být stylové a netradiční

Pojďme si tedy vyrobit nástěnné hodiny.

Pokud se podíváme zblízka na naše náramkové hodinky (pokud máte analog jako já), všimneme si, že máme 12 hodin a 60 minut (doufejme). To bude znamenat, že potřebujeme 60 adresovatelných LED diod, phu! Pokud vezmeme proužek se 60 LED diodami / metr, dostaneme průměr ~ 318 mm (poloměr = rozsah / (2*Π)), což je určitě příliš velký.

Pravdou je, že pokud někoho požádáte o čas, nikdo neřekne, že jsou 2 minuty po 3! Jako odpověď dostanete „Je 5 po 3“. Proč bychom tedy neměli vše zkrátit na 5minutové kroky? K tomu budeme potřebovat pouze 12 LED, což znamená, že dostaneme průměr 63,6 mm. Jsme také schopni rozlišit hodiny a minuty tím, že jim dáme samostatnou barvu. Rovněž budeme schopni poskytnout „chybějící“jednotlivé minutové kroky s přídavným pruhem 4 LED (nebo jednou adresovatelnou LED).

TO JE PLÁN! Podívejme se, jak jsem všechno udělal. Jako vždy poskytnu seznam/kusovník a pokyny, jak jej postavit.

Pokud si myslíte, že skvělé hodinky mohou vyrábět pouze Švýcarové, ukažte, že se mýlíte (promiňte Švýcarsko:-P)

Krok 1: Návrh a výběr materiálů

Design a výběr materiálů
Design a výběr materiálů
Design a výběr materiálů
Design a výběr materiálů

Design:

Podíváme-li se znovu na naše analogové hodinky/hodiny, uvidíme, že kruh je rozdělen na 12 * 30 ° kroky, víme, že pro LED pásek potřebujeme 63,6 mm. Mělo by tedy být možné pás nějak zarovnat kolem trubky. Rozhodl jsem se použít akrylové sklo, protože vypadá hezky a je možné do něj zapouzdřit LED světlo a při každé vadě skla dojde k nějakému rozptylu světla. Řekněme tedy: více nečistot povede k většímu rozptylu světla! Přesně to chceme. Neváhejte se tedy chopit nástrojů pro gravírování a buďte kreativní:-)

Pokud se podíváte na můj seznam BoM a jméno, které jsem dal hodinám, zvolil jsem design podobný slunci. Všechny akrylové díly jsem dostal od německého prodejce na E-Bay (odkaz uvedený v BoM). Pro můj design budete potřebovat:

  • akrylová broušená deska, průhledná tloušťka = 6 mm, průměr = 300 mm
  • akrylová střední deska, průhledná tloušťka = 3 mm, průměr = 150 mm
  • přední akrylová deska, satén, tloušťka = 3 mm, průměr = 90 mm
  • akrylová trubice, průhledná, vnější průměr = 64 mm (bude to znamenat, že musíme trochu vyladit LED pásek)
  • akrylová tyč, průhledná, průměr = 5 mm (to budou naše paprsky); Kolem jsou také akrylové tyčinky s bublinami, doporučuji je, ale nemám je kolem sebe.
  • akrylové lepidlo

Elektronika (viz Fritzing-soubory):

  • Arduino mini (nebo podobný)
  • 1 adresovatelný LED pásek (12 LED pro hodinové a 5minutové kroky)
  • 4 adresovatelné LED diody (jednotlivé minuty)
  • 2 330Ohm odpory
  • 1 1000 µF kondenzátor
  • 1 napájecí zdroj (5V/500mA)
  • RTC DS-1307 (volitelně!)
  • Modul Bluetooth (volitelně! Ano, čas můžete nastavit pomocí BT a chytrého telefonu Android)

Pokud se ptáte, proč mám na BoM čipy MAX485. Odpověď zní, že chci synchronizovat hodiny se systémem domácí automatizace, který se chystám vyrobit (nikdy už nebudu muset znovu nastavovat hodiny pro letní čas:-P). To popíšu na svém blogu v příštím pár týdnů/měsíc.

Jak jste si všimli, pokusím se také hodiny vypnout pomocí několika solárních panelů a LiPo, ale v tomto Instructable to nepokrývám, zkuste to sami.

Krok 2: Připravte si akrylové části

Připravte si akrylové části
Připravte si akrylové části
Připravte si akrylové části
Připravte si akrylové části
Připravte si akrylové části
Připravte si akrylové části

Nástroje:

V první řadě je velmi užitečné, když si vytisknete plán DWG, který jsem přidal v měřítku 1: 1. Pomůže vám to zarovnat všechny součásti a poslouží vám jako plán vrtání. Dále budete potřebovat:

  • hobbyknife
  • pokosový měřič
  • pilka na kov
  • svorky
  • ruční vrtačka
  • může vrtat, průměr 65 mm
  • sada kovových vrtáků
  • malý kovový pilník
  • akrylové lepidlo

Začněme:

Vezměte zemnící desku a zarovnejte ji na plánu, abyste získali střed kruhu. Nyní vezměte ruční vrtačku s vrtákem na plechovku a vyvrtejte (velmi pomalu! Ne příliš velký tlak!) Otvor ve středu základové desky, vnější kruh by měl být hluboký ~ 2-3 mm. Toto má zapustit LED pásek do zemnící desky (LED pás široký ~ 10 mm, paprsky pouze 5 mm v průměru) a zarovnat je s paprsky (viz obrázek 1).

Nyní potřebujeme pilu, pokosový rozchod a akrylovou trubku. Stačí jej rozřezat na kusy a rozhodl jsem se, že pouzdro (trubka) bude dlouhé 40 mm (obrázek 2). Nyní znovu uchopte pilku a na jedné straně tuby udělejte malého králíka, který uhlaďte kovovým pilníkem. Právě tam se objeví dráty;-) (viz obrázek 3)

Čas na trochu lepidla … Vezměte střední desku (d = 150 mm) a přední desku (saténovou). Zarovnejte je znovu na půdorys, na střed prostřední desky naneste trochu lepidla, zarovnejte přední desku a počkejte, až lepidlo je mírně vytvrzené. Lepidlo, které jsem použil, je lehce vytvrzené a může trvat až 2–3 hodiny, takže chcete použít svorku… (obrázek 3 a 4)

Totéž proveďte pro nalepení trubice na zemnící desku, ujistěte se, že králík směřuje k desce a je zarovnán někde, kde chcete mít první LED (12 hodin).

Počkejte, až to ztvrdne!

Nyní můžeme zarovnat 2 části (bookmatched) do plánu a vyvrtat naše 4 jediné minutové otvory (průměr 5 mm nebo průměr LED, který jste si vybrali; vrtat pomalu bez příliš velkého tlaku). Vrtejte asi 8-9 mm hluboko. Buďte opatrní, saténovaná deska je velmi křehká a může brzdit, pokud vrtáte do hloubky. Nyní je můžete slepit dohromady nebo se rozhodnete, jako já, vyříznout hrozbu do zemní desky a připevnit ji šroubem.

Opět počkejte, až lepidlo ztvrdne. Nyní zarovnejte a přilepte paprsky na zemní desku. (obrázek 6) Hádejte co … počkejte, až lepidlo ztvrdne:-) Přejdeme k elektronice …

Krok 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Nástroje:

  • páječka
  • pájecí drát
  • hobby nůž
  • malý kousek prototypové desky plošných spojů
  • smaltovaný drát nebo jakýkoli jiný drát, který upřednostňujete
  • horké lepidlo

Vystřídal jsem jednotlivé LED diody. Pokud používáte smaltovaný drát, nezapomeňte před pájením oškrábat lak. K tomu můžete použít hobby nůž. Zapojte je, můžete se podívat na obrázek s vývodem na flikto.de. Všimněte si, že DOUT přejde na DIN na další LED! (viz obrázek 2) Poté můžete LED pásek rozřezat na 4 prvky, každý se 3 LED diodami. Pamatujte, že máme 63,6 mm LED pásek a 64 mm vnější průměr trubice, takže potřebujeme nějakou „extra délku, abychom ji přesně zarovnali s paprsky. Zapojte ji smaltovaným drátem, jako na obrázku 4. Vyrobil jsem malý proto PCB, který bude sloužit jako „napájecí svazek“a bude obsahovat komponenty pro LED pásky (dva odpory 330Ohm a kondenzátor 1000 µF, obrázek 7). Viz Fritzing Image.

Nyní namontujte pásek kolem trubice a zarovnejte LED diody s paprsky. První Pixel odpovídá 12 hodině. Pokud jste se otočili kolem svého bydlení, nezapomeňte, že se vše zrcadlí. Pokračujte proti směru hodinových ručiček! Pomocí horkého lepidla jej připevněte k trubici. Malý pokles pro každý segment to zvládne!

To samé můžete udělat pro jednotlivé LED diody (případně zrcadlené), stačí přidat trochu horkého lepidla a zatlačit je do předvrtaných otvorů.

Arduino zatím nepropojujte, pro připojení BT použijeme hardware-serial, takže nejprve zkontrolujte další kroky, kde popisuji software.

Krok 4: Kód

Kód
Kód
Kód
Kód

Nyní můžete načíst skicu do Arduina. Nyní můžete také zapojit LED pásky. Nepřipojujte modul BT !!! Nejprve se chceme podívat na kód, měli byste vědět, kde můžete vyladit několik věcí …

Stáhněte si Arduino IDE a Librarys. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Nainstalujte IDE a vložte knihovny do složky knihovny. Otevřete přiložený soubor INO a nahrajte jej do svého Arduina. Zde popsaný kód je stejný, ale s dalšími komentáři! Pokud jste udělali vše správně, můžete nyní vidět „bootanimaci“. Je možné nastavit čas přes sériový monitor. Stačí zadat @„hodina“/„min“/„s“, např. @10/33/00 (10:33).

Nebojte se hrát s kódem … Zde vám poskytnu stručný popis kódu (Nastavení bez RTC!)

DEFINICE:

#define PIN 6 // hodinový LED pás #define MINPIN 5 // singelminute LED #define NUMPIXELS 12 // počet pixelů za hodinu #definovat MINNUMPIXELS 4 // počet pixelů za jednu minutu #define BAUDRATE 115200 // Baudrate, mělo by odpovídat přenosová rychlost BT modulu #define utch '@' // start BYTE TimeSync

int timeset = 0; // příznak k uložení, pokud byl čas nastaven po bootint delayval = 20; // zpoždění pro mizející animaci int clocktimer = 10 000; // časová aktualizace int timebright = 250; // jas hodiny Strip int mtimebright = 50; // jas singelminint initialize = 0; // příznak pro volání funkce clearpixels po bootint ahour; int oldahour = 0; // uložit předchozí. hourint aminute; int oldamin = 0; // uloží předchozí minutu pro refreshint asecond; int aday; int amonth; int rok; int mmin; tmElements_t tm;

// Nastavení pro 2 pole LED NeoPixel (NÁZEV = TYP (POČET PIXELŮ, KTERÝ PIN, FORMÁTOVÁNÍ RGB NEBO GRB, FREQ); Další informace najdete v příručce Adafruit. Pixelů Addaruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

ZALOŽIT:

neplatné nastavení () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicializujte proužky, všechny OFFpixels.begin (); minpixels.begin (); pixely.show (); minpixels.show ();

// Vytvořte malou animationSerial.println ("SUNRISE"); východ slunce(); zpoždění (1000); Serial.println ("SUNSET"); západ slunce(); pixely.show (); Serial.println ("READY"); }

SMYČKA:

void loop () {// kontrola timesync while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // pokud je na řádku @, přečtěte si nadcházející bajty /inty {readtime (); }} // inicializujte LED diody, vymažte animaci spouštění

if (inicializovat == 0) {clearpixels (); inicializovat = 1; }

hodina = hodina ();

aminute = minuta (); if (timeset == 1 || timeset == 0) // zde můžete zkontrolovat, zda byl nastaven Time, zde můžete program zastavit, pokud Timeset = FALSE, stačí odstranit "|| timeset == 0"!

{

if (oldamin <aminute || oldahour set all to OFF, display new time {clearpixels (); ClockDisplay ();}}}}

Zobrazit hodiny:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // pro 24hodinový displej máme pouze 12 LED} else {xhour = ahour; } // škálování na 5min kroky xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; clearpixels (); } // vezměte zbytek rozdělení dor LED dioda mmin = (aminute % 5); // operátor modulo např. 24 % 5 = 4! velmi užitečné: -Ppixels.setBrightness (timebright); pixely.setPixelColor (xmin, pixely. Color (5, 125, 255)); // zde můžete měnit barvy! hrajte si! pixely.setPixelColor (xhour, pixely. Color (255, 50, 0)); pixely.show ();

// zobrazí singl minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixely. Color (255, 255, 0)); minpixels.show (); }} Přečíst a zpracovat TIMEinformace ze Serial

void readtime () // pokud jsme již získali vedoucí "@" zpracovávají přicházející data a ukládají čas pro TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (ahour); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Vymazat vše

void clearpixels () // vypnutím každého PIXELu obnovíte zobrazení {

pixely.begin (); minpixels.begin (); pro (int i = 0; ipixels.setPixelColor (i, pixely. Color (0, 0, 0)); minpixels.setPixelColor (i, pixely. Color (0, 0, 0)); pixely.show (); minpixely.ukázat(); } }

Krok 5: Připojení Android APP a BT

Připojení Android APP a BT
Připojení Android APP a BT
Připojení Android APP a BT
Připojení Android APP a BT
Připojení Android APP a BT
Připojení Android APP a BT

Pokud jste byli s předchozími kroky úspěšní, můžete nyní připojit svůj BT modul. (doufám, že jste se ujistili, že se přenosové rychlosti shodují). nezapomeňte překročit řady TX a RX:-)

Stáhněte si a nainstalujte aplikaci, spárujte ji s BT dongle, spusťte aplikaci, připojte se k donglu a synchronizujte čas s mobilem. APP v podstatě dělá to samé, co jsme dělali dříve. Prostě odešle @hh/mm/ss/dd/mm/RRRR generované z jeho systémového času. Také jsem poskytl soubor APPInventor AIA a vysvětlení dalšího kroku (pro ty, kteří mají zájem).

Krok 6: APPInventor

APPInventor
APPInventor
APP Inventor
APP Inventor

APP Inventor je docela snadné použití a stojí za námahu pro tak jednoduchý program.

Pokud vytvoříte nový projekt, najdete se na obrazovce DESIGNER. (obrázek 1) Zde přidáváme tabulky, tlačítka, senzory a další prvky pro další použití. V našem případě potřebujeme:

  • tabulka (k zarovnání všech prvků)
  • listpicker (pro výběr zařízení BT, ke kterému se připojujeme)
  • tlačítko (pro spuštění ČASU přes BT)
  • některé štítky (zobrazují skutečný čas a datum)
  • snímač hodin (obnovte čas)
  • senzor klienta bluetooth (připojení)

Jejich přidání je stejně snadné jako přetažení myší! Na obrázku 2 můžete vidět přehled „APP“na obrazovce BLOCKS. No, to je v podstatě místo, kde se odehrává veškerá „magie“. Nahoře jsem vytvořil několik proměnných pro uložení času a data. První blok vlevo nahoře inicializuje prvek listpicker se seznamem spárovaných zařízení BT. druhý blok rozhodujeme, co dělat s dříve vybraným prvkem. Chceme se k tomu připojit.

Pokud se blíže podíváte na další blok, můžete vidět, že pokud je stav BT „připojen“, generujeme zprávu BT. Je to totéž, co jsme předtím zadali do SerialMonitoru. Poslední blok vlevo nám poskytne úvodní nuly pro zobrazení času (např. 01:08). Na pravé straně najdete náš poslední blok, kde používáme hodinový prvek. Zde aktualizujeme proměnné a sloučíme je s postupem číslic, to se stane každých 1000 ms (výchozí nastavení, změňte to v režimu návrháře) a zobrazit aktualizované hodnoty pomocí štítku. To je jen stručný popis, ale APPInventor je opravdu tak jednoduchý:-) Možná je v komunitě někdo, kdo chce napsat software pro iOS nebo WindowsPhone. (by bylo skvělé)

Doufám, že se vám můj Instructable líbil! Bavte se s novými nástěnnými hodinami! Možná ho chcete darovat někomu, koho milujete (sezóna X-Mas):-)

A pokud máte nějaké otázky, neváhejte se mě zeptat!

S pozdravem Merry X-Mas.