Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
¡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
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
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
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
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:
- Establecer la posición de inicio del eje X
- Establecer la posición de inicio del eje Y
- Establecer la posición de parada del eje X
- Establecer la posición de parada del eje Y
- Establecer el intervalo de tiempo
Paso 6: 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!