Sadržaj:

TheSUN, Arduino dizajnerski zidni sat sa dizajnom: 6 koraka (sa slikama)
TheSUN, Arduino dizajnerski zidni sat sa dizajnom: 6 koraka (sa slikama)

Video: TheSUN, Arduino dizajnerski zidni sat sa dizajnom: 6 koraka (sa slikama)

Video: TheSUN, Arduino dizajnerski zidni sat sa dizajnom: 6 koraka (sa slikama)
Video: Sunflower Solar Tracker system #solar #solartracker #arduino #diyprojects #electronic 2024, Juli
Anonim
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom
TheSUN, Arduino dizajn sa zidnim satom sa dizajnom

Zdravo ponovo instruktori!:-P

Zbog problema s otpremom nisam mogao nastaviti svoj ABTW projekt pa sam odlučio pokazati vam još jednu, svoju najnoviju kreaciju.

Mislim da mnogi od nas, poput mene, vole one lijepe adresabilne LED trake (koje se nazivaju i NEOPIXEL LED). Možete ih nabaviti u ADAFRUIT -u. I drugi dobavljači će ponuditi slične proizvode. Dostupna je biblioteka na ADAFRUITS - GitHub (kliknite me) uključujući i neki uzorak koda. Dakle, kodiranje bi trebalo biti jednostavno …

Vidio sam te NEOPIXELE misao, šta, h … mogu li učiniti s tim sjajnim sitnicama.

  • LED matrični ekran? -> Previše je komplicirano i ne koristim ga (trenutno)
  • X-Mas Lighting? -> Odgovara sezoni, ali bilo bi jeftinije kupiti jednu:-P
  • sat? -> Zašto ne! Ali to bi trebalo biti elegantno i nekonvencionalno

Dakle, napravimo zidni sat.

Ako pomno pogledamo naš ručni sat (ako imate analogni poput mene), primijetit ćemo da imamo 12 sati i 60 minuta (nadam se). To će značiti da nam treba 60 adresabilnih LED dioda, phu! Ako uzmemo traku sa 60 LED dioda / metar, dobit ćemo promjer ~ 318 mm (radijus = opseg / (2*Π)) što je definitivno prevelike.

Istina je, ako nekoga pitate za vrijeme, niko neće reći da su 2 minute iza 3! Dobit ćete "To je 5 prošlo 3" kao odgovor. Pa zašto ne bismo sve smanjili na korake od 5 minuta? Za to će nam trebati samo 12 LED dioda, što znači da ćemo dobiti promjer od 63,6 mm. Također možemo razlikovati sate i minute dajući im zasebnu boju. Također ćemo moći osigurati "nedostajuće" pojedinačne minutne korake s dodatnom trakom od 4 LED diode (ili jednom adresiranom LED diodom).

TO JE PLAN! Pogledajmo kako sam sve napravio. Kao i uvijek, pružit ću popis/predračun materijala i upute o tome kako ga izgraditi.

Ako mislite da samo Švicarci mogu napraviti cool satove, neka vam bude dokaz da griješite (oprostite Švicarska:-P)

Korak 1: Dizajn i izbor materijala

Dizajn i izbor materijala
Dizajn i izbor materijala
Dizajn i izbor materijala
Dizajn i izbor materijala

Dizajn:

Ako ponovo pomno pogledamo naš analogni sat/sat, vidimo da je krug podijeljen u poznate korake od 12 * 30 °, da nam je za LED traku potrebno 63,6 mm. Dakle, trebalo bi biti moguće nekako poravnati traku oko cijevi. Odlučio sam se za akrilno staklo, jer izgleda lijepo i moguće je u njega ugraditi LED svjetlo, a pri svakoj greški u staklu doći će do rasipanja svjetlosti. Dakle, recimo: više nečistoća dovest će do više raspršenja svjetlosti! To je upravo ono što želimo. Zato slobodno uzmite svoje alate za graviranje i budite kreativni:-)

Ako se pozivate na moju BoM listu i ime koje sam dao satu, odabrao sam dizajn sličan suncu. Sve akrilne dijelove dobio sam od njemačkog prodavača na E-Bayu (veza navedena u BoM-u). Za moj dizajn trebat će vam:

  • akrilna uzemljena ploča, prozirna debljina = 6 mm, promjer = 300 mm
  • akrilna srednja ploča, prozirna debljina = 3 mm, promjer = 150 mm
  • prednja ploča od akrila, saten, debljina = 3 mm, promjer = 90 mm
  • akrilna cijev, prozirna, vanjski promjer = 64 mm (znači da moramo malo prilagoditi LED traku)
  • akrilna šipka, prozirna, promjera = 5 mm (ovo će biti naše grede); U blizini su i akrilne šipke s mjehurićima, preporučujem ih, ali ih nemam u blizini.
  • akrilnog ljepila

Elektronika (pogledajte datoteke Fritzing):

  • Arduino mini (ili slično)
  • 1 adresabilna LED traka (12 LED dioda za sat i 5 minuta koraka)
  • 4 adresabilne LED diode (pojedinačne minute)
  • 2 otpornika od 330 oma
  • 1 1000µF kondenzator
  • 1 napajanje (5V/500mA)
  • RTC DS-1307 (opcionalno!)
  • Bluetooth modul (opcionalno! Da možete postaviti vrijeme putem BT -a i Android pametnog telefona)

Ako se pitate zašto imam čipove MAX485 na BoM -u. Odgovor je da želim sinkronizirati sat sa sistemom kućne automatizacije koji ću napraviti (nikada više neću morati namještati sat za ljetno računanje vremena:-P). To ću opisati u svom blogu u sljedećoj par sedmica/mjesec.

Kao što ste primijetili, također ću pokušati isključiti sat s nekim solarnim panelima i LiPo-om, ali ne pokrivam to da u ovom Instructable-u slobodno isprobajte sami.

Korak 2: Pripremite akrilne dijelove

Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove
Pripremite akrilne dijelove

Alati:

Prije svega, od velike je pomoći ako odštampate DWG plan koji sam dodao u razmjeri 1: 1. To će vam pomoći da poravnate sve dijelove i poslužit će vam kao plan bušenja. Nadalje će vam trebati:

  • hobbyknife
  • ugaonica
  • nožna pila
  • stezaljke
  • ručna bušilica
  • bušilica, prečnika 65 mm
  • set bušilica za metal
  • mala metalna turpija
  • akrilnog ljepila

Počnimo:

Uzmite uzemljenu ploču i poravnajte je s planom, tako da možete dobiti središte kruga. Sada uzmite ručnu bušilicu s bušilicom za limenke i izbušite (vrlo sporo! Bez prevelikog pritiska!) Rupu u sredini uzemljene ploče, vanjski krug bi trebao biti dubok ~ 2-3 mm. Ovo služi za uranjanje LED trake u osnovnu ploču (LED traka širine ~ 10 mm, grede samo 5 mm u promjeru) i poravnavanje s gredama (pogledajte sliku 1).

Sada nam trebaju nožna pila, mjerač ugla i akrilna cijev. Samo ga narežite na komade i odlučio sam napraviti kućište (cijev) dugačko 40 mm (slika 2). Sada ponovo zgrabite nožnu pilu i napravite mali rabbet s jedne strane cijevi, neka bude gladak pomoću metalne turpije. Tamo će žice izaći;-) (pogledajte sliku 3)

Vrijeme je za malo ljepila … Uzmite srednju ploču (d = 150 mm) i prednju ploču (zasićenu). Ponovo ih poravnajte po tlu, stavite malo ljepila na sredinu srednje ploče, poravnajte prednju ploču i pričekajte da ljepilo je blago stvrdnuto. Ljepilo koje sam koristio je lagano stvrdnjavanje i može potrajati do 2-3 sata, pa možda želite stezaljku … (slike 3 i 4)

Učinite isto za lijepljenje cijevi na osnovnu ploču, provjerite da li je rabet okrenut prema ploči i da je poravnat negdje gdje želite da bude prva LED dioda (12 sati).

Sačekajte da se stvrdne!

Sada možemo poravnati 2 dijela (usklađena s knjigama) prema planu i izbušiti naše 4 jednominutne rupe (promjera 5 mm ili promjer LED -a koji ste odabrali; bušite polako bez previše pritiska). Bušite oko 8-9 mm duboko. Budite oprezni, satenska ploča je vrlo lomljiva i može se kočiti ako duboko probušite. Sada ih možete zalijepiti ili odlučite, poput mene, da izrežem prijetnju u uzemljenu ploču i pričvrstim je vijkom.

Ponovo pričekajte da se ljepilo stvrdne. Sada poravnajte i zalijepite grede na podlogu. (slika 6) Pogodite šta … sačekajte da se ljepilo stvrdne:-) Idemo na elektroniku …

Korak 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Alati:

  • lemilica
  • solderwire
  • nož za hobi
  • mali komad prototipa PCB -a
  • emajlirane žice ili bilo koje druge žice koje volite
  • vruće ljepilo

Započeo sam s pojedinačnim LED -ovima. Ako koristite emajliranu žicu, ne zaboravite ostrugati lak prije lemljenja. Za to možete koristiti nož za hobi. Povežite ih, možete pogledati sliku sa ispisom na flikto.de. Imajte na umu da DOUT ide na DIN na sljedećoj LED lampici! (pogledajte sliku 2) Nakon toga LED traku možete izrezati na 4 elementa, svaki sa 3 LED diode. Upamtite, imamo 63,6 mm LED traku i 64 mm vanjski promjer cijevi pa nam je potrebna dodatna duljina da se točno poravna s gredama. Ožičite je emajliranom žicom kao na slici 4. Napravio sam malo proto PCB -a koji će služiti kao "kabelski svežanj" i sadržavat će komponente za LED trake (dva otpornika od 330 Ohma i kondenzator od 1000 μF, slika 7). Za to pogledajte sliku Fritzing.

Sada montirajte traku oko cijevi, poravnajte LED diode s gredama. Prvi Pixel odgovara 12 sati. Ako ste okrenuli stan, ne zaboravite da se sve ogleda. Nastavite u smjeru suprotnom od kazaljke na satu! Pričvrstite ga na cijev pomoću vrućeg ljepila. Mali pad za svaki segment će to učiniti!

Isto možete učiniti za pojedinačne LED diode (eventualno preslikane), samo dodajte malo vrućeg ljepila i utisnite ih u prethodno izbušene rupe.

Nemojte još povezivati Arduino, koristit ćemo hardversku seriju za BT vezu, pa prvo provjerite sljedeće korake u kojima opisujem softver.

Korak 4: Kodirajte

Kod
Kod
Kod
Kod

Sada možete učitati skicu na Arduino. Sada možete spojiti i LED trake. Ne povezujte BT modul !!! Prvo želimo pogledati kod, trebali biste znati gdje možete podesiti nekoliko stvari …

Preuzmite Arduino IDE i biblioteke. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Instalirajte IDE i stavite biblioteke u mapu biblioteke. Otvorite priloženu INO datoteku i postavite je na svoj arduino. Ovdje opisani kôd je isti, ali s dodatnim komentarima! Ako ste sve učinili kako treba, sada možete vidjeti "bootanimation". Moguće je podesiti vreme preko serijskog monitora. Samo upišite @"sat"/"min"/"sek" npr. @10/33/00 (10:33).

Slobodno se igrajte sa kodom … Ovdje ću vam dati kratak opis koda (Postavljanje bez RTC -a!)

DEFINICIJE:

#define PIN 6 // Sat LED traka #define MINPIN 5 // LED pojedinačne minute #define NUMPIXELS 12 // Broj piksela za sat #define MINNUMPIXELS 4 // Broj piksela za jednu minutu #define BAUDRATE 115200 // Brzina prijenosa, treba se podudarati brzina prijenosa BT modula #define utch '@' // pokretanje BYTE -a TimeSync -a

int vremenski skup = 0; // zastavica za spremanje ako je vrijeme postavljeno nakon podizanja delayval = 20; // kašnjenje za nestajanje animacije int clocktimer = 10000; // vrijeme osvježavanja int timebright = 250; // svjetlina sata Strip int mtimebright = 50; // svjetlina singelminint initialize = 0; // zastava za pozivanje funkcije clearpixels nakon bootint ahour; int oldahour = 0; // trgovina prev. satni minut; int oldamin = 0; // sprema prethodnu minutu za osvježavanje u sekundi; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// Postavljanje za 2 NeoPixel LED niza (IME = TIP (BROJ PIXELA, KOJI PIN, FORMAT RGB ILI GRB, FREQ); Više informacija potražite u vodiču Adafruit. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_GRB + NEO_GRB +); Adafruit_NeoPixel minpiksela = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

POSTAVITI:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Početne trake, sve OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();

// Napravite malu animacijuSerial.println ("SUNRISE"); sunrise (); kašnjenje (1000); Serial.println ("SUNSET"); sunset (); pixels.show (); Serial.println ("READY"); }

PETLJA:

void loop () {// provjeravamo timesync while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // ako postoji @ na liniji, pročitajte nadolazeće bajtove /ints {readtime (); }} // pokretanje LED dioda, jasna animacija pokretanja

if (inicijalizacija == 0) {clearpixels (); initialize = 1; }

ahour = hour ();

aminute = minute (); if (timeset == 1 || timeset == 0) // ovdje možete provjeriti je li vrijeme postavljeno, možete zaustaviti program ovdje ako je Timeset = FALSE, samo uklonite "|| timeset == 0"!

{

if (oldamin <aminute || oldahour sve postavite na OFF, prikaži novo vrijeme {clearpixels (); ClockDisplay ();}}}

Prikažite sat:

void ClockDisplay () {

oldahour = sat;

oldamin = aminute; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // imamo samo 12 LED dioda za 24h prikaz} else {xhour = ahour; } // skalirajte ga u korake od 5 minuta xmin = (aminute /5); ako (oldamin <aminute) {oldamin = aminute; jasne piksele (); } // uzeti ostatak podjele za LED LED singelmin mmin = (aminute % 5); // modulo operator npr. 24 % 5 = 4! vrlo korisno: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // ovdje možete promijeniti boje! poigrajte se! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();

// prikazuje pojedinačni minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pikseli. Boja (255, 255, 0)); minpixels.show (); }} Čitanje i obrada TIMEinformacija sa serijskog broja

void readtime () // ako smo već dobili vodeći "@" proces dolazeće podatke i pohranimo vrijeme za 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 (po satu); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Obriši sve

void clearpixels () // isključite svaki PIXEL kako biste osvježili ekran {

pixels.begin (); minpixels.begin (); for (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0)); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpixels.show ();}}

Korak 5: Android APP i BT veza

Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza
Android APP i BT veza

Ako ste uspjeli s prethodnim koracima, sada možete povezati svoj BT modul. (nadam se da ste se uvjerili da se brzina prijenosa podudara). ne zaboravite prijeći TX i RX linije:-)

Preuzmite i instalirajte aplikaciju, uparite je sa svojim BT ključem, pokrenite aplikaciju, povežite se s ključem i sinhronizirajte vrijeme sa svojim mobilnim telefonom. APP u osnovi radi isto što smo radili i prije. On samo šalje @hh/mm/ss/dd/mm/GGGG generirano iz njegovog sistemskog vremena. Također sam poslao APPInventor AIA datoteku i objašnjenje o sljedećem koraku (za one koje zanima).

Korak 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor je prilično jednostavan za korištenje i vrijedan truda za tako jednostavan program.

Ako napravite novi projekt, naći ćete se na ekranu DIZAJNERA. (slika 1) Ovdje dodajemo tablice, gumbe, senzore i druge elemente za daljnju upotrebu. U našem slučaju potrebno nam je:

  • tablica (za poravnavanje svih elemenata)
  • birač lista (za odabir BT uređaja na koji se povezujemo)
  • dugme (za aktiviranje TIME preko BT)
  • neke oznake (prikazuju stvarno vrijeme i datum)
  • senzor sata (osvježite vrijeme)
  • senzor bluetooth klijenta (povezivanje)

Dodavanje istih je jednostavno kao i povlačenje i ispuštanje! Na slici 2 možete vidjeti pregled aplikacije "APP" na ekranu BLOKOVI. Pa, tu se u osnovi i događa sva "čarolija". Na vrhu sam stvorio neke varijable za spremanje vremena i datuma. Prvi blok u gornjem lijevom kutu će inicijalizirati element listpicker sa listom uparenih BT uređaja. u drugom bloku odlučujemo šta ćemo sa prethodno izabranim elementom. Pa, želimo se povezati s njim.

Ako pažljivo pogledate sljedeći blok, možete vidjeti da generiramo, ako je status BT -a "povezan", poruku BT -a. To je isto što smo prethodno unijeli u SerialMonitor. Posljednji blok s lijeve strane će nam dati vodeće nule za prikaz vremena (npr. 01:08). Na desnoj strani možete pronaći naš posljednji blok, tu koristimo element sata. Ovdje ažuriramo varijable i spajamo ih s cifarskom procedurom, to će se događati svakih 1000 ms (zadana postavka, promijenite je u dizajnerskom načinu rada) i prikažite ažurirane vrijednosti s oznakom. To je samo kratak opis, ali APPInventor je zaista tako jednostavan:-) Možda postoji netko u zajednici koji želi napisati softver za iOS ili WindowsPhone. (bi bilo super)

Nadam se da vam se svidio moj Instructable! Zabavite se sa svojim novim zidnim satom! Možda ga želite pokloniti nekome koga volite (Božićna sezona):-)

A ako imate pitanja, slobodno me pitajte!

Srdačan pozdrav i sretan Božić.

Preporučuje se: