TheSUN, Arduino Powered Design falióra: 6 lépés (képekkel)
TheSUN, Arduino Powered Design falióra: 6 lépés (képekkel)
Anonim
TheSUN, Arduino Powered Design falióra
TheSUN, Arduino Powered Design falióra
TheSUN, Arduino Powered Design falióra
TheSUN, Arduino Powered Design falióra
TheSUN, Arduino Powered Design falióra
TheSUN, Arduino Powered Design falióra

Sziasztok ismét Instructables-emberek!:-P

A szállítási problémák miatt nem tudtam folytatni az ABTW projektemet, ezért úgy döntöttem, hogy megmutatok egy másik, legújabb alkotásomat.

Azt hiszem, sokunknak, mint nekem, tetszenek azok a szép címezhető LED csíkok (más néven NEOPIXEL LED). Ezeket az ADAFRUIT -tól szerezheti be. Más gyártók is kínálnak hasonló termékeket. Az ADAFRUITS - GitHub (kattintson rám) könyvtár áll rendelkezésre, beleértve néhány mintakódot. Tehát a kódolásnak egyszerűnek kell lennie…

Láttam ezeken a NEOPIXEL -eken egy gondolatot, hogy mi a jó… mit tehetek ezekkel a fényes apróságokkal.

  • LED-mátrix kijelző? -> Bonyolult, és nem használom (jelenleg)
  • X-Mas világítás? -> Megfelel az évszaknak, de olcsóbb lenne ilyet venni:-P
  • egy óra? -> Miért ne! De stílusosnak és nem szokványosnak kell lennie

Tehát készítsünk faliórát.

Ha alaposan szemügyre vesszük a karóránkat (ha van analógja, mint én), észre fogjuk venni, hogy 12 óra 60 perc áll rendelkezésünkre (remélhetőleg). Ez azt jelenti, hogy 60 címzett LED -re van szükségünk, phu! Ha 60 LED / méter csíkot veszünk, akkor ~ 318 mm (sugár = hatókör / (2*Π)) átmérőt kapunk, ami biztosan túl nagy.

Az az igazság, hogy ha valakitől időt kér, senki nem fogja azt mondani, hogy 2 perccel elmúlt 3 óra! Válaszul az "Ez 5 múlt 3" -t kapja meg. Akkor miért ne méreteznénk le mindent 5 perces lépésekre? Ehhez csak 12 LED -re lesz szükségünk, ami azt jelenti, hogy 63,6 mm átmérőt kapunk. Azt is meg tudjuk különböztetni az óráktól és percektől, hogy külön színt adunk nekik. A "hiányzó" egyperces lépéseket egy további 4 LED -es csíkkal (vagy egyetlen címezhető LED -vel) is elláthatjuk.

Ez a terv! Nézzük meg, hogyan csináltam mindent. Mint mindig, adok egy listát/anyagjegyzéket és utasításokat az elkészítéséhez.

Ha úgy gondolja, csak svájci emberek készíthetnek hűvös órákat, bizonyítsuk be, hogy téved (bocs Svájc:-P)

1. lépés: Tervezés és anyagok kiválasztása

Tervezés és anyagválasztás
Tervezés és anyagválasztás
Tervezés és anyagválasztás
Tervezés és anyagválasztás

Tervezés:

Ha ismét alaposan szemügyre vesszük analóg óránkat, látjuk, hogy a kör 12 * 30 ° -os lépésekre oszlik, és tudjuk, hogy 63,6 mm-re van szükségünk a LED-csíkhoz. Tehát lehetővé kell tenni, hogy a csíkot valahogy egy cső köré igazítsuk. Úgy döntöttem, hogy akrilüveget használok, mert jól néz ki, és be lehet zárni a LED -lámpát, és az üveg minden hibájánál fényszórás történik. Tegyük fel, hogy több szennyeződés nagyobb fényszórást eredményez! Pontosan ezt akarjuk. Szóval bátran fogd a gravírozási eszközeidet és legyél kreatív:-)

Ha hivatkozik a BoM listámra és az órára adott névre, akkor a naphoz hasonló dizájnt választottam. Az összes akril alkatrészt egy német eladótól kaptam az E-Bay-en (link a BoM-ben). szükséged lesz:

  • akril alaplap, átlátszó vastagság = 6mm, átmérő = 300mm
  • akril középső lemez, átlátszó vastagság = 3mm, átmérő = 150mm
  • akril előlap, szatén, vastagság = 3mm, átmérő = 90mm
  • akrilcső, átlátszó, külső átmérő = 64 mm (ez azt jelenti, hogy kicsit módosítanunk kell a LED szalaggal)
  • akril rúd, átlátszó, átmérő = 5 mm (ez lesz a gerendánk); Akril rúd is van körülötte buborékokkal, ajánlom őket, de nincs körülöttem.
  • akril ragasztó

Elektronika (lásd a Fritzing fájlokat):

  • Arduino mini (vagy hasonló)
  • 1 címezhető LED szalag (12 LED óra és 5 perces lépésekhez)
  • 4 címezhető LED (egyetlen perc)
  • 2 330 Ohm ellenállás
  • 1 1000µF kondenzátor
  • 1 tápegység (5V/500mA)
  • RTC DS-1307 (opcionális!)
  • Bluetooth modul (opcionális! Igen, beállíthatja az időt BT -n és Android okostelefonon keresztül)

Ha megkérdezi magától, hogy miért van MAX485 chip a BoM -en. A válasz az, hogy szinkronizálni szeretném az órát a készülő otthoni automatizálási rendszerrel (soha többé nem kell órát állítanom a nyári időszámításhoz:-P). Ezt a következő blogomban leírom. pár hét/hónap.

Amint észrevette, megpróbálom lekapcsolni az órát a hálózatról néhány napelemmel és egy LiPo-val, de ezt nem fedem le ebben az utasításban. Próbálja ki magát.

Lépés: Készítse elő az akril alkatrészeket

Készítse elő az akril alkatrészeket
Készítse elő az akril alkatrészeket
Készítse elő az akril alkatrészeket
Készítse elő az akril alkatrészeket
Készítse elő az akril alkatrészeket
Készítse elő az akril alkatrészeket

Az eszközök:

Először is nagyon hasznos, ha kinyomtatja az 1: 1 skálán hozzáadott DWG tervet. Ez segít összehangolni az összes alkatrészt, és fúrási tervként szolgál. Továbbá szüksége lesz:

  • hobbyknife
  • gérvágó mérő
  • fűrész
  • bilincsek
  • kézi fúró
  • fúrható, átmérője 65 mm
  • egy sor fémfúró
  • egy kis fémreszelőt
  • akril ragasztó

Kezdjük:

Fogja meg a földelőlemezt, és igazítsa a tervhez, így megkaphatja a kör közepét. Most vegye a kézi fúrót a rá szerelt konzervfúróval, és fúrjon (nagyon lassan! Nem túl nagy nyomást!) Egy lyukat a talajlemez közepére, a külső körnek 2-3 mm mélynek kell lennie. Ez azt jelenti, hogy a LED -szalagot a földelőlapba kell süllyeszteni (LED -szalag ~ 10 mm széles, a gerendák csak 5 mm átmérőjűek), és igazítani kell őket a gerendákhoz (lásd az 1. ábrát).

Most szükségünk van a fűrészre, a gérvágóra és az akrilcsőre. Csak darabokra vágva úgy döntöttem, hogy a házat (csövet) 40 mm hosszúvá teszem (2. kép). Most ragadja meg újra a fűrészt, és készítsen egy kis nyulat a cső egyik oldalán, simítsa a fémreszelővel. Ott jönnek ki a vezetékek;-) (lásd a 3. képet)

Vegyünk egy kis ragasztót… Vegyük a középső lemezt (d = 150 mm) és az előlapot (a satinált). Igazítsuk újra a tervhez, tegyünk ragasztót a középső lemez közepére, igazítsuk az előlapot, és várjuk meg, amíg a ragasztó kissé megkeményedett. Az általam használt ragasztó enyhén keményedik, és akár 2-3 órát is igénybe vehet, ezért mybe szorítót szeretne használni … (3. és 4. kép)

Tegye ugyanezt a cső ragasztásakor a földelőlemezre, győződjön meg arról, hogy a szőnyeg a lemez felé néz, és valahol ott van, ahol az első LED -et szeretné (12 óra).

Várja meg, amíg megszilárdul!

Most a 2 részt (könyvelősen) a tervhez igazíthatjuk, és fúrjuk a 4 egyperces lyukat (5 mm átmérőjű vagy a kiválasztott LED átmérője; lassan fúrja, nem túl nagy nyomással). Fúrjon körülbelül 8-9 mm mélyen. Legyen óvatos, a satin lemez nagyon törékeny, és fékezhet, ha mélyre fúr. Most összeragaszthatja őket, vagy úgy dönt, mint én, hogy fenyegetést vágjon a földelőlapba, és csavarral rögzítse.

Ismét várjon, amíg a ragasztó megszilárdul. Most igazítsa és ragassza rá a gerendákat a földelőlapra. (6. kép) Találd ki… várj, amíg a ragasztó megszilárdul:-) Folytassuk az elektronikával…

3. lépés: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Az eszközök:

  • forrasztópáka
  • forrasztóhuzal
  • hobbi kés
  • egy kis darab prototípus -NYÁK
  • zománcozott huzal vagy bármilyen más huzal
  • forró ragasztó

Az egyetlen LED -del állítottam. Ha zománcozott huzalt használ, ne felejtse el lekaparni a lakkot a forrasztás előtt. Ehhez használhat hobbi kést. Vezetékkel kösse össze őket, a flikto.de oldalon található pinout segítségével tekintheti meg a képet. Ne feledje, hogy a DOUT a DIN -re megy a következő LED -en! (lásd a 2. ábrát) Ezt követően a LED szalagot 4 elemre vághatja, egyenként 3 LED -del. Ne feledje, hogy 63,6 mm -es LED -csíkunk és 64 mm -es külső átmérőjű csőnk van, így szükségünk van egy "extra hosszúságra, hogy pontosan a gerendákhoz igazítsuk. Huzalozzuk fel zománcozott huzallal, mint a 4. képen. Készítettem egy kis proto -PCB -t, amely szolgál "tápfeszültségként", és tartalmazza a LED szalagok alkatrészeit (a két 330 Ohm ellenállást és az 1000µF kondenzátort, 7. kép).

Most szerelje fel a csíkot a cső körül, és igazítsa a LED -eket a gerendákhoz. Az első Pixel 12 óra. Ha megfordította házát, ne felejtse el, hogy minden tükröződik. Folytassa az óramutató járásával ellentétes irányba! Használjon forró ragasztót a cső rögzítéséhez. Egy kis csepp minden szegmenshez megteszi!

Ugyanezt teheti az egyes LED -ek esetében is (végül tükrözve), csak adjon hozzá néhány forró ragasztót, és nyomja be őket az előre fúrt lyukakba.

Még ne kösse be az Arduino-t, a hardver-sorozatot fogjuk használni a BT-kapcsolathoz, ezért először ellenőrizze a következő lépéseket, ahol leírom a szoftvert.

4. lépés: Kód

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

Most betöltheti a vázlatot az Arduino -ba. A LED szalagokat most is bekötheti. Ne csatlakoztassa a BT modult !!! Először meg akarjuk nézni a kódot, tudnia kell, hol lehet több dolgot módosítani…

Töltse le az Arduino IDE -t és a könyvtárakat. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Telepítse az IDE-t, és helyezze a könyvtárakat a könyvtármappába. Nyissa meg a mellékelt INO fájlt, és töltse fel az arduino-jába. Az itt leírt kód ugyanaz, de további megjegyzésekkel! Ha mindent jól csinált, akkor most láthatja a "bootanimációt". Lehetőség van a sorozatmonitoron beállítani az időt. Csak írja be a @"óra"/"min"/"másodperc" értéket, pl. @10/33/00 (10:33).

Nyugodtan játsszon a kóddal… Itt röviden leírja a kódot (Beállítás RTC nélkül!)

DEFINÍCIÓK:

#define PIN 6 // Óra LED csík #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Pixelek száma órában #define MINNUMPIXELS 4 // Pixelek száma egy percre #define BAUDRATE 115200 // Baudrate a BT modul átviteli sebessége #define utch '@' // start BYTE of TimeSync

int timeset = 0; // zászló a tároláshoz, ha az időt a bootint késleltetés után állították be delayval = 20; // késés az elhalványuló animációhoz int clocktimer = 10000; // időfrissítés int timebright = 250; // óra fényereje Strip int mtimebright = 50; // a singelminint fényessége inicializál = 0; // zászló a clearpixels függvény meghívásához a bootint ahour után; int oldahour = 0; // store prev. hourint aminute; int oldamin = 0; // az előző percet eltárolja a frissítéshez asecond; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// A 2 NeoPixel LED tömb beállítása (NAME = TÍPUS (PIXELEK SZÁMA, MILYEN PIN, FORMAT RGB OR GRB, FREQ); További információkért lásd az Adafruit útmutatót. Adapruit_NeoPixel pixelek = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GR); Adafruit_NeoPixel minpixelek = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

BEÁLLÍT:

void setup () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicializálja a csíkokat, minden OFFpixel.begin (); minpixels.begin (); pixels.show (); minpixels.show ();

// Készíts egy kis animációtSerial.println ("SUNRISE"); Napkelte(); késleltetés (1000); Serial.println ("SUNSET"); napnyugta(); pixels.show (); Serial.println ("KÉSZ"); }

HUROK:

void loop () {// ellenőrizze az időszinkronizálást, miközben (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // ha @ van a sorban, olvassa el a következő bájtokat /hüvelykeket {readtime (); }} // inicializálja a LED -eket, törölje a rendszerindítást

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

ahour = óra ();

aminute = perc (); if (timeset == 1 || timeset == 0) // itt ellenőrizheti, hogy az Idő be van -e állítva, itt leállíthatja a programot, ha Timeset = FALSE, csak távolítsa el a "|| timeset == 0" értéket!

{

ha (oldamin <aminute || oldahour OFF -ra állítva az összeset, jelenítse meg az új időt {clearpixels (); ClockDisplay ();}}}

Az óra megjelenítése:

void ClockDisplay () {

oldahour = ahour;

oldamin = aminute; int x óra, xmin;

if (ahour> = 12) {xhour = ahour-12; // csak 12 LED -ünk van a 24 órás kijelzőn} else {xhour = ahour; } // méretezze 5 perces lépésekre xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; clearpixels (); } // vegye fel a többi osztást dor a singelmin LED mmin = (aminute % 5); // modulo operátor pl. 24 % 5 = 4! nagyon hasznos: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // itt megváltoztathatod a színeket! játszani! pixels.setPixelColor (x óra, pixels. Color (255, 50, 0)); pixels.show ();

// jelenítse meg a mingel for mingel (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixels. Color (255, 255, 0)); minpixels.show (); }} Olvassa el és dolgozza fel a Serial TIMEinformációit

void readtime () // ha már megkaptuk a vezető "@" -ot, akkor dolgozzuk fel a következő adatokat, és tároljuk az időt a TIME Lib számára {

ahour = Serial.parseInt (); aminute = Sorozat.parseInt (); asecond = Sorozat.parseInt (); aday = Sorozat.parseInt (); hónap = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Soros.nyomtatás (óra); Serial.print (":"); Soros.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Mindent kitöröl

void clearpixels () // a kijelző frissítéséhez kapcsolja ki minden egyes PIXEL -t {

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.előadás(); } }

5. lépés: Az Android APP és a BT kapcsolat

Az Android APP és a BT kapcsolat
Az Android APP és a BT kapcsolat
Az Android APP és a BT kapcsolat
Az Android APP és a BT kapcsolat
Az Android APP és a BT kapcsolat
Az Android APP és a BT kapcsolat

Ha sikeres volt az előző lépésekkel, akkor most bekötheti a BT modult. (remélem meggyőződött arról, hogy a baudráták megegyeznek). ne felejtsd el átlépni a TX és RX vonalakat:-)

Töltse le és telepítse az alkalmazást, párosítsa a BT hardverkulcsával, indítsa el az alkalmazást, csatlakozzon a hardverkulcshoz és szinkronizálja az időt a mobiljával. Az APP alapvetően ugyanazt teszi, mint korábban. Csak a rendszeridőből generált @hh/mm/ss/dd/mm/YYYY értéket küldi. Az APPInventor AIA fájlt és a következő lépés magyarázatát is megadtam (azok számára, akiket érdekel).

6. lépés: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

Az APP Inventor használata nagyon egyszerű, és megéri az erőfeszítést egy ilyen egyszerű programhoz.

Ha új projektet készít, a DESIGNER képernyőn megtalálja önmagát. (1. kép) Itt adunk hozzá táblázatokat, gombokat, érzékelőket és egyéb elemeket a további használatra. Esetünkben szükségünk van:

  • táblázat (az összes elem allignálásához)
  • listaválasztó (a csatlakoztatni kívánt BT -eszköz kiválasztásához)
  • egy gomb (az idő bekapcsolásához BT felett)
  • néhány címke (jelenítse meg a pontos időt és dátumot)
  • az óraérzékelő (frissítse az időt)
  • a Bluetooth ügyfél -érzékelő (kapcsolat)

Hozzáadásuk olyan egyszerű, mint a drag & drop! A 2. képen az "APP" áttekintése látható a BLOCKS képernyőn. Nos, alapvetően ott történik minden "varázslat". A tetején néhány változót hoztam létre az idő és a dátum tárolására. A bal felső sarokban lévő első blokk inicializálja a listpicker elemet a párosított BT eszközök listájával. második blokkban eldöntjük, hogy mit kezdjünk az előzőleg kiválasztott elemmel. Nos, csatlakozni akarunk hozzá.

Ha alaposan megvizsgálja a következő blokkot, láthatja, hogy ha a BT állapot "csatlakoztatva" van, akkor a BT üzenetet generáljuk. Ugyanezt írtuk be korábban a SerialMonitorba. A bal oldali utolsó blokk biztosítja számunkra a kezdő nullákat az idő megjelenítéséhez (pl. 01:08). A jobb oldalon megtalálhatja az utolsó blokkunkat, ahol az óra elemet használjuk. Itt frissítjük a változókat, és egyesítjük őket a számjegyekkel, ez 1000 ms -onként történik (alapértelmezett beállítás, módosítsa tervező módban) és jelenítse meg a frissített értékeket a címkével. Ez csak egy rövid leírás, de az APPInventor valóban ilyen egyszerű:-) Talán van valaki a közösségben, aki szoftvert szeretne írni iOS vagy WindowsPhone számára. (Nagyszerű lenne)

Remélem tetszett az Instructable! Szórakozzon az új faliórájával! Talán megajándékoznád valakinek, akit szeretsz (X-Mas szezonja):-)

És ha bármi kérdésed van, tedd fel bátran!

Üdvözlettel és Boldog X-Masokat.

Ajánlott: