C' est certainement un des "projets" les plus aboutis - cependant, vue que tout est virtuel, le projet est loin d' être finalisé... par manque de moyens et de volonté ...

Cela dit, le firmware est déjà pas trop mal ...

Ce que c' est

Grace à une liaison MIDI, le PIC allume/éteint des LEDS suivant l' entrée de notes en MIDI (ici cablée en port série pour la simulation).

exemple : si on appuie sur une touche, une LED s'allume, pour le demi-ton suivant, la led suivante s' allume.Quand on relâche les touches, les LEDs s' éteignent ... : simplissime.Bien sur, si il y a un appuie simultané sur les touches, les LEDS correspondantes restent allumée.

Evidemment, allumer/éteindre des LEDS c' est bien, mais ce n' est pas le but ultime ..

L' idée de départ était de remplacer les leds par des electro-aimants automobiles associé à des transistors (ULN 2803, par exemple ..) pour piloter une orgue fait maison avec des tuyaux en bois (du genre orgue de barbarie DIY en midi ).

On trouve des cartes de ce type beaucoup plus finalisée et testé, par exemple ici.

Fonctionnement

Comme vous le voyez, il y a une entrée série (connectée en port MIDI en vrai ... il n' y a pas de port MIDI sous Proteus ISIS). J' utilise mon logiciel Clavier midi virtuel série développé pour l' occasion afin de pouvoir taper les notes sur mon clavier MIDI. Les notes tapées sont redirigées vers ce logiciel qui redirige les données vers le COM1. Le COM1 est réceptionnées dans ISIS sous COM2 via un cable série virtuel (com0com).

Le tout est Bufferrisé, c' est à dire qu' un interrupt sur le port série mets les valeurs des notes recu dans un tableau, puis un timer traite ces valeurs pour le bit-banging vers les registres à décalages. Ceci est nécessaire, sinon il y aurait des phénomènes 'd' accrochages' : la led correspondant ne s' éteint plus comme il faut si trop de données entrent en même temps..J' ai essayé aussi vite que j' ai pue, aucun problème en simulation de ce côté.

Images