Sisällysluettelo:

TheSUN, Arduino Powered Design -seinäkello: 6 vaihetta (kuvilla)
TheSUN, Arduino Powered Design -seinäkello: 6 vaihetta (kuvilla)

Video: TheSUN, Arduino Powered Design -seinäkello: 6 vaihetta (kuvilla)

Video: TheSUN, Arduino Powered Design -seinäkello: 6 vaihetta (kuvilla)
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Marraskuu
Anonim
TheSUN, Arduino Powered Design -seinäkello
TheSUN, Arduino Powered Design -seinäkello
TheSUN, Arduino Powered Design -seinäkello
TheSUN, Arduino Powered Design -seinäkello
TheSUN, Arduino Powered Design -seinäkello
TheSUN, Arduino Powered Design -seinäkello

Hei jälleen Instructables-ihmiset!:-P

Toimitusongelmien vuoksi en voinut jatkaa ABTW-projektiani, joten päätin näyttää teille toisen, uusimman luomukseni.

Luulen, että monet meistä, kuten minä, pitävät niistä mukavista osoitettavista LED -raidoista (kutsutaan myös nimellä NEOPIXEL LED). Saat ne ADAFRUITilta. Myös muut myyjät tarjoavat vastaavia tuotteita. ADAFRUITS - GitHub (napsauta minua) sisältää kirjaston, joka sisältää jonkin esimerkkikoodin, joten koodauksen pitäisi olla suoraviivaista…

Näin neopikselit ajatuksena, mitä ihmettä… voinko tehdä noilla kiiltävillä pienillä asioilla.

  • LED-matriisinäyttö? -> Monimutkaista enkä käytä sitä (tällä hetkellä)
  • X-Mas-valaistus? -> Se sopii vuodenaikaan, mutta olisi halvempaa ostaa sellainen:-P
  • kello? -> Miksi ei! Mutta sen pitäisi olla tyylikäs ja epätavallinen

Tehdään siis seinäkello.

Jos katsomme tarkasti rannekelloa (jos sinulla on analoginen kaltaiseni), huomaamme, että meillä on 12 tuntia ja 60 minuuttia (toivottavasti). Tämä tarkoittaa, että tarvitsemme 60 osoitettavaa LED -valoa, phu! Jos otamme 60 LED -valoa / metri raitaa, saamme halkaisijan ~ 318 mm (säde = laajuus / (2*Π)), joka on ehdottomasti liian iso.

Totuus on, että jos kysyt joltakin aikaa, kukaan ei sano, että se on 2 minuuttia yli 3! Saat vastaukseksi "Se on viisi yli 3". Joten miksi meidän ei pitäisi skaalata kaikkea 5 minuutin vaiheisiin? Tätä varten tarvitsemme vain 12 LEDiä, mikä tarkoittaa, että saamme halkaisijan 63,6 mm. Pystymme myös erottamaan tunnit ja minuutit antamalla niille erillisen värin. Pystymme myös tarjoamaan "puuttuvat" yhden minuutin vaiheet ylimääräisellä 4 LED -valolla (tai yhdellä osoitettavalla LED -valolla).

Se on suunnitelma! Katsotaanpa, miten tein kaiken. Kuten aina, annan luettelon/materiaaliluettelon ja ohjeet sen rakentamisesta.

Jos luulet, että vain sveitsiläiset voivat tehdä viileitä kelloja, todistetaan, että olet väärässä (anteeksi Sveitsi:-P)

Vaihe 1: Suunnittelu ja materiaalivalinta

Suunnittelu ja materiaalivalinta
Suunnittelu ja materiaalivalinta
Suunnittelu ja materiaalivalinta
Suunnittelu ja materiaalivalinta

Design:

Jos tarkastelemme analogista kelloa tarkasti uudelleen, näemme, että ympyrä on jaettu 12 * 30 asteen vaiheisiin, jotka tiedämme, että tarvitsemme 63,6 mm LED-nauhalle. Joten nauhan pitäisi olla mahdollista kohdistaa jotenkin putken ympärille. Päätin käyttää akryylilasia, koska se näyttää hyvältä ja siihen on mahdollista koteloida LED -valo, ja jokaisen lasin virheen kohdalla tapahtuu valon sirontaa. Sanotaan siis: enemmän epäpuhtauksia johtaa enemmän valon sirontaan! Juuri sitä me haluamme. Ota siis rohkeasti kaiverrusvälineet ja ole luova:-)

Jos viittaat BoM-luettelooni ja kelloon antamaani nimeen, olen valinnut auringon kaltaisen muotoilun. Sain kaikki akryyliosat saksalaiselta myyjältä E-Bayssä (linkki käyttöohjeessa). tarvitset:

  • akryylipohjalevy, läpinäkyvä paksuus = 6 mm, halkaisija = 300 mm
  • akryyli -keskilevy, läpinäkyvä paksuus = 3 mm, halkaisija = 150 mm
  • akryyli -etulevy, satiini, paksuus = 3 mm, halkaisija = 90 mm
  • akryyliputki, läpinäkyvä, ulkohalkaisija = 64 mm (tarkoittaa, että meidän on hieman säädettävä LED -nauhalla)
  • akryylitanko, läpinäkyvä, halkaisija = 5 mm (tämä on palkkimme); Siellä on myös akryylitankoja, joissa on kuplia, suosittelen niitä, mutta minulla ei ole niitä ympärillä.
  • akryyliliimaa

Elektroniikka (katso Fritzing-tiedostot):

  • Arduino mini (tai vastaava)
  • 1 osoitettava LED -nauha (12 LEDiä tunnin ja 5 minuutin portaissa)
  • 4 osoitettavaa LEDiä (yhden minuutin)
  • 2330 ohmin vastukset
  • 1 1000µF kondensaattori
  • 1 virtalähde (5V/500mA)
  • RTC DS-1307 (valinnainen!)
  • Bluetooth -moduuli (valinnainen! Kyllä, voit asettaa ajan BT: n ja Android -älypuhelimen kautta)

Jos kysyt itseltäsi, miksi minulla on MAX485 -siruja BoM -laitteessani. Vastaus on, että haluan synkronoida kellon kotiautomaatiojärjestelmään, jonka aion tehdä (en koskaan joudu asettamaan kelloa kesäaikaan uudelleen:-P). Kuvaan siitä blogissani seuraavassa pari viikkoa/kuukausi.

Kuten huomasit, yritän myös saada kellon pois verkosta joillakin aurinkopaneeleilla ja LiPo-laitteella, mutta en kata sitä tässä ohjeessa. Kokeile sitä itse.

Vaihe 2: Valmistele akryyliosat

Valmistele akryyliosat
Valmistele akryyliosat
Valmistele akryyliosat
Valmistele akryyliosat
Valmistele akryyliosat
Valmistele akryyliosat

Työkalut:

Ensinnäkin on todella hyödyllistä, jos tulostat DWG -suunnitelman, jonka lisäsin asteikolla 1: 1. Tämä auttaa sinua kohdistamaan kaikki osat ja toimii poraussuunnitelmana. Lisäksi tarvitset:

  • harrastusveitsi
  • mittausmittari
  • rautasaha
  • puristimet
  • käsipora
  • voi porata, halkaisija 65 mm
  • sarja metalliharjoja
  • pieni metalliviila
  • akryyliliimaa

Aloitetaan:

Ota pohjalevy ja kohdista se suunnitelmaan, jotta saat ympyrän keskipisteen. Ota nyt käsipora, johon on asennettu tölkkipora, ja poraa (hyvin hidas! Ei liian suuri paine!) Reikä maalevyn keskelle, ulkorenkaan tulee olla ~ 2-3 mm syvä. Tämä on upottaa LED -nauha maadoituslevyyn (LED -nauha ~ 10 mm leveä, palkit vain 5 mm halkaisijaltaan) ja kohdistaa ne palkkien kanssa (katso kuva 1).

Nyt tarvitsemme rautasahaa, mittausmittaria ja akryyliputkea. Leikkaa se vain palasiksi ja päätin tehdä kotelosta (putkesta) 40 mm pitkän (kuva 2). Tartu nyt rautasahaan uudelleen ja tee pieni kaneli putken toiselle puolelle, tee se sileäksi metalliviilalla. Siellä johdot tulevat ulos;-) (katso kuva 3)

Liiman aika … Ota keskilevy (d = 150 mm) ja etulevy (satinoitu). Kohdista ne uudelleen suunnitelmaan, laita liimaa keskilevyn keskelle, kohdista etulevy ja odota, kunnes liima on hieman kovettunut. Käytetty liima on kevyesti kovettuvaa ja voi kestää jopa 2-3 tuntia, joten mybe haluat käyttää puristinta… (kuva 3 ja 4)

Liimaa putki maalevylle, varmista, että kansi on levyä vasten ja että se on jossain paikassa, jossa haluat ensimmäisen LED -valon (kello 12).

Odota, kunnes se kovettuu!

Voimme nyt kohdistaa kaksi osaa (bookmatched) suunnitelmaan ja porata 4 yhden minuutin reikäämme (halkaisija 5 mm tai valitsemasi LEDin halkaisija; poraa se hitaasti ilman liian suurta painetta). Poraa noin 8-9 mm syvyyteen. Ole varovainen, satinoitu levy on erittäin hauras ja voi jarruttaa, jos poraa syvälle.

Odota jälleen, kunnes liima on kovettunut. Kohdista ja liimaa palkit maadoituslevyyn. (kuva 6) Arvaa mitä… odota, kunnes liima on kovettunut:-) Siirrymme elektroniikkaan…

Vaihe 3: Elektroniikka

Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka

Työkalut:

  • juotin
  • juotoslanka
  • harrasteveitsi
  • pieni pala prototyyppipiirilevyä
  • emaloitu lanka tai muu haluamasi lanka
  • kuuma liima

Jos käytät emaloitua lankaa, muista kaavata lakka ennen juottamista. Voit käyttää sitä harrasteveitsellä. Kytke ne johtoon, voit katsoa kuvaa flikto.de: n pinoutilla. Huomaa, että DOUT menee DIN -tilaan seuraavan LED -valon kohdalla! (katso kuva 2) Tämän jälkeen voit leikata LED -nauhan neljään osaan, joista jokaisessa on 3 LEDiä. Muista, että meillä on 63,6 mm: n LED -nauha ja 64 mm: n putken ulkohalkaisija, joten tarvitsemme "ylimääräistä pituutta, jotta se voidaan kohdistaa tarkasti palkeisiin. Johdottele se emaloidulla langalla, kuten kuvassa 4. Tein pienen proto -PCB: n, joka palvelee "valjaana" ja sisältää LED -nauhojen komponentit (kaksi 330 ohmin vastusta ja 1000µF: n kondensaattori, kuva 7).

Kiinnitä nyt nauha putken ympärille, kohdista LED -valot palkeisiin. Ensimmäinen Pixel vastaa kello 12. Jos olet kääntänyt asuntosi ympäri, älä unohda, että kaikki on peilikuvana. Jatka vastapäivään! Kiinnitä se putkeen kuumalla liimalla. Pieni pudotus jokaiselle segmentille tekee sen!

Voit tehdä saman yksittäisille LED -valolle (lopulta peilille), lisää vain kuumaa liimaa ja paina ne esiporatuihin reikiin.

Älä johda Arduinoa, käytämme laitteistosarjaa BT-yhteydelle, joten tarkista ensin seuraavat vaiheet, joissa kuvailen ohjelmistoa.

Vaihe 4: Koodi

Koodi
Koodi
Koodi
Koodi

Voit nyt ladata luonnoksen Arduinolle. Voit myös johdottaa LED -nauhat. Älä liitä BT -moduulia !!! Haluamme ensin katsoa koodia, sinun pitäisi tietää, missä voit säätää useita asioita …

Lataa Arduino IDE ja kirjastot. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Asenna IDE ja laita kirjastot kirjastokansioon. Avaa liitteenä oleva INO-tiedosto ja lataa se arduinoosi. Tässä kuvattu koodi on sama, mutta siihen on lisäkommentteja! Jos olet tehnyt kaiken oikein, näet nyt "käynnistysanimaation". On mahdollista asettaa aika sarjamonitorille. Kirjoita vain @"tunti"/"min"/"sek", esim. @10/33/00 (10:33).

Voit vapaasti leikkiä koodilla… Tässä kerrot lyhyesti koodista (Asennus ilman RTC: tä!)

MÄÄRITELMÄT:

#define PIN 6 // Hour LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Pikselien lukumäärä tunnissa #define MINNUMPIXELS 4 // Pikselimäärä 1 minuutti #define BAUDRATE 115200 // Baudrate BT -moduulin baudinopeus #define utch '@' // käynnistä TimeSyncin BYTE

int timeet = 0; // lippu tallennettavaksi, jos aika on asetettu käynnistyksen jälkeen delayval = 20; // häivyttävän animaation viive int clocktimer = 10000; // ajan päivitys int timebright = 250; // tunnin kirkkaus Strip int mtimebright = 50; // kirkkaus singelminint Initialize = 0; // lippu, joka kutsuu clearpixels -toiminnon käynnistyksen jälkeen ahour; int oldahour = 0; // tallentaa edellinen tunnin tunti; int oldamin = 0; // tallentaa edellisen minuutin päivityksen toistoon; int aday; int kuukaudessa; int vuosi; int mmin; tmElements_t tm;

// Kahden NeoPixel -LED -järjestelmän määritys (NIMI = TYYPPI (LUKUMÄÄRÄ, MIKÄ PIN -MUOTO, RGB TAI GRB, TAAJ.); Katso lisätietoja Adafruit -oppaasta.); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

PERUSTAA:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Alusta nauhat, kaikki OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();

// Tee pieni animaatioSerial.println ("SUNRISE"); auringonnousu(); viive (1000); Serial.println ("SUNSET"); auringonlasku(); pixels.show (); Serial.println ("VALMIS"); }

LOOP:

void loop () {// tarkista aikakytkentä, kun (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // jos rivillä on @, lue tulevat tavut /tuumat {readtime (); }} // alustavat LEDit, tyhjentävät käynnistysanimaation

if (alustaminen == 0) {clearpixels (); alustaa = 1; }

tunti = tunti ();

aminute = minuutti (); if (timeset == 1 || timeset == 0) // täältä voit tarkistaa, onko aika asetettu, voit pysäyttää ohjelman täällä, jos Timeset = FALSE, poista vain "|| timeset == 0"!

{

jos (oldamin <aminute || oldahour asettaa kaikki pois päältä, näytä uusi aika {clearpixels (); ClockDisplay ();}}}

Näytä kello:

void ClockDisplay () {

oldahour = tunti;

oldamin = aminute; int xhour, xmin;

jos (ahour> = 12) {xhour = ahour-12; // meillä on vain 12 LEDiä 24 tunnin näytölle} else {xhour = ahour; } // skaalaa se 5 minuutin vaiheiksi xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; kirkkaat pikselit (); } // ota loput jako dor singelmin LED mmin = (aminute % 5); // modulo -operaattori esim. 24 % 5 = 4! erittäin hyödyllinen: -Ppixels.setBrightness (aikavalo); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // voit vaihtaa värejä täällä! leikkiä! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();

// näyttää singel minsfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pikseliä Väri (255, 255, 0)); minpixels.show (); }} Lue ja käsittele Serialin TIME -tietoja

void readtime () // jos meillä on jo johtava "@", käsittele tulevat tiedot ja tallenna aika TIME Libille {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); kuukausi = Serial.parseInt (); vuosi = Serial.parseInt (); Serial.println ("TIMESET"); Sarjajälki (tunti); Serial.print (":"); Sarja.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Tyhjennä

void clearpixels () // aseta jokainen PIXEL pois päältä näytön päivittämiseksi {

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.näytä(); } }

Vaihe 5: Android -sovellus ja BT -yhteys

Android APP- ja BT -yhteys
Android APP- ja BT -yhteys
Android APP- ja BT -yhteys
Android APP- ja BT -yhteys
Android APP- ja BT -yhteys
Android APP- ja BT -yhteys

Jos olet onnistunut edellisissä vaiheissa, voit nyt yhdistää BT -moduulin. (toivottavasti varmistit, että baudrat vastaavat). Älä unohda ylittää TX- ja RX-viivoja:-)

