Tabla de contenido:

Lapso de tiempo controlado por movimiento: 7 pasos (con imágenes)
Lapso de tiempo controlado por movimiento: 7 pasos (con imágenes)

Video: Lapso de tiempo controlado por movimiento: 7 pasos (con imágenes)

Video: Lapso de tiempo controlado por movimiento: 7 pasos (con imágenes)
Video: Velocidad a tramos (interpretación gráfica del movimiento) 2024, Mes de julio
Anonim
Image
Image
El plan
El plan

¡Los timelapses son geniales! Nos ayudan a echar un vistazo al mundo de movimientos lentos que tal vez olvidemos para apreciar su belleza. Pero a veces, un video de lapso de tiempo constante puede ser aburrido o hay tantas cosas sucediendo alrededor que un solo ángulo no es suficiente. ¡Vamos a condimentarlo!

En este Instructable, te mostraré cómo hice un dispositivo que agregará movimiento a tu timelapse. ¡Empecemos!

Paso 1: el plan

Quería que la cámara se moviera en dos direcciones, es decir, en el eje horizontal (X) y vertical (Y). Para eso, necesitaré dos motores.

Deberíamos poder elegir la posición de inicio y parada para ambos ejes.

El movimiento de los motores sería tal que después de cada foto los ejes deberían girar 1 grado.

Para obtener un control tan preciso, utilizaré servomotores.

Además, deberíamos poder establecer el intervalo de tiempo.

Quería que fuera portátil, así que decidí ejecutarlo con una batería LiPo, lo que significa que se requerirá un circuito de carga y refuerzo.

Y por último, el cerebro que controlará todo esto será Arduino. ATMega328p se utilizará como un microcontrolador independiente.

Fui con una cámara GoPro ya que es pequeña y hacer timelapses es fácil. Puedes ir con cualquier otra cámara pequeña o con tu teléfono móvil.

Paso 2: lista de componentes

Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes

1x ATmega328p (con cargador de arranque Arduino)

2x servomotor MG995

1x convertidor de impulso MT3608

1x módulo de carga de batería LiPo TP4056

1x interruptor SPDT

1x cristal de 16 MHz

Condensador 2x 22pF

2x resistencia de 10k

1x potenciómetro (cualquier valor)

1x botón pulsador (normalmente abierto)

Opcional:

impresora 3d

Paso 3: diseño de la PCB

Diseñando la PCB
Diseñando la PCB
Diseñando la PCB
Diseñando la PCB
Diseñando la PCB
Diseñando la PCB

Para hacer el circuito lo más pequeño posible, opté por una placa de circuito impreso. Puede grabar el tablero usted mismo en casa o dejar que los profesionales hagan el trabajo duro por usted y eso es lo que hice.

Cuando todo funciona correctamente en la placa de pruebas, podemos comenzar con el proceso de diseño de PCB. Elegí EasyEDA para diseñar, ya que facilita las cosas a principiantes como yo.

¡Compruebe, compruebe y compruebe! Asegúrate de no perderte nada. Una vez que esté completamente seguro, haga clic en Generar archivo de fabricación para descargar los archivos Gerber o puede solicitarlo directamente a JLCPCB por solo 2 $ usando la opción que se proporciona a continuación.

Una vez que reciba / cree su PCB, es hora de completarlo. Mantenga su diagrama de circuito listo y comience a soldar los componentes según la marca de la serigrafía.

Limpie la PCB después de soldar con alcohol isopropílico para eliminar los residuos de fundente.

Paso 4: unir las cosas

Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas
Poniendo las cosas juntas

No necesitará una impresora 3D elegante. Las piezas se pueden construir muy fácilmente con las herramientas adecuadas. Hace poco compré una impresora 3D y estaba ansioso por usarla en mi proyecto. Encontré algunas de las partes de Thingiverse.

Soporte GoPro:

Cuerno servo:

Suelde los cables al interruptor de encendido, la olla y el botón pulsador con conectores hembra y conéctelos a los conectores macho de la PCB.

Descargue y abra el archivo adjunto en Arduino IDE y cargue el código en su Arduino. Después de cargar el código, retire el IC de la placa Arduino e insértelo en su PCB.

/ * Autor: IndoorGeek YouTube: www.youtube.com/IndoorGeek Gracias por descargar. Espero que les guste el proyecto. * /

#incluir

Servo xServo;

Servo yServo;

int potPin = A0;

int val, xStart, xStop, yStart, yStop; botón int = 2; unsigned long timeInterval;

configuración vacía () {

pinMode (botón, ENTRADA); xServo.attach (3); yServo.attach (4); }

bucle vacío () {

xAxis (); retraso (1000); xStart = val; yAxis (); retraso (1000); yStart = val; xAxis (); retraso (1000); xStop = val; yAxis (); retraso (1000); yStop = val; setTimeInterval (); retraso (1000); timelapseStart (); }

void xAxis () {

while (digitalRead (botón)! = HIGH) {val = analogRead (A0); val = mapa (val, 0, 1023, 0, 180); xServo.write (val); }}

void yAxis () {

while (digitalRead (botón)! = HIGH) {val = analogRead (A0); val = mapa (val, 0, 1023, 0, 180); yServo.write (val); }}

void setTimeInterval () {// Cambia los intervalos de tiempo de acuerdo con la configuración de lapso de tiempo de tu cámara

while (digitalRead (botón)! = HIGH) {val = analogRead (A0); if (val> = 0 && val = 171 && val = 342 && val = 513 && val = 684 && val = 855 && val <1023) {timeInterval = 60000L; }}}

void timelapseStart () {

unsigned long lastMillis = 0; xServo.write (xStart); yServo.write (yStart); while (xStart! = xStop || yStart! = yStop) {if (millis () - lastMillis> timeInterval) {if (xStart xStop) {xServo.write (xStart); lastMillis = millis (); xStart--; } if (yStart xStop) {yServo.write (yStart); lastMillis = millis (); yStart--; }}}}

Paso 5: trabajando

Laboral
Laboral
Laboral
Laboral

Encienda el interruptor principal.

El eje X estará activo. Gire la olla a la posición desde donde desea iniciar el timelapse. Presione el botón Seleccionar para confirmar la posición de inicio. Después de eso, el eje Y estará activo. Haga lo mismo para seleccionar la posición de inicio del eje Y.

Repita el procedimiento anterior para la posición de parada de los ejes X e Y.

Ahora, usando el bote, seleccione el intervalo de tiempo entre cada disparo. La rotación de la olla se divide en 6 partes para intervalos de 1 segundo, 2 segundos, 5 segundos, 10 segundos, 30 segundos y 60 segundos. Puede cambiar los intervalos en la función setTimeInterval () como se muestra en la imagen. Presione el botón de selección Seleccionar para confirmarlo.

Los servos llegarán a su posición inicial y se moverán 1 grado después del intervalo de tiempo.

Secuencia:

  1. Establecer la posición de inicio del eje X
  2. Establecer la posición de inicio del eje Y
  3. Establecer la posición de parada del eje X
  4. Establecer la posición de parada del eje Y
  5. Establecer el intervalo de tiempo

Paso 6: actualizaciones futuras

Actualizaciones futuras
Actualizaciones futuras

1) Actualmente, debido a 1 disparo / grado, la mayor cantidad de fotos que podemos obtener es 180 ya que los servos pueden girar de 0 a 180 grados. Agregar engranajes aumentará la resolución. Así tendremos más disparos y, por tanto, timelapses suaves. Me siento bastante cómodo con la electrónica, pero no tanto con la mecánica. Deseando mejorarlo.

2) El potenciómetro se puede reemplazar por un codificador rotatorio.

3) ¿Control inalámbrico, tal vez?

¡Hay mucho que aprender

Paso 7: ¡Disfruta

Gracias por quedarte hasta el final. Espero que a todos les guste este proyecto y que hayan aprendido algo nuevo hoy. Avísame si haces uno para ti. Suscríbete a mi canal de YouTube para ver más proyectos próximos. ¡Gracias otra vez!

Recomendado: