dimanche 29 décembre 2013

Transformer un Raspberry Pi en émetteur radio FM

Voici un projet ridiculement facile... Après avoir testé avec un succès mitigé un émetteur FM analogique il y a quelques jours, je suis arrivé en quelques minutes a un résultat beaucoup plus convaincant en utilisant un Raspberry  Pi, un logiciel gratuit déjà tout fait et un petit bout de fil conducteur en guise d'antenne.

Alors que mon émetteur analogique émettait un signal de mauvaise qualité et de faible portée à une fréquence imprévisible, cet émetteur à base de Raspberry Pi offre un son d'excellente qualité pouvant être capté à plusieurs mètres de l'émetteur à la fréquence que vous désirez (dès le premier essai, je pouvais capter le signal émis à peu près partout dans ma maison, même un étage plus haut:  assurez-vous de ne pas défier les réglementations locales).


La vidéo ci-dessous a été réalisée par Simon Monk, auteur du livre Raspberry Pi Cookbook et elle a été conçue pour des gens qui, comme moi, ne sont pas encore très à l'aise avec le Raspberry Pi  et  la navigation dans un système d'exploitation Linux...).



Supposons donc que vous disposez d'un Raspberry Pi fonctionnel et branché à internet (si vous venez de recevoir votre Raspberry Pi en cadeau de Noël et que vous ne l'avez encore jamais démarré, il existe tout plein de bons tutoriels sur internet pour vous guider).   Côté hardware, il ne vous manque rien d'autre qu'un bout de fil conducteur qui servira d'antenne.  J'ai utilisé un fil d'une trentaine de centimètres car c'est ce que j'avais sous la main, on voit sur la vidéo que Simon Monk utilise une antenne beaucoup plus courte.  Vous branchez cette antenne à la pin GPIO numéro 4 (voir illustration ci-contre pour la position de la pin numéro 4).

Ensuite, vous téléchargez "pifm", un logiciel gratuit mis à votre disposition par l'Imperial College Robotics Society, et vous voilà en mesure de diffuser des fichiers ".wav" sur la fréquence FM de votre choix.

Les détails de ce qu'on écrit sur la console:
  • mkdir pifm (création d'un nouveau répertoire intitulé "mkdir pifm")
  • cd pifm/    (on va dans ce nouveau répertoire, qui est vide évidemment)
  • wget http://www.icrobotics.co.uk/wiki/images/c/c3/Pifm.tar.gz (on télécharge le programme dans notre répertoire nouvellement créé)
  • tar -xzf Pifm.tar.gz  (extraction du fichier compressé)
  • ls (pour voir le contenu du répertoire:  en plus du fichier compressé, nous avons maintenant un programme en C, un programme en Python et un fichier .wav contenant le thème de Star Wars).
  • sudo ./pifm sound.wav 103.0  Pour émettre le contenu du fichier "sound.wav" à une fréquence de 103 MHz.
...et vous pouvez maintenant capter la musique de Star Wars au moyen de n'importe quel récepteur FM.  Bien entendu, vous pouvez remplacer le fichier "sound.wav" par autre chose que la musique de Star Wars.  Et vous essayez de trouver une fréquence qui n'est pas déjà occupée par une station FM locale.

Rapide et efficace!

(Mais peut-être un brin trop facile, quand même.  Je vais continuer d'expérimenter avec des émetteurs analogiques, malgré tout...).

Yves Pelletier (Twitter:  @ElectroAmateur)

samedi 14 décembre 2013

Un émetteur FM simple mais peu performant

J'ai fais l'essai de cet émetteur FM proposé par le site web du magazine MAKE, mais initialement conçu par l'artiste multimédia japonais Tetsuo Kogawa.

Constitué d'une dizaine de composants très communs (un transistor 2N3904, 5 condensateurs, 3 résistances et une bobine qu'on fabrique soi-même), le circuit de "style Manhattan" est effectivement très facile à construire en quelques dizaines de minutes.

Là où ça peut se compliquer, c'est lorsque vous tentez de capter le signal qui est supposément émis par votre émetteur.


Je n'ai jamais réussi à capter quoi que ce soit en provenant du premier émetteur que j'ai construit.  J'ai vérifié que le signal sonore se rendait correctement à la sortie, et j'ai patiemment balayé toute la bande FM sur mon récepteur sans rien capter.  Il faut dire que dans ma région, la bande FM est très occupée (20 stations locales):  la probabilité est grande pour que l'émetteur émette à une fréquence déjà utilisée par un signal plus puissant.  (À moins qu'il n'émette à une fréquence légèrement plus basse que 87,5 MHz ou légèrement plus élevée que 108 MHz? )

J'ai construit un deuxième circuit en suivant les mêmes directives, et cette fois je suis parvenu à capter le signal à environ 91 MHz...un signal faible, souffrant d'une énorme distorsion, et superposé au signal d'une station commerciale.  Pour ce faire, j'ai utilisé un récepteur bon marché dont la fréquence de réception se règle de façon analogique au moyen d'un potentiomètre, et je devais placer mon émetteur à quelques centimètres à peine du récepteur.  Un deuxième récepteur plus sophistique, équipé d'un syntonisateur numérique qui varie par bond de 0,1 MHz n'a jamais rien capté.

C'est peut-être pas si mal pour explorer les bases de la transmission FM, mais les applications pratiques de ce dispositif me semblent bien limitées.

Yves Pelletier (Twitter:  @ElectroAmateur)

jeudi 12 décembre 2013

Le magazine "Practical Electronics" (1964 à 1973)

Si l'envie vous prend de faire un petit voyage dans le passé pour voir à quoi ressemblait un magazine consacré à l'électronique il y a près de 50 ans, plusieurs numéros du magazine londonien "Practical Electronics" sont disponibles en version pdf sur le site "Internet Achive":

Décembre 1964, Janvier 1965, Avril 1965, Mai 1965, Août 1965, Septembre 1965, Octobre 1965, Novembre 1965, Février 1966, Juillet 1966, Août 1966, Septembre 1966, Octobre 1966, Décembre 1966, Janvier 1967, Octobre 1967, Novembre 1967, Avril 1968, Mai 1968, Juin 1968, Novembre 1968, Juin 1970, Août 1970, Octobre 1970, Juillet 1973.




Yves Pelletier (Twitter:  @ElectroAmateur)

mardi 5 novembre 2013

Cours en ligne: Comprendre les Microcontrôleurs

Ayant été peu actif sur les sites qui offrent des "MOOC" au cours des derniers mois, je n'ai appris qu'hier l'existence de ce cours qui avait débuté une semaine plus tôt.  "Comprendre les Microcontrôleurs" est un cours en français offert gratuitement sur la plate-forme Coursera par deux professeurs de l'École Polytechnique Fédérale de Lausanne: Jean-Daniel Nicoud et Pierre-Yves Rochat.

La deuxième semaine (sur un total de 7 semaines) est déjà commencée, mais vous avez jusqu'à la semaine prochaine (12 novembre)  pour soumettre vos premières évaluations:  il n'est donc pas trop tard pour démarrer, surtout si vous avez déjà quelques bases d'électronique et de programmation sur Arduino.

Au programme:

  • Rappel d'électricité et électronique 
  • Systèmes logiques et architecture 
  • Machines binaires 
  • Programmation en C 
  • Entrées-sorties 
  • Applications 
  • Mise au point 
  • Timers, interruptions 
  • Signaux analogiques 
  • Affichages 
  • Communications 
  • Robotique
Ça promet!




Yves Pelletier (Twitter:  @ElectroAmateur)

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)

mardi 24 septembre 2013

Utilisation d'un écran Nokia 5110 avec un Arduino pour jouer à Pong et Snake...

J'ai reçu la semaine dernière un petit écran LCD Nokia 5110 avec contrôleur Philips PCD8544 (résolution de 84 X 48 pixels).  Voici un compte-rendu de mes premières expérimentations.

Les branchements

Dans un premier temps, j'ai branché l'écran à l'Arduino en  suivant ce tutoriel d'Adafruit.  L'écran est conçu pour fonctionner à 3,3 V, et il est donc recommandé d'utiliser un convertisseur de niveau logique (comme un 4050) pour abaisser à 3,3 V les signaux provenant de l'Arduino.  Oui, je sais, quand on regarde sur le web on en arrive rapidement à la conclusion qu'au moins 80% des gens branchent l'écran directement à l'Arduino, sans utiliser de 4050.  Si j'en crois le site de Sparkfun, une telle pratique ne devrait pas endommager l'écran à court terme, mais risquerait de diminuer sensiblement sa durée de vie.

Voici donc à quoi est branché le 4050:




Il ne reste plus qu'à brancher la pin 1 (VCC) de l'écran au 3,3 V de l'Arduino, et la pin 2 (GND) de l'écran à une des pins GND de l'Arduino.  Si vous désirez allumer les LEDs de l'écran, branchez également la pin 8 (LED) de l'écran au 3,3 V de l'Arduino (personnellement, je préfère quand les LEDs sont éteintes).


La librairie d'Adafruit

Pour faciliter l'utilisation de l'écran Nokia avec un Arduino, Adafruit a mis au point les librairies Adafruit_PCD8544 et Adafruit_GFX.  Après les avoir installées, vous pouvez essayer le sketch intitulé "pcdtest" fourni avec la librairie PCD8544, ça donne une bonne idée des possibilités de ces librairies pour afficher du texte de différents formats, des images, des animations, etc.

La seule modification que j'ai dû apporter à ce sketch, c'est la ligne "display.setContrast(50);":  j'ai obtenu de bien meilleurs résultats en la remplaçant par "display.setContrast(60);".

Notez aussi que le "splash screen" qui apparaît au début pour montrer le logo d'Adafruit (et qui est appelé par la simple commande "display.display();",) est défini à l'intérieur de la librairie.  Je suppose que vous devez donc modifier la librairie si vous voulez afficher un "splash screen" montrant autre chose que le logo d'Adafruit?!?!

Snake

Un écran Nokia permet de transformer votre Arduino en mini-console de jeu... En ajoutant 5 boutons poussoirs branchés aux entrées analogiques 1, 2, 3, 4 et 5, vous pouvez jouer au jeu classique "Snake" grâce à ce sketch écrit par Ouarrak Ayoub (le sketch est commenté en italien).

Attention, pour utiliser le sketch avec le circuit que j'ai décrit plus haut, vous devez modifier l'assignation des pins:  la ligne "Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);" devient "Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);".

De plus, j'ai dû ajouter une ligne pour ajuster le contraste:  "display.setContrast(60);"   (juste en dessous de la ligne "display.begin();", sinon rien n'apparaissait sur mon écran.

Pong

Vous pouvez aussi remplacer les 5 boutons poussoirs par deux potentiomètres (branchés aux entrées analogiques 0 et 1) et jouer à Pong grâce à ce sketch écrit par Onur Avun .  Pour utiliser le sketch avec mes branchements décrits au début de cet article, il faut modifier l'assignement des pins de la façon suivante:

     #define PIN_SCE   4
     #define PIN_RESET 3
     #define PIN_DC    5
     #define PIN_SDIN  6
     #define PIN_SCLK  7

Bien entendu, selon les standards de 2013, c'est un peu minimaliste comme console de jeu...  L'intérêt réside surtout dans la possibilité d'étudier ces sketches afin de les modifier et de créer vos propres jeux... (PacMan ou Tetris, ce serait pas mal...)

Yves Pelletier (Twitter:  @ElectroAmateur)

samedi 21 septembre 2013

Sauvetage d'un lecteur mp3 bon marché

Je m'étais procuré ce lecteur mp3 deux ans plus tôt et, avec le temps, il est devenu inutilisable: même après l'avoir laissé branché pendant plusieurs heures sur un port USB pour lui permettre de se recharger, il ne jouait plus qu'une dizaine de minutes avant de s'éteindre. J'ai ouvert le boîtier pour constater, sans surprise, que sa pile rechargeable interne avait rendu l'âme.

Ces appareils bon marché ont visiblement été conçus pour qu'on les jette à la poubelle lorsque leur pile est épuisée:  sinon, il faut trouver un modèle de pile équivalent, débourser un prix comparable à celui d'un appareil complet, souder la pile à l'endroit approprié dans le circuit...

Je ne disposais pas d'une pile comparable, mais j'avais vraiment envie de rendre mon lecteur mp3 à nouveau fonctionnel:  j'ai donc décider de l'alimenter au moyen de trois piles AA Ni-Mh rechargeables (3 piles de 1,2 volts à la place d'une seule de 3,7 volts).

Bien entendu, ces piles sont beaucoup trop volumineuses pour entrer dans le boîtier:  j'ai percé un petit trou à l'arrière du boîtier pour y faire passer les deux fils qui servaient à brancher la pile d'origine, et je les ai soudés à un support conçu pour 3 piles AA.

J'ai ensuite collé ce support à l'endos du lecteur mp3.

Résultat:  un lecteur mp3 à peu près 4 ou 5 fois plus volumineux qu'avant, ce qui ne constitue par un inconvénient important pour moi puisqu'il continue d'entrer très facilement dans ma poche:  je n'ai jamais eu besoin qu'il soit aussi petit!

Pour ce qui est de l'esthétisme...bof, ce n'est pas ma priorité.

Mon nouveau modèle comporte même certains avantages:  si les piles tombent à plats, je peux les remplacer immédiatement par un jeu de piles fraîchement chargés plutôt que devoir patienter pendant que l'appareil se recharge.

Je peux recommencer à écouter l'émission "The Amp-Hour" en podcast...

Yves Pelletier (Twitter:  @ElectroAmateur)

lundi 16 septembre 2013

Robot éviteur d'obstacles version 1.0

Voici un projet classique et pas trop compliqué qui figurait depuis longtemps sur ma liste de choses à essayer:  un robot à base d'Arduino qui utilise un capteur à ultrasons pour détecter la présence d'obstacles devant lui (et modifier sa trajectoire afin de les éviter).

Comportement du robot:

Le robot utilise constamment une sonde à ultrasons pour détecter la présence d'un obstacle devant lui.   Si aucun obstacle n'est détecté à moins de 30 cm devant lui, il continue d'avancer en ligne droite.  Si un obstacle est détecté à 30 cm ou moins, il tourne sur lui-même jusqu'à ce que la voie soit libre sur une distance d'au moins 30 cm.

Matériel:

Une base de robot à 2 roues motrices (chaque roue étant actionnée par son propre moteur électrique), un Arduino Uno, une sonde ultrasonore HC-SR04 (pour bien faire il en faudrait plus qu'une, tel que mentionné plus loin dans cet article), un contrôleur de moteur L293D, 6 piles AA rechargeables (NiMh) pour l'alimentation des moteurs et une pile 9 V pour l'alimentation de l'Arduino.

Le circuit:

Le schéma ci-dessous indique comment brancher les moteurs et l'Arduino au L293D.  Toutes les masses ("GND") doivent être reliées ensemble:  celles du L293D, de l'Arduino et du HC-SR04 ainsi que la borne négative de l'alimentation des moteurs.

J'ai branché la sonde ultrasonore HC-SR04 de la façon suivante:

          GND : Arduino GND
          Echo:  Arduino  11
          Trig: Arduino 12
          Vcc: Arduino 5V



Le sketch:

J'aurais certainement obtenu un algorithme plus performant si je m'étais donné la peine de m'inspirer d'un sketch produit par un de mes nombreux prédécesseurs.  Je ne suis néanmoins obstiné à rédiger mon propre sketch à partir de zéro, sans me préoccuper de ce que font ceux qui s'y connaissent mieux que moi en robotique.  Au départ, il arrivait assez souvent que mon robot modifie sa trajectoire alors qu'aucun obstacle ne se trouvait devant lui:  j'ai donc ajouté une seconde mesure à partir du capteur HC-SR04 afin de rejeter ces "faux positifs".


Aspects à améliorer dans une future version:

Il faudra ajouter des sondes ultrasonores supplémentaires:  le robot détecte bien la présence d'un mur situé droit devant lui, mais son champ de vision est beaucoup plus étroit que sa propre largeur:  par conséquent, il s'accroche à des obstacles situés sur les côtés.   Grâce à deux capteurs placés côte à côte, le robot pourra aussi faire la différence entre un obstacle situé à gauche ou à droite, et choisir le sens de son virage en conséquence.

Certains obstacles sont difficilement détectées par les sondes ultrasonores (des pattes de chaises, des obstacles très bas, etc.):  l'ajout de capteurs différents sera également utile (interrupteur se déclenchant lors d'un contact, capteur à effet Hall pour détecter qu'une roue ne tourne plus, etc.).

Une grande partie du plaisir de construire un robot consiste à améliorer progressivement ses performance; arriver à un essai optimal dès les premières tentatives aurait été un peu décevant, dans le fond...

Yves Pelletier   (Twitter:  @ElectroAmateur)

Note:  la suite de cet article a été publié le 21 avril 2014:  Robot éviteur d'obstacles version 2.0 .

samedi 31 août 2013

Une méthode ultra-simple (et parfois efficace) pour se débarrasser du chanteur

Un article publié il y a quelques jours sur le site web du MAKE magazine a attiré mon attention: "Sing-a-long Song Devocalizer" par Jeffrey M. Goller et Nathan Goller-Deitsch.  On y explique comment construire un petit dispositif permettant d'atténuer (et parfois même d'éliminer) la voix du chanteur sur une pièce musicale enregistrée en stéréophonie.

J'avais d'abord supposé qu'il s'agissait d'un quelconque filtre mais j'étais dans l'erreur:   le dispositif qu'ils proposent est beaucoup plus simple: si la masse (GND) de votre casque d'écoute n'est pas reliée à celle de la source sonore (un lecteur mp3, par exemple), un phénomène d'interférence destructive entraîne l'élimination des sons qui ont été enregistrés de façon identique dans les deux canaux (droite et gauche). Puisque le chanteur soliste et la basse sont souvent mixés de façon égale dans les deux canaux (pour que l'auditeur ait l'impression qu'ils se trouvent au centre de l'orchestre), on ne les entend plus, ou presque. Quant aux instruments qui ont été mixés de façon asymétrique (plus intenses à gauche ou à droite), ils demeurent audibles.

Le montage proposé par MAKE magazine comporte deux interrupteurs qui permettent de sélectionner 4 options possibles:  son stéréophonique normal, élimination du vocaliste, canal gauche seulement ou canal droit seulement.  Ce circuit complet est déjà d'une grande simplicité, mais si vous désirez simplement tester l'effet d'élimination du vocaliste (à mon avis beaucoup plus spectaculaire que la simple isolation du canal gauche ou du canal droit), vous pouvez vous contenter d'un circuit encore plus simple:  votre lecteur mp3 est branché dans un jack audio femelle, vos écouteurs sont branchés dans un deuxième jack audio femelle.  Vous reliez ensemble les deux pointes (tips) et les deux anneaux (rings) des jacks, mais vous ne reliez pas leurs manchons (sleeves).



Plus simple encore:  avant d'insérer la prise mâle de vos écouteurs dans son orifice habituel,  vous recouvrez son manchon (sleeve) au moyen d'un mince ruban adhésif isolant.  C'est un peu à l'étroit, mais ça fonctionne!


Le résultat varie en fonction de l'enregistrement choisi.  Dans la plupart des cas, le chanteur soliste et la basse sont fortement atténués.    Dans Bohémian Rhapsody de Queen, on n'entend pas Freddy Mercury quand il chante en solo, mais on entend très bien le piano.  Dans Money de Pink Floyd, on entend un tout petit peu le chanteur, mais on est surtout surpris de ne pas entendre la bass et sa mélodie caractéristique.  Dans Purple Haze, Jimi Hendrix chante pratiquement a capella, les guitares étant presque inaudibles.  

Yves Pelletier (Twitter:  @ElectroAmateur)

vendredi 30 août 2013

Data logging avec Carriots (Arduino et shield Ethernet)

Dans ma précédente rubrique, j'avais exploré les possibilités de Carriots pour la mise au point d'une alerte: Carriots vous envoyait un email , un texto ou un tweet lorsque votre Arduino mesurait un paramètre dont la valeur indiquait une situation anormale.

Je vais maintenant utiliser Carriots pour faire du data logging:  l'Arduino, muni de son shield ethernet, va envoyer des mesures au serveur de Carriots à intervalles réguliers, de façon à ce qu'elles y soient enregistrées.  Ces données seront ensuite accessibles à partir de n'importe quel ordinateur branché à internet (à condition d'avoir les autorisations d'accès nécessaires, bien entendu).

Marche à suivre:

1)  Ouvrir un compte gratuit chez Carriots.

2)  Accéder au "control panel" de Carriots et prendre en note votre "Full Privileges APIkey" (en passant par My Settings / My Account).  Vous aurez besoin de cet identifiant dans le sketch de l'Arduino.

3)  Noter également le nom de l'appareil (device developer ID).  Vous avez droit de brancher jusqu'à 10 appareils gratuitement sur Carriots.  Si vous utilisez l'appareil qui a été créé par défaut lors de votre inscription,  cet ID sera de la forme  "defaultDevice@votre_nom_d'utilisateur".

4)  Le montage est constitué d'un Arduino muni de son shield Ethernet, auquel j'ai ajouté trois potentiomètres branchés aux entrées A0, A1 et A2, afin de simuler des capteurs analogiques.  Le shield ethernet est évidemment branché à internet, par l'entremise d'un câble ethernet.

5)  Le sketch ci-dessous envoie à Carriots trois mesures (prises par des capteurs analogiques branchés aux entrées A0, A1 et A2) toutes les 30 secondes.  Je crois qu'il sera facile de modifier ce sketch pour qu'il réponde à vos besoins spécifiques (en modifiant, par exemple, le délai entre les différentes prises de mesures).




Le moniteur série vous permettra de vérifier si le transfert de données s'effectue correctement (30 secondes après le démarrage du sketch, si vous n'y avez rien changé).  Vous pouvez également consulter les données envoyées en allant dans la section "Data Streams" du control panel de Carriots (il faut rafraîchir la page pour voir les données s'ajouter).


Pour afficher les données sous forme de graphique, Carriots met à notre disposition un Wizard Widget Graphs (dans la section Publish Data).  Cet outil construit pour vous un bout de script que vous pouvez ensuite coller dans une page web (j'ai utilisé le logiciel KompoZer).  Voici le résultat obtenu avec mes données:


Ça fonctionne très bien.  Par contre il serait utile de pouvoir visionner les graphique en cliquant un simple bouton directement sur le control panel de Carriots, sans qu'il nous soit nécessaire de créer une page web.

Qu'arrive-t-il si vous voulez récupérer vos données brutes afin, par exemple, de les traiter dans Excel?  Ici ça se complique un peu.  Comme je l'ai déjà mentionné, vous pouvez toujours aller les lire dans la section "Data Streams" du control panel de Carriots, mais ce n'est pas très pratique (surtout si vous avez une grande quantité de données à traiter).

Une autre option consiste à utiliser la commande "LIST" de l'API de Carriots.  Pour ce faire, je suis allé sur la page "hurl.it" et j'y ai entré les informations suivantes:


J'ai obtenu en retour la totalité de mes données enregistrée sous la forme suivante:

    {
      "_id": "5218a0467c5d75dd148b5478",
      "_t": "str",
      "at": 1377345608,
      "device": "DataLogger@xyz",
      "protocol": "v2",
      "data": {
        "valeur2": "271",
        "valeur3": "1023",
        "valeur1": "0"
      },
      "id_developer": "blablabla",
      "created_at": 1377345607,
      "owner": "xyz"
    },

À première vue, ça ne semble pas trop compliqué de faire un script en Python qui extraira les données pertinentes, mais ce serait quand même pratique d'avoir un bouton dans le control panel qui nous permettrait d'extraire les données rapidement sous la forme d'un fichier Excel.

Même difficulté pour effacer nos données:  on peut les effacer une par une avec hurl.it. mais je n'ai pas trouvé de bouton dans le control panel de Carriots qui nous permettrait d'effacer facilement des données indésirables ou de tout effacer pour repartir à zéro.  Ce serait bien utile!

Addendum:

Les gens de chez Carriots m'informent qu'un outil permettant d'exporter les données vers Excel sera bientôt disponible. :-)

Yves Pelletier (Twitter: @ElectroAmateur)

vendredi 16 août 2013

Envoyer des données à carriots.com avec un Arduino (et un shield Ethernet)

Note:  Si vous préférez utiliser un module WiFi ESP8266 plutôt qu'un shield Ethernet, voir cet autre article.

Carriots est une compagnie spécialisée dans l'internet des objets ("internet of things" ou IoT). Tout comme Xively (anciennement Pachube), vous pouvez y envoyer des données émises par un Arduino ou un Raspberry Pi.  Vous pouvez ensuite accéder à vos données sur internet, même si vous êtes très éloigné de l'Arduino.  Le service est totalement gratuit pour vos 10 premiers appareils.

Dans cet article, je présente une adaptation d'un tutoriel présenté sur le site web de Carriots.   dans ce tutoriel, l'Arduino agit comme un système d'alarme:  il est muni d'une photorésistance et, si quelqu'un allume la lumière dans la pièce où se trouve l'Arduino, un email est envoyé au propriétaire pour l'aviser de la présence d'un intrus.

Pour me familiariser avec Carriot, j'ai apporté quelques modifications à ce projet:  tout d'abord, j'ai utilisé un potentiomètre à la place d'une photorésistance, car c'est plus simple de varier sa résistance à la valeur désirée (mon but pour l'instant est d'expérimenter, et non de produire immédiatement un dispositif qui sert véritablement à quelque chose).

Ce potentiomètre permet d'allumer ou d'éteindre une LED.  Chaque fois que l'état de la LED change (lorsqu'elle s'allume ou lorsqu'elle s'éteint), deux informations sont envoyées à Carriots:  la valeur du potentiomètre (entre 0 et 1053) et l'état de la LED ("ON" ou "OFF") (le sketch proposé par carriots n'envoyait qu'une seule donnée).

J'ai profité de la possibilité de régler automatiquement l'adresse IP du shield ethernet au moyen du protocole DHCP (disponible depuis la version 1.0 de l'IDE, je crois):  donc pas besoin de choisir soi-même une adresse IP à inscrire dans le sketch.

Finalement, dans le sketch d'origine toutes les données apparaissaient sur Carriots comme si elles avaient été enregistrées le 24 décembre 2012 à 18h00:  dans mon sketch elle s'affichent à l'heure correcte.

Marche à suivre:

1)  Ouvrir un compte chez Carriots.  Comme je l'ai déjà mentionné, c'est gratuit.

2)  Dans le "control panel" de Carriots, cliquer sur le bouton "SETTINGS", puis "Apikeys". et prendre en note votre "Automatic apikey default".  Cet interminable code formé de 64 caractères sera nécessaire dans votre sketch.

3)  Allez ensuite dans la section "Devices" et notez le nom de l'appareil (device developer ID).  Vous avez droit de brancher jusqu'à 10 appareils gratuitement sur Carriots.  Si vous utilisez l'appareil qui a été créé par défaut lors de votre inscription,  cet ID sera de la forme  "defaultDevice@votre_nom_d'utilisateur".

4)  Vous avez besoin d'un Arduino muni d'un shield Ethernet.  Pour ma part, j'ai utilisé un shield Ethernet chinois bon marché acheté sur eBay, et un Duemilanove chinois bon marché acheté sur eBay.  Le seul inconvénient, c'est que je suis obligé d'alimenter mon Arduino avec une alimentation externe aussitôt que je lui ajoute le shield Ethernet, sinon ça tire trop de courant du port USB et mon PC annule la connexion (à ma connaissance, je suis propriétaire du seul shield Ethernet au monde qui agit de cette façon).

5)  Ne pas oublier de brancher votre shield ethernet à un routeur au moyen d'un câble ethernet (je le précise, parce que ça m'est déjà arrivé d'oublier ce détail...).

6)  Le circuit d'essai n'a rien de compliqué:  un potentiomètre dont le curseur est branché à A3, et une LED (avec résistance de 150 Ω ou un peu plus) branchée à la sortie numérique 7.

7)  Voici mon sketch.  Avant de l'uploader dans l'Arduino, n'oubliez pas d'inscrire aux endroits appropriés votre APIKey et l'ID de votre appareil.  Vous pouvez également modifier l'adresse MAC si votre shield ethernet dispose d'une étiquette qui la mentionne.



8)  Ouvrez le moniteur série, tournez le potentiomètre de façon à allumer et éteindre la LED à quelques reprises.  Si le moniteur série affiche une erreur, je suis vraiment désolé pour vous.

9)  Vous pouvez accéder aux données acheminées à Carriots en cliquant sur le lien "Data streams" dans le control panel (une ligne pour chaque fois que vous avez allumé ou éteint la LED).

10)  Vous pouvez également cérer sur Carriots un "listener" qui se chargera de vous envoyer un email, un texto ou un tweet chaque fois que la LED changera d'état:  vous cliquez sur Wizard Create Listener et suivez les indications.

Dans une prochaine rubrique, je prévois faire un exemple de datalogging en explorant les possibilités d'accéder aux données sous forme de graphique.

Yves Pelletier (Twitter: @ElectroAmateur)

mardi 13 août 2013

Transformer un breadboard en synthétiseur

Oui, bon, par "synthétiseur"  je ne fais pas référence à un instrument de musique complet qui pourrait être utilisé par Jean-Michel Jarre lors de son prochain concert.  Avant de succéder à Robert Moog, soyons un tout petit peu moins ambitieux:  je vais me contenter de présenter quelques circuits simples qui produisent des sons synthétiques amusants, à partir de composants très communs comme des 555 ou des bascules de Schmitt.


Le 555

Bien entendu, une façon simple, rapide et efficace de produire un son est d'utiliser un circuit intégré 555 en configuration astable.  Par exemple, le circuit schématisé ci-contre produit un son dont la fréquence est contrôlée par un potentiomètre (j'ai branché des hauts-parleurs multimédias à la sortie, le genre qu'on achète pour brancher à un ordinateur, ce qui m'a évité de devoir moi-même ajouter un contrôle de volume).

Mais le son produit par un unique 555 devient vite ennuyant (et irritant!).  Le résultat  sera beaucoup plus intéressant (et presque aussi simple à réaliser) si vous ajoutez un deuxième 555 de façon à obtenir l'Atari Punk Console, (photo ci-contre) l'étrange nom sous lequel a été rebaptisé le "stepped tone generator" conçu par Forrest M. Mimms au début des années 1980 ("Atari", je veux bien mais "punk"!?!?!?  Je cherche en vain une vague similitude avec les Sex Pistols...).  J'ai fait la version "Kaustic Machines"  (voir schéma) puisque j'utilisais des enceintes pour ordinateur plutôt qu'un simple haut-parleur (mais j'ai utilisé deux 555 plutôt qu'un seul 556 puisque c'est ce que j'avais sous la main).

Voici une courte vidéo montrant à quel point ce circuit peut être irritant pour les membres de votre famille:



... et une autre vidéo montrant qu'on peut quand même l'utiliser pour faire de la très jolie musique!



Bascules de Schmitt

On peut aussi utiliser des bascules de Schmitt (Schmitt triggers) inverseuses comme le circuit intégré 40106 qui en contient 6:  en reliant la sortie à l'entrée (et en ralentissant un peu le signal au moyen d'une combinaison condensateur/résistance), on obtient une oscillation puisque la sortie cherche toujours à être dans l'état contraire à l'entrée.

Pour expérimenter la production de sons au moyen de Schmitt triggers 40106, je vous suggère d'essayer les petites expériences proposées sur la page CMOS Synthesizers de Beavis Audio:  on commence par un simple multivibrateur astable de fréquence variable (expérience 1), puis on en alimente un deuxième à partir du premier (expérience 6), on en achemine deux en parallèle à la même sortie (expérience 7),  et si le coeur vous en dit vous en combinez 4 pour obtenir l' "heterodyne space explorer" (Beavis Audio est un excellent site:  je m'en étais également inspiré l'an dernier pour construire un séquenceur programmable à base d'Arduino).

Pour un peu plus de variété, ajoutons à notre circuit intégré 40106 un compteur binaire 4040 et un multiplexeur/démultiplexeur analogique 4051.  La page  "Fun With Sea Moss" utilise ces 3 chips de façon créative pour obtenir des effets variés (notez le calambour:  Sea Moss / CMOS...).

J'ai essayé son arpégiateur et son séquenceur (photo ci-contre) qui produisent une succession de notes rapides (des échantillons sonores peuvent être entendus sur cette page).

Et si tout ça n'est pas suffisant, vous pouvez toujours vous attaquer au Weird Sound Generator du site "Music from Outer Space" de Ray Wilson, que j'avais essayé en décember 2011.  Ce circuit, qui utilise également des triggers de Schmitt 40106, est passablement plus ambitieux, mais produit une plus grande variété de sons.

Les circuits intégrés NE555 et CD40106 mentionnés dans cet article sont fabriqués par Texas Instruments.

Yves Pelletier (Twitter: @ElectroAmateur)

samedi 10 août 2013

Prise de courant secteur contrôlable par un Arduino

Je suppose qu'on pourrait considérer ça comme mes modestes débuts dans le domaine de la domotique: j'ai construit un câble d'extension muni de relais, ce qui permet de contrôler des appareils électriques au moyen d'un Arduino, d'un Raspberry Pi, etc.

Par exemple, on peut programmer l'Arduino pour qu'il allume ou éteigne une lampe selon un horaire précis, ou selon l'intensité lumineuse mesurée par une photorésistance, ou quand il reçoit le signal approprié en provenance d'une télécommande, etc.

Ce genre de dispositif peut être acheté tout fait dans le commerce, et on peut aussi se simplifier un peu la vie en utilisant un shield pour Arduino comportant le nombre désiré de relais (il y en a tout plein sur eBay).  Pour ma part, j'ai utilisé deux relais récupérés je ne sais plus où (chacune des deux prises est reliée à son propre relai, elles peuvent donc être contrôlées de façon indépendante) et le cordon d'alimentation d'une défunte bouilloire électrique, le seul investissement nécessaire a été l'achat d'un boîtier en plastique d'environ $2 pour que tout soit bien fermé de façon sécuritaire.

Je me suis beaucoup inspiré de ce tutoriel de Sparkfun et de ce schéma montrant la façon appropriée de bancher un relais à un Arduino (avec une diode, un transistor et une résistance).

Yves Pelletier (Twitter: @ElectroAmateur)

lundi 5 août 2013

Contrôler un Arduino avec une télécommande recyclée

Si vous êtes comme moi, vous disposez d'une assez grande quantité de télécommandes ayant jadis servi à contrôler des appareils aujourd'hui désuets ou hors d'usage, voire même disparus.  Ces télécommandes peuvent facilement servir à contrôler un Arduino à distance

.

Capteur:

Il vous faut un capteur de signaux infrarouges modulés à 38 kHz (c'est sur cette fréquence qu'émettent la plupart des télécommandes, mais certaines émettent à 56 kHz).  J'ai utilisé le TSOP4836 de Vishay, mais d'autres modèles feront tout aussi bien l'affaire.  Vous pouvez même en récupérer un à l'intérieur d'un vieux magnétoscope, téléviseur, etc.  Un simple phototransistor ne conviendrait pas, car il serait sensible à tous les signaux infrarouges et pas seulement ceux qui sont modulés à 38 kHz.

Voici un schéma du circuit recommandé dans la fiche technique du TSOP4836.  Si vous utilisez un autre capteur, le circuit adéquat pourrait être un peu différent (référez-vous à la fiche technique).  Ce n'est pas précisé sur le schéma, mais la broche 1 ("out") du capteur est branchée à l'entrée 11 de l'Arduino.



Librairie IRRemote:

Lorsqu'on appuie sur un bouton de la télécommande, cette dernière émet une série d'impulsions très rapides sous forme d'infrarouge.  Pour que l'Arduino soit en mesure de décoder les signaux reçus par le détecteur, nous utiliserons encore une fois la librairie "IRRemote" de Ken Shirriff, ce qui va énormément nous simplifier la tâche.

Une fois la librairie IRRemote installée, nous utilisons le sketch "IRrecvDump":  il s'agit d'un des exemples distribués avec la librairie.  Ce sketch va nous permettre:
1)  de vérifier que notre circuit récepteur fonctionne correctement
2)  d'identifier le protocole de communication utilisé par notre télécommande
3)  d'identifier le message associé à chaque bouton de notre télécommande

Après avoir téléchargé le sketch "IRrecvDump" dans l'Arduino et ouvert le moniteur série, voici ce que j'ai obtenu en appuyant à quatre reprises sur le bouton "1" de ma télécommande...



Je constate que ma télécommande utilise le protocole "RC5".  Étrangement, le bouton 1 émet parfois la valeur hexadécimale 801, et parfois la valeur hexadécimale 1.  Mon sketch devra donc tenir compte de ces deux possibilités.  Évidemment, j'ai trouvé la valeur émise par chacun des boutons (du moins, de ceux que j'avais l'intention d'utiliser).

Programmation d'un sketch:

Le sketch "IRrecvDump" m'a servi de point de départ pour rédiger mon propre sketch (ci-dessous), qui réagit aux boutons 0 à 9 de ma télécommande:  lorsqu'on appuie sur un bouton, son numéro est affiché sur le moniteur série.  De plus, les boutons 1 à 8 permettent d'allumer et éteindre 8 LEDs branchées aux sorties 2 à 9 de l'Arduino.

Yves Pelletier (Twitter: @ElectroAmateur)

vendredi 2 août 2013

Quoi de neuf en kiosque


Voici aperçu du sommaire du numéro courant des principaux magazines d'électronique, de robotique et de DIY.

Commençons par quelques publications en français:

Elektor numéro 421/422 (juillet/août 2013).   Ce gros numéro d'été n'était pas encore publié lorsque j'ai écrit ma rubrique précédente:  dessoudage de circuits intégrés CMS, télécommande par smartphone Android, interface universelle de mesure précise, alimentation temporisée pour circuits de précision, testeur de servo, ambiance lumineuse sur commande par LED RVB, régulateur de pompe pour voilier ou caravane, electorcardioscope Android, niveau à bulle acoustique,  1 bouton + 1 LED + 2 fils seulement, oscillateur à large bande à pont de Wien, contrôleur de charge 4 A pour panneau solaire, pilote sumo pour moteur CC, convertisseur élévateur MLI, limiteur de courant d'appel, chargeur de secours pour batterie de téléphone, huit relais et plus encore, pilote de moteur pas à pas, émetteur FM large spectre en bande 70 cm, veilleuse solaire, commande de cartes par PC, thermo-hygromètre, etc.


Fait Main Magazine volume 3.  Bon, d'accord, celui-là vous ne le trouverez probablement pas en kiosque, mais il a l'immense avantage d'être gratuit:  horloge arducomtoise,  l'hexapode Bleuette, un cadre numérique pas comme les autres, faire de la bière maison, valise ghetto blaster,  savon fait maison, etc.   Ne vous laissez pas rebuter par la mise en page de la version pdf:  le contenu est très bien.

Planète Robots numéro 22:  Fab labs, Imprimantes 3D, Robomow RS 630, Robots de piscine, Robot Combat League, programme spatial chinois, téléportation quantique, Flight Adventures, Leonovo Ideapad Yoga 13, Porsche 918, développer avec Nao, etc.

(Chez Électronique Pratique et Électronique et Loisirs, rien de neuf depuis la dernière fois.)

Et du côté des magazines en anglais:

Nuts and Volts August 2013:  A mathematics engine for microcontrollers (utilisation d'une calculatrice graphique TI-83 pour assister un microcontrôleur dans les tâches mathématiques!),  Build a 12 watt amplifier for 8 Ohm speakers, Build Your Own Induction Charger, More Raspberry Pi, Anyone?,  Arduino Handheld Prototyper, Lemos LMZ ZigBee Module, PICAXE Pi, etc.

Everyday Practical Electronics August 2008:  Driveway sentry, milliohm meter adaptor for dmms, build a vox, four-channel amplifier on the cheap, Particles and cosmics rays, Try some Raspberry Pi, Dataslicing and Manchester coding, etc.

Silicon Chip August 2013:  ADS-B & flightradar24.com, Adventure Cams: You’re Part Of The Action, Tiny Scope Shoot-out, PC Birdies: Bird Song Without The Mess, External HDDs - data recovery is not always a picnic, Track Aircraft On Your Own ADS-B Receiving Station, Build An iPod Charger Adaptor, Active RF Detector Probe For DMMs, Keypad & LCD for MiniMaximite, Pre-regulator For A Precision Voltage Reference, Extendable Mixer Circuit, Bar & Dot Display With BCD Decoders, Samsung Chromebook, 1.5kW Induction Motor Speed Controller Revisions, Restoring a 1946 HMV Model 456A mantel radio, etc.

Make 35:  The danger issue!  Introducing the Arduino robot, playing with fire, Stupid fun club, the maker kids are alright, Welcome - security is a superstition, chemical woodburning, electro-chemical kid sub, ez-make oven, lego phonograph, simple light-up hoodie, six-pack tesla coil, Tv-go-sleep universal tv timer, etc.

SERVO magazine, august 2013:  Making better Arduino robots with the ArdBot, 3D Printers part 4 (tuning), RoboGames requiem, PR2Lite grows up, It's all in your head, Tibbo Trouble, stimulating robot tidbits, tinker printer solder die, etc.

Circuit Cellar August 2013:  Systematic digital processing, DIY Single-Board computers, Raspberry Pi:  one year later 1 million sold, Raspberry Pi I/O Board, Concurrency in embedded systems, Testing and testability, Simulate and design a switched-capacitor filter, Advanced USB design debugging, Serial displays save ressources, etc.

Robot magazine 42 – September/October 2013: Robots In The 1950's Sci-Fi Movies, 13th Annual Bot Brawl, Saudi Arabia At The Vex Worlds, Stepping Out, Flowstone Workshop 10, Visualedge, National Association Of Broadcaster Show (NAB), Longarm, TLC For Custom Shipped Bots, What It Takes To Compete In Combat Robotics - Part II, IEEE Robotics App, New Single And Multi Player Video Games Teach Robotics Programming

The MagPi 15 - August 2013 (Celui-ci est gratuit aussi):  Using Nanpy to connect your Raspberry Pi to An Arduino, Using the Ino command line toolkit, The Raspberry Pi camera module, Raspberry Pi timekeeping with a real time clock, Building a toolkit of patterns, Play historic games on the Raspberry Pi, An introduction to XML, Assembly programming with RISC OS, Build a customised operating system, An introduction to Python iterators and generators, etc.

Yves Pelletier (Twitter: @ElectroAmateur)

dimanche 28 juillet 2013

Utilisation d'un 4050 pour abaisser un niveau logique (5 V à 3,3 V)

Comme vous le savez, les sorties logiques de l'Arduino se mettent à 5 volts lorsqu'elles sont dans l'état logique "Haut".  Toutefois, il est fréquent de devoir brancher à l'Arduino un périphérique fonctionnant à 3,3 volts (par exemple un lecteur de cartes SD, un module RF, etc.).  Il est alors fortement recommandé d'abaisser à 3,3 volts les signaux de 5 volts émis par l'Arduio avant qu'il n'atteignent les entrées du périphérique.

L'utilisation d'un circuit intégré 74HC4050 (ou à peu près n'importe quel circuit intégré comportant "4050" à l'intérieur de son numéro) constitue alors une solution simple et efficace.  Un seul de ces circuits intégrés vous permet d'abaisser 6 signaux différents.

Sur le schéma ci-contre, les pins "A" sont des entrées, et les pins "Y" sont des sorties.  Ainsi, si le signal à l'entrée "A1"  est de 0 V, le signal à la sortie "Y1" sera également nul.  Si le signal à l'entrée "A1" est supérieur ou égal à Vcc, le signal à la sortie "Y1" sera égal à Vcc.   Les pins NC ne servent à rien ("not connected").

Supposons, par exemple, que je désire brancher à l'Arduino un lecteur de carte SD.  Les signaux qui vont de l'Arduino vers la carte SD sont CLK (clock), MOSI (master out slave in) et CS (chip select).  On peut les abaisser à 3,3 V en les faisant d'abord passer par le 4050 de la façon illustrée ci-contre (comme vous le constatez, la pin 1 "Vcc" est alimentée à 3,3 volts, ce qui limitera tous les signaux de sortie à 3,3 V).


Le signal MISO (master in slave out) se déplace du lecteur de cartes vers l'Arduino et ne doit donc pas être abaissé (il est de 3,3 V l'Arduino l'interprétera sans problème comme un signal logique haut).  Le MISO de la carte SD est donc directement branché à la pin 12 de l'Arduino, sans passer par le 4050.

Il est souvent recommandé de brancher les entrées non-utilisées à la masse (GND) (mais vous laissez déconnectées les sorties non-utilisées).

Yves Pelletier (Twitter: @ElectroAmateur)

samedi 20 juillet 2013

Transmission de son par une LED infrarouge

Utiliser la lumière pour transmettre un son?  L'idée peut sembler audacieuse si on oublie que, tout comme les ondes radio utilisées de façon routinière en télécommunications, la lumière est, elle aussi, une onde électromagnétique.

Pour cette expérience très facile à réaliser, j'ai reproduit les deux circuits proposés par le néo-zélandais Denis Burchill.

Pour le circuit émetteur, j'ai utilisé une LED infrarouge du genre qu'on retrouve dans les télécommandes de téléviseur, car le phototransistor dont je disposais pour construire le récepteur est plus sensible aux longueurs d'onde infrarouges qu'aux longueurs d'onde visibles.  En bon nord-américain, j'ai aussi remplacé le transistor BC548 par un 2N3904.

Quant au récepteur, il est essentiellement constitué d'un amplificateur audio LM386, d'un phototransistor, et d'un haut-parleur.

Quelques dizaines de minutes ont été suffisantes pour monter un circuit fonctionnel:  de la musique provenant d'un lecteur mp3 fait osciller l'intensité lumineuse émise par la LED infrarouge.  Cette lumière variable, captée par le phototransistor, se transforme en signal électrique qui sera amplifié par le LM386 avant de faire vibrer le haut-parleur.

La qualité sonore du signal émis par le haut-parleur est évidemment inférieure à celle de la source initiale (le lecteur mp3), mais ça fonctionne bien en autant que l'émetteur ne soit pas trop éloigné du récepteur (dans mon cas, à 30 cm, le son devenait très faible).

Cette faible portée limite à mon avis les possibilités d'application pratique de ce circuit:  il s'agit d'abord et avant tout d'une expérience amusante et instructive, facile à réaliser avec du matériel très commun.

Pour une plus grande portée, il faut songer à remplacer la LED par un laser.  Ce sera peut-être le sujet d'une prochaine rubrique...

(Le schéma de circuit détaillé pour l'émetteur et le récepteur sont disponibles sur la page de Denis Burchill).

Yves Pelletier (Twitter: @ElectroAmateur)
Related Posts Plugin for WordPress, Blogger...