Bonjour,
Je souhaiterais vous parler d’un Shield que j’ai utilisé dans ma sculpture OvoMetrix: Le Shield Adafruit 16-Channel 12-bit PWM / Servo Driver – I2C interface – PCA9685
Lors de la conception de ma sculpture, j’ai décidé de l’agrémenter de 13 leds dans le but de pouvoir créer des paterns lumineux.
De plus, j’ai trouvé intéressant de réutiliser les vu-mètres d’origines des deux multimètres. Par ailleurs, j’ai souhaité avoir la possibilité de contrôler la luminosité des leds et la valeur des vu-mètres. Pour cela, je me suis naturellement dirigé vers l’utilisation des sorties PWM de l’arduino Uno.
Les sorties PWM, pour Pulse Witdh Modulation permettent de synthétiser un signal analogique grâce à la modulation de largeur d’impulsions (source).
Cependant, l’arduino Uno ne délivre que 6 sorties PWM. Dans mon cas, il me fallait 15 sorties PWM (13 pour les leds et 2 pour les vu-mètres).
J’ai choisi la solution de la société Adafruit (qui fait d’excellents produits et de superbes tutoriaux): Le Shield Adafruit 16-Channel 12-bit PWM / Servo Driver – I2C interface – PCA9685
Ce petit Shield qui coûte une quinzaine d’Euros, permet, en quelques sorte, d’ajouter 16 sorties PWM à votre arduino. Il s’interface très facilement à l’arduino via le bus I2C. Il suffit de le brancher de la manière suivante:
– la pin GND du Shield à la pin GND de l’arduino
– la pin VCC du Shield à la pin +5V de l’arduino
– la pin SCL du Shield à la pin A5 de l’arduino
– la pin SDA du Shield à la pin A4 de l’arduino
NB: Il est possible de lier plusieurs de ces Shields entre eux (jusqu’à 62!), grâce aux pins que l’on retrouvent de manière identique de chaque côtés du Shield.
NB2: Il est possible de modifier l’adresse I2C du Shield grâce à un système de jumper soudable.
Ensuite, il ne reste plus qu’a brancher les éléments sur chaque canaux.
Côté code, tout est simplifié grâce à la librairie fournie par Adafruit. On utilise principalement la commande suivante:
pwm.setPWM(canal, 0, value);
On fourni le canal sur lequel on souhaite lancer la modulation, et la valeur désirée entre 0 (led éteinte) et 4095 (led allumée au max).
Ainsi, il est possible de contrôler la variation lumineuse des 13 leds et la variation des deux vu-mètres.
Un exemple de code: http://pastebin.com/aJyWFbuN
Les photos du Shield et la petite vidéo:
Hi All!
Ce week-end, j’ai apporté une petite modification à ma sculpture OvoMetrix: l’ajout d’un son au démarrage.
Au départ, j’étais parti sur l’utilisation de l’arduino seul afin de générer un son sur un haut parleur. En effet, l’arduino permet de générer un son (de faible qualité) grâce à la librairie (PCM Library). Il suffit de connecter un haut parleur à l’une des sorties de l’arduino, puis d’encoder le fichier son en 8KHz. Il faut ensuite passer le son obtenu dans une petite moulinette (Logiciel encode-audio) qui va convertir le fichier audio en une suite de valeurs numériques. Enfin, il suffit de copier cette suite dans une variable de l’arduino et la librairie va interpréter cette suite numérique pour en sortir un son (Voir ce tutorial).
Cependant, cette solution a ses limites: la taille du fichier. La mémoire de l’arduino Uno n’étant que de 32Ko, il n’est pas possible de jouer un son volumineux (ou long), surtout si l’on met en place un code annexe relativement important.
N’ayant plus assez de place pour développer les fonctionnalités de la sculpture, j’ai opté pour un Shield MP3.
On peut trouver ce Shield pour quelques euros sur Ebay par exemple. Ce Shield MP3 se Plug directement sur l’arduino Uno, et permet de lire des mp3, soit à partir d’une carte SD, d’une clef USB, ou bien encore de la mémoire interne du Shield. Au départ, je souhaitais copier mon MP3 directement dans la mémoire interne du Shield, mais je n’y suis pas arrivé. J’ai donc pluggé une veille clef USB sur le port prévu à cet effet.
Côté matériel, j’ai simplement soudé une prise jack sur un petit haut parleur (4 Ohm). Le Shield MP3 dispose d’un petit amplificateur qui permet d’obtenir un son relativement élevé (en comparaison avec le volume du son méthode PCM, et donc sans amplificateur).
Par ailleurs, l’amplificateur peut être contrôlé via un jumper et une sortie de l’arduino. Pour information, le MP3 Shield communique avec l’arduino grâce au port série (RX et TX) ce qui est relativement embêtant dans le sens ou il nécéssaire enlever le Shield de l’arduino pour pouvoir transférer de nouveau sketch (car l’arduino utilise lui même le port série pour communiquer avec le PC). Ceci dit, il est possible, grâce à un jumper, de faire en sorte que le Shield communique avec l’arduino via d’autres sorties (il faudra alors utiliser la librairie SerialSoftware).
Grâce à une série de commandes, il est possible de contrôler ou interroger le Shield MP3 (lecture, pause, next, volume…)
Concernant les modifications sur OvoMetrix, j’ai également modifié le patern lumineux à la lecture du son, afin que celui-ci suive le phrasé du robot.
Et voila, ma sculpture est désormais un peu plus vivante! 😉
Le code pour le MP3 Shield: http://pastebin.com/vXyQQs9m
EDIT de 23h00: Il s’agissait bien évidement d’un poisson d’avril 😉 J’ai profité d’une opération de maintenance pour ajouter quelques artifices (plastique de sac poubelle légèrement fondu) dans le but de vous faire croire que les batteries de Daryl avaient explosé. Je vous rassure, il va très bien 😉
@ Bientôt pour la suite de l’aventure…
Très mauvaise nouvelle aujourd’hui 😦
J’ai mis Daryl à recharger cette nuit pour pouvoir travailler dessus le lendemain. Vers 8h30 du matin, nous avons entendu un gros boom dans la salle à manger.
Je me suis immédiatement levé et j’ai constaté que la batterie de Daryl avait implosée!!
Je suis réellement dégoûté 😦
Le robot étant trop endommagé, je vous annonce que je vais arrêter le développement de Daryl et probablement partir sur un autre projet…
Christophe
Voici la photo des dégâts: Un vrai carnage, batteries brûlées, châssis fondu, le plateau supérieur a été éjecté avec la force de l’explosion.
C’est avec joie que je vous annonce l’ouverture de la page Robot’Art.
Il s’agit du projet dont je vous avez parlé il y a quelques semaines maintenant: La réalisation d’une sculpture robot à partir d’éléments de récupération.
Ce nouveau robot « OvoMetrix » a été réalisé à partir de vieux multimètres des années 60/80 et d’autres matériaux comme des clefs à molette, boulons…
J’ai refait l’électronique afin d’implanter des leds dans la sculpture et la rendre lumineuse. Les vu-mètres et le potentiomètre central ont été réutilisés afin de de pourvoir créer des paterns lumineux.
Vous pouvez vous rendre sur cette nouvelle page afin de voir toutes les photos HD et vidéos HD d’OvoMetrix -> Robot’Art