Lataa ja asenna sovellus, muodosta pariliitos BT -sovittimen kanssa, käynnistä sovellus, muodosta yhteys dongleen ja synkronoi aika matkapuhelimesi kanssa. APP tekee periaatteessa saman kuin ennenkin. Se lähettää vain @hh/mm/ss/dd/mm/YYYY, joka on luotu järjestelmäajastani.

Vaihe 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor on melko helppokäyttöinen ja vaivan arvoinen niin yksinkertaiselle ohjelmalle.

Jos teet uuden projektin, löydät itsesi DESIGNER -näytöstä. (kuva 1) Tähän lisätään taulukoita, painikkeita, antureita ja muita elementtejä jatkokäyttöä varten.

  • taulukko (kaikkien elementtien kohdistamiseksi)
  • listanvalitsin (BT -laitteen valitsemiseksi, johon yhdistämme)
  • painike (käynnistää TIME BT: n yli)
  • jotkin tarrat (näytä todellinen aika ja päivämäärä)
  • kelloanturi (päivitä aika)
  • bluetooth -asiakasanturi (yhteys)

Niiden lisääminen on yhtä helppoa kuin vedä ja pudota! Kuvassa 2 näet yleiskatsauksen APP: sta BLOCKS -näytössä. No, siinä tapahtuu periaatteessa kaikki "magiat". Ylhäällä loin muuttujia ajan ja päivämäärän tallentamiseksi. Ensimmäinen lohko vasemmassa yläkulmassa alustaa listpicker -elementin pariliitettyjen BT -laitteiden luettelon kanssa. toisessa lohkossa päätämme, mitä tehdä aiemmin valitulle elementille. No, haluamme muodostaa yhteyden siihen.

Jos tarkastelet lähemmin seuraavaa lohkoa, näet, että luomme BT -viestin, jos BT -tila "on kytketty". Se on sama, jonka kirjoitimme SerialMonitoriin aiemmin. Vasemmanpuoleinen viimeinen lohko antaa meille alkuarvot ajan näyttämiseksi (esim. 01:08). Oikealta puolelta löydät viimeisen lohkon, jossa käytämme kelloelementtiä. Täällä päivitämme muuttujat ja yhdistämme ne numeromenettelyyn, tämä tapahtuu 1000 ms: n välein (oletusasetus, muuta se suunnittelutilassa) ja näytä päivitetyt arvot tarralla. Tämä on vain lyhyt kuvaus, mutta APPInventor on todellakin niin helppoa:-) Ehkä yhteisössä on joku, joka haluaa kirjoittaa ohjelmiston iOS: lle tai WindowsPhonelle. (olisi hienoa)

Toivottavasti pidit Instructable -ohjelmastani! Pidä hauskaa uuden seinäkellosi kanssa! Ehkä haluat lahjoittaa sen rakastamallesi henkilölle (sen X-Mas-kausi):-)

Ja jos on kysyttävää, kysy rohkeasti!

Terveisin ja hyvää joulua.

Suositeltava: