0% ont trouvé ce document utile (0 vote)
1K vues132 pages

FR201705

Transféré par

gdechamps
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1K vues132 pages

FR201705

Transféré par

gdechamps
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ule !

mai / juin 2017 | nº 465

le form www.elektormagazine.fr

el
nouv

DÉCOUVRIR CRÉER PARTAGER

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)

(B) 16,50 € • (CH) 29,00 FS • (CAN) 20.99 $ca • (And) 15,50 €


ISSN 0181-7450 DOM surface 16,50 € • DOM avion 16,90 € • N Cal/S 2000 cfp
36 Expériences de Physique avec Arduino + Kit de démarrage
La rencontre de la physique et du microcontrôleur ne devrait plus étonner personne. Il existe d’excellents
enregistreurs de données, ainsi que de nombreux programmes pour les traiter et les présenter sous forme
de graphiques colorés et attrayants. La physique rébarbative, c’est fini !
J’ai choisi l’Arduino, car cette plate-forme est d’un accès facile et sa documentation abondante. La famille
Arduino offre des ressources extraordinaires à un prix dérisoire. Ajoutez-y le logiciel gratuit CoolTerm, et
vous pouvez enregistrer toutes les données de mesure pour les retravailler sous Excel et créer aisément
des tableaux ou des graphiques.
Ce livre n’est pas un manuel de physique. Vous n’y trouverez ni équations
différentielles ni courbes abstraites. Nous étudierons des phénomènes
physiques de la vie de tous les jours. Sans chercher à être exhaustif, mon
modeste ouvrage apporte aux leçons de physique une approche nouvelle
et créative grâce aux techniques modernes de mesure et de traitement
des données. L’électronique utilisée est
simple, et constitue une
belle démonstration
des possibilités.

Un kit a été spécialement conçu pour réaliser les


expériences décrites dans ce livre.
Contenu détaillé du kit, voir www.elektor.fr/159009-71

www.elektor.fr/arduino-36-experiences

Programmez avec l’Arduino


50 mini-projets instructifs
à microcontrôleur ATtiny
Pour tester et mettre au point de petits montages à microcontrôleur,
la carte Arduino est parfaite. Ensuite, on peut obtenir le même
résultat avec un autre µC, plus petit et moins cher, comme l’octopède
ATtiny. Ce livre pour les débutants montre comment faire à l’aide de
50 applications originales, instructives et astucieuses. La plupart des
projets sont décrits en détail.

Dans ces pages, ni théorie ni mathématiques, que des considérations


électroniques pratiques : un livre qui se lit le fer à souder à la main !

L’ATtiny est programmé avec une carte Arduino ; les croquis


disponibles sur cette plateforme sont facilement transposables pour
l’ATtiny, le livre explique comment.

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

Elektor est édité par :


PUBLITRONIC SARL
c/o Regus Roissy CDG
1, rue de la Haye
BP 12910
FR - 95731 Roissy CDG Cedex
Géolocalisation pour tous
@ : [email protected]
Un rhinocéros abattu au zoo de Thoiry, sa corne découpée à la tronçonneuse !
Tél. : (+33) 01.49.19.26.19
En mars dernier, la France qui était déjà une zone de transit pour le trafic de cornes de
du lundi au vendredi de 10h à 13h
rhinocéros est devenue également une zone de braconnage. Quel rapport avec l’électro-
Fax : (+33) 01.49.19.22.37 nique ? Faut-il incriminer le système d’alarme et les caméras de surveillance du zoo qui
n’ont pas empêché ce vol funeste ?
www.elektor.fr | www.elektormagazine.fr Pas du tout ! La même semaine, la Fondation Sigfox a présenté l’expérimentation d’un
système de suivi à distance des rhinocéros en Afrique pour mieux les protéger : projet
Banque ABN AMRO : Paris
IBAN : FR76 1873 9000 0100 2007 9702 603
« Now Rhinos Speak ». Il semble que désormais la préservation des espèces menacées
BIC : ABNAFRPP est nécessaire partout dans le monde.
Pour mémoire, le réseau Sigfox a déployé des antennes sur trois continents, dans une
Publicité : trentaine de pays. Il écoute et relaye les messages envoyés par des objets connectés
Margriet Debeij estampillés Sigfox. Bien sûr, vous connaissez les balises Argos bientôt quarantenaires
Tél. : 02 41/955 09 174 qui permettent aux communautés scientifiques de collecter des données géolocalisées et
Fax : 02 41/955 09 013
d’œuvrer à la sauvegarde de l’environnement et des espèces. Donc rien de nouveau sous
Gsm : (+49) 170 550 539 6
le soleil africain !
[email protected]
À un détail près : les réseaux à bas débit comme Sigfox, LoRa et consorts sont accessibles
DROITS D’AUTEUR : à tous. Pas besoin d’être un institut de recherche ou une association de protection de
© 2017 Elektor International Media B.V. l’environnement pour y entrer, comme dans le réseau Argos. Un électronicien peut
facilement créer des balises personnalisées et souscrire un abonnement pour veiller sur
Toute reproduction ou représentation intégrale ou
partielle, par quelque procédé que ce soit, des pages son propre écosystème. Quand vous aurez mis en place la surveillance de votre cheptel
publiées dans la présente publication, faite sans de moutons, loups ou rhinos, n’hésitez pas à venir partager votre expérience avec nous.
l’autorisation de l’éditeur est illicite et constitue une
contrefaçon. Seules sont autorisées, d’une part, les
Mariline Thiebaut-Brodier
reproductions strictement réservées à l’usage privé du
copiste et non destinées à une utilisation collective, et,
d’autre part, les analyses et courtes citations justifiées
PS La fondation Sigfox cherche des donateurs pour produire les 29.000 capteurs à installer dans les oreilles
par le caractère scientifique ou d’information de l’oeuvre des rhinocéros. Le capteur permettrait de mesurer chaque signe du comportement de l’animal : mouvement,
dans laquelle elles sont incorporées (Loi du 11 mars 1957 signes de stress, rythme cardiaque, etc.
-art. 40 et 41 et Code Pénal art. 425).
Certains circuits, dispositifs, composants, etc. décrits
dans cette revue peuvent bénéficier de droits propres
aux brevets; la Société éditrice n’accepte aucune
responsabilité du fait de l’absence de mention à ce sujet.
Conformément à l’art. 30 de la Loi sur les Brevets, les Notre équipe
circuits et schémas publiés dans Elektor ne peuvent être Rédactrice en chef : Mariline Thiebaut-Brodier ([email protected])
réalisés que dans des buts privés ou scientifiques et
Rédaction internationale : Thijs Beckers, Jan Buiting, Jens Nickel
non commerciaux. L’utilisation des schémas n’implique
aucune responsabilité de la part de la Société éditrice. Laboratoire : Ton Giesberts, Luc Lemmens,
La Société éditrice n’est pas tenue de renvoyer des Clemens Valens (responsable), Jan Visser
articles qui lui parviennent sans demande de sa part
Coordination : Hedwig Hennekens
et qu’elle n’accepte pas pour publication. Si la Société
éditrice accepte pour publication un article qui lui est Ont coopéré à ce numéro : Thierry Destinobles, Pascal Duchesnes, Yves Georges,
envoyé, elle est en droit de l’amender et/ou de le faire Robert Grignard, Denis Lafourcade, Denis Langrand,
amender à ses frais; la Société éditrice est de même en Jean-Louis Mehren, Denis Meyer, Helmut Müller,
droit de traduire et/ou de faire traduire un article et de
Kévin Petit, Xavier Pfaff, Guy Raedersdorf
l’utiliser pour ses autres éditions et activités, contre la
rémunération en usage chez elle. Service de la clientèle : Cindy Tijssen

Graphistes : Giel Dols, Mart Schroijen, Patrick Wielders


Imprimé aux Pays-Bas
par Senefelder Misset – Doetinchem Elektor en ligne : Daniëlle Mertens
Distribué en France par M.L.P.
et en Belgique par A.M.P.

www.elektormagazine.fr mai/juin 3
ce mois-ci
40e année – nº 465
mai/juin 2017

5 bientôt dans Elektor

13 Elektor : guide de connexion(s)


118
63 vol tous azimuts
piloté par Clemens Valens

66 le Phantastron
drôle de composant n°30

88 projet 2.0
corrections, mises à jour

20
et courrier des lecteurs

90 Rétronique BBC micro:bit


PET fête ses 40 ans, bon anniversaire !
pour électroniciens
94 Q & R
premiers pas avec mbed
(presque) tout ce que vous avez toujours
voulu savoir sur... la différence entre La carte BBC micro:bit ne
immotique et domotique convient pas seulement
aux étudiants, c’est aussi
126 questions d’éthique un superbe microcontrôleur
avons-nous besoin d’une loi sur les robots ? pour les électroniciens.
On dispose sous un faible
128 l’e-choppe d’Elektor volume de presque tout ce
que l’on a régulièrement
130 Hexadoku - casse-tête pour elektorniciens
besoin : entrées/sorties
numériques avec MLI,
131 agenda - mai-juin 2017
convertisseur A/N ainsi
qu’une interface USB
pour l’alimentation, la
programmation et l’échange
de données. Divers
en coulisse capteurs et Bluetooth
complètent le tout.

6 tremplins vers l’IdO


cartes et kits de développement
pour l’Internet des Objets

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

4 mai/juin 2017 www.elektormagazine.fr


chargeur
d’accus Li-ion magazine

à courbes caractéristiques correctes


46 retour sur l’analyseur de signal
• Charge toutes sortes d’accus Li-ion de tension nominale de 3,6 V. par Ethernet
plus rapide, toujours plus facile à utiliser,
• Mode « formatage » pour essayer de sauver des cellules ayant subi
et quelques nouveautés
une décharge profonde.
• Mode « décharge » pour déterminer la capacité réelle de l’accu. 54 radiocommande bidirectionnelle
à 4 voies
• Toutes les informations pertinentes affichées sur l’écran LCD.
avec modules radio XBee ou nRF24

68 passerelle IoT et nœuds sans fil


2e partie : le logiciel

28
74 éclairage extérieur variable

préamplificateur simple réglage de la luminosité de lampes


à LED de 12 V
pour microphones professionnels
79 simulateur de présence
Il y a belle lurette que les enregistreurs à bande la crainte des monte-en-l’air
sont tombés en désuétude et ont été remplacés par
des ordinateurs portables équipés d’une « carte son 96 WaterDeck
USB » de bonne qualité. Alors que l’entrée « ligne » d’un PC présente analyse de la consommation d’eau
généralement des caractéristiques acceptables, l’entrée « micro » se des villes intelligentes
caractérise par de médiocres niveaux de bruit et de distorsion. Surtout,
elle ne restitue qu’un signal monophonique 106 capteurs  (4)
et n’est pas adaptée à la connexion de pour Arduino et Cie
microphones professionnels à sortie
symétrique, qui souvent nécessitent une 118 chargeur d’accus Li-ion
alimentation « fantôme » de 48 V. Je à courbes caractéristiques correctes
vous propose ici un
préamplificateur
qui permet de
contourner ces
deux écueils et
ravira sûrement
les possesseurs de
cartes son « haut
bientôt sur ces pages
de gamme ».

Extrait du sommaire du prochain numéro :


• Afficheurs à 7 segments pour tableau de scores
• Espion pour RFM12

sur la scène : les projets • Générateur d’images de test


• LoRa avec cartes ST
• Raspberry Pi : CN/A audio
• Raspberry Pi : mise à jour de l’analyseur OBD
14 module PSoC BLE au format L-board • Simulateur du bruit de l’océan
adapté aux platines d’essais • Traceur de courbe pour tube à vide
pour un prototypage Bluetooth tout confort • Variateur pour LED
Etc.
20 BBC micro:bit pour électroniciens
premiers pas avec mbed

28 préamplificateur simple Sous réserve de modification.


pour microphones professionnels Le numéro de juillet-août 2017 paraîtra le 21 juin 2017.

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]

6 mai/juin 2017 www.elektormagazine.fr


www.elektormagazine.fr mai/juin 7
Notre lectorat semble friand d’Internet des Objets (IdO), spécialement de tout ce qui touche à la domotique.
Auparavant pour se lancer dans de tels projets, il fallait composer soi-même un système de développement
et de prototypage rapide. Aujourd’hui, toute la branche « embarquée » propose des kits de développement
incroyablement peu onéreux et pourtant riches en matériel indispensable, pour qu’en quelques minutes vous
puissiez réaliser votre prototype, même avec peu d’expérience.

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

Hexiwear de MikroElektronika et NXP température, pression atmosphérique, hygrométrie, accéléra-


tion, gyroscope et champ magnétique), un écran couleur OLED
NXP (ex Freescale, avant de devenir Qualcomm - Californie) a
de 28 mm et un accumulateur dont les 190 mAh permettent de
certainement aussi ses propres cartes de développement pour
tenir en usage régulier pendant plusieurs heures. La manipulation
l’IdO, mais ses coopérations avec d’autres fabricants et distri-
se fait par six boutons tactiles à l’avant, mais au besoin, on peut
buteurs présentent encore plus d’intérêt. C’est ainsi qu’a pris
encore l’intensifier avec le moteur vibreur embarqué pour une
son envol Hexiwear (figure 1) [1]. Alors que la plateforme est
rétroaction. Il y a encore à l’avant une LED RVB programmable.
produite et commercialisée par MikroElektronika, les micro-
La carte fait travailler deux microcontrôleurs : le K64F bien connu
contrôleurs et la plupart des capteurs viennent de NXP. En outre,
(M4F, 120 MHz, 1 Mo de flash), il sert de processeur principal
NXP stimule à fond cette plateforme, notamment en adaptant
au centre de la carte et commande tous les périphériques, ainsi
son environnement de développement Kinetis Design Studio.
que le KW40Z (M0+, 48 MHz, 160 Ko) de la série radio à double
Mais, c’est quoi, au juste Hexiwear ? C’est un grand gadget en
mode (BLE + IEEE 802.15.4) qui assure la liaison BLE (Bluetooth
forme de bracelet-montre à assembler avec différents boîtiers
Low Energy) sur Hexiwear. La carte dispose d’un connecteur
et bracelets, à porter sur soi ou à garder indépendant, en l’ac-
à 50 broches sur la face inférieure, en particulier pour la station
compagnant des nombreuses extensions possibles pour divers
d’accueil disponible comme accessoire. Cette station est équipée
usages. La carte Hexiwear est ainsi très diversifiée, on peut lui
de trois boutons-poussoirs libres, d’un autre pour la RàZ des
adjoindre le BLE, l’USB, de nombreux capteurs (pouls, lumière,
deux microcontrôleurs, de LED, d’un socle pour carte micro-SD,
de connecteurs pour I²S, micro-USB et SWD. Au milieu de cette
carte d’extension se trouvent les trois connecteurs pour y glis-
ser les cartes populaires Click au format MicroElektronica. Il y
a des centaines de ces cartes avec divers capteurs, actionneurs
et interfaces. Avec Hexiwear et les cartes Click, vous terminez
votre prototype en quelques minutes.
Un micrologiciel chargé en usine fonctionne sur Hexiwear pour
faire la démo de toutes les fonctions des capteurs. En outre,
on peut relier la carte Hexiwear par Bluetooth avec l’appli
Hexiwear de WolkAbout sur un ordiphone, sur lequel on peut
suivre en direct les données transmises au nuage WolkAbout
et finalement les visualiser sous différents aspects. Vous pou-
vez aussi, sans fil, mettre à jour le micrologiciel par OTAP
(Over-The-Air-Programming).
Le plus simple pour la programmation de Hexiwear est de passer
par l’interface micro-USB, un débogueur OpenSDA fait alors pas-
Figure 1. Voici Hexiwear sur sa station d’accueil avec deux des cartes
serelle vers le microcontrôleur. Il existe trois variantes [2] pour
d’extension Click disponibles. Il y a d’autres accessoires comme le
câble USB ou des boîtiers de différentes couleurs. rédiger son propre logiciel pour Hexiwear : pour commencer, on

8 mai/juin 2017 www.elektormagazine.fr


À propos de NXP, il ne faut pas oublier la petite carte WaRP7
(figure 3) qui a vu le jour en coopération avec Farnell/
Element 14 [3]. Elle est livrée avec accumulateur de 180 mAh
et dispose d’USB, NFC, BLE et WLAN comme interfaces sans fil,
d’une caméra embarquée et de nombreux capteurs. Son pro-
cesseur i.MX7 Solo (A7 + M4) est entouré de quelques puces
de mémoire. Elle accepte aussi les cartes Click. En complé-
ment, on peut lui raccorder un écran tactile rond en couleurs.
On peut recommander cette plateforme aux développeurs qui
souhaitent travailler par lignes de commande et avec des distri-
butions Linux dont ils ont une connaissance approfondie. Autre
solution : Android comme système d’exploitation. Le prix est
d’environ 90 €.

Figure 2. À gauche, l’appli Hexiwear avec les données actuelles ;


à droite, un fragment de code de la page mbed, dans laquelle on
reconnaît bien la simplicité et la structure des commandes.

peut utiliser l’environnement en ligne mbed (figure 2), les adeptes


de Linux disposent de la distribution Zephyr et si vous voulez uti-
liser les options matérielles, vous choisirez KDS (Studio Kinetis
Design). On peut aussi chercher l’inspiration sur Hackster.io qui
présente de nombreux projets d’IdO avec Hexiwear. La docu-
mentation (intégralement à source ouverte !) et l’assistance sont
dignes d’éloges. Le prix du seul Hexiwear avoisine les 50 €, avec
la station d’accueil, le boîtier et les accessoires, environ le double. Figure 3. La carte WaRP7 sous toutes ses faces.

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

Figure 5. À gauche, un exemple d’accéléromètre avec l’appli pour


ordiphone, à droite, un fragment du modèle d’exemple de démarrage
dans l’environnement de Keil.

principales sont sur des pastilles à souder le long des bords,


mais aussi sur le petit connecteur situé sous la carte.
Puisqu’il faut bien alimenter le SensorTile, deux cartes d’adapta-
tions sont prévues dans le kit. L’une lui sert de berceau (cradle)
sur lequel le souder et lui octroie en supplément des capteurs
d’humidité et de température, un socle pour carte micro-USB,
un connecteur de programmation SWD ainsi qu’un connecteur
micro-USB pour l’alimentation. Le kit comporte aussi un accu-
mulateur de 100 mAh à brancher sur le berceau pour fournir
du courant au SensorTile. Et le boîtier transparent pour tout
l’assemblage est aussi compris.
L’autre possibilité d’adaptation est constituée d’un shield Arduino
avec sortie audio DAC (numérique vers analogique) pour jack.
On y trouve aussi un connecteur micro-USB et un SWD. Ce
Figure 4. Le kit SensorTile avec tous ses composants.
shield peut travailler indépendamment avec le SensorTile, mais

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

Kit IdO solaire de Cypress Semiconductor


Au premier abord, le kit Solar-Powered IoT Device [7] pour à
peine 50 €, basé sur le module BLE de Cypress, ne se démarque
pas des innombrables solutions IdO. Le module BLE de Cypress
est vraiment bien et l’environnement de développement PSoC
Creator lui convient parfaitement dans ce genre d’applications,
mais tout l’intérêt provient de la cellule solaire sur la carte desti-
née au glanage d’énergie ! Parce que les tendances s’influencent
en sens contraire : l’Internet des Objets exhorte à l’optimisation
de la puissance et cela débouche parfois sur le glanage d’énergie,
quand c’est possible et souhaitable. On ne peut pas négliger la
récolte d’énergie en IdO, c’est même un atout.

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.

module sur la carte, le circuit de glanage d’énergie et quelques


capteurs pour la température, l’humidité et la lumière, mais on
peut y brancher d’autres capteurs. Une carte USB BLE est jointe
au lot pour communiquer avec la carte de glanage d’énergie
(figure 8). Ainsi, en supplément de l’habituel flux de données,
on peut déterminer la portée et la force du signal, pour maxi-
miser la récolte dans différents environnements (en plus du
solaire, la piézoélectricité par exemple).

On peut programmer le processeur de la carte de récolte au


moyen d’un débogueur externe, non compris dans le kit, de
préférence un MiniProg 3 sur le connecteur SWD, avec le Crea-
tor de PSoC [8], modulaire et assez simple (figure 9). Il y a
encore dans le kit quelques composants à fils importants pour
la mise en œuvre des projets d’exemple.
Figure 8. On retrouve ici les deux cartes décrites ainsi que la cellule
solaire du kit.

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

10 mai/juin 2017 www.elektormagazine.fr


on peut par exemple dans cette application effectuer la mise
à jour du micrologiciel de la balise par BLE. En outre, il existe
depuis peu la possibilité de raccorder sur le connecteur de la
balise à 20 contacts des cartes d’extension, des DevPack pour
avoir un écran ou une LED RVB. L’offre de ces DevPack ne cesse
de croître. Tout est fort à l’étroit dans ces emballages en caout-
chouc, aussi pratique-t-on une incision à la bonne place, d’une
main ferme et avec un couteau acéré, ce petit travail manuel
est toujours récompensé.
Particulièrement remarquable, le débogueur à 15 € DevPack
permet de programmer confortablement la balise par interface
USB, ce qui rend superflus les gros débogueurs bien chers. Un
excellent rapport prix/efficacité. À côté du CC1350, il y a encore
le CC2650 avec BLE et ZigBee ou 6LoWPAN (déjà mentionné
comme IEEE 802.15.4). Le fabricant sortira prochainement une
Figure 10. C’est sous le boîtier que se cache le SensorTag CC1350. balise WLAN.

devrait, en raison du concept à basse puissance, durer un


an en usage intermittent.
Ce serait bien si la balise sortait toute prête de l’usine, mais ce
n’est évidemment pas le cas. Par le connecteur JTAG accessible
de l’extérieur, on peut programmer la balise avec le Studio Code
Composer (CCS, version compatible radio) de TI [10]. Comme
le matériel est déjà prêt, on ne s’occupe que du logiciel dans
la phase de prototypage. On dispose pour cela de nombreuses
bibliothèques et d’une documentation complète, même pour la
programmation de l’appli pour ordiphone.
Il existe encore une série d’outils logiciels supplémentaires,
comme le Studio Sensor Controller, qui configure (d’avance) les
applications de capteur pour microcontrôleur. Les SensorTags
Figure 11. À gauche, l’interface de l’appli SensorTag, à droite, une
acceptent d’ailleurs aussi une programmation sans fil (OTAP) :
fenêtre de Studio Sensor Controller.

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.

Qu’y a-t-il d’autre ?


AT88CKECC-AWS-XSTK de Microchip, Ce kit modulaire à plus de 200 € montre une des plus récentes techniques
http://goo.gl/FPXVoi de sécurité pour l’IdO de Microchip en collaboration avec les services internet
d’Amazon (AWS).
P-NUCLEO-LRWAN1 de ST,
Ce kit à environ 40 € est une carte Nucleo L073RZ avec shield LoRa, ce qui
http://goo.gl/VLyLCT
constitue la nouvelle tendance et rend plus accessible le marché de l’IdO.

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.

… et bien d’autres encore !

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

12 mai/juin 2017 www.elektormagazine.fr


la communauté d'Elektor DÉCOUVRIR CRÉER PARTAGER

82 248153 1040 489 235332


pays membres actifs experts & auteurs publications visiteurs (par mois)

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

Elektor PCB Service : gravure à la demande Elektor GRATUIT, version numérique :


de vos circuits imprimés, en un ou plusieurs lettre d’information à l’affût des nouveautés.
exemplaires. www.elektorpcbservice.com C'est gratuit : www.elektor.fr/inscription

Livres & DVD Elektor : Arduino, Raspberry Pi,


Elektor Academy : l’apprentissage par
microcontrôleurs, Linux et bien d’autres.
la pratique au travers de webinaires,
10 % de remise pour les membres !
séminaires, ateliers, DVD… www.elektor.fr
www.elektor.fr

Elektor TV : présentations, comptes-rendus, Elektor Labs : l’incubateur où partager ses


déballage et évaluation de produits. Pour y projets et participer à ceux des autres. Nous
voir plus clair. faisons grandir vos idées !
www.youtube.com/user/ElektorIM www.elektormagazine.fr/labs

connectez-vous à notre communauté


formule formule formule
GREEN 92,50 € par an GOLD 127,50 € par an GRATUITE
✔ accès à l’archive d’Elektor ✔ accès à l’archive d’Elektor ✘ accès à l’archive d’Elektor
✔ 10% de remise dans l’e-choppe ✔ 10% de remise dans l’e-choppe ✘ 10% de remise dans l’e-choppe

✘ 6x magazine imprimé ✔ 6x magazine imprimé ✘ 6x magazine imprimé


✔ 6x magazine numérique ✔ 6x magazine numérique ✘ 6x magazine numérique
✔ des offres exclusives ✔ des offres exclusives ✔ des offres exclusives

✔ accès à plus de ✔ accès à plus de ✘ accès à plus de


1 000 fichiers Gerber 1 000 fichiers Gerber 1 000 fichiers Gerber

✘ le DVD annuel d’Elektor ✔ le DVD annuel d’Elektor ✘ le DVD annuel d’Elektor

➧ connectez-vous ➧ connectez-vous ➧ connectez-vous


www.elektor.fr/formule-greencard www.elektor.fr/formule-goldcard www.elektor.fr/inscription

facebook.com/ElektorFR twitter.com/Elektor
PROJET DU LABO

module PSoC BLE


au format L-board
adapté aux platines d’essais
pour un prototypage Bluetooth tout confort

John Hind (Royaume-Uni)

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

14 mai/juin 2017 www.elektormagazine.fr


riques logiques et analogiques avec inter-
Fonctions communication interne. Ajoutons qu’il y à propos du projet
• Module DIP, gain de place sur les a aussi une famille PRoC, Radio sur Puce T-board
platines d’essais Programmable. Les puces PSoC BLE sont
L-board PSoC
• PSoC avec Bluetooth Low Energy en fait une extension de la fonction PRoC,
(BLE) 4.1 BLE prototypage BoB
cette dernière n’incluant pas le périphé-
• Interface graphique de rique numérique programmable. Mais débutant
programmation elles sont largement interchangeables
Æ connaisseur
au plan du développement.
expert
Comme l’indique leur nom, ces compo-
un bon exemple). Toutefois, lorsque le sants sont disponibles sous forme de
nombre de broches augmente, les BoB puce, mais les micromodules que nous
env. 2 h
à simple rangée (SIL) deviennent trop utiliserons ici ont une antenne intégrée,
longues et instables sur une platine d’es- un oscillateur à quartz et sont préquali-
sais. Une configuration à double rangée fiés, simplifiant grandement la fabrica-
Fer à souder, platine d’essais,
(DIL) améliore cette situation et beau- tion en petite série. Malheureusement,
programmateur Kitprog2,
coup de BoB utilisent ce format (par ces modules sont presque impossibles à
PC Windows, PSoC Creator
ex. les diverses « T-Board » publiées souder sans un équipement professionnel
par Elektor ces dernières années). Mais pour l’assemblage des CMS.
celles-ci posent leurs propres problèmes Les développeurs peuvent débuter avec
env. 50 €
lorsqu’on les utilise sur une platine d’es- la gamme PSoC/PRoC à un coût parti-
sais standard avec « gouttière » centrale culièrement bas grâce à des modules
conçue pour les boîtiers de circuits inté- d’étude subventionnés et à un Envi-
grés DIP traditionnels. Si la carte fait plus
de 10 mm (0,4’’) de large, des points de
connexion de la platine vont être mas-
*1
X1
1
X2
1
X3
1
X4
1
X5
1
X6
1
X7
1
X8
1
X9
1
X10
1
X11
1
X12
1
X13
1
X14

qués, ce qui limite la place pour des cir-


2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3
KITPROG2
cuits périphériques. Une carte de 10 mm
PL1 PL2 PL3 PL4 PL5 PL6 PL7 PL8 PL9 PL10 PL11 PL12 PL13 PL14
avec des contacts traversants de chaque
côté laisse au mieux 6 mm (0,24’’) entre
2 - 5.5V
P2.5

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

ties avec une carte horizontale en gout-


tière de 10 mm soudée à une carte verti-
cale portant la puce. Cette structure s’en-
7 13 20 26
fiche sur une platine d’essais standard,
VDDR
VDDA
VREF
VDD

en recouvrant la gouttière sans occulter 22


P3.1 P1.1
2
12 21
aucun point de connexion. On peut placer 23
P1.2 P3.4
4
P3.7 P1.5
plusieurs L-Boards côte à côte sur la pla- 14
P2.6 MOD1 P2.3
19
24 10
tine d’essais tout comme les bons vieux 30
P3.5 P0.5
18
C3 P2.4 P2.2 C2
boîtiers DIP. L’ennui est que, comme les 28
P3.6 P0.4
9

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

Les modules PSoC BLE de Cypress Semi- 1 32

conductors constituent une intéressante 150721 - 11

application du concept L-Board. PSoC


copyright
signifie Système sur Puce Programmable
et combine ici un puissant processeur
ARM à 32 bits avec un périphérique radio Figure 1. Schéma de la L-Board pour le module PSoC CYBLE-214009-00 avec support pour Bluetooth
Bluetooth basse consommation (BLE) et LE 4.1. PL1 à PL14 représentent le connecteur imprimé de la carte principale, X1 à X14 les trois
des périphériques programmables numé- rangées de barrettes sur la carte « gouttière ».

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.

16 mai/juin 2017 www.elektormagazine.fr


avant d’ajuster la barrette avant. Celle-ci
a aussi des broches sur le dessous de la Adaptateur de programmation
carte, mais ici on doit laisser les cinq bro- Pour faire un adaptateur de programmation, détachez la partie Kitprog2 d’un kit d’étude
ches de gauche sur le dessus, car elles (qui est prédécoupée pour ça) et soudez un morceau de câble plat à 5 conducteurs
constituent le connecteur pour l’adapta- dans les cinq trous en face de la prise USB. Soudez l’autre extrémité du câble plat
teur Kitprog2. Enfin, la partie principale à une embase femelle simple rangée à 5 contacts.
de la carte est placée sur le dessus de Il vaut mieux la séparer en deux parties : une broche pour VTARG et quatre broches
la carte gouttière entre la première et la pour les autres signaux. Ainsi la carte peut
seconde rangée de broches qui sont alors être alimentée soit par la connexion USB
soudées directement sur les pastilles de du Kitprog2, soit par la broche de la platine
chaque côté (fig. 2). L’ensemble peut d’essais (un avantage singulier de l’archi-
maintenant être placé sur la gouttière tecture PSoC est l’inhabituelle large plage
d’une platine d’essais. de tension de fonctionnement qui s’étend
de 1,9 V à 5,5 V).
Hello, world ! On peut aussi souder une barrette à cinq
Pour commencer à programmer, télé- broches sur la carte cible initiale pour pou-
chargez l’EDI PSoC Creator sur le site de voir l’utiliser avec le Kitprog2 détaché. La
Cypress et installez-le sur un PC (mal- photo montre un montage Kitprog2, avec
heureusement Windows seulement). un produit de finition en caoutchouc mal-
Connectez le câble plat du Kitprog2 sur léable appelé Sugru, idéal dans le prototy-
les broches de droite de la carte gout- page pour recouvrir l’arrière des connec-
tière (voir l’encadré sur la confec- teurs et autres montages électroméca-
tion d’un adaptateur de niques isolés.

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) :

