Étape 7: Contrôler tous (.. .avec un Arduino)
* Environnement de génération logiciels et outils : notre environnement de génération est Linux, AVR gcc, libc AVR et marque. Le code est nominalement en C++, mais le code n’utilise pas toutes les fonctionnalités C++ - c’est effectivement C. Nous utilisons le TinyUSB FAI et avrdude pour pousser le binaire compilé dans l’appareil. Note - nous sommes programmeurs embedded firmware depuis le chemin du retour et trouver l’environnement du logiciel Arduino être stupide. Si nous n’utilisons pas elle. Nous aimons le matériel appelé Arduino, mais en réalité, c’est juste un Atmel microcontrôleur sur une planche. Nous n’utilisons pas le chargeur d’amorçage Arduino, les IDE ou les bibliothèques. Si vous aimez ce genre de choses, plus de puissance pour vous, tout ce qui fait le travail fait - pour nous que c’est juste dans la manière.
* Le débogage : L’atmega328p a un seul port série, et utilise le matériel MIDI, donc il ne peut pas être utilisé pour le débogage. Nous aimons une forme quelconque de sortie pour le débogage, alors nous avons ajouté un 16 x 2 LCD au système. C’est un dispositif de type HD44780 générique, et nous avons accroché en mode 4 bit donc il utiliserait un nombre minimal de broches d’e/s. Ajouter le cas échéant code du pilote et que vous pouvez envoyer de printf à l’écran LCD.
* Alimentation d’énergie : Les besoins de l’Arduino + 5V et le besoin de modules LED + 12V. Une solution bon marchée, facile et capable consiste à re-but une alimentation d’un vieux PC. La plupart alimentations de PC ont une multitude de fils venant d’eux. La plupart d'entre elles peut être enlevée. Une chose que vous devez faire attention à est le signal « pouvoir sur ». Il s’agit d’un signal de la carte mère pour le PS qui est utilisé pour des choses comme wake-on-lan. La carte mère terrain pour dire le PS pour mettre en marche. Si elle ne se fonde pas le PS restera éteint - donc nous s’il est échoué pour une alimentation toujours sur.
* Bruit électrique : Les fils pour la matrice de clavier et la module de LED Guirlande sont de 17 pieds de long. Ils fonctionnent à des fréquences dans la basse MHz. Le câble MIDI au piano dans la fosse est à environ 30 pieds de long. Bruit électrique est une source de préoccupation. Une performance théâtrale en direct a radio mics, gradateurs d’éclairage DMX contrôlé et d’autres sources d’interférences électriques. Heureusement, le concept de base n’avait un problème avec le bruit et on n’a pas besoin de faire quelque chose de spécial pour résoudre les problèmes de bruit. Nous a fait commencer avec l’état d’esprit que le bruit pourrait être un problème, et pour cette raison nous limitée des fréquences de circuit et nous ont rendu marge de bruit raisonnable dans la touche de numérisation de circuits.
Ressources :
Grand Piano Firmware.
Regardez main.cpp pour la boucle de haut niveau qui intègre les éléments fonctionnels.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/main.cpp
Regardez les lcd.cpp et lcd.h pour le pilote LCD HD44780.
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/LCD.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/LCD.h