Sommario:
- Passaggio 1: concetto
- Passaggio 2: parti
- Passaggio 3: assemblaggio delle parti
- Passaggio 4: libreria per Arduino IDE
- Passaggio 5: configurazione della breadboard
- Passaggio 6: codice
- Passaggio 7: demo e conclusione
Video: Orologio: 7 passi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo istruttivo è stato creato in adempimento del requisito del progetto del Makecourse presso la University of South Florida (www.makecourse.com).
Passaggio 1: concetto
Mentre cerco di trovare un'idea per questo progetto, ho deciso di creare qualcosa che sia utilizzabile e che sia utile per la mia vita quotidiana. Non molte cose del genere possono avere un requisito di due gradi di libertà, quindi ho deciso di creare un semplice orologio per soddisfare il requisito e farlo visualizzare sulla mia scrivania per mostrare l'ora. Originariamente l'idea era di realizzare un orologio da polso, ma la parte stampata in 3D sarebbe stata troppo piccola e i motori che azionano l'orologio sarebbero ancora troppo grandi per un orologio da polso.
Da qui questo progetto, ho trovato pezzi di ricambio intorno al mio appartamento e ho deciso di lavorare su questo.
Passaggio 2: parti
- Parti stampate in 3D
- 2 motori passo-passo 28BYJ-48 5V CC
- 2 schede driver motore passo-passo ULN2003
- Arduino Uno
- Modulo Bluetooth HC-05
Tutte queste parti sono fatte da me tranne le lancette dell'orologio. Non sono molto creativo. Di seguito il link al suo creatore.
www.thingiverse.com/thing:1441809
Passaggio 3: assemblaggio delle parti
(1)- Devi mettere Gear_1 e 2 sui motori passo-passo. Saranno una vestibilità aderente, quindi è necessaria un po' di forza per farli rimanere in posizione.
(2)- Base_0 rimarrà nella parte inferiore dell'assieme.
(3)- Base_1 sarà posizionato sopra SpurGear_1, questo è il componente principale per la lancetta dei minuti. Puoi incollare questi due componenti insieme, assicurandoti che la base sia sopra l'ingranaggio.
(4)- Base_2 sarà posizionato sopra SpurGears_2, questo è il componente principale per la lancetta delle ore. Lo stesso vale per questa parte del passaggio (3)
(5)- Le lancette degli orologi possono essere incollate sopra Base_1 e Base_2, oppure puoi praticare un piccolo foro per farle stare in posizione.
(6)- Per far combaciare l'ingranaggio della lancetta dei minuti con l'ingranaggio cilindrico, è necessaria una piattaforma di 1 cm per posizionare l'intero gruppo sopra uno dei motori passo-passo.
La ragione di ciò è perché la base principale non può essere alta poiché l'altro motore passo-passo non sarebbe in grado di raggiungere la marcia alta. In entrambi i casi, è necessaria una piattaforma per uno dei motori passo-passo.
Passaggio 4: libreria per Arduino IDE
Il codice per questo progetto si basa su una libreria di tyhenry chiamata CheapStepper.h
github.com/tyhenry/CheapStepper
Per installare questa libreria per il tuo arduino. Fare clic su clone o scaricare sul collegamento sopra e scaricarlo come file zip.
Nell'IDE Arduino. Schizzo -> Includi libreria -> Aggiungi libreria. ZIP
Di tutta la libreria che funziona, questa utilizzava il motore passo-passo il migliore ed estremamente facile da usare.
Passaggio 5: configurazione della breadboard
Ho usato uno shield Arduino per andare con il mio Arduino UNO. Sembra più pulito, ma puoi prendere una piccola breadboard e posizionarla sopra Arduino UNO. Segui il colore sullo schema poiché alcuni fili sono uno sopra l'altro. I pin 4-7 sono per uno stepper e i pin 8-11 sono per il secondo stepper.
Il modulo Bluetooth deve essere cablato RX -> TX e TX -> RX alla scheda Arduino.
I fili blu sono le connessioni dai Driver all'Arduino UNO
I fili verdi sono le connessioni RX e TX
I fili neri sono a terra.
I fili rossi sono 5V.
Passaggio 6: codice
Di seguito è riportato il codice per questo progetto.
La spiegazione del codice sarà qui.
Stepper economico (8, 9, 10, 11); CheapStepper stepper_2(4, 5, 6, 7);
booleano moveClockwise = true;
///37,5 minuti = 4096;
// 1 minuto = 106,7;
///5 minuti = 533,3;
//15 minuti = 1603;
//30 minuti = 3206;
//60 minuti = 6412;
int pieno = 4096;
int mezzo = pieno/2; //2048
float full_time = 6412; // 1 ora
float half_time = full_time/2; // 30 minuti 3026
float fif_time = half_time/2; // 15 minuti 1603
float one_time = full_time/60; // 1 minuto 106
float five_time = one_time*5; // 5 minuti 534.3
float one_sec = one_time/60; // 1 secondo 1.78
//possiamo fare 30 minuti ciascuno ruotando il motore 3206 e resettando
Questo è il calcolo principale per questo progetto. Lo stepper impiegherebbe 4096 passaggi per ruotare di 360 gradi, ma poiché gli ingranaggi cilindrici sono più grandi degli ingranaggi collegati allo stepper, sono necessari più passaggi per una rotazione completa. Poiché l'ingranaggio cilindrico è il componente principale che fa girare le lancette. Devo fare vari test per assicurarmi che i valori siano corretti.
full_time è la variabile che ho assegnato per una rotazione completa della mano. Questo è abbastanza coerente, ma poiché i passaggi vengono divisi per 2 per ottenere un movimento specifico, il valore float diventa più piccolo, il che ha reso più difficile per il conducente svolgere il proprio lavoro.
Il moveClockwise = true; è quello di far muovere il motore passo-passo in senso orario, ma poiché sta ruotando l'ingranaggio cilindrico in senso antiorario, dobbiamo rendere il valore booleano falso nella configurazione. Puoi anche dichiararlo falso all'inizio, ma questo per spiegare come funziona.
void setup() {Serial.begin(9600);
Serial.println("Pronto per iniziare a muoverti!");
pos = una_volta; del = 900; rapporto = 60;
moveClockwise = false; }
Qui è dove dichiaro false il booleano moveClockwise. pos sarà il numero di passi, del sarà il ritardo e il rapporto sarà per minuto/sec = 60 o ora/min = 12
Controlliamo le mani con il modulo Bluetooth. Innanzitutto, hai bisogno di un terminale Bluetooth seriale dal tuo dispositivo Android. Collegati all'Hc-05 con il PIN 0000 o 1234. Puoi usare un codice di esempio dall'IDE di Arduino per vedere se funziona correttamente. Quando è collegato, dovrebbe lampeggiare molto lentamente anziché rapidamente quando non è collegato.
void loop() {stato = 0;
if(Seriale.disponibile() > 0) {
stato = Serial.read(); }
for (flottante s=0; s<(pos); s++){
stepper.step(moveClockwise); }
for (float s=0; s<(pos/rapporto); s++){
stepper_2.step(moveClockwise); }
ritardo(canc);
Serial.available() > 0 è importante in quanto è come funzionerà il tuo modulo Bluetooth. Questa istruzione if sarà vera quando ci sono comunicazioni tra Arduino e il tuo dispositivo. La variabile di stato determinerà le altre 3 variabili che ho dichiarato in cima a setup(), stamperà anche quale operazione sta eseguendo il codice. Il ciclo due for è la funzione principale che guida il movimento del motore passo-passo.
if (stato == '1') {
pos = una_volta; del = 0; rapporto = 12;
Serial.println("Operazione 1: Nessun ritardo"); }
Questo è un esempio dell'utilizzo dell'input dal dispositivo Bluetooth per modificare il funzionamento del sistema. Puoi modificare queste variabili come preferisci controllare le mani.
Passaggio 7: demo e conclusione
Questa è una demo del sistema, che mostra come funziona. Per la custodia puoi usare qualsiasi cosa che possa contenere tutti i componenti all'interno. Questo progetto è stato semplice e divertente da realizzare in quanto è la prima volta che stampavo in 3D. Il modulo Bluetooth è stato divertente da capire e da usare. Ci sono alcuni errori che ho fatto che era troppo tardi per cambiare, ma il prodotto finale va bene.
Consigliato:
Come creare un orologio analogico e un orologio digitale con una striscia LED usando Arduino: 3 passaggi
Come creare un orologio analogico e un orologio digitale con una striscia LED usando Arduino: oggi realizzeremo un orologio analogico e un orologio Orologio digitale con Led Strip e modulo MAX7219 Dot con Arduino. Correggerà l'ora con il fuso orario locale. L'orologio analogico può utilizzare una striscia LED più lunga, quindi può essere appeso al muro per diventare un'opera d'arte
Orologio per il pensionamento / Orologio con conteggio su/giù: 4 passaggi (con immagini)
Orologio per la pensione / Orologio per conteggio su/giro: avevo alcuni di questi display a matrice di punti a LED 8x8 nel cassetto e stavo pensando a cosa farne. Ispirato da altre istruzioni, ho avuto l'idea di costruire un display per il conto alla rovescia per il conto alla rovescia per una data/ora futura e se il tempo target p
Orologio Vortex: un orologio da polso Infinity Mirror: 10 passaggi (con immagini)
Vortex Watch: un orologio da polso Infinity Mirror: L'obiettivo di questo progetto era creare una versione indossabile di un orologio Infinity Mirror. Utilizza i suoi LED RGB per indicare il tempo assegnando ore, minuti e secondi rispettivamente alle luci rossa, verde e blu e sovrapponendo queste tonalità per
Orologio di rete ESP8266 senza RTC - Nodemcu NTP Clock No RTC - PROGETTO OROLOGIO INTERNET: 4 passaggi
Orologio di rete ESP8266 senza RTC | Nodemcu NTP Clock No RTC | PROGETTO OROLOGIO INTERNET: Nel progetto verrà realizzato un progetto orologio senza RTC, impiegherà tempo da Internet tramite wifi e lo visualizzerà sul display st7735
C51 Orologio elettronico a 4 bit - Orologio in legno: 15 passi (con immagini)
C51 Orologio elettronico a 4 bit - Orologio in legno: ho avuto un po' di tempo libero questo fine settimana, quindi sono andato avanti e ho assemblato questo orologio digitale elettronico fai-da-te a 4 bit da AU $ 2,40 che ho acquistato da AliExpress qualche tempo fa