Lhenndyn — 2010-05-26 20:55:51

Bonjour;

Je cherche un patch qui permette de contrôler des leds par des signaux midi en utilisant pure data et une arduino méga.

Je m'explique : il faudrait tout simplement que lorsqu'une note est déclenché en midi, une leds qui lui est associée s'allume. Et ce pour 48 notes (donc 48 leds)

J'ai déjà la puce Arduino, mais honnêtement je ne suis pas très doué avec Pure Data... je ne sais pas par où prendre la bête.

Si quelqu'un pouvait proposer un patch qui ferait ce travail, ce serait super !

Pour la partie matérielle, j'imagine qu'il faudra des Mosfet pour ouvrir ou fermer une alimentation extérieure pour les leds... il y aurait un ami de l'électronique pour me conseiller sur les composants à acheter et le circuit à construire ?

Merci !!! :)

pob — 2010-05-26 21:54:33

Salut,

Peux-tu préciser le canal MIDI de la harpe (si je me souviens bien) et les valeurs midi des notes des deux extrêmes dans la tessiture.

Tu peux faire simple en utilisant Firmata, quitte ensuite à développer un code plus léger. Mais tu verras ma dernière suggestion... ;)


Il faut initialiser l'arduino pour commencer. Le numéro du port COM sera nécessaire.
Un message [open 4( à l'objet [arduino] pour le port COM4 par exemple.

Là, il faut quelques secondes, donc un [delay 5000] en cascade avec le bang qui déclenche le message précédent. Ensuite il faut mettre les pin digitaux en mode 'OUTPUT', tu peux le faire part port (groupes de 8 pins) à la fois. [port 1 255( relié à l'objet [arduino] par exemple pour les huit premiers (le 1 dans le message, le second chiffre c'est en décimal le nombre binaire 11111111 : 1 pour une sortie / 0 pour une entrée).

Ensuite ton entrée midi se fait avec l'objet [notein] avec en argument le canal MIDI en question.
Derrière il faut sans doute faire un truc moins brutal que de coder 48 fois le même machin ou une abstraction qui détecte un note on et allume la LED et au moment d'un note off l'éteint. Ca aussi relié à l'objet [arduino].
On peut imaginer envoyer à un message [digital $1 $2( le canal de l'arduino après transposition du numéro de note vers la sortie et un second argument qui donne 1 si la valeur dynamique de la note est >0 (midi on) et 0 quand la dynamique revient à 0 (midi off). Il faudra un objet [expr ...] et derrière un [pack i i].

Tu peux peut-être essayer de le coder, tu as les grandes lignes. C'est en faisant qu'on apprends et là comme tu as une motivation tu dois pouvoir le faire sans trop de difficultés. Ca c'était la première suggestion.


Côté électronique, quelle est la consomation des LED et combien penses tu en allumer simultanément ?
Un petit machin, genre 2N2222, sera peut-être suffisant pour allumer une ou deux LED à la fois par corde.
Fais attention à ne pas utiliser les sorties RX et TX qui sont connectées à l'USB, elles serviront pour la commande.

Pour finir, une idée comme ça... Peut-être que Puredata n'est pas nécessaire et que tout ceci peut-être incorporé à un code dans l'arduino lui-même... Si tu dois de toute façon relier la harpe à un ordi, tu peux garder de la puissance pour des choses moins triviales que d’allumer des LEDs, non ? Ca c'est la seconde suggestion une fois que la version pilotée par Puredata est fonctionnelle...

Bon courage et je filerai la main si nécessaire...


Dernièrement j'ai fait un truc du genre, pas complètement réussi dans le mode électronique pure, mais pas loin du résultat. Pas de midi dans mon dispositif, mais des flux audio à redresser. Les lecteurs étaient un peu trop cheap et difficiles à contrôler précisément. Sinon ça marchait.
Finalement j'ai mi un ordi avec puredata pour gérer la lecture audio et les éclairages.
Côté lumière 24m de rubans de LEDs en tout. 3 cadres avec 8 fois 1m dans chacun. Un MOSFET dans chaque boîte à lumière et une commande en PWM pour pouvoir varier l'intensité lumineuse.
L'expo est dans le Tarn : St Juéry (à côté d'Albi) jusqu'à la mi juin, et ensuite dans deux autres musées du Tarn.

Flokon — 2010-05-26 22:38:55

je pense également que puredata n' est pas nécessaire pour ton projet  . Comme tu devras de toute façon faire communiquer la carte ardino avec qqch , pourquoi mettre un ordi entre la carte et ton clavier ? Avec un port UART , c' est un jeu d' enfant de faire du MIDI et tu économiseras un langage de prog  . :)

Lhenndyn — 2010-05-26 23:33:44

Merci pour ces réponses.

En effet, les leds sont une idée secondaire dans le projet, je travaille actuellement essentiellement à la création de la matière pour le vjaying (lui aussi en interaction via le midi, avec un petit logiciel gratuit en développement qui utilise des patch Quartz Composer : CoGe, bien efficace et suffisant pour mes besoin, et surtout évolutif...) de ce côté là tout fonctionne très bien et progresse vite. Mais l'idée des leds dont nous avions parlé au départ me semblerai un bon complément, si je trouve le temps de le faire, et comme je ne suis pas programmeur, sans l'aide de personnes vraiment plus calés que moi c'est peine perdu.

Comme maintenant j'ai la carte arduino... c'est vraiment tentant !

La harpe utilise le canal 1 par défaut, ensuite pour les valeurs des deux extrêmes je ne les ai pas sous la main pour le moment, mais j'imagine que dans tous les cas il suffi de mettre un offset pour retomber sur ses pattes.

Pour ce qui est du déclenchement lui-même, c'est vrai que ce serait plus joli avec un contrôle midi note on/off, mais si c'est compliqué, une durée donnée au déclenchement suffira (demi seconde par exemple...) J'aimerai disposer la chaine de led en demi-cercle au sol autour du harpiste, l'ordre des leds suivant celui des cordes.

Je veux bien passer en dehors de pure data, mais alors c'est encore plus abstrait pour moi ^^ ça m'arrangerai d'autant plus que j'ai déjà le logiciel d'image qui tournera sur la machine... mais alors c'est quoi la procédure ? Il faut écrire dans l'arduino les instructions à suivre ? :o

Je pense mettre des leds blanches avec un angle moyen, dans ce genre :
http://fr.farnell.com/cree/lc513fwh1-60 … dp/1648991

Sur un accord on peut dire qu'il y aura maximum 10 ou 12 leds simultanées je pense. Mais en général, vu que c'est un jeu assez orienté electro, c'est pas mal de note par note.

Je ferais bien un tour dans Tarn voir ton expo ! J'adore la région en plus... mais mon boulot risque de monopoliser le peu de temps qu'il me reste à côté de ce projet (sans parler de mes deux bout de choux qui sont prioritaires sur tout ça ^^) Si tu as des images à montrer, je suis curieux !

pob — 2010-05-27 00:11:49

Oui, c'est bien l'idée, programmer en direct dans Arduino. C'est pas très compliqué, le nombre de fonctions dans le langage est assez limité sans les bibliothèques additionnelles et la fonction à réaliser est assez simple.
Il faut intégrer la librairie midi dans le code.
http://www.arduino.cc/playground/Main/MIDILibrary

C'est pas plus compliqué de faire le note on/note off.

Désolé si je te parle chinois... ;)
Je ne te promets pas de te le faire super rapidement, mais si je trouve un moment et un bout de cerveau disponible je me pencherai dessus. Et si quelqu'un d'autre ne te l'a pas fait d'ici là...


L'angle des LEDs me paraît encore un peu étroit. J'en ai du même genre et c'est quand même pas super large...
Il faut penser à prendre les résistances en fonction de la tension d'alimentation de ces petites choses. 5V ou 12V selon l'alimentation que tu utiliseras.
R = (Valim - Vf)/If
Avec des LEDs un peu puissantes c'est risqué pour ne pas utiliser de transistor... Il me semble tout du moins...


Pour l'expo, je viens de mettre quelques trucs sur mon compte Flickr.
http://www.flickr.com/photos/pob31/sets … 019151117/

Lhenndyn — 2010-05-27 03:06:25

Joli boulot ! Bravo ! C'est vraiment l'avenir de la scénographie...

Pour les leds je vais voir, j'ai regardé vite fait tout à l'heure, et j'ai l'impression que ce n'est pas évident de trouver des leds à grand angle et puissantes à la fois (en luminosité). J'utiliserai bien des petite boites translucides blanches pour faire diffuseur, mais trouver 48 boites comme ça sans me ruiner... faut voir.

Donc si je résume il faut une alim autonome pour le circuit led, une alim pour l'arduino (9v), 48 leds, 48 mosfet, et 48 résistances ? Et pour ce qui est des câbles, du tout petit diamètre devrait suffire non ? ça ne posera pas un problème de résistance justement (celle qui seront aux extrémités seront bien à 2m de l'alim...)

J'ai chargée la librairie, et... héhé, oui c'est un peu difficile pour moi, et encore, par chance je maitrise suffisamment l'anglais pour lire les docs ^^ Mais je doute un peu de m'en sortir seul...

Enfin, je disais pareil pour Quartz et finalement je commence à m'en sortir (mais ça reste dans mon domaine de prédilection, l'image... beaucoup plus accessible pour moi que programmation+électronique) Je vais voir.

Merci pour l'aide !

pob — 2010-05-27 08:15:54

Tu dois pouvoir utiliser la même alim pour les LEDs et l'arduino qui a une plage de tension assez large que pour les LEDs. Du 12V pour tout le monde devrait faire l'affaire.
Autrement il y a sans doute une résistance à mettre entre l'arduino et le transistor pour limiter le courant que l'arduino doit fournir.

Pour apprendre le code arduino en commençant à zéro, ça c'est pas mal :
http://www.ladyada.net/learn/arduino/
Mais il y a peut-être l'équivalent en français.


Pour l'angle des LEDs, il faudrait peut-être mettre un coup d'acétone sur le plastique transparent pour le rendre translucide et mieux répartir la lumière... Une idée à tester.

Pour le fil tu peux mettre un truc super fin, même 2m ça ira largement. Un truc toute fois, si tu veux éviter d'avoir un gros touillon de câble, tu peux déjà utiliser une masse commune. plutôt que de tirer 2 fils pour chaque LED. Mais tu as sans doute pensé à coller tout ce bazar sur un support, non ? Ca va faire des paquets de noeuds. Et en plus les fils ne seront pas fixes sur le bornier de l'arduino. Numérote tout ce petit monde !

pob — 2010-06-02 15:50:44

Salut,

Un début de code...

Il faut la librairie Midi dont je t'ai donné le lien dans le dossier 'library' de ton dossier arduino et que tu câbles un connecteur DIN pour entrer dans l'arduino directement en midi.
http://www.arduino.cc/cgi-bin/yabb2/YaB … 1187962258 (schéma pour l'entrée MIDI sur l'Arduino)
http://www.arduino.cc/playground/Main/I … dware#MIDI (plein de choses)
http://www.arduino.cc/playground/Main/MIDILibrary (à installer)


Je n'ai pas de périphérique MIDI, comme un simple clavier maître, pour le tester. Mais si toi ou d'autres veulent bien y jeter un œil...

oli44 — 2010-06-03 00:12:04

Salut Pob,

tu saurais dire où se fournir en rubans de LEDS?

pob — 2010-06-03 01:20:14

Salut,

J'ai un ami qui me les envoie depuis Shanghai où il vit.
Autrement on peut aussi passer par eBay et tout compte fait, ce n'est pas toujours beaucoup plus cher que de passer par cet ami.

Chercher "LED strip" avec la couleur (de préférence en anglais), le type de LED voir leur densité (150 ou 300)
Il y a différents types :
basse luminosité - type 3528
haute luminosité - type 5050
Ensuite la densité change 30 ou 60 LED au mètre (codé "150" ou "300" LED pour 5m)
Et puis les couleurs voire le RVB pour les 5050.
Et il y a d'autres trucs comme une enveloppe silicone, un enrobage silicone et un adhésif 3M super costaud au dos.
En général l'alimentation est en 12V, je n'ai rien vu d'autre d'ailleurs.

Oli tu en as besoin de beaucoup ?

Lhenndyn — 2010-06-03 03:23:45

Yeah ! Génial ! Merci beaucoup !

Et j'ai plein de nouvelles questions passionnantes (c'est vaguement ironique)

J'ai ajouté la library et uploadé le code dans la carte, pour ça tout est ok...

Pour le moment je n'ai pas de fiche DIN sous la main, je vais en commander une. Je ne suis pas sûr d'avoir bien compris comment relier l'entrée Midi du shéma à l'Arduino. Je pense avoir compris qu'il y avait le +5 et le ground, mais à quoi doit être relié la fiche qui va vers Arduino (avec un cœur ^^) les entrées RX (0), TX (1) ? (et oui, je suis encore perdu!)

Et puis concernant le circuit des leds lui-même, si je comprends bien il faudra trois fils par led ? Un pour le +5 qui rentrera en C dans le transistor et sur lequel se trouvera la led, un pour le GND qui sortira du E du transistor, et un pour la commande qui entrera en B du transistor ? Avec une résistance avant la led et une autre avant l'entre B du transistor. Le mieux est donc de garder tous les transistors groupés près de la carte, et d'envoyer juste les 2 fils d'alim vers la led (C et E). Dis-moi que j'ai suivi, please ^^ Un petit schéma serait super... comme au collège !

Donc ça veut dire que j'aurais tout un tas de fils qui seront raccordés au +5 et GND de l'arduino, et ensuite une myriade d'autre qui partiront de chaque sortie de l'arduino pour les commandes...

Si j'ai à peu près saisi jusque là, je résume mes questions, qui concernent surtout les connexions : sur quelles entrées de l'arduino dois-je raccorder l'entrée midi (du schéma que tu as donné en lien). Et ensuite, quelles sorties de l'arduino dois-je utiliser pour envoyer les 48 signaux on/off vers le entrées B de chaque transistor (il me semble me rappeler que ce sont les PWM 2 à 13, plus les digital 22 à 53, mais j'ai un doute)

Si j'arrive à faire quelque chose qui marche, et je l'espère, tu sera bien sûr crédité au générique du spectacle ! Comme... ingénieur programmeur Arduiniste ^^

pob — 2010-06-03 11:25:15

Salut,

Tu as presque répondu à toutes tes questions tout seul !

Pour l'entrée RX, C'est marqué sur la sérigraphie. ;) Il faut prendre la 0, à côté des PWM.

Ensuite pour les sorties de commande, j'ai utilisé dans ce que je t'ai envoyé les pins de 6 à 13 (chez les PWM), de 14 à 21 (bloc communication) et de 22 à 53 (bloc digital) En gros presque tout le monde. Normalement il est possible de convertir les 'Analog In' en digital, mais là à moins d'avoir besoin de récupérer des entrées ou sorties numériques ou de rajouter des cordes à la harpe, c'est pas nécessaire...

Pour les transistors tu prendras plutôt la masse et le +12V de l'alim qui sert aussi l'arduino. Ca évitera de tirer sur le module de régulation de l'alimentation de ce petit arduino...

Pour l'entrée Midi, l'optocoupleur est lui relié au +5V de l'arduino.

Ci-joint un croquis.
Ce que je n'ai pas représenté c'est la connexion entre l'alimentation et l'arduino. Fais d'abord un test de la connexion Midi, par exemple la sortie 13 (à voir à quelle corde elle correspondra quand tu auras réglé l'offset en modifiant le programme) a une LED connectée sur le circuit imprimé. Ca permet de contrôler.
Ensuite fait un canal de LED avec le transistor et vérifie à nouveau. Et ensuite tu pourras te lancer dans les 47 autres... bon courage ! ;)

http://codelab.fr/up/MidiHarpArduinoLed.gif

Lhenndyn — 2010-06-03 14:29:36

C'est parfait, bon ben j'ai tout saisi cette fois, ça devrait être bon, je passe commande des composants manquants et je teste tout ça (au clavier midi pour commencer, on ne pourra pas re-travailler avec la harpe avant mi-juin)

Et puis après je me mets à la soudure en série... Ok pour les led branchées directement sur l'alim, c'est plus simple en plus... Merci beaucoup pour les schémas !

PS : joli ton lien vers les sténopés, amateur de photos au vieux 6x6 je ne peux qu'apprécier le rendu si particulier de ces clichés... les enfants d'aujourd'hui feront peut-être la même chose dans 20 ans avec des vieux capteurs cmos dans des boites ^^

Lhenndyn — 2010-06-09 05:16:44

Snif, j'y arrive pas...

J'ai monté les deux circuits, tout semble ok, mais il ne se passe rien quand j'essaie de contrôler les leds via le midi (un clavier maitre). Le montage côté leds semble être ok, je l'ai testé avec un simple blink et ça fonctionne bien, le transistor fait son boulot. Pour ce qui est de l'entrée midi par contre, je ne sais pas comment la tester, pour être sûr qu'elle marche (j'ai vérifié le circuit plusieurs fois, et tout semble bon, j'avais un doute au sujet du sens de branchement sur la fiche DIN, mais j'ai trouvé la réponse en parcourant d'autre forum... donc je ne vois pas ce qui n'irait pas...)

Reste le code, peut-être qu'il y a un truc qui ne va pas... je n'ai pas trop compris le rôle de l'offset : il permet de décaler la plage de note, pour la caler sur celle de la harpe, c'est bien ça ? J'ai tenté plusieurs valeur (10, 20, 30), pour essayer de l'aligner sur mon clavier, sans succès... donc je ne pense pas que le problème sois dû à un "hors plage"...
Je n'ai pas non plus saisi exactement à quoi sert le delay...

Bref, je vais essayer de lire un peu plus en détail les doc de la banque midi, mais là, après quelques heures de recherche en vain, je dois dire que je suis un peu fatigué ^^

Si tu as une idée de la source probable du problème...

Merci merci

pob — 2010-06-09 11:58:32

Salut,

Je vais te préparer un truc pour tester l'entrée MIDI.


Je viens de voir que sur mon schéma, la résistance qui va au +5V de l'Arduino n'et pas spécifiée, c'est 3,3kOhm, celle qui est en dessous de 100kOhm.

J'ai trouvé un autre optocouleur dans mes affaires, pas trop différent je crois. Je vais faire le montage et tester avec un contrôleur MIDI que j'ai. C ne sera pas des notes midi, mais je vais faire clignoter un truc ! Tant qu'on peut faire clignoter des trucs, on fait de l'électronique. Je vais voir si les diodes que j'ai ici peuvent faire également l'affaire et les résistances aussi.


Je te tiens au courant de ce que je trouve...

Lhenndyn — 2010-06-09 12:45:14

Ok, pour la résistance de 3,3, j'avais trouvé en recoupant avec d'autre schéma... il y a aussi une liaison de la dernière patte de l'octocoupleur, en bas à droite, vers le ground dans d'autre schéma. Je l'ai relié aussi, mais rien de neuf... dommage.

Suite des recherches...

pob — 2010-06-09 13:09:48

Je vais modifier le patch pour juste travailler sur la LED 13 de la carte.
Toute info midi entrante fera réagir le circuit. Au moins on verra s'il y a bien de l'activité côté MIDI.

Le delay(5) c'est pour ne pas exécuter la boucle trop vite. Il faut peut-être même ralentir encore d'avantage.
Une possibilité c'est que ça aille trop vite pour remplir le buffer de l'entrée Rx si il n'y a pas cette pause dans la boucle. Essaye donc d'enlever les deux slashs pour activer cette pause et fait varier ce temps (en millisecondes) si c'est pas bon avec 5 que j'ai mis un peu au pif. Le MIDI c'est pas très très rapide alors 5ms c'est peut-être trop court aussi.


Désolé pour le croquis un peu incomplet. Effectivement la patte 6 est à la terre.

Lhenndyn — 2010-06-09 13:34:34

Ha tient, peut-être quelques éléments de réponse ici :

http://www.arduino.cc/cgi-bin/yabb2/YaB … 1266552152

Il semblerai que cet octocoupleur pose problème pour certain... Du coup, intéressant que tu le test avec un autre modèle...

pob — 2010-06-09 13:39:17

J'ai un 4N37 sous la main. Sinon je dois pouvoir aussi utiliser un CNX82A, si je ne les ai pas encore tous grillés ceux là ! :)

Enry — 2010-06-09 13:42:00

Sinon y a un pdf qui "traîne" sur le net, 12 pages sur des bases arduino, pas mal fait du tout.
Si je le retrouve je le poste ici.
C'est une présentation très enfantine, mais il y a un exemple de ton projet...

Il y en a un autre http://www.craslab.org/arduino/LivretArduinoFr06.pdf

Lhenndyn — 2010-06-09 14:08:12

Ok, merci pour les liens.

Bon, je pense que l'octocoupleur est en cause... grillé, ou je ne sais pas, mais en tout cas je viens de refaire le circuit vraiment au propre, en remplaçant tous les composants sauf l'octo, et rien ne semble rentrer en Rx. Je vais commander des cny17-4, il semblerai que ça ai fonctionner pour l'autre personne (je n'ai plus de 4n28 de rechange, ça m'apprendra à commander le minimum ^^)

Je me trompe peut-être, mais bon... il y a un moyen de voir si l'octo fonctionne ? Avec un outil simple type multimètre.

On a récupéré la harpe midi hier, du coup ça motive encore plus !

pob — 2010-06-09 14:21:55

Déjà si tu l'appelles pas par son petit nom il va faire la gueule, l'oPtocoupleur. oPto comme "optique", c'est un boîtier fermé avec dedans une LED et un phototransistor ou une cellule type panneau solaire.


Pour le tester, oui, tu fais le même montage que celui que tu as en sortie avec ta LED.
Le brochage du transistor en sortie est donné sur la ficher technique.
http://circuits.datasheetdir.com/142/4N25-pinout.jpg
Pour l'entrée, tu mets un résistance de quelques centaines d'ohm sur la patte1 et sur la 2, la masse. A l'autre bout de la résistance, tu peux mettre un fil et titiller une alim à +5V et si toujours rien +12V.


Je viens de me rendre compte que je n'ai pas d'embase DIN pour tester le montage et que je ne vais pas couper mon pauvre câble Midi tout beau tout neuf. Il faudra que je trouve le temps d'aller en chercher un avant de pouvoir tester. Et là j'ai pas mal de trucs à faire dans la journée. Ce sera au plus tôt demain pour moi.

Lhenndyn — 2010-06-09 14:25:37

Pas de problème, merci en tout cas, je vais essayer de tester l'oPtocoupleur (pardon pour lui).

Lhenndyn — 2010-06-12 17:27:32

Youpi !

J'ai remplacé l'optocoupleur par un CNY17-4, et ça marche ! Ouf, finalement... Pour l'instant j'ai testé sur une seule led, mais si ça marche sur une, pas de raison... et puis je vois un signal sur la led Rx, alors qu'avant non.

Entre temps j'ai trouvé un autre truc sympa sur ma carte arduino : un CI dont 6 pattes sur 8 n'étaient pas soudées... pas mal... je pense que ça faisait quand même contact, mais bon, y'a mieux... donc j'ai corrigé ça aussi.

Nous avons par contre rencontré une autre contrainte, propre à la harpe : comme l'idée est de faire en sorte qu'une corde allume une led, il faudrait qu'une led s'allume pour une note mais aussi ses bémols et ses dièses. En effet la harpe comprend un jeu de pédales qui permettent de passer une même corde en bémols ou en dièses ( par un mécanisme qui tend ou détend la corde ). C'est à dire que contrairement à un piano qui a des touches attitrées pour les demi tons (touche noires) la harpe, elle, donne accès à ces demi tons par l'utilisation des pédales. Or le système développé par Camac pour Midifier la harpe est basé sur une analyse de fréquences, et non un déclencheur (type je fais bouger la corde > une note midi, pour résumer ^^). Du coup, pour qu'une corde déclenche une led, il faudrait dire à l'arduino : pour une note donnée mais aussi ses deux demi tons, tu déclenche une led.

Il y a un moyen de synthétiser cette info ? Ou bien il faut écrire un code qui fait le mapping note par note.

Merci

pob — 2010-06-12 22:32:05

Excellente nouvelle !

Moi aussi j'ai ressorti l'arduino pour faire un contrôleur intégré dans une table lumineuse. Pour le moment je découpe du bois, je visse, je mets dans les inévitables trous du mastic et je ponce. Je vais faire un autre fil de discussion pour ceux que ça intéresse.


Concernant les cordes et les notes...

En Midi l'échelle est en demi-tons, pas en notes d'une gamme. Donc là, ce que j'ai codé, c'est un demi-ton -> 1 LED. Le Midi ne fait pas la différence entre un Do# et un Réb. Mais bon c'est peut-être pas le plus important ici de faire la différence.

En gros dis moi quelle est la tessiture de l'instrument en Midi entre la note la plus grave et la note la plus aigüe. Combien y a-t-il de cordes en tout ?

Bon courage pour la suite !

Lhenndyn — 2010-06-13 02:21:25

Héhé, moi aussi je vais attaquer le bricolage, je vais faire une longue boite en bois pour mettre la rangée de leds, avec un côté ouvert sur lequel je mettrais de la diff, qui prendra la lumière des leds. J'aurais bien aimé faire une série de petites boites blanches, mais je n'ai pas trouvé... et dire qu'il y a quelques temps j'ai jeté un plein carton de boites de pellicules photos, dont certaines blanches translucides. Zut zut... trop tard, ça aurait été parfait.

Pour ce qui est de la harpe : c'est une harpe de concert, elle comprend donc 47 cordes (et non 48 comme je croyais au départ), en tout la tessiture est de 6 Octaves. Sur une harpe double mouvement, du type de celle utilisé par Arnaud, chaque corde peut jouer trois hauteurs : bémol si la pédale est relâchée (= en haut), bécarre si elle est bloquée sur le cran du milieu, et dièse si elle est tout à fait enfoncée. Comme tu le note, le code que tu as donné plus haut prends en compte les demi ton, midi oblige. Ce n'est pas un problème en soit, et si sur certaines notes il y a confusion (Do# et Reb dans ton exemple) peut importe, le tout c'est qu'une led soit jouée : à un cran près sur la rangée de led, l'effet sera préservé. Ce qu'il faut éviter par contre c'est qu'il n'y ai pas aucune note de jouée. Or pour des raisons pratiques, je ne vais pas mettre 47x3 (bécard, dièses et bémols) leds, c'est déjà sympa 47 :) Donc l'idée c'est qu'une seule et même led s'allume pour la même note (corde) en bécard, dièses et bémols.

Je ne sais pas si c'est clair ^^

Bon bricolage ! Et bon courage aussi !

Papyduino — 2012-04-24 20:32:43

Bonjour à tous
Maintenant à la retraite je m'initie à la programmation sur Arduino, mais dans la douleur!
N'ayant pas étudié l'anglais, j'ai encore plus de mal; heureusement qu'il y a les forums avec des gens sympas qui partagent leur savoir, en plus, il y a des toulousains! Je suis dans le coin!
J'ai donc voulu essayer le sketch de la harpe Midi2Led, modifié pour le faire tourner sur UNO, car elle utilise la librairie "midi.h" , mais j'ai l'erreur suivante à la compilation:
-----
‘class MIDI_Class’ has no member named ‘delMsg’
MIDI_2_Leds.cpp: In function 'void loop()':
MIDI_2_Leds:25: error: 'class MIDI_Class' has no member named 'delMsg'
-----
Comme il est indiqué :"un début de code" , celui-ci n'est peut-être pas complet?

Je travaille sous VISTA avec Arduino 23 et la lib midi.h V 3.11, car j'ai lu que la V 3.2 était pour l'IDE 1.0
pob, si tu passes par là, j'aurais besoin de tes lumières...
Amicalement
Papyduino

pob — 2012-04-26 13:17:07

Papyduino,

N'hésites pas à passer le mercredi soir à Myrys ( http://mixart-myrys.org/ ) pour rencontrer les gens de Tetalab ( http://mixart-myrys.org/ ) On y parle le français en général, même si c'est vrai qu'il y a un paquet d'anglicismes. ;)

Tu peux poster le code que tu utilises ?

Papyduino — 2012-04-26 15:56:49

Bonjour pob
Merci de ta réponse.
J'ai noté pour les rencontres Tétalab.
Le code que j'utilise est celui que tu as posté sous le nom:"MIDI_Harp2LED"
Je l'ai renommé pour ne pas faire de mélange et redéfini les pins pour l'adapter à la Uno.

Les ?? indiquent que je n'ai pas compris le commentaire; je sais, il y  en a pas mal.
Amicalement
Papyduino

pob — 2012-04-26 17:43:54

Il te faut télécharger la dernière version de cette librairie :
http://sourceforge.net/projects/arduino … /Releases/
Et mettre le contenu dans le dossier "libraries" du dossier où tu as installé l'environnement Arduino.

Les explications sont là pour son fonctionnement sont en anglais ici :
http://arduino.cc/playground/Main/MIDILibrary

Papyduino — 2012-04-26 20:44:52

Bonsoir pob
Pour un autre sketch, j'avais chargé la lib V 3.2, elle ne fonctionne pas sous l'IDE 0.23 et j'ai lu qu'elle ne fonctionnait qu'avec l'IDE 1.0,
Je me suis donc rabattu sur la lib V 3.11
J'aimerais rester sous 0.23 avec mes .PDE y a-t-il un espoir, ou quelque chose m'échappe.
Amicalement.
Papyduino

pob — 2012-04-26 21:49:00

On peut installer plusieurs versions de l'IDE arduino sans problème dans des dossiers différents. On installe les librairies là où il faut pour chacun des IDE.
Les .pde sont convertis en .ino sans modifications si ce n'est que certaines librairies peuvent présenter des manques ou des mauvais noms de dépendances.

Un moyen de tester si la librairies est bien à sa place c'est de regarder si on peut charger les exemples qui sont livrés avec.
Normalement ça ressemble à :
c:\programmes\arduino 0.23\libraries\MIDI
http://codelab.fr/up/installArduino.gif

Il faut redémarrer l'IDE arduino après l'ajout d'une librairie, il ne suffit pas de recompiler.



remarque : Je ne comprends toujours pas comment en passant à la version 1.00, il y a eu tant de changement et que toutes les librairies sont pratiquement à modifier. M'enfin...

Papyduino — 2012-04-27 09:47:30

bonjour pob
Chaque version de la même librairie pourrait aussi avoir un nom différent, et on sélectionne celle qui va bien pour le projet en cours. Mais je ne suis qu'un petit utilisateur débutant.
C'est vrai que la version 1.0 de l'IDE pourrait être  compatible avec les version antérieures.
Je vais refaire un test de compilation du sketch avec la version 3.2 et L'IDE 0.22 et 0.23.
Amicalement
Papyduino

pob — 2012-04-27 13:19:57

Je ne suis pas certain qu'on peut avoir dans le même dossier plusieurs version de la même librairie. Il y a une recherche de l'IDE au lancement je pense et si il trouve plusieurs versions qui sait ce qu'il se passera...

Par contre une librairie peut contenir les définitions de ses fonctions pour les différentes versions de l'IDE.
Arduino 1.00 est encore assez neuf, petit à petit on va retrouver la compatibilité pour tout le monde. Mais je pense qu'il n'y aura pas de retour en arrière donc autant passer à Arduino 1.00 dès que possible et mettre à jour tout ce qui doit l'être. C'est souvent un lien vers un fichier "Arduino.h" à mettre à la place de WProgram.h (ou un truc du genre).

pob — 2012-04-27 15:12:29

Pour adapter les plus part des librairies pour arduino 1.00 on remplace dans les fichiers .h ou .cpp des librairies :

#include "wiring.h"

par

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "wiring.h"
#endif

ou encore :

#include <WProgram.h>

par

#if defined(ARDUINO) && ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif