Sisukord:

TheSUN, Arduino jõul töötav disainiga seinakell: 6 sammu (koos piltidega)
TheSUN, Arduino jõul töötav disainiga seinakell: 6 sammu (koos piltidega)

Video: TheSUN, Arduino jõul töötav disainiga seinakell: 6 sammu (koos piltidega)

Video: TheSUN, Arduino jõul töötav disainiga seinakell: 6 sammu (koos piltidega)
Video: Переработка энкодера колеса прокрутки мыши и его тестирование с помощью Arduino Nano 2024, Juuli
Anonim
TheSUN, Arduino Powered Design seinakell
TheSUN, Arduino Powered Design seinakell
TheSUN, Arduino Powered Design seinakell
TheSUN, Arduino Powered Design seinakell
TheSUN, Arduino Powered Design seinakell
TheSUN, Arduino Powered Design seinakell

Tere jälle juhendatavad inimesed!:-P

Laevandusprobleemide tõttu ei saanud ma oma ABTW projekti jätkata ja otsustasin näidata teile teist, oma uusimat loomingut.

Ma arvan, et paljudele meist, nagu mulle, meeldivad need toredad adresseeritavad LED -ribad (nimetatakse ka NEOPIXEL LED -ideks). Neid saate ADAFRUITist. Teised müüjad pakuvad ka sarnaseid tooteid. ADAFRUITS - GitHub (klõpsake mind) on saadaval raamatukogus, sealhulgas mõned näidiskoodid. Nii et kodeerimine peaks olema otsene…

Ma nägin neid NEOPIXELE -sid mõttena, et mida ma nende läikivate pisiasjadega teha saan.

  • LED-maatriksi ekraan? -> Keeruline ja ma ei kasuta seda (hetkel)
  • X-Mas valgustus? -> See sobib aastaaega, kuid odavam oleks see osta:-P
  • kella? -> Miks mitte! Kuid see peaks olema stiilne ja ebatavaline

Teeme siis seinakella.

Kui vaatame oma käekella tähelepanelikult (kui teil on minusugune analoog), märkame, et meil on 12 tundi ja 60 minutit (loodetavasti). See tähendab, et vajame 60 adresseeritavat LED -i, phu! Kui võtame riba 60 LED -iga / meeter, saame läbimõõdu ~ 318 mm (raadius = ulatus / (2*Π)), mis on kindlasti liiga suur.

Tõde on see, et kui te kelleltki aega küsite, ei ütle keegi, et kell on 2 minutit kolm! Saate vastuseks "Kell on 5 möödunud 3". Miks me ei peaks kõike vähendama 5 -minutiliste sammudega? Selleks vajame ainult 12 LED -i, mis tähendab, et saame läbimõõdu 63,6 mm. Samuti saame eristada tunde ja minuteid, andes neile eraldi värvi. Samuti saame pakkuda puuduvaid üheminutilisi samme täiendava nelja LED -ribaga (või ühe adresseeritava LED -iga).

See on plaan! Vaatame, kuidas ma kõike tegin. Nagu alati, esitan materjalide nimekirja/arve ja juhised selle ehitamiseks.

Kui arvate, saavad ainult Šveitsi inimesed teha lahedaid kellasid, siis tõestame, et eksite (vabandust Šveits:-P)

Samm: disain ja materjalide valik

Disain ja materjalide valik
Disain ja materjalide valik
Disain ja materjalide valik
Disain ja materjalide valik

Disain:

Kui vaatame uuesti oma analoogkella, näeme, et ring on jagatud 12 * 30 ° sammuks, mida me teame, et LED-riba jaoks on vaja 63,6 mm. Seega peaks olema võimalik riba ümber toru kuidagi joondada. Otsustasin kasutada akrüülklaasi, sest see näeb kena välja ja LED -valgust on võimalik sellesse kapseldada ning klaasi iga vea korral tekib valguse hajumine. Ütleme nii: rohkem lisandeid toob kaasa suurema valguse hajumise! See on täpselt see, mida me tahame. Nii et võtke julgelt oma graveerimisvahendid ja olge loov:-)

Kui viitate minu BoM-loendile ja nimele, mille ma kellale andsin, olen valinud päikesekujulise disaini. Kõik akrüülosad sain ühelt E-Bay saksa müüjalt (link lisatud kasutusjuhendisse). sa vajad:

  • akrüül jahvatatud plaat, läbipaistev paksus = 6mm, läbimõõt = 300mm
  • akrüülist keskmine plaat, läbipaistev paksus = 3 mm, läbimõõt = 150 mm
  • akrüülist esiplaat, satiin, paksus = 3 mm, läbimõõt = 90 mm
  • akrüülist toru, läbipaistev, välisläbimõõt = 64 mm (see tähendab, et peame LED -ribaga veidi näpistama)
  • akrüülvarras, läbipaistev, läbimõõt = 5 mm (sellest saavad meie talad); Ümberringi on ka akrüülvardad, mille sees on mullid, ma soovitan neid, aga mul pole neid ümber.
  • akrüülliim

Elektroonika (vt Fritzingi failid):

  • Arduino mini (või sarnane)
  • 1 adresseeritav LED -riba (12 LED -i tundide ja 5 -minutiliste sammude jaoks)
  • 4 adresseeritavat LED -i (ühe minuti jooksul)
  • 2 330Ohm takistid
  • 1 1000µF kondensaator
  • 1 toide (5V/500mA)
  • RTC DS-1307 (valikuline!)
  • Bluetooth -moodul (valikuline! Jah, saate määrata aja BT ja Android -nutitelefoni kaudu)

Kui küsite endalt, miks on minu BoM -il MAX485 kiibid? Vastus on see, et ma tahan sünkroniseerida kella koduautomaatikasüsteemiga, mida ma valmistan (ma ei pea kunagi enam suveajaks kella seadma:-P). Kirjeldan seda oma ajaveebis järgmises paar nädalat/kuus.

Nagu märkasite, proovin ka kella mõne päikesepaneeli ja LiPo abil võrgust välja lülitada, kuid ma ei kata seda selles juhendis, proovige seda vabalt.

Samm: valmistage akrüülosad ette

Valmistage akrüülosad ette
Valmistage akrüülosad ette
Valmistage akrüülosad ette
Valmistage akrüülosad ette
Valmistage akrüülosad ette
Valmistage akrüülosad ette

Tööriistad:

Esiteks on see tõesti kasulik, kui prindite skaalal 1: 1 lisatud DWG plaani. See aitab teil kõiki osi joondada ja toimib puurimisplaanina. Lisaks vajate:

  • hobbnife
  • mitmemõõtur
  • rauasaag
  • klambrid
  • käsipuur
  • saab puurida, läbimõõt 65 mm
  • metallpuuride komplekt
  • väike metallviil
  • akrüülliim

Alustame:

Võtke alusplaat ja joondage see plaanile, nii et saate ringi keskpunkti. Nüüd võtke käsipuur koos sellele paigaldatud konservipuuriga ja puurige (väga aeglaselt! Mitte liiga palju survet!) Auk alusplaadi keskele, välimine ring peaks olema ~ 2-3 mm sügav. See tähendab, et LED -riba uputatakse alusplaati (LED -riba laiusega ~ 10 mm, talade läbimõõt on ainult 5 mm) ja joondatakse taladega (vt joonis 1).

Nüüd vajame rauasaega, mitmemõõdikut ja akrüültoru. Lõika see lihtsalt tükkideks, otsustasin korpuse (toru) teha 40 mm pikkuseks (joonis 2). Nüüd haarake uuesti rauasaagist ja tehke toru ühele küljele väike jänes, tehke see metallviiliga siledaks. Sealt tulevad juhtmed välja;-) (vaata pilti 3)

Aeg liimimiseks … Võtke keskmine plaat (d = 150 mm) ja esiplaat (satineeritud). Joondage need uuesti plaanile, pange liim keskmise plaadi keskele, joondage esiplaat ja oodake, kuni liim on veidi karastatud. Liim, mida ma kasutasin, on kergelt kõvenev ja võib kesta kuni 2-3 tundi, nii et soovite kasutada klambrit … (joonis 3 ja 4)

Tehke sama ka toru liimimisel alusplaadile, veenduge, et jänes oleks plaadi poole ja oleks paigutatud kohta, kus soovite esimest LED -i (kell 12).

Oodake, kuni see kõveneb!

Nüüd saame joondada 2 osa (bookmatched) plaanile ja puurida meie 4 üheminutilist auku (läbimõõduga 5 mm või teie valitud valgusdioodi läbimõõduga; puurige aeglaselt ja mitte liiga palju survet). Puurige umbes 8-9 mm sügavusele. Olge ettevaatlik, satiinitud plaat on väga habras ja võib sügavale puurimisel pidurdada. Nüüd saate need kokku liimida või otsustate, nagu mina, lõigata maapinnale oht ja kinnitada see kruviga.

Jällegi oodake, kuni liim on tahkunud. Nüüd joondage ja liimige talad alusplaadile. (pilt 6) Arvake ära… oodake, kuni liim on tahkunud:-) Jätkame elektroonikaga…

3. samm: elektroonika

Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika

Tööriistad:

  • jootekolb
  • jootetraat
  • hobi nuga
  • väike tükk PCB prototüüpi
  • emailitud traat või mõni muu eelistatud traat
  • kuum liim

Ütlesin ühe LED -iga. Kui kasutate emailitud traati, ärge unustage enne jootmist lakki kraapida. Selleks võite kasutada harrastusnuga. Juhtmed üles, saate flikto.de pildiga viidata pildile. Pange tähele, et DOUT läheb järgmisele LED -ile DIN! (vt pilti 2) Pärast seda saate LED -riba lõigata 4 elemendiks, millest igaühes on 3 LED -i. Pidage meeles, et meil on 63,6 mm LED -riba ja 64 mm toru välisläbimõõt, nii et vajame "lisapikkust, et see täpselt taladele joondada. Ühendage see emailitud traadiga, nagu pildil 4. Tegin väikese proto -PCB, mis toimib "toitejuhtmena" ja sisaldab LED -ribade komponente (kaks 330 Ohmi takistit ja 1000µF kondensaator, joonis 7).

Nüüd paigaldage riba toru ümber, suunake valgusdioodid taladele. Esimene Pixel sobib kell 12. Kui olete oma eluaseme ümber pööranud, ärge unustage, et kõik on peegelpildis. Jätkake päripäeva! Toru külge kinnitamiseks kasutage kuuma liimi. Väike tilk iga segmendi jaoks teeb seda!

Sama saate teha ka üksikute (lõpuks peegeldatud) LED -ide puhul, lisage lihtsalt kuum liim ja vajutage need eelnevalt puuritud aukudesse.

Ärge juhtige Arduinot veel, me kasutame BT-ühenduse jaoks riistvara-seeriat, seega kontrollige kõigepealt järgmisi samme, kus ma tarkvara kirjeldan.

4. samm: kood

Kood
Kood
Kood
Kood

Nüüd saate visandi Arduinole laadida. Nüüd saate ka LED -ribasid juhtmega ühendada. Ärge ühendage BT moodulit !!! Kõigepealt tahame koodi vaadata, peaksite teadma, kus saate mitut asja muuta…

Laadige alla Arduino IDE ja teegid. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Installige IDE ja pange teegid raamatukogu kausta. Avage lisatud INO-fail ja laadige see üles oma arduino. Siin kirjeldatud kood on sama, kuid täiendavate kommentaaridega! Kui olete kõik õigesti teinud, näete nüüd "alglaadimist". Seeriamonitori ajal on võimalik määrata aeg. Sisestage lihtsalt @"tund"/"min"/"sekund", nt. @10/33/00 (10:33).

Mängige koodiga julgelt … Siinkohal annan teile koodi lühikirjelduse (seadistamine ilma RTC -ta!)

MÕISTED:

#define PIN 6 // Tunni LED -riba #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Pikslite arv tunnis #define MINNUMPIXELS 4 // Pikslite arv ühe minuti jooksul #define BAUDRATE 115200 // Baudrate BT mooduli andmeedastuskiirus #define utch '@' // käivitage TimeSynci BYTE

int kellaaeg = 0; // lipp salvestamiseks, kui aeg määrati pärast bootint delayval = 20; // viivitus animatsiooni kadumisele int taimer = 10000; // aja värskendamine int timebright = 250; // tunniriba heledus int mtimebright = 50; // singelmininti heledus initsialiseerida = 0; // lipp, et helistada clearpixels funktsioonile pärast bootint ahour; int oldahour = 0; // kaupluse eelmine tunnitund; int oldamin = 0; // salvestab eelmise minuti värskendamiseks sekundit; int aday; int kuus; int aastas; int mmin; tmElements_t tm;

// Kahe NeoPixeli LED -massiivi seadistamine (NIMI = TÜÜP (PIKSLIDE ARV, MIS PIN -kood, FORMAT RGB OR GRB, FREQ); Lisateabe saamiseks vaadake Adafruit'i juhendit. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN + NEO_GB); Adafruit_NeoPixel minpikslit = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

SEADISTUS:

tühine seadistus () {

Serial.begin (BAUDRATE); Wire.begin (); // Initsialiseeri ribad, kõik OFFpixels.begin (); minpiksleid.begin (); pixels.show (); minpiksleid.näitus ();

// Tee väike animatsioonSerial.println ("SUNRISE"); päikesetõus (); viivitus (1000); Serial.println ("Päikeseloojang"); päikeseloojang (); pixels.show (); Serial.println ("VALMIS"); }

LOOP:

void loop () {// kontrollige aja sünkroonimist samas (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // kui reas on @, loe saabuvaid baite /inte {readtime (); }} // lähtestage valgusdioodid, tühjendage alglaadimise animatsioon

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

ahour = tund ();

aminute = minut (); if (timeset == 1 || timeset == 0) // siin saate kontrollida, kas Time oli seatud, saate programmi siin peatada, kui Timeset = FALSE, lihtsalt eemaldage "|| timeset == 0"!

{

kui (oldamin <aminute || oldahour on kõik välja lülitatud, kuva uus aeg {clearpixels (); ClockDisplay ();}}}

Kella kuvamine:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int xhour, xmin;

if (ahour> = 12) {xhour = ahour-12; // 24 tunni kuvamiseks on meil ainult 12 LED -i} else {xhour = ahour; } // skaleerige see 5min sammudeks xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; selged pikslid (); } // võta ülejäänud jaotus dor singelmin LED mmin = (aminute % 5); // modulooperaator nt. 24 % 5 = 4! väga kasulik: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // siin saate värve muuta! mängida! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();

// kuva singel minsfor (int m = 0; m

minpiksleid.setBrightness (mtimebright); minpixels.setPixelColor (m, pikslit. Värv (255, 255, 0)); minpiksleid.näitus (); }} Lugege ja töötlege TIME teavet Serialist

void readtime () // kui meil on juba juhtiv "@", töötle saabuvaid andmeid ja salvestage aeg TIME Lib {

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

Kustuta kõik

void clearpixels () // lülitage kuvari värskendamiseks iga PIXEL välja {

pixels.begin (); minpiksleid.begin (); for (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0))); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpikslid.näitus ();}}

Samm: Androidi rakendus ja BT -ühendus

Androidi rakendus ja BT -ühendus
Androidi rakendus ja BT -ühendus
Androidi rakendus ja BT -ühendus
Androidi rakendus ja BT -ühendus
Android APP ja BT ühendus
Android APP ja BT ühendus

Kui eelmised sammud õnnestusid, saate nüüd oma BT -mooduli ühendada. (loodan, et veendusite, et andmeedastuskiirus ühtiks). Ära unusta ületada TX ja RX jooni:-)

Laadige alla ja installige rakendus, siduge oma BT -dongliga, käivitage rakendus, ühendage dongle ja sünkroonige aeg oma mobiiliga. APP teeb põhimõtteliselt sama, mis me varem. See lihtsalt saadab @hh/mm/ss/dd/mm/YYYY, mis on loodud selle süsteemiajast. Samuti esitasin APPInventori AIA -faili ja järgmise sammu selgituse (neile, kes on huvitatud).

6. samm: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventorit on üsna lihtne kasutada ja see on sellise lihtsa programmi jaoks vaeva väärt.

Kui teete uue projekti, leiate end DESIGNER ekraanilt. (pilt 1) Siia lisame tabeleid, nuppe, andureid ja muid elemente edasiseks kasutamiseks. Meie puhul vajame:

  • tabel (kõigi elementide paigutamiseks)
  • loendivalija (BT -seadme valimiseks, millega me ühendame)
  • nupp (TIME käivitamiseks üle BT)
  • mõned sildid (kuvavad tegeliku kellaaja ja kuupäeva)
  • kella andur (aja värskendamine)
  • Bluetoothi kliendiandur (ühenduvus)

Nende lisamine on sama lihtne kui lohistamine! Pildil 2 näete ekraanil BLOCKS ülevaadet rakendusest "APP". Noh, see on põhimõtteliselt see, kus toimub kogu "maagia". Ülaosas lõin aja ja kuupäeva salvestamiseks mõned muutujad. Esimene vasakus ülanurgas olev plokk lähtestab loendivalija elemendi seotud BT -seadmete loendiga. teises plokis otsustame, mida teha eelnevalt valitud elemendiga. Noh, me tahame sellega ühenduse luua.

Kui vaatate järgmist plokki tähelepanelikult, näete, et kui BT olek on ühendatud, loome BT -teate. See on sama, mille me varem SerialMonitorisse sisestasime. Viimane vasakpoolne plokk annab meile aja nullid (nt 01:08). Paremal küljel leiate meie viimase ploki, kus me kasutame kellaelementi. Siin värskendame muutujaid ja ühendame need numbritega, see juhtub iga 1000 ms järel (vaikeseade, muutke seda disainerirežiimis) ja kuvada värskendatud väärtused sildiga. See on vaid lühikirjeldus, kuid APPInventor on tõesti nii lihtne:-) Võib-olla on kogukonnas keegi, kes soovib iOS-i või WindowsPhone'i jaoks tarkvara kirjutada. (oleks tore)

Loodan, et teile meeldis minu Instructable! Nautige oma uut seinakella! Võib-olla soovite selle kinkida kellelegi, keda armastate (selle X-Mas hooaeg):-)

Ja kui on küsimusi, küsige julgelt minult!

Parimate soovidega ja häid jõulupühi.

Soovitan: