Obsah:

Nástenné hodiny TheSUN, poháňané dizajnom Arduino: 6 krokov (s obrázkami)
Nástenné hodiny TheSUN, poháňané dizajnom Arduino: 6 krokov (s obrázkami)

Video: Nástenné hodiny TheSUN, poháňané dizajnom Arduino: 6 krokov (s obrázkami)

Video: Nástenné hodiny TheSUN, poháňané dizajnom Arduino: 6 krokov (s obrázkami)
Video: High Density 2022 2024, Júl
Anonim
Nástenné hodiny TheSUN, poháňané dizajnom Arduino
Nástenné hodiny TheSUN, poháňané dizajnom Arduino
Nástenné hodiny TheSUN, poháňané dizajnom Arduino
Nástenné hodiny TheSUN, poháňané dizajnom Arduino
Nástenné hodiny TheSUN, poháňané dizajnom Arduino
Nástenné hodiny TheSUN, poháňané dizajnom Arduino

Ahoj, opäť inštrukcie-ľudia!:-P

Z dôvodu problémov s prepravou som nemohol pokračovať vo svojom projekte ABTW, a tak som sa rozhodol ukázať vám ďalší, môj najnovší výtvor.

Myslím, že mnohým z nás, ako mne, sa páčia tie pekné adresovateľné LED pásy (nazývané aj NEOPIXEL LED). Môžete ich získať z ADAFRUIT. Ostatní predajcovia budú tiež poskytovať podobné výrobky. Na ADAFRUITS - GitHub (kliknite na mňa) je k dispozícii knižnica vrátane ukážkového kódu. Kódovanie by teda malo byť jednoduché …

Videl som tých NEOPIXELOV myšlienku, čo môžem … robiť s týmito lesklými drobnosťami.

  • LED maticový displej? -> Zložité a nepoužívam to (momentálne)
  • Osvetlenie X-Mas? -> Sedí to na sezónu, ale bolo by lacnejšie kúpiť si ju:-P
  • hodiny? -> Prečo nie! Malo by byť ale štýlové a netradičné

Vyrobme si teda nástenné hodiny.

Ak sa pozrieme na naše náramkové hodinky zblízka (ak máte analóg ako ja), všimneme si, že máme 12 hodín a 60 minút (dúfajme). To bude znamenať, že potrebujeme 60 adresovateľných LED diód, phu! Ak vezmeme pás so 60 LED / meter, dostaneme priemer ~ 318 mm (polomer = rozsah / (2*Π)), to je určite príliš veľký.

Pravdou je, že ak niekoho požiadate o čas, nikto nepovie, že sú 2 minúty po tretej! Ako odpoveď dostanete „Je 5 po 3“. Prečo by sme teda všetko nezmenšili na 5 minút? Na to budeme potrebovať iba 12 LED diód, čo znamená, že dostaneme priemer 63,6 mm. Sme tiež schopní rozlíšiť hodiny a minúty tým, že im dáme samostatnú farbu. Tiež budeme schopní poskytnúť „chýbajúce“jednominútové kroky s ďalším pásom 4 LED diód (alebo jednou adresovateľnou LED diódou).

TOTO JE PLÁN! Pozrime sa, ako som všetko urobil. Ako vždy poskytnem zoznam/kusovník materiálov a pokyny, ako ho postaviť.

Ak si myslíte, že iba hodiny môžu vyrábať iba Švajčiari, dokážeme, že sa mýlite (prepáčte, Švajčiarsko:-P)

Krok 1: Návrh a výber materiálov

Dizajn a výber materiálov
Dizajn a výber materiálov
Dizajn a výber materiálov
Dizajn a výber materiálov

Dizajn:

Ak sa znova pozrieme na naše analógové hodinky/hodiny, uvidíme, že kruh je rozdelený na kroky 12 * 30 °, vieme, že pre pásik LED potrebujeme 63,6 mm. Malo by byť teda možné pásik nejakým spôsobom zarovnať. Rozhodol som sa použiť akrylové sklo, pretože vyzerá pekne a je možné do neho zapuzdriť LED svetlo a pri každej chybe skla dôjde k nejakému rozptylu svetla. Povedzme teda: viac nečistôt povedie k väčšiemu rozptylu svetla! Presne to chceme. Neváhajte sa preto chopiť nástrojov na gravírovanie a buďte kreatívni:-)

Ak sa pozriete na môj zoznam BoM a názov, ktorý som dal hodinám, vybral som dizajn podobný slnku. Všetky akrylové diely som dostal od nemeckého predajcu na E-Bay (odkaz uvedený v BoM). Pre môj návrh budete potrebovať:

  • akrylová brúsená doska, priehľadná hrúbka = 6 mm, priemer = 300 mm
  • akrylová stredná doska, priehľadná hrúbka = 3 mm, priemer = 150 mm
  • akrylová predná doska, saténová, hrúbka = 3 mm, priemer = 90 mm
  • akrylová trubica, priehľadná, vonkajší priemer = 64 mm (bude to znamenať, že musíme trochu vyladiť pásik LED)
  • akrylová tyč, priehľadná, priemer = 5 mm (to budú naše lúče); V okolí sú tiež akrylové tyče s bublinami, odporúčam ich, ale nemám ich okolo.
  • akrylové lepidlo

Elektronika (pozrite si súbory Fritzing):

  • Arduino mini (alebo podobné)
  • 1 adresovateľný pásik LED (12 diód LED v hodinových a 5 minútových krokoch)
  • 4 adresovateľné LED diódy (jednotlivé minúty)
  • 2 330Ohm rezistory
  • 1 1000 µF kondenzátor
  • 1 napájací zdroj (5V/500mA)
  • RTC DS-1307 (voliteľné!)
  • Modul Bluetooth (voliteľné! Áno, čas môžete nastaviť pomocou BT a smartfónu Android)

Ak sa pýtate, prečo mám na BoM čipy MAX485. Odpoveď je, že chcem synchronizovať hodiny s domácim automatizačným systémom, ktorý sa chystám vyrobiť (nikdy už nebudem musieť znova nastavovať hodiny na úsporu denného svetla:-P). To popíšem vo svojom blogu v nasledujúcom článku. pár týždňov/mesiac.

Ako ste si všimli, pokúsim sa tiež hodiny vypnúť pomocou niekoľkých solárnych panelov a LiPo, ale nepokrývam to v tomto návode, vyskúšajte si to sami.

Krok 2: Pripravte si akrylové diely

Pripravte si akrylové diely
Pripravte si akrylové diely
Pripravte si akrylové diely
Pripravte si akrylové diely
Pripravte si akrylové diely
Pripravte si akrylové diely

Nástroje:

V prvom rade je veľmi užitočné, ak si vytlačíte plán DWG, ktorý som pridal v mierke 1: 1. Pomôže vám to zarovnať všetky diely a bude vám slúžiť ako plán vŕtania. Ďalej budete potrebovať:

  • hobbyknife
  • pokosový rozchod
  • píla na píly
  • svorky
  • ručná vŕtačka
  • môže vŕtať, priemer 65 mm
  • sada kovových vrtákov
  • malý kovový pilník
  • akrylové lepidlo

Začnime:

Vezmite základnú dosku a zarovnajte ju s pôdorysom, aby ste získali stred kruhu. Teraz vezmite ručnú vŕtačku s namontovanou vŕtačkou a vyvŕtajte (veľmi pomaly! Nie príliš veľký tlak!) Dieru v strede základovej dosky, vonkajší kruh by mal byť hlboký ~ 2 až 3 mm. Toto má zapustiť pásik LED do základovej dosky (pásik LED široký ~ 10 mm, lúče majú iba priemer 5 mm) a zarovnať ich s lúčmi (pozri obrázok 1).

Teraz potrebujeme pílu na kov, pokosový rozchod a akrylovú trubicu. Jednoducho ho nakrájajte na kúsky a rozhodol som sa, že kryt (trubica) bude dlhý 40 mm (obrázok 2). Teraz chyťte pílu znova a na jednej strane tuby urobte malého rabeta, aby bol hladký pomocou kovového pilníka. Tu vychádzajú káble;-) (pozri obrázok 3)

Čas na trochu lepidla … Vezmite strednú dosku (d = 150 mm) a prednú dosku (satinovanú). Zarovnajte ich znova s pôdorysom, na strednú dosku naneste trochu lepidla, zarovnajte prednú dosku a počkajte, kým lepidlo je mierne stvrdnuté. Lepidlo, ktoré som použil, je mierne vytvrdené a môže trvať až 2-3 hodiny, takže by ste chceli použiť svorku … (obrázky 3 a 4)

To isté urobte pri lepení trubice na uzemňovaciu dosku, uistite sa, že králik smeruje k doske a je zarovnaný niekde, kde chcete mať prvú diódu LED (12 hodín).

Počkajte, kým sa vytvrdne!

Teraz môžeme zarovnať 2 časti (porovnané so záložkami) do plánu a vyvŕtať naše 4 jednominútové otvory (priemer 5 mm alebo priemer zvolenej diódy LED; vŕtajte pomaly a nie príliš veľkým tlakom). Vŕtajte asi 8-9 mm hlboko. Buďte opatrní, saténovaná doska je veľmi krehká a môže brzdiť, ak vŕtate do hĺbky. Teraz ich môžete lepiť dohromady alebo sa rozhodnete, ako ja, vyrezať hrozbu do uzemňovacej dosky a pripevniť ju skrutkou.

Opäť počkajte, kým lepidlo stvrdne. Teraz zarovnajte a prilepte nosníky na uzemňovaciu dosku. (obrázok 6) Hádajte, čo … počkajte, kým lepidlo stvrdne:-) Prejdeme k elektronike …

Krok 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Nástroje:

  • spájkovačka
  • spájkovací drôt
  • hobby nôž
  • malý kus prototypu DPS
  • smaltovaný drôt alebo akýkoľvek iný drôt, ktorý uprednostňujete
  • horúce lepidlo

Stratil som sa s jednotlivými LED diódami. Ak používate smaltovaný drôt, nezabudnite pred spájkovaním zoškrabať lak. Na to môžete použiť hobby nôž. Zapojte ich, môžete sa obrátiť na obrázok s vývodom na flikto.de. Všimnite si, že DOUT prejde na DIN na ďalšej LED! (pozri obrázok 2) Potom môžete prúžok LED rozrezať na 4 prvky, každý s 3 diódami LED. Pamätajte si, že máme 63,6 mm LED pásik a 64 mm vonkajší priemer trubice, takže potrebujeme extra dĺžku, aby sme ho presne zarovnali s lúčmi. Zapojte ho smaltovaným drôtom ako na obrázku 4. Vytvoril som malý proto PCB, ktorý bude slúžiť ako „napájací zväzok“a bude obsahovať komponenty pre LED pásiky (dva odpory 330Ohm a kondenzátor 1000 µF, obrázok 7). Podrobnosti nájdete v časti Fritzing Image.

Teraz namontujte pásik okolo trubice a zarovnajte diódy LED s lúčmi. Prvý Pixel sa zhoduje s 12:00. Ak ste sa obrátili k svojmu bývaniu, nezabudnite, že sa všetko zrkadlí. Postupujte proti smeru hodinových ručičiek! Na pripevnenie k trubici použite horúce lepidlo. Malá kvapka pre každý segment to zvládne!

To isté môžete urobiť pre jednotlivé LED diódy (prípadne zrkadlové), stačí pridať horúce lepidlo a zatlačiť ich do predvŕtaných otvorov.

Arduino zatiaľ nezapájajte, na pripojenie BT použijeme hardvérové sériové číslo, takže najskôr skontrolujte ďalšie kroky, v ktorých popíšem softvér.

Krok 4: Kód

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

Teraz môžete náčrt načítať do Arduina. Teraz môžete tiež zapojiť LED pásy. Nepripájajte modul BT !!! Najprv sa chceme pozrieť na kód, mali by ste vedieť, kde môžete doladiť niekoľko vecí …

Stiahnite si Arduino IDE a Librarys. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Nainštalujte IDE a vložte knižnice do priečinka knižníc. Otvorte priložený súbor INO a nahrajte ho do svojho Arduina. Tu popísaný kód je rovnaký, ale s ďalšími komentármi! Ak ste urobili všetko správne, teraz môžete vidieť „bootanimáciu“. Je možné nastaviť čas nad sériovým monitorom. Stačí zadať @„hodina“/„min“/„s“, napr. @10/33/00 (10:33).

Nebojte sa hrať s kódom … Tu vám stručne popíšem kód (Nastavenie bez RTC!)

DEFINÍCIE:

#define PIN 6 // Hodinový LED pásik #define MINPIN 5 // Jednohodinová LED #define NUMPIXELS 12 // Počet pixelov za hodinu #definovať MINNUMPIXELS 4 // Počet pixelov za jednu minútu #define BAUDRATE 115200 // Baudrate, malo by sa zhodovať prenosová rýchlosť modulu BT #define utch '@' // štart BYTE TimeSync

int časový súbor = 0; // príznak na uloženie, ak bol čas nastavený po bootint delayval = 20; // oneskorenie pre slabnúcu animáciu podľa časového spínača = 10 000; // time refresh int timebright = 250; // jas hodiny Strip int mtimebright = 50; // jas singelminint initialize = 0; // príznak na zavolanie funkcie clearpixels po bootint ahour; int oldahour = 0; // uložiť prev. hourint aminute; int oldamin = 0; // uloží predchádzajúcu minútu pre refreshint asecond; int aday; int amonth; int rok; int mmin; tmElements_t tm;

// Nastavenie pre 2 polia LED NeoPixel (NÁZOV = TYP (POČET PIXELOV, KTORÝ PIN, FORMÁTOVAŤ RGB ALEBO GRB, FREQ); Viac informácií nájdete v príručke Adafruit. Adaruitruit_NeoPixel pixely = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

NASTAVIŤ:

neplatné nastavenie () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicializujte prúžky, všetky OFFpixels.begin (); minpixels.begin (); pixely.show (); minpixels.show ();

// Vytvorte malú animáciuSerial.println ("SUNRISE"); svitanie(); oneskorenie (1000); Serial.println ("SUNSET"); západ slnka (); pixely.show (); Serial.println ("READY"); }

SLUČKA:

void loop () {// kontrola timesync while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // ak je na riadku znak @, prečítajte si nadchádzajúce bajty /palce {readtime (); }} // inicializujte LED diódy, vymažte bootovaciu animáciu

if (inicializácia == 0) {clearpixels (); inicializácia = 1; }

hodina = hodina ();

aminute = minúta (); if (timeset == 1 || timeset == 0) // tu môžete skontrolovať, či bol nastavený čas, môžete tu zastaviť program, ak Timeset = FALSE, stačí odstrániť "|| timeset == 0"!

{

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

Zobraziť hodiny:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminút; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // pre 24hodinový displej máme iba 12 diód LED} else {xhour = ahour; } // škálovanie v 5 -minútových krokoch xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; clearpixels (); } // vezmite zvyšok delenia dor LED diódy singelmin mmin = (aminute % 5); // operátor modulo napr. 24 % 5 = 4! veľmi užitočné: -Ppixels.setBrightness (timebright); pixely.setPixelColor (xmin, pixely. Color (5, 125, 255)); // Tu môžete meniť farby! hrať sa! pixely.setPixelColor (xhour, pixely. Color (255, 50, 0)); pixely.show ();

// zobrazenie minima pre jednotlivcov (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixely. Color (255, 255, 0)); minpixels.show (); }} Prečítajte si a spracujte TIMEinformácie zo sériového čísla

void readtime () // ak sme už získali vedúce „@“, spracujeme prichádzajúce údaje a uložíme čas pre 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); }

Zmazať všetko

void clearpixels () // vypnutím každého jednotlivého PIXELU obnovíte zobrazenie {

pixely.begin (); minpixels.begin (); pre (int i = 0; ipixels.setPixelColor (i, pixely. Color (0, 0, 0)); minpixels.setPixelColor (i, pixely. Color (0, 0, 0)); pixely.show (); minpixely.šou(); } }

Krok 5: Pripojenie Android APP a BT

Pripojenie Android APP a BT
Pripojenie Android APP a BT
Pripojenie Android APP a BT
Pripojenie Android APP a BT
Pripojenie Android APP a BT
Pripojenie Android APP a BT

Ak ste boli s predchádzajúcimi krokmi úspešní, môžete teraz zapojiť svoj modul BT. (Dúfam, že ste sa ubezpečili, že sa prenosové rýchlosti zhodujú). Nezabudnite prekročiť rady TX a RX:-)

Stiahnite si a nainštalujte aplikáciu, spárujte ju s BT donglom, spustite aplikáciu, pripojte sa k donglu a synchronizujte čas so svojim mobilom. APP v zásade robí to isté, čo sme robili predtým. Jednoducho pošle @hh/mm/ss/dd/mm/RRRR vygenerované z jeho systémového času. Tiež som poskytol súbor APPInventor AIA a vysvetlenie ďalšieho kroku (pre tých, ktorí majú záujem).

Krok 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

Aplikácia APP Inventor sa veľmi ľahko používa a stojí za námahu pre taký jednoduchý program.

Ak vytvoríte nový projekt, nájdete sa na obrazovke DESIGNER. (obrázok 1) Tu pridáme tabuľky, tlačidlá, senzory a ďalšie prvky na ďalšie použitie. V našom prípade potrebujeme:

  • tabuľka (na vyrovnanie všetkých prvkov)
  • zoznam na výber (na výber zariadenia BT, ku ktorému sa pripájame)
  • tlačidlo (na spustenie ČASU cez BT)
  • niektoré štítky (zobrazujú skutočný čas a dátum)
  • snímač hodín (obnovenie času)
  • senzor klienta bluetooth (konektivita)

Ich pridanie je rovnako jednoduché ako drag & drop! Na obrázku 2 môžete vidieť prehľad „APLIKÁCIE“na obrazovke BLOKY. V podstate tam dochádza k všetkému „kúzlu“. Na začiatku som vytvoril niekoľko premenných na uloženie času a dátumu. Prvý blok vľavo hore inicializuje prvok listpicker so zoznamom spárovaných zariadení BT. druhý blok rozhodujeme, čo robiť s predtým vybraným prvkom. Chceme sa k tomu pripojiť.

Ak sa bližšie pozriete na nasledujúci blok, môžete vidieť, že ak je stav BT „pripojený“, generujeme správu BT. Je to to isté, čo sme predtým zadali do SerialMonitoru. Posledný blok vľavo nám poskytne úvodné nuly na zobrazenie času (napr. 01:08). Na pravej strane nájdete náš posledný blok, kde používame prvok hodín. Tu premenné aktualizujeme a zlúčime s postupom číslic, to sa stane každých 1000 ms (predvolené nastavenie, zmeňte to v režime návrhára) a zobraziť aktualizované hodnoty pomocou štítka. To je len stručný popis, ale APPInventor je skutočne taký jednoduchý:-) Možno je v komunite niekto, kto chce napísať softvér pre iOS alebo WindowsPhone. (by bolo skvelé)

Dúfam, že sa vám môj Instructable páčil! Bavte sa s novými nástennými hodinami! Možno ho chcete darovať niekomu, koho milujete (sezóna X-Mas):-)

A ak máte nejaké otázky, pokojne sa ma opýtajte!

S pozdravom a pozdravom X-Mas.

Odporúča: