Étape 4: Conception de logiciels
L’objectif pour ce devait avoir le clocher chassé de la PC. De l’Arduino USB -> série link est le moyen idéal de le faire.
L’arduino reçoit des données série du PC qui correspond à quelles notes à jouer. Le protocole est simple ; les notes sont tous dans leurs équivalents de texte ASCII. Il y a également un nombre numérique comme un délai variable.
Par exemple le PC envoie: « cde2fgABC » et l’Arduino joue cloches 1,2,3, repose pour la moitié d’une note et puis joue cloches 4,5,6,7 et 8.
Coup de chapeau à John Plocher pour son projet ServoBells, qui a inspiré en partie ce projet.
Code du côté de l’Arduino :
Le code de l’arduino reçoit les données sérielles, décode qui remarque ou retard à jouer et puis faire basculer les solénoïdes convenablement.
En parlant de cela. S’assurer que votre code est conçu pour que les solénoïdes n’héberge pas!. Si vous laissez un solénoïde sur par erreur, il va fondre. J’ai résolu ceci en faisant mon bloc-notes routines jusqu'à ce que le solénoïde est désactivé, plutôt que de constamment du scrutin, etc..
Code du côté PC :
Le programme client a été écrit en c#. Il a des boutons pour chaque note individuelle, ainsi que des boutons pour les mélodies préprogrammées. Les données de note sont envoyées au port série.
Le code source pour tout ce qui est attaché.
Marge d’amélioration :
- Notes de polyphonie
J’ai laissé la possibilité pour deux notes à jouer en même temps, comme je ne pense pas que les airs capables de s’insérer dans 1 octave nécessiterait leur. En outre tirer plus d’un solénoïde peut
- Tuant la file d’attente
Le PC envoie des grandes phrases de notes vers le bas pour l’arduino, qui les traite ensuite jusqu'à ce que la file d’attente vide. Toutefois, pour grands airs, cela peut être fastidieux et il peut être souhaitable de pouvoir interrompre un morceau en cours d’exécution. Ceci pourrait être accompli par la présence d’une autre lettre dans la phrase de série (p. ex., ' x') comme un code pour vider la mémoire tampon.