Paso 2: Software: permite ir a la cabeza de la clase
Como dije en la introducción que utilizan principalmente cuatro piezas de software para ejecutar este proyecto (que son gratuitos) son:
- Mi Arduino UNO programado
- AutoHotKey (Programa de macros de Windows)
- Claves de la AAC (Entrada en serie se convierte en las pulsaciones de teclado)
- VLC (reproducción de vídeo)
También establece el fondo de mi Windows en negro y ocultó la barra de tareas, por lo que muestra cuando el vídeo no se jugaba nada.
Aquí está el código para el script de AutoHotKey:
a::
Ejecutar, c:\Program Files\VideoLAN\VLC\vlc.exe-I rc "VIDEO_FILE_NAME"
Sueño, 61000; Pausa de video jugar, evita el disparo varias veces.
Proceso, estrecha, vlc.exe; Matar a vlc y asegúrese de que se queda muerto.
Volver
Como se puede ver es bastante simple. Cuando se presiona la tecla "a" VLC es lanzada con argumentos para ocultar todo, pero el vídeo en sí. La secuencia de comandos espera la duración del vídeo (61 segundos) luego cierra VLC para reajustar y ejecute de nuevo.
El sketch de Arduino no es mucho más complicado que espera hasta que la fotocélula se activa y envía la tecla "a" a la computadora por USB (que llaves de AAC se convierte en una pulsación de tecla) y esperas durante 61 segundos antes de que se puede producir otra vez.
/*
Teclado serie
Utilizado para enviar las pulsaciones de teclado a un PC con Windows AACKeys.exe que
convierte los datos en serie en las pulsaciones de teclado. Utilizan mejor en conjunción con
AutoHotKey.
Ejemplos y la idea se basan en el trabajo de http://www.arkadian.eu y
información de http://wwww.ladyada.net
2010 TheNewHobbyist < http://www.thenewhobbyist.com>
*/
Inicializar las variables
const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
Programar inpout/salida y poner serial
void setup() {}
pinMode (ledPin, salida);
pinMode (buttonPin, entrada);
Serial.Begin(9600);
}
Loop código principal
void loop() {}
buttonState = digitalRead(buttonPin);
Si (buttonState == HIGH) {}
digitalWrite (ledPin, HIGH);
Serial.Print("a"); enviar la llave a la PC para iniciar la reproducción de vídeo
Delay(61000); ignorar la entrada hasta extremos videos
}
Else {}
Apagar LED:
digitalWrite (ledPin, LOW);
}
}