dimanche 27 octobre 2013

Convertissez un fichier MIDI en sketch Arduino grâce à miduino.net

Mise à jour (2 janvier 2017):  Le site miduino dont on parle dans cet article n'existe plus. Conséquence fâcheuse:  cet article n'a plus le moindre intérêt.

Avez-vous déjà essayé de faire jouer une musique par votre Arduino, en utilisant uniquement l'instruction "tone()"?  Même pour une très courte mélodie, votre patience risque d'être mise à rude épreuve!  De plus, le résultat sera inévitablement monophonique:  il est impossible de jouer plus d'une note à la fois.

Mais tout ça n'est peut-être qu'un mauvais souvenir grâce à miduino.net, un outil en ligne gratuit mis au point par Connor Nishijima.

Voilà comment ça fonctionne:  vous préparez votre mélodie sous la forme d'un fichier MIDI (ou vous trouvez un fichier MIDI tout fait:  ils pullulent sur le web...).  Seules restrictions, pour l'instant:  votre fichier ne doit pas comporter de percussions, ni excéder 1 MB (ce qui n'a rien de troublant, le fichier MIDI ne fait généralement que quelques dizaines de kB...).


Vous vous rendez ensuite sur miduino.net pour uploader votre fichier MIDI, en indiquant votre adresse email et votre modèle d'Arduino (car le sketch produit utilisera au maximum le nombre de timers disponibles sur votre modèle).  À l'autre bout, un Raspberry Pi se charge de transformer votre fichier midi en un sketch Arduino, qui vous sera livré par email dans les secondes suivantes!

Ensuite, vous installez la librairie "Playtune" de Len Shustek, vous uploadez le sketch dans votre Arduino, et vous faites jouer la mélodie à travers un haut-parleur branché aux sorties spécifiées dans le sketch (pour l'Arduino méga, que j'utilisais, il s'agissait des pins 43, 45, 47, 49, 51 et 53).

Évidemment, le résultat sonnera comme un jeu vidéo des années 1980...

Rapide, efficace, et entièrement gratuit!



Yves Pelletier (@ElectroAmateur)

mercredi 23 octobre 2013

Mouvement de va-et-vient

Il s'agit d'une décoration d'Halloween, encore une fois, mais le principe peut certainement être appliqué à autre chose.  Cette fois, mon fils m'a mis au défi de faire voler une sorcière suspendue à une ficelle horizontale, sur une distance d'un mètre ou deux.  Le mouvement doit se répéter automatiquement.

Solution retenue:  la ficelle est utilisée comme une courroie qui passe par un moteur DC à une de ses extrémités, et une poulie à l'autre extrémité (un peu comme une corde à linge).  Près de chaque extrémité, on place également une LED infrarouge et un phototransistor:  lorsque la sorcière passe entre la LED et le phototransistor, un Arduino se chargera d'inverser le sens de rotation du moteur pour que la sorcière retourne à son point de départ.

Connexions des capteurs

Chaque LED infrarouge est alimentée au moyen de l'alimentation 5 V de l'Arduino. Comme toujours, il faut la placer en série avec une résistance de protection (j'ai utilisé 220 Ω).  Le courant doit entrer dans la LED par sa broche la plus longue, qui doit donc se trouver du côté 5 V.

Les deux phototransistors sont branchés en émetteur commun:  l'émetteur (la plus longue des deux broches) est donc relié à la masse:


La sortie du premier phototransistor est reliée à l'entrée 7 de l'Arduino, et celle du deuxième phototransistor est reliée à l'entrée 8 de l'Arduino.

Connexions du moteur

Pour contrôler le moteur, j'ai utilisé un L293D (il n'est utilisé qu'à moitié, puisqu'il est conçu pour contrôler deux moteurs):


Ne pas oublier de brancher ensemble toutes les masses (GND):  les 4 pins du L293D, celle de l'Arduino, celle de l'alimentation du moteur, celle des LEDs et des photodiodes.

Le sketch

Le sketch n'est pas spécialement compliqué:  lorsque la sorcière passe entre une LED et son phototransistor (ce qui indique qu'elle a atteint une des extrémités de son parcours), l'Arduino ordonne au moteur de changer son sens de rotation.



Yves Pelletier (@ElectroAmateur)

samedi 19 octobre 2013

Contrôler un Arduino en tapant des mains

En 1986, un gadget appelé "Clapper" fut mis sur le marché et obtint un certain succès grâce à des publicités télévisées:  plus la peine de vous déplacer jusqu'à un interrupteur lorsque vous désiriez allumer ou éteindre les lumières, il suffisait de taper deux fois dans les mains...  Le message publicitaire ci-dessous vous montre à quel point le Clapper rendait son propriétaire heureux...  (le secret du bonheur enfin révélé!)



En plus d'un microcontrôleur (ST 6210) qui détectait les "claps" en fonction de leur intensité sonore et leur durée, le Clapper était muni de trois étages de filtres afin de ne considérer que les fréquences sonores pertinentes (voir ici pour plus d'informations sur le Clapper).

Il est très facile de faire en sorte que votre Arduino exécute une action lorsque vous tapez des mains.  Pour ce faire, vous devez évidemment le munir d'un microphone.  J'ai utilisé un micro à électret rattaché à un petit circuit d'amplification dont le schéma se trouve ici (je l'avais utilisé dans une précédente rubrique pour visualiser des sons à l'écran d'un oscilloscope).   Mais vous pouvez opter pour une solution toute faite comme ce breakout commercialisé par Sparkfun ou chercher "Arduino Sound Sensor" sur eBay: n'importe quel capteur sonore de ce genre devrait faire l'affaire.

Côté logiciel, je vous suggère l'excellent sketch mis au point par Manoj Kunthu.  Après l'avoir installé dans votre Arduino, il ne reste plus qu'à acheminer le signal sonore du microphone à l'entrée analogique A0, et à brancher une LED à chacune des sorties numériques suivantes:  10, 11 et 12.

Lorsque vous tapez des mains une première fois, la LED 11 s'allume pendant environ une seconde.  Si vous tapez des mains une seconde fois à l'intérieur du délai requis, la LED 12 s'allume également pendant un bref instant, et la LED 10 s'allume (et demeure allumée:  pour l'éteindre, vous devez à nouveau taper des mains deux fois de suite).

Bien sûr, vous devrez probablement ajuster les réglages de votre amplificateur (ou les paramètres du sketch) pour ajuster la sensibilité (vous ne voulez pas que l'Arduino réagisse au moindre son ambiant, ni qu'il soit trop dur d'oreille...).

L'utilisation conventionnelle du dispositif consiste à placer un relais à la sortie numérique numéro 10, de façon à contrôler l'alimentation d'un appareil électrique (éclairage ou autre), mais ça peut être bien d'autres choses. Par exemple:  votre robot qui exécute une action particulière lorsque vous tapez des mains, etc.

Yves Pelletier (Twitter:  @ElectroAmateur)

dimanche 13 octobre 2013

Tête chercheuse


En bons nord-américains, mes trois enfants attendent avec impatience la fête de l'Halloween, qui aura lieu dans deux semaines.  En prévision de l'événement, j'ai réalisé ce crâne humain qui tourne pour suivre les passants du regard. Pour ce faire, j'ai suivi les instructions présentées par Jason Poel Smith dans cet article du site web de MAKE magazine.


Le dispositif est constitué de 5 photorésistances disposées à intervalles réguliers devant le crâne (dans mon montage, elles sont collées à environ 10 cm d'intervalle le long d'une mince barre de bois). Lorsque quelqu'un passe devant le montage, son ombre modifie l'intensité lumineuse captée par certaines des photorésistances.  Un Arduino analyse l'état des photorésistances et commande un servomoteur collé sous le crâne, qui tourne en donnant l'impression qu'il vous regarde passer:  simple et étonnamment efficace, surtout lorsque le passant se trouve entre le crâne et la source de lumière principale de la pièce.

La seule modification que j'ai apportée par rapport au projet publié par le magazine MAKE, c'est l'ajout d'une LED rouge au centre de chaque oeil:  lorsqu'un mouvement est détecté, le crâne bouge et ses yeux s'allument, ce qui lui donne un aspect franchement inquiétant (et ajoute à la surprise du pauvre passant qui ne se doutait de rien).


Pour un effet encore plus réussi, on pourrait également ajouter un module VS1053 qui lit des fichiers mp3 et faire jouer un rire lugubre... Je ne suis pas allé jusque là, mais si vous voulez ajouter des effets sonores, vous pouvez toujours vous inspirer de ce précédent article.

Bien entendu, le principe peut être appliqué à autre chose qu'une décoration d'Halloween de mauvais goût...

Pour le sketch et les détails du circuit, je vous réfère à l'article original en anglais.

Si vous cherchez d'autres idées pour l'Halloween, ces badges clignotants pourraient peut-être vous intéresser.




Yves Pelletier (Twitter:  @ElectroAmateur)

samedi 5 octobre 2013

Le miraculeux 555, et autres lectures gratuites

Cette semaine je suis tombé un peu par hasard sur le site web "Talking Electronics" de Colin Mitchell. Monsieur Mitchell est en quelque sorte une légende vivante pour les électroniciens amateurs australiens, car plusieurs d'entre eux se sont initiés à l'électronique grâce à son magazine "Talking Electronics", qui était publié dans les années 1980.

Le site web "Talking Electronics" constitue une impressionnante mine d'information, même s'il n'est pas toujours facile de s'y retrouver.  Vous y retrouverez entre autres choses plusieurs livres rédigés par Colin Mitchell et diffusés gratuitement en format pdf.  Le style de ces publications rappelle beaucoup les livres de Forrest Mims:  des schémas de circuits accompagnés de très brefs commentaires.  Et Monsieur Mitchell aime bien, de temps à autre, se payer la tête d'un circuit mal conçu publié ailleurs et présenter une solution plus efficace.


À signaler de façon particulière:
  • 50 555 circuits. C'est fou ce qu'on peut réaliser avec un 555:  différents oscillateurs, bien sûr, mais aussi un amplificateur, un fréquencemètre, un testeur de transistors, une source de courant constant, un appareil qui ferme les rideaux automatiquement, un appareil à éloigner les moustiques (au moyen d'ultrasons!?!?), et l'incontournable Zapper conçu par le Dr. Hulda Clark qui permet de guérir et prévenir toutes les maladies, de l'herpes au SIDA!!!   Mouais...pour les moustiques, je suis déjà un peu sceptique, mais guérir toutes les maladies grâce à un 555, 4 résistances et 2 condensateurs, vraiment?  (Colin Mitchell ne semble pas y croire non plus).  Si vous êtes du genre crédule, ou si vous voulez rigoler un bon coup, le site www.zapperwise.org vante les qualités thérapeutiques de cet appareil et présente lui-aussi le circuit détaillé.
Les quinze numéros du magazine Talking Electronics publiés pendant les années 1980 sont également disponibles.  Certains articles sur la façon d'enregistrer sur cassette des programmes d'ordinateurs ont un intérêt purement historique, mais d'autres articles ont mieux vieilli...et c'est toujours instructif de savoir ce que faisaient les gens dans leurs temps libres avant l'invention de l'Arduino et du Raspberry Pi...

TE Numéro 1 - TE Numéro 2 -  TE Numéro 3 - TE Numéro 4 - TE Numéro 5 - TE Numéro 6 - TE Numéro 7 - TE Numéro 8 - TE Numéro 9 - TE Numéro 10 - TE Numéro 11 - TE Numéro 12 - TE Numéro 13 - TE Numéro 14 - TE Numéro 15

Bonne lecture!

Yves Pelletier (Twitter:  @ElectroAmateur)