Etape 11 : Logiciel - microcontrôleur firmware
Bien que le Atmega324p n’est probablement pas le plus employé couramment microcontrôleur (uC), la plus grande partie de ce code fonctionnera très bien sur la plus populaire série atmega168 utilisé sur arduinos. La seule grande modification serait la mise en œuvre d’un logiciel UART pour le port MIDI car la 168 série a seulement un UART. Toutefois, cette fonctionnalité peut facilement être laissée de côté, comme je dois l’avouer, j’ai jamais branché un périphérique directement par l’intermédiaire de MIDI depuis que j’ai fini de tester que cela a fonctionné.Le firmware de l’uC est configuré pour gérer l’entrée du port de MIDI, le port USB, ou les deux en même temps. Commutation entre les modes détermine le routage des messages. En outre, la remarque de maison peut être réglée soit localement ou à distance en utilisant le commutateur de bouton poussoir avant. Quand l’interrupteur est enclenché, la note suivante pressé et relâché sur le clavier définira la première ampoule à cette note. Ce n’est évidemment pas une nécessité, cependant, je trouve que les gens sont un peu moins perplexes quant à ce que les lumières font s’ils voient les ampoules s’allument successivement de gauche à droite. Quand la racine note de la clé de votre jeu en est la première ampoule, les lumières ont tendance à sauter un peu moins erratique, suivant ce que vous jouez bien sûr. La bonne chose est que, puisque cela peut être contrôlée à distance, il est facile de définir la clé de votre morceau afin qu’il met à jour automatiquement chaque fois que vous changez les titres (voir la dernière section sur l’objet max4live utilisant ableton).
Lorsque le mode de l’appareil est sous tension, l’avant led s’allume vers le haut une couleur différente, qui indique si l’utilisateur local a contrôle ou si elle est contrôlée à distance. Cela va dans l’assez inutile mais regarde la catégorie cool.
La majorité des logiciels est configuré pour gérer les messages entrants (midi/usb). Le cristal externe entraîne l’uC à 18.423 MHz, afin d’obtenir l’erreur de 0 % à 115200 bauds. En dehors de la ligne par ligne dans le code il n’y a pas beaucoup plus pour parler en cours, n’hésitez pas à poser toutes vos questions, les codes ci-dessous. Le fichier zip a l’intérêt de l’ensemble du projet le fichier avrstudio (avrstudio5, j’ai récemment mis à jour et converti tous mes vieux projets, vous devriez aussi! son tellement mieux qu’avrstudio4!). J’ai laissé les fichiers UART individuelles car elles sont facilement disponibles ailleurs.
Quelques points utiles lors de l’écriture pour le midi. Vous aurez besoin d’une horloge UART de 31250 baud, ce qui signifie, pour une erreur de 0 %, vous avez besoin d’un cristal avec un multiple entier de celle. Qui fonctionne très bien cependant, étant donné que la construction de 8Mhz fonctionne fine ou 16Mhz, etc.. Toutefois, un problème se pose lors de la combinaison UART MIDI sur la même puce que RS232 UART. Les taux de la vitesse de transmission « standard », 9600, 112500 etc., ne fonctionnent pas bien avec les cristaux de 8Mhz. Donc, ce qu’il faut do...well, il y a deux choix à mon humble avis.
1. Utilisez le cristal intégré ou une fréquence similaire (8Mhz... ou 16 Mhz, 20 Mhz etc.) et utilise les alias de débit en bauds à corriger pour l’usb.
2. accepter l’erreur sur une de vos lignes. Personnellement, je n’aime pas cette option, je sais que beaucoup de gens, tourner les choses à 9600 bauds avec cristaux de 16Mhz, mais je n’aime pas.
Donc, voici un tas de liens d’aliasing, la vitesse de transmission en utilisant le pilote FT232R. Je l’ai fait sur un PC et un MAC, il fonctionne très bien et vous permet d’envoyer des données à bien d’autres taux de transmission plus élevé que RS232 était destiné. Par exemple, au lieu de culminer à 225 kbps, vous pouvez aller tout le chemin jusqu'à 3Mbps (bien que la plupart des atmegas ne peut le faire 2 Mbps).
Comment le faire sur OSX (suivez les étapes avec beaucoup d’attention, cela fonctionne réellement, je vous promets)
Et, sur un PC
Excellent article sur le crénelage le débit en bauds pour l’utilisation de contrôleurs de xbee pour midi (PC uniquement)