Listage 1. Un programme simple Control_Reg_1_Write(0x01);


pour essayer le débogage et le saut pas à pas dans le code. Control_Reg_1_Write(0x00);

#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();

18 mai/juin 2017 www.elektormagazine.fr


ADC_SAR_Seq_1_StartConvert();
Dans le bloc for, entre les deux instruc- tifs BLE (quoique la version Windows
tions d’écriture du registre de contrôle nécessite l’achat d’une clé électronique dans l’e-choppe
ajoutées plus tôt, insérez : dédiée).
ª150721-1
Circuit imprimé
volts = ADC_SAR_Seq_1_ Conclusion
CountsTo_Volts(0, Cet article a présenté la L-Board, un nou-
ADC_SAR_Seq_1_GetResult16(0)); veau format pour les cartes de liaison qui
présente des avantages significatifs sur le
Déboguez ceci et observez la variable classique format T-Board et autres cartes nants au-delà du remplacement du câble
volts. Elle doit être entre 1,8 et 4,5 V de liaison « plates ». Un module PSoC actuel ou des contraintes du réseau per-
selon la couleur et le type de LED, ou BLE sophistiqué a été réalisé au format sonnel. Ceci comprend la domotique et
0 V si la lecture est faite dans la phase L-Board et quelques exemples montrant peut-être une nouvelle génération d’ins-
d’extinction du clignotement. Examinez ses fonctions avancées ont été décrits. trumentation combinée bon marché, à
l’onglet Analog de Design Wide Resources Cypress échantillonne actuellement une la fois pour le laboratoire et le travail de
pour voir comment le schéma analogique nouvelle génération de ces modules sup- terrain.
a été implanté dans la puce. Cela vaut portant BLE4.2 avec une vitesse et une (150721 – version française : Denis Lafourcade)
aussi la peine de vérifier le Resource capacité accrues, une meilleure sécurité
Meter accessible par l’onglet en haut à et, très important, une portée améliorée.
Liens
droite de l’application. Consommer près Il devrait être possible de poursuivre avec
de la moitié des ressources UDB dispo- un de ces modules au format L-Board [1] www.elektormagazine.fr\labs\l-board
nibles pour faire clignoter une LED pour- lorsqu’ils seront livrables. L’amélioration [2] www.elektormagazine.fr\150721
rait vous inquiéter, mais comme toujours de la portée va ouvrir BLE vers de nou-
il y a plus d’une façon d’accommoder un veaux champs d’applications passion-
lapin. On aurait pu utiliser un des quatre
Timer Counter PWM ou la méthode tradi-
tionnelle avec une interruption de tem-
porisateur et du code.

Ajoutons Bluetooth au mélange


Le Bluetooth Low Energy est traité dans
un projet exemple téléchargeable en [1],
mais jetons juste un œil. Glissez un com-
posant Bluetooth Low Energy depuis la
section Communication du catalogue et
ouvrez sa fenêtre de configuration. On
peut appliquer un des nombreux profils
standard enregistrés, ou choisir Custom
pour créer un nouveau profil. Normale-
ment ce sera un serveur GATT et un péri-
phérique GAP (ce sont les types pouvant
être associés aux ordiphones, tablettes
ou PC). Les propriétés et descripteurs
sont définis dans l’onglet Custom Ser-
vice de la page Profiles. Notez toutefois
que ce module peut aussi jouer le rôle
central et même dynamiquement chan-
ger de rôle. Ceci permet éventuellement
les liaisons point à point et même de
créer des réseaux en utilisant plusieurs
modules sans recourir à un ordiphone,
une tablette ou un PC. Le téléchargement
fournit plus de détails et du code géné-
rique pour mettre en œuvre un service
personnalisé ainsi qu’un exemple plei-
nement fonctionnel.
Considérez aussi le micrologiciel EZ-Serial
de Cypress, surtout si vous n’êtes pas
à l’aise avec la programmation en C.
L’appli gratuite CySmart pour Android,
iOS et Windows est un excellent outil
pour déboguer et tester les disposi- Figure 6. L-Board prototype assemblée, enfichée dans une platine d’essais.

www.elektormagazine.fr mai/juin 19
PROJET DE LECTEUR

BBC micro:bit
pour électroniciens
premiers pas avec mbed

Burkhard Kainka

La carte BBC micro:bit ne convient


pas seulement aux étudiants, c’est
aussi un superbe microcontrôleur
pour les électroniciens. On
dispose sous un faible volume
de presque tout ce que
l’on a régulièrement
besoin : entrées/sorties
numériques avec MLI,
convertisseur A/N ainsi
qu’une interface USB
pour l’alimentation, la
programmation et l’échange
de données. Divers capteurs et
Bluetooth complètent le tout.

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

20 mai/juin 2017 www.elektormagazine.fr


2 × 40 broches correspondant parfaite-
ment. Des cartes compatibles sont dis-
ponibles à l’e-choppe [6][7]. La figure 2
montre la carte du projet « station météo
pour BBC micro:bit ».
Une solution alternative est l’utilisa-
tion de barrette de 2 × 20 broches, que
l’on soudera directement aux contacts
(fig. 3). Les broches de la barrette sont
néanmoins au pas de 2,54 mm, de sorte
qu’elles ne correspondent malheureu-
sement qu’à une broche sur deux de la
carte BBC micro:bit.
Le verso de ce « connecteur maison » est
similaire, mais on notera que toutes les
connexions y sont complètement isolées.
Les broches qui y sont soudées assurent
avant tout une stabilité mécanique. Les
broches du verso ont aussi une fonc-
Figure 1. Connexions de la carte BBC micro:bit.
tion de réserve : si l’on a quand même
besoin d’un signal de la carte micro:bit
non connecté jusqu’à présent, on pourra
raccorder un petit fil à une broche du
verso. On veillera cependant à supprimer
la broche correspondante dans la rangée
avant, afin d’éviter un court-circuit. Il y
a suffisamment de broches inutilisées,
telles que les connexions supplémen-
taires pour GND et VCC. En revanche,
ce qui peut devenir important ce sont
par ex. les connexions I2C, dont toutes
les broches ne sont pas accessibles par
la méthode de la barrette. C’est pourquoi
on supprimera la broche GND superflue.
C’est très facile : bien la chauffer au fer
à souder, puis la retirer. Un petit fil peut
à présent être passé dans le trou puis
soudé à la broche souhaitée (SDA, P20).
Le petit fil sera soudé au verso à la bro-
che correspondante. Et voilà le bus I2C
retrouvé. Figure 2. La carte Elektor 150652-1 comme plateforme d’expérimentation.

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).

Ce qui frappe immédiatement est la


désignation des ports avec P0_4 et
Figure 4. Le projet microbit_blinky.
P0_13, donc toute autre que la dési-
gnation officielle. Cela vient du fait
qu’à cause de l’inclusion de la biblio-
thèque mbed.h, on s’adresse bien
au contrôleur de micro:bit, mais
pas encore à la carte avec toutes
ses caractéristiques et possibilités.
Mais le programme peut désor-
mais être testé. Avec compile, on
produit un fichier hex qu’il suffit
de copier dans la mémoire USB
de micro:bit. La LED jaune d’état
se met aussitôt à clignoter sur
la carte, et indique que le sys-
tème s’apprête à programmer le
contrôleur. Le processus prend
fin après une seconde et on
peut voir le résultat : la LED en
haut à gauche de l’afficheur de 5×5 LED
Figure 5. Le projet microbit-hello-world.
clignote.

Le deuxième exemple s’appelle micro-


Listage 1. Mesure de tension. bit-hello-world et inclut microbit.h
//Voltage1 (fig. 5). Il est alors possible d’utiliser
#include "MicroBit.h" toutes les spécificités de la carte. L’im-
portation du programme dure parti-
MicroBit uBit; culièrement longtemps, ce qui signifie
que beaucoup de fichiers sont chargés.
int main() C’est le grand point positif de mbed :
{ mbed prend lui-même en charge tout
uBit.init(); ce que l’on devait auparavant pénible-
MicroBitSerial serial(USBTX, USBRX); ment copier et inclure. Cela serait fai-
while (1) { sable aussi avec une autre plateforme
int u = 3300 * uBit.io.P0.getAnalogValue()/ 1023; sur son propre ordinateur, peut-être
uBit.display.scroll(u);
en y travaillant dur et au risque d’y
uBit.serial.printf("%d\r\n", u);
renoncer finalement. On peut travail-
uBit.sleep(500);
ler avec mbed sans même se douter de
}
tout ce qui se déroule en arrière-plan.
}
Un texte défilant est produit dans notre

22 mai/juin 2017 www.elektormagazine.fr


Listage 2. Affichage de la mesure de capteurs.
//Sensors
#include "MicroBit.h"
MicroBit uBit;
int main()
{
uBit.init();
MicroBitSerial serial(USBTX, USBRX);
while (1) {
uBit.serial.printf("Time: %d ms \r\n", uBit.systemTime());
uBit.serial.printf("Temp: %d deg \r\n", uBit.thermometer.getTemperature());
uBit.serial.printf("P0: %d mV \r\n", uBit.io.P0.getAnalogValue());
uBit.serial.printf("P1: %d mV \r\n", uBit.io.P1.getAnalogValue());
uBit.serial.printf("P2: %d mV \r\n", uBit.io.P2.getAnalogValue());
uBit.serial.printf("X: %d mG \r\n", uBit.accelerometer.getX());
uBit.serial.printf("Y: %d mG \r\n", uBit.accelerometer.getY());
uBit.serial.printf("Z: %d mG \r\n", uBit.accelerometer.getZ());
uBit.serial.printf("B: %d µT \r\n", uBit.compass.getFieldStrength());
uBit.serial.printf("\r\n");
uBit.sleep(1000);
}
}

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.

compris la température du contrôleur rait ressembler à ceci : instruments analogiques à aiguille.


et la durée en millisecondes depuis le Un afficheur fixe pourrait fonctionner en
dernier démarrage, les trois tensions Time: 1715018 ms binaire ou en BCD. Dans les deux cas, on
disponibles sur les broches 0 à 2, les Temp: 22 deg a besoin de quatre bits par chiffre. Une
valeurs d’accélération sur trois axes et P0 465 mV autre possibilité s’offre à nous sachant
le champ de force magnétique combiné P1 251 mV que l’on dispose de cinq LED par colonne.
XYZ. Deux capteurs complexes sont sim- P2 252 mV Les chiffres de 1 à 5 sont représentés à
plement lus grâce au bus I2C, le gros du X 0 mG partir du bas par une à cinq LED. La barre
travail ayant déjà été réalisé par d’autres. Y 1008 mG lumineuse se déplace vers le haut pour
Pour en savoir plus, vous aurez à vous Z 64 mG les chiffres de 6 à 9. On peut s’imaginer
frayer un chemin dans les arcanes de B: 169311 uT disposer de cinq points, dont certains ne
nombreux fichiers. seraient pas toujours dans le domaine
visible (fig. 6).
Toutes les mesures sont affichées par Afficheur numérique statique
le terminal. Pendant que l’on procède Un texte défilant sur un afficheur à LED La lecture d’un tel afficheur (fig. 7) est
à tous ces essais nous viennent des n’est pas facile à lire, il faut beaucoup se intuitive après un peu d’entraînement. La
idées pour des applications telles que concentrer. Il faudra attendre le prochain représentation correspond par hasard au
des mesures avec des aimants. Ou un cycle d’affichage s’il l’on a raté un chiffre. codage en morse des chiffres 0 à 9, une
accéléromètre pour la voiture, qui infor- Mais 25 LED offrent d’autres possibilités. LED allumée représente un point, une
merait son conducteur d’une conduite Nous sommes habitués à des afficheurs LED éteinte un trait. Le sept se codera
trop sportive ? L’affichage produit pour- statiques à plusieurs chiffres ou à des donc en morse « --… ».

Listage 3. Mesure de tension avec affichage statique. }


uBit.display.print(image);
//LED-Display
}
#include "MicroBit.h"
MicroBit uBit;

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);
}

24 mai/juin 2017 www.elektormagazine.fr


311736-More New Products 89x294-FR.pdf 1 2/27/17 2:20 PM

Publicité
Figure 8. Mesure de la tension d’une LED : 2,496 V.

Une fonction pour ce type d’affichage a été écrite en C. Le


chiffre à afficher est transmis dans un nombre entier n. Une
tension jusqu’à 3300 mV est affichée (listage 3).
Deux broches de port sont commutées en plus dans le pro-
gramme principal. P1 devient bas, P2 devient haut. Un chan-
gement de direction des données ne doit pas être défini expli-
citement, celui-ci s’effectue automatiquement en arrière-plan.
On peut à présent facilement examiner la capacité de charge
C
du port, et utiliser à cet effet son propre CA/N. Il s’avère que
celui-ci a clairement une impédance plus élevée que les ports
M

d’un contrôleur AVR. Officiellement les ports sont conçus pour Y

5 mA dans les deux directions. Les mesures montrent qu’il CM

se produit une chute de tension de 300 mV. La résistance de MY

conduction du transistor FET du port est donc environ 60 Ω. CY

Des mesures avec des charges plus élevées montrent que le


CMY

courant de sortie ne dépasse jamais 15 mA. Un courant d’en-


K
viron 10 mA circule dans une LED connectée directement sans
résistance.
On utilisera normalement une résistance série. On peut alors
mesurer la tension de la LED, comparer différentes LED, et
procéder à d’autres expériences (fig. 8).
(160273 – version française : Xavier Pfaff)

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.

Souder des pattes de 0,5 mm puis souder l’une des


Peter Krengel pattes de coin avec une
panne de 0,2 mm (par ex.
En feuilletant le numéro de décembre d’Elektor, je suis tombé sur
Weller RT).
l’article « Souder au pas de 0,5 mm » qui a piqué ma curiosité. Quelle
était l’astuce proposée ? Ma curiosité se mua vite en un sourire, 3. Contrôler encore une fois
car je ne connais que trop bien ces petites bêtes à 144 pattes, à la loupe le positionnement de
je suis un gros utilisateur de FPGA d’Altera et de Xilinx. la puce et le corriger légèrement
Mais la solution du couteau pour gratter m’a vraiment au besoin.
choqué, car il y a tout de même des méthodes 4. Remplacer la panne de 0,2 mm
beaucoup plus simples, propres et rapides ! par la gull-wing. Régler la température
En fait, il faut d’abord souder tous les compo- pour que la soudure soit bien liquide, mais
sants standards CMS au four à refusion, sauf ne s’oxyde pas. Il faut au préalable tester ce
ces mille-pattes. Ma méthode vraiment simple réglage avec précision.
fonctionne même si le soudage au four n’est 5. Remplir la panne gull-wing de soudure, l’appuyer
pas parfait et a laissé sur le circuit imprimé immédiatement sur une patte de coin et balayer lente-
des petites billes ou des bavures. Ma ment les pattes. Effectuer l’opération sur les quatre côtés.
solution à ce problème s’appelle 6. Pour finir, contrôler les soudures et, au besoin, répéter le
panne de fer à souder gull-wing balayage avec la panne vide.
(en aile de mouette) qu’on
peut se procurer chez
Weller ou Ersa [1][2]. Et le meilleur, c’est que les 144 pattes sont traitées en deux
Il s’agit d’une panne qui minutes au maximum (y compris le contrôle). Une surchauffe
présente une cavité que l’on est impossible, vu la courte durée de l’opération de soudage.
remplit d’une petite goutte de sou- Essayez, vous m’en direz des nouvelles !
dure. J’utilise une telle panne avec la Les points de soudure semblent réalisés à la machine, mais ont
technique ci-dessous. Tout d’abord, gratter aussi un brillant qu’on n’obtient pas avec la machine. Cela tient
est totalement inutile, car, en fait, il ne se forme pas de petites sans doute au fait que le temps de soudage par patte est très
billes, même avec un four défectueux ou mal réglé. Et même les court du fait du balayage, ce qui ne laisse pas à la soudure le
petites pattes de 0,3 mm se laissent souder proprement et sans temps de s’oxyder, même en cas de température légèrement
court-circuit. Voici comment faire : trop élevée. De plus, la tension superficielle de la soudure non
oxydée agit dans le sens d’une répartition très régulière de la
1. Nettoyer les pastilles en les frottant avec du flux de soudure soudure, car les liquides ont tendance à se diviser en corps de
liquide de type No-Clean (sans nettoyage) et enduire toutes masse égale, comme l’eau en apesanteur (mais je digresse ;)).
les pattes de la puce avec ce flux. C’est facile avec un stylo En tout cas, la soudure se retrouve finalement également répar-
applicateur de flux, il suffit d’appuyer sa pointe quelque part tie et seulement là où elle doit être, c’est-à-dire sur les pastilles.
pour en faire jaillir un peu du liquide. Il faut y aller doucement,
sans tordre les pattes, juste épandre la goutte qui pend à la [1] Weller : www.weller.de/en/Weller--Products--Product-
pointe du stylo, puis laisser sécher. details.html?article_id= D0719205001379336391A111723
2. Au moyen d’une loupe (grossissement ×10), positionner le [2] Ersa Micro : www.ersa-shop.com/serie-f%C3%BCr-
mille-pattes aussi précisément que possible sur les pastilles, microtool-hohlkehle-163mm-c-80_81_125_130.html

26 mai/juin 2017 www.elektormagazine.fr


Sauvetage des soudures ratées à baigner dans le flux après le balayage. Mais auparavant, il faut
Peter Krengel que le circuit imprimé soit parfaitement refroidi, au besoin en le
mettant au congélateur pendant cinq minutes.
Même les soudures ratées peuvent être sauvées avec une panne
gull-wing. Pour cela, on a à nouveau besoin du stylo applicateur On pulvérise la colophane en excès par un léger raclage avec
de flux liquide. l’allumette (pour éviter des rayures sur le circuit imprimé). Après
élimination de la poussière par tapotage et soufflage, on nettoie
tous les résidus par un brossage généreux à l’alcool. Terminé !
1. Répandre du flux sur les pattes de la puce soudée assez abon-
damment pour qu’il en pénètre un peu sous la puce.
2. Immédiatement après l’écoulement du flux (qui sèche très
vite !), balayer les pattes sur tous les côtés de la puce avec La colophane à prix d’ami
la panne gull-wing vide. Peter Krengel

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

Joseph Kreutz (Munich)

28 mai/juin 2017 www.elektormagazine.fr


www.elektormagazine.fr mai/juin 29
Il y a belle lurette que les enregistreurs à bande sont tombés en désuétude et ont été remplacés par des
ordinateurs portables équipés d’une « carte son USB » de bonne qualité. Alors que l’entrée « ligne » d’un PC
présente généralement des caractéristiques acceptables, l’entrée « micro » se caractérise par de médiocres
niveaux de bruit et de distorsion. Surtout, elle ne restitue qu’un signal monophonique et n’est pas adaptée
à la connexion de microphones professionnels à sortie symétrique, qui souvent nécessitent une alimentation
« fantôme » de 48 V. Je vous propose ici un préamplificateur qui permet de contourner ces deux écueils et
ravira sûrement les possesseurs de cartes son « haut de gamme ».

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

+48V +12V +12V -12V


R14
K4 R1 +12V 22R K3
+48V 220R +12V
0 R2 R3 0
C1 C3 C11 C12
-12V
6k8

6k8

220u 100n 220u 220u -12V 22R


100V 50V 50V R15

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

R5 2n2 680p 220p 68p 22p


1k0

+12V +48V
S1B C5
R12 R13
15u
2k2

12k

LED1 LED2

K7 copyright Power Phantom power


140426 - 11

Figure 1. L’ampli op est le cœur de cet amplificateur.

30 mai/juin 2017 www.elektormagazine.fr


de qualité professionnelle, mais plus céramique ou à film plastique. Sur le
onéreux. N’hésitez pas à chercher ail- secondaire de TR1, vous disposez de info sur le projet
leurs sur la Toile. Retenez que le circuit place pour, si nécessaire, monter un audio
imprimé peut accueillir plusieurs modèles condensateur (C2) destiné à amortir préamplificateur
pour TR1 : ÜP3095M et ÜP3096M de des résonnances indésirables du trans-
microphone
Pikatron, LL1935 de Lundahl et JT-115K- formateur. Généralement vous pouvez
EPC de Jensen. Le transformateur LL1935 omettre C2. Æ débutant
de Lundahl possède deux enroulements Encore quelques conseils : les condensa- connaisseur
primaires et deux enroulements secon- teurs de découplage C3 et C4 de 100 nF
expert
daires [note du labo : ces enroulements seront installés aussi près que possible
peuvent être utilisés en sens inverse de l’ampli op. Je préconise d’utiliser des
(c’est clairement indiqué dans la feuille résistances à film métallique qui pré- 5 h (sans la mise en boîte)
de caractéristiques, c’est probablement sentent une tolérance de 1 % ; c’est
vrai pour les autres transformateurs)]. impératif pour R5 à R10. Vous pou-
Revenons au schéma : pour appliquer vez omettre R4 (470 kΩ) si le micro ne
le signal au primaire de TR1, il faut requiert pas une charge à une impé- rien de spécial
brancher un micro de préférence via un dance particulière. Dans le cas contraire,
connecteur aux normes XLR usuelles il faut choisir une valeur égale à cent fois
dans le domaine professionnel ou par l’impédance préconisée. Les condensa-
un jack stéréo de 6,35 mm. Dans ce teurs électrolytiques doivent supporter env. 270 € (boîtiers compris)
cas, l’extrémité du connecteur corres- une tension de 25 V, à l’exception de
pond au point chaud (canal gauche), l’an- C1 qui sera un modèle pour 63 ou 80 V.
neau intermédiaire au point froid (canal Les tensions d’alimentation de l’ampli
droit) et la partie restante à la masse. Les op ne sont guère critiques pour autant
micros à condensateur nécessitent une qu’elles correspondent aux spécifications
tension d’alimentation de 48 V, appliquée du fabricant. Alimentation ±12 V
via les résistances R2 et R3 de 6,8 kΩ. Si vous n’utilisez que des microphones L’ampli op (IC1) est alimenté avec les
La valeur exacte de R2 et R3 n’est pas électrodynamiques, donc sans alimenta- tensions de +12 et −12 V produites par
essentielle, mais ces deux résistances tion 48 V, les composants C1 et R1 à R3 la partie basse du circuit de la figure 3.
doivent être appariées avec une préci- ne sont pas nécessaires. Cette alimentation construite avec deux
sion de 0,4 % ou mieux [7, 8]. Sortez Le condensateur C5 a une valeur régulateurs intégrés est ultra classique.
l’ohmmètre pour les sélectionner. Elles de 15 µF, mais pour une fréquence de Notez qu’il est judicieux d’installer les
doivent dissiper au moins 0,5 W pour coupure plus basse (ou moins de varia- condensateurs de découplage de 100 nF
éviter de griller en cas de court-circuit tion de la phase dans la plage de fré- aussi près que possible des régula-
à la masse. quence basse), un condensateur de 22 µF teurs. Le redressement est assuré par
Le secondaire de TR1 est connecté d’une de la même série convient. un pont de diodes 1N4007. Le fusible F5
part à la masse, d’autre part à l’entrée
positive de l’ampli op (IC1) ; l’entrée
négative est reliée au réseau de rétroac-
tion qui fixe le gain du préampli. Le com-
mutateur rotatif à six positions relie la
sortie de l’ampli op à son entrée néga-
tive, directement ou via les résistances
R6 à R10 montées en série. Chaque pas
augmente le gain de 10 dB. Comme
le transformateur élève déjà le niveau
de 20 dB, le gain du préampli peut varier
entre 20 et 70 dB. Il est préférable que
le commutateur soit de type « make
before break » : la nouvelle connexion
est fermée avant que la précédente soit
ouverte. Cela permet d’éviter de brus-
ques sauts du gain, voire un gain tem-
porairement maximal accompagné d’un
effet de Larsen. Les condensateurs en
parallèle sur R6 à R10 limitent la bande
passante du préampli à 32 kHz. Ce sont
des modèles axiaux, au polystyrène,
de qualité supérieure. Toutefois les
empreintes sur le circuit imprimé per-
mettent de monter des condensateurs Figure 2. Circuits imprimés garnis de l’amplificateur.

www.elektormagazine.fr mai/juin 31
D9

TIP31C 1N4007 +48V


D5
F4 F3 T1 R6
12R
C19 100mA T
160mA T
10n R2
TR2 R5
T2
D6
68R K2

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

100nF 100n C8 C7 C6 C5 -12V


C11
10n
2200u 50V 100n 1 10µ 50V 100n
F2 D3 LED1
B82724J2142N1 FL4/15 R1
4VA / 2x 15V 2 3
2k2
100mA T C12 7912
10n Power
copyright D1 ... D4 = 1N4007 D4
IC2 -12V
140426 - 12

Figure 3. Schéma de la double alimentation : ±12 V et 48 V.

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-

32 mai/juin 2017 www.elektormagazine.fr


liste de composants – préamplificateur

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.

liste de composants – alimentation

34 mai/juin 2017 www.elektormagazine.fr


Il ne reste plus qu’à confectionner le teurs. Une autre solution est d’utiliser
câble pour relier l’ampli et l’alimenta- deux câbles séparés, l’un pour la ten- liste de courses
tion. Il est muni de connecteurs XLR à sion symétrique de ±12 V, l’autre pour
ª140426-1
cinq pôles ; cela peut paraître extrême. l’alimentation fantôme. Circuit imprimé
(140426)
ª140426-2
Bien entendu, vous pouvez avoir recours Circuit imprimé
à quantité d’autres modèles de connec-

Connecteurs XLR et câble pour relier l’alimentation au préamplificateur


Alimentation Préampli de micro Câble
Connecteur femelle XLR Choix du labo d’Elektor : Pro Power
Connecteur mâle XLR Neutrik NC5MP,
Neutrik NC5FD-LX, montage sur panneau PPCY4C0.5 (au mètre), blindé,
montage sur panneau (Farnell 250820)
(Farnell 1390124) 4 conducteurs de 0,5 mm2, ∅ext 6,5 mm
Autre : Pro Power PPCY4C0.75
Connecteur mâle XLR Neutrik NC5MX, Connecteur femelle XLR Neutrik NC5FXX,
(au mètre), blindé, 4 conducteurs
montage sur câble (Farnell 250764) montage sur câble (Farnell 1108204)
de 0,75 mm2, ∅ext 7 mm

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é).

Tableau 1. Mesure avec Lundahl LL1935


THD+N (source 200 Ω) S/N (source = 200 Ω) Fréquence de coupure à −3 dB
Gain
1 kHz, 1 Vsortie, B 22 kHz  par rapport à 1 Vsortie, B 22 kHz basse/haute
20 0,0032 % 110 dB / 112,7 dBA < 10 Hz / 74 kHz
30 0,0014 % 100 dB / 103 dBA 12,2 Hz / 37 kHz
40 0,0028 % 90,8 dB / 93,1 dBA 12,8 Hz / 34 kHz
50 0,0087 % 80,8 dB / 83 dBA 12,8 Hz / 34 kHz
60 0,027 % 71 dB / 73 dBA 12,8 Hz / 30,6 kHz
70 0,078 % 62 dB / 63,5 dBA 12,8 Hz / 17 kHz

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.

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.
Pour que la tension de sortie reste constante quelle que soit la valeur du gain, on
augmente le niveau du signal d’entrée en conséquence. Pour le gain le plus élevé,
un niveau d’entrée de 335 µV suffit pour obtenir 1 V en sortie. Avec le gain le plus
élevé, il y a surtout du bruit, mais comme pour les gains plus faibles, la tension
d’entrée augmente la distorsion et devient le facteur essentiel. L’augmentation de la
distorsion aux extrémités des courbes pour les niveaux d’entrée plus élevés est due
uniquement au transformateur.

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%.

Tableau 2. Mesure avec Pikatron ÜP3095M


THD+N (source 200 Ω) S/N (source = 200 Ω) Fréquence de coupure à −3 dB
Gain
1 kHz, 1 Vsortie, B 22 kHz  par rapport à 1 Vsortie, B 22 kHz basse/haute
20 0,0034% 109 dB / 112 dBA < 10 Hz / ? >200 kHz)
30 0,0016% 100 dB / 102 dBA 14,5 Hz / 30 kHz
40 0,0031% 90,6 dB / 92,6 dBA 15,3 Hz / 28,3 kHz
50 0,0097% 80 dB / 82,2 dBA 15,3 Hz / 26,2 kHz
60 0,030% 70,4 dB / 72,5 dBA 15,3 Hz / 23,3 kHz
70 0,086% 61,1 dB / 62,7dBA 15,3 Hz / 16,2 kHz

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.

36 mai/juin 2017 www.elektormagazine.fr


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. Le 3e harmonique est à peine visible et
Il est difficile de relever une différence Le 3e harmonique est le facteur le reste n’est que du bruit. La somme
avec la courbe du Lundahl. Les niveaux essentiel et le reste des harmoniques « distorsion harmonique totale + bruit »
sont légèrement supérieurs. est un peu supérieur à ce qui est est égale à 0,086%
observé sur la courbe du Lundahl. La
somme « distorsion harmonique totale
+ bruit » est égale ici à 0,0034%.

Analyse du bruit du préamplificateur

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)

Figure. Schéma équivalent utilisé pour l’analyse du bruit du préampli.

1. Théorie La source de signal est constituée par le micro, qui présente la


Les sources de bruit considérées sont d’une part le bruit ther- résistance interne Rmic et produit le signal Umic, appliqué via le
mique inhérent aux composants résistifs, d’autre part le bruit transformateur T1 à l’entrée positive de l’ampli op U1. Chaque
produit par les éléments actifs, ici l’amplificateur opérationnel. enroulement du transformateur présente une résistance interne :
D’autres sources de bruit, telles que celles résultant de champs Rp tr au primaire, Rsec tr au secondaire. Le transfo est également
électromagnétiques ou électrostatiques, ne sont pas prises en caractérisé par le rapport de transformation n entre le primaire
compte. Il est d’ailleurs usuel d’en réduire les nuisances, par et le secondaire. Vue depuis l’entrée positive de l’ampli op, la
ex. grâce à un blindage adéquat. résistance totale de la branche du circuit qui comprend le micro
La figure représente le schéma équivalent utilisé pour l’analyse et le transfo est donc égale à :
du bruit du préamplificateur, dû à deux sources : les effets ther-
miques dans les différentes résistances ainsi que la composante (1) Ra = n2 ⋅ Rmic + Rp tr + Rsec tr
( )
causée par le composant actif, ici l’ampli op. Seules les parties
réelles des impédances contribuent effectivement au bruit. Cette résistance est le cas échéant mise en parallèle avec R4

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) :

Rfb 1 en th = 4 ⋅1, 38 ⋅10−23 ⋅ 300 ⋅ (16500 + 997 ) ⋅ 30000


(3) Ka =
Rfb 1 + Rfb 2

Et Après calcul, on obtient :


1
Rfb =
(4) 1 1 en th = 2,95 ∙ 10−6 V
+
Rfb1 Rfb2
La contribution au bruit de l’ampli op est déterminée avec
Ramené aux entrées de l’ampli op, le bruit thermique sera l’éq. (6), et sa valeur totale ramenée à l’entrée avec l’éq. (7).
alors égal à : Les résultats pour les quatre amplis ops sont présentés dans
un tableau, c’est plus pratique pour la comparaison. Le rapport
(5) en th = 4 ⋅ kb ⋅T ⋅ Rinp pos + Rfb ⋅ B
( ) signal/bruit de la dernière ligne du tableau est donné pour une
tension de 5 mV fournie par le microphone.

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

avec respectivement en op et in op les densités de tension et de


courant de bruit publiées dans les fiches techniques de ce com- À l’exception du NE 5534, tous ces amplis ops sont à entrée
posant. Il en résulte finalement la tension de bruit globale : FET et se caractérisent par un courant de bruit à l’entrée négli-
geable. Les résultats obtenus avec l’ampli op OPA134 (fig. 1)
(7) en totale = e2n th + e2n comp actifs sont très bons. Plus étonnant encore, ce sont les performances
honorables du TL071. De type bipolaire, le NE5534 est pénalisé
Comme les sources de bruit sont décorrélées, la tension qui par son courant de bruit et donnera le meilleur de ce qu’il peut
résulte de leur combinaison n’est pas calculée par une simple dans d’autres configurations.
addition, mais en extrayant la racine carrée de la somme de
leurs amplitudes élevées au carré, ceci revient à dire que dans 3. Influence du transformateur sur le bruit thermique
ce cas, ce sont les puissances individuelles qui entrent en jeu. L’éq. (1) peut encore s’écrire :

2. Exemple chiffré (8) Ra = n2 ⋅ Rmic + n2 ⋅ Rp tr + Rsec tr


Intéressons-nous aux valeurs numériques du schéma de la
figure 1 pour comparer quatre amplis ops : OPA134 de Burr
Brown, AD743 d’Analog Devices, NE5534 et TL071. Nous consi- Il est évident que cette somme comprend deux termes, l’un
dérons une bande passante de 30 kHz, grosso modo celle du pour le microphone, l’autre pour le transformateur, pour
préamplificateur. lequel on peut définir une résistance équivalente rapportée
L’auteur de l’article manifestant une évidente préférence pour les au secondaire :
chaudes après-midis d’été : la température sera donc de 300 K,
ou 26,85 °C si vous préférez. Le rapport de transformation n (9) Req tranfo = n2 ⋅ Rp tr + Rsec tr
est égal à 10 ; les résistances au primaire et au secondaire
valent respectivement 50 et 1500 Ω. Nous supposons que le
micro présente une résistance interne de 100 Ω, valeur réaliste La contribution du microphone et du transformateur au bruit
pour ce genre d’équipement. Le niveau de bruit est calculé avec thermique vaut alors :
la plus grande valeur de Rfb qui correspond au gain maximal.
Sur le prototype du préampli, Ra n’est pas utilisée. Le bruit (10) en th mic et transf = 4 ⋅ kb ⋅T ⋅ n2 ⋅ Rmic + Req transfo ⋅ B
( )
thermique dû aux résistances est calculé avec les équations

38 mai/juin 2017 www.elektormagazine.fr


Le transformateur multiplie la tension d’entrée Umic fournie Après simplification, l’éq. (11) devient :
par le microphone par un facteur n. Le calcul du rapport
signal/bruit au secondaire donne alors : (13) S + N Umic + 4 ⋅ kb ⋅T ⋅ Rmic ⋅ B
=
N 4 ⋅ kb ⋅T ⋅ Rmic ⋅ B
2
S + N n ⋅Umic + 4 ⋅ kb ⋅T ⋅ n ⋅ Rmic + Req transfo ⋅ B
( )
(11) = Comparons les équations (11) et (13) : un transformateur
N 4 ⋅ k ⋅T ⋅ n2 ⋅ R + R
b ( mic ⋅B
eq transfo ) sans résistance interne ne dégraderait ni n’améliorerait le
rapport signal/bruit de la tension délivrée par le micro ;
À titre de comparaison, considérons le même calcul pour un dans le cas d’un transformateur réel, ces résistances
transformateur dépourvu de résistance interne : peuvent contribuer substantiellement à l’augmentation du
bruit. Le choix de ce composant requiert donc une attention
(12) Req tranfo = 0 particulière.

Liens [7] Mikrofonaufsätze de Jörg WUTTKE, p. 83, en allemand


(mais qui vaut la peine d’être lu !) :
[1] www.analog.com
www.schoeps.de/documents/Mikrofonbuch_komplett.pdf
[2] www.ti.com
[8] Norme EN 61938, systèmes audio, vidéo et audiovi-
[3] www.buerklin.com (en anglais et allemand)
suels - Interconnexions et valeurs d’adaptation - Valeurs
[4] www.lundahl.se/our-products/microphones/ d’adaptation recommandées des signaux analogiques.
[5] www.sowter.co.uk/pro-audio-transformers.php# [9] Pages du projet : www.elektormagazine.fr/140426 et
[6] www.jensen-transformers.com/mic_in.html www.elektormagazine.fr/labs/1161

www.elektormagazine.fr mai/juin 39
banc d’essai
microscope USB
Andonstar V160
indispensable pour travailler avec les CMS

La fabrication manuelle de prototypes qui


comportent des CMS peut vite tourner au cauchemar
tellement certains CMS sont minuscules. Sans
microscope, il est impossible de détecter les défauts
d’assemblage. À côté des microscopes classiques,
on trouve des microscopes USB qui permettent
d’afficher l’image sur l’écran d’un PC ou d’une
tablette. Le labo d’Elektor a essayé pour vous le
microscope USB Andonstar V160.

Luc Lemmens (labo d’Elektor)

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

40 mai/juin 2017 www.elektormagazine.fr


son aptitude à rendre le service attendu. Les microscopes USB
bon marché sont la plupart du temps équipés d’une mécanique
peu robuste et peu stable si bien que la moindre vibration,
ou le simple fait de toucher la caméra suffisent à déranger le
cadre et/ou la mise au point de l’image.
Le microscope USB Andonstar V160 fait exception à la règle :
sa platine massive garantit une image stable et nette. Les
réglages sont précis et faciles. Le champ de vision dépend de
la molette de réglage de la platine. La mise au point est confiée
à une bague tournante placée sur le boîtier de la caméra. La
caméra est petite et de forme étroite. Installée à quelques
centimètres de l’objet, elle fournit des images nettes. Il reste
alors suffisamment de place pour manipuler le fer à souder
tout en regardant l’écran. L’Andonstar V160 permet même une
visée oblique pour examiner les composants et les soudures
latéralement. Dans une telle position, on a encore aussi plus
de liberté de mouvement pour l’outillage.

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.

Éclairage annulaire à LED Lien


L’Andonstar V160 est équipé d’un éclairage annulaire à LED [1] www.oasisscientific.com/downloads.html
dont la luminosité est réglable par un bouton sur le câble de
raccordement. Les petits objets peuvent être éclairés prati-
quement sans zone d’ombre, mais il faut faire attention aux
reflets provoqués par des surfaces réfléchissantes (comme des
îlots de soudure ou d’autres surfaces brillantes sur les circuits
imprimés). Dans ce cas, il est recommandé de couper l’éclai-
rage annulaire et de placer une source de lumière diffuse à
proximité du microscope.

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

Le bus Inter-Integrated Circuit, en abrégé bus I²C


ou encore TWI (Two Wire Interface) chez certains
fabricants, permet de relier facilement deux puces
à l’aide de deux fils quand il y a peu de données à
transmettre et à petite vitesse. En trois épisodes,
nous examinerons ses caractéristiques essentielles et
les moyens de le mettre en œuvre avec Raspberry Pi,
Arduino et d’autres systèmes.

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

SDA out SDA out

SCL
SCL in SCL in

SCL out SCL out

GND

Figure 1. Le bus I2C constitue une porte ET câblée.

42 mai/juin 2017 www.elektormagazine.fr


voit au signal d’horloge, tandis que les puces périphériques
sont les esclaves. Par I²C, on peut aussi faire converser deux +3.3V +5V
microcontrôleurs, si l’un occupe la fonction de maître. Quand
il faut commander plusieurs puces esclaves, tous les blocs,
en rang d’oignons, partagent les mêmes lignes de bus. Mais

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.

Les deux lignes adhèrent à la logique positive : une tension


Figure 2. Des MOSFET compartimentent le bus entre la partie sous 5 V et
élevée sur SDA représente un 1 et pour une impulsion d’hor-
celle sous 3,3 V.
loge, la ligne SCL est aussi placée brièvement au niveau haut.
Au repos, les résistances de polarisation haute maintiennent
les deux lignes au niveau haut. Les tampons dans les puces
I²C sont en configuration à collecteur ouvert ou à drain ouvert
de manière à ce que les deux lignes constituent toujours une
grande porte ET câblée (figure 1). Une ligne ne peut être haute SDA
par rapport au point commun que si toutes les sorties sont au
niveau haut. Si l’une des sorties passe au niveau bas, la ligne
commune est également au niveau bas. Chaque membre du SCL
bus doit donc vérifier le niveau des lignes : s’il veut y mettre
un 1, il doit être en mesure d’exclure la possibilité qu’un autre data line change
membre y place un 0 en même temps. stable; of data
La grandeur de la résistance est peu critique, elle devrait se data valid allowed
situer dans la plage de quelques milliers d’ohms. Sur RPi, les
résistances de polarisation (1,8 kΩ vers le 3,3 V) sont déjà ins- Figure 3. Diagramme temporel d’un transfert de données.
tallées à demeure. Sur les microcontrôleurs Atmel de la série
ATmega, ces résistances sont commutées par logiciel, il ne faut
donc pas en ajouter, puisqu’elles valent déjà entre 20 et 50 kΩ.
Selon la spécification, le niveau haut doit atteindre au moins peut pas entreprendre lui-même une conversation comme il
0,7 V et le niveau bas être inférieur à 0,3 V ; en pratique, est possible de le faire en SCSI, par exemple. Mais un micro-
les puces de 5 V fonctionnent aussi avec une résistance vers contrôleur peut aussi bien jouer le rôle de maître que d’es-
le 3,3 V, par exemple sur un RPi. Si d’aventure un circuit ne clave. En théorie, il serait possible d’inverser les rôles en cours
fonctionnait pas, cela peut provenir de différences de niveau, d’exécution, mais d’habitude, un membre du bus est soit l’un,
il faut alors installer un convertisseur de niveau. soit l’autre.
Il existe aussi des modules esclaves à résistances de polari-
sation intégrées. Il faut les enlever ou ne pas les monter s’il C’est toujours le maître qui décide de la vitesse de transmis-
s’agit d’un kit, parce que quand plusieurs esclaves mettent sion. Il y a officiellement quatre débits binaires possibles :
ensemble leurs résistances, elles se retrouvent en parallèle et
la résistance résultante est alors trop petite. Sur un bus I²C, • 100 Kb/s (mode standard, Sm, par défaut),
il ne faut qu’une paire de résistances de polarisation, de pré- • 400 Kb/s (mode rapide, Fast mode, Fm),
férence du côté du maître. • 1 Mb/s (mode plus rapide, Fm+) et
• 3,4 Mb/s (mode à haute vitesse High Speed, Hs).
Il faut aussi faire attention quand on mélange des blocs de ten-
sions différentes. Certains de ces composants alimentés sous Le maître peut transmettre des données à l’esclave, et inverse-
3,3 V ne supportent pas une tension supérieure à l’entrée. Relier ment, mais c’est toujours le maître qui délivre le signal d’horloge
les résistances de polarisation au +5 V risque de détériorer la sur la ligne SCL. Le transfert de données (figure 3) se déroule
puce. Pour que le bus travaille en toute sécurité, il y a lieu de donc synchronisé par l’horloge. Pour envoyer un bit, l’émetteur
s’en tenir aux niveaux prescrits. Pour assembler sur le même met le bit de donnée sur la ligne SDA, en logique positive. Le
bus des composants de 5 V et de 3,3 V, des convertisseurs de maître relâche la ligne d’horloge SCL qui est tirée au niveau
niveau bidirectionnels sont nécessaires, comme ceux décrits haut et après un certain temps la ramène au niveau bas. C’est
sur [3]. Deux MOSFET et les résistances nécessaires relient ainsi qu’un bit est transmis et l’émetteur peut envoyer le bit
alors la partie sous 5 V à celle sous 3,3 V sur le bus (figure 2). suivant. Pendant la transmission, aussi longtemps que la ligne
SCL reste haute, la ligne SDA ne peut pas varier.
Le protocole
Le bus I²C est un simple bus maître/esclave sur lequel la com- 1. Pour lancer la transmission, le maître abaisse d’abord la ligne
munication démarre toujours d’un maître qui s’adresse à un de données SDA, puis celle d’horloge SCL (figure 4). Cette
esclave avec lequel il échangera des données. Un esclave ne séquence s’appelle la condition de départ, START condition.

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

44 mai/juin 2017 www.elektormagazine.fr


SDA
SDA
acknowledgement
signal from receiver
SCL
SCL 1 2 3 to 8 9 P
ACK STOP condition

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.

Mise en pause de SCL et arbitrage Dans la deuxième partie


Quand un esclave doit transmettre des données, il peut s’écou- La prochaine fois, nous établirons des communications avec
ler un certain temps avant que la puce ne soit prête à le faire. différents microcontrôleurs, comme ATmega et Arduino, mais
L’esclave doit alors pendant ce délai arrêter ou différer l’hor- aussi Raspberry Pi et un PC, utilisés comme maître I²C et
loge du maître. Comme les deux lignes de signal du bus for- esclaves. Des exemples de programmes en C et Python mon-
ment une grande porte ET, l’esclave en a le pouvoir en passant treront comment s’adresser à un membre du bus, lui envoyer
momentanément la ligne SCL au niveau bas. Le maître s’en des commandes et recevoir ses réponses.
rend compte puisque SCL ne remonte pas quand il libère la (160095 – version française : Robert Grignard)
ligne et il attend. Ce mécanisme s’appelle Clock Stretching,
étirement du coup d’horloge, mais à proprement parler, ce
n’est pas vrai, puisque l’esclave ne peut qu’allonger la pause
entre deux impulsions d’horloge, pas l’impulsion elle-même.

Il est vrai qu’on peut raccorder plusieurs maîtres sur un bus


I²C. Aussi, entre les conditions START et STOP, le bus affiche
complet, aucun autre maître ne peut émettre de condition START
pendant ce temps-là. Un maître (potentiel) doit donc conti-
nuellement tenir à l’œil le bus. Un maître ne peut émettre de
START que quand le bus est libre. Imaginons que deux maîtres
veuillent lancer un START au même instant. Il y a fort à parier
que les deux adresses d’esclaves ou, au bout du compte, les
bits de L/E seront différents et alors, un maître aura voulu
transmettre un 1 et l’autre un 0. À cause du ET câblé, celui qui
veut envoyer un 0 le verra sur le bus, tandis que l’autre, avec
son 1, ne l’apercevra pas et devra cesser immédiatement la
transmission. C’est donc celui qui a présenté un 0 qui est vain-
queur, il ne remarque rien, acquiert tout de suite le contrôle
du bus et poursuit sa transmission. Liens
[1] www.nxp.com/documents/user_manual/UM10204.pdf
On trouve parfois à ce sujet le terme d’arbitrage, même dans [2] www.i2c-bus.org/
de la documentation officielle. C’est inapproprié parce qu’il
[3] http://playground.arduino.cc/Main/
n’y a pas le moindre déphasage ou quoi que ce soit de com-
I2CBi-directionalLevelShifter
parable à des priorités ou des délais d’attente. Celui qui veut

www.elektormagazine.fr mai/juin 45
PROJET DE LECTEUR

retour sur l’analyseur de


signal par Ethernet
plus rapide, toujours plus facile à utiliser
et quelques nouveautés

Figure 1. La nouvelle interface utilisateur.

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

46 mai/juin 2017 www.elektormagazine.fr


taux de rafraîchissement plus élevés d’échantillons, résolution (10 ou 12 bits),
pour l’oscilloscope et la transformée et ADCS (constante de division pour Caractéristiques
de Fourier rapide (Fast Fourier Trans‑ l’obtention de la fréquence d’horloge • Connexion réseau
form – FFT). Cette amélioration résulte du CA/N). Une fonction d’élimination • Plug and play
essentiellement de la capacité multitâche de la gigue (Prevent Jitter) a été ajou- • Générateur de bruit
(multithreading) de l’ordinateur client et tée, pour permettre la sélection du taux • Oscilloscope
de l’accès direct à la mémoire (Direct d’échantillonnage optimal. Lorsque cette • Analyseur de spectre
Memory Access – DMA) du dsPIC33. fonction est sélectionnée, la fréquence • Possibilité de sous-échantillonnage
d’échantillonnage sera ajustée automa-
Plus de fonctions tiquement à la plus proche valeur pré-
Nous avons étendu les capacités de l’ana- sentant une gigue minimale. Cette fré- graphique supérieur ; ce seuil est remis
lyseur de forme d’onde synthétique (Syn‑ quence est un multiple entier du nombre à 0 avec Set 0V.
thetic Waveform Analyzer – SWA) avec de cycles nécessaires pour la conversion L’analyseur est par défaut à l’arrêt (mode
des fonctions définies par l’utilisateur A/N, divisé par la fréquence souhaitée. Stop) ; en appuyant sur le bouton rouge
(User Defined Functions – UDF). L’os- Stop, la capture commence, jusqu’à une
cilloscope dispose également de nou- Déclenchement pression sur le bouton Run. On peut aussi
velles fonctions : couplage CA ou CC, Les réglages du déclenchement (trigger) capturer un événement unique avec le
déclenchement (triggering) et produc- sont réalisés par le logiciel ; ils sont sem- bouton Single ; le système attend le
tion de statistiques. Les fonctions défi- blables à ceux rencontrés sur un oscillos- déclenchement, puis se remet en mode
nies par l’utilisateur et l’analyseur de cope. Lorsqu’un seuil de déclenchement Stop immédiatement.
forme d’onde synthétique permettent est sélectionné (p. ex. 1 V), ainsi que le Couplage
notamment de calculer la transformée
de Fourier de n’importe quelle fonction
continue définie mathématiquement, un Tableau 1. Le seuil de déclenchement est fixé à 1 V, flanc montant.
outil vraiment puissant ! L’index correspondant est 1039.
Index 1034 1035 1036 1037 1038 1039 1040 1041 1042
Plus de convivialité Tension 0,800 0,820 0,883 0,950 0,969 1,003 1,012 1,133 1,306
L’interface utilisateur (User Interface
– UI) est beaucoup plus intuitive et cohé-
rente avec l’ASPE II. On se sent mainte- sens du flanc (p. ex. montant), l’algo- Le panneau Coupling permet la sélection
nant en face d’un instrument de mesure rithme va rechercher parmi les données du couplage souhaité. En mode DC, le
moderne. reçues par l’ASPE les échantillons dont la signal est montré tel qu’il a été mesuré.
valeur est supérieure ou égale au seuil En mode AC, la composante continue,
Rien à changer dans le matériel pour ces de déclenchement, et dont la valeur de calculée par transformée de Fourier
améliorations, il suffit de modifier le logi- l’échantillon précédent est inférieure à rapide (TFR – FFT), est soustraite au
ciel de l’ordinateur client pour accéder à ce niveau (voir tableau 1). Ceci nous signal avant qu’il soit montré.
la convivialité et aux nouvelles fonctions, donnera une liste des échantillons, avec
et celui de l’ASPE pour la rapidité et la leur index, qui répondent à ces critères ; Statistiques
connectivité. le signal représenté commencera tou- Diverses statistiques sont établies pour
jours au premier point rencontré dans chaque groupe de données reçues par
L’interface utilisateur cette liste. l’ASPE II, comme tensions minimale,
Passons en revue l’interface utilisateur maximale, moyenne et crête à crête.
de l’ASPE II. La figure 1 en montre un Dans le panneau Trigger, à droite, le Des moyennes sont aussi calculées et
exemple typique. seuil de déclenchement peut être choisi montrées ; le bouton Reset permet de
entre −250 mV et +250 mV, et le déclen- les remettre à zéro. Les statistiques
Se connecter à l’ASPE chement sur un flanc montant ou des- sont montrées en haut de l’interface
Au démarrage, nous ne connaissons pas cendant. On peut aussi sélectionner un utilisateur.
l’adresse IP de l’ASPE. Si nous appuyons mode Auto ou Normal. Dans ce dernier En sélectionnant Show max trace et
sur le bouton Find, en haut à droite, cas, le signal ne sera montré qu’après un Show min trace, des lignes représentant
une recherche d’un ou deux ASPE sur déclenchement effectif. En mode Auto, si respectivement les valeurs maximale et
le réseau local est lancée. L’adresse IP aucun déclenchement n’a eu lieu après minimale capturées seront affichées dans
des instruments détectés sera ajoutée à 200 ms ou plus, une capture unique sera le graphique du domaine temporel. La
la liste ; après sélection de l’instrument effectuée automatiquement. Ce mode remise à zéro est possible avec le bouton
souhaité, la liaison pourra être établie est le mode par défaut, comme sur la Reset, ou en les désélectionnant puis en
avec le bouton Connect. plupart des oscilloscopes ; il permet à les sélectionnant à nouveau. La même
l’utilisateur de voir à quoi le signal res- fonction existe pour le niveau maximal
Échantillonnage semble, même s’il ne répond pas aux de la TFR.
Tout comme dans la version précédente, paramètres de déclenchement. On peut Le décalage continu, la fréquence mesu-
les paramètres d’échantillonnage peuvent aussi supprimer le déclenchement avec rée, et le taux de rafraîchissement sont
être réglés dans le panneau Sampling : la commande Off. Le seuil de déclenche- visibles en bas du graphique du domaine
taux (échantillons par s), nombre ment est réglé avec le curseur à droite du temporel. Le décalage continu provient

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.

Calibrage du bruit blanc


L’ASPE II permet la mesure de la réponse
en fréquence d’un filtre. On utilise pour
Figure 2. Entrée et sortie raccordées, mais à calibrer.
ce faire la source de bruit blanc interne
de l’instrument comme signal d’entrée
du filtre. La TFR permettra de mesurer
l’amplitude des composantes du bruit à la
sortie du filtre, et d’en montrer la bande
passante.
Il y a cependant un filtre passe-bas
à la sortie du générateur ; la densité
spectrale de puissance n’est donc pas
la même pour toutes les fréquences, ce
qui fausse le résultat de la mesure. Nous
avons prévu une fonction de calibrage,
afin de corriger ce défaut. Il suffit de
connecter la sortie du générateur de bruit
à l’entrée de l’analyseur, et d’effectuer un
Figure 3. Entrée et sortie raccordées et calibrées. grand nombre (p. ex. 500) de moyennes
de la TFR. En appuyant sur le bouton
Calibrate, en haut de l’interface utilisa-
teur, l’enveloppe de la TFR obtenue pré-
cédemment servira de référence pour les
mesures suivantes (voir figures 2 et 3).
Vous pouvez connecter à nouveau le filtre
entre sortie et entrée de l’instrument,
vous obtiendrez une représentation plus
correcte de sa réponse en fréquence.
Le processus de calibrage peut être auto-
matisé, il suffit d’appuyer sur le bouton
Auto set. Encore une remarque concer-
nant l’exactitude des mesures : afin que
l’impédance vue par le générateur de
bruit soit la même, qu’il soit connecté à
l’analyseur ou au circuit à tester, l’im-
pédance d’entrée de ce dernier doit être
de 50 Ω. Il suffira de connecter une résis-
tance de cette valeur en parallèle sur
l’entrée du circuit si ce n’est pas le cas.
Il faudra aussi veiller à éventuellement
Figure 4. Analyse d’un signal modulé en amplitude avec l’analyseur de forme d’onde synthétique insérer un condensateur (d’une valeur
(SWA). Les valeurs du taux de modulation et des fréquences de la porteuse et de la modulation appropriée pour ne pas perturber la
peuvent être entrées comme paramètres.
réponse en fréquence) entre sortie du
circuit et entrée de l’analyseur, cette der-
nière acceptant les tensions continues.

Tableau 2. Configuration de JP2. Analyseur de forme d’onde


RB13 (broche 3) RB14 (broche 1) Adresse IP synthétique
Masse Masse 192.168.1.123 (adresse fixe) L’analyseur de forme d’onde synthétique
Masse Ouvert 192.168.0.123 (adresse fixe) (Synthetic Waveform Analyzer – SWA) a
été amélioré, pour permettre à l’utilisa-
Ouvert Masse DHCP 1
teur d’entrer ses propres signaux (sous
Ouvert Ouvert DHCP 2
forme mathématique), et de les évaluer

48 mai/juin 2017 www.elektormagazine.fr


en sélectionnant fréquence d’échantillon- Le cavalier JP2 permet la sélection d’une
nage, nombre d’échantillons, et fenêtre adresse IP parmi quatre (tableau 2).
de la TFR. Les deux premières sont des adresses
L’analyseur utilise une bibliothèque libre fixes, comme pour l’ASPE original, les
appelée NCalc [4] pour évaluer et analy- deux autres sont attribuées par le pro-
ser la formule entrée. Après avoir entré tocole DHCP, une par ASPE connecté au
cette formule et appuyé sur le bou- réseau.
ton Parse, les paramètres seront affi- Nous avons maintenant une adresse IP
chés comme champs d’entrée sous la attribuée à l’ASPE par le routeur du
fenêtre contenant la formule (figure 4). réseau, mais elle n’est pas encore connue
Ces paramètres seront utilisés pour éva- du logiciel client tournant sur l’ordinateur.
luer la formule pour chaque échantillon Le problème de découverte de l’adresse
(bouton Evaluate). Les résultats sont de l’ASPE par l’ordinateur est plus ardu
montrés dans les domaines temporel et qu’il n’y paraît !
fréquentiel.
Reconnaissance de l’ASPE
Connexion à chaud Le fichier NetworkScanner.cs du pro-
Figure 5. Les étapes du processus DHCP.
(plug and play) gramme en C# contient le code qui per-
L’adresse IP utilisée par l’ASPE origi- met à l’ordinateur de trouver l’adresse IP
nal pour se connecter à un réseau local de l’ASPE. Examinons les différentes
était sélectionnée à l’aide d’un cavalier étapes et les fragments de code du fichier
parmi quatre adresses fixes. Avec le pro- qui sont essentiels au processus : envoie un signal vers toutes les
tocole de configuration dynamique des adresses possibles jusqu’à ce
hôtes (Dynamic Host Configuration Pro‑ 1. (Listage 1) Trouver l’adresse IP des qu’il reçoive une réponse. Par
tocol – DHCP), l’adresse IP est désor- accès au réseau (en principe dans exemple, si l’adresse IP du rou-
mais attribuée dynamiquement lors de le routeur), et vérifier qu’elles sont teur est 192.168.0.1, les adresses
la connexion au réseau. Ceci permet en actives. Si c’est le cas, acquérir les de 192.168.0.2 à 192.168.0.255
outre la connexion simultanée de deux adresses (un routeur peut avoir par seront essayées. Ceci pourrait
ASPE II au même réseau. exemple l’adresse 192.168.0.1). prendre pas mal de temps si les
2. (Listage 2) Rechercher un ASPE II adresses devaient être vérifiées à la
Attribution de l’adresse IP dont l’adresse IP est parmi celles queue leu leu, le programme teste
Rappelons tout d’abord que nous vou- des accès au réseau. Ceci se donc plusieurs adresses en parallèle
lons établir une connexion entre un fait à l’aide de l’outil Ping, qui (multithreading).
ordinateur, considéré comme client, et
l’ASPE II, le serveur. Le serveur DHCP,
généralement dans le routeur du réseau, Listage 2. Recherche d’un ASPE.
commande le processus d’attribution des private static void Ping(IPAddress host, int attempts, int timeout)
adresses IP ; nous utilisons les facilités {
de débogage de l’ASPE II pour en visua- ...
liser les différentes phases. Pour le débo- Ping ping = new Ping();
gage, nous devons relier un ordinateur ping.PingCompleted += PingCompleted;
au connecteur K6 de l’ASPE à l’aide d’un ping.SendAsync(host, timeout, host);
adaptateur série‑USB. Un émulateur de
...
terminal (p. ex. Tera Term) permet alors
}
de suivre le processus DHCP (figure 5).

Listage 1. Recherche de l’adresse IP de la passerelle d’accès au réseau.


static IPAddress NetworkGateway()
{
...
foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
{
if (f.OperationalStatus == OperationalStatus.Up)
{
foreach (GatewayIPAddressInformation d in f.GetIPProperties().GatewayAddresses)
{
if (d.Address.AddressFamily == AddressFamily.InterNetwork)
ip = d.Address;
} } } }

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 !

Listage 4. Utilisation de la table ARP pour obtenir l’adresse MAC.

public static string GetMacAddress(IPAddress ip)


{
...
if (SendARP(BitConverter.ToInt32(ip.GetAddressBytes(),0),0,macAddr,ref macAddrLen) != 0)
return “00:00:00:00:00:00”;
...
}

50 mai/juin 2017 www.elektormagazine.fr


Accès direct à la mémoire (DMA)
Listage 5. SPI avec DMA sur le dsPIC33.
Dans le logiciel original, l’interface SPI
done = false; //using dma and spi for faster uP to W5500 transfers
du dsPIC33 était utilisée par les fonc-
SPI1STATbits.SPIEN=0; //keep SPI off until ready for transfer
tions wiznet_read() et wiznet_write()
de la bibliothèque d’E/S du W5500 pour
contrôler le transfert de données. La //Set up DMA 1 to transfer from RAM at pBuf to SPI
vitesse de transfert était limitée par le DMA1CNT = len-1; //block size
fait que les instructions devaient être DMA1STAL = (unsigned int) pBuf; //point to data buffer
exécutées par le dsPIC. Nous utilisons IFS0bits.DMA1IF = 0; //clear DMA interrupt flag
désormais les possibilités d’accès direct IEC0bits.DMA1IE = 1; // Enable DMA interrupt
à la mémoire, ce qui permet de trans- DMA1CONbits.CHEN = 1; //turn DMA1 on
férer directement des données entre la
mémoire et l’interface SPI sans passer //Set up DMA 2 to do dummy reads after each write;
par le processeur central du dsPIC. Nous
//required for dsPIC33 DMA SPI
atteignons maintenant 1,3 Mo/s au lieu
DMA2STAL = (unsigned int) &dummy;
de 700 Ko/s.
DMA2CNT = len-1;
C’est même presque trivial, et deux
canaux DMA sont nécessaires. Le pre- IFS1bits.DMA2IF = 0;
mier canal traite l’envoi au W5500, et IEC1bits.DMA2IE = 1;
le second effectue une lecture fictive DMA2CONbits.CHEN=1;
après chaque transfert d’octet, comme
requis par l’interface SPI du dsPIC33. Les //force the first byte transfer after enabling SPI;
deux canaux opèrent en mode One Shot : //required by dsPIC33 to start process
transfert d’un bloc de données, déclen- SPI1STATbits.SPIEN=1; //turn on SPI
chement d’une interruption, attente DMA1REQbits.FORCE=1;
d’une nouvelle demande de transfert. while (DMA1REQbits.FORCE==1);
Le listage 5 montre le déroulement du
processus.
//wait for DMA transfer to complete; done set true by DMA interrupt
La lecture fictive après chaque transfert
while (done==false);
d’octet est loin d’être idéale, de même
que le démarrage manuel du transfert
du premier octet. On devrait pouvoir se
contenter d’un seul canal DMA, mais les
concepteurs du dsPIC33 en ont décidé
autrement...

Mise à jour de l’ASPE


L’ASPE original fonctionnera avec le nou-
veau logiciel client (sur PC), la nouvelle
interface utilisateur, ainsi que les fonc-
tions définies par l’utilisateur et l’analy-
seur de forme d’onde synthétique. Pour
la connexion dynamique à un réseau
(DHCP) et certaines améliorations des
performances, le logiciel du dsPIC33
devra cependant être mis à jour.
Pour mettre à jour le logiciel client, il
faut télécharger la version gratuite de
Visual Studio 2015 de Microsoft, puis
NCSA Visual Studio sur la page du pro-
jet [3], et l’exécuter.
Pour mettre à jour le logiciel du dsPIC,
il faut télécharger l’environnement de
développement gratuit MPLABS de Micro-
chip, puis MPLABS.X sur la page du pro-
jet [3]. Après compilation du code, un
programmateur sera nécessaire pour le
charger sur le dsPIC33, par exemple le
PICkit 3 de Microchip, qui est bon mar- Figure 6. La table ARP, obtenue en tapant arp –a dans une fenêtre de commande. L’entrée pour
ché ; celui-ci se raccorde directement l’adresse IP 192.168.0.8 est celle de notre ASPE avec l’adresse MAC par défaut 00-08-dc-00-ab-cd
au connecteur ICSP K1. Si cela vous du W5500.

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].

52 mai/juin 2017 www.elektormagazine.fr


Modulation d’amplitude en quadrature (QAM)

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.

où C = √(Q2 + I2) et θ = tan−1(Q / I)

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)

54 mai/juin 2017 www.elektormagazine.fr


bidirectionnelle
à 4 voies
Caractéristiques
• Quatre voies
• Deux architectures
• Longue portée
• Bon marché

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

la version pro, c’est 90 m en intérieur/


copyright urbain, et 3,2 km en terrain dégagé. Avec
+3V
LD117S12TR
une antenne directionnelle Yagi, la por-
S9 IC1 +1V2 tée en extérieur de la version pro peut
R6 atteindre 20 km. Attention toutefois :
K1
R5 le XBee-Pro n’est pas certifié pour une
220R

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-

56 mai/juin 2017 www.elektormagazine.fr


sèdent 20 broches réparties sur deux les autres le diminuent. La paire S1-S2
connecteurs à 10 voies ; 15 des broches commande la voie n°1, S3-S4 la voie project information
peuvent être utilisées en E/S numériques n°2 et ainsi de suite. Seize diodes, D1 à modèles réduits
et 4 en entrées analogiques. Comme dit D16, sont utilisées pour coder les neuf
XBee nRF24 Arduino
précédemment, il existe plusieurs confi- combinaisons, la neuvième correspond
télécommande RC
gurations d’antenne : les modules tra- à l’état dans lequel tous les poussoirs
versants existent avec des antennes sont au repos, une combinaison valide
Æ débutant
intégrées, filaires, U.FL ou RPSMA. Nous et importante. Les pressions simultanées
connaisseur
avons choisi une antenne filaire, bien sur plusieurs des poussoirs seront reje-
expert
suffisante pour expérimenter. tées par le récepteur.
Les modules ZigBee sont prévus pour Cela conclut la description du matériel
les réseaux maillés et les routeurs. Il de l’émetteur ; sa programmation sera
env. 2 h
existe d’autres appareils pour décrite plus loin. Bonne nouvelle : vous
créer des réseaux plus gros n’aurez pas à apprendre un langage de
couvrant des zones plus programmation.
Ordinateur, fer à souder,
étendues. Toutefois, il
adaptateur USB/Série,
est possible de les utili- Le récepteur XBee
programmateur AVR ISP
ser pour une com- Le schéma du récepteur (fig. 2) diffère
munication point à de celui de l’émetteur : il faut un micro-
point comme nous contrôleur pour décoder les données version XBee : env. 100 €
allons le faire. sérielles reçues. Le micrologiciel d’usine version nRF24 : env. 35 €
du module XBee n’a aucune idée de la
L’émetteur signification des données reçues, il ne
XBee
La figure 1
montre le schéma de
l’émetteur à cœur
XBee. Comme K2 K3
1 20
le module XBee +3V3 VDD DIO0
copyright 2
DOUT DIO1
19
contient un micro- 3
DIN DIO2
18
4 17
contrôleur à 32 bits ARM +3V3 DIO12 DIO3
5 16
Cortex-M3 préprogrammé, aucun µC 6
RESET RTS
15
RSSI DIO5
externe n’est nécessaire. Le micrologi- R1
7
DIO11
XBEE RES
14
8 13
ciel du XBee balaie les entrées numé- RES DIO9
10k

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

sont utilisées pour mesurer des tensions. ATMEGA328P K4


21 2 1
AREF PD0(RXD)
Nous avons utilisé des ajustables, mais 3 2
PD1(TXD)
pour commander un avion ou une voi- 14
PB0(ICP) PD2(INT0)
4 3
15 5
ture, mieux vaut les remplacer par deux +3V3 16
PB1(OC1A) PD3(INT1)
6
PB2(SS/OC1B) PD4(XCK/T0) K5
joysticks. L’axe horizontal de chacun des K8 17
PB3(MOSI/OC2) PD5(T1)
11 1

joysticks peut se substituer à P1 ou P3, 2 1 MISO 18


PB4(MISO) PD6(AIN0)
12 2
MOSI 4 3 SCK 19 13 3
l’axe vertical à P2 ou P4. Il est également 6 5 RST
PB5(SCK)
PB6 PB7
PD7(AIN1)
GND XTAL1 XTAL2 GND
possible de remplacer un ajustable par K6
8 9 10 22
une photorésistance avec une résistance ISP 1
2
en série ou n’importe quel autre capteur 3
qui délivre une tension. Les entrées ana-
+5V
logiques mesurent des tensions jusqu’à 7805 MCP1700-3.3
SW1
K7
IC2 IC1 +3V3 1
1,2 V. Les ajustables sont alimentés par 2
R2
le régulateur de tension de 1,2 V IC1, K1 3
220R

afin que la tension d’alimentation soit 2 C1 C2 C3


1
indépendante de celle des piles. 1u 2u2 1u LED1
L’idée est de pouvoir commander des
servomoteurs. Mais, les servos ont la
plupart du temps besoin d’un petit déca- 150408 - 14

lage dans la commande pour compenser


leurs imprécisions mécaniques : c’est le
rôle des poussoirs S1 à S8. Les pous- Figure 2. Le récepteur XBee comporte un microcontrôleur pour décoder les données transmises par
soirs impairs augmentent le décalage, l’émetteur.

www.elektormagazine.fr mai/juin 57
liste des composants
émetteur XBee (150408-3)

peut donc pas s’acquitter automatique-


ment de cette tâche ; il se contente de
pousser ces données sur son port série.
C’est le microcontrôleur IC3, un ATme-
ga328P, qui se charge du décodage. Il est
possible, lorsque l’on achète la version
programmable des modules XBee, d’en
modifier le micrologiciel et ainsi de sup-
primer le µC externe. Malheureusement,
Programmation des microcontrôleurs cette approche n’est viable que pour ceux
Les trois microcontrôleurs utilisés dans cet article sont cadencés par leur oscillateur (lisez les entreprises) qui veulent utili-
RC interne à 8 MHz, et la configuration de leurs fusibles sera la même (tableau 3). ser les modules XBee à grande échelle.
Pour compiler le logiciel pour ces µC dans l’EDI Arduino, faites attention à sélectionner Le µC reçoit les données sur son port
la bonne carte (menu Tools). Plusieurs choix sont valides, mais nous vous recomman- série et les convertit en signaux pour les
dons de choisir Arduino Pro ou Pro Mini avec l’option Processor (également dans le servos sur les connecteurs K4 à K7. IC2
menu Tools après avoir sélectionné la carte) réglée sur ATmega328 (3,3 V, 8 MHz). a été ajouté pour fournir une alimenta-
Vous pouvez aussi opter pour Atmega328 on a breadboard (8-MHz internal clock) tion 5 V propre pour les servos, le reste
comme décrit sur cette page : www.arduino.cc/en/Tutorial/ArduinoToBreadboard du circuit tourne en 3,3 V.
Pour compiler le logiciel du système à nRF24, vous devrez installer la bibliothèque Le logiciel pour le récepteur a été écrit
Arduino nRF24 : https://github.com/TMRh20/ avec l’EDI Arduino et sera donc facile à
modifier (voir l’encadré).

Relier l’émetteur au récepteur


liste des composants Les modules XBee doivent être configu-

récepteur XBee (150408-4) rés avant de pouvoir les utiliser comme


souhaité. Pour ce faire, vous aurez besoin
d’un ordinateur et probablement d’un
convertisseur USB/série (un câble ou
une carte, voir dans l’e-choppe), mais

58 mai/juin 2017 www.elektormagazine.fr


une carte de liaison XBee (BoB) vous
sera sans doute utile (fabriquez-en une
ou rendez-vous dans l’e-choppe). Vous
devez également télécharger et instal-
ler l’utilitaire gratuit XCTU [1] sur votre
ordinateur. Les lecteurs expérimentés
pourront se passer d’XCTU et envoyer
eux-mêmes les incantations nécessaires
sous la forme de commandes AT.
D’abord, configurons l’émetteur. Reliez le
module au PC via une ligne série (conver-
tisseur USB/série si nécessaire) et une
BoB Xbee.

Sur l’ordinateur, démarrez XCTU. Une fois


prêt, cliquez sur le bouton Discover radio
modules. Il faudra peut-être remettre à
zéro le module avant qu’il ne soit détecté.
Une fois le module détecté, un écran de
Figure 3. XCTU a détecté un module XBee sur COM3.
configuration apparaît. Cliquez sur le
bouton Read pour lire la configuration
courante du module (fig. 3).

Configuration de l’émetteur XBee


Il faut programmer le module avec le
jeu de fonctions ZigBee Router API. Pour
cela, cliquez sur Update, sélectionnez la
famille de produits XB24-ZB ainsi que
le jeu de fonctions ZigBee Router API et
la version 23A7 du micrologiciel. Enfin,
cliquez sur Update (fig. 4).
Maintenant, reconfigurez le module XBee.
Dans la section Networking, saisissez un
PAN ID, c.-à-d. un nombre entre 0 et
0xFFFF FFFF FFFF FFFF (64 bits). Cet ID
permet d’éviter les interférences entre
réseaux, oubliez 1234 (trop simple !).
Notez le nombre saisi, vous en aurez
Figure 4. Il faut activer la fonction ZigBee router API sur l’émetteur.
besoin pour le récepteur.
Pour le champ Channel Verification,
sélectionnez Enabled [1].
Faites défiler la liste de paramètres
jusqu’à la section Addressing pour y
saisir l’adresse MAC du récepteur. Cette
dernière est visible sur le module, mais
vous pourrez aussi la déterminer avec
XCTU. La première partie (les 32 bits de
poids fort) de l’adresse sur 64 bits est
saisie dans le champ Destination Address
High ; les 32 bits restants, dans le champ
Destination Address Low.

Dernière chose : configurez les broches


d’E/S du module dans la section I/O set-
tings (presque tout en bas de la liste de
paramètres). Le tableau 2 et la figure 5
montrent les valeurs à utiliser. Réglez
I/O Sampling sur 64 (au-dessous des
IO settings).

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.

Avant de pouvoir utiliser le récepteur, d’importance. Une fois la connexion entre


il faut bien entendu programmer son les deux cartes établie (cela peut prendre
microcontrôleur ; le micrologiciel est dis- quelques secondes), vous devriez être
ponible sur [2]. Reliez un programmateur en mesure de commander les servos en
AVR in situ à K8. N’oubliez pas de régler réglant les ajustables de l’émetteur. Si
Configuration du récepteur XBee les valeurs des fusibles (tableau 3). vous reliez l’émetteur à un port série,
Dans votre dispositif de programmation Enfichez maintenant les modules XBee vous pourrez voir les messages de retour
des modules XBee, remplacez mainte- sur les cartes ; attention à ne pas les envoyés par le récepteur.
nant l’émetteur par le récepteur. Reliez intervertir. Reliez également les servos à
le tout à l’ordinateur ; dans XCTU, cliquez la carte du récepteur. Mettez sous tension Passons aux modules nRF24...
sur le bouton Discover radio modules. le récepteur et l’émetteur, l’ordre n’a pas Une radiocommande basée sur des

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.

60 mai/juin 2017 www.elektormagazine.fr


modules XBee est sans nul doute inté- Table 1. Réglage du décalage des servos.
ressante grâce à toutes les configurations
’1’ ’0’ ‘TRIM_DOWN’ ‘TRIM_UP’ Décalage du servo
réseau possibles, mais cela reste cher.
S1 0 0 0 1 voie 1 +
Une solution moins onéreuse est de rem-
placer les modules XBee par des modules S2 0 0 1 0 voie 1 –
radio nRF24L01 plus abordables et dis- S3 0 1 0 1 voie 2 +
ponibles partout sur l’internet. Avec une S4 0 1 1 0 voie 2 –
bonne antenne, il est possible d’atteindre S5 1 0 0 1 voie 3 +
la même portée qu’avec un Xbee-Pro.
S6 1 0 1 0 voie 3 –
Même s’il faut ajouter un µC externe,
S7 1 1 0 1 voie 4 +
le coût total reste inférieur à celui de la
S8 1 1 1 0 voie 4 –
solution à base de modules XBee.

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.

liste des composant


émetteur nRF24 (150408-1) Figure 8. Notre prototype du récepteur
nRF24 relié à quatre petits servos.

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

liste des composants 


circuit imprimé du récepteur

 récepteur nRF24 (150408-2)


ª150408-41
microcontrôleur de l’émetteur
programmé
ª150408-42
microcontrôleur du récepteur
programmé
version XBee
ª150408-3
circuit imprimé de l’émetteur
ª150408-4
circuit imprimé du récepteur
ª150408-43
microcontrôleur du récepteur
programmé
Outils
ª140374-91
T-Board sans fil
ª150387-1
Port série USB à haute vitesse

62 mai/juin 2017 www.elektormagazine.fr


vol tous azimuts
piloté par Clemens Valens (labo d’Elektor)

Secret d’Arduino : nouvea


u modèle de croquis
Lorsque vous ouvrez l’EDI Ardu
ino, ou lorsque vous créez un
nouveau croquis par le men n’aimez pas la façon dont sont
u Fichier ª Nouveau, l’éditeu écrits ces squelettes, vous deve
r les modifier à chaque fois, ce z
contient déjà des squelettes vide qui est presque aussi long que
s pour les fonctions setup et
de les écrire à partir de rien.
loop. Si comme moi vous Si seulement on pouvait chan
ger ce modèle ! On peut et voic -
i comment. Ouvrez le fichier
<arduino>\examples\01.Basics
\Bare-
Minimum\BareMinimum.ino dans
Notepad
ou un autre éditeur, modifiez
-le et sau-
vez-le. La prochaine fois que vous
créerez
un nouveau croquis, il utilisera
ce modèle.
Vous ne pouvez pas faire ça
dans l’EDI
parc e qu’i l emp êch e l’éc rase
men t du
modèle. Un modèle personnalisé
est un
très bon moyen d’ajouter auto
matique-
ment des lignes de code (com
me Serial.
begin(115200);) ou un texte
de licence
que vous utilisez dans tous vos
croquis.
(160354-a)

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)

Le Phantasatron Umac 606.

Bibliothèque CAO 3D KiCad


Ces dernières décennies, la communauté du logiciel ouvert a
produit beaucoup de très bons produits, certains complètement
gratuits même pour des applications commerciales. Créés et
maintenus par des milliers d’enthousiastes, en équipes ou par
des individus qui ne se rencontrent presque jamais dans la
réalité, on ne peut qu’admirer l’énergie et l’effort déployés sans
rien attendre en retour. Linux est le premier exemple qui vient
à l’esprit, mais il y en a bien d’autres. KiCad EDA (prononcez
« Kikad »), une suite multiplateforme d’automatisation de la
conception électronique, en est un autre. Selon Wikipédia le Conception
3D d’une carte
d’extension d’E/S
Raspberry Pi. (Source :
smisioto.no-ip.org)

bution de nombreuses personnes. Dans le


cas de KiCAD, les contributions se font sous
la forme de bibliothèques de composants
et de tutoriaux, mais aussi d’extensions
fonctionnelles comme le routeur interac-
tif de type « push-and-shove » développé
par la très sérieuse équipe « Hardware
and Timing » du laboratoire international
de recherche nucléaire du CERN. Quant à
moi ma contribution personnelle se limite à
ce modeste article pour faire passer le mot.
PcbNew, éditeur de circuits imprimés de KiCad. (Source : kicad-pcb.org)
Mon attention a été attirée récemment par
un site italien maintenu par un certain Wal-
ter, de Padoue, offrant une bibliothèque de
projet a été lancé en 1992 par Jean-Pierre Charras. Ma pre-
composants très complète pour KiCad. Outre les bibliothèques,
mière expérience avec KiCad remonte à 2003. À cette époque
le site propose aussi quelques techniques pour concevoir de jolis
il était utilisable, mais inadapté à mon travail quotidien. Toute-
modèles de composants 3D, aussi jetez-y un coup d’œil avant
fois, KicCad n’a cessé d’évoluer et aujourd’hui, 25 ans après,
de concevoir les vôtres.
c’est un outil de niveau professionnel pour la conception de
http://smisioto.no-ip.org/elettronica/kicad/kicad-en.htm
schémas et circuits imprimés avec visualisation 3D.
http://kicad-pcb.org/
Le succès de ces projets communautaires repose sur la contri- (160354-b)

64 mai/juin 2017 www.elektormagazine.fr


Fais-tu confiance à ton assistante ?

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

Vous voulez participer ?


Envoyez vos commentaires, suggestions, trucs et astuces à [email protected]
(160354 – version française : Denis Lafourcade)

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

66 mai/juin 2017 www.elektormagazine.fr


avec le potentiomètre P1 dans un rapport de 1 à 10 et par on reliait la sortie de l’amplificateur vertical (axe des y) à la
bonds selon des valeurs échelonnées de la capacité de C2. Le grille-écran par une cellule RC (R5/C5).
processus se répète indéfiniment, pour autant que la tension de Avec les progrès de la déflexion horizontale déclenchée et
plaque ne devienne pas plus basse que celle de grille-écran, ce la chute des prix des tubes à vide, le phantastron a quitté la
qui annulerait le courant d’anode, dont le potentiel remonterait scène depuis si longtemps qu’on a du mal à s’en souvenir.
encore une fois, mais pas à n’importe quelle vitesse, puisqu’il Les transistors sont apparus, puis les circuits intégrés, ils ont
faut recharger C2. C’est la constante de temps C2×R3 qui en renvoyé dans l’occultation les lampes de radio, alors que les
décide. Le potentiel de la grille d’arrêt G3 doit rester négatif générateurs de balayage ont tellement facilité le déclenche-
assez longtemps pour cela. En conséquence, C1 et C2 doivent ment qu’on les a presque oubliées.
rester appariés. Si vous modifiez la valeur de C2 au moyen d’un Vous trouverez davantage d’information sur l’internet, y compris
commutateur, il faut effectuer le même changement sur C1. la version à semi-conducteurs de ce circuit [6] et la stupéfaction
À partir de 1945, cet oscillateur à relaxation a pris une grande lors de la déclassification de son degré de sécurité [7].
importance pour la construction d’oscilloscopes simples, en (160281 – version française : Robert Grignard)
raison du prix encore élevé des tubes à vide à l’époque. Une
seule penthode permettait alors d’une manière « fantastique »
de fournir tous les signaux requis pour assurer la déflexion Liens
horizontale (axe des x et du temps) sur les tubes à rayons [1] Alan Blumlein :
cathodiques. La tension en dents de scie atteignait 200 Vc.-à-c. https://en.wikipedia.org/wiki/Alan_Blumlein
sans composant additionnel pour la déflexion d’un tube catho- [2] Transistron Miller : www.r-type.org/articles/art-135.htm
dique DG7-31. Le condensateur C3 l’appliquait alors à l’une des
[3] Base de temps Miller : www.r-type.org/articles/art-136.htm
plaques de déflexion horizontale (déclenchement asymétrique
pour un tube DG7-31 à écran de 7 cm de diamètre). Avec le [4] Effet Miller : https://fr.wikipedia.org/wiki/Effet_Miller
condensateur C4, on pouvait encore envoyer l’impulsion néga- [5] Cylindre de Wehnelt :
tive de la grille-écran au cylindre de Wehnelt [5] pour masquer https://en.wikipedia.org/wiki/Wehnelt_cylinder
à l’écran (blanking) le retour du faisceau. [6] Site Radar Basic :
Un pareil oscilloscope n’offrait que peu de facilités d’utilisation. www.radartutorial.eu/17.bauteile/bt52.en.html
Le balayage horizontal était par principe relaxé, sans synchro-
[7] Sécurité (p. 380) : http://americanradiohistory.com/
nisation. Il fallait ajuster la fréquence de l’oscillateur pour sta-
Archive-Wireless-World/40s/Wireless-World-1946-11.pdf
biliser l’affichage du signal à observer. Pour la synchronisation,

Publicité

Où trouver Elektor près de chez vous ?


Si vous cherchez où acheter votre magazine Elektor,
nous vous aidons à le trouver facilement.

Rendez-vous sur le site www.elektormagazine.fr,


cliquez sur l’onglet MAGAZINE, puis sur Elektor en kiosque.

Ensuite indiquez votre code postal,


puis cliquez sur TROUVER.
Vous verrez apparaître une carte avec des repères chiffrés qui renvoient chacun à un
des points de vente énumérés. Vous connaîtrez aussitôt l’état du stock chez ces différents
revendeurs : magazine disponible ou épuisé.
Survolez la carte pour découvrir les jours et horaires d’ouverture de chaque magasin.
Il ne reste qu’à choisir le plus commode pour y acheter votre magazine.
Ce moteur indique également la date de réouverture des points de vente fermés au
moment de votre recherche.

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

68 mai/juin 2017 www.elektormagazine.fr


permet d’activer et de désactiver la sortie manuellement
en local. Pour ce faire, l’appareil 6 doit être sur « ON ».
initialisation
Indépendamment de ces deux fonctions, chaque changement
de niveau de l’entrée numérique (broche 8) provoque l’envoi
d’un message d’état via l’appareil 40. Les valeurs du capteur
d’humidité/température peuvent être lues via l’appareil 48/49. commande
paquet reçu ?
Des transmissions périodiques sont aussi possibles. d'analyse

Ce code fait appel à trois bibliothèques :


lire entrée num.
• Bibliothèque RFM69 de Felix Ruso [5]. vérifier tempo.
incrémenter comp.
• Bibliothèque SPI pour la commande du bus SPI.
• Bibliothèque DHT pour la lecture du capteur DHT11.

Le code commence par quelques paramètres de configuration


(à partir de la ligne 60) : envoyer message

#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.

Une commande adéquate du module RFM69 requiert quelques Passerelle (gateway)


paramètres supplémentaires : La passerelle remplit les fonctions suivantes :

#define FREQUENCY RF69_868MHZ • Réception et décryptage d’un message MQTT, création et


#define IS_RFM69HW // uncomment only for RFM69HW! envoi du paquet radio.
#define ACK_TIME 50 // max # of ms to wait for an ack • Réception et décryptage d’un message radio, création et
publication du message MQTT.

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.

Le croquis de la passerelle commence par un bloc de déclara-


tion très similaire à celui du nœud terminal. On y définit tous
les paramètres de la liaison sans fil. C’est ensuite le tour des
Figure 2. Ordinogramme de la passerelle.
paramètres suivants pour Ethernet :

• Ip, pour l’adresse IP de la passerelle. C’est un repli (fall-


• Réception, décryptage et réponse aux demandes sur la back) ; la passerelle utilise DHCP et reçoit donc une
passerelle elle-même, telles que temps de fonctionne- adresse dynamiquement.
ment, version, etc. • Mac, pour l’adresse MAC de la connexion Ethernet.
Remarque : celle-ci doit être unique dans un sous-réseau
La passerelle est reliée à une connexion Ethernet fixe et reçoit IP, donc attention s’il y a plusieurs Arduino dans le réseau.
ses informations de réseau par DHCP. La passerelle comporte • Mqtt_server, l’adresse du serveur Mosquitto (nous en
deux LED. La LED radio indique l’activité de la liaison sans fil. La reparlerons plus loin).
LED MQTT s’allume lorsqu’il existe une liaison avec Mosquitto.
La figure 2 montre l’ordinogramme du code de la passerelle.
Comme le programme de la passerelle occupe beaucoup de L’initialisation commence à la ligne 135. On y configure les
mémoire, la fonction de débogage est subdivisée en deux par- broches de sortie des deux LED, lance la connexion Ethernet
ties : l’une pour déboguer la liaison sans fil et l’autre pour débo- et démarre la connexion avec le courtier MQTT.
guer la connexion au courtier MQTT. Il ne peut y avoir qu’une
seule partie active, sinon le programme ne se compile pas. Le client MQTT est initialisé à la ligne 129. On y demande un
La description du programme repose sur la dernière version abonnement, défini dans la fonction mqtt_subs (ligne 382).
(2.4), disponible en [6]. L’objet de l’abonnement est home/rfm_gw/sb/# (ligne 121)
pour recevoir tous les messages Southbound. Dès qu’un mes-
Le croquis de la passerelle utilise les bibliothèques suivantes : sage MQTT arrive, la variable mqttToSend est mise à TRUE.
Dans le programme principal, on commence par voir si la LED
• RFM69 du sans fil doit être éteinte puis on augmente le temps de
• SPI fonctionnement de la passerelle.
• Ethernet À la ligne 223, on vérifie avec la variable mqttToSend, s’il
• PubSubClient [7] faut envoyer des messages sur le réseau sans fil, fonction
dont se charge sendMsg (ligne 248). Le cas échéant, l’envoi
Lors de la compilation du croquis de la passerelle, nous modi- de la transmission se répète, au maximum cinq fois, toutes
fions quelque peu des paramètres par défaut : les demi-secondes, jusqu’à ce que la réception du paquet soit
confirmée par le nœud terminal.
• Dans la passerelle, le bus SPI est utilisé par deux appa- Ensuite, à la ligne 225, on contrôle si l’on a reçu un paquet
reils. Les deux appareils utilisent « 10 » comme adresse d’un des nœuds terminaux. Si c’est le cas, on appelle la fonc-
d’appareil par défaut. Nous choisissons le code d’appa- tion processPacket (ligne 288). Un message MQTT de la pas-
reil 8 pour le module RFM et 10 pour le module Ethernet serelle se réfère toujours à Northbound. Il est constitué de
(voir configuration à la ligne 80 du code de la passerelle). nodeID et deviceID, et stocké dans la chaîne buff_topic à la

70 mai/juin 2017 www.elektormagazine.fr


ligne 303. En fonction du deviceID, on détermine quelle don-
née du paquet radio est valide (integer, float, string ou état),
et quel est le formatage requis pour le message MQTT. Pour
finir, le message MQTT se trouve dans la chaîne buff_mess.
Enfin on vérifie à la ligne 227, si la liaison MQTT est toujours
active. Si ce n’était pas le cas, on tente à la ligne 230 de la
redémarrer, toutes les deux secondes. La LED MQTT est allu-
mée (ligne 235) lors de l’établissement de la liaison.

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.

Figure 3. Architecture d‘OpenHAB (source : OpenHAB.org).


Installation
Nous utilisons un Raspberry Pi 3 avec une carte SD de 16 Go
ainsi que la version 2 d’OpenHAB. La façon la plus simple d’ins-
taller OpenHAB est d’utiliser OpenHABian. C’est une image avec
un système Linux minimal combiné à des scripts d’installation.
On pourra télédécharger cette image depuis [10]. Avec l’outil
adéquat (WinDiskImager [11] par ex.), nous écrivons cette
image sur une carte SD. Cette dernière est enfichée dans le
Raspberry Pi et après le « boot », l’installation démarre. Cela
peut durer un certain temps.
Au cours de cette installation, il y a également installation de
Samba qui permet d’accéder aux dossiers de configuration
d’OpenHAB par le réseau, ce qui facilite les changements de
configuration.

Lorsque l’installation est terminée, nous démarrons Mosquitto


avec l’outil de configuration :

Figure 4. Configuration d‘OpenHABian.


pi@openHABianPi: sudo openhabian-config

... et voyons apparaître, si tout se passe bien, la fenêtre de


la figure 4. Le choix 22 installe Mosquitto. Il faut aussi que # Define your MQTT broker connections here for use
le Raspberry Pi reçoive toujours la même adresse IP. Nous y in the MQTT Binding or MQTT
veillons en modifiant le fichier /etc/network/interfaces. Il faut # Persistence bundles. Replace <broker> with an ID
modifier address et gateway en fonction de la configuration you choose.
souhaitée, par ex. : # URL to the MQTT broker, e.g. tcp://localhost:1883
or ssl://localhost:8883
auto eth0
mosquitto.url=tcp://localhost:1883
iface eth0 inet static
address 192.168.2.7 C’est un renvoi vers l’hôte local (localhost) pour le serveur
netmask 255.255.255.0 Mosquitto. Veillez à ce qu’ici mosquitto soit le nom (ID) du
courtier. Dans la configuration d’objet (item) (cf. le texte plus
gateway 192.168.2.254
loin), nous renvoyons à cet ID(entifiant) pour établir la commu-
Un redémarrage active le nouveau paramétrage. nication. Le port 1883 est utilisé par défaut pour le trafic MQTT.
OpenHAB utilise trois fichiers de configuration pour décrire
Configuration un système :
Pour qu’OpenHAB fonctionne, il faut configurer correctement
la liaison MQTT. Le fichier à modifier se trouve sur le RPi dans • Items dans le dossier /etc/openhab2/items, qui contient
/etc/openhab2/services/mqtt.cfg. L’URL du courtier (broker) les définitions des paramètres utilisés et leur lien vers les
est le seul paramètre à modifier comme suit : dossiers item.

www.elektormagazine.fr mai/juin 71
Text item=TEMP2
Text item=HUM2
Text item=RSSI2 }

La première ligne donne le nom de cette configuration (home),


pour que lors de l’accès à OpenHAB par un navigateur ou une
appli, il y ait chargement de la cartographie (sitemap) correcte.
Ensuite on définit cadre pour superviser la sortie du nœud 2 et
un autre pour l’affichage des température, humidité et intensité
de champ. Enfin, nous créons un fichier home.rules dans /etc/
openhab2/rules comportant les lignes suivantes :

//
// refresh rules
//

rule “refresh RSSI2” // periodically refresh


value for signal strength
when
Time cron “0 0/1 * * * ?”
then
sendCommand(getRSSI2, “READ”)
end

Grâce à la commande cron, on envoie, une fois par minute, le


message MQTT « READ » vers l’appareil 2 sur le nœud 2 aux
fins d’obtenir la force de champ.
• Sitemap dans le dossier /etc/openhab2/sitemaps, qui
décrit la mise en page de l’interface utilisateur. Il est temps de procéder aux premiers essais. Ouvrez un navi-
• Rules dans le dossier /etc/openhab2/rules, qui indique les gateur et allez à :
actions à effectuer (scripting).
http://192.168.xx.xx:8080/basicui/app?sitemap=home
À titre d’exemple, nous configurons un nœud DHT terminal
avec le nodeID 2. Il doit envoyer périodiquement la tempéra- Il faut bien entendu remplacer l’adresse IP par l’adresse cor-
ture, l’humidité et l’état de sortie. Dans le dossier item (/etc/ recte. La fenêtre de la figure 5 montre le résultat de cette
openhab2/items), nous créons un fichier home.items avec le instruction. Il se peut que toutes les valeurs ne soient pas
contenu du listage 1. Le Wiki OpenHAB [12] explique la struc- disponibles (on a dans ce cas-là affichage d’un « - »), mais au
ture de la configuration d’un élément (item). Ensuite, dans le bout d’un certain temps, après une première actualisation par
dossier /etc/openhab2/sitemaps, nous créons le fichier home. le nœud, cela devrait être résolu.
sitemap avec le contenu suivant :
Débogage
sitemap home label=”MyHome” Et, si tout ne se passe pas comme prévu ?

Frame label=”Controls” { MQTT fonctionne-t-il ?


Switch item=OUT2 label=”Myhome lamp” Si la connexion MQTT entre la passerelle et le courtier fonc-
tionne, la LED MQTT s’allume, ce qui indique que les messages
icon=”light” }
transitent de la passerelle vers Mosquitto. Étape suivante : ins-
taller un client de test MQTT (MQTT.fx [13] ou MQTTLens [14],
Frame label=”Sensoren” {
voir Chrome Web Store). MQTT.FX a un onglet broker status

Listage 1. Configuration d’un item OpenHAB pour un nœud terminal température/humidité de l’air.

Number RSSI2 «RSSI [%d dBm]» {mqtt=»<[mosquitto:home/rfm_gw/nb/node02/dev02:state:default]»}


String getRSSI2 «get RSSI» {mqtt=»>[mosquitto:home/rfm_gw/sb/node02/dev02:command:*:default]»}
Number TEMP2 “Temperature [%.1f °C]” {mqtt=”<[mosquitto:home/rfm_gw/nb/node02/dev48:state:default]”}
Number HUM2 “Humidity [%.1f %%]”{mqtt=”<[mosquitto:home/rfm_gw/nb/node02/dev49:state:default]”}
Switch OUT2 “attic node” <PushBtn> {mqtt=”>[mosquitto:home/rfm_gw/sb/node02/
dev16:command:ON:ON],>[mosquitto:home/rfm_gw/sb/node02/dev16:command:OFF:OFF]”}

72 mai/juin 2017 www.elektormagazine.fr


pour demander des informations sur Mosquitto. Abonnez-vous
au sujet home/rfm_gw/# et des messages devraient appa-
raître ; si tout est OK, il s’agit de messages provenant du
nœud terminal. Sinon, il est temps de compiler la passerelle
ou le nœud avec l’option DEBUG et de connecter un PC au port
sériel. Démarrez PUTTY [15], paramétrez le port COM correct et
réglez la vitesse à 115200 baud. La sortie du nœud/passerelle
indiquera l’existence (ou non) d’une connexion et les valeurs
en cours de transfert. L’envoi de commandes client MQTT au
nœud (par ex. READ à /home/rfm_gw/node02/dev03) mon- Figure 5. Fenêtre de navigateur.
trera où bloque le flux de données.

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

infos sur le projet


lampes à LED variateur
Dimmer
éclairage de terrasse
détecteur de mouvement

débutant
Æ connaisseur
expert

env. 3 h Andreas Meyer (Allemagne)

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.

74 mai/juin 2017 www.elektormagazine.fr


réglage de la luminosité
de lampes à LED de 12 V

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.

Cahier des charges du circuit


Le circuit final comporte au moins une
Figure 1. Montage de test « vite fait » de l’auteur : programmateur avec le microcontrôleur et
puce puisque le montage fait appel à
quatre MOSFET sur une plaque d’essai.
un microcontrôleur. Mais quelles sont les
autres exigences ?
Sur la base de l’expérience acquise avec
ce nouvel éclairage de la terrasse (bien
Une lumière parfaite pour les douces soirées d’été ! que peu utilisé), il est évident que la
luminosité doit être très nettement infé-
rieure à celle observée à « pleine puis-
sance ». En outre, l’éclairage doit être
rant alternatif 230 V en courant continu doit être construit spécialement pour la commandé par un commutateur pho-
adapté aux LED. variation et doit réduire le courant de tosensible (modèle du commerce) et/
Naturellement ce bloc d’alimentation sortie proportionnellement à la tension ou un interrupteur d’alimentation ordi-

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.

76 mai/juin 2017 www.elektormagazine.fr


naire, afin de l’éteindre en journée et de
l’allumer le soir si nécessaire. De plus,
l’éclairage est plus lumineux quand liste des composants
quelqu’un se déplace afin que personne
ne trébuche par exemple lors d’un ravi- - + - + - + - +
taillement en bière, vin ou eau ! Enfin,
et non des moindres, pour des raisons
de confort, les niveaux de luminosité ne
doivent pas changer de façon brusque,
1AT
mais de façon progressive.
La variation même ne pose pas de pro-
blème avec une modulation de largeur
d’impulsion (MLI) effectuée par un µC.
Si besoin, achetez un interrupteur cré-
pusculaire et montez-le en série avec
l’interrupteur. Pour la détection de mou-
vement, on peut ajouter un détecteur de
mouvement approprié (voir en grande +
surface de bricolage). Le circuit électro- -
nique n’a donc pas besoin d’un capteur K1

de lumière, mais d’une entrée 230 V pour


le détecteur de mouvement, de sorte que
l’éclairage puisse basculer entre les deux
niveaux de luminosité souhaités. L’au-
Figure 3. Le circuit imprimé de l’éclairage extérieur variable a
teur a déterminé comme convenables
une longueur d’environ 7,7 cm et prend place dans une boîte
des rapports cycliques MLI de 10% pour de dérivation suffisamment grande.
l’éclairage d’ambiance normal et de 50%
si un mouvement est détecté. Le circuit
électronique nécessite quatre sorties
MLI, ainsi qu’un circuit d’alimentation qui
peut fournir 12 V aux lampes à LED. Pour
adapter les valeurs de luminosité, comme
on ne veut pas à chaque fois changer les
constantes dans le code source, le com-
piler et flasher le µC, un port série est
ajouté afin de pouvoir régler les valeurs
de MLI de l’extérieur via un PC. Cela fait
partie des exigences essentielles pour sans refroidissement et peuvent débi- faible fréquence d’horloge interne du µC
ce montage. ter plus de courant. Le µC est alimenté de seulement 200 kHz pour une petite
par IC2, un régulateur de tension 5 V consommation d’énergie. Si la fréquence
Passons au schéma de type micropower (micropuissance, MLI vous semble trop faible, vous pouvez
Andreas a d’abord dessiné le schéma quelques mA seulement). Lorsque le choisir une fréquence d’horloge supé-
autour d’un µC qu’il avait sous la main, détecteur de mouvement se met en rieure dans le microprogramme, mais
de type PIC16F628, et il a utilisé un opto- fonction, le 230 V est appliqué sur K6 gardez à l’esprit que les constantes de
coupleur pas très sensible comme entrée et atteint l’optocoupleur au travers de temps pour la transition entre les deux
de pilotage du 230 V pour la détection de résistances série. Ces quatre résistances niveaux de luminosité sont également
mouvement. Suite aux commentaires sur de 56 kΩ servent à répartir la puissance fonction de cette fréquence d’horloge.
le site du labo d’Elektor [1] et aux tra- dissipée (env. 240 mW au total), mais
vaux complémentaires du labo, le µC de aussi à assurer une meilleure rigidité dié- Circuit imprimé,
la version finale est le PIC12F1840, bien lectrique. À la sortie d’IC3, le conden- programme et Cie
plus que suffisant, plus petit et moins sateur C5 lisse la tension, ce qui évite Le circuit imprimé conçu pour ce mon-
cher (cf. fig. 2). ainsi les pics à 100 Hz. L’UART interne tage (fig. 3) de 7,7 cm de côté prend
Le schéma est rapide à expliquer : en du µC est raccordé à K7 auquel on peut place dans une boîte de dérivation.
haut à droite se trouve la partie alimen- connecter directement un câble FTDI Comme vous pouvez le voir, il n’y a pas
tation, capable de délivrer au moins 1 A USB/série, mais aussi à K8, prévu pour un seul CMS. Grâce aux composants tra-
sous 12 V stabilisés. Un ampère suffit téléverser du code dans le µC. Enfin, S1 versants, la réalisation devrait donc être
pour les quatre lampes de 3 W. Pour est le bouton de remise à zéro. facile. En plus du circuit imprimé, Elek-
des lampes plus puissantes, il faut adap- La fréquence MLI est réglée dans le tor propose le microcontrôleur prépro-
ter le circuit d’alimentation et le fusible microprogramme à 150 Hz. Cela suffit grammé [2]. Dans le micrologiciel, les
F1. Les quatre pilotes de lampe à base presque toujours pour une variation sans deux valeurs de départ pour la MLI sont
de MOSFET de puissance fonctionnent scintillement et permet également une réglées sur 10% et 50%, mais il est pos-

www.elektormagazine.fr mai/juin 77
À propos de l’auteur

Andreas Meyer est électronicien industriel et se passionne pour la programmation


des microcontrôleurs et la conception de schémas et circuits imprimés.
Actuellement il s’occupe surtout de la programmation d’applications Windows qui
échangent des données avec des microcontrôleurs et les supervisent.

Le micrologiciel du PIC12F1840 a été niques qui entrent bien dans la bande


développé avec l’EDI mikroBasic de HF classique. En d’autres termes : si les
MikroElektronika. Comme il est très lignes vers les lampes à LED ne sont
court à cause du nombre limité de fonc- pas vraiment courtes, les interférences
tions, il peut être modifié avec la ver- HF seront rayonnées dans l’éther et le
sion de démo gratuite de l’EDI. En outre, voisinage. Les installations domestiques
Andreas a développé avec Visual Stu- habituelles avec des câbles normaux ou
Figure 4. Fenêtre de l’application sur PC avec dio une petite application pour PC sous des fils rigides ne sont pas faites pour la
laquelle on peut régler les deux niveaux de Windows (fig. 4), avec laquelle les deux HF, et ne sont pas non plus « étanches à
luminosité et les vitesses de transition entre
valeurs de MLI correspondant aux deux la HF ». Dans de tels cas, une paire torsa-
ces niveaux.
luminosités peuvent être transmises au dée est bien meilleure ; il est même pré-
µC via un câble convertisseur FTDI USB/ férable d’utiliser des câbles blindés pour
série. Attention si vous modifier le code, les lignes de plus de quelques mètres de
les nouvelles valeurs ne seront prises longueur. Bien que les paires torsadées
en compte qu’après une remise à zéro ou le câble coaxial RG-58/U n’acceptent
du µC ! Le code source complet, le pro- normalement que 2 A et ne sont peut-
gramme complet pour le PC et le fichier être pas prévus à cet effet, un tel câblage
hex du logiciel sont bien sûr disponibles en basse tension limite les rayonnements
sur le site d’Elektor [2]. La figure 5 parasites.
montre les prototypes du labo d’Elektor. Si vous utilisez l’éclairage extérieur
réglable comme Andreas en combinaison
Et encore... avec un détecteur de mouvement (avec
Il faut définitivement se retirer l’idée que deux niveaux de variation), vous adap-
ce montage a quelque chose de com- terez probablement à plusieurs reprises
mun avec l’un de ces « transformateur les deux valeurs de luminosité en fonc-
électronique 12V » en plastique blanc tion de l’installation des lampes. Il est
bon marché comme ceux proposés pour donc intéressant de ne pas installer le cir-
Figure 5. Voilà à quoi ressemble le prototype les lampes halogènes. Ce sont généra- cuit de manière définitive tant que vous
fabriqué par le labo d’Elektor.
lement des alimentations à découpage n’avez pas trouvé le parfait compromis
simples, qui offrent 12 V au secondaire, à la lumière du soir – il faut au moins
mais sortent une tension alternative de faciliter l’optimisation par un accès aisé
sible de les modifier par la suite dans le quelques dizaines de kHz. Ce type d’ali- à K7 pour la connexion d’un PC ou d’un
logiciel sur PC. Pour IC1, l’utilisation d’un mentation n’est valable que pour les ordinateur portable (ou K8, si vous vou-
support est recommandée (c’est prévu ampoules à incandescence et n’est pas lez mettre à jour le micrologiciel avec les
dans la liste de composants). Comme adaptée à des lampes à LED (préférez le valeurs modifiées). Et alors tout sera prêt
déjà mentionné, les quatre transistors circuit électronique présenté ici). En effet pour les douces soirées d’été...
MOSFET n’ont pas besoin d’être refroi- les MOSFET contiennent tous une diode (140574 – version française : Denis Langrand)
dis. Avec une résistance typique drain- parasite tête-bêche, comme vous pou-
Liens
source de 35 mΩ, si chaque exemplaire vez le voir sur le symbole de composant.
est parcouru par un courant de 1 A, la Avec une alimentation alternative, les [1] http://goo.gl/izezWr
puissance dissipée est égale à 35 mW ; diodes intégrées aux MOSFET conduisent [2] www.elektormagazine.fr/140574
1 A est suffisant pour 4×12 W, cela fait et appliquent une tension inverse élevée
déjà beaucoup de lumière avec des LED. aux bornes des LED (> 12 V), cela peut
Il faut installer autant de MOSFET que réduire la durée de vie des LED.
l’on a de canaux de sortie. Si vous ne Le deuxième point à observer concerne
connectez que deux lampes, vous pouvez l’installation elle-même : sur les quatre
supprimer deux MOSFET y compris les bornes K2 à K5 reliées aux lampes se dans l’échoppe
résistances en série et les connecteurs trouve une tension rectangulaire, dont
ª140574-1
(par ex. T3 et T4 conjointement avec la fréquence correspond à la MLI. Bien Circuit imprimé
R3 et R4, ainsi que K4 et K5). Il va sans que 150 Hz ne semble pas énorme, la
ª140574-41
dire que l’on doit adapter F1 et le bloc tension rectangulaire a tout de même Contrôleur préprogrammé
d’alimentation si la puissance totale est des flancs relativement raides et cela
supérieure à 12 W. engendre une forte proportion d’harmo-

78 mai/juin 2017 www.elektormagazine.fr


PROJET DE LECTEUR

simulateur de présence
la crainte des monte-en-l’air

Theo de Wijs (Pays-Bas)

Les membres de la guilde des


cambrioleurs confondent souvent
le « mien » et le « tien », peuvent
difficilement se targuer d’un
soutien inconditionnel du public,
arrivent toujours à l’improviste
et ne craignent réellement
qu’une chose : la présence des
« locataires » légitimes…

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

220n 100u 10n


50k 25V

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

Figure 1. Le schéma se subdivise en trois parties : alimentation, capteur, commande.

sa résistance est faible et la sateur IC1 (l’incontournable


tension au nœud avec P1 éle- NE555), se trouve alimentée.
vée. Le transistor T1 est alors Ce temporisateur remplit un
passant et sa tension de col- rôle important. En effet, si
lecteur faible. Par conséquent, à l’instant même où le volet
le transistor T2 est bloqué et roulant se met à descendre,
aucun courant ne circule pas à une lampe (ou tout autre dis-
travers la bobine de RE1.A, le positif) est activée, cela paraî-
relais reste donc décollé et le trait louche. Des personnes
circuit au repos. Par le contact « malintentionnées » pour-
NC (Normally Closed = fermé raient avoir l’idée que les deux
au repos) du relais bipolaire événements se déroulent vrai-
RE1, la tension du secteur est ment de façon très (trop) syn-
relayée au contact UP de JP1, chrone. Une grande partie de
contact auquel est connectée l’efficacité du simulateur par-
la connexion « remontée » du Figure 2. Le prototype de l‘auteur dans un « boîtier » fortement tirait en fumée.
moteur de volet roulant (celle « améliorable ». À l’instant où la tension d’ali-
qui en assure la montée et le mentation est appliquée au
maintien dans cette position). temporisateur IC1, sa sor-
Dans cet état, la tension d’alimentation au contact DOWN de JP1, la connexion tie (broche 3) est haute. Le transistor
n’est pas (via RE1.C) transmise au reste éponyme du moteur de volet roulant PNP T3 est bloqué alors, de sorte que le
du circuit centré sur IC1 et IC2. est maintenant alimentée et le volet second temporisateur (IC2) n’est pas ali-
Lorsque, dans la soirée, le niveau de descend. menté. Après écoulement de la durée de
lumière baisse, la résistance de la pho- basculement de IC1 (réglable à l’aide du
torésistance augmente. La tension sur Temporisateurs potentiomètre P2), de quelque 30 à 50 s,
la jonction de LDR1 et P1 diminue, et à Via le contact NO (Normally Open = la broche de sortie 3 passe au niveau bas
un moment donné cette tension devient ouvert au repos) de RE1.C, la seconde et T3 commute la tension d’alimentation
trop faible pour maintenir T1 en conduc- partie du circuit, à savoir le tempori- vers le second temporisateur (IC2).
tion (P1 permet de régler En fait, IC2 (un 4060), n’est
l’instant précis où cela se pas un « vrai » temporisateur,
produit). Lorsque T1 est blo- L’auteur mais un compteur numérique
qué, son collecteur est haut Theo de Wijs (73 ans) est un cadre d’ONG à la retraite. Le
à oscillateur intégré doté d’un
et T2 devient passant. Il cir- cours d’électronique dont il a bénéficié date de l’époque des
grand nombre de sorties ame-
cule alors un courant à tra- tubes électroniques et des premiers transistors. Jusqu’en 1976,
nées vers l’extérieur. Dès que
vers la bobine de RE1.A, le il a été actif dans l’électronique (entre autres chez Philips) ;
la tension d’alimentation est
relais colle, activant ainsi le ensuite il a été appelé à d’autres tâches. L’électronique a tou-
commutée par T3, l’entrée
circuit. Via RE1.B, la tension jours été son violon d’Ingres.
de réinitialisation du CI (bro-
du secteur arrive maintenant che 12) reçoit une impulsion

80 mai/juin 2017 www.elektormagazine.fr


Simulateur de TV

Dans cet article, on parle


à quelques reprises de
simulateur de TV
(télévision). Il s’agit
là d’un circuit simple
comportant quelques
LED de couleur et
un (pseudo) générateur
aléatoire, qui permet d’imiter le
« scintillement » d’une TV couleur. Ces
appareils sont en vente pour moins de 10 €.

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

Moteurs tubulaires et le nombre de tours par minute. Un moteur tubulaire


6/17 a ainsi un couple de 6 Nm et une vitesse
Un moteur tubulaire est un moteur électrique allongé, monté
de rotation de 17 tours par minute.
dans un logement en forme de tube. Ce type de moteur est
(Source : Wikipedia)
beaucoup utilisé dans les stores pare-soleil et les volets roulants.
On les monte dans un arbre creux du volet roulant ou du store
pare-soleil. Le moteur tubulaire est couplé à l’arbre par l’inter-
médiaire d’un adaptateur et d’un dispositif d’entraînement.
Dans la description du moteur, les fabricants uti-
lisent deux nombres : le couple en Nm

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.

Tam Hanna (Slovaquie)

Si l’on veut gérer des périphériques avec Android Things, on


a pour l’instant le choix entre SPI et I2C. Dans la suite, nous
allons utiliser un afficheur OLED piloté par SPI, largement
répandu et disponible chez AliExpress pour quelques dollars
(figure 1).

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 :

82 mai/juin 2017 www.elektormagazine.fr


@Override
protected void onCreate(Bundle savedInstanceState) { Raspberry Pi 3

. . .
J8

PeripheralManagerService manager = new 1 2 3V3

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

Le programme affiche dans la console de débogage une liste


D0 ... SPI_CLK
de tous les bus disponibles. Au moment de la publication, le D1 ... SPI_MOSI

RPi 3 de l’auteur fournit deux références : 38 GPIO16

39 40 GND
I/MainActivity: List of available devices: [SPI0.0,
SPI0.1]

Ici, il faut éviter un petit piège tendu par Gradle ou Android


Studio : si vous voulez recueillir les données au niveau d’un
point d’arrêt, il faut prendre garde de démarrer le programme
Figure 2. Il suffit de quelques fils pour raccorder le RPi à l’afficheur.
en cliquant sur l’icône de débogage. Si vous cliquez sur la flèche
du démarrage normal, le débogueur n’est pas lié au programme.

Dans un premier projet de démonstration (dont on peut


comme d’habitude télécharger le code depuis le site web Pour être parfaitement complet du point de vue didactique,
d’Elektor [3]), nous devons commencer par initialiser le bus notez qu’il faut détruire l’objet SPIdevice en fin d’activité –
SPI. Pour cela, faisons appel à une nouvelle méthode appelée c’est le rôle de la méthode onDestroy (listage 3).
configureAndFindDevice. En premier lieu, munissons la classe
d’activité principale MainActivity d’un objet GPIO global qui
contrôle la ligne de réinitialisation de l’afficheur. En complé-
ment, ajoutons un objet SpiDevice qui encapsule la commu- Listage 1. Initialisation de l’interface SPI
nication entre le RPi et l’afficheur.
void configureAndFindDevice(){

public class MainActivity extends Activity {


PeripheralManagerService manager = new
PeripheralManagerService();
SpiDevice myDevice;

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();

Le code d’InitDisplay est présenté dans le listage 4.


try {

Pour commencer, on effectue un appel supplémentaire à


PeripheralManagerService manager = new
Thread.sleep : cela garantit un temps de démarrage suffi-
PeripheralManagerService();
sant au contrôleur lorsqu’il se réveille après la réinitialisation.
myPinDataCommand = manager.
On envoie ensuite trois commandes qui démarrent la pompe
openGpio("BCM16");
de charge et mettent l’afficheur en marche. Avant l’envoi de
myPinDataCommand.setDirection(Gpio.
la commande sendData, qui gère l’envoi de données à afficher,
DIRECTION_OUT_INITIALLY_LOW);
on s’assure que le tampon d’affichage contient des données
plus ou moins aléatoires.
}catch(Exception x){}

La déclaration des constantes des commandes prend une forme


initDisplay();
particulière, dont la plus notable est que chaque constante
nécessite une conversion de format (cast) explicite vers un
}
octet, car, en son absence, le compilateur Java créerait une
arborescence :

private byte[] CMD_DISPLAY_ON = { (byte)0xAF };


Si ces opérations de nettoyage font défaut, il peut se produire
au débogage des exceptions du genre « android.os.Service​ Ensuite, nous pouvons utiliser les deux méthodes d’envoi des
SpecificException: BCM18 is already in use ». données vers le contrôleur de l’afficheur. Remarquons que pour
Notons encore que des classes d’activité du système d’exploita- la réception des données aussi bien que pour la collecte des
tion Android peuvent être supprimées en cours de fonctionne- commandes, le SD1306 se comporte comme un périphérique
ment. Il s’agit là d’une décision de conception des développeurs SPI. C’est le niveau de tension présent sur l’entrée numérique
qui provoque des troubles en bien des lieux de l’univers Android. qui détermine le mode. Si le niveau est haut, les données vont

Listage 3. À la fin du programme, on fait le ménage. Listage 4. Affichage de lignes sur l’afficheur.

@Override void initDisplay()

protected void onDestroy() { {

super.onDestroy(); try {

Log.d(TAG, "onDestroy"); Thread.sleep(100);


SendCommand(CMD_CHARGEPUMP_ON);
try { SendCommand(CMD_MEMADDRMODE);
if(myDevice!=null) myDevice.close(); SendCommand(CMD_DISPLAY_ON);
if(myPinDataCommand!=null) myPinDataCommand.
close(); for(int i=0;i<myDisplayBuffer.length;i++){
if(myPinReset!=null) myPinReset.close(); myDisplayBuffer[i]=22;
myDevice = null; }

} catch (IOException e) { sendData();


}
Log.w(TAG, "Unable to close SPI device", e);
catch(Exception x){Log.e("Elektor",x.
} getMessage());}

} }

84 mai/juin 2017 www.elektormagazine.fr


dans le tampon d’affichage ; s’il est bas, elles sont stockées
dans la mémoire de commande. Cela conduit au code suivant :

void SendCommand(byte[] _what){

try {
myPinDataCommand.setValue(false);
myDevice.write(_what, _what.length);
}

catch (Exception x){


Log.e("Elektor",x.getMessage());
}
}

La version pour l’envoi de données d’affichage ne présente


qu’un minimum de différences avec SendCommand. Au lieu de
prendre comme données le code de commande, la fonction Figure 3. Le motif de test montre que tout fonctionne bien. Un afficheur
accède à un tableau défini comme membre (myDisplayBuffer). OLED noir donne, par contre, l’impression d’être « mort ».

void sendData(){

try { Il faut compléter le fichier build.gradle (Module:app) de l’appli


myPinDataCommand.setValue(true); de la manière suivante :
myDevice.write(myDisplayBuffer,
myDisplayBuffer.length); dependencies {
} provided 'com.google.android.
things:androidthings:0.1-devpreview'
catch (Exception x){ compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
Log.e("Elektor",x.getMessage()); }
}
} Après l’enregistrement de ces deux fichiers, Android Stu-
} dio affiche un bandeau jaune dans lequel il faut cliquer sur
Sync Now, ce qui demande à l’EDI d’actualiser l’ensemble du
Et voilà une première version du programme déjà opération- projet. L’une des plus grandes forces de Gradle est sa capacité
nelle. Exécutez-la ; si tout est correct, une série de lignes hori- de télécharger sur l’internet les bibliothèques et autres infor-
zontales apparaissent sur l’écran (figure 3). mations nécessaires au cours de la compilation.

Ensuite, faites un clic droit sur le dossier du projet et choi-


... et communiquons sissez l’option New Ž File Ž Android Resource File. Dans la
Pour n’afficher qu’un motif constitué de lignes, nul besoin d’un fenêtre de dialogue qui s’affiche, saisissez les paramètres tels
système d’exploitation en temps réel dédié ; une mémoire que représentés sur la figure 4 pour créer un fichier de mise
d’affichage de 1 Ko sur un AVR fera parfaitement l’affaire. La en page (layout).
puissance du RPi n’entrera en jeu que lorsque le système d’ex-
ploitation aura à afficher des informations complexes.

Une application serait de pouvoir afficher sur l’écran des élé-


ments de commande GUI (comme un diagramme) sous la
forme d’une matrice de points (bitmap). Pour cela, nous allons
incorporer MPAndroidChart à notre programme – il s’agit
d’une bibliothèque de diagrammes très puissante qui joue éga-
lement un rôle dans le développement d’applications Android
classiques. Commencez par ouvrir le fichier build.gradle du
projet et complétez-le avec le code suivant :

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);

@Override postDelayed accepte un objet qui doit comporter une méthode


protected void onCreate(Bundle savedInstanceState) { run() qui contient elle-même le code à exécuter après écou-
super.onCreate(savedInstanceState); lement du délai. C’est assez compliqué – commençons par la
setContentView(R.layout.mainlayout); conversion du widget en une instance de la classe Bitmap :

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);

for (int i = 0; i < 20; i++) { Drawable bgDrawable =mChart.getBackground();


float val = (float) (Math.random() * 25) + 3; if (bgDrawable!=null)
values.add(new Entry(i, val)); bgDrawable.draw(canvas);
} else
canvas.drawColor(Color.WHITE);
Nous en arrivons au paramétrage : la bibliothèque MPAn-
droidChart est conçue pour le traitement de vastes ensembles mChart.draw(canvas)
de données, ce qui rend son initialisation relativement complexe,
dont voici seulement quelques extraits : À ce moment, returnedBitmap contient une version couleur
du diagramme produit par MPAndroidChart. Nous devons donc
LineChart mChart = (LineChart) findViewById(R. convertir cette matrice de points (bitmap) en un tampon de
id.chart1); trame (frame buffer). Et voici notre première cause d’irrita-
mChart.getDescription().setEnabled(false); tion : la structure de la mémoire de l’écran ; elle est divisée
LineDataSet s1=new LineDataSet(values,""); en un groupe de pages !

. . . La solution la plus simple à ce genre de problème est de trai-


ter les octets de mémoire l’un après l’autre dans des boucles
ArrayList<ILineDataSet> dataSets = new for. Dans notre cas, il nous faut trois boucles :
ArrayList<ILineDataSet>(); byte counter=0;

86 mai/juin 2017 www.elektormagazine.fr


Figure 5. Grâce à Android, on peut afficher sans gros efforts un sympathique diagramme linéaire sur une grille.

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);
{

L’étape suivante consiste à rassembler huit pixels dans un sendData();


octet. Pour cela, nous commençons par acquérir l’information
de couleur de chaque pixel pour ensuite la convertir en blanc }
ou noir par une évaluation simple de ses composantes :
Le diagramme de la figure 5 montre le fruit de nos efforts.
int myVal=returnedBitmap.getPixel(x,y);
if(Color.red(myVal)!=255 || Color.
green(myVal)!=255 || Color.blue(myVal)!=255) Conclusion
{ //Set Nous voici arrivés à la fin de nos expérimentations avec Android
store=(byte)(store | ((byte)(1 << Things. Ce n’est certes pas une plateforme pour tout le monde,
(counter)))); mais si vous arrivez à en tirer quelque chose, vous aurez à
} votre service des fonctions nombreuses et puissantes. Il y a
beaucoup d’applications qui ne sont pas ou seulement très
Le remplissage d’un octet se fait donc en huit pas. Les infor- difficilement à la portée des contrôleurs à 8 bits, alors mettre
mations sont rangées une à une dans store au moyen d’ins- à la tâche un puissant processeur à 32 bits permet de gagner
tructions de manipulation de bits ; dès qu’un octet est plein, beaucoup de temps et d’effort. Nous vous souhaitons beau-
il est copié dans myDisplayBuffer. coup de succès dans ce domaine !
(160369 – version française : Helmut Müller)
counter++;
if(counter==8) {
myDisplayBuffer[counter2]=store;
store=0;
counter=0;
//Byte raus
Liens
counter2++;
} [1] www.elektormagazine.fr/160361
} [2] www.elektormagazine.fr/150520
} [3] www.elektormagazine.fr/160369

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.

le déwatteur, ampli en classe D (1)


Elektor 12/2016, p. 36 (150115)
Dans l’article, page 38, on peut lire en bas à droite : « Le gain est actuellement de un, mais vous pouvez le modifier en
changeant R3 : A =R4/R3 + 1 ». Il faut lire : « Le gain est égal à 1 lorsque la résistance R3 n’est pas montée. On peut
l’augmenter en câblant R3 (A = R4/R3 + 1) ».

le déwatteur, ampli en classe D (2)


Elektor 12/2016, p. 36 (150115)
L’article ne précise pas comment régler P1. Procédez de la manière suivante : une fois toutes les connexions établies,
mettez l’amplificateur sous tension et vérifiez la fréquence MLI des deux canaux, qui devrait être égale à 400 kHz. Mesu-
rez la fréquence sur L1 (côté connexion à T1) en l’absence de signal d’entrée et réglez P1 pour ajuster la fréquence.
Si vous ne disposez pas d’un instrument approprié pour mesurer la fréquence, positionnez P1 au milieu de sa course
sur les deux canaux. Vous pouvez retrouver ces explications sur le site du labo d’Elektor (www.elektormagazine.com/
labs/200w-class-d-audio-power-amplifier-150511).

hors-circuits - ampli de classe A, B, C, D, E, F, G, H : quésaco ?


Elektor 11/2015, p. 62 (150527)
Il est indiqué dans l’article que le rendement théorique d’un amplificateur en classe B peut aller jusqu’à 100%.
Cela ne cadre pas avec mes connaissances ni avec la littérature, dans laquelle on trouve un rendement
maximal de ∏/4 = 78,53...% pour des signaux sinusoïdaux. L’article dit aussi qu’il est possible d’atteindre un
rendement plus élevé avec des MOSFET qu’avec des transistors bipolaires. Je ne vois pas pour quelle raison, les
deux transistors travaillant en régime non saturé.
Plus loin, il est dit qu’un amplificateur en classe C peut atteindre un rendement maximal de 70%. Je suis là d’un autre
avis. Théoriquement, la classe C permet de s’approcher aussi près que l’on veut de 100% en réduisant l’angle de conduc-
tion (qui donne la fraction de la période pendant laquelle le transistor est passant). Dans la pratique, on peut atteindre
jusqu’à 90%, mais il faut alors travailler avec des courants élevés. On ne peut atteindre des rendements convenables
qu’en remplaçant la résistance de collecteur R1 (figure 3) par une inductance.
Encore plus loin, il est dit que pour un étage de classe E, il faut des transistors à commutation très rapide comme pour

88 mai/juin 2017 www.elektormagazine.fr


la classe D. Cela non plus ne correspond pas à mes connais-
sances. On peut utiliser des transistors dont les temps de
commutation sont de l’ordre de la moitié de la période de
fonctionnement. Ou inversement : les transistors rapides
permettent d’amplifier des signaux à très haute fréquence.
Il est dommage qu’un avantage décisif de la classe E ne
soit pas mentionné, à savoir que la capacité de sortie du
commutateur n’a pas d’effet négatif.
Martin Oßmann

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

SDR d’Elektor réinventé (1) + (2)


Elektor 07-08/2016, p. 50 (150515),Elektor 09/2016, p. 46 (160048)
Bonjour Jan,
J’ai le plaisir de vous informer que mon logiciel G8JCFSDR (Build
274) supporte désormais complètement le shield SDR d’Elektor.
J’étais déjà en contact avec Burkhard (Kainka, NDLR), qui a déjà
testé la version « rechargée » de G8JCFSDR.
La version de G8JCFSDR qui supporte le shield SDR d’Elektor offre une
précision de réglage de 1 Hz, sans problème de transitoire, un dis-
positif de calibrage facile à utiliser (pour garantir que votre shield
SDR est toujours calé sur la bonne fréquence), ainsi qu’une
fonction intégrée de chargement du micrologiciel Arduino,
ce qui simplifie la mise à niveau. Le logiciel G8JCFSDR est
disponible au téléchargement sous www.g8jcfsdr.dyndns.org.
Je serais très heureux si vous pouviez informer vos lecteurs
de ces nouvelles fonctions.
Peter, GM8JCF
[email protected]

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

chien de garde pour ordinateur


Elektor 06/2016, p. 51 (140344)
Un nouveau logiciel est disponible au téléchargement sur la page du projet (www.elektormagazine.fr/140344).

(160350 – version française : Helmut Müller)

www.elektormagazine.fr mai/juin 89
RÉTRONIQUE

PET fête ses 40 ans,


bon anniversaire !
finies les soudures,
vive le BASIC pour
tous
Nous sommes en janvier 1977, au « CES »,
le salon professionnel dédié à l’électronique
grand public. Chicago est figée par le
froid, mais pas le public qui découvre
avec admiration le premier ordinateur
personnel complet, prêt à l’emploi :
le Personal Electronic Transactor
de Commodore ou pour les
intimes « PET 2001 ».

Karl-Ludwig Butte
(Allemagne)

Photo :
Wikimedia Commons

Deux ans aupara-


vant, le magazine
Popular Electronics fait
sensation en publiant un article sur un son-
microordinateur, l’Altair 8800, fourni nelles prolifèrent, des centaines
en kit. À l’époque, les passionnés du de livres sont publiés sur « Comment le Homebrew
microordinateur bouillonnent déjà d’en- fabriquer son propre ordinateur » Computer Club [1] poussent comme
thousiasme (fig. 1). Les créations per- (fig. 2), les clubs informatiques comme des champignons. Cependant, le temps
est venu de franchir l’étape suivante
et de présenter des ordinateurs com-
plets, comportant processeur, alimen-
Rétronique est une rubrique mensuelle sur les pages glorieuses et
tation électrique, mémoire vive, clavier
jaunies de l’électronique, avec occasionnellement des montages de
et mémoire de masse, le tout logé dans
légende décrits dans Elektor. Si vous avez des suggestions de sujets
www.elektor.tv un seul et même boîtier ! PET offre tout
à traiter, merci de les télégraphier à [email protected]
cela et le clou est que l’interpréteur de

90 mai/juin 2017 www.elektormagazine.fr


BASIC Commodore annonce sa prise de
service quelques secondes après la mise
sous tension pour exécuter immédiate-
ment les instructions BASIC saisies par
l’utilisateur. Plus besoin de commuta-
teurs binaires comme pour l’Altair 8800
et plus besoin non plus de taper des
valeurs hexadécimales comme c’était le
cas avec KIM-1 (le tout premier Commo-
dore lancé sur ce marché prometteur).
Au contraire, des mots (BASIC) clairs,
compréhensibles tels que GOTO, PRINT
ou IF …THEN suffisent pour programmer
le PET 2001 et assurer qu’il exécute les
choses les plus remarquables. Une véri-
table révolution, dont nous avons du mal
à saisir l’ampleur aujourd’hui, pour nous
qui disposons désormais de processeurs
à huit cœurs, de gigaoctets de mémoire,
de téraoctets de disque dur et d’inter- Figure 1. Couverture du numéro de Figure 2. Un des nombreux ouvrages
faces utilisateurs graphiques. janvier 1975 de « Popular Electronics » « Comment construire soi-même ».
(Ziff Davis Publishing Company).
Le matériel
Qu’est-ce qu’on obtient à l’époque pour
595 $ US (soit 2 500 € aujourd’hui) Commodore utilise la deuxième interface, un grand, pour que PET puisse se vouer
[2] ? Le cœur du PET est un processeur un bus IEEE488, pour connecter des péri- à d’autres tâches.
6502 doté de 4 Ko de mémoire vive. phériques tels qu’imprimante ou lecteur
Pour 8 Ko de mémoire vive, il faut rajou- de disquettes (fig. 3). Ce système de L’ensemble du matériel est logé dans un
ter 200 $ US [3]. L’écran monochrome bus est remarquable à bien des égards. boîtier métallique qui s’ouvre comme un
de neuf pouces affiche des caractères En effet, il assure le pilotage simultané capot moteur. Il dispose même d’une
blancs ou verts sur fond noir. Le clavier des périphériques reliés en série à PET béquille (fig. 4). Cette construction
issu de la fabrication de calculatrices de (principe de la guirlande, Daisy Chain). solide a certainement contribué au fait
bureau de la maison Commodore com- Commodore n’a pas besoin de décider que beaucoup de PET ont résisté au
prend 73 touches. L’avantage est que le dès le départ du nombre et du type de temps. On les retrouve sur les sites de
clavier prend moins de place que celui périphériques qui seront utilisés plus vente aux enchères en ligne pour un prix
d’une machine à écrire et qu’il est pos- tard. Le bus permet de raccorder jusqu’à
sible d’ajouter à gauche du clavier un quinze appareils, ce qui est largement
magnétophone capable de lire des cas- suffisant. Hormis ce bus IEEE-488, pas
settes compactes et d’enregistrer don- besoin de monter d’autre matériel sur la
nées et programmes. Le port dit data- carte mère de PET. Certes, cela implique
sette, quant à lui, est destiné à connec- que les périphériques doivent être dotés
ter une datasette externe. Doté de deux de leur propre intelligence sous la forme
autres interfaces, PET a l’avenir devant d’un système à microcontrôleur complet,
lui. La première interface sert de port uti- mais cela présente l’avantage aux fabri-
lisateur pour accéder, entre autres, aux cants de pouvoir se faire payer en consé-
Figure 3. Système informatique complet :
connexions d’E/S numériques du pro- quence. Commodore va ainsi gagner du PET 2001, imprimante et lecteur de disquettes.
cesseur 6502. L’utilisateur peut ainsi y temps et donc de l’argent en lançant PET
connecter son propre matériel. rapidement sur le marché. À l’époque,
Apple fait exactement l’inverse. Sept
La plupart des ordinateurs personnels emplacements libres disposés sur la carte
de cette époque tels que l’Apple II, le mère sont disponibles pour les exten-
TRS-80 ou le C64 sont dotés d’exten- sions. Ceci permet p. ex. de connecter
sions similaires. Cette option disparaît un contrôleur de disquettes qui constitue
néanmoins des générations de PC qui uniquement l’interface électrique avec
suivent pour réapparaître en 2012 sur l’électronique du lecteur. Le processeur
le Raspberry Pi sous le nom de « port de l’Apple II limite à deux le nombre
GPIO ». Le port utilisateur fait non seu- de lecteurs qu’il peut commander. PET,
lement le bonheur des bricoleurs, mais quant à lui, n’a rien d’autre à faire que
aussi des jeunes pousses de l’époque qui d’envoyer une commande au lecteur du
peuvent ainsi développer des dispositifs disque magnétique amovible qui copie Figure 4. Il suffit de desserrer deux vis pour
auxiliaires pour ordinateurs personnels. la disquette 1 sur la disquette 2 comme soulever le capot.

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.

92 mai/juin 2017 www.elektormagazine.fr


une série de symboles graphiques avec
Réactions tardives compilées par Jan Buiting
lignes, blocs ou caractères qui s’adaptent
à la trame des lettres et des chiffres affi- Les articles publiés dans notre rubrique « rétronique » ont tou-
chables à l’écran. Le « graphique bloc », jours suscité de nombreuses réactions de la part de nos lecteurs
comme il s’appelle, permet d’afficher depuis 2004. Comme vous pouvez le constater, celles-ci ne se
des graphiques en barres, des masques
DLY’D TRIG limitent pas aux courriers. Ci-après, vous trouverez quelques
d’écran, mais aussi de jouer. exemples de dons et autres contributions qui ont suivi le tout
premier article de cette série. Bien entendu, les personnes nom-
Les applications mathématiques ne mées ont donné leur accord pour cette publication.
manquent pas, du simple calcul au pro-
gramme qui résout des équations com-
pliquées en passant par le plan de rem- Objet 04 : horloge MOS 5314 Elektor
boursement. BASIC dispose de fonctions L’article sur l’horloge MOS a déclenché toute une
mathématiques telles que LOG (loga- série de réactions. Alan Woodman s’est mis à
construire de nombreuses horloges numériques.
rithme) et SQR (racine carrée).
Aujourd’hui, nous avons le plaisir de présenter son
horloge sur oscilloscope. Reginald Neale a monté
L’apparition des imprimantes et des lec-
la grosse puce MM5316 sur une platine d’expéri-
teurs de disquettes ouvre la voie aux mentation. Bernd Rinke a numérisé l’article original
applications commerciales comme le datant de 1974. Il a refondu les circuits imprimés.
traitement des commandes, la factura- Le tout peut être téléchargé gratuitement sur www.elektormagazine.fr/160102. Phi-
tion et la gestion des stocks. Les petites lippe Decock, quant à lui, nous a envoyé une série d’anecdotes amusantes, en nous
entreprises se risquent alors à faire le signalant également qu’il y avait un lien qui manquait !
pas, parce qu’un ordinateur Commodore État : sourires et gratitude.
doté d’une imprimante et d’un lecteur de Déclencheur 04 : horloge MOS 5314 (1974), Elektor 11/2016.
disquettes coûte beaucoup moins cher
que le modèle de base proposé par les Objet 05 : radio Roberts type 49041
géants de l’informatique de l’époque. La Le monde est petit ! Mon médecin traitant et mon
killer app du moment s’appelle VisiCalc, dentiste lisent eux aussi Elektor. Ils ne manquent
aucune occasion pour apporter leur grain de sel
un tableur lancé sur le marché en 1979.
aux formules physiques et mathématiques présen-
Écrit au départ pour Apple II, ce logiciel
tées dans le magazine, mais aussi leur humour.
est porté peu de temps après sur PET.
Avec l’ordonnance, mon médecin, Gaspard Knops,
Ainsi PET doit son entrée dans le monde me remet une « radio Roberts » des années 50,
de la bureautique à l’apparition des pre- dotée de tubes sur batterie. « J’ai bien digéré
miers traitements de texte. Colette et Ronald » me dit-il en souriant, faisant
ainsi référence à mon article sur la radio portative
De nombreux programmeurs amateurs Philips et à celui de Ronald Dekkers sur la radio
font leurs premiers pas dans ce domaine Pye P87BQ. Comme on voit, les lecteurs d’Elektor
en connectant des périphériques au port continuent de consommer les tubes sur batterie. C’est peut-être parce qu’ils utilisent
utilisateur. On trouve même des pro- une tension anodique « hypocalorique ». Pour moi, les types DF et DL sont des pièces
qui n’ont rien perdu de leur attrait.
grammes pour transformer le PET en
État : en attente d’une bonne rénovation.
boîte à musique. Le PET permet égale-
Déclencheur 05 : radio portable Pye P87BQ, Elektor 5/2015.
ment de résoudre des petites tâches de
mesure et de pilotage.
Objet 06 : pH-mètre d’Electrofact
Beaucoup d’électrotechniciens ont touché à l’élec-
Conclusion
tronique médicale. Nombreux sont les stagiaires
L’ordinateur PET a non seulement écrit un
Elektor qui ont travaillé par la suite pour le fabri-
chapitre important de l’histoire de l’in- cant Pie Medical, installé près de notre laboratoire.
formatique, mais aussi de celle de l’éco- Qui dit médicine dit aussi chimie et physique. Vu sa
nomie. Il a certainement permis d’intro- taille, je suppose que ce pH-mètre issu de l’ère des
duire l’informatique dans l’entreprise et tubes provient de l’environnement sécurisé d’un
d’élargir le marché. Les programmeurs laboratoire d’analyse. Electrofact est une entreprise
et les conseillers en informatique ont néerlandaise qui a disparu. L’appareil de mesure
rapidement remplacé les typographes. qui m’est offert est complet, il comporte la verrerie
Peu sont ceux qui ont réalisé que le PET d’origine ainsi que quelques capteurs. La documentation a été égarée ce qui ne faci-
lite pas son utilisation. En tout cas, rien à lui reprocher du point de vue électrique.
a révolutionné l’informatique de la fin
État : nécessitera plus de recherche et de restauration.
des années 1970.
Déclencheur 06 : analyseur de pH sanguin/O2/CO2 Radiometer PHM22 / PHA928a2,
Elektor 9/2013.
(160353 – version française : Pascal Duchesnes)
Prêt à parler de vos trésors dans un prochain article Rétronique ?
Courriel : [email protected] ; objet : Trigger [nn].

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.

Q Y a-t-il une grande différence entre la domotique et


l’immotique ? Q Les protocoles (logiciels) sont-ils semblables à ceux
utilisés en domotique ?

R Il y a deux différences majeures : une maison intelligente


contient moins de dispositifs techniques qu’un bâtiment
intelligent ; en outre, dans le bâtiment intelligent, l’efficacité
R D’abord, « intelligent » suggère l’incorporation de solu-
tions informatiques, dans l’immotique et la domotique. Par
conséquent, dans les deux cas, vous aurez besoin d’une épine
est beaucoup plus importante. Toutefois, une autre différence dorsale IP (backbone). Les protocoles TCP/IP sont fréquemment
est que dans ces bâtiments, les solutions informatiques locales choisis, en raison de leur compatibilité avec l’internet. C’est
priment. La GTB (gestion technique de bâtiment, Building aussi dû aux exigences des bâtiments intelligents : flexibilité
Management System) est en grande partie « analogique » et et modularité. La solution la plus logique est la liaison sans fil.
pas nécessairement interactive ou contrôlable à distance. Une On a donc recours aux protocoles standardisés pour le sans-
maison intelligente est plutôt entièrement « numérique » et fil comme le Wi-Fi et le Bluetooth (LE). Aujourd’hui, la plupart
contrôlable à distance par l’internet. L’appli « Home » récem- des systèmes d’éclairage à LED par ex. emploient le Bluetooth
ment publiée (disponible sur la plupart des appareils Apple et LE. Ces systèmes sont généralement connectés à une épine
Android) permet de commander les systèmes et les appareils dorsale IP. Pour les réseaux locaux, ZigBee, EnOcean [1] et
connectés à la maison, c’est une « preuve » de cette différence. Thread [2] sont les plus populaires. KNX est un protocole bien
Ce qui se produit dans les maisons intelligentes maintenant connu, mais il n’est pas vraiment utilisé dans des applications
suivra dans les bâtiments intelligents. La domotique est une sans fil. Il y a naturellement d’autres protocoles, mais généra-
sorte de précurseur de ce qui attend les bâtiments intelligents. lement le protocole choisi est un protocole ouvert. Vous verrez
rarement des maisons et bâtiments intelligents qui utilisent un
protocole propriétaire.

Q Quels sont les avantages de l’immotique ?

R En premier lieu, l’efficacité ! Efficacité énergétique aussi


bien qu’efficacité de la gestion de l’espace. En France,
environ 50% des bureaux disponibles dans un bâtiment sont
inutilisés à cause du télétravail. Réduire de 10% la surface de
bureaux dans un immeuble de 10 000 m2 permet d’économiser
jusqu’à 1 000 000 € par an, l’utilisation des espaces de travail
doit donc devenir flexible. Deuxièmement, un environnement
de travail bien adapté, confortable, avec de l’air sain et un bon
éclairage peut améliorer la productivité des employés. Et troi-
sièmement il y a un impact sur la gestion des biens. La GTB
permet d’optimiser la commande du bâtiment.

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

94 mai/juin 2017 www.elektormagazine.fr


Q Actuellement quel est le meilleur exemple
d’immotique ?
et l’ensemble du système électrique de la voiture seront reliés
au système d’énergie de votre maison intelligente.

R Mon préféré est le bâtiment The Edge à Amsterdam [3].


Il est très efficace, en énergie et en gestion d’espace.
Au départ, le bâtiment devait compter 100 000 m2. Grâce aux Q Qu’est-ce qui est déterminant pour la recherche à
l’heure actuelle ?
solutions intelligentes de gestion de l’espace, il ne fait fina-
lement que 60 000 m2, une réduction de presque 50%, donc
une diminution significative des coûts. Autre aspect : il semble
R Bien, nous avons parlé de maisons et voitures intelli-
gentes. Le point commun et important dans les deux cas
c’est le cerveau. L’intelligence artificielle mène l’innovation,
que les bâtiments environnants ont perdu 40% de leur valeur parce que l’utilisateur exige que les voitures et maisons intel-
à cause de la conception efficace de The Edge. ligentes s’adaptent à ses besoins. C’est une grande question
Du côté maison intelligente, la société française de BTP pour toutes les parties prenantes. Tous doivent être à la pointe
Bouygues construit à présent environ 10 000 maisons entiè- en matière d’IA ou ils manqueront le train.
rement connectées par an en utilisant « Flexom » [4]. Elle peut (160259 version française : Thierry Destinobles)
le faire sans surcoûts grâce aux liaisons sans fil et au protocole
EnOcean. L’installation de systèmes sans fil est peu coûteuse.
De plus, Bouygues utilise la communication sans contact (NFC) Qui est Emmanuel François ?
pour la mise en service des systèmes : il faut seulement 20 min Emmanuel a toujours travaillé
par maison pour la configuration. dans l’immotique. En 2014,
alors âgé de 55 ans, il devient

Q Quand cette technologie parviendra-t-elle à maturité ? Président de la Smart Building


Alliance for Smart Cities (SBA),

R La clé c’est la confiance que l’utilisateur place dans la


technologie et les solutions. C’est pourquoi nous avons
travaillé sur une norme pour les bâtiments intelligents, appe-
qu’il a fondée avec Serge Le Men
de Newron System en 2012.
Cette alliance qui compte
lée Ready2Services, qui peut être intégrée dans les normes 140 membres guide toutes
comme HQE [5] et BREEAM [6]. Puisque nous travaillons dans les parties impliquées avec la
un environnement informatique en perpétuelle évolution, cette transition des bâtiments/villes
norme assure aux investisseurs que la GTB restera à jour et intelligents vers le monde numérique. La SBA a également
résistera à l’épreuve du temps. produit Ready2Services et Ready2Grid, deux prérequis
nécessaires pour les bâtiments/villes intelligents.

Q L’intégration entre les maisons intelligentes et les


voitures intelligentes, c’est pour quand ?
Il est également responsable des ventes d’EnOcean Gmbh
pour l’Europe de l’Ouest. Il a aussi travaillé dans l’univers

R Je pense que dans 15 ans il n’y aura presque plus de


voiture avec un moteur à combustion sur la route. Je
suis sûr que d’ici 2025, un pays comme la Suède décidera
de l’électrotechnique en tant que directeur général ou
responsable des ventes successivement chez Wieland
Electric France, CAPRI (groupe Cooper), Soulé (groupe ABB)
même d’interdire les moteurs de combustion. Ainsi, presque et Merlin Gerin (Schneider Electric).
tous les véhicules seront entièrement électriques. La batterie

the world’s most sustainable office building: The Edge – Amsterdam


ovgrealestate.nl/project-development/the-edge

www.elektormagazine.fr mai/juin 95
PROJET DE LECTEUR

WaterDeck
analyse de la consommation d’eau
des villes intelligentes
Waldemir Cambiucci (Brésil)

La pénurie d’eau frappe de plus en plus de régions – plusieurs villes du Brésil


et l’état de Californie par exemple. L’impact sur les usagers domestiques
et l’industrie devient critique. Même si les autorités travaillent sur des
solutions pratiques pour résoudre ce problème et apprennent aux usagers
à économiser l’eau, nous manquons toujours d’information sur notre
consommation d’eau en temps réel. Il faut une acquisition de données au
travers d’une interface web.

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.

96 mai/juin 2017 www.elektormagazine.fr


Solution pr
imée
En 2015, ce
projet a obte
de conceptio nu le troisièm
n pour micro e prix d’aute
co ntrôleurs AR ur du concou
domestique M Keil, pour rs
ou industrie la création d’
compétition l intelligent un dispositif
a attiré plus ba sé su r un processe
de 700 candi ur ARM Cort
Waldemir ré da tu res. ex-M. La
sume son ex
microcontrô périence ains
leurs ARM or i : Le concours de
ganisé en co conception po
occasion po opération av ur
ur améliorer ec Elektor ét
une carte ré m es co mpétences da ait une mag
cente comm ns l’IdO, nota nifique
pour rencon e la Freescal mment en ut
trer de nouv e FR D M-K64F. Ce ili sa nt
eaux amis et fut aussi un
communauté pa ss ionnés du m bo n m oy en
ARM. Enfin ce onde entier
gagnants de fut un honneu via la
ce concours r d’être dési
et j’attends gné comme
déjà le proc l’un des
hain concou
rs ARM Keil.

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.

(150502 – version française : Denis Lafourcade)

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.

98 mai/juin 2017 www.elektormagazine.fr


donner vie aux objets

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.

Mariline Thiebaut-Brodier (Elektor) commercialisent différentes balises autonomes qui renvoient


la position du sujet/objet connecté, mais aussi la température
et la pression atmosphérique.
Sur le terrain
Fondée en 2010 par Ludovic Le Moan et Christophe Fourtet, Technologie
cette entreprise française est installée à Labège, près de Tou- Sigfox a déployé un réseau à bas débit (100 bits/sec) qui
louse, au sein de l’IoT Valley. Elle a créé un réseau cellulaire transmet des messages courts sur de grandes distances. Le
à bas débit, sur des bandes de fréquence sans licence, dédié record de distance en production est établi à 1.024 km entre
aux communications entre machines (M2M) et à l’IdO. un objet et une antenne, mais dans la réalité on oscille entre 2
et 130 km en fonction de la topologie du terrain. Les objets
Le réseau Sigfox présent dans 29 pays (essentiellement euro- connectés consomment alors très peu d’énergie pour la trans-
péens) devrait s’étendre à une soixantaine de nouveaux pays mission radio qui est bidirectionnelle et à bande ultra-étroite
d’ici 2018 (voir [1]). Sigfox installe des antennes, mais se (UNB, ultra narrow band). L’émetteur module la porteuse du
déploie également grâce à des alliances avec des opérateurs signal émis par déplacement de phase à deux états (BPSK,
de télécommunications comme SFR (France) ou Albertis Tele- binary phase-shift keying). Le récepteur écoute une bande
com (Espagne). Les clients de ces opérateurs bénéficient de la très étroite du spectre pour détecter les messages. Ensuite les
connectivité Sigfox en plus des services existants (4G, Wi-Fi…). messages reçus et valides sont envoyés dans le nuage Sigfox
Cette société est aussi entrée dans le monde des compteurs ou à la plateforme choisie par le propriétaire de l’objet.
connectés pour le télérelevé et le suivi des consommations à Le réseau est bidirectionnel, mais uniquement sur demande
distance (eau, électricité) ou encore la surveillance des réseaux de l’objet. Il faut comprendre que dans le protocole Sigfox,
de distribution (détection de fuite d’eau, courbe de charge élec- le réseau est au service de l’objet, et pas l’inverse. L’objet
trique). Sigfox s’est allié avec des fournisseurs de services en demande donc lui-même une « mise à jour » au réseau, qui
nuage comme le cloud Microsoft Azure. Les données collectées lui répond si besoin. Le reste du temps, il est « sourd ».
par les objets Sigfox sont transmises à la plateforme Azure Cette technologie est pensée et optimisée pour l’utilisation de
pour y être valorisées. la batterie, il est prévu que certains objets déjà en production
pourront tenir jusqu’à 10 ans sur de simples piles. En effet, il
Aujourd’hui les secteurs demandeurs de connectivité sont divers est très simple de calculer la consommation de courant d’un
et variés : ville intelligente, logistique, agriculture, sécurité objet Sigfox car elle est constante, contrairement à ce qui se
(maisons, entreprises), véhicules, environnement… Le suivi à passe avec d’autres technologies. Cela facilite grandement la
distance (ou pistage GPS) d’objets, d’animaux ou de personnes mise en œuvre. Bien évidemment, la durée de l’autonomie est
est un secteur en plein essor. La société Sensolus propose le liée au nombre de messages qu’on a besoin d’envoyer par jours
système Chickenrun qui permet de calculer les temps de par- (max. 140 messages par objet et par jour). Chaque message
cours des volailles. Les Français de HidnSeek (voir encadré) contient max. 12 octets de données utiles.

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-

HidnSeek – carte compatible avec l’EDI Arduino, prête à l’emploi


La société HidnSeek commercialise le pisteur HIDNSEEK Le plus intéressant c’est que les API ainsi que le micrologiciel
ST1-A/B [4], il s’agit d’une balise GPS autonome (sans carte de cet objet sont ouverts. Il se transforme donc en carte de
SIM) et rechargeable. Une application mobile ainsi qu’un développement que l’on peut adapter à ses propres usages
site internet permettent de suivre en ajoutant des capteurs. Le fabricant met à disposition
une ou plusieurs balises, sur GitHub ([5] et [6]) tous les outils nécessaires pour
de définir des reprogrammer l’objet avec l’EDI Arduino et un câble USB.
La carte embarque un µC ATmega328P à 12 MHz, une
passerelle Sigfox TD1207 et un module GPS PA6H de
GlobalTop.

Caractéristiques

• Localisation par GPS


• Capteur de mouvement à 3 axes
• Capteurs de température et pression
alertes • Mise à jour du micrologiciel par interface USB
et des zones • Géorepérage (geofencing) avec appli Apple iOS et Android
virtuelles de surveillance. • E/S d’usage général (GPIO) libres pour des extensions
Le prix de vente (139 € TTC) inclut (I2C, série, ISP, E/S analogique/numérique)
un an d’abonnement au réseau Sigfox, • Batterie LiPo de 500 mAh, rechargeable et surveillée
renouvelable chaque année (19,90 €). (plusieurs mois d’autonomie)

100 mai/juin 2017 www.elektormagazine.fr


gistrer votre objet sur une plateforme pour le suivre, voir la montre simplement que l’offre pour
liste en [2]. Certaines sont réservées à des applications par- atterrir sur la planète Sigfox est
ticulières comme le suivi de déchets ou d’abeilles. D’autres variée. Il n’y a que l’embarras
sont généralistes et utilisables par tous comme Microsoft IoT, du choix. En outre Sigfox a créé
Amazon AWS ou Thethings.io. un site dédié aux développeurs
Les informations suivantes permettent d’identifier chaque objet (voir [3]) qui contient des tuto-
Sigfox : riels ainsi que des liens vers
diverses ressources.
• Un identifiant unique, SIGFOX ID (read-only device unique
identifier). En général cet ID apparaît sur une étiquette En résumé, la création d’un
collée sur l’objet. Il est non modifiable et indispensable objet connecté est facilitée par
pour enregistrer un objet sur le réseau (attention à ne pas les modules disponibles. L’accès au réseau Sig-
le perdre). Ex : 16B87. fox est simple et peu onéreux par rapport à Lora par exemple.
• Un code PAC (Porting Authorization Code). Ce code Vous avez donc les outils nécessaires pour réaliser votre pre-
est également indispensable pour enregistrer un mier objet connecté. Est-ce que ce sera pour pister votre chien
objet, mais il change si l’objet change de propriétaire. qui se sauve régulièrement ou pour récupérer des données
Ex : CF14xxxx-xxx. environnementales dans vos vergers ? Nous ne doutons pas
• Une clé de sécurité cachée, chiffrée AES128. que vous trouverez des utilisations originales du réseau Sig-
fox. N’oubliez pas de partager vos expériences avec nous.
La liste de produits proposés ici n’est pas exhaustive. Elle (160167)

Tableau 2. Circuits intégrés pour la communication Sigfox,


utilisés dans différents shields, kits de développement et cartes d’extension.
Fabricant Référence Type Pour passer à la pratique
ATA8520D-
émetteur/récepteur + AVR µC à 8 bits
GHQW
kit d’évaluation : ATA8520-EK4-E (RCZ1) / ATA8520-EK1-F
Atmel ATA8520E- émetteur/récepteur +
(RCZ2) ; carte d’extension pour Xplaine Pro : ATA8520-EK6-E
GHQW µC AVR à 8 bits
(RCZ1) / ATA8520-EK3-F (RCZ2)
ATA8520-GHQW émetteur + µC AVR à 8 bits
AX-SFEU /
émetteur/récepteur kit de développement : DVK−SFEU−[API]−1−GEVK
AX-SFEU-API
OnSemiconductor AX-SFUS /
AX-SFUS-API émetteur/récepteur
(RCZ2)
module radio
Radiocrafts RC1682-SIG (contrôleur + pile kit de démonstration : RC1682-SIG-DK
Sigfox)
kit de développement : STEVAL-FKI868V1 ou STEVAL-FKI915V1
STMicroelectronics S2-LP émetteur/récepteur
(carte NUCLEO-L152RE + S2-LP)
émetteur Sigfox +
TD1204 carte d’évaluation : TD1204 EVB
récepteur GPS
TD1205P émetteur Sigfox + récepteur GPS + antenne + accéléromètre
TD Next passerelle (émetteur +
TD1207R/08R carte d’évaluation : LGA25 EVB
µC ARM Cortex-M3)
passerelle (émetteur +
TD1508 (RCZ2) carte d’évaluation : LGA25 EVB
µC ARM Cortex-M3)
Telit LE51-868 S émetteur/récepteur kit d’évaluation : LE51-868S EVK
CC1120 /
kit de développement : MSP430F5529 LaunchPad ou CC1120
TexasInstruments CC1125 / émetteur/récepteur
CC1190 BoosterPack ou CC1125 BoosterPack
CC1190
Wisol WSSFM10R1 émetteur/récepteur carte d’extension : BRKWS01 de SNOC

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

www.elektormagazine.fr mai/juin 101


Nemeus – clé USB
de charger son code et les ports I2C, SPI, UART, GPIO, CA/N,
CN/A de dialoguer avec des capteurs.

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

(broches PA2 et PA3).


NRST

PA15

PA14

PA13

PA12

PA11
PB9

PB8

PB7

PB6

PB4

PB3

À l’écriture de ces lignes, Nemeus annonçait la sortie de l’IoT


Smart Sensor, une carte pour expérimenter avec les liaisons
Nemeus propose le MM002-LS-EU [7], un modem bi- sans fil (Sigfox, LoRa, Bluetooth, GPS/GNSS…). Cette carte
mode (LoRa/Sigfox) qui contient un µC STM32L151X et un compatible avec l’EDI Arduino comporte un accéléromètre,
émetteur-récepteur RF SX1272. Le tout est animé par le un capteur de température, un capteur de pression, mais
système d’exploitation Contiki. Le connecteur JTAG permet également une LED RVB programmable par l’utilisateur.

PyCom – programmation en Python


réf. 125-9535 chez RS. L’antenne Wi-Fi et Bluetooth est interne.
Operating Temperature: ESP32 Dual Core Pour accéder facilement aux broches de la SiPy, vous pouvez
-40 to 85 degrees celsius Microcontroller and
SIGFOX WiFi/Bluetooth 4.2 utiliser une carte d’extension universelle Pycom. Elle est
Transceiver radio équipée d’un connecteur micro-USB pour l’alimentation et les
3V3 Ultra-Low-Noise
Switching Regulator 32Mbit Flash Memory
communications série, d’un chargeur de batterie LiPo, d’une
protection contre l’inversion de polarité, d’un emplacement
WS2812 RGB pour carte micro-SD, d’un bouton et d’une LED utilisateur.
multi-colour
LED
Caractéristiques

External SIGFOX Antenna


RF Switch • 2× UART
U.FL Connector
Connector
Internal WiFi and
• 2× SPI
Reset Switch
Bluetooth Antenna • I2C
• I2S
• Carte micro-SD
La société PyCom propose la carte de développement SiPy • CA/N à 8 voies, 12 bits
MicroPython Wi-Fi/Bluetooth/Sigfox [9].Elle est compatible • Jusqu’à 24 GPIO
MicroPython et conçue spécifiquement pour les applications • LED multicolore RVB WS2812
de l’IdO. Elle repose sur le système sur puce (SoC) Espressif • Commutateurs de RESET et RF
ESP32 doté d’un µC à double cœur, du Wi-Fi (portée • Émetteur-récepteur CC1125 de TI
jusqu’à 1 km), du Bluetooth (classique et BLE), de Sigfox • Version RCZ1/RCZ3 et version RCZ2/RCZ4
et de 512 Ko de mémoire RAM, sur une surface réduite
(55 × 20 × 3,5 mm). L’EDI propre à PyCom, Pymakr, facilite PyCom annonce la sortie de la FiPy WiFi/Bluetooth/LTE CAT
la programmation. M1 / NB1/LoRa/Sigfox [10] qui, sur le modèle de la SiPy,
Nota : il faut une antenne externe pour le réseau Sigfox. donne accès à cinq réseaux.
Une utilisation sans antenne peut endommager la carte, voir

Quicksand – carte de développement STM32


L’entreprise belge Caractéristiques
Quicksand propose le • Capteurs : GPS, accéléromètre, température, proximité et
kit de développement lumière ambiante
QW GPS Sigfox [11] • 2 boutons utilisateur, 1 bouton de RàZ et 4 LED utilisateur
construit autour d’un • Compatible Arduino via convertisseur de niveau
émetteur-récepteur • Compatible 3,3 V et 5 V
TD1204 et d’une carte • Logiciel à source ouverte disponible
NUCLEO-L152RE (µC • Interface JTAG vers TD1204
STM32 mbed).

102 mai/juin 2017 www.elektormagazine.fr


ATIM – l’embarras du choix
Réf. Adaptateur Entrée Sortie (antenne)
ACW-DUINO Arduino GPIO connecteur SMA ou UFL
ACW-MangOH ordinateur mangOH GPIO, UART connecteur UFL
ACW-MPCIE mini PCI-Express UART connecteur UFL
ACW-RPI Raspberry Pi GPIO connecteur SMA ou UFL
ACW-SDK USB (starter kit) connecteur SMA
ACW-USB clé USB USB connecteur SMA
SigBee XBee GPIO connecteur SMA ou UFL
Version Sigfox du module radio ARM-NANO
ARM-N8-SIGFOX
Advanced Radio Modem®)

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.

SNOOTLAB – Arduino et Raspberry Pi


La société SnootLab propose plusieurs cartes avec
Broches Numériques doublées
la passerelle TD1208 ainsi que les bibliothèques
correspondantes [13] :

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.

NetTrotter – carte 100% compatible Arduino


Cette société italienne propose la BiB, Basic IoT Board [14] : 100% compatible Arduino, elle peut accueillir nombre de
c’est une carte personnalisable (ajout de capteurs de shields Arduino et être programmée avec l’EDI Arduino.
température et d’humidité, lecture de balises NFC, Elle comporte un GPS et un accéléromètre/magnétomètre/
communication Bluetooth Low Energy…). Comme elle est gyroscope.

Liens [9] SiPy : www.pycom.io/product/sipy

[1] Sigfox (couverture, partenaires) : [10] FiPy : www.pycom.io/product/


www.sigfox.com, partners.sigfox.com fipy-preorder-shipping-april-2017

[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

www.elektormagazine.fr mai/juin 103


expérimenter avec
un transformateur de Tesla
quelques composants pour un effet électrisant

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

104 mai/juin 2017 www.elektormagazine.fr


avec un excitateur de Slayer,
on peut allumer
lampes et tubes fluorescents

qu’avec un bol. Avec une bonne marge de sécurité et pour une


tension de claquage de 3 kV/mm, nous aurions besoin d’une
tension de 300 kV pour un arc de 10 cm !
Vous trouverez plus d’informations sur Wikipédia [1], ainsi que
sur le site hvtesla [2], plus pratique et avec de belles photos
de transformateurs. Et si vous voulez en apprendre encore
plus, le guide de conception, construction et mise en œuvre
de Kevin Wilson [3] vous dira tout (ou presque) sur le sujet.

Ne cherchez pas les complications


La construction d’un transformateur de Tesla pour de grands
arcs électriques n’est pas évidente. En plus d’un travail méca-
nique conséquent, vous devrez aussi concevoir un circuit de
commande capable de fournir une haute tension et une puis-
sance non négligeable. Pour une simple expérimentation, il vaut
mieux se contenter d’un dispositif plus simple, et ça permet
déjà de beaucoup s’amuser.
Pour la production de la haute tension, le plus simple est de
récupérer le circuit ad hoc d’un appareil bon marché. Le circuit
imprimé avec l’oscillateur d’un appareil photo jetable (circuit
du flash) ou d’un appareil (ou d’une lampe) antimoustiques
convient très bien. La vidéo en deux parties How to make a
small Tesla Coil [4] montre la construction d’un transformateur
qui utilise le circuit d’une « raquette » antimoustiques. Malgré
sa simplicité, ce dispositif permet l’obtention d’arcs passables.
Vous pouvez aussi utiliser des composants discrets et construire
un oscillateur autour d’un seul transistor. Le site Learn to dis-
cover [5] vous montre comment faire, avec schémas et vidéo.
Vous obtiendrez des petits arcs, n’en attendez tout de même
pas trop.
Il existe d’autres circuits simples semblables, appelés excita-
teurs de Slayer. Il s’agit de dispositifs dont le bobinage secon-
daire produit un champ magnétique élevé, ce qui permet d’al-
lumer des lampes néon ou des tubes fluorescents ; le but
principal n’est donc pas l’obtention d’arcs électriques. C’est
très amusant aussi !
Si cela vous tente, rendez-vous sur hackaday, on vous pré-
sentera la construction d’une Miniature Tesla Coil [6]. L’os-
cillateur est bâti autour d’un 2N2222 courant et la bobine
secondaire semble vraiment petite, mais les lampes et tubes
fluorescents s’allument pourtant bien. Vous trouverez sur
YouTube d’autres vidéos montrant des excitateurs de Slayer,
par exemple celles en [7].
(160352 – version française : Jean-Louis Mehren)

[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

www.elektormagazine.fr mai/juin 105


PROJET DE LECTEUR

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.

Burkhard Kainka Capteur de poursuite


Tout le monde connaît bien ces petits robots sur deux roues qui
Nous présentons ici les barrières photoélectriques et leurs appli- suivent une ligne blanche. Le principe est simple, c’est la capacité
cations, du capteur à fourche au capteur de lumière réfléchie du sol à réfléchir la lumière qui est utilisée pour conduire le robot.
en passant par le pulsomètre. Nous verrons comment inter- Une diode émettrice IR illumine le sol tandis qu’un phototransis-
préter ces signaux de manière optimale. Une fois de plus, nous tor IR capte la lumière réfléchie. En principe, on peut parler de
utilisons les capteurs du kit de 35 capteurs disponible dans barrière lumineuse à réflexion. Pour s’adapter à la sensibilité des
l’e-choppe d’Elektor [1]. Comme toujours, vous pouvez télé- différentes surfaces de sol et aux distances, le capteur de pour-
charger tous les programmes de cet article [5]. suite se sert d’un potentiomètre et d’un comparateur (fig. 1).

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

Figure 1. Barrière lumineuse à réflexion réglable. Figure 2. Barrière lumineuse à fourche.

106 mai/juin 2017 www.elektormagazine.fr


Figure 3. Pulsomètre une fois préparé. Figure 4. Pulsomètre en action. Figure 5. Tension sur le pulsomètre.

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

www.elektormagazine.fr mai/juin 107


Figure 6. Valeurs d’origine et valeurs moyennes. Figure 7. Réponse impulsionnelle. Figure 8. Signaux d’impulsion filtrés.

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

Listage 1. Calcul de la valeur moyenne Listage 2. Filtre passe-haut

//VoltageAD2 0...1023 at AD2 filter //Filter2AD2 0...1023 at AD2 filter


int sensorPin = 2; int sensorPin = 2;
int value; int value;
int mean; int mean;

void setup() { void setup() {


Serial.begin(9600); Serial.begin(9600);
lcd.begin(16, 2); }
} void loop() {
void loop() { value = analogRead(sensorPin);
value = analogRead(sensorPin); mean = mean - mean / 20;
mean = mean - mean / 20; mean = mean + value;
mean = mean + value; value = value - mean / 20;
Serial.println(value); Serial.println(value);
Serial.println(mean / 20); delay(19);
delay(19); }
}

Listage 3. Pulsomètre Arduino Serial.println(pulseFreq);


lcd.setCursor(0, 0);
void loop() {
lcd.print(pulseTime);
value = analogRead(sensorPin);
lcd.print(" ms ");
mean = mean - mean / 20;
lcd.setCursor(0, 1);
mean = mean + value;
lcd.print(pulseFreq);
value = value - mean / 20;
lcd.print(" /min ");
if ((old < 0) & (value > 0)) {
}
time2 = millis();
}
pulseTime = time2-time1;
old = value;
time1 = time2;
delay(20);
//Serial.println(pulseTime);
}
n = n + 1;
pulseFreq = 60000 / pulseTime;
if (pulseFreq > 45) {

108 mai/juin 2017 www.elektormagazine.fr


pouls en ms ainsi que le nombre de battements par minute sur
l’afficheur à cristaux liquides du shield d’extension Elektor [6].

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)

Pulsomètre en Bascom GND


GND
En Bascom, il faut tout d’abord s’occuper de la mesure du
Rotary Encoder
temps puisque celle-ci n’est pas prévue. Pour cela, on se sert
d’une interruption de timer, ce sera timer0. La routine d’inter- Figure 9. Codeur rotatif.
ruption est interrogée toutes les 10 ms ce qui correspond à la
résolution avec laquelle le temps est enregistré.
Au point où on en est, appliquons-nous pour cette interrup-
tion. Dans notre cas, cela signifie que les mesures de la tension CLK
seront aussi exécutées dans l’interruption. L’avantage est que
les mesures sont effectuées exactement toutes les 10 ms, ce
qui permet d’éliminer les éventuelles interférences du 50 Hz. DT

Pour un ATmega, 10 ms sont amplement suffisantes pour procé-


der à une évaluation complète durant l’interruption (listage 4).
Figure 10. Signaux de commutation lors de la rotation.
Comme avec l’Arduino, cela concerne le calcul de la moyenne
glissante, l’évaluation des flancs d’impulsions, l’élimination des
erreurs de mesure causées par des impulsions manquantes
et la sortie des résultats sur le terminal et l’afficheur à cris- inversions de rotation à l’aide des deux barrières lumineuses.
taux liquides. Et voilà, nous avons un pulsomètre programmé Ces dernières sont disposées de telle manière qu’elles livrent
en Bascom qui présente les mêmes caractéristiques que celui des impulsions rectangulaires décalées de 90°.
programmé dans l’EDI Arduino. C’est exactement ce type de signaux qui est émis par le codeur
rotatif que l’on trouve dans le kit (fig. 9). En revanche, ce
Codeur rotatif codeur rotatif n’utilise pas des barrières lumineuses, mais des
Si vous avez déjà démonté une vieille souris dotée d’une boule, contacts mécaniques. Il dispose néanmoins de crans méca-
vous aurez certainement remarqué les barrières lumineuses qui niques « audibles », ce qui permet de compter à chaque fois
permettent de mesurer la rotation. Le point décisif est qu’il faut que le codeur tourne. Une rotation correspond à 20 crans. Au
non seulement calculer les impulsions, mais aussi détecter les premier abord, cela peut sembler modeste, mais en fait comme

Listage 4. Pulsomètre Bascom

'--------------------------------- 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

www.elektormagazine.fr mai/juin 109


l’axe n’a pas de butée de fin de course, le codeur peut tourner p. ex., de régler le mélange de couleur de la LED rouge/verte
des centaines voire des milliers de fois, ce qui est bien pratique du kit de capteurs et ce, de manière précise et reproductible.
pour obtenir la précision requise pour le calcul d’une fréquence De plus, les valeurs réglées sont délivrées sur le traceur série
ou d’une tension. Certes, nous disposons d’un bouton-poussoir, et l’afficheur à cristaux liquides.
mais nous n’avons pas besoin de l’utiliser pour ce montage. Certes, le codeur rotatif est doté de ses propres résistances
Même si les deux contacts se valent, l’un est cadencé par un de rappel vers le haut, mais nous préférons utiliser celles de
signal d’horloge (CLK) tandis que l’autre se sert de la broche l’Arduino. En effet, ceci permet d’exploiter un ou deux codeurs
de données (DT). La figure 10 montre les signaux de sortie en même temps avec le même programme. Le premier codeur
lors d’une rotation. L’interprétation est facile : on attend un est raccordé aux entrées A0 et A1. Ce n’est pas un hasard
flanc descendant sur CLK et on regarde ce qui se passe sur puisque c’est là que se trouvent les touches S1 et S2 du shield
DT, et en fonction du résultat on augmente ou on réduit la d’extension. De cette manière, il n’y a aucun conflit, puisque
valeur du compteur. tous les contacts sont reliés au fil de masse (GND). L’avantage
Le programme donné en exemple (listage 5) utilise deux est qu’en cas de besoin la valeur de sortie d1 peut être réglée
codeurs en même temps, ce qui permet de régler deux signaux à l’aide de ces touches. S1 livre le signal de cadence tandis
de sortie analogiques PWM1 et PWM2 sur les sorties 9 et 10 de que S2 donne le sens de rotation.
l’Arduino. En ajoutant un autre filtre passe-bas, ceci pourrait Le deuxième codeur est relié à A4 et A5. Les broches de port
devenir une double source de tension réglable pour d’autres correspondantes sont doubles sur l’Arduino, elles se trouvent
applications de mesure d’ordre général. Ce système permet, à la diagonale des lignes SDA et SCL du bus I²C. On y trouve

Listage 5. Analyse du codeur en langage C Arduino

//Encoder A0/A1 PMW1, A4/A5 PWM2 analogWrite (pwm1, d1);


lcd.setCursor(0, 0);
... lcd.print(d1 * 20);
lcd.print(" mV ");
int clk1 = A0; }
int dt1 = A1; old1=new1;
int clk2 = A4;
int dt2 = A5; new2 = digitalRead(clk2);
int pwm1 = 9; if((new2==0) & (old2==1)){
int pwm2 = 10; if (digitalRead(dt2)==0) d2++; else d2--;
Serial.println (d2);
... if (d2 > 250) d2 = 250;
if (d2 < 0) d2 = 0;
void loop() { analogWrite (pwm2, d2);
new1 = digitalRead(clk1); lcd.setCursor(0, 1);
if((new1==0) & (old1==1)){ lcd.print(d2 * 20);
if (digitalRead(dt1)==0) d1++; else d1--; lcd.print(" mV ");
Serial.println (d1); }
if (d1 > 250) d1 = 250; old2=new2;
if (d1 < 0) d1 = 0; }

Listage 6. Analyse du codeur en Bascom

'Encoder.BAS C0/C1 PMW1a, C4/C5 PWM1b Old1 = New1

... New2 = Pinc.4


If New2 = 0 And Old2 = 1 Then
Do If Pinc.5 = 0 Then D2 = D2 + 1 Else D2 = D2 -1
New1 = Pinc.0 If D2 > 1023 Then D2 = 1023
If New1 = 0 And Old1 = 1 Then If D2 < 0 Then D2 = 0
If Pinc.1 = 0 Then D1 = D1 + 1 Else D1 = D1 -1 Pwm1b = D2
If D1 > 1023 Then D1 = 1023 Print D2
If D1 < 0 Then D1 = 0 Locate 2 , 1
Pwm1a = D1 Lcd D2
Print D1 End If
Locate 1 , 1 Old2 = New2
Lcd D1 Loop
End If

110 mai/juin 2017 www.elektormagazine.fr


Publicité
10 (PWM1B)

M 5V / 10mA

9 (PWM1A)

Figure 11. Étages de sortie montés en pont.

également à proximité une broche GND. Il ne manque plus


qu’une connexion supplémentaire au 5 V pour les résistances
de rappel vers le haut du codeur. Pas de problème, nous allons
tout simplement mettre la broche 13 à l’état haut ; c’est la
broche à laquelle est raccordée la LED de l’Arduino. Ça fonc-
tionne à tous les coups : et puis, s’il nous manque une ligne
GND ou VCC, on peut toujours programmer une broche de
port en conséquence.

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

www.elektormagazine.fr mai/juin 111


corrélation numérique
détection de motif et de période
Robert Lacoste (Chaville)

Suite à la publication de mes articles sur le filtrage numérique (Elektor,


janvier à mai 2016), un lecteur m’a écrit pour me demander si je pouvais
dire deux mots sur les algorithmes de corrélation. Voici donc un petit
article sur ce thème pour contenter nos lecteurs. Comme quoi il ne faut pas
hésiter à contacter les auteurs d’Elektor !

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).

112 mai/juin 2017 www.elektormagazine.fr


que le signal complet, donc M < N. Commencez par position- Commençons par le cas simple d’un motif rectangulaire. Ima-
ner le tableau des M points du motif en face des M premiers ginons que le signal contienne deux copies du motif, avec un
points du signal. Pour chaque point, multipliez les valeurs cor- fort niveau de bruit. Le code source Scilab est le suivant :
respondantes du motif et du signal, puis additionnez tous ces
résultats. Vous avez le premier point de la corrélation. Ensuite, // Motif à trouver, rectangulaire
déplacez le motif d’un échantillon vers la droite et refaites le PatternLength=10000;
même calcul pour trouver le deuxième point de la corrélation. Pattern=ones(1,PatternLength);

Continuez jusqu’à la fin du signal et vous avez la corrélation du


// Signal d’entrée, avec deux répliques du motif
motif et du signal, qui compte N − M + 1 points dans ce cas.
SignalLength=200001;
Pour ceux qui préfèrent un pseudo-code (en supposant que les
Signal=[1:SignalLength]*0;
index des tableaux commencent à zéro comme en C), le voici  : PatternPosition1=40000; PatternAmplitude1=1;
Signal(PatternPosition1:PatternPosition1+
pour i=0 à N-M faire PatternLength-1)=Pattern*PatternAmplitude1;
{ PatternPosition2=122300; PatternAmplitude2=0.5;
convolution[i]=0 Signal(PatternPosition2:PatternPosition2+
pour j=0 à M-1 faire PatternLength-1)=Pattern*PatternAmplitude2;
{
convolution[i] = // Ajoutons du bruit gaussien
convolution[i] + motif[j] * signal[i+j] NoiseLevel=0.5;
} NoisySignal=Signal+grand(1,SignalLength,”nor”,0,
} NoiseLevel);

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.

Une pincée d’aléatoire


Allons un cran plus loin. Plus le motif est complexe et plus l’al-
gorithme fonctionne bien, car la probabilité d’avoir un motif
complexe dans le bruit est d’autant plus faible. Vous voulez
Figure 3. Une corrélation avec un motif rectangulaire donne un résultat en être impressionné ? Regardez la figure 6. Ici, le motif est court,
forme de triangle. Ici, le motif est assez long (10.000 échantillons), ce qui seulement 200 échantillons, mais il s’agit d’un signal pseudo-
permet d’obtenir un très bon résultat même avec un niveau de bruit élevé. aléatoire (une suite de 200 nombres pris au hasard). Cette

www.elektormagazine.fr mai/juin 113


Imaginez que vous avez un flux de bits à transmettre. Vous
pouvez définir deux motifs pseudo-aléatoires différents, puis
encoder chaque bit avec l’un ou l’autre de ces deux motifs (l’un
pour les 0, l’autre pour les 1). Côté récepteur, faites une cor-
rélation du signal reçu avec les deux motifs. Vous récupérerez
les 0 et 1 du signal initial même si le niveau de bruit est très
élevé. C’est une technique de modulation très connue et appelée
DSSS (Direct Sequence Spread Spectrum). Elle est utilisée par
Zigbee, le GPS, mais aussi le Wi-Fi dans sa variante 802.11b.
Encore plus fort : cette même méthode peut être utilisée pour faire
communiquer plusieurs paires de correspondants sur le même
canal radio, sans qu’il y ait de mélange entre eux. Comment ? Il
suffit de définir des paires de motifs pseudo-aléatoires différents
pour chaque couple de correspondants ! Les autres communica-
tions seront vues comme du bruit puisqu’elles ne seront pas cor-
rélées aux motifs recherchés. Cela vous rappelle quelque chose ?
C’est très exactement ce qu’on appelle une modulation CDMA
(Code Division Multiple Acces), et votre ordiphone l’utilise s’il est
en 3G… En passant, c’est aussi une bonne solution pour cacher
une transmission à des récepteurs non autorisés, vous devinerez
donc facilement pour quel type d’application ça a été inventé…
Figure 4. Le même exemple qu’à la figure 3, mais avec un motif plus
court (100 échantillons) donne un résultat moins précis.
Quelle puissance de calcul ?
Un mot ici pour les lecteurs qui seraient inquiets de la puissance
séquence est à nouveau répétée deux fois dans le signal à des du processeur nécessaire pour calculer une corrélation. Suppo-
amplitudes différentes, et un énorme bruit blanc est ajouté au sons que le motif soit constitué de 100 échantillons (M = 100)
résultat. Ce motif pseudo-aléatoire devient clairement invisible et que vous vouliez traiter un signal en temps réel échantil-
dans le bruit. Cependant le résultat de la corrélation est plus lonné à 10 kéch/s (10.000 échantillons par seconde). Le calcul
que limpide : chaque réplique du motif dans le signal est claire- d’une corrélation nécessite 100 multiplications et additions
ment identifiée par une impulsion très étroite sur la corrélation ! pour chaque échantillon du signal d’entrée, soit 100 ×10.000
Si vous y réfléchissez, vous comprendrez facilement pourquoi. = 1 million de multiplications par seconde et autant d’additions.
Comme le motif est pseudo-aléatoire, il n’y a une corrélation Ceci serait difficile sur un 8051 âgé de 20 ans, mais c’est à la
que lorsque le motif est précisément aligné avec le signal corres- portée de tout processeur à 32 bits actuel. De plus la majorité
pondant, le reste du bruit s’annule en moyenne. Ceci donne un des cœurs ARM (comme les Cortex M3) et bien sûr des DSP
positionnement très précis du motif dans le signal ainsi qu’une disposent de l’instruction MAC (Multiply And Add) qui permet
amélioration très efficace du rapport signal sur bruit. de réaliser les deux opérations en un seul cycle.
Cette approche fournit en particulier un très bon moyen pour Que faire si les contraintes sont plus sévères, par exemple si la
améliorer les performances d’un système de communication. longueur du motif ou le débit des échantillons sont supérieurs de
plusieurs ordres ? Vous avez alors besoin d’un processeur beau-
coup plus rapide ou d’un FPGA... ou d’un peu plus de math. En
deux mots, pour ceux qui sont intéressés, il existe un moyen pour
calculer une corrélation beaucoup plus efficace que l’algorithme
présenté ci-dessus. On passe alors par deux FFT (Fast Fourier
Transform). Cela nécessiterait un article un peu plus long, mais
en bref (et avec mes excuses pour les lecteurs réticents aux
mathématiques), une corrélation est quasi identique à une autre
opération appelée convolution (il y a juste un retournement
temporel du motif dans le calcul entre les deux). Et un algorithme
de convolution rapide est possible dans le domaine fréquentiel.
Respirez et répétez après moi : « la FFT d’une convolution est la
multiplication terme à terme des FFT des deux signaux » (avec
un conjugué complexe quelque part). Le fait est que l’utilisation
de cette méthode réduit considérablement le nombre d’opéra-
tions tant que les signaux sont assez longs. Plus précisément, la
complexité du calcul est réduite de N2 à 3 × N × log(N), ce qui
est beaucoup plus faible si N est suffisamment élevé. Voir les
références [3] à [7] pour plus d’informations sur ce sujet.

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-

114 mai/juin 2017 www.elektormagazine.fr


Figure 6. Les meilleurs résultats sont obtenus avec des motifs complexes, Figure 7. Un exemple d’autocorrélation qui permet de détecter les
ici un signal pseudo-aléatoire. La corrélation fournit des impulsions très périodes du signal.
nettes quand il y a une correspondance.

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

www.elektormagazine.fr mai/juin 115


utilisation de
l’eC-stencil-fix
pour l’e-BoB avec capteur
BME280 et d’autres cartes
1
Thijs Beckers (rédaction des Pays-Bas)

Pour approvisionner notre e-choppe avec les produits conçus


au labo d’Elektor, il est parfois plus rapide, ou plus simple,
ou meilleur marché – bref, c’est une meilleure option ! – de
les réaliser nous-mêmes, au labo. Ce fut le cas pour l’e-BoB
avec le capteur BME280 (Elektor mars/avril 2017, p. 9 [1]).
Comme cette réalisation s’y prêtait, nous avons sorti notre
eC-stencil-fix [2], un dispositif qui facilite l’application
de la pâte à braser sur les pastilles des CMS (photo 1).
Il faut commencer par positionner correctement le cir-
2 cuit imprimé et le pochoir (photo 2) ; le circuit imprimé
est maintenu en place par deux tenons. Eurocircuits a
doté le pochoir de deux trous de fixation spéciaux qui
permettent son positionnement exact. Deux réglettes dans
le même matériau que le circuit imprimé (fournies avec l’eC-
stencil-fix) permettent de maintenir le pochoir à une distance
correcte par rapport à la plaque de base. Sur la photo 2, on
voit qu’à gauche la réglette de gauche et le pochoir sont fixés
avec deux goupilles en forme de champignon et qu’à droite, la
réglette est simplement installée contre le circuit imprimé et
arrimée avec de l’adhésif. Les goupilles traversent la réglette
pour se planter dans la plaque de base.
Il n’y a plus qu’à enduire le pochoir de suffisamment de pâte à
souder (photo 3) avec l’outil approprié (une spatule convient
aussi), de telle manière que les emplacements ad hoc du cir-
cuit imprimé en soient recouverts (photo 4). L’épaisseur du
3

4
5

116 mai/juin 2017 www.elektormagazine.fr


6

pochoir est calculée pour que la bonne quantité de pâte à sou-


der soit déposée sur le circuit (photo 5). On peut alors retirer
le pochoir, avec moult précautions !
On place ensuite les composants sur le circuit imprimé
(photo 6). Ici aussi il faut faire preuve de douceur, car nous
travaillons sur un certain nombre de circuits à la fois, leur petite
taille le permet (photo 7).
Nous avons réalisé deux versions du circuit, une pour le bus
I²C et une pour le bus SPI (photos 8 et 9). Les composants
diffèrent en fonction de la version, mais le circuit imprimé est
le même.
Il ne reste plus qu’à « cuire » le circuit imprimé dans un four
8
à refusion, et les biscuits sont prêts (photo 10). Après vérifi-
cation (le nez sur le circuit), pour repérer d’éventuels circuits
mal soudés qu’il faut retirer du lot, direction le stock :
nos jeunes magasiniers (et magasinières) seront à nou-
veau ravis de pouvoir servir les clients !
(160297 – version française : Jean-Louis Mehren)

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

www.elektormagazine.fr mai/juin 117


PROJET DU LABO

Miroslav Cina et
Thomas Scherer (co-auteur du texte)

Récemment, Miroslav trébucha


Caractéristiques
sur un monceau de vieux accus
• Charge toutes sortes d’accus Li-ion de tension nominale de 3,6 V.
pour ordinateurs portables. • Mode « formatage » pour essayer de sauver des cellules ayant subi une
Devenus inaptes à l’alimentation décharge profonde.
• Mode « décharge » pour déterminer la capacité réelle de l’accu.
de ces derniers, ils avaient
• Toutes les informations pertinentes affichées sur l’écran LCD.
été mis au rebut. Curieux, il
les démonta. L’électronique se
Les projets personnels ainsi que nombre quasiment n’importe quel supermarché,
limitait à la partie congrue, et il
d’appareils électroniques du commerce les chargeurs pour les accus au lithium
s’avéra que nombre de cellules sont alimentés par piles ou accus NiMH. sont plus rares. En effet les accus Li-ion
individuelles étaient encore en Or les piles se vident vite et les accus sont normalement (cf. les ordinateurs
sont relativement lourds. Ni les unes ni portables ou les tournevis électriques)
parfait état. Pour les utiliser
les autres ne conviennent vraiment dans montés dans les appareils en usine, et
dans des projets personnels, le cas d’appareils gros consommateurs donc dotés d’une électronique de charge
elles requéraient cependant un d’énergie ou stockés à long terme. C’est intégrée ou accompagnés d’un chargeur
pourquoi aujourd’hui une multitude d’ap- adapté.
chargeur adapté. Aussitôt dit,
pareils contiennent des accus à base de Le besoin en chargeurs universels est
aussitôt fait. lithium, une technologie plus coûteuse et donc infime puisque tout simplement,
plus complexe. Si l’on trouve des char- on ne trouve pas d’accus au lithium à la
geurs automatiques pour accus AA/AAA caisse des supermarchés. Les cellules
ou RC en technologie NiCd ou NiMH dans au lithium sont produites sous quelques

118 mai/juin 2017 www.elektormagazine.fr


chargeur d’accus Li-ion
à courbes caractéristiques correctes

formes très réglementées. Destinées à extraire les cellules et les réutiliser, ou


être montées à demeure dans les appa- acheter des cellules Li-ion neuves, il faut infos sur le projet
reils, elles comportent donc des fils à un chargeur adéquat. Cela implique de lithium accus
souder ou des borniers à vis. À cause tenir compte de nombreux facteurs,
chargeur
de leur sensibilité, leur manipulation est car la (re)charge est bien plus délicate
recyclage d’accus
ardue, voire dangereuse ; elles n’ont rien qu’avec des accus NiMH. Il existe de
à faire dans les mains du grand public. nombreuses différences. débutant
Les types LiPo très courants, caractérisés Commençons par un avertissement : il
Æ connaisseur
par un rapport puissance/poids élevé, est interdit, contrairement à ce qui est
expert
sont fragiles du point de vue mécanique le cas des cellules au plomb, NiCd ou
et « aiment » alors prendre feu. De plus, NiMH, de mettre en série des cellules au
une cellule NiMH a une tension nomi- lithium sans prendre de mesures supplé-
env. 3 h
nale de 1,2 V. En technologie lithium, il mentaires. L’encadré « Équilibrage » vous
faut s’attendre à une tension nominale dira pourquoi. Le chargeur décrit ici per-
de 3,6 V. Les types LiFePo4 plus stables met d’éviter ces complications, car il est
Câble FTDI USB/série
avec leur tension nominale de 3,3 V ne optimisé pour charger une unique cellule
Interface pour programma-
sont pratiquement pas utilisés dans les au lithium de tension nominale de 3,6 V,
teur PICkit (tous en option)
perceuses, tournevis électriques, ordi- valeur classique en technologie lithium,
phones et ordinateurs portables. hors technologie LiFePo4.
Outre la tension nominale de 3,6 V,
env. 40 €
Accus Li-ion il existe quelques autres valeurs
Quel que soit votre projet, désosser « typiques » à respecter lors de la
de vieux blocs d’accus (fig. 1) pour en construction d’un chargeur. En fonction

www.elektormagazine.fr mai/juin 119


IC1

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.

de nombreuses heures, une cellule ne spéciales peuvent même, brièvement,


veut toujours pas dépasser ce seuil, la fournir de l’ordre de 20 C. Pour la charge
seule option est un recyclage final, c.-à-d. cela ne joue qu’un rôle secondaire.
l’élimination. Il en va de même pour les De ces caractéristiques découlent direc-
cellules qui restent stables à 0,0 V, voire tement les exigences posées à un char-
qui présentent une polarité légèrement geur d’accus au lithium : à des tensions
négative (ça arrive dans les montages inférieures à 2,7 V, il doit charger avec
en série). Dans ce dernier cas, il ne faut quelques mA seulement puis, ce seuil
pas même tenter un formatage. atteint, avec un courant constant déter-
miné plus élevé jusqu’à ce soit atteinte
Régulation de charge la tension finale de 4,2 V. À partir de
Figure 3. En utilisant un bloc secteur, Miroslav
Dans le cas d’accus au lithium, l’un des là, on se contente d’un maintien de la
a construit (avec circuit de la figure 2)
un premier chargeur Li-ion fonctionnel. facteurs importants est la valeur « C », tension à 4,2 V constants, le courant de
Inconvénient : on ne voit pas ce qui se passe. pas celui de « Capacité », mais un fac- charge diminue automatiquement plus
teur qui donne le courant en fonction de la cellule approche du « niveau plein ».
la capacité suivant la formule : Si le courant de charge résultant tombe
de leur type, les cellules connaissent une C = capacité en Ah / 1 h. alors en deçà d’une valeur minimale de,
tension minimale de 2,75 à 3 V et une Po u r u n e c e l l u l e d ’u n e c a p a c i t é disons 0,05 C, la charge est arrêtée et
tension maximale de 4,2 V. Si pendant de 2 300 mAh, à un courant de charge l’accu est supposé être plein. Important
le stockage, la charge et la décharge, maximal de 1 C correspond un courant aussi : il est fort possible que des accus
la tension de cellule quitte ce domaine, maximal de 2,3 A. Une charge à un cou- endommagés aient été drainés à un point
on risque des dommages. En cas de rant constant de 1 C est classique ; des tel que le courant entraînant l’interrup-
« recyclage » de cellules individuelles, cellules spéciales ou vieilles n’acceptent tion de la charge ne soit jamais atteint.
l’obtention de la capacité maximale est parfois que 0,5 C, voire légèrement On a besoin dans ce cas-là d’un circuit
secondaire. Pour de nombreuses appli- moins. Des types prévus pour une charge de temporisation pour éviter une charge
cations, des cellules à capacité réduite rapide acceptent même jusqu’à 5 C – « éternelle ».
conviennent aussi. On pourra donc aussi et atteignent donc leur pleine charge
essayer de rendre réutilisables des cel- en 20 min. Pas de contre-indication pour Solution intégrée
lules qui ont subi une décharge trop pro- une charge à un courant inférieur à l’in- Comme les accus au lithium sont prin-
fonde. Pour ce faire, il faudra éviter de tensité maximale. cipalement incorporés dans des appa-
les confronter immédiatement avec un Lors de la décharge aussi ce facteur joue reils, il n’est guère surprenant que l’in-
courant de pleine charge. Lorsqu’elles un rôle, mais alors à des valeurs plus dustrie des semi-conducteurs ait dans
présentent une tension inférieure à 2,7 V, élevées. 2 C est quasiment standard et son programme toutes sortes de contrô-
il faut commencer par les « formater » la cellule de type 18650B de Panasonic leurs de charge intégrés pour simplifier
avec un courant de charge minimal de utilisée dans les voitures de Tesla atteint la tâche des équipementiers. L’une des
quelques mA seulement ; une fois les cette valeur (au cas où vous envisageriez solutions de charge intégrées les plus
2,7 V atteints, charge normale. Selon les de cannibaliser une Tesla ;-). Mais il y a simples est indéniablement la puce tri-
circonstances, ce processus peut cepen- mieux : les accus LiPo atteignent sou- pode MIC79050S de Microchip. Un char-
dant prendre plusieurs heures. Si après vent 5, voire 10 C, et certaines cellules geur l’utilisant se résume au schéma de

120 mai/juin 2017 www.elektormagazine.fr


LCD1

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

www.elektormagazine.fr mai/juin 121


prendre la forme d’un bloc secteur, non est possible de déterminer de façon auto-
régulé avec une capacité de charge de matique la capacité réelle d’un accu à
quelque 5 W. Sa tension de sortie doit tester (chargé à 100%).
être comprise entre 9 et 36 V. L’idéal : Le « formatage » d’un accu ayant subi
12 V et 0,5 A. Pour D4, utilisez impéra- une décharge trop profonde se fait par un
tivement une diode Schottky rapide pou- niveau haut sur la broche RC6 de IC1. R2
vant encaisser 1 A. La remplacer par une et la résistance interne de la broche du
diode au silicium d’« occase » est une µC limitent le courant ; D1 empêche tout
mauvaise idée. LED2 s’allume lorsque reflux de courant. L’intensité du courant
IC3 fournit le 5 V. de formatage est fonction de la tension
IC1 détecte l’état de S1 et S2, les deux de la cellule. Exemple : à 2,3 V on a une
boutons-poussoirs, via les broches d’E/S tension de 5 V, diminuée de la tension
RA4 et RA5. Le schéma est si spartiate directe de D1 et de la tension de cellule
parce que le µC a activé des résistances = 2 V sur R2. Il circule donc un courant
Figure 5. Photo du premier prototype du
de polarisation haute internes à ses maximal de 20 mA. Le µC ne peut pas
chargeur de luxe de Miroslav, sur platine à trous.
entrées. RA1 et RA2 pilotent la LED bico- fournir plus de 25 mA.
lore (cf. encadré « LED bicolore À quoi sert RE1 vu qu’il n’est pas
et état »). LCD1 est piloté en piloté par le µC ? C’est simple :
mode quartet classique et, selon le relais ne colle qu’à condition
son type, comporte deux lignes que le chargeur soit alimenté.
de 20 ou 24 caractères. P1 règle Si le bloc secteur est débran-
le contraste. Le rétroéclairage est ché, l’accu, s’il est présent, est
relié directement au +5 V (bro- déconnecté ce qui évite qu’il ne
ches 15 et 16). Si vous optez pour se « rétrodécharge » accidentel-
un autre afficheur que celui de lement via IC3 et IC4 ; on éli-
la liste des composants, assu- mine ainsi de manière fiable tout
rez-vous d’utiliser un modèle à risque de décharge profonde non
résistance série intégrée. T1 est intentionnelle.
un transistor MOSFET de puis-
sance à canal P ; il active et coupe Logiciel
l’alimentation du régulateur de Pas de microcontrôleur sans
charge proprement dit, IC2. micrologiciel. Ses tâches sont :
La mesure du courant se fait, à déterminer l’état actuel, mesurer
travers un shunt de faible valeur le courant et la tension, interro-
(R6), à l’aide d’un circuit intégré ger les boutons-poussoirs, pilo-
spécialisé, un INA219. IC4 est ter LED1, T1 et T2, compter le
relié à IC1 par I 2C. IC4 est ici temps et afficher des informations
une version moins chère et moins pertinentes sur l’écran LCD. Le
précise, un INA219B. micrologiciel a été écrit en assem-
T2 sert à raccorder la résistance bleur et est disponible gratuite-
de charge R9 à l’accu pour le ment au téléchargement (code
décharger. Grâce à une fonction source et fichier hex en [1]).
de décharge activée avec S2, il Jetons un coup d’œil aux parties

É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.

122 mai/juin 2017 www.elektormagazine.fr


recyclage d’accus au lithium à l’aide d’un chargeur Li-ion universel

pertinentes : La routine charge_main s’occupe du pro- tout au début, on se trouve en pré-


d’abord le logiciel initialise le comp- cessus de charge. Dans la boucle princi- sence d’une tension de cellule inférieure
teur de temps (par des interruptions pale, on a, via I2C, par l’intermédiaire de à 2,7 V, le processus lance d’abord le
et TIMER2) ; ensuite démarre la boucle INA219, lecture et traitement des valeurs formatage. Pendant ce dernier, T1 reste
principale. actuelles de courant et de tension. Si, bloqué. Si, au cours du formatage, la ten-

LED bicolore et état


Les états de fonctionnement du chargeur d’accus Li-ion sont Il en résulte qu’avec un chargeur en fonction et un accu connecté,
visualisés par LED1, une LED bicolore. Liste des affectations : il ne se passe d’abord rien et seule LED2 s’allume. Après une
action sur S1, la LED1 s’allume (tant que la tension de cellule
• LED1 = éteinte. Le chargeur n’est pas actif. Il n’y a ni est inférieure à 2,7 V) en orange. Au-delà de ces 2,7 V, elle
charge ni décharge de l’accu. vire au rouge si le courant est > 0,2 A, et passe au vert quand
• LED1 = orange (R et V allumées simultanément). il tombe en deçà de cette intensité. Lorsque le courant tombe
Processus de formatage en cours en dessous de 80 mA, la LED s’éteint et la charge est terminée.

• LED1 = rouge. Phase de charge. Le courant de charge


Lors d’une action sur S2, la LED clignote jusqu’à ce que la
est > 200 mA.
tension de décharge finale de 3 V soit atteinte. Il est possible,
• LED1 = verte. Phase de charge. Le courant de charge est à tout moment, d’interrompre tous les processus par une
compris entre 80 et 200 mA. pression simultanée des deux boutons-poussoirs.
• LED1 = rouge clignotant. Phase de décharge.

www.elektormagazine.fr mai/juin 123


sion passe au-delà de 2,69 V, ce dernier movlw D’030’ On peut aussi modifier le seuil pour la
est stoppé et, via T1 et MIC79050 on ; maximal charging time (hours) commutation du courant de charge élevé
démarre le processus de charge normale. à un courant de charge faible dans le
Pendant la charge normale, la tension et La valeur du courant minimal se trouve même sous-programme.
le courant sont mesurés périodiquement. dans le sous-programme curr_an à la
La boucle principale se termine lorsque ligne : xorlw D’200’
le courant de charge tombe en dessous ;green LED off above 200 mA
de 80 mA ou lorsque le temps de charge xorlw D’080’
total a dépassé 30 h. On peut modifier ; keep charging above 080 mA Le sous-programme discharge_main
ces deux valeurs dans le micrologiciel. s’occupe de la décharge qui s’interrompt
La valeur de la durée de charge maxi- lorsque la tension de l’accu tombe en
male se trouve dans le sous-programme dessous de 3 V. Lors de la décharge, le
mm02 à la ligne : facteur pertinent pris en compte n’est

liste de composants

Figure 6. Grâce au circuit imprimé, la réalisation du chargeur d’accus au


lithium de luxe devient un jeu d’enfant.

124 mai/juin 2017 www.elektormagazine.fr


pas le temps, mais la quantité de courant Dans la ligne du haut, en plus de la ten-
fournie par l’accu = capacité en mAh. Il sion de la cellule et du courant, la quan-
n’y a pas de durée d’attente (timeout). tité totale de courant sera très faible. La
La mesure proprement dite se fait, en ligne du bas indique la durée du proces-
mA, dans le sous-programme inc_q. sus en cours et la durée maximale que
pourrait encore prendre la charge.
Mise en œuvre
Après la mise sous en fonction, la Pour la décharge via S2, l’accu se
version du micrologiciel s’affiche briè- décharge sur R9. Avec un accu bien
vement ; ensuite apparaissent les infor- chargé, le courant qui commence à cir-
mations sur l’accu connecté. L’affichage culer est de l’ordre de 360 mA. On lit
reproduit ici est celui de l’afficheur donc quelque chose du genre :
à 2 × 20 caractères :
3.72V/-364mA/0759mAh
Figure 7. Le prototype du labo d’Elektor réalisé
U = 3.10V 00:46:10 sur le circuit imprimé de la figure 6.
Charge? / Discharge?
Dans la ligne du haut, on trouve donc
Maintenant on peut démarrer la charge après les valeurs actuelles de tension et
avec S1 ou la décharge avec S2. de courant (signe négatif = décharge), la F
quantité de courant consommée [en mA].
1A F
Pendant une charge normale (tension de La ligne du bas donne le temps écoulé. D
cellule > 2,7 V), l’écran commence par from to
charger cell
afficher des informations du genre : Montage et observations 3A

La figure 5 montre le prototype de


4.16V/+203mA/1736mAh Miroslav réalisé sur une platine à trous.
05:02:29 25 L’utilisation de la platine (fig. 6) dispo-
nible dans l’e-choppe d’Elektor [1] sim-
Figure 8. Ce circuit de protection simple
La première ligne donne les tension et plifie bien les choses. Vu leur nature, tous
prévient tout risque de dommages en cas
courant actuels, ainsi que la quantité les composants sont faciles à souder,
d’inversion accidentelle de la polarité de l’accu.
totale de courant chargé [en mAh]. La même IC2 dans son boîtier CMS. IC1 est
seconde ligne donne le temps déjà écoulé disponible préprogrammé (avec le micro-
[en hh:mm:ss] et à droite les heures res- logiciel pour un écran de 2×20 car.). Si
tant encore jusqu’à la fin du délai d’at- vous souhaitez travailler avec un affi- Depuis que Miroslav a construit son char-
tente (25 h dans le cas présent). cheur à 2×24 caractères, optez pour geur Li-ion, il a déjà remplacé les accus
Si le courant chute en dessous du seuil l’autre micrologiciel du téléchargement. Ni-MH d’un certain nombre d’appareils
de 200 mA, l’affichage devient : Avant d’utiliser un LCD de substitution, par des cellules au lithium en améliorant
assurez-vous qu’il soit doté d’un contrô- ainsi leurs caractéristiques de manière
4.16V/+199mA/1758mAh leur compatible HD44780. Le résultat de significative. Cela lui permet d’affir-
05:05:29-00:05:24 25 votre travail devrait ressembler au pro- mer que le chargeur a vraiment fait ses
totype du labo d’Elektor (fig. 7). preuves au quotidien. Pour des questions,
Au milieu de la seconde ligne apparaît le commentaires et suggestions, il est à
temps de charge écoulé à courant réduit. Le branchement d’un accu demande une tout moment à l’écoute à l’adresse de
Lorsque la cellule est complètement certaine prudence. En cas d’inversion de courriel [email protected].
chargée, la LED1 s’éteint et on peut sa polarité, un accu chargé risque fort (150580 – version française : Guy Raedersdorf)
avoir l’écran suivant : d’endommager IC4 vu que le circuit ne
supporte, sur ses entrées de mesure,
4.16V 1807mAh qu’une tension négative faible. Pour évi-
05:05:29-00:10:32 Off ter tout risque de ce genre, intercalez Lien
le circuit de protection de la figure 8 [1] www.elektor.fr/150580
Sur la seconde ligne, on trouve mainte- entre le chargeur et la cellule d’accu.
nant au lieu du délai d’attente, l’infor- En cas d’erreur de polarité lors du rac-
mation « Off ». cordement de l’accu, la diode conduit et
le fusible « saute ». Pour une réaction
Si la tension de la cellule est trop faible
pour démarrer une charge normale, le
immédiate, le fusible doit être du type à
action rapide. Et pour qu’en cas d’erreur,
dans l’échoppe
processus de formatage est lancé avec la tension reste la plus faible possible ª150580-1
Circuit imprimé
l’affichage suivant : il est souhaitable d’utiliser pour D une
diode Schottky capable de supporter une ª150580-41
Microcontrôleur programmé,
1.28V/+016mA/0000mAh intensité d’au moins 3 A.
version pour 2×20 car.
Format 00:01:43 30

www.elektormagazine.fr mai/juin 125


questions d’éthique
avons-nous besoin
d’une loi sur les robots ?
Les parlementaires européens demandent une réglementation européenne pour régir les
aspects éthiques et juridiques des robots et de l’intelligence artificielle. Peut-on réglementer ces
technologies émergentes alors qu’elles sont encore en développement ? Doivent-elles encore
mûrir avant d’être examinées par les législateurs ?

Tessel Renzenbrink (Pays-Bas) Principes éthiques


Les lois de la robotique d’Asimov ne peuvent être
converties en langage machine, elles doivent donc
En février dernier, le Parlement européen (PE) a adopté une être comprises et transmises aux concepteurs,
résolution qui appelle la Commission européenne (CE) à pré- ingénieurs, fabricants et opérateurs de robots,
parer un cadre législatif pour réglementer la robotique et l’in- selon le PE. Il propose un code de conduite pour
telligence artificielle (IA). Cette résolution compte 19 pages tous ceux qui sont actifs dans ce domaine. Ils
de recommandations qui détaillent ce qu’un tel cadre devrait devraient adhérer aux quatre principes suivants :
couvrir. De nombreux domaines sont abordés notamment l’in-
novation, la standardisation, les principes éthiques, l’emploi, 1. les robots doivent agir pour servir les intérêts
l’éducation et des règles de responsabilité. Voici dans le détail des humains ;
ce que le Parlement déclare à propos de ces sujets : 2. les robots ne doivent pas blesser un humain ;
3. les humains devraient avoir la possibilité de
Innovation prendre une décision éclairée et non forcée
L’Europe est à la pointe dans la recherche et le développe- sur leur interaction avec les robots ;
ment en IA et robotique. Pour garder sa position de chef de fil, 4. les bénéfices de la robotique devraient être
l’UE devrait augmenter l’enveloppe destinée à la recherche et distribués de façon équitable, en particulier
promouvoir la science ouverte et l’innovation éthique respon- en ce qui concerne les robots utilisés dans les
sable. Deuxièmement, une infrastructure numérique solide est soins (services de santé et à domicile).
la base du développement de ces technologies. L’UE devrait
donc chercher à atteindre la connectivité omniprésente et l’ac- De plus, le PE appelle à considérer les risques
cès universel et maintenir le principe de neutralité de l’internet. potentiels auxquels la population et la société en général
Enfin, l’interopérabilité entre systèmes est essentielle pour des peuvent être exposées par l’IA et la robotique. Le développe-
flux de données en temps réel qui permettent aux robots et ment et l’utilisation de robots doivent donc toujours respec-
à l’IA de devenir plus flexibles et plus autonomes. Les stan- ter les valeurs européennes inscrites dans le traité sur l’Union
dards ouverts et la transparence devraient être mis en avant européenne y compris la dignité humaine, l’égalité, la justice
pour éviter l’enfermement dans des systèmes propriétaires qui et l’équité, la non-discrimination, le consentement éclairé et
réduisent l’interopérabilité. la protection des données.

Standardisation Emploi & éducation


La standardisation et l’interopérabilité sont indispensables pour L’aspect des robots qui a été le plus discuté dans le public est la
stimuler une saine compétition dans les domaines de la robo- perte d’emplois due à la robotisation. Si de nombreux emplois
tique et de l’IA. L’UE devrait donc se concentrer sur l’harmo- disparaissent sans substitution, nous devrons repenser l’or-
nisation internationale de normes techniques en collaboration ganisation des sociétés. L’emploi comme moyen de distribuer
avec les organes européens et internationaux de standardi- les richesses est une notion qui n’aurait plus de sens. Dans ce
sation. Plus proche de la réalité européenne, un règlement contexte, le PE demande à la CE de surveiller cette tendance
valable dans toute l’UE devrait éviter une fragmentation du et d’analyser les conséquences éventuelles pour la viabilité des
marché intérieur et empêcher le développement de systèmes systèmes de sécurité sociale des États membres.
incompatibles dans les différents États membres. Les makers En ce qui concerne l’éducation, le Parlement relève un manque
et autres inventeurs seront heureux d’apprendre que le PE grandissant de professionnels des TIC et que 90% des emplois
insiste sur l’importance de la rétro-ingénierie licite et appelle demandent des connaissances de base en informatique. Il
à la création de « zones d’accueil des bricoleurs » où des expé- recommande à l’UE de développer des systèmes de formation
riences avec des robots sont autorisées. et d’éducation flexibles pour aider les Européens à se former

126 mai/juin 2017 www.elektormagazine.fr


Robots de Little Lost Robot. Licence CC BY 2.0

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)

www.elektormagazine.fr mai/juin 127


bienvenue dans votre
e-choppe Vos favoris :
1. Microscope USB Andonstar
www.elektor.fr/
andonstar-usb-microscope
la rédaction recommande

TL866A Universal Programmer


Les microcontrôleurs modernes, équipés de mémoire flash,
prennent en charge eux-mêmes leur programmation in situ.
Pas besoin de programmateur externe. Pourtant, il n’y a pas
si longtemps, tout amateur d’électronique éclairé rêvait d’un
appareil pour programmer à la fois les PROM, les EPROM,
les GAL et les microcontrôleurs. Plus il accepterait de circuits
différents, plus il serait apprécié. Jadis, un tel merle blanc, si
tant est qu’il existât, était hors de portée pour la plupart d’entre 2. Raspberry Pi 3
nous. Aujourd’hui, pour votre labo, il y a le programmateur www.elektor.fr/raspberry-pi-3
universel  MiniPro TL866A pour une
3. DVD Elektor 2016
somme modique. Ce programmateur www.elektor.fr/dvd-2016
convient parfaitement aux amateurs
4. Horloge de sable Arduino
pour l’étude et la mise au point de leurs
www.elektor.fr/
prototypes, mais aucun des algorithmes
horloge-de-sable-arduino
de programmation n’est certifié. Pour
la production commerciale, préférez un 5. Carte de commande LEGO
pour Raspberry Pi
programmateur professionnel certifié.
www.elektor.fr/lego-rpi-board
Luc Lemmens (labo d’Elektor) 6. 36 Expériences de Physique
avec Arduino
www.elektor.fr/
www.elektor.fr/universal-programmer arduino-36-experiences

Livre BBC micro :bit BBC micro:bit SmartScope Maker Kit

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.

Prix (membres) : 22,45 € Prix (membres) : 15,26 € Prix (membres) : 269,10 €

www.elektor.fr/dmicrobit-livre www.elektor.fr/bbc-micro-bit www.elektor.fr/smartscope-maker-kit

128 mai/juin 2017 www.elektormagazine.fr


e-choppe livres outils de développement projets cd - dvd

maîtrisez les microcontrôleurs


à l’aide d’Arduino 3 édition augmentée e

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

* à commander séparément du livre

Prix (membres) : € 36,50


www.elektor.fr/maitrisez-les-microcontroleurs-3

36 Expériences de Physique DVD Elektor 2016 Elektor Uno R4


avec Arduino

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.

Prix (membres) : 22,41 € Prix (non-membres) : 27,50 € Prix (membres) : 24,95 €

www.elektor.fr/arduino-36-experiences www.elektor.fr/dvd-2016 www.elektor.fr/helektor-uno-r4

www.elektormagazine.fr mai/juin 129


jouez & gagnez

Hexadoku casse-tête pour elektorniciens


Votre magazine se termine toujours et encore par Une grille hexadoku est composée de chiffres du système
hexadécimal, de 0 à F. Remplissez le diagramme de
une grille de sudoku particulière. Éteignez le fer à
16 x 16 cases de telle façon que tous les chiffres
souder, oubliez les écrans de PC et d’oscilloscope, hexadécimaux de 0 à F (0 à 9 et A à F) n’apparaissent
rangez les pinces et les fils. Faites travailler votre qu’une seule et unique fois dans chaque rangée, colonne
et carré de 4 x 4 cases (délimités par un filet gras).
matière grise d’une autre façon : attrapez un crayon
pour remplir la grille d’hexadoku. Certains chiffres, déjà placés dans la grille, en définissent la
situation de départ.
N’oubliez pas d’envoyer votre réponse pour tenter de
Pour participer, inutile de nous envoyer toute la grille, il
gagner un bon d’achat. suffit de nous donner la série de chiffres sur fond grisé.

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.

130 mai/juin 2017 www.elektormagazine.fr


Un événement oublié ?
Vous organisez une conférence, un salon… ou bien vous participez à un séminaire ou tout autre événement qui aurait sa place ici, partagez cette
information avec tous les lecteurs. Envoyez-nous tous les détails à [email protected].

mai 2017 juin 2017


◊ Journée Régionale de l’Électronique ◊ Forum 5i
04/05 – Nantes 01/06 – Grenoble
www.acsiel.fr/JRE www.forum5i.fr

◊ MICM - matériaux innovants et chimie des matériaux ◊ Le temps des hélices –


10 au 11/05 – Bordeaux meeting aérien
www.micm.events 03 au 04/06 -
La Ferté-Alais
◊ NAVEXPO - industrie maritime www.ajbs.fr/presentation-du-meeting-2016
10 au 12/05 – Lorient
www.navexpo.com ◊ MIDEM - forum international du disque, de l’édition musicale et vidéo
06 au 09/06 – Cannes
◊ Salon Iseramat – radioamateurs www.midem.com
13/05 - Tullins-Fures
http://iseramat.org/salon/iseramat-2017 ◊ Smart Manufacturing Summit
07 au 08/06 – Paris
◊ Innorobo - salon et www.smart-manufacturing-summit.com
congrès international de
la robotique ◊ Salon Only Light
16 au 18/05 – Paris 13 au 15/06 – Lyon
http://innorobo.com/fr/ onlylight-event.com
accueil

◊ Viva Technology
◊ Amiens Digital Forum – robotique, drones, objets connectés… 15 au 17/06 – Paris
16/05 – Amiens vivatechnology.com
www.amiensdigital.com

◊ ITS European Congress -


◊ Hydrogaïa - conférences internationales et salon de l’eau services et systèmes de transport intelligent
17 au 18/05 – Montpellier 19 au 22/06 – Strasbourg
www.hydrogaia-expo.com strasbourg2017.itsineurope.com

◊ E-crime & cybersecurity France


18/05 – Paris
www.e-crimecongress.org/event/france

◊ Graphitec - chaîne graphique


(de l’imprimé au multicanal)
30/05 au 01/06 – Paris ◊ Salon de l’aéronautique et de l’espace du Bourget
www.graphitec.com 19 au 25/06 – Paris
www.siae.fr

◊ 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

www.elektormagazine.fr mai/juin 131


Plus de 45 ans d‘expérience
Envoi en 24 heures
Plus de 70 000 produits

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

Mesure à valeur efficace vraie de la tension


et du courant, 1000 V / 10 A
Précision de base 0,1 %
LCD, résolution 6000 counts
Sélection manuelle et automatique de la plage
Mesure de la fréquence, de la capacité et
de la résistance

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

au lieu de 283,99 FLUKE 175 PRO


PROMO
OMO
de

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

Prix du jour! Prix à la date du: 21. 3. 2017 Prix en € h


hors T
T.V.A.,
V A ffrais
i dde port en sus · reichelt
i h l elektronik,
l k ik EElektronikring 1, 26452 Sande (Germany) Les langues de notre boutique:

www.reichelt.fr
MODES DE PAIEMENT INTERNATIONAUX:

ACHETER EN LIGNE TOUT SIMPLEMENT ! ASSISTANCE TÉLÉPHONIQUE: +33 97 518 03 04

Vous aimerez peut-être aussi