Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
Tihti leian, et ostan ise asju, millest mul pole aimugi, mida ma teen. See projekt on rõnga ostmise tulemus, millel on sisse lülitatud 12x WS2812b LED -d. Mul polnud selle jaoks plaane, kuid see tundus võrgus lahe, nii et ma jätsin ühe oma ostukorvi, mängisin sellega mõnda aega, kui see saabus, ja siis unustasin selle kõik.
Mõni aeg hiljem mõtlesin teha kella ja meenus, et see istus seal ja ei teinud midagi. Mõtlesin osta teise rõnga, millel on 60 LED -i, et teha minutid, kuid siis hakkasin mõtlema, kuidas me / mina kipume kella vaatama ja ümardama selle 5 minuti täpsusega.
Sellega hakkasin oma 12 LED -rõngaga ish -kella tegema. See kuvab 1 LED -i korraga 1 sekundiks, et näidata tunde (sinine LED) ja seejärel minuteid (punane LED) allapoole ümardatuna
Samm: osade ja puidutööde kogumine
Mul oli väga õnn, et jõudsin ühel päeval tööle ja märkasin kaubaalust. See kaubaalus jäi mulle silma, kuna see ei tundunud teie standardse veskiga kaubaaluse järgi. See oli puhas, kuumtöödeldud ja ebatavaliselt tahke tamm.
See projekt on valmistatud ühest selle kaubaaluse tükist. (Küsisin ülemuselt enne koju viimist)
Kasutatakse ka:
- 12 piksline ws2812b LED -rõngas
- Reaalajas kella (RTC) moodul (kasutan DS3231 koos I2C -ga)
- Arduino Nano v3.0 ühilduv
- Akrüülleht (5 mm)
- Värviline traat
Tööriistad
- Jõupuur
- Ruuter
- Reguleeritav lame puidust otsik
- Elektriline lihvmasin
- Käsisaag
- Jootekolb
- Kuum liimipüstol
- Liivapaber
- Taani õli
Lihvimine
Alustasin elektrilise lihvimismasinaga puitploki sirgendamiseks ja puhastamiseks, kuni kõik küljed olid puhtad ja siledad. Jätsin mõned puudused nähtavaks ja see ei ole täiesti sirge ega ruudukujuline, kuna mulle meeldib näha puidust ajalugu.
Aukude märgistamine ja lõikamine
Pärast lihvimist valisin külje, mida soovisin kella nägu, ja märkisin keskpunkti, tõmmates igast nurgast jooni. Seadsin reguleeritava puidust natuke suuremaks kui LED -rõngas, nii et akrüülil oleks riiul, kus saaks istuda ja lõigata umbes 5 mm sügavust, seejärel reguleerida lõikurit veidi üle LED -rõnga suuruse ja lõigata veel umbes 5 mm.
Marsruut ja kaabliavad
Kasutades oma ruuterit 12 mm bitiga, suunasin ploki põhja välja RTC ja Arduino peitmiseks süvendi. Selle sügavus on umbes 15 mm ja servast mitte vähem kui 5 mm. Märkisin altpoolt keskosa (ish) ja puurisin 10 mm bitti kasutades ülespoole, et LED -juhtmed oleksid võimalikud. Seejärel puurisin 5 mm otsiku abil LED -süvendi keskelt, et täita 10 mm auk alt.
Veel üks 4 mm auk tagaküljel toite saamiseks ja väiksema ruuteri abil LED -rõnga tagaküljel asuvate juhtmete jaoks kanali tegemiseks ja puutööd on tehtud.
2. samm: akrüülringid
Kella esiosa jaoks akrüüli valmistamiseks ütlesin, et lõikasin ruudukujulise tüki, mis oli lihtsalt suurem kui auk, mille see pidi täitma. Seejärel hakkasin elektrilise lihvimismasina abil alustama nurkade eemaldamist, kuni see oli õige kuju ja suurusega. Seejärel liikusin käsitsi lihvimise peale, nii et ma ei lasknud üle tulistada ja pean otsast alustama.
See oli aeglane ja tüütu katse -eksituse protsess, kuni see sobis, kuid arvan, et lõpptulemus oli seda väärt. Lõpetuseks kasutasin väga peeneteralist paberit, et anda akrüüli esiküljele härmatatud välimus.
3. samm: jootmine
Mulle meeldib sel juhul juhtmete jaoks kasutada värvisüsteemi, mille valin:
- Punane toiteallika jaoks (5v)
- Valge maapinna jaoks
- Andmete jaoks kollane
- Roheline kella jaoks
Alustasin 3 vajaliku juhtme jootmisega ülaltoodud süsteemi abil LED -rõngale ja surusin juhtmed auku alla. Kuna see ei tohiks olla sunnitud, kasutasin rõnga paigal hoidmiseks pisikest kuuma liimi. (Ma pean võib -olla seda millalgi muutma) ja paigaldage akrüül serva ümber veidi kuuma liimiga.
Seejärel jootsin ülaltoodud süsteemi abil 4 juhtmest RTC külge. Asjade pisut heas korras hoidmiseks otsustasin Arduinost RTC jaoks jõudu ammutada. Seejärel ühendas kõik Arduinoga ja jootis 1 juhtme toiteallikaks ja teise maandamiseks Arduino külge.
RTC
- SCL (kell) analoogpinnile 5
- SDA (andmed) kuni analoogpistikuni 4
- VCC kuni 5V
- GND mis tahes Arduino GND -le
LED rõngas
Din kuni Digital Pin 6
Mul oli vana USB -kaabel rippumas, nii et otsustasin seda kella toiteks kasutada. Lõikasin ära selle otsa, mis tavaliselt millegagi ühenduks, ja surusin selle läbi taga oleva augu. Seejärel eemaldati ja tooniti otsad enne VCC jootmist Arduino külge ja LED -rõngast positiivsele küljele ning maapinda Arduino ja LED -i maandusele. Hiljem kahanesin veidi ja see tundus hea, Kuum liimipüstol tuli tagasi, et hoida kõike all. Otsustasin jätta Arduino piisavalt mängima, et saaksin tulevikus USB -porti juurde pääseda, et seda programmeerida, kuid mitte nii palju, et saaksin välja kukkuda.
Samm: kood
Nüüd peaksite saama selle koodi Arduinosse üles laadida.
Kui RTC ei tööta, määrab see kood koodi koostamise aja, seega klõpsake kindlasti üleslaadimisnuppu ja ärge seda kinnitage.
vaheldumisi sobib see ka aja määramiseks väga hästi.
www.instructables.com/id/Setting-the-DS130…
Suure osa sellest koodist laenasin Adafruit NeoPixeli raamatukogust ja osa RTC raamatukogust, mille leidsin ja osa mõtlesin ise välja.
// lisada raamatukogu kood: #include
#kaasake
#kaasake
// määrake tihvtid
#defineeri PIN 6
#define BRIGHTNESS 20 // määrake maksimaalne heledus
#määratle r 5
#määratle g 5
#defineeri b 5
RTC_DS3231 rtc; // Kellaobjekti loomine
Adafruit_NeoPixel riba = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // riba objekt
tühine seadistus () {
Wire.begin (); // Alustage I2C
rtc.begin (); // alusta kella
Seriaalne algus (9600);
// määrake pinmodeid
pinMode (PIN, VÄLJUND);
if (rtc.lostPower ()) {
Serial.println ("RTC kaotas voolu, määrab aja!");
// järgmine rida määrab RTC -le selle visandi koostamise kuupäeva ja kellaaja
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));
// See rida määrab RTC -le selgesõnalise kuupäeva ja kellaaja, näiteks seadistamiseks
// 21. jaanuar 2014 kell 3:00 helistate:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
riba.algus ();
strip.show (); // Initsialiseeri kõik pikslid olekusse „väljas”
DateTime theTime = rtc.now (); // võtab arvesse DST
bait secondval = theTime.second (); // saada sekundeid
bait minutivalik = theTime.minute (); // saada minuteid
int hourval = theTime.hour ();
punkt (riba. Värv (0, g, 0), 50);
}
void loop () {
// saada aega
DateTime theTime = rtc.now (); // võtab arvesse DST
int minuteval = theTime.minute (); // saada minutid
int hourval = theTime.hour (); // saada tunde
int secondval = theTime.second ();
kui (minutiaeg 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
muidu kui (minutiline <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
viivitus (1000);
jaoks (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
kui (tunniaeg == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
muidu kui (tunniaeg == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
viivitus (1000);
jaoks (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// seeria silumiseks
Serial.print (tunniaeg, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
tühi punkt (uint32_t c, uint8_t oota) {
jaoks (int j = 0; j <3; j ++) {
jaoks (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
viivitus (oota);
jaoks (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Samm: Taani õli
Viimane ja valikuline samm on puidule veidi Taani õli kanda. Mulle väga meeldib, kuidas see tera välja toob, lisaks pakub see kaitset plekkide ja niiskuse eest. Seega soovitan soojalt.
Saate selle peale pintseldada või ma kasutan selle pühkimiseks lihtsalt vana lappi.
Nüüd pole muud üle kui ühendada ja nautida.
Soovitan:
Castle Planter (koos Tinkercadi koodiplokkidega): 25 sammu (koos piltidega)
Castle Planter (koos Tinkercadi koodiplokkidega): selle disaini teostamine võttis mul üsna kaua aega ja kuna minu kodeerimisoskus on vähemalt öeldes piiratud, loodan, et see õnnestus hästi :) Kasutades juhiseid, peaksite saama taaslooge selle disaini kõik aspektid ilma
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): 4 sammu (koos piltidega)
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): olen näinud palju inimesi, kes teevad makroläätsi tavalise komplekti objektiiviga (tavaliselt 18–55 mm). Enamik neist on objektiiv, mis on lihtsalt tagurpidi kaamera külge kinnitatud või esielement eemaldatud. Mõlemal variandil on varjuküljed. Objektiivi kinnitamiseks
Kitroniku leiutajakomplekti kasutamine koos Adafruit CLUE -ga: 4 sammu (koos piltidega)
Kitroniku leiutajakomplekti kasutamine koos Adafruit CLUE -ga: Kitronik Leiutaja komplekt BBC micro: bit jaoks on suurepärane sissejuhatus elektroonikaga mikrokontrolleritele, kasutades leivaplaati. See komplekti versioon on mõeldud kasutamiseks koos odava BBC mikro: bitiga. Üksikasjalik õpetusraamat, mis tuleb
Mull -äratuskell teeb ärkamise lõbusaks (ish): 7 sammu (koos piltidega)
Mull -äratuskell teeb ärkamise lõbusaks (ish): sumiseva äratuskella peale ärkamine on nõme. Olen üks neist inimestest, kellele ei meeldi ärgata enne, kui päike loojub (või on juba mitu tundi väljas olnud). Nii et mis oleks parem viis ärkamine lõbusaks teha kui voodis mullipidu! Arduino ja
LittleBits Mad Libs (-ish): 7 sammu (koos piltidega)
LittleBits Mad Libs (-ish): olete valmis kaasama oma õpilasi väljakutsesse, mis ühendab NGSS-i (järgmise põlvkonna teadusstandardid) inseneripraktika (ja rohkem, kui lisate muid piiranguid!)? LittleBitsi või mõne muu mitmeosalise elektroonikakomplekti kasutamine (SAM Laborid, Lego WeDo, LEGO