Etape 2: Logiciel : laisse aller à la tête de la classe
Comme je l’ai dit dans l’introduction, que j’ai utilisé principalement quatre morceaux de logiciels pour exécuter ce projet (qui sont gratuits), ils sont :
- Mon Arduino UNO programmée
- AutoHotKey (Programme de macro de Windows)
- Clés d’AAC (Entrée série se transforme en frappes)
- VLC (lecture vidéo)
Aussi, j’ai mis mon fond de Windows au noir et se cacha la barre des tâches, donc rien ne s’affiche lorsque la vidéo ne jouait pas.
Voici le code pour le script AutoHotKey :
a: :
Exécuter, c:\Program Files\VideoLAN\VLC\vlc.exe-j’ai rc « VIDEO_FILE_NAME »
Sommeil, 61000 ; Pause pour la vidéo à jouer, empêche le déclenchement de plusieurs fois.
Processus, étroite, vlc.exe ; Tuer le vlc et assurez-vous qu’elle reste morte.
Retour
Comme vous pouvez le voir, c’est assez simple. Lorsque vous appuyez sur la touche « a » VLC est lancé avec des arguments pour afficher uniquement la vidéo elle-même. Le script attend pendant la durée de la vidéo (61 secondes) puis il ferme VLC pour réinitialiser et exécutez à nouveau.
L’esquisse de l’Arduino n’est pas beaucoup plus compliqué, qu'il attend jusqu'à ce que la cellule photoélectrique est déclenchée, puis envoie la touche « a » à l’ordinateur via USB (qui clés d’AAC se transforme en une combinaison de touches) et attend pour 61 secondes avant il peut être déclenché à nouveau.
/*
Clavier série
Utilisé pour envoyer des frappes sur un PC Windows exécutant AACKeys.exe qui
transforme les données séries en frappes. Préférable d’utiliser en conjonction avec
AutoHotKey.
Exemples et idée basée sur les travaux de http://www.arkadian.eu et
informations de http://wwww.ladyada.net
2010 TheNewHobbyist < http://www.thenewhobbyist.com>
*/
Initialiser des variables
const int buttonPin = 2 ;
const int ledPin = 13 ;
buttonState int = 0 ;
Définissez inpout/sortie et lancez serial
void setup() {}
pinMode (ledPin, sortie) ;
pinMode (buttonPin, entrée) ;
Serial.Begin(9600) ;
}
Boucle de code principal
void loop() {}
buttonState = digitalRead(buttonPin) ;
Si (buttonState == HIGH) {}
digitalWrite (ledPin, HIGH) ;
Serial.Print("a") ; Envoyer la clef au PC pour démarrer la lecture vidéo
Delay(61000) ; ignorer l’entrée jusqu'à ce que la vidéo se termine
}
else {}
désactiver la LED :
digitalWrite (ledPin, basse) ;
}
}