Tiempo lapso cámara Robot (3 / 3 paso)

Paso 3: código

/ * Prueba 1 de montaje de cámara
utilizar 2 servos,
2 buttens que tienen 2 funciones para aumentar/disminuir el tiempo de
2 botones con funciones individuales para el ajuste de los ángulos verticales
LCD para la visualización de tiempo y ángulo
*/

incluir el código de biblioteca:
#include

#include
#include
#include "RTClib.h"
#include

Servo myservoV; crear objeto servo para controlar un servo
Servo myservoH; crear objeto servo para controlar un servo

inicializar la biblioteca con los números de los pines de interfaz
LiquidCrystal lcd (7, 2, 0, 4, 1, 6);
#define LEDPlataforma 3 / entrada de pin para retroiluminación led
#define LEDUFO 5 / entrada de pin para retroiluminación led

Definir los pines de botón
#define UpBtnbuttonPin A1 / / analógico entrada de pin como una entrada digital
#define DnBtnbuttonPin A2 / / analógico entrada de pin como una entrada digital
#define VerbuttonPin A3 / / analógico entrada de pin como una entrada digital
#define DnVerbuttonPin A4 / / analógico entrada de pin como una entrada digital
#define StartbuttonPin A4 / / analógico entrada de pin como una entrada digital

#define trigger 12 //trigger de cámara parece foco auto
#define foco 9 / enfoque de la camara, desvela entre imágenes y se centra

Variables del contador de tiempo
buttonPushCounter largo sin signo = 0; contador para el número de pulsar un botón
int buttonPushDisplayHr = 0;
int buttonPushDisplayMin = 0;
int buttonPushCounterMin = 0;
UpBtn varables
int UpBtnbuttonState = 0; estado actual del botón de
int UpBtnlastButtonState = 0; estado anterior del botón
DnBtn varables
int DnBtnbuttonState = 0; estado actual del botón de
int DnBtnlastButtonState = 0; estado anterior del botón

variables del botón de inicio
int StartbuttonPushCounter = 0; contador para el número de pulsar un botón
int StartbuttonState = 0; estado actual del botón de
int StartlastButtonState = 0; estado anterior del botón
sin firmar largo Starttime = 0;
int buttonPushCounterStop = 0;
startVal int = 0;

Varables UpVer
int VerbuttonState = 0; estado actual del botón de
int VerlastButtonState = 0; estado anterior del botón
int VerbuttonPushCounter = 0;
int DispAngV = 0;
Float DispAngVa = 0;
Float AngFloat = 0;
Válvula de flotador = 0;

variables de servo
valH int = 0; posición de servo 1 a 180
Válvula de flotador = 0; posición de servo 1 a 180
sin firmar del largo = 0; pausa entre las posiciones
angV int = 0; ángulo para servo vertical
//========================================================
void setup() {}
fijar número la pantalla del LCD de filas y columnas:
LCD.Begin(16,2);
Serial.Begin(9600);

lcd.setCursor (0, 0);
LCD.Print("Time"); Mostrar la temperatura en la pantalla lcd
lcd.setCursor (0, 1);
LCD.Print ("00:00 00");

Clavija de entrada de botón de ajuste
pinMode (UpBtnbuttonPin, entrada);
pinMode (DnBtnbuttonPin, entrada);
pinMode (StartbuttonPin, entrada);

pinMode (LEDPlataforma, entrada);
pinMode (LEDUFO, entrada);

digitalWrite (UpBtnbuttonPin, alto);
digitalWrite (DnBtnbuttonPin, alto);
digitalWrite (StartbuttonPin, alto);

Servos de inicio
myservoV.attach(11); se fija el servo en el pin 9 al objeto servo
myservoH.attach(10); se fija el servo en el pin 9 al objeto servo
cero servos para iniciar
myservoV.write(95);
myservoH.write(90);

StartbuttonPushCounter = 0;

cosas de la cámara
pinMode (trigger, salida); configurar el pin trger a relé de arranque
digitalWrite (gatillo, LOW); configurar el relé disparador de
pinMode (enfoque, salida); configurar el pin trger a relé de arranque
digitalWrite (focus, LOW); configurar el relé disparador de
}

//========================================================================== LOOP

void loop() {}

digitalWrite (LEDUFO, 255);

Compruebe el botón Inicio---botón Inicio

para la próxima vez a través del lazo
StartlastButtonState = StartbuttonState;
leer la entrada pulsador de pin:
StartbuttonState = digitalRead(StartbuttonPin);
Comparar la buttonState a su estado anterior
Si (StartbuttonState! = StartlastButtonState) {}
Si el estado ha cambiado, incrementar el contador
//
Si (StartbuttonState == HIGH) {}
Si el estado actual es alto y luego el botón
WEND de off a on:
Si (StartbuttonPushCounter < 2) {}
StartbuttonPushCounter ++;
StartTime = millis(); que complicado pero funciona mejor

}
}
}

leer la entrada pulsador de pin:
UpBtnbuttonState = digitalRead(UpBtnbuttonPin);

Comparar la buttonState a su estado anterior---botón
Si (UpBtnbuttonState! = UpBtnlastButtonState) {}
Si el estado ha cambiado, incrementar el contador
Si (UpBtnbuttonState == HIGH) {}
Si (buttonPushCounter < = 40)
Si (startVal > 2)
Si (StartbuttonPushCounter! = 2) {}
buttonPushCounter = buttonPushCounter + 2;
}
}
}

Compruebe abajo botón---botón de abajo
para la próxima vez a través del lazo
DnBtnlastButtonState = DnBtnbuttonState;
leer la entrada pulsador de pin:
DnBtnbuttonState = digitalRead(DnBtnbuttonPin);
Comparar la buttonState a su estado anterior
Si (DnBtnbuttonState! = DnBtnlastButtonState) {}
Si el estado ha cambiado, incrementar el contador
Si (DnBtnbuttonState == HIGH) {}
Si el estado actual es alto y luego el botón
WEND de off a on:

Si (buttonPushCounter > = 1) {}
Si (startVal = 0)
Si (StartbuttonPushCounter! = 2) {}
buttonPushCounter = buttonPushCounter - 2;
}
}
}
}

BUTTENS PARA EL ÁNGULO VERTICAL---VER ANG BOTÓN
leer la entrada pulsador de pin:
VerbuttonState = digitalRead(VerbuttonPin);

Comparar la buttonState a su estado anterior---SERVO hasta
Si (VerbuttonState! = VerlastButtonState) {}
Si el estado ha cambiado, incrementar el contador
Si (VerbuttonState == HIGH) {}
Si (buttonPushCounter < = 40)
Si (startVal > 2)
Si (VerbuttonPushCounter! = 4) {}
VerbuttonPushCounter = VerbuttonPushCounter + 1;
DispAngV = (VerbuttonPushCounter - 1) * 30;
lcd.setCursor (14, 1);
LCD.Print (DispAngV);
}
Else {}
VerbuttonPushCounter = 1;
DispAngV = (VerbuttonPushCounter - 1) * 30;
lcd.setCursor (14, 1);
LCD.Print (DispAngV);
}
}
}

Fije el botón de inicio a partir de valor de 1------Inicio acciones de bnt
Si (StartbuttonPushCounter! = 2) {}
(StartbuttonPushCounter = StartbuttonPushCounter);
}

Else {}
(StartbuttonPushCounter = 5)
calcular demoras para el lazo de servo horzontal
del = 200;
del = buttonPushCounter * 1500;
calcular ángulo por pix para servo vertical
angV = 1; comienzo a 60 grados ir a 0
iniciar bucle de servo
servo();
startVal ++;
StartbuttonPushCounter = 2;

}

//---------------------------------------------------------

guardar Estados de botón
UpBtnlastButtonState = UpBtnbuttonState;
DnBtnlastButtonState = DnBtnbuttonState;
StartlastButtonState = StartbuttonState;
VerlastButtonState = VerbuttonState;

