Sommario:

Orologio: 7 passi
Orologio: 7 passi

Video: Orologio: 7 passi

Video: Orologio: 7 passi
Video: Come Collegare Smartwatch al Telefono? | Orologio Intelligente Impostare Ora Y68 D20 2024, Giugno
Anonim
un orologio
un orologio

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

Assemblaggio delle parti
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

Configurazione tagliere
Configurazione tagliere
Configurazione tagliere
Configurazione tagliere

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

Image
Image
Demo e Conclusione
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: