Sommario:

TheSUN, orologio da parete di design alimentato da Arduino: 6 passaggi (con immagini)
TheSUN, orologio da parete di design alimentato da Arduino: 6 passaggi (con immagini)

Video: TheSUN, orologio da parete di design alimentato da Arduino: 6 passaggi (con immagini)

Video: TheSUN, orologio da parete di design alimentato da Arduino: 6 passaggi (con immagini)
Video: le istituzioni dormono parte 2 2024, Dicembre
Anonim
TheSUN, orologio da parete di design alimentato da Arduino
TheSUN, orologio da parete di design alimentato da Arduino
TheSUN, orologio da parete di design alimentato da Arduino
TheSUN, orologio da parete di design alimentato da Arduino
TheSUN, orologio da parete di design alimentato da Arduino
TheSUN, orologio da parete di design alimentato da Arduino

Ciao di nuovo Instructables-gente!:-P

A causa di problemi di spedizione non sono stato in grado di continuare il mio progetto ABTW, quindi ho deciso di mostrarvi un'altra, la mia ultima creazione.

Penso che a molti di noi, come me, piacciano quelle belle strisce LED indirizzabili (chiamate anche NEOPIXEL LED). Puoi ottenerli da ADAFRUIT. Altri fornitori forniranno anche prodotti simili. C'è una libreria disponibile su ADAFRUITS - GitHub (cliccami) che include del codice di esempio. Quindi la codifica dovrebbe essere semplice…

Ho visto quei NEOPIXELS un pensiero, che cosa posso fare con quelle piccole cose luccicanti.

  • Un display a matrice di LED? -> Troppo complicato e non lo uso (al momento)
  • Illuminazione di Natale? -> Si adatta alla stagione ma sarebbe più economico comprarne uno:-P
  • un orologio? -> Perché no! Ma dovrebbe essere elegante e non convenzionale

Quindi, facciamo un orologio da parete.

Se diamo un'occhiata da vicino al nostro orologio da polso (se hai un analogico come me) noteremo che abbiamo 12 ore e 60 minuti (si spera). Ciò significa che abbiamo bisogno di 60 LED indirizzabili, phu! Se prendiamo una striscia con 60 LED / metro otterremo un diametro di ~318 mm (raggio = ambito /(2*Π)) che è sicuramente troppo grande.

La verità è che se chiedi a qualcuno l'ora, nessuno ti dirà che sono le 3 e 2 minuti! Otterrai "Sono le 5 e le 3" come risposta. Allora perché non dovremmo ridurre tutto a passi di 5 minuti? Per questo avremo bisogno solo di 12 LED, il che significa che otterremo un diametro di 63,6 mm. Siamo inoltre in grado di differenziare ore e minuti assegnando loro un colore separato. Potremo inoltre fornire ai passi di un minuto "mancanti" una Strip aggiuntiva di 4 LED (o LED singolo indirizzabile.

QUESTO È IL PIANO! Diamo un'occhiata a come ho fatto tutto. Come sempre fornirò una lista/distinta dei materiali e le istruzioni su come costruirlo.

Se pensi che solo gli svizzeri possano fare orologi fantastici, dimostriamo che ti sbagli (scusa Svizzera:-P)

Passaggio 1: progettazione e scelta dei materiali

Design e scelta dei materiali
Design e scelta dei materiali
Design e scelta dei materiali
Design e scelta dei materiali

Design:

Se diamo un'occhiata più da vicino al nostro orologio/orologio analogico, vediamo che il cerchio è diviso in passi di 12 * 30°, sappiamo che abbiamo bisogno di 63,6 mm per la striscia LED. Quindi dovrebbe essere possibile allineare in qualche modo la striscia attorno a un tubo. Ho deciso di usare il vetro acrilico, perché ha un bell'aspetto ed è possibile incapsulare la luce LED in esso e ad ogni difetto nel vetro si verificherà una dispersione della luce. Quindi, diciamo: più impurità porteranno a una maggiore diffusione della luce! Questo è esattamente quello che vogliamo. Quindi sentiti libero di prendere i tuoi strumenti di incisione e sii creativo:-)

Se fai riferimento alla mia lista della distinta base e al nome che ho dato all'orologio, ho scelto un design simile al sole. Ho ricevuto tutte le parti in acrilico da un venditore tedesco su E-Bay (link fornito nella distinta base). Per il mio design avrai bisogno:

  • piastra di fondo acrilica, spessore trasparente = 6mm, diametro = 300mm
  • piastra centrale in acrilico, spessore trasparente = 3 mm, diametro = 150 mm
  • placca frontale in acrilico, satinato, spessore = 3mm, diametro = 90mm
  • tubo acrilico, trasparente, diametro esterno = 64 mm (significa che dobbiamo modificare un po' con la striscia LED)
  • asta in acrilico, trasparente, diametro = 5mm (queste saranno le nostre travi); Ci sono anche aste acriliche in giro con bolle all'interno, le consiglio ma non le ho in giro.
  • colla acrilica

Elettronica (fare riferimento ai file Fritzing):

  • Arduino mini (o simile)
  • 1 Striscia LED indirizzabile (12 LED per passi di un'ora e 5min)
  • 4 LED indirizzabili (singoli minuti)
  • 2 resistori da 330 Ohm
  • 1 condensatore da 1000µF
  • 1 alimentatore (5V/500mA)
  • un RTC DS-1307 (opzionale!)
  • Modulo Bluetooth (opzionale! Sì, è possibile impostare l'ora tramite BT e uno Smartphone Android)

Se ti chiedi perché ho i chip MAX485 sul mio BoM. La risposta è che voglio sincronizzare l'orologio con il sistema di domotica che sto per realizzare (non dovrò mai più impostare un orologio per l'ora legale:-P). Lo descriverò nel mio blog nel prossimo paio di settimane/mese.

Come hai notato, proverò anche a disattivare l'orologio con alcuni pannelli solari e una LiPo, ma non lo tratterò in questo Instructable, sentiti libero di provarlo tu stesso.

Passaggio 2: preparare le parti in acrilico

Prepara le parti in acrilico
Prepara le parti in acrilico
Prepara le parti in acrilico
Prepara le parti in acrilico
Prepara le parti in acrilico
Prepara le parti in acrilico

Gli attrezzi:

Prima di tutto è molto utile stampare il piano DWG che ho aggiunto in scala 1:1. Questo ti aiuterà ad allineare tutte le parti e ti servirà come piano di foratura. Inoltre avrai bisogno di:

  • coltellino
  • calibro per mitra
  • seghetto
  • morsetti
  • trapano a mano
  • può forare, diametro 65mm
  • una serie di trapani in metallo
  • una piccola lima di metallo
  • colla acrilica

Iniziamo:

Prendi la piastra di base e allineala sul piano, in modo da poter ottenere il centro del cerchio. Ora prendi il tuo trapano a mano con il trapano montato su di esso e pratica (molto lentamente! Non troppa pressione!) Un foro al centro della piastra di terra, il cerchio esterno dovrebbe essere profondo ~ 2-3 mm. Questo serve per affondare la striscia LED nella piastra di massa (striscia LED larga ~10 mm, raggi di soli 5 mm di diametro) e per allinearli con i raggi (fare riferimento alla figura 1).

Ora abbiamo bisogno del seghetto, del mitra e del tubo acrilico. Appena tagliato a pezzi ho deciso di fare l'alloggiamento (tubo) lungo 40mm (foto 2). Ora prendi di nuovo il seghetto e fai una piccola battuta su un lato del tubo, liscialo con la lima di metallo. È lì che usciranno i fili;-) (fare riferimento alla figura 3)

Tempo per un po' di colla…Prendete la placca centrale (d=150mm) e la placca frontale (quella satinata).allineateli nuovamente sul piano, mettete un po' di colla al centro della placca centrale, allineate la placca frontale e aspettate che il la colla è leggermente indurita. La colla che ho usato è leggermente indurente e può richiedere fino a 2-3 ore, quindi forse vuoi usare una pinza… (foto 3 e 4)

Fai lo stesso per incollare il tubo sulla piastra a terra, assicurati che la battuta sia rivolta verso la piastra e sia allineata da qualche parte dove vuoi che sia il primo LED (ore 12).

Aspetta che si indurisca!

Ora possiamo allineare le 2 parti (a libro) sul piano e praticare i nostri 4 fori da un minuto (diametro 5 mm o il diametro del LED che hai scelto; fora lentamente senza troppa pressione). Forare a circa 8-9 mm di profondità. Fai attenzione, la piastra satinata è molto fragile e può rompersi se fori a fondo. Ora puoi incollarli insieme o decidere, come me, di tagliare una minaccia nella piastra di terra e fissarla con una vite.

Ancora una volta, aspetta che la colla si sia indurita. Ora allinea e incolla le travi sulla piastra di base. (foto 6) Indovina un po'… aspetta che la colla si indurisca:-) Passiamo all'elettronica…

Passaggio 3: elettronica

Elettronica
Elettronica
Elettronica
Elettronica
Elettronica
Elettronica
Elettronica
Elettronica

Gli attrezzi:

  • saldatore
  • filo di saldatura
  • coltello per hobby
  • un piccolo pezzo di PCB di prototipazione
  • filo smaltato o qualsiasi altro filo che preferisci
  • colla calda

Ho iniziato con i singoli LED. Se usi il filo smaltato non dimenticare di raschiare la vernice prima di saldare. Puoi usare un coltellino per questo. Collegali, puoi fare riferimento all'immagine con il pinout su flikto.de. Nota che DOUT va a DIN sul LED successivo! (vedi foto 2)Dopodiché puoi tagliare la striscia LED in 4 elementi ciascuno con 3 LED. Ricorda, abbiamo una striscia LED da 63,6 mm e un diametro esterno del tubo di 64 mm, quindi abbiamo bisogno di un po' di "lunghezza in più per allinearlo con precisione ai raggi. Collegalo con un filo smaltato come nella foto 4. Ho realizzato un piccolo PCB proto che servirà come "cablaggio di alimentazione" e conterrà i componenti per le strisce LED (i due resistori da 330 Ohm e il condensatore da 1000 µF, immagine 7). Fare riferimento all'immagine di Fritzing per questo.

Ora monta la striscia attorno al tubo, allinea i LED alle travi. Il primo Pixel corrisponde alle ore 12. Se hai cambiato casa, non dimenticare che tutto è speculare. Procedi in senso antiorario! Usa della colla a caldo per attaccarlo al tubo. Una piccola goccia per ogni segmento lo farà!

Puoi fare lo stesso per i singoli LED (eventualmente specchiati), basta aggiungere della colla a caldo e premerli nei fori preforati.

Non collegare ancora Arduino, utilizzeremo l'hardware seriale per la connessione BT, quindi prima controlla i passaggi successivi in cui descrivo il software.

Passaggio 4: codice

Codice
Codice
Codice
Codice

Ora puoi caricare lo schizzo su Arduino. Ora puoi anche cablare le strisce LED. Non collegare il modulo BT!!! Vogliamo prima dare un'occhiata al codice, dovresti sapere dove puoi modificare diverse cose…

Scarica l'IDE Arduino e le librerie. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Installa l'IDE e metti le librerie nella cartella della libreria. Apri il file INO allegato e caricalo sul tuo arduino. Il codice qui descritto è lo stesso ma con commenti aggiuntivi! Se hai fatto tutto bene, ora puoi vedere la "bootanimation". È possibile impostare l'ora tramite il monitor seriale. Basta digitare @"hour"/"min"/"sec" ad es. @10/33/00 (10:33).

Sentiti libero di giocare con il codice… Qui ti darò una breve descrizione del codice (Impostazione senza RTC!)

DEFINIZIONI:

#define PIN 6 //Strip LED ore #define MINPIN 5 //Singelminute LED #define NUMPIXELS 12 //Numero di pixel per ora #define MINNUMPIXELS 4 //Numero di pixel per singolo minuto #define BAUDRATE 115200 //Baudrate, dovrebbe corrispondere il baudrate del modulo BT #define utch '@' //start BYTE di TimeSync

int timeset = 0; //flag per memorizzare se l'ora è stata impostata dopo bootint delayval = 20; //ritardo per l'animazione in dissolvenza int clocktimer = 10000; //time refresh int timebright = 250; //luminosità dell'ora Strip int mtimebright = 50; //luminosità di singelminint initialize = 0; //flag per chiamare la funzione clearpixels dopo bootint ahour; int oldahour = 0; // negozio precedente. un'ora al minuto; int oldam = 0; //memorizza il minuto precedente per refreshint asecond; int al giorno; int amese; int aanno; int mmin;tmElements_t tm;

//Impostazione per i 2 array di LED NeoPixel (NAME = TYPE(NUMBER OF PIXELS, WHICH PIN, FORMAT RGB OR GRB, FREQ); Fare riferimento alla guida Adafruit per ulteriori informazioni. Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);Adafruit_NeoPixel minpixels = Adafruit_NeoPixel(MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

IMPOSTARE:

void setup() {

Serial.begin(BAUDRATE); Wire.begin(); // Inizializza le strisce, tutte OFFpixels.begin(); minpixels.begin(); pixel.mostra(); minpixel.show();

//Fai una piccola animazioneSerial.println("SUNRISE"); Alba(); ritardo(1000); Serial.println("TRAMONTO"); tramonto(); pixel.mostra(); Serial.println("PRONTO"); }

CICLO CONTINUO:

void loop() { // controlla timesync while (Serial.available() >0){ char c = Serial.read(); if(c == utch) //se c'è una @ sulla linea, legge i byte / ints in arrivo { readtime(); } } // inizializza i LED, cancella l'animazione di avvio

if(inizializzare == 0){ clearpixels(); inizializzare = 1; }

ora = ora();

aminuto = minuto(); if(timeset == 1 || timeset == 0) // qui puoi controllare se il Time è stato impostato, puoi fermare il programma qui se Timeset = FALSE, basta rimuovere "|| timeset == 0" !

{

if(oldamin < aminute || oldahour imposta tutto su OFF, visualizza il nuovo orario{ clearpixels(); ClockDisplay(); } } }

Visualizza l'orologio:

void ClockDisplay(){

oldahour = ahour;

oldamin = aminuto; int xora, xmin;

if (ahour >= 12){ xhour = ahour-12; //abbiamo solo 12 LED per la visualizzazione 24h} else { xhour = ahour; } //ridimensionarlo in passi di 5min xmin = (aminute / 5); if(oldamin < aminute){ oldamin = aminute; clearpixel(); } //prendi il resto della divisione dal LED singelmin mmin = (aminute % 5); // operatore modulo es. 24 % 5 = 4! molto utile:-Ppixels.setBrightness(timebright); pixels.setPixelColor(xmin, pixels. Color(5, 125, 255)); // puoi cambiare i colori qui! gioca!pixels.setPixelColor(xhour, pixels. Color(255, 50, 0)); pixel.mostra();

//visualizza il singolo minsfor (int m=0; m

minpixels.setBrightness(mtimebright); minpixels.setPixelColor(m, pixels. Color(255, 255, 0)); minpixel.show(); } }Leggere ed elaborare le informazioni TIME da Serial

void readtime() // se abbiamo già ottenuto il "@" iniziale, elabora i dati in arrivo e memorizza l'ora per 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(un'ora); Serial.print(": "); Serial.println(aminuto); setTime(ahour, aminute, asecond, aday, amonth, ayear); }

Cancella tutto

void clearpixels() // disattiva ogni singolo PIXEL per aggiornare il display{

pixel.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(); minpixel.mostrare(); } }

Passaggio 5: l'APP Android e la connessione BT

L'APP Android e la connessione BT
L'APP Android e la connessione BT
L'APP Android e la connessione BT
L'APP Android e la connessione BT
L'APP Android e la connessione BT
L'APP Android e la connessione BT

Se hai avuto successo con i passaggi precedenti, ora puoi collegare il tuo modulo BT. (spero che tu ti sia assicurato che i baudrate corrispondano). non dimenticare di incrociare le linee TX e RX:-)

Scarica e installa l'app, esegui l'associazione con il tuo dongle BT, avvia l'app, connettiti al dongle e sincronizza l'ora con il tuo cellulare. L'APP sostanzialmente fa lo stesso come abbiamo fatto prima. Invia semplicemente @hh/mm/ss/dd/mm/YYYY generato dal suo systemtime. Ho anche fornito il file AIA di APPInventor e una spiegazione sul passaggio successivo (per coloro che sono interessati).

Passaggio 6: APP Inventor

APP Inventor
APP Inventor
APP Inventor
APP Inventor

APP Inventor è abbastanza facile da usare e vale la pena per un programma così semplice.

Se realizzi un nuovo progetto ti ritroverai nella schermata DESIGNER. (immagine 1) Qui è dove aggiungiamo tabelle, pulsanti, sensori e altri elementi per un ulteriore utilizzo. Nel nostro caso abbiamo bisogno di:

  • una tabella (per allineare tutti gli elementi)
  • un listpicker (per la selezione del dispositivo BT a cui ci colleghiamo)
  • un pulsante (per attivare il TIME su BT)
  • alcune etichette (visualizza l'ora e la data effettive)
  • il sensore dell'orologio (aggiorna l'ora)
  • il sensore client bluetooth (connettività)

Aggiungerli è facile come trascinare e rilasciare! Nella Figura 2 è possibile vedere una panoramica dell'"APP" nella schermata BLOCCHI. Bene, è praticamente lì che accade tutta la "magia". In alto ho creato alcune variabili per memorizzare l'ora e la data. Il primo blocco in alto a sinistra inizializzerà l'elemento listpicker con l'elenco dei dispositivi BT accoppiati. Con il secondo blocco decidiamo cosa fare con l'elemento precedentemente selezionato. Bene, vogliamo connetterci ad esso.

Se osservi da vicino il Blocco successivo, puoi vedere che generiamo, se lo stato BT "è connesso", il messaggio BT. È lo stesso che abbiamo digitato prima nel SerialMonitor. L'ultimo blocco a sinistra ci fornirà gli zeri iniziali per visualizzare l'ora (es. 01:08). Sul lato destro puoi trovare il nostro ultimo blocco, è lì che usiamo l'elemento orologio. Qui aggiorniamo le variabili e le uniamo con la procedura delle cifre, questo accadrà ogni 1000 ms (impostazione predefinita, cambiala in modalità designer) e visualizzare i valori aggiornati con l'etichetta. Questa è solo una breve descrizione, ma APPInventor è davvero così semplice:-) Forse c'è qualcuno nella comunità che vuole scrivere un software per iOS o WindowsPhone. (sarebbe bello)

Spero ti sia piaciuto il mio Instructable! Divertiti con il tuo nuovo orologio da parete! Forse vuoi regalarlo a qualcuno che ami (è la stagione di Natale):-)

E se ci sono domande, non esitate a chiedermele!

Cordiali saluti e Buon Natale.

Consigliato: