Indholdsfortegnelse:
- Trin 1: Design og valg af materialer
- Trin 2: Forbered akryldelene
- Trin 3: Elektronik
- Trin 4: Kode
- Trin 5: Android -appen og BT -forbindelsen
- Trin 6: APPInventor
Video: TheSUN, Arduino Powered Design Wall Clock: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Hej igen Instructables-folkens!:-P
På grund af forsendelsesproblemer kunne jeg ikke fortsætte mit ABTW-projekt, så jeg besluttede at vise dig en anden, min nyeste skabelse.
Jeg tror, at mange af os, ligesom mig, kan lide de flotte adresserbare LED -striber (også kaldet NEOPIXEL LED). Du kan få dem fra ADAFRUIT. Andre leverandører vil også levere lignende produkter. Der er et bibliotek tilgængeligt på ADAFRUITS - GitHub (klik på mig), herunder nogle eksempler på kode. Så kodning skal være ligetil …
Jeg så de NEOPIXELS en tanke, hvad i helvede kan jeg gøre med de skinnende små ting.
- Et LED-matrix display? -> For kompliceret, og jeg bruger den ikke (i øjeblikket)
- X-Mas Lighting? -> Det passer til sæsonen, men det ville være billigere at købe en:-P
- et ur? -> Hvorfor ikke! Men det skal være stilfuldt og utraditionelt
Så lad os lave et vægur.
Hvis vi kigger nærmere på vores armbåndsur (hvis du har en analog som mig) vil vi bemærke, at vi har 12 timer og 60 minutter (forhåbentlig). Det vil betyde, at vi har brug for 60 adresserbare lysdioder, phu! Hvis vi tager en stribe med 60 lysdioder / meter får vi en diameter på ~ 318 mm (radius = omfang / (2*Π)) det er helt sikkert for stor.
Sandheden er, at hvis du spørger nogen om tiden, vil ingen sige, at klokken er 2 minutter over 3! Du får "Det er 5 over 3" som et svar. Så hvorfor skulle vi ikke skalere alt ned til 5 minutters trin? Til det har vi kun brug for 12 lysdioder, hvilket betyder, at vi får en diameter på 63,6 mm. Vi er også i stand til at differentiere timer og minutter ved at give dem en separat farve. Vi vil også være i stand til at give de "manglende" trin på et minuts minut med en ekstra strimmel med 4 lysdioder (eller en enkelt adresserbar LED.
DET ER PLANEN! Lad os se, hvordan jeg gjorde alt. Som altid vil jeg give en liste/materialeliste og instruktioner om, hvordan man bygger det.
Hvis du tror, at kun schweizere kan lave fede ure, lad os bevise, at du tager fejl (undskyld Schweiz:-P)
Trin 1: Design og valg af materialer
Design:
Hvis vi kigger nærmere på vores analoge ur/ur igen, ser vi, at cirklen er opdelt i 12 * 30 ° trin, vi kender, at vi har brug for 63,6 mm til LED-stripen. Så det burde være muligt at justere strimlen rundt om et rør på en eller anden måde. Jeg besluttede mig for at bruge akrylglas, fordi det ser godt ud, og det er muligt at indkapsle LED -lyset i det, og ved hver fejl i glasset vil der ske lidt lysspredning. Så lad os sige: flere urenheder vil føre til mere lysspredning! Det er præcis det, vi ønsker. Så tag gerne fat i dine graveringsværktøjer og vær kreativ:-)
Hvis du refererer til min BoM-liste og det navn, jeg gav til uret, har jeg valgt et sollignende design. Jeg fik alle akryldelene fra en tysk sælger på E-Bay (linket findes i BoM). For mit design du får brug for:
- akrylslibeplade, gennemsigtig tykkelse = 6 mm, diameter = 300 mm
- akryl midterplade, gennemsigtig tykkelse = 3 mm, diameter = 150 mm
- akryl frontplade, satin, tykkelse = 3 mm, diameter = 90 mm
- akrylrør, gennemsigtigt, ydre diameter = 64 mm (vil betyde, at vi skal finjustere lidt med LED -strimlen)
- akrylstang, gennemsigtig, diameter = 5 mm (dette vil være vores bjælker); Der er også akrylstænger rundt med bobler indeni, jeg anbefaler dem, men jeg har dem ikke rundt.
- akryllim
Elektronik (se Fritzing-filerne):
- Arduino mini (eller lignende)
- 1 adresserbar LED -strip (12 lysdioder i timer og 5 min. Trin)
- 4 adresserbare lysdioder (enkelt minutter)
- 2 330 Ohm modstande
- 1 1000µF kondensator
- 1 strømforsyning (5V/500mA)
- en RTC DS-1307 (valgfri!)
- Bluetooth -modul (valgfrit! Ja, du kan indstille tiden via BT og en Android -smartphone)
Hvis du spørger dig selv, hvorfor jeg har MAX485 chips på min BoM. Svaret er, at jeg vil synkronisere uret med hjemmeautomatiseringssystemet, jeg er ved at lave (aldrig nogensinde skal indstille et ur til sommertid igen:-P). Det vil jeg beskrive i min blog i det næste par uger/måned.
Som du har bemærket, vil jeg også prøve at få uret fra nettet med nogle solpaneler og en LiPo, men det dækker jeg ikke over i denne Instructable, prøv det gerne selv.
Trin 2: Forbered akryldelene
Værktøjerne:
Først og fremmest er det virkelig nyttigt, hvis du udskriver DWG -planen, jeg tilføjede i skala 1: 1. Dette hjælper dig med at justere alle delene og vil tjene dig som en boreplan. Yderligere skal du bruge:
- hobbyknife
- geringsmåler
- hacksav
- klemmer
- håndbor
- kan bore, diameter 65 mm
- et sæt metalbor
- en lille metalfil
- akryllim
Lad os begynde:
Tag grundpladen og juster den på planen, så du kan få midten af cirklen. Tag nu din håndboremaskine med dåseboret på den og bor (meget langsomt! Ikke for meget tryk!) Et hul i midten af jordpladen, den ydre cirkel skal være ~ 2-3 mm dyb. Dette er for at synke LED -strimlen i jordpladen (LED -strimmel ~ 10 mm bred, stråler kun 5 mm i diameter) og til at justere dem med bjælkerne (se billede 1).
Nu har vi brug for hacksav, geringsmåleren og akrylrøret. Skær det bare i stykker, jeg besluttede at lave huset (røret) 40 mm langt (billede 2). Tag nu fat i hacksaven igen og lav lidt rabbet på den ene side af røret, gør det glat med metalfilen. Det er her, ledningerne kommer ud;-) (se billede 3)
Tid til lidt lim … Tag den midterste plade (d = 150 mm) og frontpladen (den satinerede). Juster dem på planen igen, kom lidt lim på midten af den midterste plade, juster frontpladen og vent, indtil lim er lidt hærdet. Limen, jeg brugte, er let hærdende, og den kan tage op til 2-3 timer, så du vil gerne bruge en klemme … (billede 3 og 4)
Gør det samme for at lime røret på jordpladen, sørg for at rabbet vender mod pladen og er placeret et sted, hvor du vil have den første LED (12).
Vent til det er hærdet!
Vi kan nu justere de 2 dele (bookmatchet) på planen og bore vores 4 huller på et minut (5 mm i diameter eller diameteren på den LED, du har valgt; bor den langsomt med ikke for meget tryk). Bor cirka 8-9 mm dybt. Vær forsigtig, den satinerede plade er meget sprød og kan bremse, hvis du borer til dybt. Du kan nu lime dem sammen, eller du beslutter, ligesom jeg, at skære en trussel ind i jordpladen og fastgøre den med en skrue.
Igen, vent til lim er hærdet. Juster nu og lim bjælkerne på jordpladen. (billede 6) Gæt hvad … vent til limen er hærdet:-) Lad os gå videre til elektronikken …
Trin 3: Elektronik
Værktøjerne:
- loddekolbe
- loddetråd
- hobbykniv
- et lille stykke prototype PCB
- emaljeret tråd eller enhver anden tråd, du foretrækker
- varm lim
Jeg strated med de enkelte lysdioder. Hvis du bruger emaljeret tråd, skal du ikke glemme at skrabe af lakken inden lodning. Du kan bruge en hobbykniv til det. Tråd dem op, du kan henvise til billedet med pinout på flikto.de. Bemærk, at DOUT går til DIN på den næste LED! (se billede 2) Derefter kan du skære LED -strimlen i 4 elementer hver med 3 lysdioder. Husk, vi har 63,6 mm LED Strip og 64 mm ydre diameter på røret, så vi har brug for en ekstra "længde for at justere det præcist til bjælkerne. Tråd det op med emaljeret tråd som på billede 4. Jeg lavede en lille proto PCB, som vil tjene som en "power sele" og vil indeholde komponenterne til LED Strips (de to 330Ohm modstande og 1000µF kondensatoren, billede 7). Se Fritzing Image for at se det.
Monter nu strimlen rundt om røret, tilpas lysdioderne til bjælkerne. Den første Pixel matcher klokken 12. Hvis du har vendt din bolig om, skal du ikke glemme, at alt er spejlet. Fortsæt mod uret! Brug lidt varm lim til at fastgøre det til røret. Et lille fald for hvert segment vil gøre det!
Du kan gøre det samme for de enkelte lysdioder (til sidst spejlet), bare tilføj lidt varm lim og tryk dem ind i de forborede huller.
Lad ikke Arduino koble endnu, vi vil bruge hardware-serien til BT-forbindelsen, så tjek først de næste trin, hvor jeg beskriver softwaren.
Trin 4: Kode
Du kan nu indlæse skitsen til Arduino. Du kan også koble LED -strimlerne nu. Tilslut ikke BT -modulet !!! Vi vil først se på koden, du bør vide, hvor du kan justere flere ting …
Download Arduino IDE og bibliotekerne. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC
Installer IDE og sæt bibliotekerne i biblioteksmappen. Åbn den vedhæftede INO-fil, og upload den til din arduino. Koden beskrevet her er den samme, men med yderligere kommentarer! Hvis du har gjort alt rigtigt, kan du nu se "bootanimationen". Det er muligt at indstille tiden over seriemonitoren. Skriv bare @"time"/"min"/"sek" f.eks. @10/33/00 (10:33).
Spil gerne med koden … Her giver jeg dig en kort beskrivelse af koden (opsætning uden RTC!)
DEFINITIONER:
#define PIN 6 // Time LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Antal pixel i timen #Definer MINNUMPIXEL 4 // Antal pixel for et minut #Definer BAUDRATE 115200 // Baudrate, skal matche baudrate for BT Module #define utch '@' // start BYTE af TimeSync
int timeset = 0; // flag til at gemme, hvis tiden blev indstillet efter bootint delayval = 20; // forsinkelse for fading animation int clocktimer = 10000; // time refresh int timebright = 250; // timers lysstyrke Strip int mtimebright = 50; // lysstyrke af singelminint initialiser = 0; // flag for at kalde clearpixels -funktionen efter bootint ahour; int oldahour = 0; // butik forrige timeint aminute; int oldamin = 0; // gemmer det foregående minut til opdatering som sekund; int aday; int amonth; int år; int mmin; tmElements_t tm;
// Opsætning til de 2 NeoPixel LED -arrays (NAVN = TYPE (ANTAL PIXELER, HVILKEN PIN, FORMAT RGB ELLER GRB, FREQ); Se Adafruit -guiden for mere information. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB800 + NEO_); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);
OPSÆTNING:
ugyldig opsætning () {
Serial.begin (BAUDRATE); Wire.begin (); // Initialiser strimlerne, alle OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();
// Lav en lille animationSerial.println ("SUNRISE"); solopgang(); forsinkelse (1000); Serial.println ("SOLNEDGANG"); solnedgang(); pixels.show (); Serial.println ("KLAR"); }
LOOP:
void loop () {// check for timesync while (Serial.available ()> 0) {char c = Serial.read (); hvis (c == utch) // hvis der er en @ på linjen, læs de kommende bytes /ints {readtime (); }} // initialiser LED'erne, ryd boot -animation
hvis (initialiser == 0) {clearpixels (); initialisere = 1; }
ahour = time ();
aminute = minut (); hvis (timeset == 1 || timeset == 0) // her kan du kontrollere, om klokkeslættet var indstillet, kan du stoppe programmet her, hvis Timeset = FALSE, bare fjern "|| timeset == 0"!
{
hvis (oldamin <aminute || oldahour indstillet alle til OFF, skal du vise ny tid {clearpixels (); ClockDisplay ();}}}}
Vis uret:
void ClockDisplay () {
oldahour = ahour;
oldamin = aminut; int xhour, xmin;
hvis (ahour> = 12) {xhour = ahour-12; // vi har kun 12 lysdioder til 24 -timers display} else {xhour = ahour; } // skaler den i 5 min. trin xmin = (aminute /5); hvis (oldamin <aminute) {oldamin = aminute; clearpixels (); } // tag resten af divisionen på singelmin LED mmin = (aminute % 5); // modulo operator f.eks. 24 % 5 = 4! meget nyttig: -Pixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // du kan ændre farverne her! spil rundt! pixels.setPixelColor (xhour, pixels. Color (255, 50, 0)); pixels.show ();
// vis singelen min for (int m = 0; m
minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, pixels. Color (255, 255, 0)); minpixels.show (); }} Læs og behandl TIMEinformation fra Serial
ugyldig læsningstid () // hvis vi allerede fik den førende "@" -proces til at behandle de kommende data og gemme tiden for TIME Lib {
ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Serial.print (ahour); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }
Slet alt
void clearpixels () // indstil hver enkelt PIXEL til off for at opdatere displayet {
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.at vise(); } }
Trin 5: Android -appen og BT -forbindelsen
Hvis du havde succes med de foregående trin, kan du nu tilslutte dit BT -modul. (jeg håber du har sørget for, at baudraterne matcher). glem ikke at krydse TX & RX linjer:-)
Download og installer appen, par med din BT -dongle, start appen, opret forbindelse til donglen og synkroniser tiden med din mobil. APP’en gør stort set det samme som vi gjorde før. Det sender bare @hh/mm/ss/dd/mm/ÅÅÅÅ genereret fra dets systemtid. Jeg leverede også APPInventor AIA -filen og en forklaring på det næste trin (for dem, der er interesseret).
Trin 6: APPInventor
APP Inventor er ret let at bruge og umagen værd for et så enkelt program.
Hvis du laver et nyt projekt, finder du dig selv på DESIGNER -skærmen. (billede 1) Det er her, vi tilføjer tabeller, knapper, sensorer og andre elementer til yderligere brug. i vores tilfælde har vi brug for:
- en tabel (for at allignere alle elementer)
- en listevælger (til valg af den BT -enhed, vi forbinder til)
- en knap (for at affyre TIME over BT)
- nogle etiketter (vis den faktiske tid og dato)
- urføleren (opdater tiden)
- Bluetooth -klientsensoren (forbindelse)
Tilføjelse af dem er lige så let som træk og slip! På billede 2 kan du se en oversigt over "APP" på BLOCKS -skærmen. Nå, det er i grunden, hvor al "magi" sker. På toppen lavede jeg nogle variabler til lagring af tid og dato. Den første blok øverst til venstre vil initialisere listevælgerelementet med listen over parrede BT -enheder. Med anden blok beslutter vi hvad vi skal gøre med det tidligere valgte element. Nå, vi vil gerne oprette forbindelse til det.
Hvis du har et nærmere kig på den næste blok, kan du se, at vi genererer BT -meddelelsen, hvis BT -status "er forbundet". Det er det samme, som vi indtastede i SerialMonitor før. Den sidste blok til venstre giver os de førende nuller til at vise tiden (f.eks. 01:08). På højre side kan du finde vores sidste blok, det er her vi bruger urelementet. Her opdaterer vi variablerne og fletter dem med cifreproceduren, dette vil ske hver 1000 ms (standardindstilling, ændre det i designer -tilstand) og vis de opdaterede værdier med etiketten. Det er bare en kort beskrivelse, men APPInventor er virkelig lige så let som det:-) Måske er der nogen i samfundet, der vil skrive en software til iOS eller WindowsPhone. (ville være godt)
Jeg håber du kunne lide min Instructable! God fornøjelse med dit nye vægur! Måske vil du give den til en du holder af (X-Mas sæsonen):-)
Og hvis der er spørgsmål, er du velkommen til at spørge mig!
Med venlig hilsen og god jul.
Anbefalede:
O-R-A RGB Led Matrix Wall Clock and More ** opdateret juli 2019 **: 6 trin (med billeder)
O-R-A RGB Led Matrix vægur og mere ** opdateret juli 2019 **: Hej. Her er jeg med et nyt projekt ved navn O-R-AIt er et RGB LED Matrix vægur, der viser: time: minut temperatur fugtighed aktuelt vejrstilstand ikon Google Kalender begivenheder og 1 times påmindelsesmeddelelser på et bestemt tidspunkt det viser:
Dusty Wall Arduino Animeret LED -lampe med lyseffekt: 11 trin (med billeder)
Dusty Wall Arduino Animeret LED -lampe med lyseffekt: Jeg havde lige en baby, og efter at have lavet sit soveværelse, havde jeg brug for et lys på en væg. Da jeg elsker LED meget, besluttede jeg mig for at skabe noget. Jeg kan også lide fly generelt, så hvorfor ikke lægge et fly fra en tegneserie på væggen, her som det starter, og hvordan jeg gjorde
PCB -design med enkle og lette trin: 30 trin (med billeder)
PCB -design med enkle og lette trin: HELLO VENNER Det er en meget nyttig og let tutorial for dem, der ønsker at lære PCB -design, lad os starte
Kontrollerende LED Matrix Array med Arduino Uno (Arduino Powered Robot Face): 4 trin (med billeder)
Kontrol af LED Matrix Array med Arduino Uno (Arduino Powered Robot Face): Denne instruktør viser, hvordan du styrer en række 8x8 LED -matricer ved hjælp af en Arduino Uno. Denne vejledning kan bruges til at oprette en enkel (og relativt billig skærm) til dine egne projekter. På denne måde kan du vise bogstaver, tal eller brugerdefinerede animationer
Repurposed - Clock Into Kinetic Wall Art: 5 trin (med billeder)
Repurposed - Clock Into Kinetic Wall Art: I denne instruktive konverterer vi et billigt ur til vægkunst med en subtilt skiftende moire -effekt. Jeg forventer, at MoMA ringer til ethvert sekund. I denne video er effekten blevet fremskyndet for klarhed, men den samme effekt kan opnås med en