Mostrar tiempo de visualización de la hora---
buttonPushDisplayHr = (buttonPushCounter) / 4;

buttonPushCounterMin = buttonPushCounter - (buttonPushDisplayHr * 4);
buttonPushDisplayMin = buttonPushCounterMin * 15;

calcular el ángulo vertical---

DispAngVa = VerbuttonPushCounter -1;
AngFloat = DispAngVa / 2;

sesión de truble === disparar problemas

Serial.println(startTime);

lcd.setCursor (13, 1);
LCD.Print (StartbuttonPushCounter);
lcd.setCursor (9, 1);
LCD.Print (Starttime);

--ir a servo después start btn---ir a servo
Si (StartbuttonPushCounter! = 1) {}
lcd.setCursor (0, 0);
LCD.Print ("corriendo");
servo();
}
Else {}
Mostrar cuántos minutos
lcd.setCursor (3, 1);
LCD.Print (buttonPushDisplayMin);

Mostrar cómo muchas horas
Si (buttonPushDisplayHr < 10) {}
lcd.setCursor (1, 1);
LCD.Print (buttonPushDisplayHr);
lcd.setCursor (0, 1);
LCD.Print ("0");
}
Else {}
lcd.setCursor (0, 1);
LCD.Print (buttonPushCounter);
}
Mostrar el separador
lcd.setCursor (2, 1);
LCD.Print (":");

Mostrar cuentas
lcd.setCursor (11, 0);
LCD.Print ("ángulo");

}

}

final del bucle === bucle termina

lazo de servo---lazo de SERVO

void servo() / / movimientos de servo
{
mover el servo a la posición siguiente
Si (valH > = 174) {}
lcd.setCursor (0, 1);
LCD.Print ("todo hecho");}
Else {}

Si (valH < 3) {}
valV = 90 - DispAngV;
}
valH valH = 3;
valV valV = AngFloat;

Val = mapa (val, 50, 300, 0, 179); la escala a utilizar con el servo (valor entre 0 y 180)
myservoH.write(valH); ajusta la posición del servo según el valor de escala
myservoV.write(valV); ajusta la posición del servo según el valor de escala

disparador de la cámara---cosas de la camara
digitalWrite (focus, HIGH);
retrasar (1000);
digitalWrite (focus, LOW);
digitalWrite (gatillo, HIGH);
retrasar (1000);
digitalWrite (gatillo, LOW);

demora hasta el momento para la siguiente posición, utilizando tiempos de reloj sería mejor
necesito 10 dels porque arduino es estropear los grandes números incluso con una variable larga unsinged
Delay(del);
lcd.setCursor (6, 1);
LCD.Print (válvula);
}
}

Artículos Relacionados

Tiempo lapso fotografía con RPI y cámara Pi

Tiempo lapso fotografía con RPI y cámara Pi

Hey chicos, ¿cómo estás?. Este fin de semana es especial como el nuevo 3 RPI se libera con más capacidades de procesamiento de energía y para conocerla hay habilidades es nada bueno como pruebas de un proyecto real en él.Soy un fotógrafo amateur y pa
Tiempo lapso intervalómetro para cámaras SLR con temporizador 555 IC

Tiempo lapso intervalómetro para cámaras SLR con temporizador 555 IC

este instructable comenzó con mi hack cámara anterior hacer un disparador remoto. Encontré un tutorial de Temporizador 555 y se dio cuenta de cuán grande sería para automatizar mis fotos y hacer alguna fotografía de lapso de tiempo. Yo no soy demasia
Lapso de tiempo para cámara

Lapso de tiempo para cámara

Me pidieron hacer un dispositivo de lapso de tiempo para una cámara de Sony que tiene un mando a distancia IR.Clasificación de los códigos de IR hubiera sido mucho tiempo si no había hallado esta excelente biblioteca Sebastian Setz.http://Sebastian.S
Tiempo lapso intervalometro para Canon cámaras (no calculadora de programación o gráfica necesitada)

Tiempo lapso intervalometro para Canon cámaras (no calculadora de programación o gráfica necesitada)

esto detalles de cómo hacer tu propio intervalómetro (control de obturador de lapso de tiempo) para una réflex digital de Canon o cualquier cámara que se puede controlar con un enchufe estándar de 2,5 mm. Felizmente le dará un lapso de tiempo variabl
TIC! Un botón tiempo lapso temporizador de cámara

TIC! Un botón tiempo lapso temporizador de cámara

este proyecto es un temporizador de la cámara Time lapse de un botón inicialmente desarrollado para mi Canon 400D Cámara Digital SLR, pero debería funcionar con otras cámaras.Usted puede comprar un interruptor remoto para la Canon 400D, pero cuesta m
Temporizador tiempo lapso panorámica para GoPro o pequeña cámara dispositivo de aspersión

Temporizador tiempo lapso panorámica para GoPro o pequeña cámara dispositivo de aspersión

si te gusta la fotografía, lapso de tiempo, o las cámaras GoPro, entonces has visto un montón de hacks barridos basada en temporizador de huevo.  También flotando alrededor de las interwebs, pero no como un lugar destacado, son dispositivos similares
Tiempo lapso Rover V2.0 para eMotimo TB3

Tiempo lapso Rover V2.0 para eMotimo TB3

Uno de mis favoritos proyectos DIY construía a un rover de lapso de tiempo para el eMotimo TB3. Al tiempo, era único en el hecho de que nadie tenía uno, menos de lo que he podido encontrar en internet. En lugar de estar limitado a una longitud fija d
Actobotics tiempo lapso canal deslizador actualización

Actobotics tiempo lapso canal deslizador actualización

El juego deslizante para canal Actobotics es una gran manera de obtener movimiento de lapso de tiempo o video con una pequeña cámara como un una GoPro. Ya que hago fotografía de lapso de tiempo mucho más que la producción de video, quise actualizar e
Frambuesa PI Rotary tiempo lapso Rig.

Frambuesa PI Rotary tiempo lapso Rig.

Es así que este instructable sobre una plataforma de lapso de tiempo. comenzó como una simple idea y luego creció a lo que se ve. Incluso si usted no quiere construir una plataforma de lapso de tiempo alguna de las partes de esta construcción puede s
Cómo tomar tiempo lapso foto (CHDK)

Cómo tomar tiempo lapso foto (CHDK)

en este video te mostraré cómo tomar fotografía de lapso de tiempo de, con una cámara Canon Power Shot usando un script de intervalómetro. Sólo es posible hacerlo después de instalar el hack CHDK en tu cámara. Usted aprenderá cómo descargar el "count
Hack de tiempo lapso

Hack de tiempo lapso

Lapso de tiempo Hack de Dana Freeman on Vimeo.Este es un truco realmente fácil y no requiere herramientas o complejo de configurar. Todo lo que necesitas es un TiltPod y un temporizador de cocina IKEA. Usted simplemente magnéticamente Fije la caja po
Tiempo lapso lote imagen manipulación usando Python

Tiempo lapso lote imagen manipulación usando Python

recientemente encontré una fría aplicación de lapso de tiempo para mi teléfono, pero los archivos necesarios para ser girado y retocado un poco para convertirlos en una película. Escribí un script en Python para hacer eso y comparto con usted aquí.Pa
Actobotics tiempo lapso Cable Cam

Actobotics tiempo lapso Cable Cam

A veces es bueno capturar una secuencia de lapso de tiempo con una distancia más grande que se puede obtener de un deslizador con movimiento. He visto muchas camaras de cable que se utilizan en producción de video y pensé que sería una buena idea par
Controlar su Arduino cámara Robot desde el PC

Controlar su Arduino cámara Robot desde el PC

Basados en un Arduino Robot controlado desde un PC con visual basic y un adaptador Bluetooth.Paso 1: diseño He hecho este robot basado en la popular plataforma con orugas DD1-1. Usted puede Bahía barato en Ebay, o AliExpress.En el tablero poner una s