Étape 4: Programmer le contrôleur
Le contrôle de l’émission de lumière a été fait à l’aide de Python et exécuté sur un modèle de Raspberry Pi B. J’ai inclus un couple des fichiers ici, mais l’ensemble du code source se trouve sur github. Le fichier principal est lightshow.py. C’est où vous définissez jusqu'à les broches que vous utilisez sur le Raspberry Pi, vous devez être sûr et connecter les broches mêmes comme je le faisais ou mise à jour de la présente partie du code. Lightshow.py est également où vous définissez la liste de lecture qui va être exécuté. Je l’ai configuré pour exécuter une séquence simple chase deux fois au début. Ceci est utile pour s’assurer que tout est branché et fonctionne correctement. Puis il s’exécutera chaque morceau dans la playlist. Avant chaque chanson qu'il va donner un indicateur de quel élément numéroté dans la playlist (commençant par 0) qu’il est sur le point d’exécuter par un éclairage vers le haut que le nombre de commence. Si la sélection contient plus de morceaux qu’étoiles l’indicateur va s’enrouler autour de l’autre côté et commencer avec 1 étoile illuminé. Une fois que chaque chanson est fini, il dirige un programme de finale où elle scintille toutes les étoiles pendant 5 secondes et puis les laisse tout illuminé. Il va ensuite à la prochaine chanson.
Les chansons sont programmés à l’aide d’une classe de la chanson qui est définie dans le fichier lightshow_classes.py. La classe Song définit chacune des notes e-f-g-a-b-c-d dans mon cas ainsi que la durée des notes. 1 battement pour une note noire, 1/2 a battu pour une croche, etc.. Si vous souhaitez utiliser plus de 7 étoiles, vous devrez modifier cette section pour faire correspondre les notes supplémentaires.
Chaque chanson a son propre fichier. A titre d’exemple, utilisez Deck_The_Halls.py. Ces fichiers ont été créés en regardant un ensemble de partitions et en ajoutant chaque note et sa durée à la liste Song.notes. Une partie importante de ce fichier est le tempo joue à. Il s’agit d’un argument au constructeur de classe Song (dans l’exemple c’est 140 battements/minute). Celles-ci ont été définies par tâtonnements et à l’aide de ce qui semblait le meilleur look. En théorie, n’importe quelle chanson peut être codée de cette manière et ajoutée à la liste de lecture, même si elle est limitée à un seul éclairage léger à la fois.
Il y a aussi une classe de spectacle qui peut être utilisée pour exécuter des commandes comme tourner un témoin lumineux marche/arrêt, tous les voyants marche/arrêt, jouer une chanson. La combinaison de ces méthodes, c’est comment la fonction chase.py a été créée.
Une fois chargé sur la Pi de la framboise, le programme peut être exécuté par la commande : sudo python lightshow.py
Les relais de faire un « clic audible » lorsqu’elles passent ainsi vous obtiendrez une indication selon laquelle la chanson même si vous ne pouvez pas voir les lumières elles-mêmes.