Sommario:
- Forniture
- Passaggio 1: prototipazione e test del circuito
- Passaggio 2: programma principale
- Passaggio 3: stampa 3D del cubo
- Passaggio 4: assemblaggio
- Passaggio 5: carica e il gioco è fatto
Video: Orologio cubo multifunzione basato sulla posizione: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Progetti Fusion 360 »
Questo è un orologio basato su Arduino dotato di un display OLED che funziona come orologio con la data, come timer per il pisolino e come luce notturna. Le diverse "funzioni" sono controllate da un accelerometro e vengono selezionate ruotando l'orologio a cubo.
Volevo un nuovo orologio da comodino, ma non volevo spendere soldi per un orologio elegante che aveva tonnellate di funzioni che non avrei usato. Inoltre, stavo raccogliendo componenti e sensori che erano in giro, quindi ho deciso di usarli per creare il mio orologio!
Avevo alcuni obiettivi per questo progetto:
- Visualizza quell'ora con un'opzione da disattivare
- Includi una funzione di luce notturna
- Include un timer per un pisolino di 15 minuti con sveglia
- Essere in grado di visualizzare la data
Forniture
- Arduino Pro Mini 5V
- Accelerometro a 3 assi ADXL335
- DS3231 AT24C32 Precisione IIC Orologio in tempo reale
- Mini altoparlante
- Display OLED SSD1306 IIC 0,96 pollici
- Alimentazione 5V CC
- LED x 2
- Resistori 220ohm x 2
- Presa a barilotto CC
- Filo
-
Utensili
- Tagliafili/spelafili
- Saldatore/saldatore
- Stampante 3D (opzionale)
- Programmatore FTDI per interfacciare Pro mini e Arduino IDE
Passaggio 1: prototipazione e test del circuito
Collega i componenti ad Arduino. Il layout o lo schema della breadboard sono mostrati sopra. L'RTC e l'OLED utilizzano il protocollo I2C per interfacciarsi con Arduino e utilizzano i pin A4 e A5. L'accelerometro utilizza 3 pin analogici. Ho usato A0, A1, A2. I LED e Piezo possono utilizzare qualsiasi pin digitale, ho usato rispettivamente 4 e 8.
Interfaccia con ogni componente. Ho dovuto installare alcune librerie Arduino per interfacciarmi con ogni componente. Sono mostrati nell'immagine sopra.
Codice utilizzando l'IDE Arduino. Ho setacciato alcuni schizzi di esempio forniti da ciascuna libreria per capire la sintassi corretta per ogni componente in base a ciò che volevo che facessero. Ho ideato uno schizzo per ogni componente per testarli individualmente. Sono forniti di seguito. Ho iniziato con l'altoparlante piezo perché era il più semplice. In realtà non aveva bisogno di una libreria speciale, solo di una funzione specifica che imposta la frequenza e il suono. Far funzionare i LED richiedeva solo di tirare uno dei pin digitali in alto e in basso. Successivamente, sono passato all'OLED e anche questo è stato abbastanza semplice da configurare. Lo schizzo qui sotto è una demo di Adafruit che passa attraverso tutte le animazioni/testi che possono essere visualizzati. Poi, ho provato a far funzionare l'RTC. Lo schizzo che ho fornito faceva parte di un esempio nella libreria che ottiene l'ora corrente e la stampa sul monitor seriale. Infine, ho usato l'esempio fornito per testare l'accelerometro. Le uscite di ogni asse sono stampate sul monitor seriale.
È ora di mettere tutto insieme!
Passaggio 2: programma principale
Ora che so che tutto funziona individualmente, posso iniziare a creare un programma che riunisca tutto. Discuterò il mio processo per scrivere il programma di seguito, ma sentiti libero di scaricare semplicemente il codice completo di seguito da utilizzare per il tuo progetto. Ho provato a lasciare commenti specifici in modo che tu possa esaminare il codice da solo.
Avevo bisogno di visualizzare l'ora e la data sull'OLED, il che era abbastanza semplice. Ho solo dovuto stampare l'ora corrente sul display anziché sul monitor seriale. C'erano alcune cose di formattazione di cui dovevo tenere conto per far sì che mostrasse un formato di 12 ore anziché 24 e aggiungere/rimuovere gli 0 dove erano appropriati. La data era simile con l'aggiunta della visualizzazione del mese e del giorno all'interno di rettangoli disegnati sullo schermo. Ho usato un ciclo FOR nidificato per creare il timer e attivare il piezo dopo la fine del ciclo. Ho deciso di far lampeggiare lo schermo mentre suonava il cicalino, che era un'animazione di base presa dalla demo di Adafruit. Ho fatto girare il cubo nella posizione dell'orologio l'unico modo per spegnere il cicalino. Infine, volevo un modo per spegnere lo schermo che è stato realizzato semplicemente cancellando il display. Ora, avevo bisogno che tutte queste funzioni funzionassero in base alle uscite dell'accelerometro. Ho usato lo script Accel_Test per determinare le coordinate degli assi di ogni posizione che volevo che ogni funzione eseguisse. Ho spostato manualmente il chip dell'accelerometro e registrato le letture sul monitor seriale. Il diagramma sopra fornisce le coordinate di output di ciascuna posizione in GRIGIO. Le coordinate in ROSSO sono i confini tra ogni posizione e ho usato quei numeri per il mio programma. Nelle 4 posizioni di visualizzazione sono necessarie solo le coordinate degli assi X e Y. La quinta posizione per la luce notturna utilizza l'asse Z. Ho usato semplici istruzioni IF per le posizioni dell'accelerometro prima di ogni blocco funzione. Se utilizzi un accelerometro diverso, queste coordinate possono variare e dovranno essere regolate nel programma.
Passaggio 3: stampa 3D del cubo
Ho pensato che un cubo sarebbe stato il miglior design per adattarsi al modo in cui volevo che funzionasse l'orologio. Ho usato fusion360 per realizzare il modello. Avevo bisogno di un ritaglio per l'OLED e il jack a botte. Volevo anche un facile accesso per sostituire la batteria delle celle nell'RTC dopo che tutto era stato cablato. Avevo bisogno di uno slot per mantenere l'Arduino in un orientamento che sarebbe stato facile riprogrammare se necessario. Inoltre, la custodia doveva essere facilmente rimovibile in modo da poter accedere ad Arduino. Puoi vedere il modello CAD sopra e i file STL sono sotto.
Ho stampato il corpo in PLA nero con riempimento del 20%, risoluzione di 0,2 mm.
La custodia o la custodia è stata stampata in filamento flessibile Solutech con riempimento al 100%, risoluzione di 0,3 mm. Ho usato questo materiale perché ha una certa flessibilità che ha reso facile allungare sul corpo. Ha anche una sensazione più morbida quando si ruota l'orologio. Infine, ho scelto un filamento trasparente in modo che i LED per le luci notturne risplendessero.
Passaggio 4: assemblaggio
Ho collegato tutto insieme usando lo schema del passaggio 1. Ho usato un piccolo pezzo di perfboard per collegare tutti i fili comuni in modo da non dover saldare più fili a un pin su Arduino. La colla a caldo è stata utilizzata per fissare tutto al proprio posto tranne l'Arduino. È stato appena inserito nel suo slot designato. Mi sono assicurato che la scheda dell'accelerometro fosse perpendicolare e livellata sul fondo del corpo in modo che le coordinate nel codice non dovessero essere modificate.
Passaggio 5: carica e il gioco è fatto
Ora il programma finale può essere caricato sull'orologio per impostare l'ora corretta. La batteria delle celle dovrebbe mantenere l'ora anche quando l'alimentazione è scollegata. Fai scorrere la manica stampata in 3D sul corpo per nascondere tutti i componenti e hai un orologio a cubo completo!
Spero che ti diverta a realizzare questo progetto e che lo trovi utile quanto me. La parte bella di questo progetto è che è molto personalizzabile. Sentiti libero di aggiungere le tue diverse funzioni come una funzione di sveglia, usa componenti diversi come un OLED più grande, un ricevitore radio FM, ecc. Buon divertimento!
Consigliato:
Orologio di posizione "Weasley" con 4 lancette: 11 passi (con immagini)
Orologio di posizione "Weasley" a 4 lancette: quindi, con un Raspberry Pi che funzionava da un po', volevo trovare un bel progetto che mi permettesse di sfruttarlo al meglio. Mi sono imbattuto in questo fantastico Instructable Build Your Own Weasley Location Clock di ppeters0502 e ho pensato che
Altimetro (misuratore di altitudine) basato sulla pressione atmosferica: 7 passaggi (con immagini)
Altimetro (misuratore di altitudine) basato sulla pressione atmosferica: [Modifica]; Vedere la versione 2 al passaggio 6 con l'immissione manuale dell'altitudine di base. Questa è la descrizione dell'edificio di un altimetro (misuratore di altitudine) basato su un Arduino Nano e un sensore di pressione atmosferica Bosch BMP180. Il design è semplice ma le misurazioni
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Orologio con animazione LED SMART connesso al Web con pannello di controllo basato sul Web, server dell'ora sincronizzato: 11 passaggi (con immagini)
Orologio con animazione LED SMART connesso al Web con pannello di controllo basato sul Web, server dell'ora sincronizzato: la storia di questo orologio risale a molto tempo fa, più di 30 anni. Mio padre è stato il pioniere di questa idea quando avevo solo 10 anni, molto prima della rivoluzione dei LED, quando i LED erano 1/1000 della luminosità della loro attuale brillantezza accecante. Un vero
Orologio con posizione di qualcuno che mi ama: 6 passaggi (con immagini)
Orologio della posizione di qualcuno che mi ama: con i propri cari all'estero o fuori dallo stato, niente dice che sto pensando a te meglio che sapere sempre che ore sono per loro! I miei suoceri in pensione si stavano preparando per svolgere una missione della chiesa a Berlino, in Germania, e mia moglie ha inventato il g