Arduino Magic Clock: 16 pasos (con fotos)

Arduino Magic Clock: 16 pasos (con fotos)

Tabla de contenido:

Anonim

¿Qué pasaría si un reloj pudiera decirte algo más que la hora? En este Instructable, haremos un reloj que, con solo un vistazo, puede decirle a alguien dónde estás y solo para darle sabor a la temperatura de tu entorno. Muy bien, toma tu Arduino y comencemos:)

Cosas que necesitará para este Instructable:

  • Arduino
  • Tablero de circuitos
  • Alambres
  • Madera (Balsa o incluso cartón)
  • Servo
  • Sensor de temperatura
  • Resistencias
  • Pegamento caliente
  • Resplandecer
  • Papel

Suministros:

Paso 1: Diseño de reloj de prototipos

Comience su diseño anotando los lugares donde es más probable que sea durante el día. Estas serán las primeras posiciones en el reloj, luego agregue algunas divertidas para hacer que su reloj sea único. Agregué "Mortal Danger" y "Lost" a mi reloj. Ahora, piense en 5 palabras para describir la temperatura, de súper frío a súper caliente. Usé "congelación", "frío", "justo", "cálido" y "sofocante".

A continuación, comencé a diseñar mi prototipo en Illustrator. Si desea utilizar mi plantilla, no dude en descargar el archivo adjunto. Corté el prototipo de papel con un cuchillo Xacto y tracé el círculo exterior en un pedazo de madera. Mi reloj tendrá un diámetro de alrededor de 12 pulgadas. Si su impresora no puede manejar toda la esfera del reloj de una sola vez, simplemente pegue dos mitades de la imagen y marque las posiciones de los orificios.

Paso 2: Cortar la cara del reloj de pintura

Use una X-acto o una sierra para cortar el perfil exterior de su reloj y una broca de 3/4 "para cortar los agujeros. Luego usé cinta de pintores en la sección de la mitad superior y la pinté con pintura azul. Una vez que estuvo seca Invertí la línea de la cinta y pinté con aerosol la mitad inferior plateada. Mientras todo se está secando, use la cuchilla X-acto para cortar las ubicaciones de posición de su reloj.

Paso 3: Decorar la cara del reloj

Ahora que hemos recortado nuestras posiciones, voltéalos, frótales un poco de pegamento, céntralos en la esfera del reloj y presiónalos hacia abajo.

Puede que me haya gustado un poco esta parte, pero pensé: "¿Sabes lo que haría a este reloj más mágico … relucir?" Así que coloqué gotas de pegamento alrededor de los bordes de las posiciones del reloj y luego esparcí abundantes cantidades de brillo en la parte superior. Una vez que lo sacudes, dejará un bonito borde brillante alrededor de tus letras.

Paso 4: Añadiendo Servo Motor

Necesitaba ajustar el tamaño del orificio en el centro del reloj para acomodar el servo, un taladro y un archivo simplifican el proceso. A continuación, pegamento caliente en el servomotor. Es muy importante mantener el servo a 90 grados hacia la parte frontal para que el mecanismo del reloj no se rasque en la cara del reloj. Sostuve el servo en la posición correcta hasta que el pegamento se secó.

Paso 5: Extensiones LED

Vamos a necesitar extender las patas del LED para que puedan enchufarse fácilmente en nuestra placa de pruebas. Para hacer esto, vamos a retorcer los cables y luego conectarlos eléctricamente con soldadura. Comience pelando ambos extremos de los cables con el pelador universal. Luego, gire los cables para formar un fuerte bloqueo mecánico, debe poder tirar ligeramente de los cables sin que se separen. No dudes en usar pinzas para ayudar a conseguir un par de giros más. Luego usa tu plancha y suelda los cables juntos.

Paso 6: Añadir LED al reloj

Con todos los LEDs soldados podemos agregarlos al reloj de vuelta. Doblé los cables en la base de los 90 grados del LED y, con la pistola de pegamento caliente, los aseguré en el centro de los cinco cortes de temperatura.

Paso 7: cableando la parte 1 del LED

Usando cinta adhesiva doble, sujeté el Arduino y la placa de pruebas en la parte posterior del reloj. Para comenzar a conectar los LED, puse todos los cables de tierra (cables verdes) en la columna negativa de la placa de pruebas. Luego conecté todos los cables de alimentación en orden en el tablero.

Paso 8: cableando la parte 2 del LED

Ahora agregue otro cable de todos los cables LED positivos al Arduino. Usé los pines 4 a 8 para esto, pero, por supuesto, puedes usar los pines que desees.

Paso 9: Cableado Servo Motor

Comience conectando el cable de alimentación del servo en el pin de 5 V del Arduino. Luego conecte el cable negro a GND y el cable de señal (puede ser blanco o naranja dependiendo de su servo) en un pin con capacidad PWM, usé el pin 3. Una vez que tenga su servo enchufado y su LED enchufado, agregue un cable desde el Arduino GND hasta el riel de tierra que utilizan todos los LED.

Paso 10: Agregar sensor de temperatura

Este sensor de temperatura funciona cambiando el voltaje según la temperatura de la habitación, muy similar a la forma en que el sensor de luz cambiaría el voltaje según la cantidad de luz en la habitación. Para cablear el sensor de temperatura, comience colocando un cable desde la pata central, que es la señal, al pin A0. En mi circuito el cable de señal es naranja.

Entonces querrá agregar potencia y tierra al sensor. Esto requerirá una ligera modificación en el circuito del servomotor. En lugar de enchufar la alimentación del servo directamente al pin de 5 V del Arduino, conecte un cable de alimentación de 5 V a la placa de pruebas y luego conecte el sensor de temperatura y el servo en la misma fila. Si su circuito se ve similar al de abajo, está en el camino correcto.

Paso 11: Adjuntar la manecilla del reloj

Ahora que todos los circuitos de este proyecto están listos, hagamos un vistazo al reloj y trabajemos en la cara. Para hacer la manecilla del reloj empecé recortando una manecilla del reloj de un reloj antiguo que encontré. Use sus anteojos de seguridad mientras hace esto solo en caso:) Luego, tome su pistola de pegamento caliente y coloque una capa delgada de pegamento en el accesorio del servomotor, y luego coloque rápidamente la manecilla del reloj.

Paso 12: Codificación Parte 1

Comenzamos nuestra codificación con una inicialización estándar pero ligeramente mayor de los 5 LED, el servo y el sensor de temperatura. Además, creamos variables de posición para la posición del reloj del servo y la variable de temperatura que estoy llamando initialTemp. Tenga en cuenta que esto está etiquetado como un flotador y contiene un número con un punto decimal, esto nos dará más resolución sobre las mediciones de temperatura

#include Servo myservo; int clockPos = 0; int tempSensorPin = A0; const float initialTemp = 20.0; int tempLED1 = 4; int tempLED2 = 5; int tempLED3 = 6; int tempLED4 = 7; int tempLED5 = 8;

Además de la configuración de pinModes, tendremos que adjuntar el servo que conectamos a Arduino a su biblioteca de software. He adjuntado el servo al pin tres, por lo que al usar la función myservo.attach (3), Arduino sabrá qué pin debe ser PWM.

void setup () {Serial.begin (9600); myservo.attach (3);

Paso 13: Codificación Parte 2

Para facilitar el control de la manecilla del reloj, vamos a programar el Arduino para etiquetar las posibles posiciones en el reloj (por ejemplo, trabajar, viajar, etc.) con números del 0 al 6. El comando Serial.parseInt () hace que el trabajo sea corto. Entendiendo los números que estamos enviando al Arduino.Para desencadenar el movimiento real de la mano, verificamos si la tecla enter ha sido presionada, recuerde el " n" invisible que se envía, ahora vamos a verificar el final de nuestro mensaje y si se encuentra, escribiremos un Nueva posición para el servo.

if (Serial.available ()> 0) {int clockPos = Serial.parseInt (); if (Serial.read () == ' n') {myservo.write (clockPos * 25 + ((clockPos + 1) * 3)); retraso (200); }}

La matemática que solía usar para bajar los ángulos de la posición del reloj tomó muchos ajustes, pero se reduce a multiplicar el número que ingresamos (clockPos) por 25 y luego calcular el desplazamiento adecuado para obtener la flecha apuntada cerca del centro de la posición Logo en la esfera del reloj. Para mí, agregué uno y luego lo multipliqué por tres para obtener una buena compensación. Vamos a ver las matemáticas con algunos números reales para mostrarte cómo funciona esto.

Servo Position Math

Usar las posiciones de mi reloj permite asumir que quiero mostrar que estoy "viajando". Esto estaría representado por el número 2, donde 1 era "Peligro mortal" y 0 era "Trabajo".

Entonces nuestro clockPos = 2 por lo tanto:

Ángulo de servo = (2 * 25) + ((2 + 1) * 3)

Ángulo Servo = 59 grados

Para el Arduino, una vez que resuelve los cálculos, la línea de escritura del servo se ve así ahora, que es exactamente lo que queremos.

myservo.write (59);

Paso 14: Codificación Parte 3

En el siguiente bloque de código vamos a regresar al bucle principal y leer analógicamente el sensor de temperatura, un breve retraso asegura que el valor tenga tiempo de asentarse. Luego, para convertir el voltaje que se lee en temperatura, dividimos el número que obtenemos del ADC por el valor máximo de 1024 y multiplicamos por 5V. Esto nos da el valor del sensor de temperatura en voltios. Para obtener grados, restamos por.5 y luego lo multiplicamos por 100. ¡Menos mal! Eso fue complicado pero ya casi terminamos.

int tempVal = analogRead (tempSensorPin); retraso (10); temperatura de flotación = (((tempVal / 1024.0) * 5) -. 5) * 100; Serial.println (temp);

Para terminar de codificar los sensores de temperatura, vamos a crear una caja de interruptores para cada luz LED utilizando el mismo código y las funciones que usamos antes. La única adición que vamos a hacer es mapear la temperatura en la habitación a un número del 0 al 4. Esto nos permitirá usar fácilmente la caja del interruptor para controlar los LED.

int switchcase = map (temp, 12, 28, 0, 4); Serial.println (switchcase);

Paso 15: Cargar código y prueba

¡Uf! Ese fue, con mucho, el código más desafiante que hemos escrito hasta ahora. Ahora vamos a subirlo y probar nuestro reloj.

Paso 16: ¡Disfruta tu nuevo reloj!

¡¡¡¡LO HICISTE!!!! Cuelgue su reloj con orgullo en un lugar que todos puedan ver. No solo terminaste un proyecto increíble, sino que aprendiste mucho.