Note
rien n'est testé, c'est un debut de travail! j'aia recupéré une batterie d'occasion pour enfant !! je vais avancer un peu :D
l'objectif est de permettre de jouer de la batteries et autre percussion en utilisant la norme General Midi Drum
nous aurons donc besoin d'actionner differentes percussions :
- Grosse caisse (bass drum)
- Caisse claire (snare drum)
- Tom alto (small tom)
- Tom médium (medium tom)
- Tom basse (floor tom)
- Cymbale charleston (hi-hat)
- Cymbale crash (crash cymbal)
- cloches (cow bell) ?
- shaker/maracas
- guiro ?
- wood block
- triangle?
- sifflet ?
On va utiliser des solenoides pour toutes actions simple qui n'ont pas besoin d'etre maintenue activé (pour eviter les surchauffes) Par securité nous utilserons des protection avec thermocontact bimetal contre chaque solenoide du systeme ( NF, ouverture a 60°) il faudra aussi penser a ajouter des diodes de roues libre sur chaque solenoide pour proteger l'electronique
Pour toute action qui necessite le maintient d'un changement d'etat, nous utiliserons des servomoteurs (position Hat + sifflet + maracas )
Il faut aussi penser a la possibilité d'utililser des moteurs DC ( a faire varier en vitesse et sens ) pour le guiro ou autre
Nous devrons etre capable de faire varier la puissance de frappe de chacune des percussions, il faut donc varier l'alimentation a l'aide de pca9685.
l'idée est de simplement d' atribuer une sortie pour une ou plusieurs note midi,les sorties 0 a 15 seront gerré par le pca1, les sorties 16 a 32 seront géré par le pca2 etc...
il y a plusieurs facons de faire l'assemblage des baguettes mais il y a plusieurs contraintes a respecter :
- temps pour action => le temps/ deplacement necessaire pour actionner la note
- le temps entre 2 actions => temps minimum entre deux actions
- le bruit du solenoide => il faut utiliser un systeme pour amortir le retour de baguette
- il faut permettre une maintenance rapide => reglage de l'angle d'attaque, remplacement pieces ou de baguette, etc...
Un solenoide sera controlé via le pca9685 pour moduler la puissance de frappe en fonction de la velocité de la note midi recue.
Pour permettre une adaptation simple, nous utiliserons une structure pour regroupper toutes les information pour chacune des sorties/note midi.
struc midiNote{
byte midiNumber; // Numéro de note MIDI (0 à 127 pour les percussions)
byte outputPin; // Numéro de pin du PCA9685 pour la sortie
byte pcaAddress; // Adresse I2C du PCA9685 (0x40 par défaut, mais peut changer)
int pwmMin; // Valeur minimale du signal PWM (par exemple, 1000)
int pwmMax; // Valeur max du signal PWM (par exemple, 4000)
unsigned long activeTime; // Temps actif max (en millisecondes) de la sortie lorsqu'elle est activée
}
Avec cette organisation nous pouvons simplement declarer les differentes notes percussion et leurs parametres.
On pourra associer plusieurs numero midi avec une seule sortie/numero outputPin d'un meme pca.