FR201705
FR201705
le form www.elektormagazine.fr
el
nouv
radiocommande
XBee/nRF24
BBC micro:bit
pour électroniciens
premiers pas avec mbed
Dans cet
bidirectionnelle
te éditio
n
:
cartes et kits 5 projets
du labo
de développement
pour l’Internet des Objets
à 4 voies 6 projets
Bluetooth
de lecteu
r
, L-board
SPI, Li-io 2 ,
prototypage Bluetooth : module PSoC BLE n, I C,
au format L-board • Phantastron • analyseur de
XBee ...
signal par Ethernet : nouveaux logiciels •
Sigfox : donner vie aux objets • éclairage extérieur
variable (lampes à LED de 12 V) • transformateur de Tesla •
simulateur de présence • le bus I²C • chargeur d’accus Li-ion •
utilisation de l’eC-stencil-fix • hors-circuits de R. Lacoste : corrélation
préamplificateur numérique • Android sur Raspberry Pi (2) • Rétronique : PET fête
pour microphones ses 40 ans • WaterDeck : analyse de la consommation d’eau • loi sur les
professionnels robots ? • passerelle IoT et nœuds sans fil (2)
www.elektor.fr/arduino-36-experiences
ISBN 978-2-86661-204-7
www.elektor.fr/50-mini-projets-attiny-arduino
40ème année,
n° 465 – mai/juin 2017
ISSN 0181-7450
Dépôt légal : avril 2017
CPPAP 1113 U 83713
Directeur de la publication : Donatus Akkermans
www.elektormagazine.fr mai/juin 3
ce mois-ci
40e année – nº 465
mai/juin 2017
66 le Phantastron
drôle de composant n°30
88 projet 2.0
corrections, mises à jour
20
et courrier des lecteurs
6
26 trucs et astuces
panne de fer à souder gull-wing
104 expérimenter avec
40 microscope USB Andonstar V160 un transformateur de Tesla
indispensable pour travailler avec les CMS quelques composants
pour un effet électrisant
42 le bus I²C
cartes et
1 partie : le protocole
re 112 hors-circuits de R. Lacoste kits de développement
corrélation numérique : pour
82 Android sur Raspberry Pi (2) détection de motif et de période
afficheur piloté via le bus SPI
l’Internet des Objets
116 utilisation de l’eC-stencil-fix
99 Sigfox pour l’e-BoB avec capteur BME280 et
donner vie aux objets d’autres cartes
28
74 éclairage extérieur variable
www.elektormagazine.fr mai/juin 5
tremplins vers
cartes et
kits de développement
l‘ IoT
pour
l’Internet des Objets
Viacheslav Gromov (Allemagne), [email protected]
Les kits de développement pour l’IdO sont maintenant très d’Arduino, les nombreuses cartes ESP8266 et bien d’autres
complets : du câble USB en passant par la carte truffée de encore, pour mieux se concentrer sur les solutions des grands
capteurs jusqu’à l’accumulateur et au boîtier nécessaires. Peut- fabricants de semi-conducteurs, c’est quand même de là que
être est-ce en raison de cette énorme diversité que l’on s’y perd viennent les innovations les plus rapides des technologies IdO.
vite dans les choix à faire. Quel processeur adopter ? Quels Sans vouloir être exhaustives, ces quelques pages devraient
capteurs ? Quel système radio ? Comment l’alimenter ? Et puis vous montrer par coups de sonde quelques produits phares de
combien cela va-t-il me coûter, combien de temps y passer, l’IdO et les caractéristiques du matériel comme du logiciel ;
comment économiser l’énergie ? Et plein d’autres questions. nous irons voir les processeurs, en passant par les capteurs
Le marché est rempli à ras bord, pour ne pas dire saturé, de jusqu’aux modules radio, flambants neufs ou déjà éprouvés,
plateformes pour toutes les technologies existantes et tous les célèbres ou moins connus, bon marché ou chers, universels
champs d’application. ou spécifiques, de quoi permettre à chacun d’y trouver son
Ce survol n’abordera pas les célèbres plateformes IdO plus bonheur !
ou moins professionnelles comme micro:bit, certaines cartes
SensorTile de STMicroelectronics
STMicroelectronics (ST) a depuis peu commercialisé un kit très
intéressant du nom de SensorTile [4] dont le prix avoisine 80 €
(figure 4). Intéressons-nous au SensorTile de la taille d’une
pièce de monnaie, basé sur le microcontrôleur STM32L476 (M4,
80 MHz, 1 Mo de flash) et le BlueNRG-MS pour la communication
BLE. Il dispose d’un microphone, d’un baromètre et d’un accélé-
romètre, d’un gyroscope et d’un magnétomètre. Les connexions
www.elektormagazine.fr mai/juin 9
aussi avec une carte Nucleo ou une autre de la série Arduino de une licence, ce qui se fait automatiquement par courriel et ne
manière à ce que le SensorTile soit piloté par un autre micro- prend pas beaucoup de temps. L’appli permet aussi de charger
contrôleur (et inversement). des données dans le nuage Watson IoT d’IBM.
Les deux cartes d’adaptation sont équipées du connecteur SWD On peut rédiger le logiciel avec l’habituel compilateur STM32.
par lequel on programme le SensorTile, de préférence avec un Cela peut mener au modèle un peu plus complexe BlueMicro-
ST-Link, que l’on trouve aussi sur toute carte Nucleo à 64 bro- system2 que montre l’exemple de programme qui tourne à la
ches. Il y a encore dans le kit un câble de pontage. ST a aussi sortie d’usine sur le SensorTile. Ou bien, on utilise le modèle
développé une appli du nom de ST BlueMS qui, dès le déballage, aux fonctions de base simplifiées Starter Firmware pour lequel
fait la démonstration des capacités du SensorTile (figure 5). Pour il existe trois programmes de mise en train.
plusieurs exemples sur des capteurs, il faut cependant demander
Ce kit montre les capacités du module EZ-BLE PRoC (CYBLE- Figure 9. La philosophie LEGO du Creator de PSoC simplifie aussi
022001-00, M0, 48 MHz, 256 Ko de flash). Accompagnent ce la programmation de la liaison BLE, tout y est configuré d’avance
automatiquement.
SimpleLink SensorTag de Texas Instruments L’une des nouvelles balises est pilotée par un microcontrôleur
Vous pouvez acheter pour environ 30 € l’un des SensorTag de CC1350 Dual Mode (M3, 48 MHz, 128 Ko) qui communique
TI (figure 10) [9]. Au déballage, vous trouverez une balise de en BLE et, en outre, dans la bande de 1 GHz sur des dis-
la grandeur d’une boîte d’allumettes avec un boîtier en caout- tances jusqu’à 2 km ! De l’extérieur, on ne voit que quelques
chouc. Cela peut sembler inutile et contrariant, mais à y regar- boutons, mais derrière les étroites ouvertures dans le boîtier
der de plus près, on découvre tout ce qu’il y a dessous. Après intérieur en plastique se cachent bon nombre de capteurs :
l’installation de l’appli SensorTag de TI (figure 11), tout devient un microphone, des capteurs de lumière, d’humidité, de
clair : on peut interroger en direct tous les capteurs des balises pression d’air et de température (normal et infrarouge) et
par BLE ou WLAN (selon la balise) et transférer ces données enfin un accéléromètre, un gyroscope et un magnétomètre.
dans le nuage IBM Watson IoT pour une analyse. Il y a aussi une LED utilisateur. La petite pile bouton au dos
XDK de Bosch Connected Devices and Solutions paie près de 200 €. Bosch est mondialement connu pour ses
magnifiques capteurs, dont bon nombre sont installés sur XDK.
Le XDK110 (figure 6) de Bosch est là depuis longtemps, pour-
Il est logé dans un boîtier en plastique avec quatre LED, deux
tant il reste dans le coup [5]. Pour la grande qualité du boîtier,
boutons et il y a pour les capteurs une ouverture transparente
des accessoires, la présence en ligne et la carte elle-même, on
(champ magnétique, accélération, inertie, gyroscope, lumière,
température, hygrométrie, pression atmosphérique et audio). Sur
le côté, on voit un socle pour carte micro-SD, un connecteur de
programmation et une prise creuse à 26 contacts pour le câble
de liaison vers un T-Board (les deux sont joints à la livraison).
Ce T-Board (XDK Gateway, passerelle XDK), on peut aussi
bien l’insérer dans une plaque d’expérimentation pour se faire
rapidement un prototype. Le XDK s’occupe ainsi de tâches de
contrôle et de surveillance plus complexes en dehors de son
boîtier : de par son microcontrôleur ARM Cortex M3 avec 1 Mo
de mémoire flash, il dispose d’une puissance de calcul suffisante.
Si la mémoire de données ne suffit pas, il peut les enregistrer
sur la carte micro-SD. L’accumulateur de 560 mA lui autorise
les applications mobiles pour un bon bout de temps. On le pro-
gramme avec le Workbench XDK [6] gratuit. On y trouve de
nombreux exemples de programme et plusieurs notices explica-
tives progressives. La carte est équipée de BLE et WAN pour la
Figure 6. Les principaux composants du kit XDK110 ; un support communication avec un ordiphone (cf. l’exemple de programme
(mural) est aussi disponible. La photo montre bien l’étonnante VirtualXDK avec l’appli de la figure 7) ainsi qu’avec les autres
petitesse de l’objet. appareils IdO. Et on peut en même temps accéder à l’internet.
www.elektormagazine.fr mai/juin 11
D’autres producteurs de logiciel comme Relayr apportent
leur aide à XDK avec leurs propres
solutions (nuage, analyse, etc.).
La programmation s’opère nor-
malement au moyen du chargeur
d’amorçage programmé en usine
et l’interface micro-USB, vous ne
devrez vous servir d’un débogueur
externe branché sur les connexions
de programmation que dans des cas
exceptionnels.
En conclusion, on peut affirmer que
quand on recherche une plateforme
professionnelle, bien pensée et assis-
tée industriellement, ce n’est certai-
nement pas le prix élevé de XDK qui fera obstacle, bien au Figure 7. À gauche, la vue d’ensemble de l’appli VirtualXDK. Le bureau
XDK basé sur Eclipse, à droite, est familier des développeurs avertis
contraire !
qui ne devront plus apprendre que la programmation et les relations
(160343 – version française : Robert Grignard) avec le chargeur d’amorçage. Rien de pénible donc.
P-NUCLEO-USB001 de ST, USB-C est une interface typique (aussi pour le chargement !) sur les appareils
http://goo.gl/wjDplk IdO modernes qui, pour environ 50 €, montre les possibilités de la carte
Nucleo F072RB avec une carte d’extension pour fournir la puissance.
Kit IdO C027 de u-blox basé sur mbed, Cette carte IdO vaut, selon les modèles, à peu près 100 €, et met l’accent sur
http://goo.gl/QSz6Oh la localisation GPS et la réception UMTS/GSM, souvent indispensables sur les
appareils évolués.
Kit Thunderboard React/Sense de Silicon Labs, Ces deux cartes valent environ 30 € avec de nombreux capteurs, et d’autres
http://goo.gl/dfGhfy périphériques offrent, selon leur type, des techniques radio différentes pour un
bon rapport prix/puissance.
NuMaker Uni de Nuvoton, Dans le segment de prix inférieur, ce fabricant chinois propose quelques cartes
http://goo.gl/Nm9XkG IdO de la série NuMaker, ici aussi avec capteurs, Bluetooth et WLAN pour
moins de 30 €.
Kit de prototypage rapide IdO Synergy S3A7
Ce kit modulaire IdO pour un bon 150 €, avec son assez grand écran peut,
de Renesas,
sur base du concept « bac à sable » être combiné avec de nombreux capteurs
http://goo.gl/ov4UsG
différents et des modules radio.
Liens
[1] www.hexiwear.com
[2] www.hexiwear.com/getting-started/
[3] www.element14.com/community/docs/DOC-79058/l/warp7-the-next-generation-iot-and-wearable-development-platform
[4] www.st.com/sensortile
[5] http://xdk.bosch-connectivity.com/
[6] http://xdk.bosch-connectivity.com/software-downloads
[7] www.cypress.com/documentation/development-kitsboards/s6sae101a00sa1002-solar-powered-iot-device-kit
[8] www.cypress.com/products/psoc-creator-integrated-design-environment-ide
[9] www.ti.com/ww/en/wireless_connectivity/sensortag2015/
[10] www.ti.com/tool/ccstudio-wcs
Elektor, c'est bien plus qu'un simple magazine. C'est une communauté d'électroniciens, du débutant
au professionnel, désireux d'apprendre, de concevoir et de partager une électronique qui étonne.
Boutique en ligne d'Elektor : la caverne d’Ali Magazine Elektor : six numéros par an
Baba des électroniciens ! 10 % de remise d’électronique inédite (projets, bancs d’essais,
permanente pour les membres GREEN et GOLD. cours, trucs et astuces, actualité…).
www.elektor.fr www.elektormagazine.fr
facebook.com/ElektorFR twitter.com/Elektor
PROJET DU LABO
La Technique de Montage
en Surface (TMS) est
omniprésente aujourd’hui
avec beaucoup de
composants et modules
intéressants disponibles
uniquement sous cette forme.
D’où le besoin de cartes de liaison (BoB)
permettant aux ingénieurs et créateurs
d’évaluer ces composants et d’expérimenter
avec. La L-Board présentée ici permet de réduire
la place nécessaire pour ces BoB.
Normalement les BoB déploient les rettes et les platines d’essais. Pour les de broches suffit pour les enficher dans
minuscules contacts TMS vers le composants avec un nombre relative- une platine d’essais standard (les BoB
pas standard à taille plus humaine ment faible de broches comme les cap- utilisés dans l’actuelle série d’articles
de 2,54 mm (0,1’’), utilisé pour les bar- teurs et actionneurs, une seule rangée « Capteurs pour Arduino et Cie » en sont
GND
P3.2
XRES
P3.3
0.7 CK
P3.6
0.6 IO
P2.4
P3.5
P2.6
P3.7
P1.2
P3.1
P1.1
P3.4
P1.5
P2.3
P0.5
P2.2
P0.4
P2.1
P1.4
P3.0
P0.1
P1.3
P1.0
les contacts, insuffisant pour la plupart
des boîtiers ou même pour router plus de
quelques pistes vers le côté comme exigé
par le format T-Board. Du coup la carte
est toujours plus large que les 10 mm
idéaux.
Introduisons la L-Board
Le format L-Board proposé ici résout ces
problèmes. C’est une carte en deux par- L1 L2 L3
1u 25 CYBLE-214009 17 1u
P3.3 P2.1
célèbres meubles Suédois, le kit doit être 27
P3.2 P1.4
8
31 16
assemblé avant d’être prêt à l’emploi. 11
P2.5 P3.0
5
SWDIO P0.1
6 15
SWDCLK P1.3
29 3
Ma première L-Board XRES P1.0
GND
GND
www.elektormagazine.fr mai/juin 15
ronnement de Développement Intégré à la place. Espérons que le projet pourra
(EDI) téléchargeable gratuitement. Pour être mis à jour bientôt, car la gamme
se lancer, il suffit d’acheter un des kits étendue ouvrira BLE à un champ d’appli-
de prototypage avec l’adaptateur de pro- cations plus large que le remplacement
grammation et de débogage USB Kit- de câble original ou de réseau personnel
prog2, certains coûtant moins de 10 € (PAN). Un circuit imprimé pour ce nou-
(attention toutefois aux kits très simi- veau module est déjà disponible sur la
laires avec un simple adaptateur USB page du labo pour cet article [1].
chargeur d’amorce au lieu d’un Kitprog2
complet). Montage de L-board
La figure 1 montre le schéma de notre La L-Board est conçue avec une découpe
(votre !) première L-Board. Comme c’est en « V » qui se casse pour séparer pro-
une carte de liaison, il y a peu de com- prement les deux parties de la carte.
posants. Il suffit du module, quelques Le montage final nécessite le soudage
condensateurs de découplage et des fer- manuel de trois barrettes à 14 broches
rites pour maintenir le bruit au plus bas. sur la carte gouttière (pour cette version
Et bien sûr des barrettes. à 28 broches). La barrette arrière a des
Il aurait été idéal d’utiliser le module broches des deux côtés de la carte. La
en gamme étendue CYBLE-224116-01 barrette du milieu n’a des broches que
actuellement en échantillons et suppor- sur le dessus, il faut donc couper les bro-
tant BLE4.2, mais il n’était pas prêt à ches du dessous après les avoir
Figure 2. Vue 3D de la L-Board. Les broches
temps pour cet article et le CYBLE- soudées. C’est beaucoup
connectant l’arrière de la carte verticale à la
carte horizontale ne sont pas visibles. 214009-00 BLE4.1 a été utilisé plus facile de le faire
liste des
composants
Figure 3. Programmé de cette façon dans PSoC Creator, « Hello, world ! » n’utilise pas du tout le
microcontrôleur. Notez que tout ce qui est en bleu doit être ajouté sur la platine d’essais.
On trouve à droite le Component Cata- sique. Peu importe lequel, mais prenez
log. Glissez une Digital Output Pin depuis P2[3] pour l’instant. Il est repéré P2.3
la section Ports and Pins sur le schéma, sur la L-Board. Bien sûr le circuit phy-
et sélectionnez Configure par un clic sique de la LED doit être assemblé sur
droit. Dans l’onglet General, cochez les la platine d’essais (les composants hors
cases Digital Output, HW connection et circuit du schéma sont seulement pour
External terminal puis cliquez sur OK. la documentation).
Ajoutez une LED, une résistance et une Cliquez sur l’onglet TopDesign.cysh
alimentation depuis l’onglet Off-Chip pour revenir au schéma. Depuis l’onglet
du Component Catalog, disposez-les et Cypress du Component Catalog, ajou-
connectez-les (fig. 3). Dans l’arbores- tez un composant Clock (situé dans le
cence de l’espace de travail à gauche dossier System) et réglez-le sur 800 Hz.
du schéma, double-cliquez sur Pins sous C’est presque la fréquence minimale
Design Wide Resources. Vous verrez une accessible avec les diviseurs d’horloge
image du brochage du module et une intégrés. Ensuite ajoutez un composant
liste des broches sur le schéma, consti- Frequency Divider (situé dans le dossier
tuée pour le moment de l’unique bro- Digital\Utility) et réglez-le pour diviser
che de sortie ajoutée plus tôt. Dans le par 400, en connectant sa borne hor-
menu Port, assignez-la à un port phy- loge à l’horloge et sa sortie div à la bro-
programmation).
Branchez alors la
prise USB du Kitprog2
au PC (une rallonge mâle/femelle USB-A
convient). Sur la page d’accueil de PSoC
Creator, sélectionnez Create New Pro-
ject. Sélectionnez le CYBLE-214009-00
comme module cible. Sur la page sui-
vante, sélectionnez Empty schematic et
sur la dernière page sélectionnez un dos-
sier approprié pour stocker les fichiers.
À ce stade, on peut être agréablement
surpris en voyant un schéma vierge plu- Figure 4. Dans la version étendue de « Hello, world ! », la LED est pilotée à la fois par le
tôt que l’habituel éditeur de code ! microcontrôleur et les blocs de logique numérique programmable.
www.elektormagazine.fr mai/juin 17
che. Enfin, ajoutez un signal Logic High
(voir le dossier Digital\Logic) et connec-
tez-le à la broche Enable du diviseur.
Vous devriez maintenant avoir quelque
chose de similaire à la figure 3. Sauve-
gardez votre travail.
Sélectionnez alors l’option Program du
menu Debug. Une fois le projet construit
et téléchargé, la LED devrait commencer
à clignoter. C’est l’équivalent embarqué
du traditionnel Hello, world ! réalisé sans
écrire une seule ligne de code. En fait, le
processeur ARM ne tourne même pas :
cela fonctionne entièrement en logique
programmable !
Ajouter au schéma un Control Register
avec une seule sortie et une porte Nand.
Faites les connexions (fig. 4). Dans le
Workspace Explorer sur la gauche, ouvrez
le fichier main.c et ajoutez deux lignes
Figure 5. L’ajout d’un bloc CA/N au circuit permet de mesurer la tension directe de la LED. de code à l’intérieur de la boucle for (cf.
listage 1) :
#include “project.h”
Cette fois, sélectionnez Debug dans le
menu Debug. Le processeur ARM démarre
int main(void) et s’arrête avant la première ligne de code.
{ Pressez F10 deux fois et la LED commence
CyGlobalIntEnable; /* autoriser les interruptions */ à clignoter. Maintenez la pression sur F10
et constatez que la LED clignote quand
for(;;) le registre de contrôle est actif et reste
{ éteinte quand il est remis à zéro.
Control_Reg_1_Write(0x01);
Control_Reg_1_Write(0x00); Mesure d’une tension
Pour explorer les aptitudes analogiques,
}
mesurons la tension directe de la LED.
}
Allez d’abord sur la page System de
Design Wide Resources et réglez les
Listage 2. Le programme qui complète le circuit de la figure 5. tensions d’alimentation sur 5,0 V (nous
#include “project.h” considérons que la carte est alimentée
par le Kitprog2). Ajoutez au schéma une
int main(void) broche Analog, un Opamp et un Sequen-
{
cing SAR ADC. Configurez la broche pour
avoir un External terminal, l’ampli-op en
CyGlobalIntEnable; /* autoriser les interruptions */
Follower et le CN/A (DAC) à une cadence
d’échantillonnage de 100 000 éch/s.
volatile float32 volts = 0;
Réglez Vref select sur VDDA, Sequenced
ADC_SAR_Seq_1_Start(); channels sur 1, activez le canal 0 dans
ADC_SAR_Seq_1_StartConvert(); l’onglet Channels et mettez son mode
sur Single. Dans l’onglet Pins, assignez
for(;;) P2[1] à la broche. Câblez comme sur la
{ figure 5, sans oublier d’ajouter physi-
Control_Reg_1_Write(0x01); quement sur la platine d’essais le fil entre
volts = ADC_SAR_Seq_1_CountsTo_Volts(0, la LED et la broche analogique ! Ajoutez
ADC_SAR_Seq_1_GetResult16(0)); alors quelques lignes de plus au listage 1
Control_Reg_1_Write(0x00);
pour obtenir le listage 2 :
}
volatile float32 volts = 0;
}
ADC_SAR_Seq_1_Start();
www.elektormagazine.fr mai/juin 19
PROJET DE LECTEUR
BBC micro:bit
pour électroniciens
premiers pas avec mbed
Burkhard Kainka
La carte Arduino offre également diverses On peut donc réaliser les pre-
entrées/sorties, en revanche avec la BBC miers tests à l’aide de câbles munis de
micro:bit s’y rajoutent de multiples cap- dans les écoles, pinces croco (voir photo). Mais si cela
teurs et éléments de commande : deux c’est pourquoi elle est équipée devient plus complexe et que l’on a
boutons, un affichage à 5×5 LED, une de cinq grands points de contact avec besoin de plus de connexions, il convien-
boussole et un accéléromètre à 3 axes, des trous de 4 mm auxquels on peut dra de trouver une solution sous forme
ainsi que des capteurs de lumière et de facilement connecter des pinces croco- d’un connecteur si l’on ne souhaite pas
température. Cerise sur le gâteau : la dile (fig. 1). Comme il y a un risque de simplement souder de petits fils. Avec
transmission des données par Bluetooth toucher les broches voisines plus petites, ses connecteurs au pas de 1,27 mm, la
Low Energy. une solution a été trouvée : les bro- carte correspond en fait aux connecteurs
ches voisines des connexions de masse d’extension d’une carte-mère de PC mise
Contacts GND et 3 V sont au même potentiel. En au rebut. Il est certainement possible
La carte a été développée spécialement outre les broches voisines des grandes de réaliser quelque chose à l’aide de
par la BBC en collaboration avec l’uni- connexions des ports 0,1 et 2 supportent pince, scie et fer à souder. Mais c’est plus
versité de Lancaster pour être utilisée une connexion directe sans problème. confortable d’utiliser un connecteur avec
Premiers programmes
Les applications pratiques dans le
domaine de l’électronique sont très
faciles à réaliser. Il existe à ce sujet de
nombreux langages de programma-
tion développés spécifiquement pour
l’école [1][5]. Mais nous utiliserons C++,
car avec lui pratiquement tout est réa-
lisable, alors que d’autres langages de
programmation ont toujours quelques
restrictions. C’est particulièrement simple
avec la plateforme mbed [2], car on tra-
vaille en ligne et rien n’est à installer
localement.
Si vous ne l’avez déjà fait pour d’autres
projets, connectez-vous à mbed et créez
votre propre espace. Si vous essayez
alors de charger un exemple disponible,
il vous sera rappelé de choisir d’abord Figure 3. Utilisation d’une barrette comme connecteur.
www.elektormagazine.fr mai/juin 21
une plateforme, à savoir un système avec
lequel vous voulez travailler. Vous serez
guidé vers la page du matériel, vous
serez étonné par le nombre de systèmes
pouvant être utilisés, l’un d’entre eux
étant par ailleurs d’Elektor. Dans notre
cas, micro:bit est notre cible. On trouve
alors d’autres informations comme le
schéma de câblage de la carte micro:bit
et l’option « add to your mbed Compi-
ler ». On y trouve aussi les liens essen-
tiels vers la documentation de l’université
de Lancaster et les premiers exemples.
Le premier exemple s’appelle microbit_
blinky et doit à présent être chargé. Le
compilateur affiche la plateforme nou-
vellement intégrée et le programme
importé. Un clic sur main.cpp ouvre un
code source clair (fig. 4).
Mais c’est plus facile avec la documen- mais la lecture requiert une certaine
tation de l’université de Lancaster [3]. concentration. Toutefois il y a aussi l’in-
On y trouve pour chaque thème toutes terface série, on peut ainsi visualiser les
les informations importantes, mais aussi données sur un terminal. Il faut installer
des extraits de code qu’il est possible le pilote mbed Windows serial port pour
de copier et de coller dans son propre utiliser le tout sur un PC sous Windows.
code source. On pourrait donc simple- La procédure est décrite en [4].
ment compléter le code source dispo- En reliant la borne 3,3 V de la carte à
nible main.cpp dans notre projet micro- l’entrée 0, on obtient la valeur attendue
bit-hello-word et tester le tout après de 3300 mV. Des mesures comparatives
coup. Une alternative est de cloner le montrent que la tension réelle est légère-
projet et de continuer à travailler sur la ment inférieure. En fait la tension de 5 V
copie. Le projet cloné s’appelle désormais de l’USB de la carte est stabilisée à 3,3
par ex. microbit-test et dans un premier par un régulateur, puis connectée à VCC
temps fait la même chose. On présente par une diode Schottky.
ci-dessous quelques petits codes source Avec une entrée flottante, la mesure
qu’on peut simplement copier dans main. obtenue est environ 880 mV. Une
cpp et tester. Tous les programmes sont mesure simultanée à l’oscilloscope en
exemple. La ligne clé est explicite : uBit. disponibles en téléchargement au format haute impédance indiquera une ten-
display.scroll(«HELLO WORLD! :)») ; txt sur le site d’Elektor [8]. sion plus élevée qui s’interrompt briè-
compilez, transmettez, ça marche. vement à chaque mesure. En fait les
On pourrait penser d’abord, tant d’ef- Mesure de tension connexions les plus importantes (0, 1
forts pour un simple texte défilant ? On a toujours besoin dans un labo d’élec- et 2) comportent des résistances de rap-
Mais en fait mbed a bien plus à offrir, à tronique de CA/N. Micro:bit dispose d’un pel de 10 MΩ afin que les broches de port
savoir l’accès complet à tous les compo- CA/N à 10 bits et à six entrées possibles numériques puissent facilement être uti-
sants matériels importants du système, dont trois situées sur les grands points lisées en capteurs tactiles. La tension à
donc non seulement à l’afficheur, mais de connexion. Un simple programme est vide réelle devrait donc être de l’ordre
aussi aux ports avec convertisseur A/N présenté (listage 1) afin d’en tester les de 3,3 V. Pour mesurer celle-ci, on place
et MLI, aux capteurs spéciaux tels que caractéristiques. On obtient avec uBit. un condensateur de 100 nF à l’entrée.
la boussole et l’accéléromètre, et à bien io.P0.getAnalogValue() une valeur Celui-ci se charge alors à la tension à
plus encore. Sur notre plan de travail se à 10 bits pour une plage de tension vide puis fait office de tampon durant
trouve désormais le répertoire microbit jusqu’à 3,3 V. Celle-ci est convertie en la mesure.
et dans celui-ci le sous-répertoire micro- mV puis affichée.
bit-dal (Device Abstraction Layer) avec Tous les capteurs
un nombre incroyable de fichiers que l’on La méthode d’affichage typique sur la Le deuxième petit exemple (listage 2)
pourrait fouiller des heures durant pour carte micro:bit est le texte défilant sur montre de nombreuses mesures des
y découvrir toutes les possibilités. l’afficheur à LED. Cela fonctionne bien, différentes entrées et de capteurs, y
www.elektormagazine.fr mai/juin 23
Figure 6. Affichage des chiffres. Figure 7. Affichage du nombre 13579.
int main()
void ledDispay (int n){
{
int x;
uBit.init();
int y;
uBit.io.P1.setDigitalValue(0);
int d;
uBit.io.P2.setDigitalValue(1);
uBit.display.enable();
MicroBitImage image(5,5);
MicroBitSerial serial(USBTX, USBRX);
image.clear();
while (1) {
for(int i = 0; i < 5; i++){
int u = 3300 * uBit.io.P0.getAnalogValue()/ 1023;
d = 9 - n % 10;
uBit.serial.printf("%d\r\n", u);
n = n / 10;
ledDispay (u);
x = 4 - i;
uBit.sleep(500);
for(int j = 0; j < 5; j++){
}
y = d - j;
}
image.setPixelValue(x,y,255);
}
Publicité
Figure 8. Mesure de la tension d’une LED : 2,496 V.
Liens
[1] http://microbit.org/code/
[2] https://developer.mbed.org/
[3] https://lancaster-university.github.io/
microbit-docs/ubit/
[4] https://developer.mbed.org/handbook/
Windows-serial-configuration
[5] B. Kainka, BBC Micro:bit Tests Tricks Secrets Code,
CreateSpace 2016
[6] www.elektormagazine.fr/150652
[7] www.elektormagazine.fr/160274
[8] www.elektormagazine.fr/160273
www.elektormagazine.fr mai/juin 25
trucs et astuces
les lecteurs écrivent aux lecteurs
Encore des solutions futées qui facilitent la vie des électroniciens.
3. C’est terminé ! Voici un petit tuyau pour tous ceux qui pestent contre le prix
excessif d’une quantité minime de colophane. Sur l’internet, cher-
chez colophane+charcuterie. Vous y trouverez à moindres frais
À la place du flux No-Clean, on peut aussi utiliser de la colophane, de la poudre de résine de colophane pure en vrac, utilisée pour
nettement moins chère. On se procure une allumette (usagée), épiler les cochons ou plumer la volaille. On peut faire fondre cette
une bonne brosse à dents propre et un flacon de 100 ml d’al- résine en la chauffant et la conserver ensuite sous forme solide
cool éthylique à 99% (qui n’est pas là pour être bu !). Une aussi dans une petite boîte de crème préalablement bien nettoyée à
petite quantité d’alcool peut s’acheter en pharmacie (à un prix l’alcool et au produit à vaisselle.
de pharmacien) ou, pour moins cher, sur l’internet. Il faut évi-
ter l’alcool à brûler ou l’isopropanol qui laisseraient sur le circuit
imprimé des vilaines taches blanches très difficiles à enlever.
On liquéfie la colophane dans un récipient métallique, avec l’al- Nettoyage d’une tresse à dessouder
Peter Krengel
lumette on en prélève quelques gouttes qu’on répartit sur les
pattes de la puce. Ici aussi on doit faire vite. Si la colophane se La colophane est aussi utile dans le cas d’une tresse à dessou-
solidifie trop vite, on peut préchauffer le circuit imprimé entre 120 der qui n’absorbe plus. On plonge la tresse dans de l’acide chlo-
et 130 °C avec un sèche-cheveux, ou mieux, une soufflante à rhydrique dilué entre 5 à 10% (disponible en grande surface de
air chaud. bricolage), ce qui élimine l’oxyde de cuivre soluble dans l’acide.
Ensuite on rince la tresse à l’eau et on la fait passer dans la colo-
Comme précédemment, on balaie les pattes avec la panne gull-
phane fondue. On attend qu’elle durcisse et on élimine l’excédent
wing vide, plusieurs fois au besoin. Toutes les bavures de soudure
de résine. Votre tresse n’aura jamais aussi bien fonctionné, on
devraient maintenant s’être accumulées sur les pattes ou sur la
parie ?
panne, laissant des points de soudure propres. (160324 – version française : Helmut Müller)
La brosse à dents et l’alcool entrent maintenant en action, car
contrairement à la méthode No-Clean, l’usage de la colophane
rend un nettoyage à l’alcool obligatoire, car les pattes continuent
Vous avez une solution futée pour arranger une bricole… Une façon bien à vous d’utiliser un
composant ou un outil… Vous savez comment résoudre un problème plus facilement ou mieux
qu’avec la solution actuelle… Écrivez-nous – chaque astuce publiée vous rapportera 40 € !
www.elektormagazine.fr mai/juin 27
PROJET DU LABO
préamplificateur
simple
pour microphones
professionnels
Circuit d’amplification microphones avec un rapport de 1:10. leur marché est un excellent choix ; tou-
La figure 1 représente le schéma du Ce type de transfo élève de 20 dB la tefois pour le prototype du préampli, j’ai
préamplificateur. Apparemment suran- tension du signal, ce qui améliore consi- utilisé un TL071 avec un résultat éton-
née, l’utilisation d’un transformateur dérablement le rapport signal/bruit du namment bon [2]. Les amplificateurs
(TR1) permet de concevoir un circuit préamplificateur. opérationnels doubles comme OP2134
simple avec un isolement galvanique effi- Pour conserver tous ces bénéfices, il faut ou TL072 conviendront parfaitement à
cace de l’entrée et une bonne réjection un amplificateur opérationnel à entrées des réalisations stéréophoniques.
du signal en mode commun. Le trans- FET dont le courant de bruit est négli- Pour acheter le transformateur, jetez
formateur réduit substantiellement les geable. L’ampli op AD743 est idéal parce un œil chez Bürklin [3] qui propose des
interférences telles que celles provo- que son bruit d’entrée est très faible modèles avec un bon rapport qualité/
quées par les téléphones portables. Vous (2,9 nV/√Hz [1]), mais il est cher. Le prix. Les sociétés Lundahl [4], Sowter [5]
trouverez facilement des modèles pour modèle OPA134 de Burr-Brown (TI) meil- et Jensen [6] proposent des produits
6k8
MIC.
K1 TR1
* 3
8
7
K2
5 1 6 R11
1 2 2 R4 IC1 47R
6 C2 2
OPA134PAG4
470k
4
7
3
XLR 1 NM
8
C4 K5
100n
-12V
K6
20dB 70dB
30dB 60dB
40dB 50dB
R6 R7 R8 R9 R10
2k2 6k8 22k 68k 220k
S1A
C6 C7 C8 C9 C10
+12V +48V
S1B C5
R12 R13
15u
2k2
12k
LED1 LED2
www.elektormagazine.fr mai/juin 31
D9
1k
T3 C14 C13 D10
+48V
C20 R4
10n C18 C17 MPSA42 100n 220u
0
22k
R7 100V
C21 470u 100n R3 BC547C
470R
10n 100V
T4
R8 *
39k
D7 1N4148
C16
1N4007
100k
FL6/24 220u D11
C22 100V C15
6VA / 2x 24V MPSA42
10n
D12 R9 HS1
D8 15n
0W5
33k
D5 ... D8 = 1N4007
12V
D1
IC1 +12V
C9
F1 10n 7812
1 3
F5 (115VAC: 200mA T) TR1 D2
100mA T
JP1 C4 C3 2 C2 C1
100mA T C10 K1
(115)
K3 L1 10n
C24 C23 2200u 50V 100n 10µ 50V 100n +12V
0
(115) 230
qui protège le transformateur TR1 est est en fonction. Certains exemplaires du lateur IC2 à la masse du circuit via une
dimensionné selon les prescriptions du régulateur 7912 ne délivrent leur tension résistance de 2,2 kΩ si la LED1 n’est pas
constructeur. La diode électrolumines- nominale que s’ils sont chargés par un montée. L’ampli op OPA134 consomme
cente LED1 montée sur la face avant de courant minimal de 5 mA. Il est donc au maximum 5 mA à Tamb = 25 °C. Les
l’alimentation signale quand l’appareil pertinent de connecter la sortie du régu- régulateurs n’ont donc pas besoin de
radiateur, même lorsque deux amplifi-
cateurs sont raccordés.
Les ordinateurs de bureau produisent
tous des tensions de +12 et −12 V
que l’on peut utiliser pour alimenter le
préampli. Si vous choisissez cette solu-
tion, filtrez soigneusement ces tensions :
elles seront certainement polluées par
le bruit produit par la carte-mère et
d’autres matériels. Il est prudent d’in-
sérer des fusibles lents de 100 mA dans
chacune des lignes d’alimentation afin
de ne pas endommager l’ordinateur en
cas d’incident.
Alimentation 48 V
La partie haute de la figure 3 montre l’ali-
mentation qui fournit si nécessaire la ten-
sion de 48 V. La norme EN 61938 [8] pré-
voit pour les micros un courant de 10 mA
Figure 4. Circuit imprimé garni de la double alimentation. tout au plus, et tolère un écart de ten-
sion de ±4 V autour de la valeur nomi- refroidir T1. Recours ultime, le fusible secteur : 115 V et 230 V. Pour le 230 V,
nale. La tension du secteur est appli- lent F3 de 100 mA limitera sans aucun il faut un fil de liaison pour JP1 ; pour
quée au transformateur TR2 qui délivre doute les dommages dans les situations le 115 V, il en faut deux. Attention : il
2×24 V. Le régulateur repose sur un désespérées… Le transistor T3 et la résis- n’y a jamais trois fils, c’est clairement
schéma conventionnel et ne comprend tance R6 limitent à 50 mA l’intensité du indiqué sur le circuit imprimé. Pour
que des éléments discrets. La diode courant produit par cette alimentation, le 115 V, il faut doubler le calibre du
Zener de 12 V constitue la référence de c’est largement suffisant pour plusieurs fusible. Le fabricant des transformateurs
tension ; pour le réglage de la tension, micros. Les condensateurs électrolytiques ne recommande de mettre des fusibles
le signal de rétroaction est appliqué au de l’alimentation de 48 V doivent suppor- qu’au secondaire. Toutefois, pour plus
transistor T4 via R7 et R8. Le transis- ter une tension de service de 100 V. Enfin de sécurité, nous avons ajouté celui des
tor T1, un TIP31C, est généreusement le labo d’Elektor a mesuré une ondulation primaires.
dimensionné afin de résister aux mau- résiduelle inférieure à 0,2 mVcc à 10 mA,
vais traitements. En outre T1 est monté éliminée par la carte de l’amplificateur. Pour habiller les deux circuits imprimés,
sur un radiateur parce qu’il chauffe à le labo d’Elektor a choisi deux boîtiers de
cause de la tension d’entrée élevée du Assemblage du tout la série 1455 de Hammond (voir photo
régulateur. Une résistance thermique Les primaires des transformateurs TR1 en début d’article). L’ampli est dans le
d’environ 20 °C/W sera suffisante pour et TR2 supportent les deux tensions de petit boîtier.
www.elektormagazine.fr mai/juin 33
Attention : l’enveloppe métallique du Sécurité : les câbles de la prise secteur ment à la tension secteur doivent se trou-
transformateur Jensen peut court-circui- sont connectés directement sur le circuit ver à au moins 6 mm des parties métal-
ter les pistes du circuit imprimé : lorsque imprimé, et aucun contact ne doit être liques du boîtier. Sous le circuit imprimé,
vous souderez ce composant, laissez de établi avec le boîtier, ce qui garantit un coupez aussi court que possible les fils et
l’espace entre lui et le circuit imprimé isolement de classe II. Tous les fils, toutes broches soumis à la tension secteur. Pour
ou interposez un film isolant d’un demi- les broches et toutes les pistes du circuit le câblage de l’alimentation, il faut utiliser
millimètre d’épaisseur. imprimé reliés directement ou indirecte- du fil souple de 0,75 mm2.
Courbes relevées par le labo d’Elektor avec son analyseur audio de précision
Conditions dans les deux cas :
• impédance de la source = 200 Ω ;
• gain min. = 19,4 dB ;
• tension de sortie max. = 7,8 V (THD 0,1%, gain 70 dB)
Couleur de la courbe en fonction du gain total : 70 dB (bleu clair), 60 dB (vert), 50 dB (jaune), 40 dB (rouge), 30 dB (rose) et
20 dB (bleu foncé).
Amplitude en fonction de la fréquence pour les différentes valeurs du gain, sur la plage de 10 à 200 kHz.
À 20 dB (bleu foncé), la courbe est presque celle du transformateur. IC1 agit simple-
ment comme un tampon. À 151 kHz il y a un pic de résonance dont l’amplitude et la
fréquence dépendent grandement de l’impédance et du type de la source (asymétrique
ou symétrique). Pour les gains de 30, 40 et 50, les fréquences de coupure sont plus
ou moins la même, mais à 60 et 70 dB, la bande passante au gain unité de l’ampli
op commence à apparaître. Avec le gain de 50 dB, la bande passante de l’OPA134
est égale à 8 MHz/316, soit 25,3 kHz ! Si vous voulez plus de bande passante avec
les gains les plus élevés, le LME49710 (produit gain-bande passante = 55 MHz) ou
l’OPA627 (produit gain-bande passante = 16 MHz) sont des options possibles. Rem-
placer le condensateur C5 par un 22 µF abaissera la fréquence de coupure à 9,6 Hz
et le gain relatif à 20 Hz de −1,48 dB à −0,87 dB.
www.elektormagazine.fr mai/juin 35
Distorsion + bruit en fonction du niveau Transformée de Fourrier rapide (FFT) FFT à 1 kHz pour un gain total plus
de sortie à 1 kHz et pour une bande à 1 kHz pour le gain total le plus faible élevé (70 dB) et Vsortie = 1 V.
passante de 22 kHz. (20 dB) et Vsortie = 1 V. Comme toutes les fréquences (lire
La distorsion repart à la hausse aux Il y a essentiellement un 3e harmonique « bruit ») sont proches du niveau
extrémités des courbes pour les gains à −90 dB, responsable du résultat de 90 dB, « distorsion harmonique
les plus élevés. « distorsion harmonique totale + bruit » totale + bruit » est égal à 0,078%.
égal à 0,0032%.
Amplitude en fonction de la fréquence pour les différentes valeurs du gain, sur la plage
de 10 à 200 kHz.
Il y a un pic de résonance juste après 200 kHz. La bande passante totale est inférieure
à celle observée avec le transformateur Lundahl, mais satisfaisante pour la pratique.
Remplacer le condensateur C5 par un 22 µF abaissera la fréquence de coupure de 15,3
à 12 Hz.
Distorsion + bruit en fonction de la fréquence pour Vsortie = 1 V et les différentes valeurs
du gain sur une bande passante de 80 kHz.
Ce n’est qu’aux fréquences les plus basses que la somme « distorsion totale + bruit »
est supérieure à celle observée avec le transformateur Lundahl.
Microphone Transformer
R1 R2 R3
Vout
n2 Rmic n2 Rp tr. Rsec tr. IC1
R5
Rfb 2
R4 Equals
MIC1 R7
R
R6
Ka
U = n * Umic Rfb
Rfb 1
Feedback Loop
Rfb = Rfb 1 * Rfb 2 / (Rfb 1 + Rfb 2)
Ka = Rfb 1 / (Rfb 1 + Rfb 2)
www.elektormagazine.fr mai/juin 37
lorsque cette dernière est utilisée. Il en résulte une résistance (1), (4) et (5) :
totale égale à :
Rinp pos = 102 ⋅ (100 + 50 ) +1500 = 16500
1 1
Rinp pos = =
(2) 1 1 1 1 et
+ + 1
Ra R4 n2 ⋅ Rmic + Rp tr + Rsec tr R4
( ) Rfb = = 996,87 ≈ 997
1 1
+
1000 319 ⋅103
L’entrée négative de l’ampli op est reliée aux résistances Rfb 1 et
Rfb 2. Ce réseau de rétroaction se caractérise par une atténua-
tion Ka et une résistance équivalente valant respectivement : On introduit ces valeurs dans l’éq. (5) :
avec kb la constante de Boltzmann, T la température en kelvins ampli op AD743 OPA134 NE5534 TL 071
et B la bande passante du signal. en op (nV / √Hz) 2,9 8,0 4,0 18,0
La tension de bruit imputable à l’ampli op sera égale à : in op (pA / √Hz) 0,0069 0,003 1,5 0,010
en comp actif 502 nV 1,39 μV 5,24 μV 3,12 μV
2
(6) en comp actifs = { ( ) }
e2n op + ⎡⎣in op ⋅ Rinp pos + Rfb ⎤⎦ ⋅ B en totale
(S+N)/N (dB)
2,99 μV
84,46
3,26 μV
83,72
5,47 μV
79,23
4,29 μV
81,33
www.elektormagazine.fr mai/juin 39
banc d’essai
microscope USB
Andonstar V160
indispensable pour travailler avec les CMS
En soudure manuelle de CMS, le risque de défaut est élevé : haute résolution et même aux appareils à rayons X spécialisés.
soudure froide et pâté entre deux pastilles sont difficiles à Naturellement les prix sont tout aussi professionnels : haut
éviter. Une bonne loupe, si possible éclairante, peut aider à de gamme ! Le microscope USB peut constituer une alterna-
découvrir de telles imperfections. Cependant, son grossisse- tive bon marché. L’offre est tellement vaste que le choix n’est
ment est insuffisant pour détecter certains défauts. L’espace pas évident.
entre la loupe et le point de soudure est souvent si réduit qu’il
est impossible d’y glisser la panne d’un fer à souder. Les fabri- Immobilité parfaite
cants de matériel optique professionnel proposent de quoi se En utilisant un microscope USB, on se rend vite compte qu’il
sortir de ces situations épineuses. La palette s’étend des clas- n’y a pas que la résolution et l’agrandissement qui comptent.
siques microscopes binoculaires aux caméras de contrôle à Les qualités mécaniques ont une influence déterminante sur
Pour PC et tablettes
Les microscopes USB sont étroitement apparentés aux camé-
ras électroniques, ils sont compatibles avec la plupart des logi-
ciels d’imagerie pris en charge par les systèmes d’exploitation.
L’Andonstar V160 est livré avec un CD qui contient le logiciel
pour Windows. Le site d’Oasis Scientific [1] propose également
les logiciels pour tous les systèmes d’exploitation habituels ou
presque, Linux est le grand absent. Fig. 1. L’Andonstar V160 en action, associé à une tablette Android.
Nous avons essayé ce microscope USB avec une tablette
Android, une association pertinente, surtout si la place sur
l’espace de travail est mesurée. L’appli que nous avons uti-
lisée s’appelle mScope, elle a donné toute satisfaction. Pour
mScope, la tablette doit prendre en charge l’USB-OTG et le
Seule une platine massive garantit
raccordement nécessite un câble d’adaptation USB-OTG. La
plupart des applis pour caméra peuvent enregistrer des photos des images sans tremblement.
et même des petites vidéos, cela peut être utile pour docu-
menter des projets.
Un outil indispensable
Au labo d’Elektor, depuis que nous avons l’Andonstar V160,
les loupes restent dans les tiroirs, surtout pour souder les
CMS. Avant d’arriver à coordonner le mouvement de vos outils
tout en regardant l’écran, il faut un temps d’apprentissage. À
la résolution maximale (1600 × 1200), il y a un léger retard
de l’affichage qui force l’utilisateur à adapter ses gestes. Il
faut en toutes circonstances garder un œil sur le fer à souder
chaud pour ne pas trop l’approcher du microscope et risquer
de l’endommager. Finalement, on s’habitue rapidement à cette
observation indirecte via l’écran. Dans le coin CMS de notre
labo, le microscope USB Andonstar V160 est devenu rapide-
ment indispensable. Fig. 2. Broches d’un circuit intégré de type CMS affichées sur l’écran avec
(160367 – version française : Yves Georges) un fort grossissement.
www.elektormagazine.fr mai/juin 41
le bus I²C
1re partie : le protocole
Josef Möllers
Il n’est pas nécessaire d’aller dans les détails techniques pour vous trouverez la spécification officielle complète de NXP (qui
découvrir à quel point ce bus I²C est d’emploi facile. Nous a repris Philips Semiconductors) sur [1] et dont la lecture est
examinerons d’abord le protocole de transmission des don- évidemment recommandée.
nées, puis nous ferons des essais de communication avec dif-
férents systèmes, depuis Arduino et RPi jusqu’au PC lui-même Il y a sur l’internet une infinité de ressources sur le thème du
et finalement, nous irons à la rencontre de quelques puces I²C bus I²C. Citons par exemple le site en anglais [2] de la société
spécialisées et verrons comment lever une panne de transfert hambourgeoise telos Systementwicklung GmbH où l’on trouve
d’information. à peu près tous les aspects de la communication sur ce bus.
C’est Philips Semiconductors qui a conçu le bus I²C dans les Petit détour par la couche physique
années 1980. Si vous ne tenez pas à aborder le bus I²C comme En général, un microcontrôleur programmable commande des
une boîte noire associée à des bibliothèques de logiciel tout blocs périphériques à fonction précise, comme extension de
fait, mais que vous voulez tout savoir jusqu’au niveau du bit, port, horloge ou EEPROM. Le contrôleur est le maître, il pour-
VCC
I2C Device #1 I2C Device #2
Rp Rp
SDA
SDA in SDA in
SCL
SCL in SCL in
GND
10k
10k
10k
10k
on peut aussi connecter plusieurs maîtres au même bus I²C.
L’une des deux lignes du bus véhicule le signal d’horloge SCL, SDA SDA
l’autre le signal de données SDA. Un câble plat à quatre conduc-
teurs suffit ainsi pour commander les périphériques et les ali- 3.3V I2C 5V I2C
menter. Pour limiter la diaphonie, mieux vaut utiliser pour la
SCL SCL
masse le fil situé entre ceux des deux signaux.
www.elektormagazine.fr mai/juin 43
SDA
SDA
MSB acknowledgement
signal from slave
SCL
S SCL 1 2 7 8 9
ACK
START condition
Figure 4. Pour démarrer une communication, il faut remplir la condition Figure 5. La manière de passer les bits d’adresse.
de START.
2. Après quoi, le maître, comme l’indique la figure 5, envoie qui veut que la ligne SDA ne puisse pas varier tant que la ligne
d’abord l’adresse de l’esclave, bit de poids fort en tête SCL est au niveau haut.
(MSB), suivie du bit de lecture/écriture (L/E) (0 = donnée
de l’esclave au maître ou 1 = donnée du maître à l’esclave). Le nombre d’octets qu’une communication peut transmettre
L’adresse d’esclave compte généralement sept bits (le stan- est en fait illimité. En revanche, des protocoles plus élaborés,
dard I²C permet aussi des adresses plus longues sur 10 bits, comme Power Management Bus (PMBus) ou System Manage-
mais c’est rarement utilisé). Le fabricant des blocs périphé- ment Bus (SMBus), qui sont basés sur le bus I²C, définissent
riques fournit lui-même l’adresse, en partie du moins. La des limites supérieures ou des formats d’enregistrement, qui
plupart du temps, le fabricant laisse à disposition quelques contiennent par exemple la longueur de la transmission. En fait,
bits que l’on peut définir soi-même par câblage extérieur de la transmission « sans frontière », n’importe quelle plateforme
manière à associer sur le bus plusieurs blocs identiques en ou bibliothèque ne la permet pas, parce que généralement, il
leur conférant des adresses différentes. Les adresses des faut préciser dès le début de la transmission le nombre d’oc-
composants périphériques sont indiquées dans les fiches tets à recevoir. Par exemple, la bibliothèque Wire d’Arduino
techniques, mais on peut les obtenir avec un outil tel que définit dans ce protocole un temps limite, par exemple pour
i2cdetect. Au total, l’adresse d’esclave et le bit de L/E font la mise en pause de l’horloge (clock stretching, cf. plus loin)
8 bits, donc un octet. ou la détection d’erreur par contrôle de redondance (Packet
Error Checking, PEC).
3. Après l’envoi de l’adresse, le maître transmet à coups d’hor-
loge SCL les données utiles, toujours sous forme d’octets Une communication (entre START et STOP) est toujours unidi-
avec le bit de poids fort MSB en tête (figure 6). Si le bit rectionnelle. Le maître fixe le sens de la communication avec
de L/E dans l’octet d’adresse était un 0, le maître attend le bit de L/E pour toute sa durée.
que l’esclave mette au bon moment les bits de donnée sur
SDA pour produire lui-même les impulsions en mesure sur Seules quelques puces ont une structure si élémentaire qu’elles
SCL. En revanche, si ce fameux bit était un 1, c’est au tour ne peuvent communiquer que d’une seule manière, par exemple
du maître de passer les bits de donnée sur SDA et tou- le PCF8574 (que nous utiliserons dans la dernière partie de
jours de produire les coups d’horloge. Pour chaque octet, y cette série). Avec la plupart des composants I²C, le maître
compris ceux d’adresse avec l’indicateur de direction L/E, doit, avant de pouvoir lire, effectuer une opération d’écriture
chaque destinataire doit envoyer un neuvième bit comme pour envoyer à l’esclave un paramètre tel qu’un numéro de
accusé de réception. Un niveau bas pour une bonne arrivée registre ou une adresse mémoire. S’il veut ensuite envoyer des
(ACK), un niveau haut pour un déni de réception (NACK). données à l’esclave, il peut le faire en effectuant une écriture
Un NACK ne signifie d’ailleurs pas que la transmission a à l’endroit désigné par le paramètre. Si le maître veut lire des
raté ou que les données étaient fausses, mais seulement données issues de l’esclave, il doit lancer une nouvelle opéra-
que c’est la fin de la transmission. Quand il s’agit de l’octet tion de lecture. Pour éviter qu’un autre maître s’immisce dans
d’adresse, un NACK signale qu’aucun esclave n’a reconnu la conversation en envoyant au même esclave un autre para-
l’adresse ou que la combinaison de l’adresse et du bit de mètre, le maître actif peut remplacer la condition de STOP par
L/E n’était pas valide. une nouvelle condition de START, ce qui s’appelle alors une
condition de REPEATED START :
4. À la fin de la transmission, le maître libère d’abord la ligne
d’horloge SCL, puis la ligne de données SDA et donc les Start - Adresse+Write - Registernumber - (Repeated)
deux lignes retournent au niveau haut à cause de résis- Start - Adresse+Read - Data- … - Stop
tances de polarisation. Cette séquence (figure 7) s’appelle
STOP condition. Le cas échéant, le maître peut abaisser en De nombreux blocs périphériques, comme des mémoires ou le
premier la ligne de données SDA. RV-8523 de RTC, incrémentent automatiquement le numéro de
registre ou l’adresse mémoire après chaque accès, d’autres,
Les conditions START et STOP sont des exceptions à la règle comme le capteur de température LM75, ne le font pas. Avec les
Figure 6. Le transfert des bits de données. Figure 7. La clef pour clore la communication : STOP.
premiers, on peut dans une seule communication transmettre transmettre attend simplement que le bus se libère pour com-
tout le banc de registres ou de mémoire, avec les autres, il faut mencer, tout en surveillant ce qui se passe sur le bus. On ne
répéter chaque fois l’adresse. D’un autre côté, quand on veut trouve rien d’autre dans la documentation de NXP.
tout le temps lire le même registre, par exemple le registre de
température du LM75, on peut se passer de répéter le numéro Tout maître peut d’ailleurs à tout moment interrompre une com-
de registre. Les détails sur le sujet sont dans la fiche technique. munication avec une condition de STOP. Un récepteur aussi peut
Le protocole I²C ne prévoit pas les interruptions. Bien sûr, un le faire d’un simple NACK dans l’octet d’accusé de réception,
esclave pourrait déclencher une interruption chez le maître mais jamais un esclave comme émetteur. Même si l’esclave,
par une ligne séparée. Après quoi, celui-ci appelle l’esclave de son côté, a cessé d’envoyer les données dont il dispose,
par I²C, mais le protocole du bus ne dispose d’aucune norme le maître, imperturbable, continue à lire ce qui se trouve sur
dans ce but. SDA, éventuellement sans signification.
www.elektormagazine.fr mai/juin 45
PROJET DE LECTEUR
En mars et avril 2016, Elektor vous proposait de réaliser un analyseur de spectre par Ethernet (ASPE). Son
logiciel a été revu, ce qui permet – sans toucher au matériel – une nette amélioration des caractéristiques de
l’instrument : nouvelles fonctions, rapidité accrue, connexion doublée et convivialité affinée. Voici l’ASPE II !
Joost Breed (Pays-Bas) et Plus de connexions Protocol – DHCP) qui attribue automa-
Neal Martini (États-Unis) Deux ASPE II peuvent être connectés tiquement une adresse IP à chaque
en même temps et à chaud (plug and instrument.
play) au même réseau local (Local Area
Network). Pour ce faire, nous utilisons Rapidité accrue
Commençons par voir les améliorations le protocole de configuration dynamique L’ASPE II est beaucoup plus rapide que
de l’instrument. des hôtes (Dynamic Host Configuration son prédécesseur, ce qui permet des
www.elektormagazine.fr mai/juin 47
de la TFR, et la fréquence est calculée à
partir du temps entre deux déclenche-
ments. Le graphique du domaine fré-
quentiel montre également la fréquence
de base, qui est la fréquence de l’échan-
tillon de spectre de la TFR (FFT bin) qui
possède l’amplitude la plus élevée.
www.elektormagazine.fr mai/juin 49
3. (Listage 3) Lorsqu’un test l’adresse MAC de l’ASPE (figure 6). direct à la mémoire (direct memory
d’adresse est terminé, vérifier si En fait, c’est l’adresse MAC qui per- access – DMA) pour le dsPIC33 du
une réponse a été reçue. Si c’est le met d’avoir deux appareils sur le même serveur.
cas, essayer d’établir une connexion réseau. L’ASPE modifie le champ le plus
TCP/IP avec cette adresse et le significatif de l’adresse MAC par défaut Multitâches
port 4000 (numéro de port inscrit du W5500, en fonction du cavalier JP2. Si l’on ne tient pas compte de l’exécu-
dans le code TCP/IP de l’ASPE II). L’ordinateur voit deux adresses MAC dif- tion « simultanée » de plusieurs tâches
Si cela fonctionne, acqué- férentes, et sait qu’il y a deux adresses IP lors de l’écriture d’un programme pour
rir l’adresse MAC (media access correspondantes différentes. Vous pour- PC, toutes les instructions seront exécu-
control) de l’ASPE. riez même ajouter un troisième ASPE au tées séquentiellement, dans une seule
4. Listage 4) Pour acquérir réseau, en lui attribuant une adresse IP et même tâche (la principale), lors du
l’adresse MAC de l’ASPE, il faut fixe ! démarrage par le système d’exploita-
consulter la table ARP (adress reso‑ On y est : l’ASPE a son adresse IP, elle tion. Cette unique tâche ne tient bien
lution protocol) de l’ordinateur. est connue de l’ordinateur, et ils peuvent entendu pas compte des possibilités de
Cette table contient les adresses IP l’utiliser pour communiquer. Ceci facili- l’unité centrale de traitement (CPU), qui
et les adresses MAC correspon- tera la connexion fructueuse de l’ASPE possède huit processeurs logiques si elle
dantes qui sont actives sur le réseau au réseau. est de type quatre cœurs. Nous n’utili-
et connues de l’ordinateur. sons donc que 12,5% des capacités de
la CPU, ce qui est un véritable gâchis !
À chaque connexion TCP/IP réussie, Amélioration des performances C’était bien le cas dans la première ver-
l’ordinateur ajoute une paire IP‑MAC à Les améliorations résultent essentielle- sion du logiciel client : demande de don-
la table ARP. Si nous consultons cette ment de l’utilisation du multithreading nées à l’ASPE, réception des données,
table, nous pouvons donc retrouver dans le logiciel du client, et de l’accès conversion des volts en décibels, calcul
de la TFR, établissement des graphiques
dans les domaines temporel et fréquen-
Tableau 3. Taux de rafraîchissement des deux versions (fs = 504 201 Hz). tiel. Si l’une ou plusieurs des tâches
Taux de rafraîchissement (Hz) Taux de rafraîchissement (Hz) prennent du temps, c’est l’ensemble
N
de l’ASPE de l’ASPE II qui est ralenti. La gestion de l’interface
5 000 8,33 42 utilisateur est aussi une de ces tâches
10 000 3,96 22 séquentielles ; la réaction à une action
de l’utilisateur peut paraître très lente,
15 000 2,48 14
de même que le rafraîchissement de la
20 000 1,70 11
fenêtre. La solution était (of course) de
traiter chaque tâche principale indépen-
damment des autres, et de distribuer la
Listage 3. Réponse d’un ASPE ?
charge de travail aux huit processeurs
private static void PingCompleted(object sender,
logiques de la CPU.
PingCompletedEventArgs e)
Avec le nouveau logiciel, la demande et
{ la réception des données sont des tâches
... séparées, de même que le calcul de la TFR.
if (e.Reply != null && e.Reply.Status == IPStatus.Success) Les performances sont nettement amé-
{ liorées, le rafraîchissement de l’interface
// Try to connect to the port utilisateur et sa réactivité sont beaucoup
if (TryConnect(ip, _port)) plus rapides. Lorsqu’un signal est affiché
{ à l’écran, d’autres échantillons sont déjà
// Can connect. traités et leur TFR calculée. Le taux de
string macaddres = GetMacAddress(ip);
rafraîchissement de l’écran est désormais
d’environ 40 Hz, au lieu de 8 précédem-
...
ment, pour une acquisition de 5 042 éch/s
} } }
(tableau 3). C’est cinq fois mieux !
www.elektormagazine.fr mai/juin 51
Réponse en fréquence avec le générateur de bruit calibré
Noise Generator
OUTPUT INPUT
NCSA II
C1A C1B
1n R5A 1n R5B
180k
270k
R1A C2A
39k R1B C2B
1n IC1A 56k
1n IC1B
R2A R42B
50R
1k2
1k
IC1 = OP282
Figure 7. Analyse d’un filtre passe-bande avec le générateur de Figure 8. Réponse en fréquence du filtre de la figure 7, après calibrage du
bruit blanc intégré. bruit.
Utilisons le générateur interne de bruit blanc de l’ASPE par le générateur de bruit (figure 8). Nous déduisons du
pour déterminer la réponse en fréquence d’un filtre passe- graphique que la fréquence centrale du filtre est de 10 kHz,
bande (figure 7). Le générateur est tout d’abord connecté à sa bande passante de ±5 kHz, et sa pente d’environ 24 dB
l’analyseur, afin d’établir une référence ; celle-ci est ensuite par octave, ce qui est normal pour un filtre à quatre pôles.
utilisée pour établir la réponse en fréquence du filtre, alimenté
Sous-échantillonnage
+12V
354R
5k
NCSA II
1n
Sweep Generator
15p BF991
Vtune 100k
25R
1M
200uH 10k
KV1235
Figure 9. Filtre passe-bande ajustable à MOSFET d’une radio MA. Figure 10. Réponse en fréquence du filtre passe-bande, centré sur 1,201 MHz.
Un sous-échantillonnage a été utilisé.
Nous souhaitons maintenant analyser un filtre passe-bande Un générateur à balayage externe est utilisé : 1 à 1,5 MHz en
dont la fréquence centrale est de 1,2 MHz (figure 9). Il s’agit 10 ms ; le filtre est centré sur 1,2 MHz. La réponse du filtre
d’un filtre passe-bande LC ajustable à MOSFET, pour l’étage est en figure 10, elle est normale pour un filtre passe-bande.
d’entrée d’une radio MA. La fréquence centrale est ajustée
(entre 580 kHz et 1,6 MHz) en modifiant la tension aux Le graphique indique une fréquence centrale de 209,150 kHz ;
bornes de deux diodes à capacité variable, en parallèle avec à cause du sous-échantillonnage, il faut ajouter des multiples
une inductance. de la fréquence d’échantillonnage, la fréquence centrale
exacte du filtre est donc égale à 1 217 552 Hz (209 150 Hz
La fréquence d’échantillonnage de l’ASPE ne peut atteindre + 2 × 504 201 Hz).
de telles valeurs, il faut donc utiliser le sous-échantillonnage,
décrit dans un article précédent [2].
Modulator
cos (ωt) Output
sin (ωt)
Figure 11. Synoptique du modulateur à quadrature (IQ). Figure 12. Signal de la sortie du modulateur à quadrature du générateur de l’ASPE.
Cet exemple illustre les possibilités des fonctions définies En analysant cette équation, nous en déduisons que pour une
par l’utilisateur (UDF) et de l’analyseur de forme d’onde paire I‑Q, la sortie du modulateur sera une onde cosinusoïdale
synthétique (SWA). Nous analysons ici un modulateur dont l’amplitude et la phase résultent de l’équation. Voyons ce
QAM (aussi appelé I‑Q), très utilisé dans les systèmes de qu’en dit l’analyseur de forme d’onde synthétique.
télécommunication (figure 11). La modulation 256QAM est
fréquemment utilisée pour la télévision numérique par câble, Avec I et Q égaux à 1 V, le signal devrait être de forme
où I et Q peuvent prendre seize valeurs d’amplitude distinctes cosinusoïdale avec une phase de 45° à t = 0, et une
chaque. L’équation définissant le modulateur est la suivante : amplitude de 1,414 V. Les résultats, en figure 12, confirment
la théorie. L’utilisateur peut modifier les valeurs de I et Q, et
Q cos(ωt) + I sin(ωt) = C cos(ωt + θ) observer les résultats.
semble exagéré, vous pourrez toujours logicielle (software defined radio – SDR) Liens
faire appel au service de reprogramma- est alors aussi possible. [1] analyseur de signal par Ethernet (1),
tion d’Elektor (voir ci-après). L’analyseur de forme d’onde synthétique 03/2016 : www.elektormagazine.
(SWA) pourrait traiter des fonctions non fr/150211
Et la suite ? linéaires (Rect, Sign, Delta...), ce qui
[2] analyseur de signal par Ethernet (2),
On peut encore améliorer l’ASPE, c’est permettrait l’analyse de beaucoup plus
04/2016 : www.elektormagazine.
un fait. Un double tampon permettrait de signaux.
fr/150694
d’accroître la vitesse jusqu’à avoir un flux Nous avons un outil très puissant, et évo-
de données continu, soit un oscilloscope lutif. Restez connecté ! [3] www.elektormagazine.fr/160362
et une TFR en temps réel. Une radio (160362 – version française : [4] ncalc.codeplex.com
Jean-Louis Mehren)
dans l’e-choppe
ª150211-92
Module assemblé de l’ASPE
ª150211-71
Boîtier pour l’ASPE
ª160362-41
Reprogrammation de l’ASPE en
ASPE II
www.elektormagazine.fr mai/juin 53
PROJET DU LABO
radiocommande
avec modules radio
XBee ou nRF24
Somnath Bera (Inde) & Roy Aarts (labo d’Elektor)
www.elektormagazine.fr mai/juin 55
Les modules radio bon marché pour la bande ISM sont parfaits pour commander à distance des jouets, tant
qu’il s’agit de basculer des interrupteurs ou de faire tourner un ou deux moteurs. Mais si le système de
commande est plus complexe, par ex. commande de la gouverne de direction, du gouvernail d’altitude et des
ailerons d’un avion tout en actionnant un moteur sans balais et en écoutant un signal de retour pour chacune
de ces actions, les modules élémentaires ne sont plus à la hauteur.
À cause de sa complexité, l’application famille de modules émetteur/récepteur utiliser, mais ils sont chers ; c’est pour-
décrite ci-dessus demande un système sans fil, faciles à utiliser dans différentes quoi notre ingénieur au labo s’est lancé le
radio plus élaboré. Les célèbres modules architectures : cellulaire, ZigBee, Thread, défi d’atteindre les mêmes résultats avec
XBee de Digi International répondent 802.15.4 et Wi-Fi entre autres. Nous utili- des modules nRF24 meilleur marché. Cet
précisément à ce type de besoin. Au serons ici des modules XBee S2C (ancien- article présente donc deux versions de
départ, ils ont été conçus pour les liaisons nement ZB) qui comportent une pile logi- la télécommande à quatre
point à point et en étoile, à la vitesse cielle ZigBee. voies, l’une avec des
de 250 kbits/s ; aujourd’hui c’est une Les modules XBee sont certes faciles à modules XBee, l’autre
des nRF24. Commen-
çons par la première.
TRIM_UP
D1 D3 D7 D11
S1 S3 S5 S7
D4 D8 D12
D13
+3V
D15
S2 S4 S6 S8
D6 D10 D16
D2 D5 D9 D14
TRIM_DOWN XBee
0 Il existe beaucoup de
1
types d’émetteurs/
D1 ... D16 = 1N4148
P1 récepteurs XBee pour
10k P2 diverses topologies de
+1V2 réseau. Pour chaque
10k P3
type de réseau,
+3V 10k P4 les modules sont
livrés avec des
K2 K3 10k
1 20 configurations
VDD DIO0
2
DOUT DIO1
19 d’antenne et des
3 18
DIN DIO2 options de montage (CMS ou
1 4 17
DIO12 DIO3
5 16 traversant) différentes. En outre, il
RESET RTS
TRIM_DOWN 6
RSSI DIO5
15 y a deux versions des modules ZigBee :
0 7 XBEE 14
DIO11 RES normale et pro (meilleure portée). La
8 13
RES DIO9
9 12 version normale a une portée d’environ
DTR CTS
10
GND DIO4
11 TRIM_UP 60 m en intérieur et en milieu urbain,
R2 R3 R1 R4
et de 1200 m en terrain dégagé. Avec
10k
10k
10k
10k
2 C1 C2
utilisation en Europe.
120R
2 x battery AA(A) 1
LED1 100n 10u
Les modules ont grosso modo la taille
d’une pièce de 2 € (en imaginant une
pièce carrée), soit 24 × 28 mm ; la ver-
150408 - 13
sion pro est un peu plus longue. Non
seulement les modules pro sont un peu
Figure 1. Schéma de l’émetteur XBee. plus gros, mais ils consomment égale-
ment plus d’énergie. Les modules pos-
7 20 9 12
DTR CTS
riques et analogiques, et transmet les VCC AVCC 10 11
1 23 GND DIO4
valeurs au récepteur « intéressé » via PC6(RESET) PC0(ADC0)
24
IC3 PC1(ADC1)
un lien sériel virtuel (sans fil). 27 25
PC4(ADC4/SDA) PC2(ADC2) +5V
Quatre des broches d’E/S du module 28
PC5(ADC5/SCL) PC3(ADC3)
26
www.elektormagazine.fr mai/juin 57
liste des composants
émetteur XBee (150408-3)
Enfin, cliquez sur Write. Figure 5. Configuration des broches d’E/S de l’émetteur XBee.
www.elektormagazine.fr mai/juin 59
Cliquez ensuite sur le bouton Read une
fois le module détecté.
Le module récepteur sera programmé
avec le jeu de fonctions ZigBee Coordina-
tor API. Cliquez sur Update, sélectionnez
la famille de produits XB24-ZB, choisis-
sez la fonction ZigBee Coordinator API
et la version 21A7 du micrologiciel puis
cliquez sur le bouton Update.
Dans la section Networking, saisissez
le même PAN ID que celui utilisé pour
l’émetteur. Dans la section Addressing,
saisissez l’adresse de l’émetteur de la
même façon que vous avez saisi celle
du récepteur lors que la configuration
de l’émetteur.
Cliquez ensuite sur Write.
P1
+3V3 10k P2
+3V3
10k P3
R1
10k
7 20 10k P4
VCC AVCC
+3V3 1
PC6(RESET) PC0(ADC0)
23
10k
K3 24
IC2 PC1(ADC1)
2 1 MISO 27 25
PC4(ADC4/SDA) PC2(ADC2)
MOSI 4 3 SCK 28 26
PC5(ADC5/SCL) PC3(ADC3)
6 5 RST
ATMEGA328P
21 2
AREF PD0(RXD)
ISP PD1(TXD)
3
14 4
PB0(ICP) PD2(INT0)
15 5
PB1(OC1A) PD3(INT1)
16 6
PB2(SS/OC1B) PD4(XCK/T0)
K1 17 11
PB3(MOSI/OC2) PD5(T1)
8 7 MISO 18 12
PB4(MISO) PD6(AIN0)
MOSI 6 5 SCK 19 13
PB5(SCK) PD7(AIN1)
CSN 4 3 CE PB6 PB7
+3V3 GND XTAL1 XTAL2 GND S8 S7 S6 S5 S4 S3 S2 S1
2 1
8 9 10 22
C3
NRF24L01+
100n
MCP1700-3.3
SW1
IC1 +3V3
R2
K2
copyright
220R
2 C1 C2
1
1u 100u LED1
150408 - 11
Figure 6. L’émetteur à nRF24 utilise un bus SPI pour la communication entre le µC et le module.
L’émetteur nRF24 Le récepteur nRF24 ciel. Consultez l’encadré pour les détails.
La figure 6 montre le schéma de l’émet- Le schéma du récepteur à nRF24 (fig. 7 ; Pour éviter les interférences entre plu-
teur à cœur nRF24. Il arbore les mêmes notre prototype fig. 8) est presque iden- sieurs systèmes de radiocommande à
poussoirs et ajustables que son homo- tique à celui du récepteur XBee (fig. 2), nRF24, vous pouvez changer les adresses
logue XBee (fig. 1) ; le module XBee est à la différence près que le module XBee réseau utilisées. En haut des croquis de
remplacé par un µC ATmega328 et le est remplacé par K1 pour connecter l’émetteur et du récepteur, vous trouve-
connecteur K1 pour connecter le module le module radio nRF24. Comme pour rez une ligne semblable à la suivante :
radio nRF24. Nota : la liaison entre le µC l’émetteur nRF24, la liaison entre le
et le module est un bus SPI, et non pas module radio et le µC est un bus SPI. uint64_t address[] =
une ligne série asynchrone. {0xFFFFFFFF, 0xFFFFFFFE};
Relier l’émetteur et
Grâce au nombre élevé de ports d’E/S du le récepteur nRF24 Remplacez dans un des fichiers les
µC, les diodes pour coder les signaux des Cette étape est plutôt simple : les micro- valeurs ci-dessus par deux autres
poussoirs ne sont pas nécessaires. Aussi, logiciels de l’émetteur et du récepteur nombres à 64 bits (ce que vous vou-
l’alimentation de 1,2 V n’est plus néces- font le boulot. Il vous suffit de pro- lez) tout en vous assurant que les deux
saire : tout peut fonctionner en 3,3 V. grammer les micros avec le bon logi- valeurs sont différentes puis copiez
la ligne modifiée dans l’autre fichier.
Recompilez, reprogrammez, et c’est fait !
+3V3
Reliez les servos à la carte du récep-
teur ; mettez le récepteur et l’émetteur
copyright sous tension (l’ordre n’a pas d’impor-
R1
tance). Une fois la connexion établie
10k
7 20
VCC AVCC
+3V3 1
PC6(RESET) PC0(ADC0)
23 +5V
K3 24 Table 2. Paramètres pour les ports
IC2 PC1(ADC1)
2 1 MISO 27 25 K4
PC4(ADC4/SDA) PC2(ADC2) 1 d’E/S de l’émetteur XBee.
MOSI 4 3 SCK 28 26
PC5(ADC5/SCL) PC3(ADC3) 2
6 5 RST E/S Valeur
ATMEGA328P 3
21 2
AREF PD0(RXD) D0 ADC [2]
ISP PD1(TXD)
3
14
PB0(ICP) PD2(INT0)
4 K5 D1 ADC [2]
1
15 5
PB1(OC1A) PD3(INT1) 2 D2 ADC [2]
16 6
PB2(SS/OC1B) PD4(XCK/T0) 3
K1 17 11 D3 ADC [2]
PB3(MOSI/OC2) PD5(T1)
8 7 MISO 18 12
PB4(MISO) PD6(AIN0)
K6 D4 Digital Input [3]
MOSI 6 5 SCK 19 13
PB5(SCK) PD7(AIN1) 1
+3V3
CSN 4 3 CE
GND
PB6
XTAL1
PB7
XTAL2 GND 2
D5 Digital Out, Low [4]
2 1
C3
8 9 10 22 3 P0 Digital Input [3]
NRF24L01+ P1 Digital Input [3]
100n K7
1 P2 Digital Input [3]
+5V 2
7805 MCP1700-3.3 PR 3FE
SW1 3
IC3 IC1 +3V3
R2
K2 Table 3. Valeurs à programmer
220R
2 C4 C1 C2
dans les fusibles de tous les
1
1u 1u 1u LED1 microcontrôleurs utilisés dans cet
article.
Fusible Valeur
150408 - 12
Low 0xE2
High 0xDA
Figure 7. Le récepteur nRF24 est presque identique au récepteur XBee. Extended 0x05
www.elektormagazine.fr mai/juin 61
(cela peut prendre quelques secondes), Le logiciel n’est capable de comman-
vous devriez pouvoir commander les ser- der que des servos ; vous l’adapterez
vos avec les ajustables. Si vous reliez le pour répondre à vos besoins. Cela
récepteur à un terminal série, les mes- devrait être facile : nous avons
sages de retour s’afficheront. mis à votre disposition les
sources des programmes,
Le mot de la fin compatibles avec l’EDI
Nous avons présenté deux architec- Arduino.
tures fondamentales pour un système
de radiocommande avec échange bidi- (150408 –
rectionnel de données : XBee et nRF24. version française :
Le choix dépend de votre application et Kévin Petit)
de votre budget.
Liens
[1] www.digi.com/products/
xbee-rf-solutions/xctu-software/
xctu
[2] www.elektormagazine.fr/150408
dans l’e-choppe
version nRF24
ª150408-1
circuit imprimé de l’émetteur
ª150408-2
pensable
Outil de labo indis
(allo ?
s et les outils pratiques
urs aiment les gadget
Les bricoleurs amate et nous som me s tou jou rs
mique du silicium ?)
14 est-il le numéro ato pile déjà imp res sionn ant e
didats à ajouter à la
à l’affut de bons can tons un outil à énerg
ie
tte fois no us pré sen
sur leurs établis. Ce t de leu r atelier de
ire à ceux qui sorten
solaire qui devrait pla r se balader dans
i, ça existe !) pou r alle
temps en temps (ou des moustiques
t d’être attaqués par
la nature où ils risquen ssole leur per-
. Dans ce cas, la bou
et même de se perdre en toute sécurité
le chemin du retour
mettra de retrouver es. En forme de
r ces pénibles insect
sans être piqués pa une boucle de
tique, il s’attache à
mousqueton bien pra
ompagne partout.
ceinture et vous acc (160354-d)
avec boussole,
Digisonic 12D8 solaire,
Répulsif à moustiques pon ible sur l’internet.
dis
www.elektormagazine.fr mai/juin 63
Composants particuliers
Ailleurs dans ce numéro, vous pouvez découvrir le Phantastron, un circuit multivibrateur
spécial de grande précision inventé pendant la Seconde Guerre mondiale. En effet le Phantas-
tron est un circuit très intelligent, mais je suis sûr que si son créateur Alan Dower Blumlein
avait connu le phantasatron Umac 606, le circuit aurait été encore meilleur. L’Umac 606,
commercialisé à peu près à la même époque, était un phantasatron à faisceau hélicoïdal
et anode infernale avec un filament en tungstène uriné obtenu par un procédé spécial de
triple distillation d’un isotope d’uranium duquel tous les neutrons avaient été éliminés. La
grille était faite du métal rare senileium, choisi pour son absence totale d’émission. Un vide
doublement pompé permettait de voir clairement la plaque non émettrice de type plongeur
à triple traitement. Grâce à sa construction autonettoyante à grande eau, ce tube restait
utilisable pendant toute sa durée de vie. Pour plus de détails, consultez la fiche technique :
www.tubecollectors.org/archives/606.pdf
(160354-c)
Je crois que ça a commencé avec Siri d’Apple, l’assistant per- net vers le serveur où il est analysé et interprété. Il y est aussi
sonnel et navigateur de la connaissance « intelligent » inté- stocké pour de futures références, pour améliorer les capacités
gré aux iPhones. Les concurrents lui ont emboîté le pas et de reconnaissance vocale, et c’est là que les problèmes de vie
aujourd’hui nous avons Cortana de Microsoft, l’Assistant de privée surgissent. En effet, un dispositif capable d’envoyer des
Google et Viv de Samsung. Ils ont tous des qualités et des conversations privées vers le Cloud où elles sont stockées est
défauts qu’ils corrigeront sans doute rapidement. Étonnam- une atteinte potentielle à la vie privée. Les Autorités, ou des
ment le concurrent le mieux placé pour tous les surclasser est pirates informatiques, pourraient pour des raisons plus ou moins
Alexa d’Amazon. Implantée dans le très réussi « haut-parleur » avouables, vouloir profiter d’une base de données si intéres-
à commande vocale Echo et ses sante. Amazon déclare avoir refusé
déclinaisons Echo Dot et Tap, Alexa
était associée à plus de 30 nou-
veaux produits présentés lors
du Consumer Electronics Show
(CES) qui se tient tous les ans à
Las Vegas. Commande vocale ne
signifie pas ici qu’elle peut aussi
prononcer des mots, mais qu’elle
est commandée par la voix. Vous
lui demandez de passer un disque
d’Elvis, Alexa passe Elvis.
Alexa doit son succès à son
ouverture. Siri et Cortana étaient
d’abord fermés, mais Alexa a été
une plateforme ouverte dès le
début, incitant les concepteurs à
ajouter des « savoir-faire ». Par
exemple commander une pizza
ou changer la couleur d’une LED
simplement en le disant. Goo-
gle Assistant est ouvert aussi,
puisqu’il autorise les actions de
tiers. Devant le succès d’Alexa, ROGERS © 201
5 Pittsburgh Post-Gaze
Microsoft et Apple ont depuis Tous droits réservés. tte. Reproduit avec la per
mission de ANDREWS MC
MEEL SYNDICATION.
peu permis l’accès des concep-
teurs à Cortana et Siri.
Contrairement à Siri et Cortana qui utilisent la puissance de toute demande d’accès
calcul de la machine qui les héberge, Alexa passe par les ser- à ces données jusqu’à maintenant, mais nul ne sait ce qu’il en
vices en ligne d’Amazon pour le gros du travail, ce qui en fait un sera dans le futur. Les usagers peuvent effacer leurs enregis-
système de commande vocale léger pour toutes sortes d’appli- trements, mais ce faisant ils dégradent l’assistant intelligent,
cations. Service en ligne implique que cela ne fonctionne qu’avec donc sans doute peu de personnes le feront. Êtes-vous prêts
une connexion à l’internet. Alexa se met en éveil dès qu’elle à renoncer à votre vie privée pour commander une pizza sans
entend le mot déclic « Alexa » (qui peut être personnalisé). avoir à composer un numéro ?
Elle capture alors le son et crée un flux de données sur l’inter- (160354-e)
016.
m ic ro co nt rô leu rs ont été expédiés en 2
25 000 000 000 de
Onyx Coonect, la prem
ière fabrique d’ordipho
tablettes en Afrique. nes et
www.elektormagazine.fr mai/juin 65
le phantastron
drôle de composant n°30
Lutz Bergmann (Allemagne)
En dépit de son extrême linéarité et de sa précision, ce circuit très ingénieux est presque tombé dans l’oubli
aujourd’hui. Il mérite une meilleure reconnaissance.
Il y a des composants électroniques au nom à désinence –tron, passe en dessous de celle de grille-écran. L’attraction des élec-
nous avons vu le Fetron, le magnétron, le klystron, le thyra- trons se réduit par rapport à la plaque et augmente en faveur
tron. Ce sont des composants bizarres, mais cette fois-ci, nous de l’électrode qui porte la plus haute tension. Si la grille-écran
ne dévoilerons pas un objet physique, mais un type de circuit reçoit son courant à travers une résistance, ce moment est
hors du commun. Il a été créé en 1940 par un personnage tout marqué d’une chute de sa tension, alors qu’elle était jusque-là
aussi étrange, Alan Blumlein, l’inventeur du son stéréophonique, indépendante du potentiel d’anode. On peut transférer cette
de l’enregistrement sonore, de la télévision et du radar [1]. variation négative au moyen du condensateur C1 à la grille
Dans le phantastron, on utilise une penthode d’une manière d’arrêt (G3). Celle-ci agit alors comme une grille de commande
non conventionnelle et même sérieusement décriée comme supplémentaire qui, maintenant négative, empêche le passage
amplificateur. Mais ici, on ne l’utilise pas comme amplificateur, du restant de courant d’anode, lequel s’annule subitement. La
mais comme oscillateur à relaxation ! Le circuit exploite un tension d’anode peut de nouveau grimper vite. Avec ce fonc-
effet spécial pour former une tension en dents de scie [2, 3] tionnement bistable, un intégrateur de Miller peut se transfor-
en se basant sur le fait que le courant de grille-écran (G2) de mer en oscillateur en dents de scie auto-entretenu.
la penthode augmente brutalement quand la tension d’anode Examinons le cycle à partir de la fin de la coupure de courant,
disons l’instant t1. La tension de la plaque y est au maximum,
vu qu’il n’y a pas de courant. Comme le condensateur C1 ne
peut rendre la grille d’arrêt négative qu’un temps limité, le
courant d’anode recommence à passer. La chute de tension
sur la résistance R3 augmente et le potentiel d’anode UA des-
cend. Cette baisse provoque un courant vers C2 qui tend à
faire descendre la tension sur la grille de commande G1, ce qui
modère la hausse du courant d’anode. Un équilibre s’établit
entre les courants dans C2 et R4. Comme le courant dans R4
est constant, il en va de même avec C2. La tension d’anode
décroît alors avec une linéarité enviable. Cet effet a été décou-
vert en 1919 par John Milton Miller [4]. On peut régler le taux
de descente de la tension de plaque d’une infinité de façons
Publicité
Toutes ces informations, fournies par notre diffuseur (Messageries de Presse Lyonnaises), sont mises à jour
quotidiennement et proviennent des 14.000 magasins informatisés de son réseau.
www.elektormagazine.fr mai/juin 67
PROJET DE LECTEUR
passerelle IoT
et nœuds sans fil
2e partie : le logiciel
L’auteur a cherché un système domotique commercial qui réponde à ses exigences. Resté sur sa faim, il
a décidé de concevoir le sien : dans la bande des 868 MHz, plusieurs « nœuds terminaux » (capteurs et
actionneurs) communiquent avec une passerelle centrale. Celle-ci utilise le protocole MQTT pour envoyer des
données de mesure à un serveur OpenHAB, qui les traite et les supervise [1]. Dans le 1er article [2], nous
avons abordé le matériel. Ici nous nous intéressons au logiciel qui anime le tout.
Hennie Spaninks (Pays-Bas) standard, épaulé par les bibliothèques mentionnées plus loin.
Pour le Raspberry Pi, on utilisera de préférence la version la
plus puissante (RPi 3), encore que cela marche aussi avec le
Nous traiterons ici du code pour les nœuds terminaux, la passe- Raspberry Pi 2. Notre SE sera Raspbian.
relle et le serveur sur RPi. L’auteur a écrit lui-même les croquis
(sketches) Arduino et il a bien entendu fait appel à diverses Nœud terminal
bibliothèques à code source ouvert. Le code pour les différents nœuds terminaux est disponible
en [3]. Le noyau du code est identique pour tous les nœuds
Nœud terminal terminaux. Nous prenons comme exemple le nœud terminal
Croquis Arduino pour le nœud terminal : du code pour piloter DHT [4]. Ce nœud comporte une entrée numérique (un bouton-
la liaison radio, lire les capteurs et commander les sorties. poussoir) sur l’entrée 8, une sortie numérique (relais/LED)
sur la broche 9 et un capteur d’humidité/température sur la
Passerelle (gateway) broche 4. Si on presse le bouton, le nœud peut exécuter loca-
Croquis Arduino pour la passerelle : du code pour piloter la lement deux fonctions :
liaison radio et décoder les messages. Un client MQTT échange
les messages avec le courtier (broker). • Démarrer un temporisateur (timer) et mettre la sortie
au niveau haut. Réinitialiser la sortie une fois la durée du
Serveur domotique (Raspberry Pi) temporisateur écoulée. La durée de la temporisation est
Sur le Raspberry Pi tournent à la fois le courtier MQTT (Mos- réglée avec l’appareil 7 (cf. tableau 2 dans [2]). Un « 0 »
quitto) et le serveur domotique OpenHAB. bloque la fonction.
Pour compiler le code Arduino, nous utilisons l’EDI Arduino • Basculer la sortie après pression du bouton-poussoir. Ceci
#define NODEID 2
// unique node ID within the closed network
#define GATEWAYID 1
// node ID of the Gateway is always 1 Figure 1. Ordinogramme du nœud terminal.
#define NETWORKID 100
// network ID of the network
#define ENCRYPTKEY “xxxxxxxxxxxxxxxx”
FREQUENCY indique la fréquence utilisée (en Europe, 433 ou
// 16-char encryption key; same as on Gateway! 868 MHz). IS_RFM69HW indique que vous utilisez la version
//#define DEBUG forte puissance. ACK_TIME donne la durée d’attente maximale,
// uncomment for debugging après envoi d’un message, avant réception d’un acquittement.
#define VERSION “DHT V2.2”
// this value can be queried as device 3 À partir de la ligne 78, on trouve quelques définitions pour
le capteur DHT, les broches et variables utilisées. Les com-
mentaires dans le code source indiquent les fonctions de ces
NODEID attribue au nœud terminal une adresse unique sur le variables. À partir de la ligne 135 suit l’initialisation du pro-
réseau sans fil. Cet ID(entificateur) est également utilisé dans gramme (setup()), dans laquelle est définie la broche de
le sujet (topic) MQTT pour s’adresser au nœud. Le nodeID de sortie et initialisé le module sans fil. Voir l’ordinogramme de
la passerelle est toujours « 1 ». Un nœud terminal ne com- la figure 1.
munique qu’avec la passerelle ; il n’y a donc pas de trafic On commence (ligne 167) par voir si le module RFM69 a reçu un
internœuds terminaux. paquet radio. Si c’est le cas, il y a appel de la fonction parseCmd.
NETWORKID permet de définir des réseaux fermés. Seuls les En fonction du deviceID et de l’instruction de lecture/écriture
nœuds du même réseau peuvent communiquer entre eux. dans le bloc de données reçu, le drapeau d’envoi adéquat est
Dans ce projet, nous utilisons un réseau fermé, de sorte que levé. Après cela, on vérifie s’il y a eu pression du bouton et
l’ID du réseau doit être le même sur la passerelle et tous les expiration de la temporisation. Il y a ensuite incrémentation
nœuds terminaux. du compteur de temps de fonctionnement. Si l’intervalle de
ENCRYPTKEY est la clé de cryptage du trafic sans fil. Cette clé transmission périodique est écoulé, il y a positionnement des
comporte seize caractères et doit être la même pour tous les drapeaux d’envoi de ces paramètres.
nœuds du réseau. Enfin, à la ligne 235, il y a appel de la fonction sendMsg. Selon
Le paramètre DEBUG est une bascule d’activation du mode le drapeau d’envoi levé, sendMsg prépare les données requises
de débogage. Si ce paramètre n’est pas défini (en faisant de pour la transmission radio, réinitialise le drapeau d’envoi et
cette ligne un commentaire par l’ajout de « // »), aucune infor- envoie le paquet après un appel de la fonction txRadio().
mation de débogage n’est produite. La suppression de « // » En cas de demande de la température ou de l’humidité (appa-
active le débogage, des messages d’état sont alors envoyés reils 48 et 49), le module DHT est interrogé (lignes 478 et 485).
sur le port série.
www.elektormagazine.fr mai/juin 69
• Le module RFM utilise des interruptions pour indiquer la
réception d’un paquet radio. Tant que le pilote Ethernet
initialisation :
- config. broches (W5100.h) est actif sur le bus SPI, le traitement de ces
- lancer Ethernet
- lancer MQTT interruptions se fait incorrectement d’où blocage de la
passerelle. Nous utilisons la solution proposée par Martin
Harazinov et adaptons le fichier w5100.h pour résoudre
ce problème (cf. [8]). Dans le fichier w5100.h (à trouver
vérif. LED radio
incrémenter comp. dans ../Documents/Arduino/libraries/Ethernet/src/utility),
on ajoute aux lignes suivantes (à partir de la ligne 342)
des déclarations cli() et sei().
préparer & envoyer
msg MQTT commande
reçu ? par radio #else
inline
static void initSS() { DDRB |= _BV(2); };
inline
static void setSS() { cli(); PORTB &= ~_
traiter paquet
BV(2); };
paquet radio & construire
reçu ? inline
static void resetSS() { PORTB |= _BV(2);
msg MQTT
sei(); };
#endif
vérifier & rétablir Cela permet de bloquer les interruptions tant qu’il y a du
liaison MQTT
trafic Ethernet sur le bus SPI.
OpenHAB
On voit en figure 3 l’architecture d’OpenHAB qui repose sur
un bus d’événement(s). Par le biais de ce bus, il y a échange
d’événements entre les interfaces d’entrée et de sortie et le
reste d’OpenHAB. Cette construction permet d’utiliser côte à
côte plusieurs interfaces d’E/S (« bindings »). Il est possible
ainsi de créer des « bindings » spécifiques pour différents pro-
tocoles. À l’heure actuelle il existe des « bindings » pour des
compteurs intelligents, les systèmes audio SONOS, les lampes
Hue de Philips, les thermostats Nest ou encore les voitures
Tesla. La page [9] en donne un aperçu.
www.elektormagazine.fr mai/juin 71
Text item=TEMP2
Text item=HUM2
Text item=RSSI2 }
//
// refresh rules
//
Listage 1. Configuration d’un item OpenHAB pour un nœud terminal température/humidité de l’air.
OpenHAB fonctionne-t-il ?
Si la connexion MQTT fonctionne, l’étape logique suivante aussi accéder à des bases de données externes (voir [16]).
consiste à voir du côté d’OpenHAB. L’examen des fichiers jour- Le nœud décrit mesure la température et l’humidité et peut
naux (log) est instructif. L’instruction commuter une sortie numérique. L’utilisation d’un circuit élec-
tronique différent pour le nœud, et la modification du logiciel
> tail -f /var/log/openhab2/events.log ouvrent d’autres perspectives. On trouvera sur Github [3] des
solutions pour un LCD et un lecteur RFID [17]. On y décrit éga-
permet d’afficher les dix dernières lignes du journal d’événe- lement un nœud qui commande depuis OpenHAB des interrup-
ments. On devrait y voir des mises à jour entrantes venant teurs du système de domotique KlikAanKlikUit.
du nœud ou de l’interface utilisateur. Petit coup d’œil aussi
à /var/log/openhab2/openhab.log, fichier où sont rangés les Parallèlement à la solution décrite ici, une variante à base
événements système d’OpenHAB. d’ESP8266 a été développée. Ce nœud établit une liaison par
Wi-Fi avec le courtier MQTT et OpenHAB. On trouvera en [8]
Et après... la description du projet.
Votre première extension sera sans doute un accès à l’inter-
net ; myopenhabl le permet. OpenHAB a une appli qui com- Jetez donc un coup d’œil au forum [19] où différents utilisateurs
munique avec votre propre système OpenHAB par l’internet présentent des solutions pour des détecteurs PIR, des volets
via une passerelle sécurisée (voir [1]). roulants, des détecteurs de niveau et bien d’autres applica-
OpenHAB permet également de créer des graphiques des varia- tions encore.
tions dans le temps des valeurs de mesure ; cela requiert d’ac- (160318 – version française : Guy Raedersdorf)
tiver une base de données locale et de spécifier les valeurs
de mesure à mémoriser. On peut travailler localement, mais
Liens
[1] www.myopenhab.org
[2] www.elektormagazine.fr/150085
[3] https://github.com/computourist/RFM69-MQTT-client
[4] https://github.com/computourist/RFM69-MQTT-client/blob/master/DHT%20end%20node/RFM_DHT_node_22.ino
[5] https://github.com/LowPowerLab
[6] https://github.com/computourist/RFM69-MQTT-client/blob/master/Gateway_2.4/RFM_MQTT_GW_24.ino
[8] http://harizanov.com/2012/04/rfm12b-and-arduino-ethernet-with-wiznet5100-chip
[7] https://github.com/knolleary/pubsubclient
[9] http://docs.openhab.org/addons/bindings.html
[10] http://docs.openhab.org/installation/openhabian.html
[11] https://sourceforge.net/projects/win32diskimager
[12] https://github.com/openhab/openhab1-addons/wiki/Explanation-of-items
[13] http://mqttfx.org
[14] https://github.com/sandro-k/MQTTLensChromeApp
[15] www.putty.org
[16] http://docs.openhab.org/configuration/persistence.html
[17] https://github.com/computourist/RFM69-MQTT-client
[18] https://github.com/computourist/ESP8266-MQTT-client
[19] http://homeautomation.proboards.com/board/2/openhab-rfm69-based-arduino
www.elektormagazine.fr mai/juin 73
PROJET DU LABO
éclairage extérieur
variable
débutant
Æ connaisseur
expert
Câble FTDI USB/série, version Par un beau jour d’été, notre lecteur Andreas Meyer a installé un
de démo de PIC MikroBasic,
éclairage de terrasse, composé de quatre spots à LED de 3 W. Mais le
Visual Basic 2015 (tous optionnels)
résultat obtenu était vraiment trop puissant. Comme personne n’aime
passer une soirée en terrasse avec des lunettes de soleil, le nouvel
env. 25 € éclairage n’a pas beaucoup servi. Il fallait installer un variateur qui
affaiblisse en douceur la luminosité afin d’améliorer le confort.
La « règle d’airain de l’éclairage » sui- Un simple test avec un signal MLI issu
vante s’applique, et pas seulement aux d’un microcontrôleur et un MOSFET de Caractéristiques
électroniciens : là où une lampe éclaire puissance en amplificateur de courant • Possibilité de connecter quatre
trop, il faut un variateur, et vite (sic) ! montre que les spots sont faciles à com- lampes à LED
Hélas, les quatre spots à LED d’Andreas mander, bien que rien n’ait été écrit sur • Deux niveaux de variation pour
n’étaient pas compatibles avec un varia- le sujet. Le principe de fonctionnement des lampes à LED basse tension
teur. Ce n’est pas toujours le cas, certains est différent entre les modèles alimen- • Transition douce entre les niveaux
modèles alimentés en 12 V fonctionnent tés en 220 V et ceux en 12 V parce
d’éclairage
correctement avec un variateur (mais ce que les lampes à LED prévues pour le
• Commande des niveaux avec un
n’est quasiment jamais le cas pour les réseau comportent en général un cir-
détecteur de mouvement
lampes à LED alimentées par le réseau). cuit d’alimentation qui transforme le cou-
www.elektormagazine.fr mai/juin 75
d’entrée moyenne. Par ailleurs ce bloc
essaie de maintenir le courant constant
aussi longtemps que possible ; lorsque
rien ne va plus, la lampe s’assombrit,
scintille ou libère une odeur suspecte
« du côté de l’électronique ». A contra-
rio, les lampes de 12 V sont très sou-
vent de conception plus simple : géné-
ralement il s’agit de trois LED blanches
branchées en série avec une résistance
adéquate, de telle façon que sous une
tension continue de 12 V circule un cou-
rant constant raisonnable. Comme il n’y
a pas de régulation électronique, il n’y a
pas de problème pour faire varier l’éclai-
rage par une simple variation du rapport
impulsion/pause. Voilà pour la situation
de départ et la théorie.
LP2950ACZ-5.0
K1
IC2 D1
1N4007 +12V
R11 R6 F1
K8 C2 C1
1
10k
10k
2 1u 1u 1A
ISP/PICKET
3
4
5
K2 K3 K4 K5
6
2 2 2 2
copyright C3
K7 1 1 1 1
6
5 TX 100n
UART/FTDI
4 RX T1
1
3 R1
VDD
2 IC1 100R
4 2 T2
1 MCLR/VPP/RA3 RA5
7 R2
RA0/ICSPDAT
6 100R
R7 R8 RA1/ICSPCLK
3 5 T3
56k 56k RA4 RA2 R3
IC3 PIC12F1840 100R
1 4 VSS
K6 T4
8 R4
2 C5
100R
R5
1 4u7 S1
C4
50V
10k
2 3
R9 R10 100n
56k 56k
HCPL-814-000E T1 ... T4 = IRLZ34N 140574 - 11
Figure 2. Le schéma de l’éclairage extérieur variable se compose d’un microcontrôleur, de quatre MOSFET de puissance, d’une entrée 230 V pour un
détecteur de mouvement et d’une alimentation régulée de 5 V.
www.elektormagazine.fr mai/juin 77
À propos de l’auteur
simulateur de présence
la crainte des monte-en-l’air
La meilleure prévention anti-intrusion présence constante ; c’est l’approche découvrir de manière logique les diverses
est en fait de ne jamais quitter la mai- adoptée ici. Nous n’allons bien évidem- fonctions. Tout à gauche, l’alimenta-
son. Pour des raisons évidentes, une pré- ment pas utiliser un chronoprogramma- tion : la tension d’alimentation dérivée
sence permanente est impossible, et une teur qui, jour après jour allume/éteint via R1 et C1 de la tension du réseau est
absence prolongée en particulier (lors de une lampe toujours au même moment. redressée par D1 à D4 et stabilisée à
vacances par ex.) augmente le risque Tout criminel un tant soit peu « invétéré » une valeur continue de 12 V par D5/C2.
de visiteurs indésirables. Nous n’avons le constate immédiatement. Il va falloir Attention : l’ensemble du circuit est
pas le choix ; il faut entrer en action. nous creuser plus les méninges. Le cir- relié directement au secteur ! Donc,
Deux options : la première est d’acheter cuit proposé ici commence par réagir à la non seulement le circuit doit être réa-
un système d’alarme – mais cela peut lumière ambiante et, le soir venu, abaisse lisé correctement et mis en boîtier sans
valoir son pesant de « cacahouètes ». un volet roulant. Peu après, une lampe ou le moindre risque de contact, mais tout
Les magasins discount proposent par- un simulateur de TV est allumé puis plus test ou toute mesure mal faite comporte
fois des systèmes à bas prix, mais lors tard (à l’heure du coucher) coupé. Et le des risques létaux.
de tests comparatifs ils ne font pas le matin, le volet roulant remonte. À droite de l’alimentation, nous trouvons
poids et ne constituent donc pas vraiment un diviseur de tension photosensible,
une solution. De plus, lorsque l’alarme se Le schéma LDR1/P1. Tant qu’il y a (suffisamment)
déclenche, il est en fait… déjà trop tard… Un examen du schéma de la figure 1, de lumière sur la photorésistance (LDR =
La seconde option est de simuler une de la gauche vers la droite, permet de Light Dependent Resistor), de jour donc,
www.elektormagazine.fr mai/juin 79
T3
R1 LDR1 R3 R5 P2
D7
BD140
P2
P1
220R
1N4148 16
10k
1M5
D6 1 RE1.A R6 T4
RE1.B RE1.C R7
R10 7 VDD 11
1M Q4 P1
4k7
1k5
10k
C1 16 351 5 R9
Q5 C8
NO
NO
4
NC
NC
1N4148 Q6 IC2
10M
470n 8 4 BC557 6
T2 Q7 100n
400V C7
VCC R 14 9
D2 D1 2 Q8 P0
D5 T1 TR IC1 13
C2 R2 Q9 2u2
4x BC547 NE555 3 15
1k2 OUT Q10 P3
1N4007 7
DIS RE2.A
2200u CD4060BE
C3 6 R11
12V 50V BC547 THR 2 D8
1 10 1M
D4 D3 1W Q12 P0 10k
47u 25V GND CON 2
Q13
1 5 1
3 12
Q14 RST
P1 R4 1N4148 R8 VSS R12
C4 C5 C6
8
150k
1M
33R
160088 - 11
DOWN
NO
C
UP
NC
RE2.B
4
3
2
1
connector for
JP1 tube motor in roller shutter
N L
mains 230V
par l’intermédiaire de C8/R12 et toutes plus alimentés et peuvent donc, au repos commutation du relais soient capables
les sorties Q du CI sont au niveau bas – et réinitialisés, démarrer le cycle suivant. d’encaisser le courant absorbé par la
y compris la sortie Q14 (broche 3). Le charge. Pas de problème pour RE2 ; pour
transistor PNP T4 devient alors passant Quelques détails ce qui est de RE1, jetez un coup d’œil à
et alimente le relais RE2.A. Ce dernier Nous en avons pratiquement terminé en la documentation du volet roulant. Un
colle et on peut, via le contact NO RE2.B, ce qui concerne ce circuit. Il est conçu de exemplaire 10 A devrait cependant faire
activer une lampe ou un simulateur de façon à ce que les deux relais consom- l’affaire dans la plupart des cas.
TV (ou quoi que ce soit d’autre). ment du courant tant qu’il fait « nuit », Au début de cet article, nous avons sou-
Après écoulement d’une durée réglable ce qui semble le plus logique : habituel- ligné que le circuit est relié directement
sur une plage large (allant jusqu’à un lement nous allons en vacances en été au secteur – l’alimentation ne comporte
maximum de l’ordre de 24 h) avec le et en cette saison les nuits sont plus pas de transformateur. Il n’y a pas de
potentiomètre P3, la sortie Q14 passe courtes que les jours. Cependant si l’on raison que cela constitue un problème,
au niveau haut. T4 est alors bloqué et le souhaite utiliser ce circuit durant la sai- mais la réalisation requiert plus d’atten-
relais RE2.A retombe. Il simule l’heure son « sombre » (votre attention SVP, les tion que d’habitude. Il doit être impos-
de coucher : le simulateur de TV et/ou amateurs de sports d’hiver), on peut par sible d’entrer en contact avec le circuit
la lampe de salon s’étei(g)n(en)t. Dans ex. utiliser pour T2 une version PNP et qui devra être logé dans un boîtier en
ce temporisateur, la diode D7 joue un intervertir les connexions des contacts matière plastique adéquat ; caractéris-
rôle important : elle bloque l’oscillateur des relais. Les relais sont alors au repos tique spécifique du potentiomètre P1 : il
du CI lorsque Q14 passe au niveau haut, quand il fait « nuit », de sorte que la doit avoir un axe en plastique !
ce qui l’empêche ainsi de poursuivre son consommation d’énergie du circuit dimi- La figure 2 montre le prototype de l’au-
comptage. nue quelque peu. teur dont une partie est construite sur
Il est important que le moteur tubu- un morceau de carte de prototypage et
Nous nous retrouvons maintenant dans laire assurant la montée et la descente bien qu’il ait été réalisé rapidement en
un état stable : le compteur IC2 est à du volet roulant soit pourvu de butées tant proof-of-concept (test de concept),
l’arrêt, le relais RE2.A est décollé et il le de fin de course. En d’autres termes, il remplit parfaitement son rôle sous
restera jusqu’au lever du soleil le jour lorsque les positions finales (entièrement cette forme depuis un certain temps
suivant (du moins nous l’espérons). La remonté/abaissé) sont atteintes, le cou- déjà. Néanmoins nous recommandons,
lumière frappant la LDR augmente, la rant d’alimentation du moteur doit être pour un circuit qui doit rendre service
tension au niveau du nœud de la LDR1 coupé par les butées de fin de course de façon fiable et autonome pendant de
et de P1 augmente et le transistor T1 (le relais RE1.A du circuit reste actif lui). nombreuses semaines, une construction
passe en conduction. T2 est alors blo- Cela est d’ailleurs le cas avec la plupart un peu plus « robuste ».
qué, le relais RE1.A retombe et le circuit des volets roulants. (160088 – version française : Guy Raedersdorf)
se retrouve au repos. IC1 et IC2 ne sont Il faut bien entendu que les contacts de
www.elektormagazine.fr mai/juin 81
Android sur Raspberry Pi (2)
afficheur piloté via le bus SPI
Dans l’article précédent, nous avons fait tourner un premier programme sous Android : une sortie numérique
commutait entre les états haut et bas dans une boucle sans fin, ce qui nous a permis d’examiner son
comportement en temps réel. Dans le cas d’une gestion de périphérique, la commande « manuelle » des
broches n’a guère de sens; il faut passer par les interfaces matérielles du contrôleur. Nous montrons ici
comment piloter un petit afficheur OLED via le bus SPI.
Circuit
Un Raspberry Pi sous Android se comporte d’un point de vue
matériel comme un Raspberry Pi ordinaire. Le circuit de la
figure 2 n’est donc guère différent de celui utilisé dans la série
« Windows sur la carte RPi » [2].
Android Things identifie les bus SPI (de même que les broches
Figure 1. Cet afficheur est bien plus petit qu’un moniteur HD, aussi bien GPIO) par des chaînes de caractères. Notre première tâche est
par sa taille que par sa consommation. d’identifier ceux du RPi qui sont à notre disposition :
. . .
J8
PeripheralManagerService();
List<String> deviceList = manager.getSpiBusList();
12 GPIO18
Display
if (deviceList.isEmpty()) { } else {
CS
CS
Log.i(TAG, "List of available devices: " + DC
DC
RES
deviceList); RES
19 MOSI D1
D1
} CE0 D0
D0
} 23 24 CLK VCC
VCC
GND
GND
39 40 GND
I/MainActivity: List of available devices: [SPI0.0,
SPI0.1]
try {
Gpio myPinReset;
myPinReset = manager.openGpio("BCM18");
L’étape suivante inclut l’initialisation – plus ou moins clas-
myPinReset.setDirection(Gpio.
sique – du bus SPI à l’intérieur de configureAndFindDevice
DIRECTION_OUT_INITIALLY_LOW);
(listage 1). Un appel à setFrequency fixe la fréquence de com-
myPinReset.setValue(false);
munication : les valeurs de 4 MHz ou 8 MHz ont donné toute
satisfaction à l’auteur.
myDevice = manager.openSpiDevice("SPI0.0");
Les lecteurs attentifs de l’article précédent se demandent sans
myDevice.setMode(SpiDevice.MODE0);
doute ce que Thread.Sleep vient faire dans le fil GUI. En fait,
myDevice.setFrequency(4000000);
le délai de 10 ms n’est pas gênant et ne justifie aucunement
myDevice.setBitsPerWord(8);
la mise en place d’un fil spécifique.
myDevice.setBitJustification(false);
Thread.sleep(10);
Nous incorporons l’appel de cette méthode à onCreate de sorte
myPinReset.setValue(true);
qu’elle soit exécutée au démarrage du programme (listage 2).
}
Ici, nous initialisons une autre broche GPIO qui permet de com-
mander la ligne DC (Data Control). De plus, nous appelons la
catch (Exception e) {. . .}
fonction initDisplay responsable de l’initialisation de divers
paramètres de l’afficheur – le contenu de cette méthode est
}
présenté dans la section suivante.
www.elektormagazine.fr mai/juin 83
Nous initialisons...
Listage 2. Appelée au démarrage du
Après la configuration réussie du framework SPI, nous pouvons
programme, la méthode onCreate effectue
les initialisations de toutes les broches. nous occuper de la transmission des données qui mettront l’af-
ficheur dans le mode correct ou seront affichées sur l’écran.
@Override
Même si la feuille de caractéristiques du SSD1306 est très
protected void onCreate(Bundle savedInstanceState) {
répandue, il est toujours bon, lors du premier emploi d’un
circuit intégré, de rechercher chez Adafruit ou parmi la docu-
. . .
mentation d’autres fabricants, des bibliothèques complètes qui
présentent le mode opératoire.
configureAndFindDevice();
super.onDestroy(); try {
} }
try {
myPinDataCommand.setValue(false);
myDevice.write(_what, _what.length);
}
void sendData(){
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
} Figure 4. Ces paramètres servent à créer un nouveau fichier de mise en
} page.
www.elektormagazine.fr mai/juin 85
Par défaut, le sous-système de mise en page d’Android produit dataSets.add(s1);
un élément de commande affichable dont la taille est ajustée LineData data = new LineData(dataSets);
dynamiquement, alors que nous voulons un widget d’une taille mChart.setData(data);
fixe de 128 × 64 pixels. Il nous faut donc modifier le code de
la manière suivante : Le premier problème, à l’origine de la taille énorme du code,
est l’élimination des commandes pour les caractères (inutiles
<?xml version="1.0" encoding="utf-8"?> ici) : la résolution de l’afficheur de 128 × 64 pixels est telle-
ment petite qu’elle n’a sans doute jamais été testée par les
<LinearLayout xmlns:android=http://schemas.android.com/ développeurs de MPAndroidChart.
apk/res/android
android:orientation="vertical" Le problème suivant est de convertir le résultat en une matrice
android:layout_width="match_parent" de points qui peut être envoyée à l’afficheur. Ici, il importe
android:layout_height="match_parent"> surtout d’éliminer l’information de couleur, notre afficheur ne
gère bien entendu que le noir et blanc. À cause de la procédure
<com.github.mikephil.charting.charts.LineChart assez particulière appliquée aux caractères par MPAndroidChart,
android:id="@+id/chart1" nous devons retarder la conversion ; c’est possible avec un
android:layout_width="128px" pilote, voici le squelette de son code :
android:layout_height="64px"/>
final Handler handler = new Handler();
</LinearLayout> handler.postDelayed(new Runnable() {
Le détour par l’écran principal du RPi utilisé ici n’est pas absolu- @Override
ment nécessaire, mais il facilite le travail, car il permet d’obser- public void run() {
ver l’affichage produit sur un moniteur Android Studio connecté.
//Code ist hier
Nous pouvons maintenant nous occuper de la bibliothèque
graphique, qui a besoin d’une directive pour l’affichage de }
diagrammes. Celle-ci prend la forme suivante : }, 700);
La première différence avec une appli Android Things habituelle public void run() {
est l’appel de setContentView, qui s’occupe du chargement des LineChart mChart = (LineChart) findViewById(R.
informations contenues dans le fichier XML de mise en page. id.chart1);
Ensuite nous déclarons un tableau rempli de données d’affi-
chage plus ou moins aléatoires : Bitmap returnedBitmap = Bitmap.createBitmap(128,
64,Bitmap.Config.ARGB_8888);
ArrayList<Entry> values = new ArrayList<Entry>(); Canvas canvas = new Canvas(returnedBitmap);
byte store=0;
Pour finir, nous envoyons quelques commandes au contrôleur
int counter2=0;
de l’afficheur pour le mettre dans un état bien défini. sendData
for(int ctr=0;ctr<8;ctr++)
envoie alors les informations à l’afficheur via le bus SPI :
for(int x=0;x<returnedBitmap.getWidth();x++)
{
SendCommand(CMD_RESETCOLADDR);
for (int y = ctr*8; y < (ctr+1)*8; y++)
SendCommand(CMD_RESETPAGEADDR);
{
www.elektormagazine.fr mai/juin 87
projet 2.0
corrections, mises à jour et
courrier des lecteurs
carte de commande Wi-Fi :
le retour
Elektor 11/2016, p. 32 (150402)
La commande par PC (via la page web 150402.
html) n’était pas possible jusqu’ici avec les
navigateurs Internet Explorer et Edge. Lorsque
les pages sont stockées localement sur le
disque dur, ces navigateurs ne permettent
pas d’écrire en local (ici, l’adresse IP de la
carte contrôleur WAN, saisie une seule fois).
Clemens Valens, du labo d’Elektor, a conçu
une nouvelle page qui interroge le type du
navigateur et bloque l’enregistrement local si
celui-ci n’est pas possible. Les données du formulaire sont néanmoins envoyées, ce qui fait que la commande fonctionne.
La nouvelle version est disponible sur la page du labo d’Elektor www.elektormagazine.fr/labs/remake-wifi-controller-
board-150402 ainsi que sur la page du projet www.elektormagazine.fr/150402.
Bonjour Martin,
Vous avez tout à fait raison pour la classe B, c’est une
erreur dans l’article. Comme vous l’avez mentionné, le ren-
dement maximal est de 78%, au moins pour des signaux
sinusoïdaux. Toutefois je pense toujours que le rendement
des MOSFET est légèrement supérieur à celui des transistors bipolaires, surtout parce qu’ils permettent de s’approcher
davantage des tensions d’alimentation dans l’étage de sortie, ce qui limite ainsi les pertes globales. J’aurais dû préciser :
« typiquement autour de 70%, jusqu’à 78% pour les circuits particulièrement bien optimisés ».
À propos de la classe C : là encore, vous avez théoriquement raison, le rendement peut aller jusqu’à 100%... si les
transistors et les composants passifs sont tous parfaits. La valeur de 70% que j’ai mentionnée provient de ma propre
expérience avec des amplificateurs RF. C’est un véritable défi d’en obtenir davantage aux Ultra Hautes Fréquences ou
au-dessus, mais j’aurais dû apporter là-dessus quelques précisions.
En ce qui concerne la classe E, je ne pense pas qu’un transistor aussi lent puisse faire l’affaire, même si je suis loin d’être
un expert dans ce domaine. Voir par ex. : http://people.physics.anu.edu.au/~dxt103/160m/class_E_amp_design.pdf
Robert Lacoste
Bonjour Peter,
Ces nouvelles sont réjouissantes et je suis très content de les partager avec nos lecteurs. Nous
allons également publier ton adresse de courriel avec la mise à jour.
Jan Buiting, PE1CSI
www.elektormagazine.fr mai/juin 89
RÉTRONIQUE
Karl-Ludwig Butte
(Allemagne)
Photo :
Wikimedia Commons
www.elektormagazine.fr mai/juin 91
Figure 5. Carte mère à son arrivée chez Figure 6. Carte mère après une bonne session Figure 7. Écran de démarrage BASIC (Tom
l’auteur. de nettoyage. Knox ; domaine public ; wikipedia).
variant entre 200 et 800 €. En géné- Si l’interpréteur détecte une nouvelle automatiser la numérotation. Les pro-
ral, ils arrivent dans un piteux état chez variable, il lui réserve un certain nombre grammeurs doivent se creuser la tête,
leur nouveau propriétaire. Avec un peu d’octets en fonction du type de données. car très vite il devient clair qu’il sera
de chance, il suffit de les dépoussiérer En revanche, l’interpréteur ne pardonne difficile pour un programme BASIC de
(fig. 5) pour qu’ils retrouvent leur splen- pas les fautes de frappe dans les noms renuméroter un autre programme écrit
deur d’antan (fig. 6). des variables. Malheur à celui qui saisit en BASIC. Il faut donc prendre le taureau
FRACTURE$ au lieu de FACTURE$. Il risque par les cornes et recourir aux grands
Le logiciel de se casser la tête pour trouver l’erreur, moyens. La solution est alors trouvée,
L’interpréteur de BASIC de PET qui se à moins d’avoir un ami relecteur attentif. elle s’appelle « assembleur », un pro-
trouve dans une ROM de 14 Ko (fig. 7) En effet, l’expérience montre qu’il est gramme écrit en langage machine, logé
sert à la fois de système d’exploitation difficile de détecter ses propres fautes dans une partie de la mémoire protégée.
et d’environnement de développement. de frappe. Heureusement, PET est doté d’un moni-
Il repose sur un BASIC Microsoft et il teur de langage machine (au départ sur
est doté d’un « éditeur plein écran » [4]. Si tout va bien, la commande BASIC une cassette, plus tard dans la ROM). Les
Ceci permet de visualiser les lignes de est presque exécutée de manière ins- choses deviennent alors intéressantes et
programme et de les éditer ultérieure- tantanée. PRINT 2*SQR(25), un coup de chaque programmeur de PET connaît bien
ment en amenant tout simplement le <Return> et le résultat « 10 » s’affiche la commande secrète qui lui permet d’al-
curseur à l’endroit à modifier. Pour confir- à l’écran en un rien de temps. Si l’ins- ler plus loin. SYS 1024 <Return>. Résul-
mer les modifications, il suffit d’appuyer truction est précédée d’un numéro de tat : le langage machine prend la relève
sur la touche « Return ». Quel confort ligne, PET attend que l’on saisisse RUN du BASIC. Les magazines, les livres et
pour l’époque ! En plus des commandes avant d’exécuter la commande. Au bout les lettres d’information de nombreux
BASIC usuelles, le PET dispose également de deux ou trois programmes, on s’aper- clubs informatiques sont bourrés de lis-
de PEEK et POKE, pour lire ou écrire des çoit rapidement qu’il vaut mieux compter tings en code hexadécimal. Ces derniers
octets dans la mémoire. large et numéroter ces lignes de pro- permettent p. ex. de mettre en œuvre
grammation de 10 en 10. En effet, si l’on la commande RENUMBER, mais aussi de
Les noms de variables se différencient a un programme de 10 lignes et qu’on connecter des appareils bien pratiques
à l’aide des deux premiers caractères. les numérote de 1 à 10, il est impos- tels qu’un lecteur de code à barres.
Les noms peuvent être plus longs, mais sible de rajouter une onzième ligne de
les autres caractères sont tout simple- programmation par exemple entre la Les applications
ment ignorés. Ainsi pour l’interpréteur ligne 4 et 5. Il faut renommer manuel- PET 2001 présente également des
de BASIC la variable « SO » peut cor- lement les lignes 5 à 10 pour avoir les aspects ludiques. Bien sûr, ces jeux
respondre à SOURIS ou SOURCE. lignes 6 à 11. De plus, il convient de ne n’ont rien à voir avec les jeux mega-
pas oublier d’adapter les lignes en consé- pixels multicolores que nous avons main-
Le BASIC Commodore connaît trois types quence pour les sauts de ligne condition- tenant sur nos ordiphones. À l’époque,
de données différents : les nombres flot- nels (IF) et les sauts de lignes incondi- PET n’a même pas d’affichage graphique
tants sur 40 bits, les nombres entiers tionnels (GOTO). Au départ, il n’y a pas pour pouvoir piloter chaque pixel sépa-
sur 16 bits et les chaînes de carac- de commande du type RENUMBER pour rément. En revanche, il dispose de toute
tères (strings) limitées à 255 carac-
tères. Pour les distinguer, on se sert
d’un caractère spécial placé à la fin du
Liens
nom de la variable. Les chaînes de carac-
tères sont dotées d’un $ tandis que les [1] https://fr.wikipedia.org/wiki/Homebrew_Computer_Club
variables entières se reconnaissent au %. [2] www.minneapolisfed.org
Si le caractère $ manque, la variable est [3] www.kuto.de/cbmmuseum/cbm_pet.html
traitée comme un nombre flottant. Les
[4] https://en.wikipedia.org/wiki/Commodore_BASIC
variables ne peuvent pas être déclarées.
www.elektormagazine.fr mai/juin 93
(presque) tout ce que vous avez toujours voulu savoir sur...
Q
la différence entre
immotique et domotique
Les maisons connectées sont à la mode de nos jours. Nous avons demandé à Emmanuel François de nous en
dire plus sur son expertise : les bâtiments intelligents.
Liens
[1] https://en.wikipedia.org/wiki/EnOcean
[2] https://en.wikipedia.org/wiki/
Thread_(network_protocol)
[3] http://ovgrealestate.com
[4] https://flexom.bouygues-immobilier.com
[5] https://fr.wikipedia.org/wiki/
Haute_qualité_environnementale
[6] www.breeam.com
www.elektormagazine.fr mai/juin 95
PROJET DE LECTEUR
WaterDeck
analyse de la consommation d’eau
des villes intelligentes
Waldemir Cambiucci (Brésil)
Le projet WaterDeck est une solution pour la surveillance et usagers. Cette même solution s’applique ainsi à la fois aux
l’analyse de la consommation d’eau des villes intelligentes (et usagers domestiques et commerciaux qui peuvent comparer
plus !), qui utilise les technologies Freescale et ARM. WaterDeck les données réelles de consommation avec celles des factures
collecte les données de nombreux dispositifs et capteurs, comme de leurs fournisseurs.
des jauges de niveau, des réservoirs, des débitmètres et des Avec une population mondiale qui frisera les neuf milliards
commandes de pompes à eau. Chacun d’eux est connecté à en 2050 et une consommation d’eau en plein essor sur cette
une carte FRDM-K64F [1]. Les données des capteurs sont col- période, le projet WaterDeck peut être d’un grand secours, non
lectées via des connexions à l’internet et utilisées pour four- seulement en temps de crise, mais aussi comme outil perma-
nir en temps réel aux usagers domestiques et industriels des nent d’optimisation de la consommation et de surveillance de
tableaux de bord qui montrent les réserves et la consommation l’eau, partout et n’importe quand dans le monde.
d’eau. Ces informations sont accessibles sur des sites web,
des API et des applis pour tablettes et ordiphones. Le nuage Modules de base
(cloud) permet plus encore : à savoir regrouper l’énorme masse Pour ce projet dédié à la gestion de l’eau pour les particuliers et
de données accumulées au fil du temps non seulement pour les petites entreprises, nous avons choisi la carte FRDM-K64F
examiner l’historique, mais aussi pour créer des rapports et (fig. 1) et le modèle de conception « Acquisition de Données
faciliter les analyses ultérieures. avec Interface Web ». La FRDM-K64F a été conçue par Frees-
Avec l’Internet des Objets (IdO), il est important de rappe- cale en collaboration avec mbed pour prototyper toutes sortes
ler que les données collectées et les scénarios associés sont de dispositifs, en particulier ceux dans la gamme de prix et
aussi importants que les capteurs, microcontrôleurs et dispo- de taille des Cortex-M4. Elle se présente comme une carte de
sitifs qui en assurent le fonctionnement. La combinaison bien développement avec connecteurs pour plaques à bandes ou
choisie d’un solide microcontrôleur et d’une collecte de don- platines d’essais, et comporte un programmateur Flash USB.
nées de bonne qualité peut créer une formidable opportunité Avec son connecteur compatible Arduino, la carte FRDM-K64F
pour comprendre l’environnement qui nous entoure, avec de fournit aux développeurs et ingénieurs une plateforme simple,
vrais scénarios d’IdO et des bénéfices substantiels pour les robuste et extensible.
Lors du concours 2015 de conception pour microcontrôleur ARM ordinaire équipé de trois capteurs de niveau de marque ICOS [2].
(voir encadré Solution Primée), nous avons sélectionné un des Ces capteurs sont connectés à la FRDM-K64F via des broches
quatre modèles de conception disponibles. Nous avons choisi le numériques standard, le signal est lu comme haut ou bas.
modèle « Acquisition de Données avec Interface Web » qui uti- Nous avons installé un débitmètre sur la conduite d’alimen-
lise un composant réseau intergiciel pour afficher sur une page tation, en amont de la pompe principale. Ainsi, dès que l’eau
web les données provenant d’un accéléromètre et d’un magné- s’écoule dans le réservoir principal, on peut lire le débit de
tomètre. Un intergiciel (ou logiciel médiateur) est une couche l’eau qui pénètre dans le réservoir domestique en gallons par
de logiciel qui sert d’interface entre deux parties de code infor- heure ou litres par minute.
matique distinctes pour les faire fonctionner ensemble, telles
qu’un programme applicatif et son environnement fonctionnel.
Les utilisateurs peuvent modifier la fréquence d’enregistrement
des données avec des scripts CGI et JavaScript.
Le but (fig. 2) est de collecter de multiples informations à
partir de capteurs, jauges de niveau, pompes, débitmètres,
etc., et de créer dans une interface web des notifications push
vers l’utilisateur final. Il est ainsi possible d’afficher le tableau
de bord sur n’importe quel terminal, comme tablettes, ordi-
phones ou ordinateurs de bureau, depuis un jeu de données
hébergé dans le nuage.
WaterDeck en action
Nous avons créé un environnement de simulation complet pour
ce projet, avec deux réservoirs qui simulent la consommation
d’eau. Le premier récipient est un réservoir d’eau domestique Figure 1. La carte Freescale FRDM-K64F.
www.elektormagazine.fr mai/juin 97
composants du système. On peut utiliser ces données pour
alimenter des sites ou autres systèmes sur le web.
Connexion au nuage
Toujours avec le modèle de conception « Acquisition de Données
avec Interface Web », ce projet peut être considéré comme
un exemple pour la connexion de la plateforme Freescale à
différents tableaux de bord pour l’IdO dans le nuage, comme
Windows Azure et Amazon Web Services, ou à des solutions
SaaS (« Software As A Service ») comme la plateforme IdO
Carriots [3].
Pour cela, il faut un adaptateur ou un client pour le protocole
MQTT afin de connecter le système à différents fournisseurs
Figure 2. Acquisition de données des capteurs avec serveur web.
et d’envoyer les messages à rassembler. MQTT (« Message
Queuing Telemetry Transport ») prend en charge beaucoup
de scénarios possibles pour la messagerie dans les projets de
l’IdO. Nous évaluons en ce moment la solution Mosquitto pour
nous connecter à Freescale dans nos futurs projets. Mosquitto
est un courtier de messages à code source ouvert (licence BSD)
qui met en œuvre le protocole MQTT versions 3.1 et 3.1.1. Plus
d’informations en [4]. Le diagramme de la figure 3 présente
une vue d’ensemble de notre projet.
Conclusions
Comme le montre cet article, ce projet est conçu pour afficher
et surveiller la consommation d’eau domestique. Il est basé
sur des réservoirs, des jauges, des débitmètres et actionneurs
Figure 3. Utilisation de la carte Freescale FRDM-K64F pour commander
pour pompes à eau d’usage courant. Il utilise une connexion
et surveiller la consommation d’eau pour usage domestique avec
consultation des données sur l’internet. à l’internet standard pour fournir en temps réel un tableau de
bord sur la disponibilité de l’eau au domicile de l’utilisateur,
accessible sur des sites web, des API et des applis sur tablettes
Enfin une autre pompe simule simplement la consommation et ordiphones qui traitent ces informations.
issue du réservoir domestique. Quand cette pompe est action- Pendant le projet nous avons évalué et exploité beaucoup de
née, l’eau est aspirée du réservoir principal et refoulée dans fonctions importantes de la carte Freescale FRDM-K64F, qui
le réservoir externe. s’est révélée très polyvalente pour les applications de l’IdO.
La carte Freescale FRDM-K64F, pièce maîtresse de cette simu- L’exercice a aussi été l’occasion d’expérimenter l’environne-
lation, commande les nombreuses entrées/sorties numériques ment de développement Keil uVision5 avec lequel le projet a
du système. Une fonction remarquable de cette carte est sa été configuré et testé.
capacité à exporter vers le web toutes les données collectées,
ce qui permet à de nombreux utilisateurs potentiels d’y accéder. Fonctions principales utilisées par ce projet :
Pendant la simulation, les données sont sauvegardées sur une • fichier journal sur carte SDHC ;
carte SDHC pour archiver l’historique de tous les capteurs et • interruptions pour l’acquisition des données du
débitmètre ;
• broches pour les vannes d’entrée et sortie, ainsi que pour
des LED et capteurs de divers types ;
• relais pour commander des circuits externes 220 V,
comme des pompes à eau ;
• boutons-poussoirs pour entrées manuelles de l’utilisateur.
Liens
[1] www.nxp.com/products/software-and-tools/
hardware-development-tools/freedom-development-
boards/freedom-development-platform-for-kinetis-k64-
k63-and-k24-mcus:FRDM-K64F
[2] www.icos.net
Figure 4. Diagramme du circuit principal, avec l’adaptateur pour le [3] www.carriots.com
protocole MQTT qui connecte Freescale aux différents tableaux de bord ou
[4] http://mosquitto.org
plateformes IdO hébergés dans le nuage.
Donner la vie à des millions d’objets, c’est l’objectif de Sigfox qui a créé un réseau capable de connecter à
l’internet des milliards d’objets. Ce réseau est aujourd’hui présent dans 29 pays, donc accessible à environ
470 millions de personnes.
Les entreprises qui veulent
développer des services et des
produits dans le domaine de
l’Internet des Objets disposent
aujourd’hui d’une large gamme
de solutions, grâce aux toujours
plus nombreux partenaires de
Sigfox. Partons en voyage dans
le monde de Sigfox.
www.elektormagazine.fr mai/juin 99
Tableau 1. Répartition de la couverture Sigfox à Mise en pratique
travers le monde. Pour envoyer des messages sur le réseau Sigfox, il faut du
matériel compatible Sigfox, un module ou un kit de dévelop-
Zone de
communication Région du monde pement. En premier lieu, il faut choisir la zone dans laquelle
radio vous travaillerez. Le tableau 1 détaille ces différentes zones,
établies principalement en fonction des normes à respecter en
Europe (868 MHz, ETSI 300-220), Oman,
RCZ1 matière de transmission et de spectre radio.
Afrique du Sud
Ensuite il faut un émetteur-récepteur qui parle Sigfox ou bien
États-Unis (902 MHz, FCC part 15),
RCZ2 un module de transmission qui en contient un ainsi qu’un
Mexique, Brésil
microcontrôleur. Le tableau 2 donne quelques références des
RCZ3 Japon (923 MHz, ARIB STD-T108)
circuits de ce type. Les modules sont pilotés soit directement
Australie, Nouvelle-Zélande, Singapore, avec des commandes AT (communication à bas niveau) sur
Taiwan, Hong Kong, Colombie, Argentine une interface série (UART), soit via une interface de type API
RCZ4
(920 MHz, ANATEL 506, AS/NZS 4268, IDA (bibliothèques).
TS SRD) Si vous êtes un utilisateur chevronné d’Arduino ou de Raspberry
Pi, vous n’aurez pas de mal à trouver une carte d’extension
L’entreprise Sigfox se distingue d’un point de vue technolo- Sigfox pour votre carte préférée. Les autres pourront se tour-
gique, mais également commercial des autres initiatives de type ner vers une carte de développement autonome. Nous avons
« LPWAN ». Sigfox opère avec une approche très ouverte pour rassemblé dans les encadrés ci-après une sélection de cartes
son protocole puisque tous les fabricants de semi-conducteurs et kits actuellement disponibles. La plupart ont obtenu le label
peuvent intégrer gratuitement le protocole Sigfox à leurs pro- « Sigfox Ready » après avoir passé une certification dédiée
duits. Contrairement aux technologies concurrentes qui obligent et gérée par Sigfox. La certification coûte 2.500 € pour un
à reverser des frais de licences sur chacune des puces pro- objet. À cette occasion, la puissance émise par l’objet testé
duites, ce qui entraîne un monopole de fait. Sigfox ne se rému- est mesurée afin de le classer selon une échelle basée sur des
nère que sur les abonnements à son service. Cette approche normes ETSI ou FCC (voir tableau 3). La classe U0 garantit
devrait stimuler la concurrence entre les fabricants de modules une bonne couverture de l’objet.
et tirer les prix des objets vers le bas. Les modules les moins Revenons aux kits. La bonne surprise est que souvent un accès
chers pour entrer dans le monde Sigfox sont proposés aux d’un an au réseau Sigfox est inclus, de quoi expérimenter dès
alentours de 2 €. que vous aurez ouvert le colis. Le coût d’un accès au réseau
seul varie entre 1 et 20 € par an.
La structure technique du réseau est elle aussi très différente Sigfox facilite la vie des jeunes pousses et propose à celles qui
des autres technologies, ce qui contribue grandement à son veulent connecter un produit des abonnements au réseau ainsi
essor si rapide dans le monde entier. Elle semble nécessiter un que des outils gratuits. Le programme « startup » y est même
nombre d’antennes bien plus faible que ses concurrents pour dédié afin d’accélérer tous les projets qui germent.
couvrir une zone équivalente (grâce à sa longue portée), et avoir Si votre kit de développement ou système sur puce (SoC) est
une capacité à connecter un nombre d’objets bien plus élevé. vendu sans abonnement au réseau Sigfox, vous devrez enre-
Caractéristiques
Tableau 3. Classes de liaison montante (de l’objet vers le réseau) en fonction de la puissance émise.
Classe U0 Classe U1 Classe U2 Classe U3
ETSI 14 dBm ±2 dB 12 dBm > P > 7 dBm 7 dBm > P > 0 dBm < 0 dBm
FCC 22 dBm ±2 dB 20 dBm > P > 15 dBm 15 dBm > P > 5 dBm < 5 dBm
PA7
PA5
PA1
PA0
PA2
PA3
PA6
GND
PA4
GND
VCC
Current
monitoring
Pour expérimenter plus rapidement avec le réseau Sigfox,
vous pouvez vous tourner vers la version prête à l’emploi
du MM002-LS-EU : la clé USB MK002-LS-EU [8]. Il suffit de
RF
output la connecter à un ordinateur (Windows ou Linux) pour lui
envoyer des commandes AT. Une appli JAVA est fournie pour
effectuer des tests. Il est également possible d’alimenter
Reset
button directement la clé (broche Vcc) et d’accéder à l’UART
BOOT0
PA15
PA14
PA13
PA12
PA11
PB9
PB8
PB7
PB6
PB4
PB3
La société française ATIM propose plusieurs cartes tableau suivant en donne une vue d’ensemble. La plupart de
d’extension radio et multimode (Sigfox & Lora) [12]. Le ces cartes incluent un an d’abonnement au réseau.
Zone de prototypage
RX/TX du modem
réaffectable
Akeru 3.3 : carte compatible avec l’environnement
Arduino/Genuino. Cette carte est également disponible
Module RF 434 MHz
Modem SIGFOX M2M
(optionnel) dans un kit qui contient plusieurs capteurs.
Akene : shield pour Arduino/Genuino.
Connecteur SMA
pour antenne 868 MHz
Breakout TD1208 : carte d’extension pour ajouter la
(antenne ½ onde incluse)
connectivité Sigfox à ses projets, sans réaliser un circuit
Bouton reset spécifique pour accéder aux signaux de la passerelle.
Broches d’alimentations et
GPIO du modem analogiques doublées Foquinha-Pi : shield pour Raspberry Pi (toutes versions).
Toutes ces cartes sont proposées avec un an d’abonnement
au réseau.
[2] Plateformes Sigfox pour enregistrer ses objets : [11] QW GPS Sigfox : lpwan.be/wp/product/
partners.sigfox.com/products/platform qw-gps-sigfox-development-kit
[3] Site Sigfox pour les développeurs : makers.sigfox.com [12] ACW-DUINO, ACW-MangOH, ACW-MPCIE, ACW-RPI,
ACW-SDK, ACW-USB, SigBee, ARM-N8-SIGFOX :
[4] Pisteur HIDNSEEK ST1-A :
www.atim.com/en/products/catalog
www.hidnseek.fr/hidnseek_st1a
[13] Akeru 3.3, Akene, Breakout TD1208, Foquinha-Pi :
[5] GitHub pour HidnSeek : github.com/hidnseek/hidnseek
snootlab.com/lang-en/72-03-iot-et-sans-fil
[6] Tutoriel pour HidnSeek : github.com/Bucknalla/
[14] BiB, Basic IoT Board : www.nettrotter.io/index.php/it/
sigfox-hidnseek-tutorial
ecosystem-it/basic-iot-board
[7] MM002-LS-EU : www.nemeus.fr/en/nemeus-mm002-2
[8] USB MK002-LS-EU : www.nemeus.fr/en/mk002-usb-key
La production d’arcs électriques à l’aide d’un transformateur de Tesla (aussi appelé bobine Tesla) est
un sujet souvent abordé dans le magazine, néanmoins il fascine toujours autant, et pas seulement les
électroniciens ! Les dispositifs sont petits ou grands, et les plus imposants produisent des arcs de plusieurs
mètres. Nous nous contenterons ici d’en décrire quelques-uns qui ne produisent que des arcs modestes ou
ne permettent que l’allumage de tubes ou lampes fluorescents, toutefois ils sont faciles à construire.
Harry Baggen (labo d’Elektor) déclencher les oscillations dans le circuit LC, ce qui produisait
pas mal de parasites et du bruit. On utilise actuellement un cir-
Vous avez sans doute déjà vu, en photo ou en vidéo, ce gros cuit à semi-conducteurs ou à tubes pour alimenter le primaire
appareil d’où semblent s’échapper des éclairs. Il s’agit d’un avec une tension HF, généralement entre 50 kHz et 1 MHz.
transformateur de Tesla qui, comme son nom l’indique, est Le transformateur de Tesla a une forme typique : l’enroulement
un transformateur, à noyau d’air, qui permet d’obtenir de très secondaire consiste en une longue bobine, munie en son som-
hautes tensions. Le secondaire du transformateur utilise la met d’une pièce métallique servant d’électrode de décharge
résonance d’un circuit LC, qui est entretenue par la tension au et souvent de forme toroïdale. La tension de claquage dans
primaire. Par le passé, on utilisait souvent un éclateur à étin- l’air est de 1 à 3 kV par mm, et la forme de cette électrode est
celles en parallèle ou en série avec l’enroulement primaire pour importante : le claquage se produira plus vite avec une pointe
[5] learntodiscover-science.blogspot.nl/2016/10/
simple-tesla-coil.html
Liens
[6] hackaday.com/2014/12/22/
[1] fr.wikipedia.org/wiki/Bobine_Tesla micro-tesla-coil-makes-a-perfect-stocking-stuffer/
[2] www.hvtesla.com/ [7] www.youtube.com /watch?v=MwG-EzVEE1I
[3] www.teslacoildesign.com/ www.youtube.com/watch?v=3zjnX41K1pE
[4] www.youtube.com/watch?v=QDZnCOLZ394 www.youtube.com/watch?v=LHCXqhhxGqA
www.youtube.com/watch?v=X2PrPHgOy04 www.youtube.com/watch?v=gSaGzhdI-QM
capteurs (4)
pour Arduino et Cie
La commutation et le pilotage avec la lumière sont des techniques répandues qui
présentent de nombreux avantages. En effet, elles ne nécessitent aucun contact
mécanique, les contacts de commutation ne sont pas
soumis à l’usure, les modules sont isolés électriquement
et bien plus encore.
S
A2
390R
10k
2k
10k
S
10k A1
IR
V+
V+ 330R +5V
LM393 +5V
G
IR GND
G
GND
Light Blocking/Heartbeat
Tracking
La LED située à la sortie du comparateur permet de tester facile- analogique, car il ne faut pas s’attendre à de grandes variations.
ment le fonctionnement. Un doigt placé à env. 1 cm du capteur Le capteur de rythme cardiaque est conçu comme un capteur
peut servir de surface réfléchissante. Le point de commutation à fourche (voir figure 2). En revanche, l’écart est plus grand
optimal peut être ajusté avec le potentiomètre. entre l’émetteur et le récepteur. Comme la diode émettrice IR
À la sortie, on obtient un signal numérique susceptible d’être et le phototransistor ont des pattes de raccordement longues,
interprété comme à l’accoutumée. Vous pouvez soit vous servir il est facile de trouver la position optimale. La carte est iden-
du logiciel présenté dans le 2e article de cette série [3], soit tique à celle du capteur à fourche sauf que le connecteur et
raccorder directement un actionneur. Maintenant, place à votre les composants sont montés de l’autre côté.
imagination et n’oubliez pas qu’il n’y a pas que les robots. Vous Pour que cela fonctionne, il faut donc courber la diode IR et le
avez peut-être une lampe ou un ventilateur qui ne demande phototransistor de manière à ce qu’un doigt puisse être coincé
qu’à être commandé au doigt et à l’œil. entre les deux. Attention, le doigt ne doit toucher aucune par-
tie conductrice de la carte, car ceci risquerait d’entraîner des
Barrière lumineuse à fourche ronflements supplémentaires. La figure 3 montre comment
Beaucoup de machines et d’appareils (du scanneur à l’impri- nous avons courbé les capteurs. De cette manière, la diode
mante 3D) sont équipés d’un interrupteur de fin de course qui IR pointe presque directement vers le phototransistor. La ten-
permet de détecter la position d’une pièce mobile. Le problème sion de sortie approche maintenant le zéro. La lumière est
des contacts mécaniques ou des microrupteurs est leur stabi- coupée dès qu’on pose le doigt dessus. Comme le phototran-
lité à long terme, de sorte qu’ils doivent être remplacés après sistor conduit moins, la tension augmente. Le doigt peut être
un certain temps. La barrière lumineuse à fourche présente calé à l’aide d’un élastique (fig. 4) si l’on veut faire plusieurs
un avantage : la diode IR et le phototransistor ne s’usent pas tests d’affilée. Il est important que le doigt soit relaxé et que
à condition que le courant de la LED reste modéré. la pression ne varie pas de manière à ne pas fausser le signal.
La diode émettrice est pointée vers le phototransistor (fig. 2), Pour notre premier test dans l’EDI Arduino, nous nous servons
l’écart entre les deux doit être faible. Le boîtier en forme de du programme VoltageAD2 (voir 1er article de la série [2]). La
fourche présente une fente au travers de laquelle il est possible tension sur phototransistor peut être représentée à l’aide du
de faire passer un objet opaque. La position de commutation traceur série (fig. 5). On voit clairement la modulation de la
est reproductible avec une précision de moins d’un millimètre. lumière par le pouls. Les oscillations plus lentes, superposées
Des capteurs à fourche similaires sont utilisés dans les souris, au signal, proviennent de mouvements incontrôlables. Pour
ce qui démontre bien leur fiabilité au quotidien. améliorer le traitement du signal, nous utilisons d’abord un
Le signal de sortie du collecteur du phototransistor peut être filtre passe-bas (listage 1). Ce filtre codé sur deux lignes
interrogé de manière soit analogique soit numérique. Le signal donne simplement la moyenne glissante des valeurs mesurées.
est traité en fonction de la tâche envisagée et du logiciel uti- Chaque nouvelle valeur mesurée est ajoutée à la somme de
lisé. Le capteur permet un positionnement au millimètre près, valeurs moyennes mean, après avoir réduit cette somme de 1/20.
ce qui est nécessaire par exemple pour les imprimantes 3D. Chaque valeur mesurée n’a donc qu’une influence de 5% sur
Dans les cas moins critiques, il suffit d’une simple interroga- la moyenne. La constante de temps du filtre passe-bas est la
tion numérique de type « lumière ? » ou « pas de lumière ? ». période d’échantillonnage multipliée par 20, soit dans ce cas
0,4 s. La fréquence d’échantillonnage a été fixée à 50 Hz, pour
Pulsomètre atténuer les éventuels signaux parasites du réseau électrique.
La mesure optique est souvent utilisée dans les moniteurs de fré- La fréquence de coupure du filtre correspond à f = 1 / (2 π T),
quence cardiaque. La lumière émise à une longueur d’onde adé- soit 0,398 Hz. Pour l’illustration, les valeurs mesurées non fil-
quate par une diode au travers d’un doigt ou d’un lobe d’oreille trées et filtrées sont toujours affichées en alternance.
est récupérée de l’autre côté des tissus par un phototransistor. Le traceur série permet de montrer le fonctionnement du filtre.
La lumière est partiellement absorbée par le sang qui se trouve La moyenne glissante suit le signal avec une certaine inertie
dans le corps. Le rythme cardiaque modifie périodiquement la (fig. 6). Si l’on retire rapidement le doigt du capteur, on peut
circulation sanguine et module ainsi légèrement le flux lumi- voir la réponse aux impulsions du filtre passe-bas (fig. 7).
neux. Les signaux doivent bien sûr être interprétés de manière Il ne nous reste plus qu’à calculer la différence entre le signal
entrant et la valeur moyenne (listage 2). Et voilà, notre filtre travers des veines. Le pulsomètre permet de détecter également
passe-haut est lui aussi terminé ce qui nous permet d’obtenir les éventuelles irrégularités du rythme cardiaque.
un signal de pouls propre, dépourvu de toute oscillation lente. Pour parachever le pulsomètre, il convient maintenant de mesu-
Passons maintenant à l’interprétation de la fréquence du pouls. rer les écarts entre les flancs positifs. L’Arduino dispose d’une
Le montage permet de détecter d’autres détails. Le signal grimpe fonction simple pour mesurer le temps : millis(). Le temps
abruptement pour redescendre plus tranquillement (fig. 8). On écoulé depuis la dernière initialisation est restitué en millise-
voit qu’avec chaque battement, le cœur pompe du sang dans le condes. Ceci permet de mesurer l’écart entre deux battements
doigt au travers des artères et que le sang repart doucement au cardiaques. Le programme (listage 3) indique la durée du
10k
10k
Le résultat ne se laisse pas attendre, puisque la fréquence est
calculée à chaque battement de cœur à partir de la durée de CLK
A0 (A4)
l’impulsion. Cependant, nous avons constaté que le moindre
DT
mouvement supprime des impulsions, ce qui conduit à multi- A1 (A5)
plier la durée du pouls par deux ou trois. C’est la raison pour
SW
laquelle les valeurs mesurées ne sont présentées que lorsque
la fréquence cardiaque dépasse les 45 battements par minute.
+5V (13)
'--------------------------------- U = U + D
'Pulse.BAS ADC2, LCD Ticks = Ticks + 1
'--------------------------------- U1 = D - Du
If U1 > 0 And U2 < 0 Then
... T = Ticks * 10
F = 60000 / T
Config Timer0 = Timer , Prescale = 1024 Ticks = 0
On Ovf0 Tim0_isr If F > 45 Then
Enable Timer0 Print T
Enable Interrupts Print F
Locate 1 , 1
... Lcd T
Lcd " ms "
Do Locate 2 , 1
Loop Lcd F
Lcd " /min "
Tim0_isr: End If
Timer0 = 100 '10ms End If
D = Getadc(2) U2 = U1
Du = U / 40 Return
U = U - Du
M 5V / 10mA
9 (PWM1A)
Codeur en Bascom
La version Bascom du programme présente à peu près la même
structure. Comme les langages sont interchangeables, il suffit
de reprendre le code source, de conserver le nom des variables
et d’adapter le tout à la syntaxe spécifique à ce langage. Pour
finir, on constate une seule véritable différence : en Bascom,
on utilise les deux sorties MLI du timer1 avec une résolu-
tion type de 10 bits, ce qui correspond à 1 023 pas écartés
d’environ 5 mV.
Deux sorties MLI parfaitement réglables, voilà qui me donne
envie de faire une petite expérience en liaison avec des étages
de sortie montés en pont puisque les deux signaux à MLI pro-
viennent du même timer et présentent des impulsions qui coïn-
cident exactement et sont synchronisées par un flanc montant. Code source et fichiers Gerber :
Pourquoi ne pas se servir d’une LED verte et d’une LED rouge
comme diodes antiparallèles entre ces deux sorties (figure 11).
où sont-ils ?
En réglant une tension moyenne de 2 500 mV p. ex. sur les
Vous êtes nombreux à chercher
deux canaux, les deux LED restent éteintes. Une LED com-
les fichiers associés (code, circuit
mence à briller dès qu’un canal est en déséquilibre. imprimé…) aux articles publiés
De la même façon, on pourrait brancher un moteur CC (de type dans le magazine, dans la série
magnétophone, courant de démarrage de 10 mA) pour régler de livres « 3XX circuits » ou
le sens de rotation et le nombre de tours. Il est vrai qu’on encore dans les compilations.
Malheureusement, en dépit
devrait se servir d’une vraie commande de moteur. Mais le
de notre vigilance, vous
montage fonctionne quand même. Avec cette configuration, il tombez parfois sur des liens
n’y a pas de risque de tensions d’induction parce que les sor- morts. Ceux-ci sont un dommage
ties se trouvent toujours à l’état basse impédance. Les sorties collatéral de l’évolution constante des
ne passent à l’état haute impédance que si l’on remet à zéro sites d’Elektor et nous vous remercions de nous les
signaler. Nous les corrigerons aussitôt.
l’Arduino durant le fonctionnement. Par mesure de précaution,
nous retirons donc le moteur durant le redémarrage... Le plus sûr chemin pour trouver un fichier lié à un
(160302 – version française : Pascal Duchesnes) article publié est de commencer par repérer les six
premiers chiffres de la référence mentionnée en
fin d’article dans le magazine. Prenons par ex. le
Liens « Chargeur de batteries à panneaux solaires » publié
en juillet 2008. Sa référence est 080225-I.
[1] www.elektor.fr/arduino-sensor-kit
Il suffit maintenant de saisir dans votre navigateur
[2] www.elektormagazine.fr/160152 l’URL suivant : www.elektormagazine.fr/080225
[3] www.elektormagazine.fr/160173
Vous accéderez automatiquement à la page associée à
[4] www.elektormagazine.fr/160210 cet article avec tous les téléchargements disponibles.
[5] www.elektormagazine.fr/160302
La rédaction à votre service.
[6] www.elektormagazine.fr/140009
Pas de panique ! Même si le traitement de signal peut être Je vais vous expliquer comment cela se calcule, mais voyons
quelquefois un peu rébarbatif, je vous promets que je n’utili- d’abord une application typique : le radar. Un radar envoie une
serai ici aucune notion plus complexe que… des additions et impulsion, puis cherche à détecter l’impulsion réfléchie par les
des multiplications. obstacles. C’est facile si l’amplitude de l’écho est grande, mais
beaucoup moins simple si le bruit de fond est élevé. Grâce à la
Corrélation, quésako ? corrélation, les radars modernes peuvent détecter un objet de
Ouvrons nos dictionnaires. En français une corrélation est « une petite taille à plusieurs dizaines de kilomètres, en envoyant non
relation existant entre deux notions dont l’une ne peut être pas une simple impulsion, mais un motif plus complexe qu’il
pensée sans l’autre » (Larousse [1]). En traitement du signal, sera possible d’identifier dans l’écho par traitement numérique…
la notion équivalente est proche. De quoi s’agit-il ? Imaginez
que vous avez un signal bruité, mais qui inclut des répétitions Un algorithme !
d’un signal connu. Chaque réplication est plus ou moins pré- Entrons dans le vif du sujet. La bonne nouvelle est qu’un calcul
cise, a une amplitude variable, peut être n’importe où dans de corrélation est simple à expliquer, et encore plus simple
le signal et peut même être noyée dans du bruit (figure 1). à programmer sur un microcontrôleur, un DSP ou un FPGA.
Le signal à rechercher, appelons-le « motif », est connu, mais Imaginez que vous avez un signal numérisé par un convertisseur
comment en localiser chaque occurrence, et estimer son ampli- analogique/numérique, sous la forme d’un tableau de N échan-
tude ? Pas évident, n’est-ce pas ? En fait c’est facile grâce à tillons successifs. De même, un second tableau contient le
l’opération mathématique également appelée « corrélation ». motif recherché, de M échantillons. Le motif est plus court
Figure 1. Un motif connu (haut) est répliqué deux fois dans un signal Figure 2. Une corrélation fonctionne en déplaçant progressivement le motif
bruité, à différentes amplitudes (milieu). Le but du jeu est d’identifier ces (milieu) par rapport au signal (haut). Les points des deux courbes sont alors
deux répliques (bas)... multipliés et additionnés, ce qui donne un point sur la corrélation (bas).
Très simple, non ? Cet algorithme est illustré sur la figure 2. // Calculons la corrélation
Comment ce calcul répond-il à notre problème ? Très simple // (Scilab a une fonction pour cela...)
également : la valeur du signal de corrélation est d’autant plus Correlation = xcorr(NoisySignal, Pattern);
élevée que le motif et le signal correspondent. Il suffit donc plot(Correlation);
de rechercher les pics du signal de corrélation, leur position
dans le temps indique les occurrences probables du motif, et Regardez le résultat de cette simulation sur la figure 3 : malgré
leur amplitude est proportionnelle à l’amplitude de la réplique ! le bruit, le calcul de corrélation permet de détecter sans soucis
Regardez de nouveau la figure 2 pour vous en convaincre. les occurrences et les amplitudes du motif. Notez qu’avec un
motif rectangulaire, la corrélation est un triangle (réfléchissez…
Quelques exemples c’est normal, car la corrélation est ici proportionnelle à l’aire
Bien sûr, dans la vie réelle c’est un peu plus complexe que dans de la zone commune entre le signal et le motif).
ce premier exemple, car les signaux sont bruités, mais l’algo- Une petite précision : sur la figure 3, le motif est long
rithme fonctionne en général bien… J’ai fait quelques simulations (10.000 échantillons). Que se passe-t-il s’il est dix fois plus
pour vous avec différents types de motifs et niveaux de bruit court, avec le même niveau de bruit ? J’ai fait la simulation pour
pour illustrer tout cela. J’ai utilisé l’outil de calcul numérique vous, et la figure 4 donne le résultat. L’algorithme fonctionne
Scilab (voir [2]), qui a le bon goût d’être gratuit. Vous pourrez toujours, mais la corrélation résultante est un peu plus bruitée.
ainsi le télécharger et reproduire ces exemples vous-même. Ceci montre que, comme souvent en calcul numérique, plus
on a d’échantillons, plus il est aisé d’extraire le signal du bruit.
Donc une fréquence d’échantillonnage plus rapide est béné-
fique pour le résultat, mais nécessite bien sûr plus de calculs.
Regardons ce qui se passe avec des motifs plus complexes que
des impulsions rectangulaires. La figure 5 montre le résultat
lorsque le motif correspond à une période d’un signal sinusoïdal.
Le niveau de bruit est tellement élevé qu’un humain ne peut
quasiment pas « voir » l’occurrence du motif dans le bruit, mais
l’algorithme fonctionne parfaitement, pourvu que le motif soit
assez long (10.000 échantillons ici aussi). En fait, les mathé-
maticiens ont même démontré que le calcul de corrélation est
le meilleur algorithme linéaire pour détecter un motif connu
dans un signal, du moins si le bruit est ce qu’on appelle un bruit
blanc. Pour cette raison, un calcul de corrélation entre un signal
et un motif connu est appelé filtre adapté ou filtre optimal.
Et l’autocorrélation ?
Jusqu’à présent, nous avons discuté de la corrélation entre un
Figure 5. Un exemple avec un motif sinusoïdal. motif connu et un signal. Mais on peut aussi calculer une cor-
rélation d’un signal avec lui-même. Cette méthode, appelée Pour conclure
autocorrélation, utilise donc le même algorithme, mais avec J’ai fait de mon mieux pour éviter les mathématiques et vous
le signal lui-même comme motif. À quoi cela peut-il donc bien faire comprendre comment un calcul de corrélation peut dras-
servir ? Encore une fois, gardez à l’esprit l’idée du motif glis- tiquement améliorer la performance d’un produit, avec une
sant au-dessus du signal. Dans le cas de l’autocorrélation, le complexité relativement faible. Retenez qu’il faut penser à
calcul identifiera si le signal est corrélé avec une copie de lui- une corrélation dès que vous avez besoin de savoir si un motif
même décalée dans le temps. Donc une autocorrélation per- donné est présent dans un signal. Vous pouvez à ce stade relire
mettra d’identifier la période du signal, c’est-à-dire l’instant mon article sur les filtres à réponses impulsionnelles finies [9],
où il se répète ! vous devriez retrouver des notions très proches de celles expo-
Regardez donc la figure 7 où j’ai pris l’exemple d’un signal sées ici… Comme quoi le monde est petit, en particulier dans
wobulé. C’est une suite de sinusoïdes de fréquence linéaire- le domaine du traitement du signal !
ment croissante. Les radaristes appellent chacun de ces seg- Comme d’habitude, je vous encourage à expérimenter. Télé-
ments un chirp (ce qui est vaguement ce que vous entendez chargez l’outil et reproduisez ces exemples. C’est la meilleure
si vous envoyez un tel signal sur un haut-parleur : chiiiirp solution pour comprendre réellement ce qui se passe !
chiiiirp...). Malgré le bruit, l’autocorrélation permet clairement (160374)
de reconnaître la période du signal, c’est-à-dire la période de Cet article a été publié dans la revue Circuit Cellar (n°299, juin 2015).
répétition des chirps.
Liens et ressources
[1] Définition de la corrélation : www.larousse.fr/dictionnaires/francais/correlation/19435
[2] Outil de calcul numérique gratuit Scilab : www.scilab.org
[3] Numerical recipes in C: The art of scientific computing, William H. Press & all, Chapter 13.2 Correlation
and auto-correlation using FFT, ISBN 0-521-43108-5
[4] Understanding Digital Signal Processing (3rd Edition), Richard G. Lyons, ISBN 978-0137027415
[5] Signal processing and correlation techniques, Peter T. Gough, University of Canterbury, Christchurch, New Zealand :
http://pollux.dhcp.uia.mx/manuales/Filtros/UIA_correlation.pdf
[6] Digital Signal Processing: A Computer Science Perspective, Chapter 9 Correlation, Jonathan Y. Stein, Editions John Wiley &
Sons, Inc., ISBN 0-471-29546-9
[7] The Scientist and Engineer’s Guide to Digital Signal Processing, Steven W. Smith : http://www.dspguide.com/ch7/3.htm
[8] Wikipedia, cross-correlation : http://en.wikipedia.org/wiki/Cross-correlation
[9] hors circuits - le filtrage numérique sans stress : les filtres FIR, Elektor 01/2016 : www.elektormagazine.fr/150635
4
5
Liens
[1] www.elektormagazine.fr/160100
[2] be.eurocircuits.com/shop/offtheshelf/product.
aspx?ad=9565&ano=ec-stencil-fix&an=ec-stencil-
fix&s=consumables
9
Vous voulez en apprendre plus sur la mise en
œuvre d’eC-stencil-fix ?
Nous vous conseillons le petit film suivant sur
YouTube : youtu.be/HBWtqZro_fg.
dans l’e-choppe
ª160109-2
circuit imprimé du shield BME280
ª160109-91
module BME280 (version I2C)
ª160109-92
module BME280 (version SPI) 10
Miroslav Cina et
Thomas Scherer (co-auteur du texte)
MIC79050
1 3
K1 K2
2 C1
100u
6V3
5V...16V Li-Ion
150580 - 12
copyright
Figure 1. Monticule d’accus d’ordinateurs Figure 2. Le circuit minimaliste de ce chargeur pour accus au lithium se débrouille avec un unique
portables mis au rancart, avec leurs cellules circuit intégré tripode (+ condensateur électrochimique).
au grand jour. Nombre d’entre elles pourront
continuer à être utilisées longtemps.
2x 20
LED+A
LED–C
VDD
VSS
R/W
RS
VL
D0
D1
D2
D3
D4
D5
D6
D7
E
+5V
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +5V
+5V
C2 C1
K1 P1
1 MCLR copyright
100n 100n 10k
2
3 T1
4 PGD
5 PGC FQP27P06X
6 1
19 VDD 16
RA0 RC0 IC2
18 15 1 3
RA1 RC1 IN BAT
IC1
17
RA2 RC2
14 MIC79050
4 7
-4.2YS
LED1 RA3/MCLR RC3 GND
3 6
RA4 RC4 2
2 5
RA5 RC5 D1 R2
8
bicolor RC6 100R
9
RC7 1N4007 +5V R3
C3
PIC16F1829
3k3
12 13 R4 R5 C4
RB5 RB4
10 11 100u 50V
RB7 RB6 5
4k7
4k7
100n
VSS VCC
8 R9 R6
R1 20 3 SDA IC4 VIN+
S1 S2
10R
0R1
4 INA219AIDR
270R
SCL 7 +5V
VIN–
A1 GND A0 2W
CHARGE DISCHARGE
1 6 2
T2
RE1 D2
D3 L1 +5V
5 4 IRF540 1N4007
VIN VSW
IC3 100uH
R8
1N4007 LT1076CT-5
K2 2 1 K3
VC FB
1k
R7 GND
3 D4 LED2
1k5
C5 C6
C7 1000u 50V
220u 50V
1N5817
33n
150580 - 11
Figure 4. Avec un µC épaulé par un rien d’électronique, le régulateur de charge simple de la figure 2 devient un chargeur pour accus au lithium que l’on
peut qualifier « de luxe ».
la figure 2. Ce régulateur de charge ancien bloc d’alimentation de portable complet d’un chargeur confortable pour
fournit à sa sortie une tension stabili- Nokia (5,7 V / 0,8 A) et d’un morceau les cellules Li-ion commerciales. Le µC
sée de 4,2 V avec une tolérance (néces- de carte conÇue à cet effet (cf. fig. 3). multifonction, un PIC16F1829, contrôle la
saire) de 0,75%. Son courant de charge Le test fut concluant. charge proprement dite, mesure la ten-
est de 0,5 A – pas très intense, mais il Ce chargeur simplissime fonctionne, sion et le flux de courant, pilote une LED
convient à la grande majorité des cel- mais présente cependant un inconvé- d’état bicolore, interroge deux boutons et
lules. Une cellule courante de 2 à 3 Ah nient majeur pour l’électronicien : à un affiche toutes les données importantes
se charge donc en 4 à 6 h. moment quelconque, l’accu est proba- sur un écran LCD.
Outre une protection thermique inté- blement plein, mais on ne sait pas quand Mais ce n’est pas tout : pour éviter des
grée, le CI n’intègre pas grand-chose. et on ne voit pas ce qui se passe alors. pertes d’énergie thermique inutiles, le
Il est disponible en boîtier SOT223-3 Pour cela, il faut un peu plus d’électro- circuit est doté d’un régulateur à décou-
facile à souder et ne requiert rien de plus nique, ce qui explique pourquoi Miroslav page, IC3. Rassurez-vous, vous n’aurez
qu’une tension d’entrée entre 5 et 16 V, a développé un « vrai » chargeur. pas à bobiner vous-même l’inductance
sous 0,5 A. Il est recommandé de rester requise, L1, elle est disponible toute faite.
dans la plage de tension inférieure, sinon Version de luxe D3 fait office de protection contre une
le régulateur linéaire dégage beaucoup De nos jours, plus de luxe signifie l’uti- inversion de polarité. Comme il faut à
d’énergie et chauffe donc. Miroslav a lisation d’un microcontrôleur (µC) pour IC3, pour une tension de sortie de 5 V,
donc réalisé, à titre de test, un chargeur épauler une fonction de base. C’est le une tension d’entrée comprise entre 8
d’accu au lithium simple, constitué d’un cas ici : la figure 4 montre le circuit et 60 V, l’alimentation du circuit pourra
Équilibrage
Contrairement aux technologies d’accus classiques, le maté- de surveillance, dans des plages de sous-tension critique, d’où
riau des cellules au lithium est sensible aux surcharges et aux perte de capacité. Après plusieurs cycles de charge/décharge,
décharges profondes ; elles peuvent l’endommager de façon irré- le problème empire rapidement.
versible. Dans un circuit en série sans surveillance électronique D’où la règle impérative : ne jamais mettre en série des cel-
explicite (précisément un équilibrage), la cellule de la capacité lules au lithium sans ce que l’on appelle un équilibreur ou un
la plus faible se retrouvera, lors de la charge, en « dépassement circuit électronique spécialisé dans la gestion d’accus. Ceci est
de capacité » (tension de cellule supérieure à la valeur admis- vrai tant pour la décharge que pour la charge. On trouve dans
sible) alors que la charge des autres cellules doit se poursuivre. le commerce des équilibreurs pour différents nombres de cel-
Conséquence : outre une augmentation de la température et lules, diverses capacités et chimies de lithium. La thématique
le risque d’incendie de nombreux modèles, une autre consé- de l’équilibrage (balancing) est complexe et sort du cadre de
quence est la dégradation de la cellule d’accu concernée avec cet article. De nombreuses applications ne requièrent qu’une
une nouvelle réduction de sa capacité. Idem pour la décharge : seule cellule, de sorte que l’on peut passer outre la thématique
la cellule ayant la capacité la plus faible tombe, en l’absence de l’équilibrage.
liste de composants
et se préparer à la numérisation et l’automatisation grandis- Les opposants déclarent qu’il est trop tôt pour une loi sur les
santes de l’économie. robots. Ce domaine est en pleine émergence et nous en savons
trop peu sur le développement de la robotique. Ils sont égale-
Responsabilité ment opposés à l’association de l’IA et de la robotique qui sont
Un autre sujet souvent abordé est la question de la responsabi- deux domaines différents. En fait, il y a de vastes différences
lité. Qui est responsable des dommages causés par un système au sein même de la robotique. Un Roomba ne nécessite pas la
s’il est autonome et autodidacte ? Le fabricant ? Le proprié- même surveillance qu’un robot de soin pour personnes âgées.
taire ? Le robot lui-même ? Si ce problème n’est pas résolu, il L’objection la plus importante est que trop de régulation va
peut entraver l’innovation, car les fabricants et les utilisateurs étouffer l’innovation.
finaux manquent de sécurité juridique. Le PE demande à ce Les partisans de cette mesure ne sont pas de cet avis. Ils avancent
sujet à la CE de proposer un instrument législatif pour aborder qu’un cadre commun va encourager l’innovation. Premièrement,
la question de la responsabilité. parce que cela apportera une sécurité juridique pour les fabri-
Finalement, le PE demande la création d’une agence européenne cants et utilisateurs finaux. Deuxièmement, parce que cela har-
pour la robotique et l’IA qui servirait de centre d’expertise pour monisera les normes technologiques entre les États membres.
atteindre les buts mentionnés plus haut. La question de savoir si nous avons besoin maintenant d’une
législation pour la robotique fait débat. Toutefois c’est le moment
Débat public d’y penser. Plutôt que d’être submergé par la prochaine vague
La Commission n’est pas obligée de suivre la proposition d’avancements technologiques, nous devons tenir un débat
du PE, mais elle doit indiquer ses raisons si elle ne le fait public sur la place à attribuer à la robotique et à l’IA. Il faut
pas. Au moment de la rédaction de cet article, la CE n’a pas déterminer de manière démocratique comment notre société
encore répondu. La CE acceptera-t-elle cette résolution ? La sera transformée par ces technologies émergentes.
rejettera-t-elle ? (160334 – version française : Thierry Destinobles)
Ce livre (en anglais) permet de prendre en main la carte La carte BBC micro:bit est compacte et programmable Le SmartScope n’est pas qu’un excellent oscilloscope USB
micro:bit conçue par la BBC et plusieurs acteurs de l’industrie dans différents langages, idéale pour faire ses débuts dans utilisable avec un ordiphone, une tablette ou un ordinateur,
électronique, et destinée à l’enseignement de la programmation. l’électronique programmée sans être intimidé. Elle combine c’est aussi une formidable carte de développement FPGA.
La carte animée par un ARM Cortex-M0+ (Nordic) est bien capteurs (magnétomètre, accéléromètre), boutons, LED et Ajoutez quelques connecteurs à la carte et vous voilà prêt
équipée : émetteur-récepteur BLE, matrice de 25 LED, BlueTooth. Chaque élément est programmable sans restriction à expérimenter, aidé par un logiciel facile à utiliser. Elektor
accéléromètre, magnétomètre, deux boutons-poussoirs, grâce à un logiciel facile à utiliser, disponible sur un site propose un Maker Kit avec un Smartscope préconfiguré
connecteur d’extension pour accéder au bus I2C et à plusieurs consultable à partir d’un PC/téléphone. Concevez des jeux, (version exclusive), deux programmateurs (JTAG et PICKIT3),
broches GPIO, plages de connexion pour fiches banane. connectez-vous à l’Internet des Objets... les câbles nécessaires ainsi que deux sondes analogiques.
L’ambition de cet ouvrage est de vous faire entrer dans le monde Arduino puis
de vous en faire ressortir victorieux pour vous emmener plus loin dans l’appren-
tissage de la programmation des microcontrôleurs. Il met la théorie en pra-
tique sur une carte Arduino* avec l’environnement de programmation Arduino.
Après ce parcours initiatique inédit, plaisant et ludique, vous programmerez vous-même
n’importe quel microcontrôleur. Ce livre sera donc votre premier livre sur les microcontrô-
leurs avec une fin heureuse !
Tous les programmes présentés peuvent être téléchargés.
Points forts
● objectif double :
◦ Théorie : apprentissage général de la programmation des microcontrôleurs
◦ Pratique : montages sur carte Arduino avec l’environnement de développement Arduino
● réalisations très originales
● matériel peu coûteux ; logiciel gratuit, code source ouvert
● carte* d’expérimentation polyvalente créée par l’auteur
● NOUVEAU : carte AVR Playground*, mélange d’Arduino Uno et de carte de
développement traditionnelle
● NOUVEAU : carte Elektor Uno R4* avec ATmega328PB et plus de périphériques
que la carte Arduino Uno R3
onal
ternati
The in magazine
c tr o nics
ele
Annual
g
Jahrgan
Année
g
Jaargan
SHARE
DESIGN
LEARN
om
icles fr
All art me 2016
Volu
D OM
-R
on DV
Ce livre n’est pas un manuel de physique : pas d’équations Ce DVD-ROM réunit tous les articles d’ELEKTOR parus au cours Quand un fabricant propose la version B d’un produit
différentielles ni de courbes abstraites, mais des phénomènes de l’année 2016, en français (mais aussi en anglais, allemand donné, les différences entre nouveau et ancien produits
physiques de la vie quotidienne. C’est une approche nouvelle et néerlandais). Il contient le texte des articles ainsi que les sont généralement peu significatives. Ce n’est pas le cas
et créative des leçons de physique grâce aux techniques schémas, et tous les dessins des circuits imprimés, sous forme pour l’ATmega328P d’Atmel au cœur de l’Arduino Uno R3. La
modernes de mesure et de traitement des données. de fichiers à haute résolution. Une fonction de recherche dans version B de ce µC a tellement de nouvelles fonctions que
L’électronique utilisée (Arduino) est simple. Ajoutez-y le la table des matières vous permet de trouver immédiatement l’abandon de la version R3 est justifié : passez à l’Elektor
logiciel gratuit CoolTerm pour enregistrer les mesures et les l’article souhaité. Uno R4.
retravailler ensuite sous Excel.
Participez et gagnez !
Nous tirons au sort cinq des réponses internationales correctes reçues
dans les délais ; leurs auteurs recevront chacun un bon d’achat Elektor
d’une valeur de 50 €.
À vos crayons !
Envoyez votre réponse (les chiffres sur fond grisé) avec vos coordonnées
par courriel, avant le 23 mai 2017 à l’adresse [email protected]
Les gagnants
La solution de la grille du numéro de mars/avril est 314AB
Les cinq bons Elektor d’une valeur de 50 € vont à :
Michael DÜren (Allemagne), Denis Moucharte (Belgique), Jóseph Nagy (Hongrie),
Eugene Stemple (États-Unis), Sake van der Schaaf (Pays-Bas)
Bravo à tous les participants et félicitations aux gagnants !
Tout recours est exclu, de même que le sont, de ce jeu, les personnels d’Elektor International Media et leur famille. Un seul gagnant par foyer.
◊ Viva Technology
◊ Amiens Digital Forum – robotique, drones, objets connectés… 15 au 17/06 – Paris
16/05 – Amiens vivatechnology.com
www.amiensdigital.com
◊ Semaine européenne du
développement durable ◊ Go numérique !
30/05 au 05/06 – 20/06 – Lyon
France et Europe go-numerique.fr
www.esdw.eu
◊ Parkopolis - stationnement et mobilité urbaine
◊ Journées COFREND 21 au 22/06 – Paris
2017 www.salonparkopolis.com
30/05 au 01/06 –
Strasbourg ◊ Leti Innovation Days
www.cofrend.com 28 au 29/06 – Grenoble
www.letidays.com/2017
◊ Salon Mesure Solutions Expo2017
31/05 au 01/06 – Lyon ◊ Nanotech
mesures-solutions-expo.fr 28 au 30/06 – Paris
www.nanotechfrance.com/fr
E M ESURE FLUKE
ECHN IQ U E D
DÉCOUVREZ
P E R P R I X ! LA T
À U N S U
Multimètre numérique TRMS
précis, convivial, sûr et fiable
NT
COMPRENA
ENSEMBLE
URE
E & C IR C U ITS DE MES
POCHETT
Photo: Foto- und Bilderwerk
Bilderwerk erk
rrwe
erwe
werk
158,82
EN
erww
8
61010-1
Bildld
ilild
CAT III
dB
ÉCONO-
o-- und
nd
1000 V
un
MISEZ
EN
Foto-
to-
44 %
o
Foto
61010-1
oto: Fo
CAT IV
Foto:
Foto
600 V
F o
Pour mesurer précisément le courant de charge, la tension ou la résistance : Testeur de tension de la toute dernière
technologie de mesure et de sécurité !
Pince ampèremétrique à valeur efficace vraie
T150 VDE avec
Mesure du courant alternatif jusqu’à 400 A EN
Mesure de la tension continue
61010-1 affichage LED & LCD
CAT IV
ou alternative jusqu’à 600 V 300 V
Test de passage & mesure
Mesure TRMS permettant des résultats EN
61010-1
de la résistance
de mesure précis avec des signaux CAT III Indicateur de champ de rotation pour
600 V
non linéaires 2 systèmes de phases
Mesure de résistance jusqu’à Fonction pour contrôler des RCD
40 kohms Lampe de poche intégrée
Mesure de la température, EN
61010-1
EN
61010-1
de la capacité et de la fréquence CAT III CAT IV
600 V 600 V
125,88
FLUKE T150 VDE
DE
AVEC
ENSEMBLE ASTUCE
COFFRET PRIX
HOLSTER &
AINTENANT
B O N N EZ -V OUS DÈS M
A
NEZ !
TER ET GAG
AU NEWSLET
192,
au lieu de 311,01 FLUKE 325 PROMO
44
ÉCONO- Nous offrons tous les mois par tirage au sort un super
MISEZ cadeau technique aux abonnés de notre Newsletter !
38% PARTICIPER MAINTENANT ! ► http://rch.lt/Ay
www.reichelt.fr
MODES DE PAIEMENT INTERNATIONAUX: