jeudi 20 octobre 2016

Fermeture de Codebender


Mise à jour (25 juin 2017):  Codebender a récemment annoncé sa résurrection, ayant été acquis par Codeanywhere.  Nouveauté importante: après une période d'essai gratuite d'un mois, vous devrez dorénavant payer un abonnement mensuel de $10 pour utiliser Codebender...

Il y a quelques mois, lorsque j'ai appris la création d'Arduino Create, qui permet de programmer votre Arduino en ligne à partir d'un fureteur web, j'avais mentionné que ce nouvel outil jouait beaucoup dans les plates-bandes de Codebender, qui offrait un service assez similaire.


Ce qui devait arriver vient d'arriver:  l'équipe de Codebender vient d'annoncer la fin de l'aventure. Le service était pourtant populaire (100 000 utilisateurs inscrits), mais il n'était malheureusement pas rentable.

À partir du 31 octobre, il deviendra impossible de créer un nouveau compte sur Codebender.  Le 7 novembre, la compilation sera désactivée.  Le 15 novembre, la création de projet sera désactivée, et le 31 novembre (ils ont un 31 novembre en Grèce?!?!?), les comptes d'utilisateurs existants seront désactivés.

Les projets hébergés sur le site seront accessible en lecture seule au moins jusqu'au 31 décembre, et possiblement plus longtemps si la demande le justifie.

Yves Pelletier   (TwitterFacebook)

lundi 17 octobre 2016

Appareil pour identifier les composants électroniques LCR-T3

Quand j'ai vu ce "DIY LCR-T3 graphical Digital Combo tester capacitor +inductance + resistor +SCR" offert sur eBay pour la modique somme de 9 USD, ça m'a semblé une addition très pertinente pour ma boîte à outils.

Il s'agit d'un appareil qui permet d'identifier et de mesurer les principales caractéristiques de divers composants électroniques:  résistances, condensateurs, diodes, transistors, etc.  D'après ce que j'ai compris, c'est basé sur le travail de Markus Frejek et Karl-Heinz Kübbeler.

Le dispositif est vendu sous la forme d'un kit:  avant de l'utiliser, l'acheteur devra lui-même souder 3 morceaux (fournis):  un connecteur ZIF, un bouton poussoir et un connecteur pour batterie 9 V.  20 points de soudure au total, rien de bien compliqué.



La photo ci-dessous montre le verso de la carte:  en plus du microcontrôleur (Atmega 328P, le même que l'Arduino Uno) et d'un quartz de 8 MHz, de nombreux petits composants SMD ont déjà été soudés sur la carte en usine.



Pour utiliser l'appareil, il s'agit d'insérer le composant à identifier dans le connecteur ZIF, puis d'appuyer sur le bouton.  Les caractéristiques du composant s'affichent à l'écran pendant quelques secondes (un peu plus tard, le dispositif s'éteint automatiquement).



Faisons quelques essais...

Je commence par insérer une résistance de 100 Ω dans le connecteur ZIF, puis j'appuis sur le bouton. Ça affiche une résistance de 100,8 Ω.  On peut mesurer n'importe quelle résistance jusqu'à 50 MΩ avec une résolution de 0,1 Ω.


Un potentiomètre sera 100 kΩ est correctement identifié comme un groupe de deux résistances en série:


Un condensateur de 100 nF est correctement identifié.  En prime, on indique la résistance équivalente série (ESR) et la perte de tension.



J'ai ensuite inséré un inducteur de forme toroïdale:  il a une inductance de 0,03 mH et une résistance de 0,3 Ω.



J'essaie maintenant une LED bleue.  Comme pour toutes les diodes, une illustration indique dans quel sens elle a été branchée.  On obtient également sa tension de seuil et sa capacité.



Succès mitigé pour la diode zener 1N5224 (2,8 V):  elle est identifiée comme une combinaison de 2 diodes.  Le vendeur affirmait pourtant que l'appareil pouvait identifier les diodes zener dont la tension est plus basse que 4,5 V.



Transistor bipolaire 2N3904:  on identifie la base, l'émetteur et le récepteur, on indique qu'il s'agit d'un NPN, on fournit le gain en courant et la tension base-émetteur.


Un MOSFET 2N7000:


Un triac:



Nous sommes limités à des composants comportant 2 ou 3 broches (pas question d'insérer un circuit intégré dans l'espoir qu'il soit automatiquement identifié), mais de toute évidence cet outil peut être très utile (particulièrement si vous récupérez des composants dans de vieux appareils, ou si vous achetez des composants en vrac).


Yves Pelletier   (TwitterFacebook)

samedi 8 octobre 2016

Capteur de lumière TSL2561 et Arduino

Je vous présente aujourd'hui une courte marche à suivre pour utiliser un module capteur de lumière TSL2561 avec une carte Arduino.

Lorsqu'on veut qu'un circuit électronique fasse la différence entre la lumière et l'obscurité (pour qu'une veilleuse s'allume automatiquement quand il fait noir, ou pour capter le signal pulsé d'une télécommande infrarouge, par exemple) l'utilisation d'une photorésistance ou d'un phototransistor est tout à fait appropriée.

Mais si vous désirez mesurer une intensité lumineuse, vous obtiendrez probablement de meilleurs résultats en utilisant un capteur plus sophistiqué.  Le TSL2561 est un capteur numérique (protocole I2C) qui indique l'intensité lumineuse en lux, de façon à imiter la réponse de l'oeil humain.  Pour ce faire, le TSL2561 comporte deux photodiodes: l'une d'entre elles mesure à la fois la lumière visible et l'infrarouge, alors que l'autre mesure exclusivement l'infrarouge.  Une équation empirique permet de calculer l'intensité lumineuse en lux à partir de ces deux mesures.

Le module

Le circuit intégré lui-même est liliputien:  ça vaut vraiment la peine de se procurer un module (breakout) auquel il suffira de souder une rangée de 5 pins.  Vous pouvez le trouver sur eBay pour $2 environ, à moins que vous préfériez vous procurer l'original développé par Sparkfun.

Les 5 connecteurs sont identifiés aux verso du module:

  • 3V3  et GND servent pour l'alimentation du module.
  • SCL et SDA servent à la communication i2C
  • INT peut être utilisée pour envoyer un "interrupt" au microcontrôleur, signifiant qu'une mesure a été prise.  Je n'ai pas utilisé cette option.
Connexions à l'Arduino

Rien de très surprenant ici, si vous avez déjà utilisé un périphérique i2c auparavant:  les pins i2c de l'Arduino Uno sont A4 (SDA) et A5 (SCL) (mais elles sont différentes sur d'autres modèle comme le Mega, par exemple)­.  Le breakout doit être alimenté en 3,3 V, mais il n'est pas nécessaire de convertir le signal de communication (qui sera, lui, à 5 V).
  • 3V3 du TSL2561 à 3V3 de l'Arduino Uno
  • GND du TSL2561 à GND de l'Arduino Uno
  • SCL du TSL2561 à A5 de l'Arduino Uno
  • SDA du TSL2561 à A4 de l'Arduino Uno

Installation de la bibliothèque

Sparkfun a mis au point une bibliothèque qui nous facilitera la tâche pour la phase de codage de l'Arduino.  Après avoir téléchargé la bibliothèque sur le site github, vous devrez l'installer manuellement (le menu "Ajouter une bibliothèque .zip" de l'IDE Arduino ne fonctionne pas pour ce fichier).   Vous devez donc décompresser le fichier "TSL2561_Luminosity_Sensor.zip", renommer son dossier "Librairies" à votre convenance, puis déplacer ce dossier à l'intérieur du dossier "Librairies" de votre sketchbook Arduino.

Utilisation du sketch d'exemple

Si votre bibliothèque a été convenablement installée, vous devriez voir dans le menu "Fichier / Exemples" une nouvelle catégorie intitulée "Sparkfun TSL2561", contenant un exemple intitutlé "SparkFunTSL2561Example".


Il s'agit d'ouvrir ce fichier, de le téléverser dans votre Arduino et d'activer le moniteur série pour voir apparaître les mesures.


"data0" et "data1" représentent respectivement les données brutes mesurées par chacun des deux capteurs, alors que le 3e nombre indique l'intensité lumineuse calculée en lux.  La mention "good" indique qu'aucun des deux capteurs n'était saturé.



Modifications au sketch d'exemple

Deux variables peuvent être modifiées pour que le sketch réponde mieux à vos besoins:

La variable booléenne "gain" est réglée par défaut à "0", ce qui est approprié pour mesurer des intensité lumineuses élevées.  Si vous désirez mesurer des intensités lumineuses plus faibles, vous pouvez régler cette variable à "1", ce qui multiplie le gain par 16.

L'entier "time" permet de régler le temps d'intégration (le temps pendant lequel le capteur compile une série de mesures qui seront utilisées dans le calcul).  Par défaut, ce temps d'intégration est de 402 ms, mais vous pouvez le régler à 13,7 ms (si time = 0), 101 ms (si time = 1),  402 ms (si time = 2) ou réglage manuel (si time = 3).

Vérifiez l'état de la variable booléenne "good":  si elle devient nulle, ça indique qu'au moins un des capteurs a saturé.  Il faut alors réduire le gain, ou diminuer le temps d'intégration.

Sources:  ce tutoriel rédigé par Sparkfun m'a été très utile.

Yves Pelletier   (TwitterFacebook)