Indholdsfortegnelse:
- Trin 1: Indsamling af dele og træarbejde
- Trin 2: Akrylcirkler
- Trin 3: Lodning
- Trin 4: Koden
- Trin 5: Dansk olie
Video: Ish Clock: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Jeg finder ofte, at jeg selv køber ting, som jeg ikke aner, hvad jeg skal gøre med. Dette projekt er et resultat af et køb af en ring, der har 12x WS2812b lysdioder tændt. Jeg havde ingen planer om det, men det så fedt ud online, så jeg stak en i min vogn, legede med den et stykke tid, da den ankom og glemte alt om det.
Et stykke tid senere tænkte jeg på at lave et ur og huskede at det sad der og ikke gjorde noget. Jeg tænkte på at købe en anden ring med 60 lysdioder tændt for at udgøre minutterne, men begyndte så at tænke på, hvordan vi / jeg har en tendens til at se på tidspunktet og afrunde det til de nærmeste 5 minutter.
Med dette i min gik jeg ud med min 12 LED -ring for at lave det ish ur. Den viser 1 LED ad gangen i 1 sekund for at angive timen (blå LED) og derefter minutter (rød LED) afrundet
Trin 1: Indsamling af dele og træarbejde
Jeg var meget heldig at komme på arbejde en dag og få øje på en palle. Denne palle stak ud for mig, da den ikke lignede din standard, løb af møllepallen. Det var rent, varmebehandlet og mest usædvanligt massivt egetræ.
Dette projekt er lavet af et af stykkerne på den palle. (Jeg spurgte chefen, før jeg tog den med hjem)
Også brugt:
- 12 pixel ws2812b LED -ring
- Real Time Clock (RTC) modul (jeg bruger en DS3231 med I2C)
- Arduino Nano v3.0 kompatibel
- Akrylark (5 mm)
- Farvet tråd
Værktøjer
- El -boremaskine
- Router
- Justerbar flad træbit
- Elektrisk slibemaskine
- Håndsav
- Loddekolbe
- Varm limpistol
- Sandpapir
- Dansk olie
Slibning
Jeg startede med at bruge el -slibemaskinen til at rette og rense træblokken, indtil alle sider var rene og glatte. Jeg efterlod nogle ufuldkommenheder synlige, og den var ikke helt lige eller firkantet, da jeg gerne kunne se noget af historien i skoven.
Markering og afskæring af hullerne
Efter slibning valgte jeg den side, jeg ville have urets overflade og markerede midten ved at tegne linjer fra hvert hjørne. Jeg satte den justerbare træbit lidt større end ledringen, så der ville være en hylde, hvor akrylen kunne sidde på og skære ca. 5 mm dybt og derefter justere fræseren lige over størrelsen på LED -ringen og skære yderligere 5 mm ned.
Routing og kabelhuller
Ved hjælp af min router med 12 mm -biten ruttede jeg en fordybning ud i bunden af blokken for at skjule RTC og Arduino. Den er cirka 15 mm dyb og ikke mindre end 5 mm fra enhver kant. Jeg markerede midten (ish) fra bunden og borede op ved hjælp af en 10 mm bit lige over halvvejs for at tillade LED -ledninger. Derefter borede jeg med en 5 mm bit fra midten af LED -fordybningen for at imødekomme 10 mm -hullet fra bunden.
Endnu et 4 mm hul på bagsiden, så strømmen kan komme ind, og ved hjælp af en mindre router bit til at lave en kanal til ledningerne på bagsiden af LED -ringen og træarbejdet er udført.
Trin 2: Akrylcirkler
For at lave akryl til forsiden af uret angav jeg at skære et firkantet stykke, der bare var større end hullet, det skulle fylde. Derefter begyndte jeg at fjerne hjørnerne, indtil den var omkring den rigtige form og størrelse. Jeg flyttede derefter til håndslibning, så jeg ikke overskydede og skulle starte forfra.
Det var en langsom og kedelig proces med forsøg og fejl, indtil den passede helt rigtigt, men jeg synes, at slutresultatet var det værd. Jeg sluttede med at bruge et meget fint gruspapir til at give forsiden af akrylen et frostet look.
Trin 3: Lodning
Jeg kan godt lide at bruge et farvesystem til mine ledninger ved denne lejlighed, jeg vælger:
- Rød til strøm (5v)
- Hvid til jorden
- Gul til data
- Grøn til ur
Jeg begyndte med at lodde de 3 nødvendige ledninger på LED -ringen ved hjælp af systemet ovenfor og skubbe ledningerne ned i hullet. Da den ikke skulle udsættes for nogen form for tvang, brugte jeg en lille smule varm lim til at holde ringen på plads. (Jeg skal måske ændre det engang) og installere akrylen med bare lidt varm lim rundt om kanten.
Jeg lod derefter de 4 ledninger på RTC ved hjælp af systemet ovenfor. For at holde tingene lidt pænere besluttede jeg at trække strøm til RTC fra Arduino. Tilsluttede derefter alt til Arduino og lodde 1 ledning til strøm og en anden til jord til Arduino.
RTC
- SCL (ur) til analog pin 5
- SDA (data) til analog pin 4
- VCC til 5V
- GND til enhver GND på Arduino
LED ring
Din til digital pin 6
Jeg havde et gammelt USB -kabel hængende, så jeg besluttede at bruge det til at tænde uret. Jeg skar den ende af, der normalt ville forbinde til noget, og skubbede den gennem hullet i ryggen. Derefter strippes og tindes enderne før lodning af VCC til Arduino og LED -ringen til den positive side og jorden fra Arduino og LED til jord. Jeg krymper lidt senere, og det så godt ud, Den varme limpistol kom tilbage for at holde alt nede. Jeg besluttede at forlade Arduino med nok spil til, at jeg vil have adgang til USB -porten til at programmere den i fremtiden, men ikke så meget, at jeg kunne falde ud.
Trin 4: Koden
Du skulle nu kunne uploade denne kode til Arduino.
Hvis RTC ikke kører, vil denne kode indstille tiden baseret på, hvornår koden blev kompileret, så sørg for bare at trykke på upload -knappen og ikke bekræfte.
skiftevis fungerer dette også rigtig godt til at indstille tiden.
www.instructables.com/id/Setting-the-DS130…
Meget af denne kode lånte jeg fra Adafruit NeoPixel -biblioteket og nogle fra et RTC -bibliotek fandt jeg, og nogle fandt jeg på egen hånd.
// inkludere bibliotekskoden: #include
#omfatte
#omfatte
// definer pins
#definer PIN 6
#define BRIGHTNESS 20 // indstil maksimal lysstyrke
#define r 5
#define g 5
#define b 5
RTC_DS3231 rtc; // Etabler urobjekt
Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // strip objekt
ugyldig opsætning () {
Wire.begin (); // Start I2C
rtc.begin (); // startur
Serial.begin (9600);
// sæt pinmodes
pinMode (PIN, OUTPUT);
hvis (rtc.lostPower ()) {
Serial.println ("RTC mistede strøm, lad os indstille tiden!");
// følgende linje indstiller RTC til dato og klokkeslæt, hvor denne skitse blev udarbejdet
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));
// Denne linje indstiller RTC med en eksplicit dato og tid, f.eks
// 21. januar 2014 kl. 03.00 vil du ringe til:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Initialiser alle pixels til 'off'
DateTime theTime = rtc.now (); // tager hensyn til sommertid
byte secondval = theTime.second (); // få sekunder
byte minuteval = theTime.minute (); // få minutter
int hourval = theTime.hour ();
prik (strimmel. farve (0, g, 0), 50);
}
void loop () {
// få tid
DateTime theTime = rtc.now (); // tager hensyn til sommertid
int minuteval = theTime.minute (); // få minutter
int hourval = theTime.hour (); // få timer
int secondval = theTime.second ();
hvis (minuteval 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
ellers hvis (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
forsinkelse (1000);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
hvis (hourval == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
ellers hvis (timeval == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
ellers hvis (timeval == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
ellers hvis (timeval == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
ellers hvis (timeval == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
ellers hvis (hourval == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
forsinkelse (1000);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// til seriel fejlfinding
Serial.print (timeval, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
ugyldig prik (uint32_t c, uint8_t vent) {
for (int j = 0; j <3; j ++) {
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
forsinkelse (vent);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Trin 5: Dansk olie
Det sidste og valgfrie trin er at påføre lidt dansk olie på træet. Jeg kan virkelig godt lide, hvordan det får kornet frem, plus det giver en vis beskyttelse mod pletter og fugt. Så jeg kan varmt anbefale det.
Du kan børste den på, eller jeg bruger bare en gammel klud til at tørre den af.
Det eneste, der er tilbage nu, er at tilslutte det og nyde det.
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Bubble Alarm Clock Wakes Up Fun (ish): 7 trin (med billeder)
Bubble Alarm Clock Waking Up Fun (ish): At vågne op til et summende vækkeur er slemt. Jeg er en af dem, der ikke kan lide at vågne, før solen er ude (eller har været ude i mange timer). Så hvilken bedre måde at gøre det sjovt at vågne op end at have en boblefest i sengen! Brug af en arduino og en
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores
LittleBits Mad Libs (-ish): 7 trin (med billeder)
LittleBits Mad Libs (-ish): Klar til at engagere dine elever i en udfordring, der integrerer NGSS (Next Generation Science Standards) Engineering Practices (og mere, hvis du tilføjer andre begrænsninger!)? Brug af littleBits eller et andet elektronisk kit i flere dele (SAM Labs, Lego WeDo, LEGO