Skip to content

a way to make a midi controled percusion system with solenoids an servomotors

Notifications You must be signed in to change notification settings

glloq/MidiPercussion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 

Repository files navigation

Note

rien n'est testé, c'est un debut de travail!

MidiPercussion

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

Actionneurs

On va utiliser des solenoides pour toutes actions simple qui n'ont pas besoin d'etre maintenue activé (pour eviter les surchauffes)

Pour toute action qui necessite le maintient d'un changement d'etat, nous utiliserons des servomoteurs (position Hat? + sifflet + maracas ?) => pas aussi rapide que les solenoides et complexifie le code .... <=== a voir !!

Schemas branchement

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... Your image title Your image title

Choix mecanique

Baguettes

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...

Your image title

Partie code

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)
  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.

About

a way to make a midi controled percusion system with solenoids an servomotors

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published