FR201709
FR201709
FR201709
le form www.elektormagazine.fr
el
nouv
Dans ce
tte éditi
o
n:
7 projets
petit mais complet :
de labo
4 projets
Raspberry Pi Zero W de lecteu
ATtiny r
premiers pas 45, BL62
0, ESP32
avec la mini-framboise LoRa, Wi- ,
Fi, ZLED7
730
commande « musclée » de servomoteurs
(Arduino) • Q & R : qualité des connecteurs audio
• alarme antibrouillage • mémoire à bulles • pilote de LED
12 V • programmation iPhone/iPad : pilotage par Wi-Fi et BLE • carte DSP à
FPGA pour SDR à bande étroite (2) • premiers pas avec LoRa • analyseur
d’impédance • les BoB d’Elektor • simulateur pour composants inductifs •
sculpture cinétique • ESP32 pour utilisateur exigeant • Internet des Objets :
télécommande tous responsables ! • répulse-martre • programmateur MiniPro TL866A •
Bluetooth Low Energy bus I²C (3) : composants et analyse des erreurs • composants parasites :
vos désirs sont des ordres condensateur métamorphosé en inductance •
projet TABULA : détection capacitive d’objets
Le contrôleur graphique à trois couches utilisé sur la famille PIC32MZ DA 32 bits pilote des
écrans SXGA couleur (Super Extended Graphics Array) 24 bits d’une taille maximale de
12 pouces, tandis qu’une DRAM sur puce ou un DRAM externe adressable, pouvant
atteindre respectivement 32 Mo et 128 Mo, fournissent un espace de stockage étendu.
www.microchip.com/PIC32MZDA
Le nom et le logo de Microchip, le logo Microchip et MPLAB sont des marques déposées de Microchip Technology Incorporated aux États-Unis et dans d’autres pays. REAL ICE est une marque commerciale de Microchip
Technology Inc. aux États-Unis et dans d’autres pays. Toutes les autres marques commerciales ci-dessus mentionnées sont respectivement la propriété des sociétés concernées. © 2017 Microchip Technology Inc. Tous droits
réservés. DS60001490A. MEC2158Fre07/17
ISSN 0181-7450
Dépôt légal : août 2017
CPPAP 1113 U 83713
Directeur de la publication : Donatus Akkermans
@ : service@elektor.fr potager connecté à la mallette musicale en passant par l’ours en peluche espion,
Tél. : (+33) 01.49.19.26.19 presque tous les montages sont animés par un RPi, parfois épaulé par une carte
du lundi au vendredi de 10h à 13h Arduino pour les entrées/sorties analogiques.
Quel débordement d’imagination ! RPi et Arduino ont investi la salle de bain, la cuisine,
Fax : (+33) 01.49.19.22.37
le salon, le jardin, la voiture, le bureau. Jusqu’où l’électronique ira-t-elle se nicher ?
www.elektor.fr | www.elektormagazine.fr
Un peu soûlée par tant de passion innovatrice, je me dirigeais déjà vers la sortie quand
Banque ABN AMRO : Paris sur une affichette je remarque le slogan : « la première lunette connectée ». Tiens,
IBAN : FR76 1873 9000 0100 2007 9702 603 une lunette ? Astronomique, peut-être. Non, la lunette des toilettes, dans laquelle
BIC : ABNAFRPP Hugo van Santen a incorporé des jauges de contrainte, des accéléromètres et une
petite carte électronique. Vos mouvements (gauche-droite, avant-arrière, rotation…)
Publicité : sont mesurés, analysés et transmis par Bluetooth à votre téléphone ou tablette. La
Murielle Lacombled
lunette y est reconnue comme une manette de jeu ! Vous pouvez donc vous adon-
Tél. : +33 (0) 616 35 48 92
murielle.lacombled@eimworld.com ner à votre divertissement favori sans les mains. Quand vous serez revenu de votre
surprise, vous n’aurez aucune difficulté à imaginer à votre tour d’autres applications
DROITS D’AUTEUR : Bluetooth à piloter avec cette manette (ou plutôt posterette ou fissette ?).
© 2017 Elektor International Media B.V.
Si cela vous intéresse : www.weepoo.cool
Toute reproduction ou représentation intégrale ou
partielle, par quelque procédé que ce soit, des pages Mariline Thiebaut-Brodier
publiées dans la présente publication, faite sans
l’autorisation de l’éditeur est illicite et constitue une PS : Thomas Scherer dans sa nouvelle « à jour ? » sur elektormagazine.fr écrivait « Il y aura bien-
contrefaçon. Seules sont autorisées, d’une part, les
tôt davantage de microcontrôleurs que d’habitants sur la planète ! Nous sommes cernés. Je suis
reproductions strictement réservées à l’usage privé du
copiste et non destinées à une utilisation collective, et, même surpris que le siège de mes toilettes continue à fonctionner parfaitement sans le moindre
d’autre part, les analyses et courtes citations justifiées correctif... ». Nous n’en sommes pas loin.
par le caractère scientifique ou d’information de l’oeuvre
dans laquelle elles sont incorporées (Loi du 11 mars 1957
-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
circuits et schémas publiés dans Elektor ne peuvent être
Notre équipe
réalisés que dans des buts privés ou scientifiques et Rédactrice en chef : Mariline Thiebaut-Brodier (redaction@elektor.fr)
non commerciaux. L’utilisation des schémas n’implique Rédaction internationale : Thijs Beckers, Jan Buiting, Jens Nickel
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
et qu’elle n’accepte pas pour publication. Si la Société Coordination : Hedwig Hennekens
éditrice accepte pour publication un article qui lui est Ont coopéré à ce numéro : Patrick Bechler, Thierry Destinobles, Pascal Duchesnes,
envoyé, elle est en droit de l’amender et/ou de le faire
Yves Georges, Robert Grignard, Denis Lafourcade,
amender à ses frais; la Société éditrice est de même en
Guy Matt, Jean-Louis Mehren, Denis Meyer,
droit de traduire et/ou de faire traduire un article et de
Helmut Müller, 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
www.elektormagazine.fr septembre/octobre 3
ce mois-ci télécommande
Bluetooth
40e année – nº 467
septembre/octobre 2017
84
voulu savoir sur...
la qualité des connecteurs audio
52 Rétronique
au temps où les images voulaient parler
66 participez au
concours de vidéoclips Elektor
faites votre cinéma !
petit mais complet :
101 agenda
septembre-octobre 2017 Raspberry Pi Zero W
115 mémoire à bulles premiers pas avec la mini-framboise
drôle de composant n°32 La version mini du nano-ordinateur Raspberry Pi avec le suffixe Zero
126 questions d’éthique était disponible dès fin 2015. En février est apparue une variante
Zero W (« Wireless », sans fil) avec le Wi-Fi et le Bluetooth.
Internet des Objets : tous responsables !
Dans cet article, nous examinerons les procédures
128 l’e-choppe d’Elektor de démarrage de cette nouvelle carte, ses
performances et les avantages que
130 hexadoku
procure la technologie sans fil
casse-tête pour elektorniciens
appliquée à ce minuscule
ordinateur
monocarte. À
titre d’exemple
25
pratique, nous
en coulisse connecterons
un capteur de
température dont nous
enverrons les données
6 ESP32 pour utilisateur exigeant sur le réseau sans fil avec le
programmation avec les outils d’origine protocole MQTT.
20 premiers pas avec LoRa
liaison radio à courte distance
entre deux cartes d’évaluation
30
calcul et choix des inductances,
calcul des pertes 108 hors-circuits de R. Lacoste
composants parasites : condensateur
73 développer facilement
métamorphosé en inductance
des applications pour iPhone/iPad
piloter de l’électronique externe 112 plus c’est petit, plus c’est…
par Wi-Fi et BLE les BoB d’Elektor pilote de LED 12 V
78 sculpture cinétique
quand l’électronique et l’art
se rencontrent...
36
84 télécommande Bluetooth Low Energy
vos désirs sont des ordres
90 le projet TABULA
détection capacitive d’objets
sur des écrans tactiles
102 répulse-martre
90 dB d’ultrasons
www.elektormagazine.fr septembre/octobre 5
ESP32 pour utilisateur exigeant
programmation avec les outils d’origine
Tam Hanna (Slovaquie)
L’article précédent vous a montré combien il est facile de programmer le puissant ESP32 avec l’EDI
d’Arduino [1]. Toutefois si vous voulez utiliser toutes les fonctions du microcontrôleur équipé du WLAN et
du Bluetooth, vous devrez passer par le système de développement original ESP-IDF (IdO Development
Framework). Si vous êtes novice dans le monde Linux ou si vous effectuez une reconversion, ne vous laissez
pas intimider par le travail en ligne de commande avec les différents outils, cet article vous montre le chemin.
ESP32
Chez le constructeur Espressif, on travaille d’habitude avec sudo apt-get install git wget make libncurses-dev
Ubuntu : nous effectuerons les prochaines étapes sous Ubuntu flex bison gperf python python-serial
14.04 LTS. Pour les utilisateurs de Windows, les informations
sont sur [2], pour Apple, suivez [3]. Petite explication : apt-get install ne se soucie pas des outils
(cf. paramètre) déjà présents sur le système cible – ils seront
Le constructeur met à disposition la panoplie d’outils (toolchain) simplement ignorés, sans commentaire.
sous forme de paquets binaires. Pour les utiliser, il faut certains
programmes d’aide que l’on peut télécharger et installer avec Si vous travaillez sous un SE à 64 bits, téléchargez le fichier
la commande suivante : en [4]. Les possesseurs d’un système à 32 bits trouveront
tamhan@TAMHAN14:~$ cd ~/esp
#include “esp_event_loop.h”
#include “nvs_flash.h”
tamhan@TAMHAN14:~/esp$ tar -xzf ~/Downloads/xtensa-
#include “driver/gpio.h”
esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
#include <driver/dac.h>
Pour les nouveaux arrivants sur Unix, quelques mots sur le Pour la boucle d’événements d’un système en temps réel, il
rôle du tilde : il s’agit ici d’un signe unique qui décrit le che- est indispensable d’avoir un gestionnaire des événements qui
min du dossier propre à l’utilisateur connecté et empêche les nous renvoie toujours un OK et n’influence pas davantage
fautes de frappe. l’exécution :
La suite logicielle (toolchain) attend que la variable PATH
contienne un répertoire bien déterminé. On s’y plie en entrant esp_err_t event_handler(void *ctx, system_event_t
la commande export. Retenez que son action prend fin lors- *event) {
qu’on ferme la fenêtre de console : return ESP_OK;
}
tamhan@TAMHAN14:~$ export PATH=$PATH:$HOME/esp/
xtensa-esp32-elf/bin Suit déjà la fonction app_main, qui est appelée au démarrage
du programme du contrôleur. Elle commence par l’initialisation
Reste à télécharger de GitHub la bibliothèque d’assistance de la mémoire flash externe et l’enregistrement du gestion-
proprement dite. Assurez-vous de lancer la commande dans naire d’événements :
le répertoire propre à la suite ESP :
void app_main(void) {
tamhan@TAMHAN14:~/esp$ git clone --recursive https:// nvs_flash_init();
github.com/espressif/esp-idf.git ESP_ERROR_CHECK( esp_event_loop_init(event_
handler, NULL) );
Un premier projet
Pour créer un nouveau projet, il faut d’abord puiser dans GitHub. L’étape suivante sera de porter le code utilisé dans le précédent
Le fabricant du processeur met à disposition un modèle à télé- article. La documentation accessible par [7] montre qu’une
charger en suivant : seule méthode est indispensable :
www.elektormagazine.fr septembre/octobre 7
tamhan@TAMHAN14:~/esp/nmgsample1$ ls -l /dev/ttyUSB0
Done.
La commande indiquée détourne la sortie de dmesg vers l’ou- root@TAMHAN14:~/esp/nmgsample1# sudo reboot
til grep qui recherche la chaîne de caractères contenue dans
la sortie du pilote FTDI et ne fournit en sortie que les lignes Unix actualisera les droits d’accès lors du prochain démarrage.
intéressantes : On s’épargnera ainsi les sempiternels recours à sudo.
tamhan@TAMHAN14:~/esp$ dmesg | grep ‘FTDI USB Serial
Device converter now attached’ Menuconfig
Nous pouvons à présent nous offrir la configuration de l’en-
[ 4.817153] usb 1-1.6: FTDI USB Serial Device vironnement d’exécution. Pour cela, comme souvent, l’outil
make nous vient en aide pour le traitement des instructions
converter now attached to ttyUSB0
de compilation.
Ce qui compte ici, c’est la valeur qui indique l’endroit où le nou- Comme l’édition manuelle de Makefiles est un travail ingrat,
vel appareil doit être implanté dans l’arborescence. Dans notre on a recours à menuconfig qui constitue un outil de traitement
cas, il s’agit de ttyUSB0, le chemin sera donc /dev/ttyUSB0. standardisé plus ou moins puissant. Il n’y a pas que l’ESP-IDF
Comme l’accès à l’appareil sériel est réservé normalement au qui se sert de menuconfig, on y fait appel aussi lors de compi-
super utilisateur, nous voulons permettre à notre compte uti- lation du noyau et des images du système d’exploitation, par
lisateur d’accéder au port. Il faut pour cela d’abord déterminer exemple OpenWRT.
à quel groupe d’utilisateurs l’appareil appartient. On l’obtient La variante de menuconfig de l’ESP-IDF attend une variable
avec une variante spéciale de l’instruction ls qui donne des nommée IDF_PATH, qui pointe vers le répertoire dans lequel
informations supplémentaires sur un répertoire ou un élément se trouve la partie principale du code de la bibliothèque. Voici
interrogé : comment l’appeler :
Figure 2. L’ESP-IDF est ici plus lent que l’EDI d’Arduino. Figure 3. Le réglage du mode Release n’apporte pas grand-chose.
www.elektormagazine.fr septembre/octobre 9
esp_err_t ret; #include “esp_bt_main.h”
esp_bt_controller_config_t bt_cfg = #include “sdkconfig.h”
BT_CONTROLLER_INIT_CONFIG_DEFAULT();
ret = esp_bt_controller_init(&bt_cfg); Encore un gestionnaire
Au départ, on a développé le Bluetooth LE (Low Energy) pour
en faire un système de communication à basse consommation,
. . .
mais l’utilisation de méthodes synchrones et d’interrogations
D’abord, appeler la fonction esp_bt_controller_init qui s’oc- successives annule ces avantages en surchargeant le proces-
cupe de l’initialisation du module Bluetooth dans son ensemble. seur maître. Pas étonnant, dès lors, que la pile Bluetooth LE
L’objet de configuration est transféré à une macro qui répond soit utilisée purement en asynchrone et exige l’introduction
par une implémentation standard de la structure Bluetooth. de gestionnaires d’événements.
Suit alors la définition du mode de fonctionnement du contrô- gap_event_handler est en charge des événements du protocole
leur Bluetooth. Ici nous utilisons BTDM pour activer le Bluetooth GAP. Sa tâche principale est l’émission de paquets d’annonces
LE et le Bluetooth classique. On appelle encore deux fonctions (advertisement) pour informer l’autre matériel de la présence
pour faire le ménage dans la pile de mémoire de Bluetooth et de l’appareil. L’appel de esp_ble_gap_start_advertising notifie
attribuer le temps de calcul : à la pile de commencer un nouveau cycle d’annonces :
. . . case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT:
esp_ble_gap_start_advertising(&test_adv_
ret = esp_bluedroid_enable(); params);
break;
. . .
case ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT:
L’implémentation Bluetooth LE de l’ESP32 fonctionne surtout esp_ble_gap_start_advertising(&test_adv_
en asynchrone. C’est pourquoi on a besoin de rédiger deux params);
gestionnaires d’événements pour les événements GATT et break;
GAP [8]. Enfin, une application pour le protocole GATT est
encore annoncée, dans laquelle on pourra inscrire ultérieure- Les différents paramètres de la commande d’annonce sont
ment des attributs : délivrés sous forme de structure esp_ble_adv_params_t dont
les réglages peuvent être repris à l’identique de l’original :
esp_ble_gatts_register_callback(gatts_event_
handler); static esp_ble_adv_params_t test_adv_params = {
esp_ble_gap_register_callback(gap_event_handler); .adv_int_min = 0x20,
.adv_int_max = 0x40,
esp_ble_gatts_app_register(0); //App-ID 0 .adv_type = ADV_TYPE_IND,
return; .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
} .channel_map = ADV_CHNL_ALL,
.adv_filter_policy =
ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
Pour utiliser les API de Bluetooth, il faut inclure un groupe d’en-
têtes. J’ignore pourquoi Espressif ne propose pas de « Catch- };
All-File » qui mettrait à disposition également tous les en-têtes :
Fait intéressant, l’usage de la pile suppose l’inclusion du fichier
#include “esp_system.h” string.h de la manière suivante :
#include “esp_log.h”
#include “nvs_flash.h” #include <string.h>
#include “bt.h”
Il est ensuite nécessaire de déclarer les domaines de mémoire
#include “bta_api.h”
dans lesquels la pile Bluetooth peut déposer des informations
#include “esp_gap_ble_api.h”
temporaires. On crée en plus une structure du type esp_attr_
#include “esp_gatts_api.h” value_t qui décrit l’attribut à créer :
#include “esp_bt_defs.h”
#include “esp_bt_main.h” #define GATTS_DEMO_CHAR_VAL_LEN_MAX 0x40
esp_gatt_srvc_id_t service_id;
uint16_t service_handle;
esp_bt_uuid_t descr_uuid; esp_ble_gatts_start_service(service_
esp_bt_uuid_t char_uuid; handle);
esp_ble_gatts_add_char(service_handle,
Le lecteur attentif se demande maintenant pourquoi deux carac-
téristiques sont nécessaires à la réalisation de notre petit ser- &char_uuid,
vice. Nous ajoutons ici à la caractéristique propre un descrip- ESP_GATT_PERM_READ |
teur qui donne des informations sur les données contenues ESP_GATT_PERM_WRITE,
dans la caractéristique. ESP_GATT_CHAR_PROP_BIT_
READ |
Le gestionnaire d’événements proprement dit est responsable ESP_GATT_CHAR_PROP_BIT_
des différents événements survenus dans le Bluetooth LE. Par WRITE |
manque de place, on se limitera ici à la réalisation d’une carac- ESP_GATT_CHAR_PROP_BIT_
téristique en lecture seule, ce qui mène au code suivant :
NOTIFY,
&gatts_demo_char1_val,
static void gatts_event_handler(esp_gatts_cb_event_t
NULL);
event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_
break;
param_t *param)
{
switch (event) { C’est la fonction esp_ble_gatts_send_response qui est utilisée
pour répondre à la demande de lecture comprise dans la carac-
case ESP_GATTS_REG_EVT: téristique. La fonction met dans un champ de bits la réponse
avec les informations demandées :
ESP_LOGI(GATTS_TAG, “REGISTER_APP_EVT, status
%d, app_id %d\n”, param->reg.status, param->reg.
case ESP_GATTS_READ_EVT: {
app_id);
esp_gatt_rsp_t rsp;
service_id.is_primary = true;
service_id.id.inst_id = 0x00; memset(&rsp, 0, sizeof(esp_gatt_rsp_t));
www.elektormagazine.fr septembre/octobre 11
puissance maximale de l’ESP32, vous devrez vous accommo-
case ESP_GATTS_ADD_CHAR_EVT: { der de l’IDF. Si vous travaillez déjà avec d’autres contrôleurs
uint16_t length = 0; à 32 bits, vous ne devriez pas rencontrer de difficultés à tra-
const uint8_t *prf_char; vailler avec l’ESP-IDF.
(160457 – version française : Robert Grignard)
//gl_profile_tab[PROFILE_A_APP_ID].char_
handle = param->add_char.attr_handle;
descr_uuid.len = ESP_UUID_LEN_16;
descr_uuid.uuid.uuid16 =
ESP_GATT_UUID_CHAR_CLIENT_CONFIG;
esp_ble_gatts_get_attr_value(param->add_
char.attr_handle, &length, &prf_char);
esp_ble_gatts_add_char_descr(service_
handle, &descr_uuid, ESP_GATT_PERM_READ | ESP_GATT_
PERM_WRITE, NULL, NULL);
}
break;
case ESP_GATTS_DISCONNECT_EVT:
esp_ble_gap_start_advertising(&test_adv_
params);
break;
default:
break;
}
}
Conclusion
Même si les prestations de l’API d’ESP-IDF ne sont pas à la
hauteur de celle d’Arduino, si vous voulez tirer parti de la Figure 5. La caractéristique Bluetooth créée par l’ESP32 est facile d’accès.
Liens
[1] www.elektormagazine.fr/160454
[2] https://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html
[3] https://esp-idf.readthedocs.io/en/latest/get-started/macos-setup.html
[4] https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
[5] https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
[6] www.elektormagazine.fr/160457
[7] http://esp-idf.readthedocs.io/en/latest/api-reference/peripherals/dac.html
[8] https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles
[9] https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=en
[10] https://github.com/espressif/esp-idf/tree/07b61d5/examples/bluetooth
Elektor, c'est bien plus qu'un simple magazine. C'est une communauté d'électroniciens, du débutant
au professionnel, désireux d'apprendre, de concevoir et de partager une électronique qui étonne.
Boutique en ligne d'Elektor : la caverne d’Ali Magazine Elektor : six numéros par an
Baba des électroniciens ! 10 % de remise d’électronique inédite (projets, bancs d’essais,
permanente pour les membres GREEN et GOLD. cours, trucs et astuces, actualité…).
www.elektor.fr www.elektormagazine.fr
facebook.com/ElektorFR twitter.com/Elektor
PROJET DU LABO
commande « musclée »
de servomoteurs
Sunil Malekar (labo d‘Elektor en Inde)
www.elektormagazine.fr septembre/octobre 15
Description du circuit
Le signal EMG capté par les électrodes
est faible, il doit être amplifié. Habi-
tuellement, on emploie dans ce cas un
amplificateur d’instrumentation à haute
impédance d’entrée. L’inconvénient de
cet étage d’entrée est que l’on recueille
aussi du bruit (secteur, interférence RF),
surtout si les cordons de raccordement
aux électrodes sont longs. Un amplifi-
cateur d’instrumentation nécessite par
ailleurs un certain nombre de compo-
sants. Par conséquent, nous avons fait un
compromis entre simplicité et sensibilité
en utilisant un amplificateur différentiel
classique (IC2.A).
La sortie de l’amplificateur différentiel
Figure 1. On trouve facilement sur l’internet des électrodes adaptées à ce projet ainsi que du gel attaque un filtre passe-bande du second
conducteur.
TO ARDUINO UNO
DIGITAL (PWM~)
AREF
GND
SDA
SCL
~11
~10
~6
~5
~3
~9
13
12
2
8
K2 K1 +5V
10 9 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 K6
1
R18
2
220R
LED1 C11 3
R4
47k R8 100n
15k C8
R1
2
K5 1k C5 C6
ELECTRODES
3 1 5 330n
R2 IC2.A R9 R10
2 3 7 10
1k 470n 470n IC2.B 1k 1k
1 6 8
R3 IC2.C
9
+5V
47k
R7
10k R12
R5 R6
10k
4 8 R11
15k
18k
C7
IC2 IC3
18k
11 4
330n
IC2 = TL084ACN
IC3 = TL082CP
–5V
12
D1 +5V
14 3
IC2.D D2
13 1 C1 C2
1N4148 IC3.A
2 5
2V8
R14 100u 50V 100n 7
IC3.B
100k P1 6
8
R13 R15 R16 R17
C9 500k C10 2 +V 7
C+ OSC
–5V
27k
10k
C3
1k
1k
1 2 3 4 5 6 7 8 1 2 3 4 5 6
K3 K4
130343 - 11
AN0
AN1
AN2
AN3
AN4
AN5
GND
GND
5V
VIN
RESET
3.3V
IOREF
NC
TO ARDUINO UNO
POWER ANALOG IN
Figure 2. Un ampli différentiel, un filtre passe-bande et un détecteur d’enveloppe conditionnent le signal EMG avant numérisation.
ordre (IC2.B et IC2.C) afin d’éliminer les numérique, puis cette valeur est adaptée coller. La troisième électrode est impor-
signaux indésirables. Son gain total est à la plage de débattement de 0 à 180° tante aussi, et doit être reliée à la masse
de 2,4 environ, pour une bande passante du servomoteur grâce à la fonction map. du shield. Si cette électrode n’est pas
de 20 Hz à 500 Hz et une atténuation Les valeurs du convertisseur ainsi mises ou est mal reliée à la masse, les ampli-
de 12 dB par octave. à l’échelle sont transmises au servomo- ficateurs satureront et les contractions
Le signal filtré est à nouveau amplifié par teur en utilisant la bibliothèque Servo. Le musculaires ne seront pas détectables.
IC2.D, puis redressé par la diode D1. Le servomoteur doit être relié à la broche 9 Demandez à votre cobaye de relâcher
condensateur C9 permet l’extraction de de l’Arduino Uno. le muscle auquel le système est relié, et
l’enveloppe du signal. La résistance R15 Les servomoteurs ont pour la plupart réglez P1 pour que la LED s’allume. Un
décharge partiellement C9 pour éviter sa trois fils : Positif (+), Négatif (−) et allumage franc est préférable.
saturation. L’amplification de l’enveloppe Commande. Faites attention : habituel- La contraction du muscle doit faire tour-
est confiée à IC3.A, avant d’être légère- lement, le positif est le fil du milieu, mais ner le servomoteur tandis que la LED
ment lissée par C10/R17. pas toujours. s’éteint. Après relâchement de l’effort,
Le signal passe par une diode Zener le servomoteur doit revenir et la LED
de 2,8 V (D2) avant d’atteindre le conver- Un mot sur la sécurité s’allumer à nouveau.
tisseur analogique-numérique de la carte Il est tentant de connecter l’Arduino au Il faut veiller à porter des chaussures
Arduino. Cette diode évite les déclenche- port USB de l’ordinateur. Avec un por- lors de l’utilisation de ce circuit, car le
ments intempestifs du logiciel dus à des table alimenté sur batterie, cela ne pose sujet doit être isolé de la terre, sinon les
variations du signal EMG. pas de problème ; mais si l’ordinateur interférences avec le signal de référence
L’ajustable P1 permet de fixer avec pré- est relié au secteur, un danger existe, car donneront des résultats aléatoires.
cision le gain d’IC3.A. La LED s’allume il y a — en théorie — possibilité qu’une (130343 – version française : Guy Matt)
lorsque, le muscle étant relâché, le signal électrode se retrouve reliée au secteur, ce
est à peu près dans la plage prévue. qui est dangereux. Nous vous recomman- Lien
Ce circuit est réalisé sous forme de carte dons donc fortement d’alimenter le cir- [1] www.elektormagazine.fr/130343
d’interface Arduino (shield). Un conver- cuit avec une pile de 9 V ou une bat-
tisseur de tension MAX660 (IC1) inverse terie de secours USB (power bank).
la tension d’alimentation afin d’obtenir Évitez à tout prix de relier votre sujet
une tension symétrique de ±5 V pour d’expérimentation aux lignes du secteur !
le shield.
Qu’on amène le cobaye ! dans l’e-choppe
Micrologiciel Reliez le shield à l’Arduino, puis connec-
ª130343-1
Il a été écrit dans l’environnement tez-y les câbles. Fixez les électrodes sur
circuit imprimé nu de la
Arduino. Le signal d’entrée, appliqué au un muscle du bras ou de la jambe du commande musclée
convertisseur analogique-numérique de cobaye. La peau doit être propre avant
la broche A0 est converti en une valeur de fixer les électrodes ; elles doivent bien
www.elektormagazine.fr septembre/octobre 17
PROJET DE LECTEUR
alarme antibrouillage
système d’alarme contre les brouilleurs
Les systèmes d’alarme à liaison radio sont très répandus, bon marché et faciles à installer, mais ils ont un
gros inconvénient : un malandrin peut les mettre en échec et mat sans problème avec un brouilleur. Le
montage proposé ici est aussi un système d’alarme, mais pour vous avertir qu’un brouilleur perturbe votre
système d’alarme domestique !
Walter Meyer privée. Pour dire la chose clairement : qui se fait prendre à utiliser un brouilleur
dans l’Union européenne (de même peut s’attendre à une amende en euros
Après de nombreux articles sur ce sujet qu’aux États-Unis et au Japon), à cinq chiffres !
dans les médias, le point faible des aucune personne privée ni entre-
alarmes à liaison radio devrait être bien prise ne peut promouvoir, commer- Trafic radio en boîte
connu. Avec un brouilleur ou un émet- cialiser, acheter ou, à fortiori, utili- Le circuit de l’alarme antibrouillage
teur portatif dans la bande des 433 MHz, ser de tels brouilleurs [1]. Car il n’est attend justement le moment où il sera
on peut détraquer de manière continue jamais question de protection de la vie brouillé pour donner l’alarme via une
le trafic radio d’un système d’alarme. privée. En fait, ces appareils, aujourd’hui sirène et une liaison filaire reliée à la
Il suffit d’émettre une onde porteuse, petits et abordables, servent à des entre- centrale d’alarme. Comme le montre la
alors la centrale ne recevra plus aucun prises criminelles comme la mise hors figure 1, le circuit se compose de cinq
des signaux, par nature très faibles, des service du système de localisation d’un blocs fonctionnels, six si l’on compte l’ali-
détecteurs. Quelle misère ! véhicule volé ou la neutralisation d’une mentation. Trois d’entre eux sont inten-
Dans les publicités sur internet, ces centrale d’alarme. De plus, un brouillage tionnellement dotés d’un fond vert, car
brouilleurs sont présentés comme un peut perturber ou empêcher des actions il s’agit de modules complets récupérés
moyen de bloquer le trafic des téléphones vitales comme un appel aux pompiers ou sur de vieux appareils ou qu’on peut se
portables, GPS, réseaux sans fil et autres à police-secours, ce qui paraît justifier procurer sur l’internet à un prix rendant
matériels radio afin de protéger la sphère les lourdes sanctions encourues : celui sans intérêt une réalisation personnelle.
100k
8 4
VCC R
courte impulsion négative à un émetteur 7
DIS
10k
à 433,92 MHz. Il s’agit là d’un détecteur NE555
3
OUT Test
1k
standard d’ouverture de porte/fenêtre en 2
TR
6
10k
THR
version radio, représenté sur le schéma GND CON
comme le premier composant prêt à 1 5
10k
47u 16V RE
mander un contact Reed avec la sortie
100k
470k
10k
1k
d’un circuit logique TTL, à condition que 8 4 ALARM 8 4 12V
VCC R VCC R
le contact soit doté d’une diode de protec- 2
TR
2
TR
100u 16V
2 min
10k
10n
tion interne ou qu’une diode soit ajoutée NE555
OUT
3
NE555
OUT
3
1M 10k
en externe.) Selon le câblage du contact 7
DIS
7
DIS
6
THR
6
THR
BC549B
de porte/fenêtre, une adaptation peut
100k
1k
GND CON GND CON
être nécessaire : l’impulsion négative doit 1 5 1 5
ALARM
www.elektormagazine.fr septembre/octobre 19
premiers pas avec LoRa
liaison radio à courte distance entre deux cartes d’évaluation
Tam Hanna
Le travail avec LoRa est rendu difficile parce qu’il faut norma- développement MDK trois exemples d’applications. À côté de
lement une passerelle, parfois coûteuse. Mais les premiers pas ClassA, qui sert à réaliser un client (lié à une passerelle), on
sont possibles sans connexion à l’internet. Le bouclier SX1272 trouve aussi AT_Slave, pour concevoir un modem.
proposé par STM est compatible avec diverses cartes Nucleo et Ici, seule l’application Ping-Pong nous intéresse : elle établit
les dote d’une pile LoRa de qualité. De plus, l’offre comprend une liaison entre deux modules LoRa de même type et se passe
également un kit composé d’un bouclier, d’une antenne et d’une d’une (coûteuse) passerelle.
carte avec un contrôleur (voir l’encadré « De quoi avez-vous Comme la pile LoRa, propriété de STM, supporte un grand
besoin ? »). Cet article montre comment on peut utiliser deux nombre de cartes à contrôleur différentes et divers modules
de ces cartes pour réaliser un échange de données. ainsi que trois EDI différents, son arborescence de répertoires
L’offre de STM est particulièrement intéressante parce qu’elle est relativement compliquée. Le projet qui nous intéresse réside
ne se limite pas à la fourniture du matériel : l’acquisition des dans le répertoire Projects\Multi\Applications\LoRa\PingPong\
cartes ouvre le droit d’accès à une collection d’applications de SW4STM32\STM32L073RZ-Nucleo\sx1272mb2das. Pour com-
référence. Nous en utiliserons une comme base d’un petit pro- mencer, importez-le comme d’habitude dans l’espace de tra-
jet qui permet d’évaluer le temps de parcours du signal par la vail, vous aurez ainsi le loisir d’en admirer la structure (fig. 2).
commutation des broches d’un port GPIO. Avec la commande Run ª Ac6 STM32 Debugging, envoyez
ensuite le programme à la première des deux cartes contrôleur.
Premiers pas L’EDI délivrera et exécutera le code avec succès. Au débogage
Une fois en possession du kit, il suffit de raccorder au module dans OpenSTM32, on n’arrive normalement que jusqu’au point
l’antenne fournie et d’avoir à disposition un câble mini-USB d’arrêt situé au point d’entrée de main(). Ensuite, à cause d’une
pour réaliser une connexion avec un PC. Pour les pas suivants, erreur documentée sous [2], se produisent des réinitialisations à
nous utiliserons l’environnement de développement gratuit répétition avec affichage sur la console de messages du genre :
OpenSTM32 (System Workbench) et les bibliothèques CUBE
pour l’abstraction du matériel. Les habitués de Keil peuvent Polling target stm32l0.cpu failed, trying to
bien entendu s’appuyer sur leur EDI favori. reexamine
Le site web de STM n’a pas la réputation d’être particulière-
ment clair et lisible. Le premier pas est le téléchargement de Examination failed, GDB will be halted. Polling again
la pile LoRa, disponible sous [1] (fig. 1). in 6300ms
Il faut ensuite extraire cette archive d’environ 100 Mo dans le
répertoire C:\Users\TAMHAN\STM32Cube\ - remplacez TAMHAN Pour le débogage, il est recommandé d’utiliser Keil ou IAR,
par votre nom d’utilisateur. STM fournit dans le cadre du kit de mais comme, pour le moment, nous n’avons pas besoin du
OnRxDone
RssiValue=-11 dBm, SnrValue=29
rxDone
...PONG
OnTxDone
txDone
. . .
RadioEvents.TxDone = OnTxDone;
RadioEvents.RxDone = OnRxDone;
RadioEvents.TxTimeout = OnTxTimeout;
RadioEvents.RxTimeout = OnRxTimeout;
RadioEvents.RxError = OnRxError;
Radio.Init( &RadioEvents );
Radio.SetChannel( RF_FREQUENCY );
www.elektormagazine.fr septembre/octobre 21
void OnRxDone( uint8_t *payload, uint16_t size,
int16_t rssi, int8_t snr ) Buffer[0] = ‚P‘;
{ Buffer[1] = ‚I‘;
Radio.Sleep( ); Buffer[2] = ‚N‘;
BufferSize = size; Buffer[3] = ‚G‘;
PRINTF(„OnRxDone\n“); else {
PRINTF(„RssiValue=%d dBm, SnrValue=%d\n“, rssi, Radio.Rx( RX_TIMEOUT_VALUE );
snr); }
} State = LOWPOWER;
break;
Les autres méthodes se comportent grosso modo de la même
manière. La seule différence est qu’elles n’acceptent pas de Nous pouvons maintenant nous occuper du problème le plus
charge utile et s’en retrouvent plus compactes. important : l’état RX. Commençons par considérer cet état en
Il est temps de retourner au programme principal. La boucle tant que maître – pour des raisons de place, le code ci-dessous
sans fin est conçue comme un automate à nombre fini d’états. a été fortement abrégé :
Pour les profanes : il s’agit d’un programme qui passe conti-
nuellement d’un état à un autre. La réalisation de telles struc- case RX:
tures – très utilisées dans le domaine de l’embarqué – passe if( isMaster == true ){
généralement par un enum qui liste les états possibles. Dans if( BufferSize > 0 ){
le cas de notre programme, cela prend la forme suivante : if( strncmp( ( const char* )Buffer,
( const char* )PongMsg, 4 ) == 0 )
typedef enum {
{
LOWPOWER, . . .
RX,
RX_TIMEOUT, Buffer[0] = ‚P‘;
RX_ERROR, Buffer[1] = ‚I‘;
TX, Buffer[2] = ‚N‘;
TX_TIMEOUT, Buffer[3] = ‚G‘;
}States_t;
for( i = 4; i < BufferSize; i++ ){
Buffer[i] = i - 4;
Commençons avec l’état timeout après l’envoi d’informations : }
dans ce cas le module radio a pour instruction d’accepter des
données. Une valeur est passée à la méthode Rx, elle indique PRINTF(„...PING\n“);
le délai après lequel un autre timeout doit être déclenché : DelayMs( 1 );
Radio.Send( Buffer, BufferSize );
case TX_TIMEOUT: }
Radio.Rx( RX_TIMEOUT_VALUE ); Le premier cas concerne un maître qui reçoit un message PONG
State = LOWPOWER; d’un esclave. Sa réaction est d’envoyer un autre message PING
break; pour maintenir la communication ouverte.
Le programme Ping-Pong travaille avec une combinaison auto- Le cas de la réception d’un paquet PING est plus délicat : cette
configurée de maîtres et d’esclaves. En cas de problème de situation indique qu’il existe déjà un autre maître. Dans le cas
réception de données, le maître ordonne au module radio d’en- de notre réalisation expérimentale, la réaction se limite à pas-
voyer un autre paquet PING. Un esclave retourne tout simple- ser immédiatement à l’état d’esclave :
ment à l’état RX (réception) :
else if( strncmp( ( const char* )Buffer,
case RX_ERROR: ( const char* )PingMsg, 4 ) == 0 ){
isMaster = false;
if( isMaster == true ) { Radio.Rx( RX_TIMEOUT_VALUE );
else {
isMaster = true;
Radio.Rx( RX_TIMEOUT_VALUE );
}
}
}
else{
if( BufferSize > 0 ){
if( strncmp( ( const char* )Buffer,
Figure 4. Quelques-unes des broches sont partagées entre les
( const char* )PingMsg, 4 ) == 0 ){
connecteurs Morpho et Arduino (dessin : STMicroelectronics).
Buffer[0] = ‚P‘;
Buffer[1] = ‚O‘;
Buffer[2] = ‚N‘; cartes. Au démarrage, nous initialisons les deux broches :
Buffer[3] = ‚G‘;
for( i = 4; i < BufferSize; i++ ){ GPIO_InitTypeDef GPIO_InitStructure;
Buffer[i] = i - 4;
} int main( void ) {
DelayMs( 1 ); . . .
Radio.Send( Buffer, BufferSize );
PRINTF(„...PONG\n“); HAL_Init( );
} __GPIOC_CLK_ENABLE();
GPIO_InitStructure.Pin = GPIO_PIN_5 | GPIO_PIN_8;
La question intéressante est de savoir ce qui se passe à la GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
réception d’un autre type de message. Comme la réalisation est GPIO_InitStructure.Pull = GPIO_NOPULL ;
limitée à un maître et un esclave, STM interprète cela comme GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
l’ordre de passer en mode maître :
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
else {
isMaster = true; Il n’y a guère d’intéressant ici que la petite astuce suivante :
Radio.Rx( RX_TIMEOUT_VALUE ); dans les versions récentes de CUBE, les instances de GPIO_
} InitStructure peuvent gérer l’initialisation simultanée de plu-
} sieurs broches.
}
L’action suivante est la commutation des sorties (voir l’encadré
State = LOWPOWER; « Pourquoi commuter les sorties ? »). Pour commencer, nous
break; commutons la broche 5 du maître à chaque envoi de données :
case RX:
Allons un peu plus loin
Intéressons-nous à la question de la durée d’un échange de if( isMaster == true ){
paquets de données à travers une liaison optimale. Pour cela, if( BufferSize > 0 ) {
un oscilloscope à mémoire numérique est l’outil idéal. Pour if( strncmp( ( const char* )Buffer,
la mesure, nous modifions le programme pour qu’il change ( const char* )PongMsg, 4 ) == 0 ) {
l’état de l’une des sorties de la carte contrôleur au moment de
l’émission par le maître. Lorsque l’esclave reçoit un paquet de . . .
données, c’est une autre sortie qui change d’état.
La carte contrôleur incluse dans le kit porte la désignation HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_5);
NUCLEO-L073RZ, pour laquelle le document UM1724 [4] du Radio.Send( Buffer, BufferSize );
constructeur fournit l’identification des broches du port GPIO.
La figure 4 en reproduit une partie. L’étape suivante est la commutation de la broche 8 quand l’es-
Nous utilisons à nouveau le même programme sur les deux clave reçoit des données :
www.elektormagazine.fr septembre/octobre 23
Figure 5. Dans des conditions optimales, un cycle d’émission-réception Figure 6. Entre les deux commutations – dans des conditions optimales –
dure 250 ms environ. il s’écoule 10 ms environ.
else if( strncmp( ( const char* )Buffer, Pourquoi commuter les sorties ?
( const char* )PingMsg, 4 ) == 0 ) {
Pour mesurer un temps de fonctionnement, un électronicien
penserait tout d’abord à l’émission d’impulsions. Cela n’est
isMaster = false;
pas approprié ici dans la mesure où la reconnaissance
Radio.Rx( RX_TIMEOUT_VALUE );
d’impulsions courtes pour des temps de fonctionnement
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);
longs exige l’emploi d’une fonction de détection de pic.
}
L’auteur propose sous [7] une vidéo en anglais qui traite le
sujet plus en détail.
Après avoir démarré le programme modifié (téléchargeable
sous [5]) sur les deux cartes, nous sommes prêts pour la
moisson de données. La broche 8 de la carte qui joue le rôle
d’esclave est connectée au canal 1 de l’oscilloscope, tandis que De plus, le programme de démonstration présenté ici, ainsi
la broche 5 de l’autre carte est raccordée au canal 2. que les cartes STM32, offrent diverses possibilités d’exten-
Attention ! Sur pratiquement tous les oscilloscopes, tous les sion. Bien évidemment, on pourrait par ex. lire des capteurs
canaux utilisent la même masse et, par conséquent, les ali- et transmettre les valeurs de mesure – l’auteur attend avec
mentations des deux cartes doivent être au même potentiel. plaisir les courriels de lecteurs (tamhan@tamoggemon.com)
Les figures 5 et 6 montrent les résultats de mesure de durée pleins d’idées.
obtenus. (160271 – version française : Helmut Müller)
La question de la portée
Même si c’est tentant, nous nous abstiendrons de nous occu- Liens
per de la portée des transmissions. Les transmetteurs mis à
[1] www.st.com/content/st_com/en/products/embedded-sof-
disposition par STM ne permettent pas de tirer des conclusions
tware/mcus-embedded-software/stm32-embedded-sof-
valides sur le comportement d’ensemble de LoRa – les chiffres
tware/stm32cube-expansion-software/i-cube-lrwan.html
records publiés dans la presse ne sont valables que dans le cas
d’utilisation d’antennes nettement plus onéreuses. [2] http://nuttx.org/doku.php?id=wiki:howtos:jtag-debugging
Ce qu’on peut dire, c’est que LoRa, même avec les antennes [3] https://ttssh2.osdn.jp/index.html.en
peu puissantes fournies par STM, se montre très largement
[4] www.st.com/content/ccc/resource/technical/document/
supérieur au routeur Wi-Fi (déjà très efficace) de l’auteur. Dans
user_manual/98/2e/fa/4b/e0/82/43/b7/DM00105823.
sa maison construite en béton généreusement ferraillé, il n’y
pdf/files/DM00105823.pdf/jcr:content/translations/en-
a pas d’endroit où la réception soit perturbée.
.DM00105823.pdf
[5] www.elektormagazine.fr/160271
Conclusion
Le matériel de STM, au prix d’environ 130 € pour deux cartes, [6] www.st.com/en/evaluation-tools/p-nucleo-lrwan1.html
reste encore accessible. Si vous voulez faire vos premiers pas [7] www.youtube.com/watch?v=EirGe5LzSkc
dans le monde de LoRa, vous ne regretterez certainement
pas l’achat de ces cartes de développement. Du fait de ce prix
modeste, vous n’aurez pas trop de mal à ignorer les faiblesses
de l’environnement de développement gratuit.
Markus Ulsass (Allemagne) est qu’il est disponible pour tous les environnements PC et
qu’il ne nécessite pas une décompression préalable de l’image
Au prix de dix dollars hors taxes, le nouveau Raspberry Pi Zero W téléchargée : une fois qu’on l’a installé et démarré, on lui indique
s’avère près de deux fois plus cher que son prédécesseur, mais l’image appropriée qui est copiée sur la carte SD choisie.
il est maintenant doté de fonctions radio Wi-Fi et Bluetooth, Ensuite on enfiche la carte SD sur le Zero W, on connecte un
indispensables pour beaucoup de projets. Cela permet de écran sur la sortie HDMI (au besoin à travers un adaptateur), un
réaliser à peu de frais des projets de robots, de domotique clavier et une souris (par l’USB) et, en dernier, l’alimentation.
intelligente et d’Internet des Objets qui tirent profit de la petite Attention : des deux prises micro-USB, il faut utiliser pour
taille et de la consommation électrique réduite du Zero W. La l’alimentation celle de droite, l’ordinateur posé à plat devant
puce monocœur SoC BCM2835 de Broadcom est cadencée soi, la carte SD se trouvant à gauche (fig. 2).
à 1 GHz (512 Mo de RAM). Le Zero W n’est donc pas aussi Le Raspberry Pi Zero W doit alors démarrer dans l’interface
rapide que son grand frère, le Raspberry Pi 3, mais cela reste graphique Pixel du système d’exploitation. On en a alors
bien suffisant pour la plupart des projets. terminé avec l’installation d’un système Linux opérationnel
En France, kubii [1] est le distributeur officiel du Zero W. Malgré sur le micro-ordinateur.
les frais de port, la boutique britannique Piromoni [2] offre une
alternative guère plus chère et des livraisons raisonnablement Réglage fin
rapides. NdT : les procédures qui suivent s’appliquent à la distribution
Le Zero W est équipé de ports mini-HDMI et micro-USB- de Raspbian du 21/06/2017. Elles peuvent changer dans les
On-The-Go. La carte est livrée dépourvue de connecteur
à 40 broches, il faut donc l’ajouter au besoin à la commande
ou choisir l’un des kits proposés par les boutiques.
www.elektormagazine.fr septembre/octobre 25
suivante, on valide FR.UTF-8 comme Default locale for the
system environment et on confirme par <OK>. On redémarre
par la commande sudo reboot.
La langue de l’environnement est maintenant le français,
toutefois le clavier n’a pas changé. On retourne donc
dans raspi-config > 4 Localisation Options où l’on choisit
I3 Change Keyboard Layout. Dans la fenêtre suivante, on
choisit PC générique 105 touches (intl), suivi de Autre, puis
successivement de Français, Français variante (sans touche
morte), disposition par défaut pour le clavier, touche Alt de
droite. On finit par retourner au menu principal qu’on quitte par
<Finish>. On peut alors constater que la touche A ne produit
Figure 2. Connexions au Zero W. plus un q, mais bien un a.
#!/usr/bin/python liste
#LED_Blink.py du matériel
import RPi.GPIO as GPIO #Inclure la bibliothèque GPIO
import time #Bibliothèque nécessaire au Sleep
LED = 14
GPIO.setmode(GPIO.BCM) #Utiliser l'identification de broche GPIO
GPIO.setwarnings(False) #Ignorer les avertissements
GPIO.setup(LED, GPIO.OUT) #Configurer en sortie la broche de la LED
PAUSEON = 1.0 #Temps d'allumage
PAUSEOFF = 1.0 #Temps d'extinction
while True:
GPIO.output(LED, GPIO.HIGH) #Allumer la LED
time.sleep(PAUSEON) #Temps d'allumage
GPIO.output(LED, GPIO.LOW) #Eteindre la LED
time.sleep(PAUSEOFF) #Temps d'extinction
point d’accès désiré, on entre le mot de passe et le Zero W la syntaxe de Python, doivent être faites avec des espaces
devrait se connecter au réseau. (et non avec des tabulations), sous peine de provoquer des
Avec une nouvelle image du système, il est bon de mettre à erreurs (Indentation Error). Une fois le programme enregistré,
jour la liste des paquets et le système. Dans un terminal, la il est démarré avec la commande python LED_Blink.py saisie
commande sudo apt update && sudo apt upgrade effectue cette dans la fenêtre de terminal. La LED devrait alors clignoter au
opération. On confirme par Y et on attend quelques minutes rythme d’une fois par seconde.
que tous les téléchargements se terminent. On arrête le programme par ctrl-C.
www.elektormagazine.fr septembre/octobre 27
il faut avoir répondu Y à la question Would you like the one-
wire interface to be enabled? puis avoir redémarré le système.
Maintenant il faut vérifier que le capteur est correctement
reconnu par le système. Pour cela, dans une fenêtre de terminal,
on se positionne dans le répertoire cd /sys/bus/w1/devices dont
on liste le contenu avec la commande ls. Il doit alors s’afficher
une identification alphanumérique du capteur.
Avec la commande cd <Sensor-Id>, soit, dans notre cas, cd
28-00000362eca7, on se positionne dans le sous-répertoire
Figure 7. Le test du capteur connecté. correspondant où, avec la commande cat w1_slave, on liste
les données courantes du capteur, qui sont affichées sur
rappel de 4,7 kΩ entre la broche de données et la tension deux lignes (fig. 7). t=22000 représente dans ce cas une
d’alimentation (voir l’image Fritzing, figure 6). température de 22°C.
Le capteur est alors configuré correctement et prêt à l’emploi.
Après le raccordement et un contrôle du câblage, si tout
est correct, on redémarre le Zero W. Mais avant de pouvoir Connexion du capteur de température au reste du
utiliser le capteur de température One-Wire, le système doit le monde par MQTT
reconnaître. Pour cela, à l’option P7 1-wire de sudo raspi-config,
On peut vouloir communiquer les valeurs de température
lues par notre Zero W à d’autres
utilisateurs. Pour cela, nous allons utiliser
Listage 2. Script Python pour l’envoi de la température par MQTT.
MQTT, un protocole léger d’échange
#!/usr/bin/python d’informations entre machines. MQTT
#DS18B20_MQTT.py utilise un mécanisme appelé Publish-
#Importation des modules requis Subscribe où des capteurs peuvent par
import time, sys, os ex. publier des données sous des sujets
import paho.mqtt.client as mqtt particuliers (Publish), auxquels des
clients peuvent s’abonner (Subscribe)
mqtt_host = "localhost" pour recevoir ces données. Les noms
des sujets rappellent, par la présence
#Lecture de la température courante de barres de séparation obliques, la
def currentTemperature(): syntaxe des arborescences de répertoires
(on aurait par ex. appartement/cuisine/
#Substituer ici l'identification réelle du capteur de température) ; on peut même avoir des
température caractères génériques. Au lieu de fichiers,
file = open('/sys/bus/w1/devices/28-00000362eca7/w1_slave') on identifie ainsi des capteurs, ou même
filecontent = file.read() des actionneurs.
file.close() Notre capteur de température pourrait
publier ses valeurs de mesure sous le
#Mise de la température au bon format sujet « /maison/extérieur/température/
temperaturestring = filecontent.split("\n")[1].split(" ")[9] capteur1 «, auquel un client (par ex. un
temperaturevalue = float(temperaturestring[2:]) / 1000 système domotique comme openHAB,
return(temperaturevalue) fhem ou Node-Red) se serait abonné.
MQTT nécessite l’intervention d’un
def on_connect(client, userdata, flags, rc):
intermédiaire (appelé broker dans le
jargon MQTT) qui gère la circulation des
print("Connected with MQTT-Broker (IP): " + mqtt_host)
données entre l’émetteur et le récepteur.
On choisit un courtier (broker) populaire
client = mqtt.Client()
dénommé Mosquitto, que l’on installe sur
client.on_connect = on_connect
le Zero W avec la commande sudo apt
install mosquitto mosquitto-clients.
client.connect(mqtt_host, 1883, 60)
Pour vérifier que tout est correctement
installé, on peut tester l’envoi ainsi que
client.loop_start()
la réception des données sur le même
système. Pour cela, il faut commencer
while True:
par démarrer le courtier avec sudo
time.sleep(2)
systemctl start mosquitto. Pour qu’il
soit automatiquement réactivé à chaque
temperature = currentTemperature()
redémarrage du système, on saisit aussi
print("Current temperature: " + str(temperature) + " degrees
la commande sudo systemctl enable
Celsius")
mosquitto.
client.publish("/sensor1", temperature)
On simule dans une fenêtre de terminal
Figure 9. Test de l’envoi des données du capteur de température : à gauche l’affichage local, à droite la réception des données transmises par MQTT.
www.elektormagazine.fr septembre/octobre 29
PROJET DU LABO
Pour s’éclairer la nuit, sur un bateau ou dans un camping-car, on peut utiliser des lampes à incandescence
de 12 V alimentées par la batterie de bord. L’inconvénient est que cette batterie risque de se décharger assez
vite, car ce type de lampe présente un faible rendement. On peut se tourner vers des lampes à LED, mais
les armatures spéciales pour 12 V sont chères. Nous avons donc préféré concevoir un pilote compact, mais
polyvalent, pour commander des lampes à LED ordinaires prévues pour le 230 V.
Louter van der Kolk (Pays-Bas) utilisée dans une caravane, un camping- Bonne solution
car ou un bateau. Cette lampe est hélas La seule approche digne d’intérêt est de
prévue pour le réseau 230 V, via un concevoir un pilote de LED, alimenté à
Chez Ikea, le fabricant suédois de adaptateur spécial, et pas pour du 12 V. partir des 12 V de la batterie, pour com-
meubles bien connu, on trouve pour Une interface est donc nécessaire. mander directement les LED de la lampe.
quelque 10 € une lampe de bureau à LED Le modèle de chez Ikea se prête bien à
(type Jansjö), qui ne demande qu’à être Mauvaise idée cet exercice puisque les LED sont direc-
Il n’y a pas si longtemps, on avait recours tement accessibles en aval de l’adap-
à un onduleur qui transformait les 12 V tateur ; il n’y a donc rien à casser ou
continus en 230 V alternatifs, ce qui per- à pirater.
Caractéristiques mettait le raccordement direct de lampes
à incandescence et de tubes fluorescents Il faut connaître la consommation des
• Alimentation par la batterie de
« ordinaires ». Dans notre cas, la ten- LED de la lampe, pour cela un ampè-
bord de 12 V
sion alternative de 230 V serait ensuite remètre suffit. Nous avons mesuré une
• Adapté aux lampes à LED
convertie en tension continue par l’adap- consommation d’environ 165 mA.
économes
tateur de lampe à LED. Un onduleur pour
• Courant de sortie réglable
augmenter la tension, puis un adapta- Il faut donc un pilote de LED – une source
jusqu’à 350 mA
teur pour la diminuer... C’est digne du de courant – qui convertisse les 12 V
• Fonction gradateur commandée
manuel L’électronique pour les nuls, pas continus de la batterie en un courant
par l’interrupteur marche/arrêt
d’un magazine de qualité comme Elektor. de 165 mA.
LED+
Outillage
150314 - 11
pour souder des CMS
Env. 25 €
Schéma du pilote sion de sortie est toujours inférieure à la Tableau 1 : versions du ZLED7x30
Il est possible de réaliser un pilote de valeur absolue de la tension d’entrée ; L1 Courant de sortie
LED avec des composants discrets (tran- et C3 constituent un réservoir d’énergie, Type
maximal
sistors, diodes et composants passifs) ; et veillent à ce que la charge – dans le ZLED7030 1,2 A
c’est très instructif et amusant, et on peut cas présent des LED – soit alimentée par
ZLED7330 1,0 A
trouver de nombreuses idées à ce sujet un courant continu constant.
ZLED7530 750 mA
sur l’internet. Cependant ce n’est pas une Le rôle de C1 est essentiellement de lis-
approche très « moderne », surtout si on ser la tension d’entrée, si elle provient ZLED7730 350 mA
veut un montage compact. C’est pour- par ex. d’un redresseur ; comme nous
quoi nous avons choisi un circuit intégré alimentons notre circuit avec une batte-
spécialisé d’Integrated Device Techno- rie, sa valeur n’est pas critique. La fiche résistances R1 et R2 en parallèle. La for-
logy (IDT), un ZLED7x30. Ce petit circuit de caractéristiques du circuit intégré [1] mule qui donne l’intensité du courant de
n’a besoin que de quelques composants vous explique en détail comment dimen- sortie est la suivante :
externes, et il offre quelques fonctions sionner ce composant.
intéressantes : gradation commandée Le condensateur C2 réduit l’effet de 0,1V
Isortie =
avec l’interrupteur marche/arrêt de la rebond de masse (ground bounce [2]), RS
charge reliée, et réglage précis du cou- qui peut se produire lors de la commu-
rant de sortie par une seule résistance. tation des MOSFET de sortie du circuit Si nous prenons une valeur de 1,2 Ω
Un petit inconvénient : le circuit n’existe intégré (le potentiel de grille des transis- pour R1 et R2, la valeur de R s est
qu’en boîtier CMS, mais on peut encore tors peut devenir inférieur à celui de la de 0,6 Ω, et l’intensité du courant de
facilement le souder à la main. masse locale et causer une instabilité). sortie de 166 mA. Exactement ce qu’il
Plusieurs versions du circuit sont dispo- La valeur de L1 doit se situer entre 30 nous faut.
nibles, elles ne diffèrent que par le cou- et 220 µH. Pour notre courant de sortie, Attention : si vous régler le courant de
rant de sortie maximal (voir tableau 1). une valeur de 100 µH a été choisie ; elle sortie à une valeur plus élevée que celle
Nous avons besoin de 165 mA pour notre devra sans doute être modifiée pour un correspondant à la version du circuit inté-
lampe Ikea, nous avons donc sélectionné fonctionnement stable avec d’autres cou- gré utilisé (tableau 1), la sécurité ther-
le ZLED7730. Si un de vos projets exige rants de sortie. Il est alors possible que mique interne du circuit s’activera.
un courant de plus forte intensité, choi- le boîtier de la nouvelle bobine ne soit
sissez une autre version du circuit, sur pas adapté au circuit imprimé. Réglage du gradateur
la base des données du tableau. Une autre caractéristique intéressante
Le schéma est repris en figure 1. Il s’agit Réglage du courant de sortie d’IC1 est la fonction gradateur, dont le
d’un convertisseur-abaisseur de type Une des caractéristiques intéressantes comportement est réglé par la présence
Buck classique qui fonctionne en mode de du ZLED7x30 est le réglage du courant ou l’absence de deux ponts de soudure
conduction continue (continuous-mode de sortie par une seule résistance, Rsense. (ou de résistances de 0 Ω si vous pré-
inductive step-down converter) ; il est Pour permettre un réglage précis dans férez), représentés par DIM1 et DIM2
bâti autour d’IC1, D1, L1 et C3. La ten- notre circuit, Rs est constituée des deux sur notre schéma. Cela nous donne un
www.elektormagazine.fr septembre/octobre 31
total de quatre comportements possibles,
ZLED7730
Une LED a besoin d’une source de courant, pas d’une source de tension
Liens
[1] www.idt.com/document/dst/
zled7x30-datasheet
[2] en.wikipedia.org/wiki/
Ground_bounce
dans l’e-choppe
ª150314-1
circuit imprimé
Figure 4. Le circuit peut prendre place dans un petit boîtier Hammond, qui sera fixé sur la pince de
la lampe.
www.elektormagazine.fr septembre/octobre 33
(presque) tout ce que vous avez toujours
Q voulu savoir sur...
la qualité des connecteurs audio
Réponses de Rémy Mallard (Bois d’Arcy)
De la vieille prise DIN rouillée, mais originale, à la rutilante XLR dorée… contrefaite : les connecteurs audio se
déclinent sous différentes formes et qualités. Nous avons demandé à Rémy Mallard de nous en dire plus.
Q Pourquoi autant de formats de connecteurs ? teurs de mauvaise qualité se dégradent plus vite dans le temps
(oxydation des connecteurs et/ou dégradation des diélectriques
Q Analogique et numérique : même combat ? câble, coquilles serrées par vis, ou encore mâchoires avec dents.
Mais attention avec ces deux dernières solutions, le blocage
nous sommes « rassurés » parce que le produit est « certifié devient très compliqué avec un connecteur HDMI (démontez-en
original » et porte l’étiquette d’une marque connue. Et puis un et vous comprendrez). L’avantage de faire ses cordons de
comme c’est moins cher, on peut bien prendre le risque. Mais liaison soi-même, c’est qu’on choisit le câble et les connec-
si l’amateur peut se permettre cet écart plus ou moins réfléchi, teurs. Et si un jour il faut le réparer, on est rassuré de savoir
le professionnel devrait tourner sept fois sa langue dans son qu’on peut le faire. Certes, le taux de dégradation apporté
oreille avant de penser « économie à tout prix ». Au fil du par un cordon inapproprié peut dans certains cas occasionner
temps, les connecteurs originaux ont profité de nombreuses une dégradation de la qualité sonore, modérée en analogique
améliorations mécaniques et électriques dont ne bénéficient pas (baisse des aigus par ex.), voire inacceptable en numérique (clic
forcément les copies sauvages. Au premier abord, un connec- ou coupures franches). Mais n’exagérons rien : entendre dire
teur contrefait paraît toujours correct. C’est à l’usage (quand qu’un cordon S/PDIF fabriqué avec un mètre de câble blindé
par ex. on veut le démonter pour le réutiliser ailleurs) qu’on standard et des prises RCA « non 75 Ω » creuse le médium...
se rend compte que oui, finalement, la qualité se paie. Les il faut tout de même oser. Ça tombe bien, me direz-vous, on
connecteurs contrefaits ont beau être aussi sexy que les ori- est sur terre pour rigoler.
ginaux, ils sont moins fidèles ! (160471)
Lien
Q Les connecteurs contrefaits présentent-ils un danger ?
[1] AES3, standard de communication pour les données audio
www.elektormagazine.fr septembre/octobre 35
PROJET DU LABO
GoNotify,
une interface flexible pour capteurs IdO
être sur (un) le nuage
Gino De Cock (Belgique)
IdO, Internet des Objets, IdOI (version industrielle), objets connectés… on n’entend plus que cela.
Les observateurs de l’industrie prédisent un immense marché et des milliards d’objets connectés en
quelques années, mais chez vous, pour allumer une lampe, vous continuez à vous lever pour actionner
un interrupteur mural. Ces jours sombres sont désormais comptés, car avec GoNotify vous pouvez,
vous aussi, connecter ce que vous voulez à l’internet.
Vous vous demandez ce qui se passe Quelqu’un sonne-t-il à la porte ? Ou au bon endroit, connecté à GoNotify et
dans et autour de votre domicile quand vice-versa : vous êtes chez vous, mais voilà. C’est aussi simple que ça.
vous n’êtes pas là ? Les enfants sont-ils est-ce que tout va bien à l’usine ? Peut-
dedans ou dehors ? Ont-ils mis le feu à être qu’une machine surchauffe ? Ce Au commencement
la maison ? Le chauffage est-il allumé ? refroidisseur fait-il assez de froid ? L’eau Il y a quelque temps j’ai réfléchi aux
Avez-vous laissé un robinet ouvert ou coule-t-elle où elle devrait ? Tout cela est exigences qu’un dispositif connecté
y a-t-il une fuite d’eau quelque part ? possible simplement avec le bon capteur devrait satisfaire. D’abord, il doit être
sans fil, c.-à-d. solaire ou alimenté par
pile. Ceci implique qu’il doit être aussi
peu énergivore que possible et donc que
son circuit doit être entièrement à faible
2x AA battery consommation. De plus le système doit
être simple, bon marché, et sans coûts
Step-up Sensor de connexion. Enfin, le dispositif doit être
g
alo
LDO
E S P 8 2 6 6 re n d c e t t e t e c h n o l o g i e
C,
, I2
I/O
www.elektormagazine.fr septembre/octobre 37
+1V5...+3V3 +3V3 NTS2101PT1G
8 4
VIN VOUT +3V3 T1
L1 R3
IC2
3 1
976k
PG EN
MCP1642D K1
2
5 -ADJ 2
SW VFB 1 +3V3
4uH7 PGND SGND R4
C1 C2
6 7 K4
562k
1 5
10u 100u R13
2 6 BUZ1
100k
3 7
C6 C5 +3V3
4 8
+5V 1u 10u C11
12
ESP-01S T2
C7
VCC C4 100n
100n 3 2
VCCIO RTS 18 4
C10 10 6 R12
3V3OUT CTS 100n AVCC VCC
2N7002
IC4 1 30 12
47k
100n
TXD PD0_RXD0 PB0 +3V3
K3 11 4 31 13
RESET RXD PD1_TXD0 PB1
32 14
1 R15 FT230XS PD2_INT0 PB2
VBUS 9 15 1 15
27R USBDM CBUS0 PD3_INT1 PB3_TXD1 T3
2
D– 14 2 16
3 R16 CBUS1 PD4 PB4_RXD1
D+ 8 7 9
IC1 17
4 27R USBDP CBUS2 PD5 PB5
ID 16 10 7
5 C8 C9 CBUS3 PD6 PB6_OSC1
NTS2101PT1G
4k7
4k7
47k
IC3 4 +1V5...+3V3 22
PE3 PC3
26
+3V3 20 27 1 2
+5V D1 AREF PC4_SDA
3 2 29 28
www.elektormagazine.fr
PC6_RESET PC5_SCL0
R5 MINI-DIN6S
BAT760 GND GND
T4 +3V3
1k
1 5 21
RE1 SW2 R11
NCP1117
ST33T3G K2
1k
1 2
NTS2101PT1G TRIG 3 4
5 6 LED1
R6 R7 7 8
C3
septembre/octobre 2017
BAT1
56R
47k
2x AA R2 SW1 Program
R1
10u
47k
1k
RESET
160333 - 12
38
de souplesse. On peut aussi choisir un chute de tension (LDO) IC3 (par D1) si même canal que le point d’accès.
modèle MCP1642D-33I/MS à sortie fixe la tension de 5 V est présente sur la • Éviter le DHCP : on peut éliminer les
3,3 V. Dans ce cas, ne montez pas R3 broche 1 du connecteur micro-USB K3. négociations DHCP au démarrage en
ni R4. N’utilisez pas un type « B » Avec une puissance de transmission radio fixant l’adresse IP du dispositif (au
(MCP1642B-…), car il n’y a pas de mode réduite et des durées de connexion à prix d’une souplesse moindre, bien
« dérivation d’entrée ». l’internet aussi courtes que possible, sûr).
Les capteurs sont connectés au GoNotify consomme environ 1,5 mAh • Éviter les résolutions DNS : utili-
connecteur mini-DIN K5. Le câblage en moyenne par message, même ser l’adresse IP de la destination
de ce connecteur permet d’utiliser lorsqu’on utilise un protocole REST (nuage ou autre) évite le temps de
soit un connecteur Grove à 4 broches avec une connexion sécurisée HTTPS. résolution DNS et économise de la
SeeedStudio soit, pour une connectivité Pour augmenter encore la durée de vie puissance.
étendue, un connecteur mini-DIN des piles, on peut avoir recours aux • Optimiser le processus d’initialisa-
ordinaire à 6 contacts. modules ESP-01S avec la technologie tion radio de l’ESP-01S : par défaut
Au moment d’effectuer un relevé, le (propriétaire) ESP-Now. Dans ce cas, l’ESP-01S effectue un réglage radio
micro déclenche l’alimentation du capteur un dispositif sert de maître/passerelle au démarrage, ce qui consomme
en activant T3. Si le capteur a besoin et l’autre de capteur distant esclave. beaucoup de courant. Ceci peut être
de 3,3 V, le régulateur survolteur IC2 La communication entre le maître et fait avec la fonction API system_phy_
doit aussi être activé (cela dépend, l’esclave a lieu sans aucune surcharge set_powerup_option(2). L’ESP8266
bien sûr, du capteur et doit être fait induite par la pile TCP/IP (voir plus loin). Download Tool peut aussi changer
par le programmeur de l’application, Avec deux batteries de 2500 mAh et ce comportement, mais la meilleure
c.-à-d. vous). On peut utiliser le relais 1,5 mAh par message, on peut envoyer option (n°2) n’est pas disponible.
Reed RE1 et le bouton-poussoir SW2 3000 à 4000 messages avec un seul jeu • Réduire la fréquence d’horloge du µC
(« Trigger ») pour tester le dispositif sans de batteries neuves. Ceci correspond en positionnant le fusible DIV2. Le
capteur externe. Ils utilisent l’interruption à environ cinq mois d’utilisation au µC fonctionne alors à 4 MHz au lieu
externe INT1 pour réveiller le µC. rythme d’un message par heure. de 8 MHz, ce qui permet un fonction-
K2 est utilisé pour la programmation Une programmation intelligente du nement jusqu’à une tension de bat-
in situ du µC avec par ex. le chargeur µC permet également de réduire le terie de 1,8 V.
personnalisé. SW1 permet la RàZ du µC nombre de connexions à l’internet. De
par simple action d’un bouton. plus, quand une condition d’alarme est Boîtier
K1 permet d’accéder au second port détectée, GoNotify peut toujours prévenir En plus du montage, d’un circuit imprimé
série du microcontrôleur ESP8266 et de l’utilisateur avec le buzzer BUZ1 (activé et de beaucoup de logiciel, j’ai aussi
déboguer votre code Wi-Fi sans couper par T2) sans connexion à l’internet. créé un boîtier en impression 3D pour
la communication avec le µC. Le buzzer ne devrait être utilisé qu’en GoNotify (fig. 3). Vous pouvez l’imprimer
LED1 est une LED à usage général de dernier recours. chez vous ou en ligne (vous trouverez
type « Arduino broche 13 ». Elle peut Si une application a besoin d’une un service près de chez vous avec
servir à ce que vous voulez. connexion à l’internet permanente, www.3dhubs.com) ; il vous en coûtera
par ex. un client MQTT, il vaut mieux seulement quelques euros. Les fichiers
Gestion de la consommation alimenter le dispositif par le connecteur de définition du boîtier, ainsi d’ailleurs
Avec deux piles AA, on peut absorber micro-USB (K3). Dans ce cas, les que tous les autres fichiers de GoNotify,
moins de 10 µA en mode « surveillance ». batteries constituent une alimentation peuvent être téléchargés depuis [2].
Dans ce mode à faible consommation, on de secours lorsque l’USB est débranché.
coupe le plus de circuits possible sans Pour maximiser le nombre de messages Mise à jour du microprogramme
arrêter la surveillance des capteurs. par charge de batterie, les réglages fins On peut utiliser l’EDI Arduino pour
L’ESP-01S est éteint, le régulateur suivants sont possibles (en plus de mettre à jour le microprogramme
survolteur est en mode dérivation et l’écriture d’un logiciel plus intelligent) : du µC par l’USB grâce à un chargeur
le µC est en veille ; seul le chien de d’amorce compatible. De plus, K2
garde du µC fonctionne et le réveille • Réduire la puissance de transmis-
périodiquement pour relever les capteurs. sion : par défaut l’ESP-01S fonc-
On peut aussi utiliser une interruption tionne avec une portée assez longue
extérieure pour cela. et consomme beaucoup en émission.
En mode surveillance, l’ESP-01S est Selon la situation, on peut réduire la
déconnecté par T1 et le régulateur portée, ce qui économise de la puis-
survolteur IC2 est désactivé en forçant sance. On peut le faire par logiciel,
sa broche d’activation à l’état bas. Dans mais aussi avec l’ESP8266 Down-
cette configuration, IC2 est en réalité en load Tool (V3.4.4), dans l’onglet
mode dérivation, c.-à-d. que sa sortie est « RFConfig Tab » (l’outil est dispo-
reliée à son entrée ; ses circuits internes nible sur le site d’Espressif).
sont éteints, pour une consommation • Fixer le canal Wi-Fi ; balayer les
quasi nulle. Seul l’ATmega328PB est canaux Wi-Fi consomme de la puis-
alors alimenté, car il est relié soit aux sance. On peut éviter le balayage Figure 3. Les plans d’un boîtier en impression
piles (par T4), soit au régulateur à faible en indiquant à l’ESP-01S d’utiliser le 3D sont aussi disponibles.
www.elektormagazine.fr septembre/octobre 39
permet la programmation in situ avec
Analyse statistique en ligne avec ThingSpeak
un programmateur AVR. Toutefois, pour
programmer le module ESP-01S par la
connexion USB, il faut un mécanisme
plus élaboré. Pour cela, le µC doit d’abord
mettre l’ESP-01S en mode chargeur
d’amorce puis créer une passerelle
entre ses deux ports série et envoyer le
nouveau microprogramme à l’ESP-01S.
Il a fallu pour cela modifier le chargeur
d’amorce du µC.
La vitesse de programmation de
Surveillez la température d’une machine avec un capteur adapté (par ex. un l’ESP-01S est limitée pour l’instant
thermocouple). Connectez GoNotify au service en ligne ThingSpeak et analysez les à 57600 bits/s en attendant qu’un
données prélevées avec Matlab. meilleur algorithme de liaison avec le
Source : https://goo.gl/tthgeJ µC soit trouvé. Une programmation plus
ThingSpeak : https://thingspeak.com rapide est possible en intégrant le code
Over the Air (OTA) dans l’application
de votre capteur. Le module ESP-01S
Détection de mouvement avec IFTTT dispose de 8 Mbits de mémoire Flash,
minimum nécessaire pour les mises à
jour par OTA.
Le réseau R13-C6 est destiné aux mises
à jour par OTA du microprogramme de
l’ATmega328PB. Après que l’ESP-01S a
reçu le nouveau microprogramme et l’a
transféré à l’ATmega328PB, une RàZ de
ce dernier est nécessaire pour passer en
mode chargeur d’amorce. Pendant ce
temps l’ESP-01S doit être maintenu en
Court-circuitez la résistance entourée.
fonctionnement, ce qu’assurent C6 et R13.
Surveillez les mouvements et soyez alerté via le célèbre service en ligne « If This
Développement de l’application
Then That » (IFTTT). On peut connecter un détecteur de mouvement PIR Grove
Pour les applications pratiques, il vaut
de SEEEStudio à GoNotify. Pour que cela fonctionne, il faut court-circuiter la
mieux répartir les tâches entre les
résistance de 10 kΩ du capteur (voir photo) dans le signal de sortie parce qu’elle
deux microcontrôleurs. L’ATmega328PB
interfère avec les résistances de pull-up de l’I2C de GoNotify. Connectez votre
surveille le capteur et, si nécessaire,
applet IFTTT à une feuille de calcul Google et commencez à comptabiliser les
déclenche une alarme et active le module
mouvements.
ESP-01S. Ce dernier se charge alors de
Source : https://goo.gl/shSWe6
la connexion sécurisée à l’internet et
IFTTT : https://maker.ifttt.com
gère la communication en utilisant le
protocole de votre choix (par ex. HTML,
REST, MQTT). L’ESP-01S peut aussi se
charger de l’interface utilisateur (UI)
Rejoignez le réseau Weather Underground
pour la configuration ou la surveillance
via un navigateur internet standard sur
votre ordinateur ou ordiphone.
Pour le confort de développement
des applications, la programmation
du dispositif doit être aussi facile que
possible. De plus, il faut aussi pouvoir
Utilisez GoNotify pour connecter un capteur BMP180 au réseau Weather Underground déboguer l’application du capteur. Pour
et mettre à disposition de toute la planète des données météo de qualité. GoNotify c’est l’EDI Arduino qui a été
Source : https://goo.gl/A3QByX choisi pour tout cela.
Weather Underground : www.wunderground.com Pour configurer votre EDI Arduino, les
URL de deux fichiers de définitions
de cartes doivent être ajoutées au
champ « URL de gestionnaire de cartes
supplémentaires » du sous-menu
« Préférences » du menu « Fichier ».
Vous pouvez ajouter plusieurs URL en
GoNotify était l’un des candidats du concours Fast Forward Award organisé par Elektor en collaboration avec les organisateurs
du salon Electronica 2016 à Munich. Les amateurs et les professionnels ont pu y échanger et y présenter leurs projets, produits
et jeunes pousses.
les séparant par des virgules (il n’y a Une fois que le nouveau microprogramme outils préinstallés pour que vous puissiez
pas d’espaces dans les URL qui suivent) : est chargé dans le dispositif, et que toute démarrer rapidement. Elle est disponible
la mémoire a été effacée, il doit être (re) dans le dossier « GoNotify-Development-
• Pour l’ATmega328PB : https://raw. configuré avant d’être utilisé (les don- Env » de [2].
githubusercontent.com/ginodecock/ nées de configuration sont stockées dans
V3GoNotify/master/ArduinoBoard/ l’EEPROM du µC, la configuration Wi-Fi Compteur d’eau californien avec
package_gonotify_v3_index.json dans le module ESP-01S). Démarrez en alarme dans le nuage
• Pour l’ESP-01S : http://arduino. pressant le bouton de RàZ SW1. GoNotify Dans cet exemple, GoNotify surveille
esp8266.com/versions/2.3.0/ va alors se comporter en point d’accès un compteur d’eau équipé d’un relais
package_esp8266com_index.json (AP) par défaut à l’adresse 192.168.4.1 reed, qui délivre une impulsion à chaque
— l’utilisateur peut le changer dans le consommation de 500 ml. Quand une
La programmation est très simple avec logiciel — (fig. 4). Après la configuration, fuite est détectée ou qu’un robinet
l’EDI Arduino : GoNotify attend un évènement comme coule trop longtemps, GoNotify envoie
la pression de SW2, la fermeture de RE1 une notification. Il transmet aussi la
• Connectez GoNotify à votre PC. La ou le dépassement d’un certain seuil par consommation d’eau toutes les heures
première fois un port COM virtuel le capteur (à définir au préalable dans pour déterminer à quel moment et
sera installé. le logiciel). Le buzzer émet un bip de pourquoi on utilise le plus d’eau. Pour
• Installez les progiciels des cartes notification et envoie un message de économiser l’énergie, l’ESP-01S n’est
ATmega328PB et ESP-01S dans l’EDI test ; contenu et destination dépendent alimenté qu’en cas de problème pour
Arduino : de la configuration de votre disposi- envoyer un message d’alerte. Ici une
-- Ouvrez le Gestionnaire de cartes tif. L’exemple de la figure 4 envoie un alerte est envoyée quand, sur une
(menu « Outils » ª « Type de message à un service PushBullet (www. période de 24 h, il n’y a pas de période
carte »), choisissez « Contri- pushbullet.com). À partir de là GoNo- de 2 h pendant laquelle la consommation
bué » et installez « GoNotify-V3 tify passe en fonctionnement normal, d’eau est inférieure à 0,5 l. En d’autres
ATMEGA ». à savoir le mode surveillance à basse termes, quand la consommation d’eau est
-- Faites de même pour l’ESP- consommation. continue, GoNotify considère qu’il y a une
01S en installant « esp8266 by fuite. De même, lorsque la consommation
ESP8266 Community ». Machine virtuelle d’eau reste haute pendant 30 min ou
• Depuis le menu « Outils ª Port », Maintenant que vous savez comment plus, GoNotify suppose qu’un robinet a
sélectionnez le port COM virtuel marche GoNotify, comment en construire été laissé ouvert et il enverra aussi une
associé à votre dispositif. un et le programmer, il est temps de alerte.
• Pour programmer : voir quelques applications pratiques. En cas de problème avec la connexion
-- ATmega328PB : sélectionnez la Notez que les raccourcis URL pointent à l’internet, GoNotify alerte l’utilisateur
carte « GoNotify @ 4 MHz (RC tous sur mon répertoire GitHub en [2]. en actionnant son buzzer.
interne) ». Il suffit de cliquer sur Sachez aussi que j’ai préparé une Pour cette application, il faut calibrer le
le bouton « Téléverser » pour machine virtuelle (VM) avec tous les capteur de température intégré au µC.
démarrer la programmation.
-- ESP-01S : sélectionnez la carte
« Generic ESP8266 Module ».
Pressez et maintenez enfoncé le
bouton-poussoir de déclenche-
ment SW2 avant de cliquer sur le
bouton « Téléverser » de l’EDI. Le
bouton-poussoir peut être relâ-
ché lorsque la programmation a
démarré.
• Ouvrez le « Moniteur série » pour
déboguer. Figure 4. Connectez-vous au point d’accès GoNotify afin de configurer le dispositif pour votre réseau Wi-Fi.
www.elektormagazine.fr septembre/octobre 41
Maintenez le bouton SW2 appuyé pour Redhat (https://www.openshift.com/) et le capteur. À chaque relevé reçu, le
la RàZ du dispositif. Tout en maintenant programmée avec Nodejs et Mongodb. nuage indique dans l’entête REST de
SW2 enfoncé, refroidissez le processeur Il y a plusieurs avantages à utiliser une sa réponse quand est attendu le pro-
jusqu’à 0 °C. GoNotify bipera lorsque la approche « nuage privé » : chain relevé.
température change, et s’arrêtera lorsqu’il
aura atteint la température de référence. • Vous possédez les données : les Client MQTT avec AllThingsTalk
Vous pouvez alors relâcher SW2. données ont de la valeur et sont Être compatible avec Arduino et utiliser
privées. des microcontrôleurs répandus comme
• URL : https://wma-gonotify.rhcloud. • Notifications : GoNotify a l’intelli- l’ATmega328PB et l’ESP8266 présentent
com gence pour détecter qu’un problème un avantage : beaucoup de plateformes
• User : demo est survenu et déclencher une alerte. IdO du nuage disposent d’une API
• Password : demo Ces alertes sont transmises au également compatible. Cette application
• Code source : https://goo.gl/UIkaXJ nuage où elles sont relayées vers un montre comment interfacer GoNotify
système de notification. De même, avec le constructeur d’API AllThingsTalk
Ici l’ATmega328PB est programmé lorsqu’un relevé n’arrive pas (à (https://www.openshift.com/) comme
depuis l’EDI Arduino, l’ESP-01S avec temps), le nuage signale l’absence client MQTT. Quelques lignes de code
le SDK2.0 IdO natif (disponible sur le du capteur. suffisent. L’exemple montre une
site web d’Espressif). La solution en • Relevés synchronisés : le nuage communication bidirectionnelle entre
nuage est créée avec OpenShift de peut agir comme une horloge pour le serveur AllThingsTalk et un client
liste des
composants
dans l’e-choppe
Liens ª160333-1
[1] www.elektormagazine.fr/160333 circuit imprimé nu de GoNotify
www.elektormagazine.fr septembre/octobre 43
programmateur
MiniPro TL866A
multifonctionnel et abordable
Aujourd’hui la plupart des microcontrôleurs équipés de mémoire flash prennent en charge eux-mêmes
leur programmation in situ. Mais il n’est pas si loin le temps où tout amateur d’électronique rêvait d’un
appareil universel capable de programmer les (E)PROM, GAL et microcontrôleurs, quel que soit leur modèle…
Maintenant, avec le MiniPro TL866A, vous avez la panacée à la maison pour un prix très raisonnable !
Luc Lemmens (labo d’Elektor) blèmes qu’il n’en résout. Il n’est pas rare non plus qu’il soit
omis délibérément ou purement et simplement oublié. D’au-
tant qu’il ne permet pas certains réglages (dont les fusibles)
De nos jours, une interface bon marché branchée sur le port des microcontrôleurs. Le programmateur MiniPro TL866A de la
USB du PC permet de programmer de nombreux composants. La société chinoise XG Autoelectric [1], outre le support DIL à force
première question à se poser : un tel programmateur universel d’insertion nulle (ZIF) standard à 2×20 contacts, dispose aussi
est-il toujours nécessaire ? d’un connecteur ICSP et peut remplacer le PICkit de Microchip
Sur beaucoup de cartes, le connecteur de programmation série et l’AVRISP d’Atmel. Il est largement capable de programmer
in situ ICSP (In Circuit Serial Programming) pose plus de pro- 14 000 circuits différents, depuis les microcontrôleurs les plus
récents jusqu’aux archaïques (E)PROM. Il permet en outre de au développement de prototypes à l’usage des amateurs. En
tester le fonctionnement des circuits intégrés logiques CMOS revanche, comme aucun des algorithmes de programmation
et TTL ainsi que des mémoires DRAM et SRAM. n’est certifié, pour la production commerciale, il faut chercher
un modèle professionnel certifié.
En conclusion, le programmateur MiniPro TL866A est
Logiciel chaleureusement recommandé, déjà à cause de son prix, mais
Le logiciel Windows qui l’accompagne a un peu l’air désuet, il aussi pour ses possibilités et les accessoires fournis !
faut parfois chercher où se trouvent certaines fonctions, mais (160355 – version française : Robert Grignard)
il remplit correctement son office. Une fonction intéressante
est la prise en charge, en plus du code du programme, des
Liens
fichiers de bits de configuration du microcontrôleur.
Lors de mes débuts en programmation avec le TL866A, [1] www.autoelectric.cn/en/TL866_main.html
j’achoppais sur le réglage des fusibles (les bits de configuration) [2] http://minipro.txt.si
de l’ATtiny85. Manifestement, il y a de quoi s’interroger sur la
signification des coches à marquer. Quand indiquent-elles si
cette option est validée ou non ? Le bit se mettra-t-il à 1 ou
à 0 ? Sur l’un des bits, c’était exactement le contraire de ce
que nous connaissions au laboratoire avec le programmateur le TL866A prend en charge
Elnec. Heureusement, dans le logiciel du MiniPro, on peut voir plus de 14 000 circuits différents
finalement les mots de configuration au format hexadécimal et
ils correspondaient stricto sensu à la fiche technique d’Atmel.
En cas de doute, voilà le moyen de savoir.
Dans la communauté Wiki du MiniPro TL866 [2], on trouve aussi
un logiciel Linux pour ce programmateur, ainsi que d’autres
informations sur son emploi.
www.elektormagazine.fr septembre/octobre 45
REDEXPERT :
simulateur pour composants inductifs
calcul et choix des inductances, calcul des pertes
Ranjith Bramanpalli (Würth Elektronik)
Dans les circuits à découpage, la plupart conditions données et pour certains avec des caractéristiques magnétiques
des pertes interviennent dans les matériaux. C’est pourquoi Würth déterminées. Si l’on soumet la bobine à
semi-conducteurs de puissance et les Elektronik eiSos a développé un nouveau une force magnétomotrice, cela induit un
inductances. Les pertes des inductances modèle qui reflète mieux l’état actuel de flux magnétique Φ(t) qui varie avec le
se produisent dans le noyau et dans les la technique et permet de déterminer temps. En tout point, la densité de flux
enroulements. La détermination exacte avec précision et efficacité les pertes des magnétique B est proportionnelle au
de ces pertes est plus cruciale que noyaux. Le nouvel outil REDEXPERT [2] champ magnétique H.
jamais pour la fiabilité des systèmes exploite ce modèle.
à rendement élevé. Pour estimer les
pertes du noyau dans les alimentations Accumulation d’énergie dans les
à découpage, les mesures peuvent être inductances Avec : B = densité de flux magnétique
complexes sans toutefois garantir que Dans les alimentations à découpage, la (Φ/A), μr = perméabilité magnétique du
les estimations seront pertinentes pour bobine de stockage emmagasine l’énergie matériau, μo = perméabilité magnétique
une application spécifique. Au début, sous forme de champ magnétique pendant de l’air et H = champ magnétique.
les pertes du noyau étaient calculées la phase de conduction du régulateur et La bobine est enroulée sur le noyau
à l’aide de l’équation de Steinmetz [1] la restitue pendant la phase de coupure. ou bien disposée à l’intérieur. Le
ou d’équations dérivées. Ces équations La bobine de stockage est constituée noyau comprend un entrefer, pour
ne sont cependant fiables que dans des d’un fil de cuivre bobiné sur un noyau pouvoir utiliser efficacement le champ
1000
250kHz
500kHz
courbes non sinusoïdales.
En raison des inconvénients inhérents
à la version MSE, une généralisation
dénommée GSE (Generalized Steinmetz
100
Equation) a été développée. Elle se
présente ainsi :
10
10 100 1000 10000
Bpk AC Flux Density (Gauss)
Avec :
Figure 2. Diagramme de pertes du noyau suivant la densité maximale de flux magnétique à Les diagrammes de pertes du noyau des
différentes fréquences. versions GSE comme MSE sont basés
sur une excitation sinusoïdale. Cela
sinusoïdale ainsi que K, a et b = des implique des limitations traitées plus
constantes déduites de la figure 2. loin ci-dessous. Il existe également
A L B
Uin Les courbes de la figure 2 montrent toute une série de modèles alternatifs,
C R les pertes combinées par hystérésis et optimisés par les fabricants sur leurs
Pin Pout courants de Foucault. La mesure des propres noyaux. Les inconvénients des
pertes du noyau est difficile, car elle modèles Steinmetz sont listés dans un
exige un dispositif de mesure complexe encadré particulier.
pour les densités de flux et en outre, une
estimation de la surface de la courbe Le modèle de pertes en
d’hystérésis. Pour relever ces courbes, alternatif de Würth Elektronik
Figure 3. Schéma de principe du convertisseur on produit une excitation sinusoïdale Würth Elektronik eiSos a développé un
CC-CC pour la détermination des pertes. sur le noyau fermé avec un ou deux modèle très moderne qui permet de
enroulements comportant chacun une choisir les inductances avec une grande
spire. Ensuite un nombre considérable de précision et d’optimiser le découpage.
données sont produites pour construire Ce modèle est basé sur des données
le diagramme de pertes. Les constantes empiriques provenant de mesures
sont déduites de la figure 2. effectuées sur des dispositifs réels.
L’inconvénient principal de l’équation Ce modèle calcule les pertes totales de
de Steinmetz est qu’elle ne s’applique l’inductance décomposées en courant
qu’à une excitation sinusoïdale. Dans alternatif (contrôle magnétique de la
les applications de l’électronique de bobine et du noyau) et en courant continu
puissance, les flux magnétiques sont (courant continu dans l’enroulement).
généralement tout sauf sinusoïdaux. Il Les données sont acquises sur un
existe en effet des modèles qui tentent convertisseur CC-CC comme celui de la
Figure 4. Cliché de l‘oscillogramme du schéma de contourner ce problème en séparant figure 3. L’inductance est pilotée par
de la figure 3. les pertes par hystérésis et par courants une tension impulsionnelle ; la puissance
de Foucault, mais la relation empirique de d’entrée Pin ainsi que celle de sortie Pout
Steinmetz reste une variante utile. Pour sont mesurées. Cela permet d’estimer
Détermination des pertes une excitation magnétique sinusoïdale, la puissance perdue PLoss = Pin − Pout.
Au départ, les pertes du noyau étaient elle offre une grande précision et reste Les pertes en alternatif P AC de la
calculées au moyen de l’équation connue simple d’emploi. C’est pourquoi elle bobine sont ensuite séparées. Cette
sous le nom d’équation de Steinmetz : a autrefois été étendue pour pouvoir procédure est répétée pour différents
l’utiliser même lorsque le flux magnétique jeux de paramètres en faisant varier la
ne suit pas une loi sinusoïdale. modulation magnétique, la fréquence, le
Depuis un certain temps, l’extension dite niveau de l’ondulation résiduelle, etc. Le
MSE (Modified Steinmetz Equation [3]) modèle de calcul des pertes en courant
Avec : Pv = pertes du noyau (hystérésis est utilisée : alternatif est élaboré à l’aide des données
et courants de Foucault) par unité de mesurées :
volume, f = fréquence, B pk = densité
max. de flux pour une excitation
AC Loss (mW)
40
REDEXPERT
Real
30
20
10
Figure 5. Modélisation complète du signal pour
l‘équation de Steinmetz et ses extensions. 0
300 400 500 600 700 800 900 1000
Frequency (kHz)
B
Figure 7. Noyau en WE-Superflux avec un rapport cyclique de 40 %.
H
MnZn: 50% Duty
300
Pst
250 Pgse
REDEXPERT
AC Loss (mW)
200
Real
Figure 6. Modélisation du signal avec la
méthode des boucles auxiliaires de Würth. 150
100
50
figure 2.
Pgse
150 REDEXPERT
Cependant, dans une application avec
AC Loss (mW)
Real
une alimentation à découpage, le noyau
est piloté par un signal rectangulaire 100
REDEXPERT
pertes en CA de Würth et Real la perte
Real
300
en CA mesurée.
200
Estimation des pertes avec
100 REDEXPERT
REDEXPERT est le nouvel outil en ligne de
0 Würth Elektronik pour choisir et simuler
300 400 500 600 700 800 900 1000
les inductances. Il permet de sélectionner
Frequency (kHz)
une inductance de stockage appropriée
très simplement. Il s’agit d’un outil
simple à utiliser et efficace (fig. 12)
Figure 10. Noyau en poudre de fer avec un rapport cyclique de 50 %. qui permet de comparer et sélectionner
très rapidement les inductances. Pour
commencer, il faut saisir les paramètres
Iron Powder: 33% Duty
d’entrée et de sortie de la topologie
400 souhaitée. Ensuite REDEXPERT calcule
Pst la valeur de l’inductance et sélectionne
Pmse
plusieurs composants adaptés.
300 Other Mfg.
Comme Würth Elektronik propose une
AC Loss (mW)
REDEXPERT
Real gamme étendue d’inductances pour
200 toutes les applications possibles, chacun
trouvera en pratique la self adaptée après
100
avoir indiqué les paramètres d’utilisation.
Les calculs habituellement complexes,
mais cruciaux des pertes en CA d’une
0
300 400 500 600 700 800 900 1000 inductance sont considérablement
Frequency (kHz) simplifiés par REDEXPERT grâce au
modèle précis de pertes en CA intégré.
En raison du calcul exact de la totalité
Figure 11. Noyau en poudre de fer avec un rapport cyclique de 33 %. des pertes en CA, cet outil convient
également pour estimer la température.
La figure 13 montre par exemple un
convertisseur abaisseur. La tension
d’entrée s’étend de 8 à 12 V et la
tension de sortie est de 5 V. Les
autres paramètres sont la fréquence
de découpage, 800 kHz ; le niveau
de l’ondulation résiduelle, 40 % et
le courant de sortie, 1 A. Pour ces
valeurs, REDEXPERT calcule l’inductance
optimale Lopt de 9,6 µH, une durée de
conduction de 550 ns et un rapport
cyclique de 0,44. À ce stade, pour
cet exemple, le choix porte sur plus
de 200 produits. Si on souhaite une
bobine de stockage de très petite taille
Figure 12. Copie d‘écran de l‘outil en ligne REDEXPERT. et à faibles pertes, il convient de choisir
un modèle de la série WE-MAPI.
Actuellement, REDEXPERT prend trois
topologies en charge : convertisseur
Le modèle de Würth Elektronik a été WE-Superflux, la poudre de fer, NiZn, élévateur, abaisseur et SEPIC. En
abondamment validé empiriquement MnZn etc. dans de vastes gammes de outre, il y a un calculateur de pertes
et confronté aux données des modèles rapports cycliques et de fréquence et qui calcule les pertes dans les bobines
existants et des mesures réalisées. Nous nous les avons comparées aux modèles de stockage indépendamment de la
avons mesuré les pertes en alternatif théoriques (figures 7 à 11). Sur ces topologie. Comme REDEXPERT est un
pour différents matériaux comme le graphiques, les courbes Pst, Pmse et outil en ligne, il n’y a rien à télécharger
Alors que de nos jours les effets acoustiques dans les salles de cinéma nous arracheraient presque du siège
et que, grâce aux techniques sonores modernes, le plus discret chuchotement est encore parfaitement
audible au dernier rang, il est intéressant de jeter un coup d’œil dans le rétroviseur pour voir comment tout
cela a commencé.
Tout au début du cinéma, l’accom- tionnait qu’avec de courtes bandes ou du duc de Guise.
pagnement sonore était l’œuvre d’un boucles de film. Mais le véritable avènement public du
artiste au clavier d’un orgue (figure 1) système s’est produit en 1924 avec le
ou même de tout un orchestre. Encore Grinçant, mais relativement Vitaphone (figure 3) produit par la
fallait-il que l’interprétation des musi- synchrone, le son sur disque Warner Bros. Entertainment. Le disque
ciens corresponde de près ou de loin Quelle pourrait être la suite, si ce n’est d’alors avait un diamètre de 43 cm
à l’image. l’amélioration de la technique du pro- et 33 tours 1/3 concordaient avec la
jecteur de film couplé à un phono- durée de projection d’une bobine de
C’est en 1993 que l’ingénieur breton graphe ? Dès 1901, la société française film habituelle de 300 m. Le projection-
William Dickson, employé de Thomas Gaumont a fait breveter ce procédé. niste synchronisait le départ des deux
Edison, a développé une combinaison La première manifestation connue de mécanismes au moyen de repères sur
du phonographe et du kinétographe liaison du son à l’image date de 1908, le film et le disque. Tout comme sur
pour créer le kinétoscope, présenté avec un passage de la composition de les CD actuels, la lecture démarrait du
à l’exposition universelle de Chicago Camille Saint-Saëns joué sur disque en centre. Le film le plus célèbre selon ce
(figure 2). Mais l’ensemble ne fonc- concordance avec le film L’Assassinat procédé est sorti en 1927, Le chanteur
Figure 1. L’orgue de cinéma Wurlitzer. Figure 2. Le kinétoscope de Dickinson. Figure 3a. Le projecteur Vitaphone.
de jazz (figure 4) qui a fait connaître standards de base pour cela : trans-
Al Jolson dans le monde entier. crire la modulation à densité variable
et largeur constante comme à la
Faire du son avec de la lumière figure 6b, ou à largeur variable, mais
Depuis des décennies, le procédé densité constante (figure 6a et c).
répandu dans le monde entier est Une autre version répandue est celle
le son optique. Il a inauguré la syn- de la figure 6e à multiples pointes.
chronisation en mariant sur le même Comme la qualité de reproduction de
support l’image et le son. Dans les la densité variable dépend des condi-
années 1920, de nombreux inventeurs tions du développement des négatifs
ont revendiqué sa paternité. Outre l’in- et que la copie en est tributaire, on Figure 6. Les six systèmes de son optiques :
génieur polonais Józef Tykocinski-Ty- utilise principalement la double den- A dentelé simple ; B densité variable ; C dentelé
cociner, les ingénieurs allemands Hans telure qui simplifie aussi la technique double ; D procédé Eurocord ; E dentelé
Vogt, Joseph Massolle et Benedikt Engl, de copie. Hélas, il est apparu que sou- multiple.
on compte aussi le Suédois Sven Ber- vent les fines pointes de la dentelure
glund parmi les pionniers du cinéma s’empâtaient lors d’un développement
sonore. Quand l’Américain Lee de trop long, ce qui occasionnait la perte
Forest a lui aussi déposé un brevet, la des aigus. Pour réduire le bruit produit
guerre des brevets a débuté et a duré par les surfaces blanches, avec l’Euro-
un an pour arriver seulement en 1930 cord, on a ultérieurement couvert les
à une « Paix des films parlants ». Le zones blanches au moyen d’un écran
cinéma sonore était ainsi devenu un noir dynamique (figure 6d). Il fallait
système mondialement uniformisé. procéder en courbe uniformément lisse
pour éviter l’interprétation comme un
Synchronisation entre son à la reproduction.
mouvement des lèvres et
bande-son Lecteur de lumière
La piste optique a une largeur La piste optique est normalisée uni-
de 2,19 mm, obtenue en réduisant la versellement à des traits de 0,018 mm Figure 7. Définition de la largeur de piste :
surface d’image du film le long des d’épaisseur. Normalement, une piste A faible amplitude ; D grande amplitude ;
perforations (figure 5). Il y a deux étroite correspond à un son faible B son grave ; C son aigu.
www.elektormagazine.fr septembre/octobre 53
En pleine fiction
figure 12, en formant d’abord une tallé par-dessus la fenêtre d’image, informations de son ne peuvent trou-
boucle (de Latham) de film (A) et un ce qui renvoie le son à une distance ver place qu’entre les perforations
tambour de frein à friction (B). Ensuite de 28 vues. (figure 14b). Comme la technique
une masse d’inertie (C) et un rouleau L’opérateur devait chaque fois refaire numérique est aussi sensible à l’em-
de tension élastique compensent les une démagnétisation du projecteur, les pâtement et réagit à la saleté sur les
irrégularités restantes. roues dentées ont dû être changées pistes, Sony a sorti en 1994 son propre
en fonction des perforations réduites système SDDS (Sony Dynamic Digital
Le son en voit de toutes les et les bobines de film sont passées au Sound) à huit canaux et des pistes en
couleurs plastique. À cause de tout cela, la tête redondance sur les deux bords exté-
L’arrivée du film en couleur s’accom- magnétique s’usait beaucoup plus vite. rieurs (figure 14a).
pagne de soucis pour le son. Jusque-là, En raison des manipulations complexes Mentionnons aussi le système DTS
on n’avait pas à se préoccuper de sen- et du coût élevé de la modernisation (Digital Theater Sound) où le son est
sibilité chromatique de la cellule. Pour des salles de cinéma, le son magnétique réparti sur jusqu’à trois CD-ROM diffé-
arriver à un bon contraste en noir et à quatre canaux est tombé dans l’oubli. rents, couplés au film par un code tem-
blanc de la bande-son sur le matériau porel, des pointillés sur le bord droit
en couleur, il fallait alors user de coû- Et le son optique se rallume (figure 14d). Cela fonctionne encore
teux procédés de copie. Une simplifi- Après avoir stagné une cinquantaine malgré les accrocs ou les images man-
cation est intervenue avec une piste d’années au même niveau technique, quantes. Le DTS est aussi un système
son de couleur cyan, quand on a pu le son optique a évolué grâce au sys- multicanal avec surround.
la lire avec un laser rouge. Comme la tème Dolby. À partir de 1976, la qualité Depuis, la technique numérique a sup-
transformation des salles prenait trop du son s’est considérablement amélio- planté la projection mécanique, les
de temps, il y a eu une période de tran- rée avec le standard Dolby A, qui per- films optiques ne passent plus que
sition avec la piste son en magenta met avec deux pistes son de contenir dans des salles spécialisées. La der-
qui fonctionne aussi bien en lumière les deux canaux stéréo, mais aussi un nière innovation au cinéma est le Dolby
blanche que rouge. canal central et un d’effets par procédé Almos où des haut-parleurs de plafond
différentiel (figure 14c). créent un nouveau sens de l’audition
L’intermède du son magnétique Avec les avancées de la numérisation, multidirectionnelle. Reste à voir ce qui
Le début des années 1950 a vu l’arri- dans les années 1990, le Dolby sté- va encore nous arriver…
vée de la piste magnétique. On appli- réo SR (Spectral Recording) est apparu (160480 –
quait sur le film de 35 mm quatre sur le marché et permet actuellement version française : Robert Grignard)
pistes magnétiques pour les canaux la sonorisation surround avec caisson
gauche, central, droit et celui réservé d’ultra grave comme 5.1 ou 7.1. Ces
aux effets (figure 13). Le son de ce
dernier était coupé tant qu’il n’y avait
pas d’événement pour réduire le bruit.
Comme le film de 35 mm ne laissait Rétronique est une rubrique mensuelle sur les pages glorieuses et
pas de place pour d’autres pistes son, jaunies de l’électronique, avec occasionnellement des montages de
on a réduit la dimension des perfora- légende décrits dans Elektor. Si vous avez des suggestions de sujets
www.elektor.tv à traiter, merci de les télégraphier à redaction@elektor.fr
tions pour utiliser aussi les bords du
film.
Faute d’espace, le système de repro- Sources des images : site Edison Historical, Wikipédia (auteur inconnu), Google pictures (auteur inconnu) et photos/graphes de l’auteur. Dans la photo 3,
duction magnétique du son a été ins- une personne est représentée sans obtention de son consentement. L’image date des années 1920.
www.elektormagazine.fr septembre/octobre 55
PROJET DU LABO
de la bougie
Ilse Joostens (Belgique)
www.elektormagazine.fr septembre/octobre 57
L’utilisation de lampes électriques s’est transformant leur chaleur en électricité ;
infos sur le projet généralisée au début du 20e siècle ; avant elles sont bon marché, surtout en grosse
cela, les lampes à huile et les chandelles quantité, et nous aurions ainsi une source
Module Peltier
illuminaient les soirées. Les plus vieilles d’énergie indépendante du réseau ou de
source d’énergie alternative chandelles connues ont été retrouvées batteries.
convertisseur-élévateur en Chine, et datent de la dynastie Han ;
elles étaient fabriquées avec de la graisse De la théorie à la pratique
débutant
de baleine. Jusqu’au milieu du 19e siècle, Nous utilisons deux modules Peltier en
Æ connaisseur on a utilisé des matériaux naturels, sur‑ série, des TEC1‑12706 de 40 × 40 mm²
expert tout de la graisse animale ; de la cire (fig. 1), pour le générateur thermoé‑
d’abeille aussi, mais c’était très cher. lectrique ; ceux-ci sont maintenus entre
L’exploitation commerciale du pétrole a deux radiateurs par des ressorts. Le
env. 2 h permis de généraliser l’usage de la paraf‑ tout est placé au-dessus de la bougie
fine pour la fabrication des bougies, et de chauffe-plat, à une hauteur réglable.
d’assainir l’air des habitations... Le radiateur du bas, de 4 cm de côté et
kit, 1 cm de haut, a pour fonction de répartir
fer à souder, Rendement dérisoire uniformément la chaleur de la bougie sur
pince à long bec La flamme d’une bougie moderne four‑ la surface des modules Peltier. Celui du
nit environ 80 W, mais le flux lumineux dessus, deux fois plus haut et de résis‑
n’est que de 0,16 lm/W. C’est dérisoire, tance thermique nettement inférieure,
env. 100 € on produit essentiellement de la chaleur, veille – avec le ventilateur – au bon
et le rendement est même cent fois infé‑ refroidissement de la partie « froide »
rieur à celui d’une ampoule à incandes‑ des modules.
Figure 1. Le module Peltier TEC1‑12706. Figure 2. Mesure de la tension, du courant et de la puissance. Le point de puissance maximale est
clairement visible.
cence, qui n’est pourtant pas un modèle La tension de sortie des modules Peltier
Caractéristiques d’efficacité. est élevée par un convertisseur continu-
• Convertit la chaleur d’une bougie Les bougies de chauffe-plat que nous uti‑ continu vers une tension utilisable avec
en électricité lisons dans ce projet ont une mèche plus une lampe USB à LED.
• Fonctionne pendant 4 à 5 h avec courte que les bougies utilisées en éclai‑ Le ventilateur est aussi alimenté par
une seule bougie de chauffe-plat rage, et leur puissance est plus faible : cette tension. Cela pourrait sembler
• Boîtier transparent élégant (deux environ 32 W avec le modèle choisi. contreproductif, mais l’énergie produite
versions disponibles) On devait pouvoir faire mieux, surtout avec le ventilateur en service est égale
• Kit complet disponible, inclus avec les techniques de pointe actuelles, ou supérieure à celle sans ventilateur ;
lampe à LED et bougies à qui allient haut rendement et sobriété. celui-ci limite d’autre part le risque d’un
chauffe-plat Par exemple, accroître l’intensité lumi‑ échauffement excessif des modules Pel‑
neuse des bougies de chauffe-plat, en tier. Ces derniers sont soudés en interne
www.elektormagazine.fr septembre/octobre 59
coup plus grand. Nous nous sommes
USB
1
donc résolus à utiliser des CMS.
+5V
2 Le cœur du circuit est un LTC3105, un
D–
8
VIN VOUT
11 3
D+ convertisseur continu-continu élévateur
L1 IC1 R3 4
4 10
GND synchrone qui peut délivrer 400 mA. Sa
1M37
SHDN PG00D
LTC3105
plage de tension d’entrée commence
TEG-1 D1
10uH
C3 9 EMSPBF 1 C4 à 250 mV et il intègre un contrôle du
SW FB
5 2
10u 12
MPPC LD0
3 22u
FAN-1 point maximal de puissance, ce qui le
TEG-2 AUX FBLD0 S1
R1 GND GND R2 rend idéal pour des sources d’énergie
C1 C2
6 7
alternatives de forte impédance.
100k
604k
FAN-2
1u 4u7
Nous utilisons en gros l’exemple donné
1N5819
dans la fiche de caractéristiques du
160441 - 11
LTC3105. Avec une valeur de 100 kΩ
pour R1, le point maximal de puissance
Figure 3. Un circuit imprimé minuscule suffit pour l’électronique du convertisseur.
est atteint pour une tension d’environ
1 V. C’est inférieur au maximum théo‑
rique avec une grande flamme : nous
www.elektormagazine.fr septembre/octobre 61
Figure 6. Les longues tiges filetées sont Figure 7. Les radiateurs et les modules Peltier Figure 8. Les radiateurs sont maintenus
introduites délicatement entre les « dents » du sont temporairement solidarisés par de la fermement contre les modules Peltier à l’aide
radiateur. bande adhésive. de ressorts.
dans l'e-choppe
prévu dans le boîtier. étant prévu pour fonctionner sous 12 V
Après quelques minutes, la lampe devrait (une vitesse élevée impliquerait cepen‑
commencer à s’allumer faiblement ; une dant une consommation trop élevée, ª160144-71/72
à deux minutes plus tard, la lumière et un courant d’air qui perturberait la kit complet
devient plus forte. On peut alors lan‑ flamme ; sans parler du bruit...).
cer le ventilateur avec une petite pres‑ Dès que le ventilateur tourne, la lumière
Électronique à ingérer
Cette pilule de 40 × 10 mm mes
ure la température à l’intérieur
corps d’un cochon. Elle transme du
t sans fil, à un récepteur, les
capturées et quelques indicateu don nées
rs de performance, au rythme
par minute pendant six jours. de cinq fois
Elle tire l’énergie nécessaire des
l’estomac au moyen d’électro fluid es de
des de cuivre (Cu) et zinc (Zn)
par Jenny Haupt, Cody Clevelan . (Rad iogr aphie
d et Phillip Nadeau.)
http://www.nature.com/articles/
s41551-016-0022
un
MediaMarkt ouvre
de
magasin drive-in
ue
matériel électroniq
à Tilburg, Pays-Bas
www.elektormagazine.fr septembre/octobre 63
outil de labo
indispensable
Arduino portable
ires et
ino place ses fichiers tempora
lications (Windows), l’EDI Ardu
Comme presque toutes les app inat eur. Ce n’es t pas vraiment
ail dan s des emp lace men ts fixes du disque dur de l’ord
dossiers de trav propre matériel, mais cela le
devient
ceux qui travaillent avec leur
un problème pour la plupart de vous n’êt es auto risé à installer ni
deve z utili ser un ordi nate ur public ou de l’université où
lorsque vous allation
l’EDI Arduino portable. Une inst
ques. La solution est de rendre
progiciels de cartes ni bibliothè
dossier d’installation.
portable conserve tout dans le d’ajouter un dossier nommé « po
rtable »
namment simple, car il suffit
Rendre l’EDI portable est éton ino. Au proc hain lanc eme nt de l’ED I, il
I contenant l’exécutable Ardu
au dossier d’installation de l’ED ment pour ses croq uis ; il y met tra les
t et l’utilisera comme emplace
le détectera automatiquemen ains i que ses fichiers temporaires.
Tout
othèques que vous inst allez ,
progiciels de cartes et les bibli er sur une clé et utili ser quand
sem ent clas sé dan s un seul dossier que vous pourrez copi
sera soigneu
in.
et où vous pourriez en avoir beso hine plusieurs installations
est auss i un bon moy en pour maintenir sur une mac
L’EDI portable sans arrêt,
bibliothèques sont mis à jour
les progiciels de cartes et les
d’Arduino distinctes. Comme t un nou vel EDI port able à chaque
uire de vieux projets. En installan
on peut involontairement détr gadgets clign otan ts), on le sécu rise
(peut-être pas pour tous vos
nouveau projet qui le justifie chivage de proj ets.
aussi une bonne solution d’ar
facilement pour l’avenir. C’est é dans d’autres installations d’ED
I. Ceci
portable et peu t être copi
Le dossier portable est lui-même s ordi nate urs, une fonc tion que les
ements identiques sur plusieur
permet de déployer des environn
apprécieront sûrement.
enseignants et administrateurs
uide/PortableIDE
https://www.arduino.cc/en/G
Ô grand astre !
Quel serait ton bonheur,
si tu n’avais pas ceux que tu éclaires !
Vous voulez participer ? Envoyez vos commentaires, suggestions, trucs et astuces à labs@elektor.com
www.elektormagazine.fr septembre/octobre 65
participez au concours
de vidéoclips Elektor
Vous avez réalisé un projet ou lu un article d’Elektor ? Vous avez aimé ? Détesté ? Fignolé, modifié ou
détruit quelque chose ? Faites-le-nous savoir et vous serez (peut-être) récompensé. Tournez un vidéoclip
de votre expérience elektorienne et participez à notre concours pour tenter de remporter le gros lot !
Soyez vous-même !
N’essayez pas d’imiter un vlogueur connu. Votre vidéoclip devra être
simple, divertissant et accrocheur. Il devra avoir trait au « monde
REC
d’Elektor » et donc regorger de technique et d’électronique. Il pourra
être humoristique à condition de ne pas exagérer. L’objectif est que
votre vidéoclip obtienne le plus de « J’aime » possible. Choisissez une
résolution élevée (de préférence HD 1920 × 1080 pixels). N’utilisez pas
de musique protégée par des droits d’auteur. Parlez distinctement et de manière compréhensible.
Pour obtenir les termes exacts du règlement, rendez-vous ici : …et le gagnant
est...
www.elektormagazine.fr/concours-video
02:05 / 04:30
PROJET DU LABO
www.elektormagazine.fr septembre/octobre 69
+5V
K1 L1, L2, L3 = 36502AR33JTDG L4, L5, L6 = HZ0603B102R-10 L4 L5
0 - 30 MHz in L1 L2 L3
1 C8 C9 C14 C13
ANT
330nH 330nH 330nH
2 D1 100n 100n 100n 100n
C1 C2 C3 C4 C5
8
150p 270p 270p 150p 100n VCC FL1 8 K4
1 4
IN_A OUT_A 45 MHz VCC
BAS70-04 R1 5 6 3 1 4
OUT_B IN/OUT OUT/IN IN_A OUT_A
R2 5
12V +12V IC1 OUT_B
1k
K7 L6
SA602AD IC2
1k
2 6 GND ZC ZC GND OUT to ADC
IN_B OSC_B 1 2 5 4 SA602AD 312.5 kHz
7 2 6
C18 C17 C6 OSC_E IN_B OSC_B
R9 C10 7
0 GND C7 C11 OSC_E
100n 100n 100n 3 GND C12
330R
1n 8p2 100n 3
K5 10p
C16 K3
TX out 1
1
5V +5V ~10mW R8
K6 2 100n R3 2
IN from
22k
T1 K2 DAC B
R10 C15 copyright
56R
R5
1 44.6875 MHz
56R
1k
0
R7 100n R6 R4 2
BFR520 IN from
LED1 120R DAC A
120R
5k6
RX: 15 - 45 MHz
Power TX: 1 - 30 MHz
160160 - 11
Figure 3. Le circuit d’une carte radio capable de recevoir et d’émettre à des fréquences jusqu’à 30 MHz.
à fréquence intermédiaire (IF) pour l’en- première fréquence intermédiaire. FL1, à 10 W en ondes courtes, me fondant sur
voyer à un second mélangeur où inter- centré sur 45 MHz, est un composant les remarques à propos de la pureté du
vient le second changement de fréquence difficile à trouver. Idéalement, il devrait spectre. Ce niveau de puissance est loin
vers 312,5 kHz (cf. 1re partie) à l’aide d’un avoir une bande passante de 15 kHz, mais des 100 W standardisés sur les trancep-
second signal LO produit par le CN/A B. On 30 kHz peuvent encore faire l’affaire. En teurs du commerce, mais permet de com-
numérise ce second signal dans le CA/N du revanche, 7,5 kHz, c’est trop peu pour une muniquer autour du monde quand les
FPGA où se traitent le signal numérique et bonne qualité en AM. Les impédances du conditions sont favorables et entre conti-
la démodulation du message audio. SA602 et du filtre s’accordent assez bien nents en opération diurne dans la bande
Pareille carte radio, de concert avec la pour se passer de composant d’adapta- amateurs de 40 m (7 MHz) par exemple.
carte DSP à FPGA, fonctionne très bien tion, sinon, il faudrait en prévoir. Un deu-
en réception de signaux entre 0 et plus xième SA602 (IC2) mélange la sortie de Moins de bruit, plus de watts,
de 30 MHz. Avec une longue antenne FL1 avec le signal produit par le CN/A B VHF et au-delà
qui capte les signaux forts comme les pour former la seconde FI, un signal dif- La carte radio présentée ici convient pour
faibles, le récepteur n’entre que rare- férentiel disponible sur K4 et envoyé au la réception et pour l’émission en CW à
ment en saturation et ne donne pas de CA/N de la carte FPGA. basse puissance, elle constitue surtout
distorsion audio. On peut donc l’utiliser un bon point de départ. Mais un radioa-
pour des opérations sérieuses de récep- Émission mateur sérieux a des aspirations plus
tion de signaux sporadiques et faibles. Un radioamateur habilité n’aura aucune élevées, il veut construire un trancepteur
La figure 3 montre le schéma de la carte peine à ajouter quelques composants (émetteur et récepteur combinés) très
radio. à cette carte radio simple pour rendre performant, comparable, voire supérieur
On branche l’antenne sur K1, le signal le système capable de transmettre. à ceux du commerce, avec un spectre
entre alors dans un filtre passe-bas qui En mode émission, le CN/A canal A d’émission très pur, surtout pour la trans-
élimine les signaux de radiodiffusion en délivre directement dans la gamme de 0 mission en SSB. Aussi doit-il choisir une
FM et les autres interférences potentielles à 30 MHz une porteuse CW que T1 ampli- structure radio plus évoluée.
en VHF et UHF. La paire de diodes D1 en fie à 10 mW à peu près. Il ne reste plus On serait tenté d’ajouter une banque
tête-bêche limite les signaux trop forts qu’à soumettre ce signal à un ampli de de filtres pour éliminer tout l’extérieur
tout en offrant un chemin de retour pour puissance (PA) externe, sur lequel on de la gamme sélectionnée, se débarras-
les charges statiques qui pourraient s’ac- branche une antenne accordée pour com- ser des parasites (spurs) et des harmo-
cumuler sur le long fil d’antenne isolé. muniquer avec d’autres stations à des niques. Mais filtrer le bruit de phase et
Un bon vieux SA602 (IC1) amplifie le milliers de kilomètres. la gigue autour de la porteuse n’est pas
signal et le mélange avec celui qui vient La puissance maximale possible en mode une mince affaire, ce n’est pas gagné
du CN/A A connecté à K2. Le filtre à CW ou porteuse est discutable, mais je d’avance. Il est d’ailleurs peu probable
quartz FL1 produit un filtrage étroit à la recommande de ne pas dépasser de 5 que le filtrage des produits de repliement
Publicité
Contact / Informations
Organisé par
Lionel LEONE
Tel : +33 (0)4 37 40 31 64
Email : info@forumled.com
www.elektormagazine.fr septembre/octobre 71
supérieures, comme dans la bande ama-
< 30 MHz
teur de 144 MHz, mais mieux vaut alors
312.5 kHz fixer la première FI à 21,4 MHz, où l’on
Crystal filter
to ADC trouve des quartz plus pointus, et mettre
le VCO autour de 165 MHz.
< 30 MHz
Dans la bande de 2 m (144 MHz), on
45 MHz
tombe parfois sur de puissants signaux
d’amateurs locaux et des émetteurs hors
from DAC B
bande, mais qui obligent à resserrer les
45 - 75 MHz
RX: 44.6875 MHz
exigences sur les caractéristiques des
TX: 45 MHz blocs de la chaîne de réception. Il faut
VCO
alors utiliser un bon mélangeur et un
150177 - 16
filtre à quartz étroit. Il est aussi très
reference
from important de transmettre des signaux
DAC A propres. Le gain plus élevé des antennes
PLL I2C etc.
et la plus large propagation au-delà de
l’horizon des VHF par rapport aux OC
peuvent entraîner d’énormes niveaux
de signal chez d’autres radioamateurs
Figure 4. Synoptique d’un trancepteur adapté à la transmission vocale en SSB.
à proximité. Il n’est pas rare d’écouter
des signaux faibles à −140 dBm tandis
qu’il y a une émission locale à −30 dBm
du modulateur aiderait beaucoup si le d’un oscillateur local à accorder dans la à quelques kHz d’écart. Pensons que
filtre n’est pas particulièrement raide, gamme de 45 à 75 MHz. On peut com- nous voulons une dynamique de blocage
donc il faudrait chaque fois le syntoniser mander en tension (VCO) ce LO et l’as- de plus de 100 dB, avec des signaux
exactement sur la fréquence de travail. servir en phase sur un signal de réfé- 10 000 000 000 fois plus forts que le
Il est bien plus pratique de produire la rence provenant de l’un des canaux du bruit de fond, sans augmenter celui-ci
fréquence porteuse à celle du quartz CN/A. Cette technique permet parfaite- aux fréquences adjacentes.
(45 MHz), filtrer les composantes de ment la transmission vocale en SSB. La
repliement et les parasites, puis la figure 4 donne le synoptique de ce genre Rejoignez-nous
mélanger vers le bas sur la fréquence de trancepteur. Le but de cet article n’est pas de présen-
du canal (entre 0 et 30 MHz) au moyen On peut faire pareil pour des fréquences ter en détail une carte radio de grande
classe. Les expériences à ce sujet pro-
gressent encore [4] et j’ai construit une
radio complète pour la bande de 2 m.
Selon l’intérêt suscité et les retours
obtenus, nous pourrions continuer à
publier plus d’informations dans le futur.
Construire un trancepteur représente
un gros projet et nous encourageons
les radioamateurs et les expérimenta-
teurs à venir partager leurs recherches
et suggestions.
À venir…
Un prochain article présentera une carte
de commande pour gérer l’interface uti-
lisateur et la communication numérique
avec le FPGA, il ne manque plus que cela
pour constituer une radio de paillasse
complète.
(160160 – version française : Robert Grignard)
dans l’e-choppe
Liens
[1] www.elektormagazine.fr/150177
ª160160-1
[2] www.elektormagazine.fr/160160 circuit imprimé nu
[3] www.elektormagazine.fr/labs/ pour carte radio
fpga-dsp-radio-for-narrow-band-communications-150177-i
[4] Blog de l’auteur : sm6vfz.wordpress.com
Il faut surmonter quelques obstacles pour développer des applications pour iPhone ou iPad. Nous
recommandons aux électroniciens qui ont besoin d’une seule petite application pour piloter du matériel
externe d’utiliser plutôt des solutions
simples. C’est là que techBASIS
entre en jeu. Cette plateforme
permet de créer ses applications
pour iPhone/iPad directement sur
l’appareil mobile ; elle contient des
bibliothèques avec de nombreuses
fonctions. Nous vous
présentons dans
cet article une
application qui
communique avec le
monde extérieur via le
protocole Bluetooth
Low Energy.
www.elektormagazine.fr septembre/octobre 73
Apple met à disposition gratuitement Sampler) et acquérir en version normale sur iPad et iPhone. Naturellement, il ne
l’environnement de développement au prix de 16,99 € dans l’App Store [2]. faut acheter l’app qu’une seule fois.
Xcode pour créer ses propres apps. Swift La version de démo permet uniquement
est le langage de programmation utilisé d’exécuter les programmes de démo dis- Que propose techBASIC ?
en général. Il faut un ordinateur Mac ponibles ; il n’est donc pas possible de Le nom laisse supposer que l’app pré-
doté d’un système d’exploitation à jour créer de nouveaux programmes ou d’en sente de nombreuses similitudes avec
pour faire tourner la dernière version 8. modifier. l’ancien langage de programmation
Après avoir créé l’application, vous pou- BASIC. L’étendue des fonctions n’est tou-
vez ensuite l’envoyer directement sur Tous les programmes disponibles tefois pas comparable à celle du BASIC
l’appareil mobile à partir de Xcode. (démos) sont affichés dans un dossier originel. Vous trouverez une description
après le démarrage de l’application. Il complète dans le manuel de référence
App techBASIC est possible de lancer ou d’éditer les pro- de techBASIC [3]. En plus des fonctions
Quand on veut simplement piloter un grammes depuis ce dossier. Ensuite vous habituelles de mathématiques et de
appareil à l’aide d’un ordiphone et créer pouvez convertir les programmes termi- chaînes de caractères (par ex. LEFT$),
une petite interface utilisateur (y compris nés en apps. Il faut pour cela télécharger techBASIC offre également des fonctions
une interface pour un circuit), se plonger sur le Mac le programme techBASIC App pour le traitement des événements. Il
dans Xcode demandera beaucoup d’ef- Builder au prix de 49 $ pour produire est ainsi possible de réagir à la pression
forts et un investissement considérable l’app. Cela est probablement superflu d’un bouton sur l’écran.
(peut-être trop). L’app « techBASIC » [1] et trop compliqué pour la plupart des D’autres fonctions se basent sur les stan-
de l’entreprise Byte Works est une alter- électroniciens. dards Bluetooth Low Energy (BLE) et
native intéressante. Il est difficile d’envisager de la program- Wi-Fi. Elles permettent la communication
L’environnement complet de développe- mation directement sur iPhone en raison avec le monde extérieur. BLE et Wi-Fi sont
ment (IDE) se présente sous la forme de la taille de l’écran. Un iPad avec clavier également les seuls protocoles de com-
d’une seule application que l’on peut externe est en revanche plus adapté au munication autorisés par Apple, contrai-
télécharger en version de démo (tech- développement de programmes tournant rement à l’USB ou au Bluetooth 2.x. Les
deux protocoles radio sont assurément les
voies de communication les plus intéres-
santes pour interroger par exemple des
Listage 1. Traitement des données de l’utilisateur par exemple avec un capteurs externes dans le domaine de
client Wi-Fi qui communique avec un module ESP8266. l’Internet des Objets ou de la domotique.
! Handle pressed button Le support pour le Wi-Fi est assuré par
SUB touchUpInside (ctrl AS Button, time AS DOUBLE)
la fonction/classe Comm. Il est ainsi très
facile de réaliser un client HTTP sur
http_string = "http://192.168.254.70/"
iPhone/iPad. Par exemple, j’ai déve-
loppé un code (OnOffTemp.txt) pour
! Heizung EIN
piloter une chaudière avec un serveur
IF ctrl = Tag THEN HTTP sur ESP8266. Le listage 1 montre
http_string = http_string & "gpio/1" la partie du programme qui traite les
proc_http entrées de l’interface utilisateur. Vous
END IF pouvez télécharger le code complet sur
! Heizung AUS le site d’Elektor [4].
IF ctrl = Nacht THEN techBASIC met à disposition des fonc-
http_string = http_string & "gpio/0" tions pour lire les capteurs internes du
proc_http dispositif (par ex. l’accélération et les
END IF
coordonnées géographiques). Je men-
tionnerai encore rapidement les fonctions
! Lese Status
graphiques qui permettent de créer des
IF ctrl = Status THEN
courbes complexes et des représenta-
http_string = http_string & "gpio/read"
tions graphiques.
proc_http Il faut par contre s’arrêter, mettre les
END IF points sur les i(Phone) et parler de
! Lese Vorlauftemperatur l’étendue des fonctions pour créer des
IF ctrl = VL_Temp THEN interfaces utilisateurs graphiques (GUI).
http_string = http_string & "temp" Quelques lignes suffisent à créer des wid-
proc_http gets impressionnants utilisés dans de
END IF nombreuses apps commerciales (But-
IF ctrl = quit THEN tons, DatePicker, Slider, ...). Vous trou-
STOP
verez sur le site internet du fournisseur
de techBASIC une démonstration qui ras-
END IF
semble tous les widgets sur l’écran d’un
END SUB
iPhone/iPad.
RF_ANT
VCC
2 21
SIO1_AIN SIO16
rayonnement UV. Les valeurs mesurées 4
SIO2_AIN SIO17
24
5 25 JP1
sont envoyées par BLE à un iPhone/iPad 10 6
SIO3_AIN SIO18
26 red 1
SIO4_AIN SIO19
sur lequel tourne le programme techBA- 1
DNC
9
7
SIO5_AIN
MOD1
SIO20
27 black 2
SDA IC1 LED1 8 32 white 3
SIC. Le module BL600 est utilisé pour 2
SCL GND
8 SIO6_AIN TX_SIO21
9 33 green 4
3 7 SIO7_OTA RX_SIO22
la transmission BLE, un dispositif bien VDD SI1145 VDD
-A10-GMR
12
SIO8_SDA
34
4 6 RTS_SIO23
INT VDD
connu de la plupart des lecteurs d’Elek- 13
SIO9_SCL CTS_SIO24
35
DNC 14 36
SIO10_MOSI
tor. Deux cartes de liaison (BoB) sont 5 15
SIO25
38 JP5
SIO11_MISO SIO26
utilisées comme capteurs, une carte 16
SIO12_CLK SIO27
39 red 1
B1 18 40 2 CMD
Adafruit Si1145 pour mesurer le rayon- 19
SIO13 AUTORUN_SIO28
41 black 3 AUTORUN
CS SIO14 SIO29
LAIRD BL600XX
nement UV et une BME280 pour les trois MOSI JP2 20
SIO15 SIO30
42
2 22 44
autres mesures. Le dispositif est alimenté SDA/MISO
1 23
RESET_SWDIO SIO0
SCL/SCK LED1 NC_SWDCLK
par une pile bouton CR2032 qui fonc- VCC
GND
GND
GND
GND
GND
GND
GND
GND
GND
tionne chez moi sans interruption depuis S1
R1
GND 1 3 11 17 28 29 31 37 43
déjà 10 mois.
68R
BME280 BREAKOUT
www.elektormagazine.fr septembre/octobre 75
réussi. Ce nom de fonction et les autres
noms de fonction appelés lors de l’éta-
blissement de la connexion sont une
partie intégrante de techBASIC. Il n’est
pas nécessaire de définir des fonctions
de callback (comme c’est le cas pour
de nombreux langages de programma-
tion). Ensuite, il faut utiliser la fonction
BLEPeripheralInfo. Celle-ci récupère la
liste des services disponibles sur l’appa-
reil BLE (device). Si vous n’avez pas ces
informations dans la documentation de
votre dispositif BLE, vous pouvez utili-
ser un petit programme de techBASIC
nommé « sniffer ». Il montre tous les
services disponibles du dispositif BLE
sous forme d’UUID.
Liens
[1] www.byteworks.us/Byte_Works/techBASIC.html
[2] https://itunes.apple.com/de/app/techbasic/id470781862?mt=8
[3] www.byteworks.us/Byte_Works/Documentation_files/techBASIC%20Manual%203.3.1.pdf
[4] www.elektormagazine.fr/160202
[5] http://shop.oreilly.com/product/0636920029281.do?sortby=publicationDate
!airpvar = "40"
airpLabel = Graphics.newLabel(x_lab, y_lab, 200)
airpLabel.setText("Luftdruck: ")
airparLabel = Graphics.newLabel(x_lab+200, y_lab, 100)
airparLabel.setColor(0,0,1)
END SUB
Figure 3. Pour comparaison :
l‘application d’exemple sous Android.
www.elektormagazine.fr septembre/octobre 77
PROJET DE LECTEUR
sculpture cinétique
quand l’électronique et l’art se rencontrent...
L’association du monde des électrons domestiqués et de celui de la créativité sans limites offre un vaste
potentiel ; par exemple dans les sculptures modernes qui peuvent changer de forme grâce à des moteurs.
L’école technique supérieure d’Aix-la-Chapelle a concrétisé un tel projet : une matrice de boules en bois peut
afficher des pictogrammes, mais aussi permettre de visualiser des fonctions mathématiques. Nous décrivons
dans cet article la commande astucieuse des moteurs.
Une rencontre entre artiste et ingénieur a pris place juste der- Le matériel en bref
rière les caisses du musée BMW à Munich, où une « sculpture Notre sculpture cinétique se compose d’une matrice
cinétique » grand format accueille le visiteur. Cette sculpture de 12 × 8 boules en bois. Ce n’est que la classe « bois » com-
se compose de 714 boules de couleur argentée, suspendues parée à la sculpture BMW, néanmoins celle-ci reste une excel-
au plafond à l’aide de câbles en acier ; des moteurs permettent lente occasion de création et d’extension. Chaque boule est
de changer la hauteur de chaque boule [1]. Les mouvements suspendue par un fil de nylon à peine visible, enroulé sur une
des boules passent tout en douceur d’une forme à une autre, cannette de machine à coudre, fixée à un moteur pas à pas.
ce qui illustre le processus de recherche et de création de la Les différents modules sont fixés à écarts constants sur un
carrosserie d’une automobile. Le tout constitue une accroche châssis. Comme le montre la figure 1, les moteurs pas-à-pas
visuelle indéniablement réussie. et les circuits de commande pour une rangée de boules sont
Cet article décrit comment une telle idée de visualisation trou- reliés en parallèle par un câble en nappe à une carte centrale,
verait sa place dans votre salon. Le projet décrit ici a été éla- le hub. Comme le montre la photo du chapeau de l’article, pour
boré dans le cadre du mémoire de licence d’un étudiant de notre premier essai nous avons suspendu le châssis et ses
l’école technique supérieure d’Aix-la-Chapelle (génie électrique moteurs pas à pas à un bâti, de sorte que les boules semblent
et technique de l’information). flotter librement dans l’espace.
HUB
Figure 1. Une topologie de réseau au format « étoile mixte ». Figure 2. Moteur pas-à-pas avec carte de commande individuelle.
Le choix des moteurs pas à pas signaux de commande du hub central et les amplifie à l’aide
Les moteurs pas à pas sont prédestinés pour ce projet en raison d’un étage de puissance.
de leur commande relativement simple et leur bonne disponibi- Le circuit de la carte de commande (fig. 3) se compose d’un
lité à faible coût. Lors du choix du moteur, les critères décisifs microcontrôleur ATmega88-20MU [2], qui à l’aide des quatre
ont été le couple disponible, la consommation électrique et la connexions PC0 à PC3 (IN1 à IN4) prend en charge la communi-
fixation du moteur. Le modèle NEMA 14 facilitait le montage. cation et la commande du double pont bien connu L293DD [3].
Après quelques recherches, le choix s’est porté sur le moteur Ce circuit intégré renferme deux paires de pilotes, dont les sor-
pas-à-pas de type PSM35BYG104, souvent proposé lors de ties (à savoir au milieu du pont) sont connectées aux enroule-
déstockage (fig. 2). Des essais ont montré que le couple de ments du bobinage du moteur pas-à-pas bipolaire. Le micro-
maintien disponible de 0,5 Ncm était suffisamment élevé. Ce contrôleur produit une séquence de commutation qui déplace
paramètre est particulièrement important, car sinon toutes les le rotor par pas, en avant ou en arrière. En outre le micro-
boules tomberaient lorsque les moteurs ne sont pas alimentés. contrôleur peut complètement activer ou désactiver les pilotes
Combiné à un diamètre de cannette inférieur à un centimètre, de ponts à l’aide des broches PD6 et PD7 (EN1, EN2).
le poids de la boule peut être alors d’environ 100 g. Le moteur Le L293DD est alimenté ici en 5 V, mais il peut être utilisé avec
choisi dispose de 200 pas physiques, c’est-à-dire qu’en mode une tension allant jusqu’à 12 V (une tension supérieure n’est
« pas entier » il atteint une résolution de 1,8°. Avec la méca- pas possible avec le moteur choisi). L’étage des pilotes travaille
nique choisie, cela correspond à une précision de positionne- avec une fréquence d’horloge jusqu’à 1 kHz pour la séquence
ment d’environ 0,1 mm ! de pas souhaitée. En 5 V, un courant maximal de 600 mA est
possible, qui peut être maintenu en permanence. C’est plus
Commande de moteur décentralisée que suffisant pour le moteur choisi. La résistance de shunt R2
Comme le montre la figure 2, une petite carte de commande connectée aux entrées du CA/N du contrôleur sert à la mesure
est fixée sur chaque moteur pas à pas, laquelle reçoit les du courant instantané. La comparaison des tensions d’entrées
+12V +5V
+5V
10 20
VS VSS
TP1
IN1 2 3
C2 IN1 OUT1
EN1 1
R1 EN1 TP2
100n IN2 9 8
IN2 OUT2
10k
6 4 18 IC1 TP3
VCC VCC AVCC IN3 12 13
IN3 OUT3
23 IN1 EN2 11
PC0/ADC0 EN2 TP4
29 24 IN2 IN4 19 18
PC6/RESET PC1/ADC1 IN4 OUT4
25 IN3
IC2 PC2/ADC2 L293DD
12 26 IN4 4 14
+5V PB0/ICP PC3/ADC3 GND GND
13 27 5 15
PB1/OC1A PC4/ADC4/SDA GND GND
14 28 6 16
MOSI PB2/SS/OC1B PC5/ADC5/SCL GND GND
7 17
ATmega88-MU GND GND
15 30 RXD
K1 PB3/MOSI/OC2 PD0/RXD
2 1 MISO 16 31 TXD
PB4/MISO PD1/TXD
4 3 SCK 17 32 SYNC AGND
PB5/SCK PD2/INT0
6 5 RST 7 1 A
PB6/XTAL1/TOSC1 PD3/INT1
8 2
ISP PB7/XTAL2/TOSC2 PD4/XCK/T0 +12V +5V
9
PD5/T1
10 EN1 K2
PD6/AIN0
20 11 EN2 1 2
AREF PD7/AIN1
3 4
22 19
ADC7 ADC6 5 6
GND GND GND R2 RXD 7 8
C1 C3
3 5 21 TXD 9 10
0R1
100n 100n
SYNC
160272 - 11
www.elektormagazine.fr septembre/octobre 79
+5V +5V +5V +5V
160272 - 12B
SYNC_LINE$4 = CONNECTED TO CORRESPONDING WIRE IN 160272 - 12A
Figure 4. Les connexions aux rangées de moteurs sont situées sur le haut de la carte du hub.
+5V +5V
IC4
JP1
E1 1 8 1
VCC1 VCC2
+5V TXD_MASTER 2 7 2
OUTA INA
RXD_MASTER 3 6 3
INB OUTB
E2 4 5 4
GND1 GND2
C1
4 3 2 1 ISO7221M +5V
R1
JP2
100n R7 R13 R6 R12
10k
6 4 18
10k
10k
10k
10k
VCC VCC AVCC
23 SYNC_MASTER IC2.B
PC0/ADC0 IC2, IC3 = 74HC21D 9 TXD_LINE$6
29 24
PC6/RESET PC1/ADC1 10 TXD_LINE$12
25 TXD_CLK GEN 8
IC1 PC2/ADC2 & 12 TXD_LINE$5
12 26
+5V PB0/ICP PC3/ADC3 +5V 13 TXD_LINE$11
13 27 JP3
PB1/OC1A PC4/ADC4/SDA
14 28 +5V
MOSI PB2/SS/OC1B PC5/ADC5/SCL R14
1 2
ATmega88-MU R5 R11 R4 R10
10k
15 30 RXD_CLK GEN
K1 PB3/MOSI/OC2 PD0/RXD
10k
10k
10k
10k
10k
10k
10k
SYNC_MASTER
TXD_MASTER
RXD_CLK GEN
TXD_MASTER
20 20 20 20
VCC VCC VCC VCC
2 18 2 18 18 2 18 2
A0 B0 A0 B0 B0 A0 B0 A0
SYNC_LINE$12 3 U1 17 SYNC_LINE$2 3 U2 17 17 U4 3 RXD_LINE$6 17 U3 3 RXD_LINE$3
A1 B1 A1 B1 B1 A1 B1 A1
SYNC_LINE$11 4 16 SYNC_LINE$3 4 16 16 4 RXD_LINE$12 16 4 RXD_LINE$2
A2 B2 A2 B2 B2 A2 B2 A2
SYNC_LINE$10 5 15 SYNC_LINE$4 5 15 15 5 RXD_LINE$5 15 5 RXD_LINE$8
A3 B3 A3 B3 B3 A3 B3 A3
SYNC_LINE$9 6 14 SYNC_LINE$5 6 14 14 6 RXD_LINE$11 14 6 RXD_LINE$1
A4 B4 A4 B4 B4 A4 B4 A4
SYNC_LINE$8 7 13 SYNC_LINE$6 7 13 13 7 RXD_LINE$4 13 7 RXD_LINE$7
A5 B5 A5 B5 B5 A5 B5 A5
SYNC_LINE$7 8 74HC245D 12 N$42 8 74HC245D 12 12 74HC245D 8 RXD_LINE$10 12 74HC245D 8
A6 B6 JP4 A6 B6 B6 A6 B6 A6
SYNC_LINE$1 9 11 SYNC_PINOUT 9 11 11 9 RXD_LINE$9 11 9
A7 B7 A7 B7 B7 A7 B7 A7
1
DIR GND OE DIR GND OE DIR GND OE DIR GND OE
1 10 19 1 10 19 1 10 19 1 10 19
160272 - 12A
SYNC_LINE$4 = CONNECTED TO CORRESPONDING WIRE IN 160272 - 12B
www.elektormagazine.fr septembre/octobre 81
Le
Interrupt. réception Commande
Routine de réponse
Crée message
Autorise émission
Mouvement Commande de pas
Figure 6. Les processus du micrologiciel du hub. Figure 7. Interface utilisateur confortable du logiciel pour PC.
Un total de 254 adresses peut être défini par un octet, car les Micrologiciel du microcontrôleur du hub
adresses de diffusion 0x00 mais aussi 0xFF ne peuvent être Le micrologiciel du microcontrôleur central est géré par inter-
utilisées pour envoyer des commandes individuelles. Chaque ruptions. Une interruption due à la réception d’un message
message est vérifié au niveau de l’octet pour les erreurs de traite toutes les données reçues et les vérifie. Après une véri-
parité et de débordement possible. Ces fonctions sont déjà fication réussie, le micrologiciel décide si une réponse au mes-
intégrées au matériel du microcontrôleur et peuvent être lues sage est requise. Si oui, celle-ci est produite et envoyée. Puis
via un registre d’état pour détecter d’éventuelles erreurs. l’émetteur se désactive.
Après un contrôle réussi du message, il est décidé s’il s’agit La commande de mouvement reçoit ses ordres à partir du tam-
d’une instruction de mouvement, ou d’une commande. Les pon et les convertit en instructions détaillées pour la commande
instructions de commande sont directement exécutées, les par pas. En outre, elle définit les paramètres de la direction du
instructions de mouvement sont d’abord mémorisées. Cette mouvement et les conditions d’interruption.
procédure garantit que tous les moteurs connaissent déjà la La commande par pas est déclenchée par l’horloge et s’occupe
commande et peuvent alors l’exécuter simultanément dès que concrètement du pas, après avoir vérifié les conditions d’in-
le logiciel en donnera l’ordre. terruption. Les instructions de déroulement sont consignées
Lorsque le maître a envoyé un message, l’état de chaque étage dans la mémoire de pas sous forme de données binaires, de
de pilote de moteur est interrogé. Si un esclave ne répond pas, sorte que la commande de mouvement soit moins sollicitée.
le message sera envoyé à nouveau. L’esclave répond avec un Les processus du micrologiciel sont décrits à la figure 6.
message d’une longueur de neuf octets :
Le logiciel sur le PC
Adresse ID reçue Mémoire Pos.H Pos.L Horloge H Le logiciel sur le PC offre une possibilité conviviale de com-
Horloge L CRC STOP mande et de programmation, et représente donc un complément
judicieux. Le logiciel permet d’envoyer au hub des instructions
Outre sa propre adresse sont transmis l’identifiant (ID) du der- de mouvement et de commande ainsi que de configurer des
nier message reçu et la mémoire actuellement libre, l’horloge profils de mouvements.
courante et la position comme octet haut ou bas. La détec- À cet effet sont rassemblés dans un message une instruction
tion d’erreur est effectuée en calculant un octet de somme de avec une adresse, un numéro d’identification du message, une
contrôle de tous les octets précédents selon la norme CCITT/ somme de contrôle et un bit de stop.
ITU-T. L’octet de stop termine le message. Dès lors qu’un message a été envoyé, une réponse est immé-
Les instructions de commande ou de mouvement mentionnés diatement attendue ; elle est elle-même vérifiée à sa récep-
ci-dessus contiennent toutes les instructions nécessaires pour tion. Si dans un intervalle de temps d’attente donné, aucune
donner au spectateur l’impression de mouvements fluides de réponse n’est reçue, le message sera envoyé à nouveau jusqu’à
la sculpture. Certaines de ces commandes sont expliquées un nombre défini de tentatives, après quoi le processus sera
dans le tableau 1. interrompu.
Lors de l’envoi de plusieurs messages, une zone de mémoire
Le cas échéant d’autres instructions peuvent être facilement est réservée pour chaque message afin d’y stocker les réponses
intégrées au micrologiciel. Comme simple routine de test, une individuelles pour une estimation ultérieure. Lors de l’envoi de
table de sinus a été créée, avec des instructions précalculées série d’instructions, un tri des messages par adresse est prévu.
et contenant toutes les valeurs calculées pour tous les modules L’interface du logiciel à la figure 7, conçue à des fins de test,
de commande afin d’exécuter un mouvement sinusoïdal de la est spartiate, mais elle peut facilement être personnalisée et
sculpture. Avec ce profil de mouvement, on peut par ex. sans étendue. À l’aide d’un menu à onglets sur le bord supérieur,
programmation préalable vérifier le courant consommé, la syn- on accède à la commande manuelle, à l’éditeur (application
chronicité et le sens de rotation de chaque moteur. de démonstration), à un mode de démonstration ainsi qu’au
www.elektormagazine.fr septembre/octobre 83
PROJET DU LABO
télécommande
Bluetooth Low Energy
vos désirs sont des ordres
Durant l’année 2015, nous vous avons un module esclave, c’est pourquoi les lui, est capable d’endosser le rôle de
présenté plusieurs projets Bluetooth Low projets précédents avaient besoin d’un maître et qui permet alors d’échanger
Energy (BLE) dans une série d’articles [1] maître sous la forme d’un ordiphone avec jusqu’à quatre modules esclaves.
autour du BL600, un module BLE fabri- ou d’un ordinateur pour fonctionner. Le Dans cet article, nous vous proposons de
qué par Laird Technologies. Le BL600 est BL600 a un cousin, le BL620 [2], qui, mettre en œuvre le BL620 comme télé-
12k
32 25
SIO_21 SIO_18
GND 1 2 RX 33
SIO_22 SIO_17
24 débutant
RESET 3 4 TX 34 23
PGM 5 6 CTS 35
SIO_23 NC
22
Æ connaisseur
SIO_24 RESET
OTA 7 8 RTS 36
SIO_25 SIO_16
21
S3 expert
GND 9 10 37 MOD1 20
GND SIO_15
38 BL620 19
NC SIO_14 RESET
M50-3150542 39 18
+3V NC SIO_13 R7
40
SIO_28 GND
17 env. 2 h
470R
41 16
SIO_29 SIO_12
42 15
SIO_30 SIO_11
43 14 LED1
GND SIO_10
44
SIO_0 SIO_9
13 Adaptateur USB-série 3,3 V,
outils pour souder des CMS,
SIO_1/AIN
SIO_2/AIN
SIO_3/AIN
SIO_4/AIN
SIO_5/AIN
SIO_6/AIN
SIO_7
SIO_8
J-Link Edu (optionnel)
GND
GND
GND
bicolor
VCC
1 2 3 4 5 6 7 8 9 10 11 12
env. 35 €
+3V
R10 R11
R1
12k
12k
12k
S4 1
Caractéristiques
debug
2
autorun S2 S1
3 • Faible consommation
R2
• Bluetooth Low Energy (BLE)
12k
ON OFF
• Adapté aux boîtiers de
150716 - 11
télécommande 12 V
commande de l’interrupteur secteur [3]. ton de réinitialisation, un connecteur fonctionne sous 3 V ? C’est dû à un com-
Ainsi, plus besoin d’un ordiphone avec de programmation et un commutateur promis. Le problème a été de trouver un
appli pour piloter l’interrupteur, c’est plus pour sélectionner le mode d’opération petit boîtier standard adapté à une télé-
facile avec une télécommande dédiée. (débogage ou exécution) complètent le commande avec support pour une pile,
tableau. C’est en rajoutant l’alimentation deux boutons-poussoirs, une LED et, bien
L’électronique que les complications font leur entrée. évidemment, avec de la place pour le
Le circuit de base de la télécommande Qui dit télécommande, dit pile. En effet, BL620 (qui mesure 19 × 12,5 mm). Le
est assez simple (voir fig. 1). En effet, les télécommandes sont généralement seul boîtier qui correspondait à nos cri-
puisque le BL620 peut tout faire lui- sans fil et donc alimentées par une pile. tères était prévu pour des piles de 12 V
même, il n’y a pas besoin de grand- C’est pareil pour la nôtre, nous utilise- (en effet c’est un boîtier pour télécom-
chose en plus. Deux boutons-poussoirs rons même une pile de 12 V. Pourquoi mande genre porte de garage), voilà
plus une LED bicolore suffisent ; un bou- cette tension alors que le module BLE pourquoi. Nous abaisserons la tension
Endormir le module BLE au repos et le mode sommeil du module bas (le bouton-poussoir) sur cette
BLE est passé à la trappe. entrée.
Tout au début du projet l’idée était d’ali-
Or, il se peut que vous projetiez de réa-
menter le module BLE sous environ 3 V.
liser un autre projet BLE qui, lui, aura • SystemStateSet(0) : cette fonction
Dans ce scénario, le BL620 passait le plus
besoin du mode sommeil. Voici comment met le module BLE en mode
gros de son temps en mode sommeil en
faire : sommeil. À vous de mesurer la
ne consommant que 0,5 µA. Quand l’ali-
consommation de votre module.
mentation du montage est passée à 12 V
• GpioSetFunction(3,1,0x12) :
pour des raisons liées au choix du boîtier,
la broche 3 (premier paramètre) Notez que quand le BL620 sort du mode
la consommation au repos était détermi-
est configurée en entrée (par la sommeil, il commence son programme
née par IC1. Elle était trop élevée, il a
valeur 1). La valeur 0x12 indique que depuis le début, comme si on avait
donc été décidé de couper l’alimentation
le module sera réveillé par un niveau appuyé sur le bouton de réinitialisation.
www.elektormagazine.fr septembre/octobre 85
T1 R12
10R
29 28
GND GND
30 27 R8
NC NC R3 BSS84
31 26 5
RUN
IC1 VIN
2
1M
GND SIO_19
K1
12k
32 25 3
SIO_21 SIO_18 ISET
GND 1 2 RX 33 24 6
VFB
LTC3632 SW
1
SIO_22 SIO_17
RESET 3 4 TX 34 23 7 4
SIO_23 NC HYST SS L1
PGM 5 6 CTS 35 22
SIO_24 RESET GND
OTA 7 8 RTS 36 21
SIO_25 SIO_16 8 9
GND 9 10 +3V3 37 MOD1 20
GND SIO_15
38 BL620 19 100uH
NC SIO_14 JP1
M50-3150542 39
NC SIO_13
18
R7
40 17 R4
SIO_28 GND BATT+
470R
41 16
SIO_29 SIO_12 12V
1M
42 15
SIO_30 SIO_11
43 14 LED1 C3
GND SIO_10
44 13 R5
SIO_0 SIO_9 100u
BATT–
430k
SIO_1/AIN
SIO_2/AIN
SIO_3/AIN
SIO_4/AIN
SIO_5/AIN
SIO_6/AIN
12V
SIO_7
SIO_8
bicolor
GND
GND
GND
T2
VCC
1 2 3 4 5 6 7 8 9 10 11 12
D1
BSS123
BAT54C
D2
R11 R10
12k
12k
R1
12k
D3 BAT54C
S4 1 debug C1 C2
2
R6 R9
S3
autorun 100n 100n BAT54C S2
3 S1
1M
1k
12k
R2
RESET ON OFF
150716 - 12
avec un peu d’électronique, nous avons seulement 55 mAh. Il est donc hors de temps qu’il lui faudra pour effectuer son
choisi pour cette tâche le sympathique question de le laisser sous tension conti- travail. Du coup, quand le bouton-poussoir
LTC3632 de Linear Technology (désor- nuellement, c’est pourquoi nous avons est relâché, le circuit reste sous tension.
mais Analog Devices). rajouté un interrupteur marche/arrêt Les diodes doubles D2 et D3 ont deux
Pour que la pile dure longtemps, la électronique à l’aide de quelques tran- fonctions. D’une part, elles protègent le
consommation du montage devra res- sistors et des diodes. La figure 2 montre module BLE contre la tension de la pile
ter la plus faible possible. Côté BL620 le schéma final. de 12 V (même si R8 limite le courant,
pas de soucis, il ne consomme que 0,5 µA Le convertisseur-abaisseur IC1 est sous mieux vaut prévenir que guérir), d’autre
en mode sommeil (sleep), mais il y a tension si le transistor T1 est passant, part elles forment une porte ET pour évi-
aussi le convertisseur-abaisseur à nour- ce qui est le cas lorsque l’on appuie sur ter que les deux boutons-poussoirs soient
rir. Or, mine de rien, il est gourmand : il l’un des deux boutons-poussoirs. IC1 se court-circuités.
consomme 12 µA ! Cela peut vous sem- met en route et le BL620 est alimenté. Le La tension de sortie d’IC1 est ajustée
bler peu, mais en réalité c’est beaucoup BL620 s’occupe alors d’activer le transis- par le pont diviseur de tension R4/R5.
trop, car les piles de 12 V (au format tor T2 pour assurer le maintien au niveau Le calcul n’est pas sorcier :
23A) ont généralement une capacité de bas de la grille de T1, et ce pendant le
Vout = 0,8 × (1 + R4/R5)
Tableau 1. Signification des signaux lumineux émis par LED1. Si les Avec les valeurs choisies, Vout devrait
couleurs sont inversées, c’est que vous avez monté la LED à l’envers. se situer entre 2,5 et 2,9 V (tolérance
Couleur Clignotement Description de 5% pour les valeurs de R4 et R5).
Envoi de la commande pour activer l’interrupteur La résistance R12 a été rajoutée pour
Vert non pouvoir mesurer le courant du montage
suite à une pression sur S1.
sans à avoir besoin de couper l’alimenta-
Envoi de la commande pour désactiver l’interrupteur
Rouge non tion pour insérer un ampèremètre. Il suf-
suite à une pression sur S2.
fit alors de mettre un (milli)voltmètre aux
Recherche de l’interrupteur suite à une pression
Vert/rouge lent bornes de cette résistance et de diviser
simultanée sur les deux boutons S1 et S2.
par 10 la valeur mesurée pour connaître
Vert/rouge rapide Erreur de connexion (interrupteur non trouvé).
la consommation de la télécommande.
www.elektormagazine.fr septembre/octobre 87
• Pression simultanément sur S1
et S2 : le module BLE part à la
liste des composants recherche de périphériques BLE et
essaye de dénicher celui qui porte
le nom de l’interrupteur secteur
JA_SWITCH. S’il trouve ce périphé-
rique, son adresse MAC est sauve-
gardée dans l’EEPROM du BL620. La
télécommande est alors prête pour
piloter l’interrupteur secteur. Cette
action peut être renouvelée autant
de fois que vous le voulez, si vous
avez du mal à trouver l’interrupteur.
• Pression sur S1 ou S2 : le module
BLE tente d’établir une connexion
avec l’interrupteur secteur. Si la
connexion réussit, il envoie la com-
mande pour soit activer l’interrup-
teur (pression sur S1), soit le désac-
tiver (pression sur S2), puis il inter-
rompt la connexion avant de couper
sa propre alimentation en mettant
la broche SIO_8 au niveau bas. La
mise en route de la télécommande
dure moins d’une seconde. Cette
rapidité est due à l’enregistrement
de l’adresse MAC de l’interrupteur
dans l’EEPROM du module, ce qui
évite de devoir rechercher l’interrup-
teur à chaque fois.
Liens
[1] Elektor nº441 à nº447 ; compilation des articles du BL600 :
www.elektor.fr/elektor-select-compilation-bl600
[2] www.lairdtech.com/products/bl620
[3] Interrupteur 230 V commandé par Bluetooth (Low Energy) :
www.elektormagazine.fr/140115
[4] Passerelle Bluetooth 2 vers Bluetooth LE : www.elektormagazine.fr/150753
[5] Thermomètre sans fil Bluetooth Low Energy :
www.elektormagazine.fr/140190
[6] https://github.com/LairdCP/BL620-Applications
[7] www.elektormagazine.fr/150716
La réalisation
Même si cette carte de télécommande
comporte beaucoup de CMS, l’assem-
blage est tout à fait réalisable avec un
fer à souder très fin.
Pensez à monter la LED bicolore (LED1)
à environ 1 cm au-dessus la carte afin
qu’elle soit visible à travers un petit trou
du boîtier.
Pour l’instant, laissez JP1 de la carte télé-
commande ouvert.
Carte adaptatrice
En ce qui concerne la carte adaptatrice,
le connecteur K1 et le cavalier JP1 se
montent sur la face supérieure (« com-
posants »), le petit connecteur K2 va sur
la face inférieure (« soudure »).
La programmation
Commencez par télécharger le pro-
gramme (incluant l’utilitaire de pro-
grammation UwTerminal et les biblio-
thèques) [7]. Mettez S4 en position
debug, soit à l’opposé du BL620 (vers
• Choisissez le fichier « $autorun$. (JP1, broche 2, côté IC1) est bien dans
Remote.smartZ.sb », le chargement la plage de fonctionnement du BL620
du programme commence. (1,8 V à 3,6 V). Si c’est le cas, pontez
les contacts de JP1 avec une goutte de
Quand la programmation s’est terminée soudure afin de relier la partie alimen-
correctement, quittez le programme tation au reste du circuit.
UwTerminal et débranchez tout. Votre télécommande est désormais prête à
Mettez S4 en position auto- l’emploi. La première action sera d’appuyer
run, soit vers le BL620 (vers le sur les deux touches en même temps afin
haut). Installez la carte dans de la connecter à votre interrupteur BLE.
son boîtier avec sa pile La LED bicolore clignote lentement puis
de 12 V. Ensuite s’arrête (si celle-ci se met à clignoter rapi-
vérifiez que dement, la télécommande n’a pas été trou-
la tension vée). Appuyez sur la touche S2 pour acti-
en sor- ver l’interrupteur ; appuyez sur la touche
tie du cir- S1 pour le désactiver.
le bas). Ensuite, connectez cuit abaisseur (150716)
la carte adaptatrice sur K1 de la télé-
commande puis connectez une interface
dans l’e-choppe
USB-série TTL (3,3V !) à la carte adap-
tatrice, avant de la connecter à votre
ordinateur. ª150716-1 : circuit imprimé de la télécommande
Identifiez le numéro de port de commu-
ª150716-2 : circuit imprimé de l’adaptateur de programmation
nication dans le gestionnaire de périphé-
riques de Windows et lancez UwTerminal. ª140270-91 : module eBoB-BL600
exe en choisissant 9600 bauds et le bon ª140190-91 : thermomètre BLE (module BLE monté sur circuit imprimé)
port de communication. ª140115-1 : circuit imprimé de l’interrupteur 230 V BLE
ª150168-91 : module BL600 (peut remplacer le BL620, après reprogrammation)
• Clic droit puis, dans le menu, choi-
sissez Download -> BASIC -> Run
www.elektormagazine.fr septembre/octobre 89
PROJET DE LECTEUR
le projet TABULA
détection capacitive d’objets sur des écrans tactiles
De grands écrans tactiles sur lesquels des objets tangibles peuvent être posés et déplacés, voilà un projet
prédestiné aux applications éducatives. Jusqu’à présent, il était impossible d’exploiter la reconnaissance
tactile capacitive des tablettes et des grands écrans tactiles modernes comme la « Surface Hub ». Les
choses devraient changer grâce au projet de recherche mené par l’Université technique d’Aix-la-Chapelle en
collaboration avec Elektor.
À l’heure actuelle, l’Allemagne a besoin tique doit être perfectionnée. Soutenu cer des objets tangibles sur un écran
de plus de 40 000 informaticiens : non par le ministère fédéral allemand chargé tactile (à plat) qui présente un contenu
seulement des spécialistes, mais aussi de l’éducation et de la recherche (BMBF), didactique interactif parmi et autour de
des généralistes capables de répondre le projet TABULA [1] a pour objet de dis- ces objets. Pour cela, l’ordinateur de
aux besoins de chaque profession penser cette matière parfois sèche, de commande doit connaître à tout moment
moderne. Pour augmenter le nombre manière concrète et intuitive. l’emplacement et l’identité de ces objets
d’informaticiens, la formation informa- L’idée est que les élèves puissent dépla- tangibles. Les défis à relever sont nom-
tipoints sont recouverts d’un matériau que les choses sont beaucoup plus com-
conducteur ou dotés d’un stylet, de sorte plexes (ce qui n’est pas une mauvaise
que la capacité résultant du toucher de chose en soi). Lorsqu’il est conducteur,
l’utilisateur suffit pour assurer la détec- un objet présente une capacité intrin-
couche protectrice tion. Cette dernière se fait grâce à la sèque trop faible pour produire des
liaison conductrice qui relie la surface de points de contact. Il en résulte deux
antenne émettrice contact aux pieds des objets tangibles. inconvénients :
Pour pouvoir les distinguer, chaque pied
substrat de verre
présente un profil particulier, reconnu • Sur les surfaces capacitives mul-
antenne réceptrice par le logiciel. tipoints, les objets tangibles ne
substrat de verre À première vue, cela paraît facile, mais si sont détectés que si l’utilisateur les
afficheur LCD on y regarde de plus près, on découvre touche. Dès que l’utilisateur lâche
l’objet et que la capacité tombe, le
système est incapable de détecter si
Figure 1. Structure d’un écran tactile capacitif l’utilisateur a tout simplement lâché
multipoints. l’objet ou bien s’il l’a pris et écarté
www.elektormagazine.fr septembre/octobre 91
Voilà comment ça fonctionne : lorsque
AP1 le signal de mesure cherche un point
e-Author de contact sous la première balise, les
Learn App autres pieds se trouvent au-dessus
JSON-API d’électrodes émettrices de la surface tac-
tile qui sont à l’état passif. Ces autres
AP2
Swift données Bluetooth balises peuvent produire une capacité
des capteurs
Mac suffisamment élevée au point de mesure,
grâce à la capacité par rapport à la masse
émission
données tactiles réception de l’écran tactile. La capacité par rapport
image
à la masse de l’écran tactile est suffi-
HDMI/USB samment élevée pour être transmise des
objet tangible
table capteurs inactifs au capteur actif (celui
en train de mesurer), au travers de la
connexion conductrice établie entre les
AP3
pieds (balises). Cela fonctionne comme
avec un stylet, sauf que c’est la table
qui fournit la capacité au lieu de l’utili-
Figure 2. La configuration TABULA avec ses trois éléments : PC de commande, objets tangibles et
sateur. En disposant les pieds selon un
écran tactile.
motif triangulaire (triangle rectangle), les
objets tangibles peuvent être détectés
de l’écran tactile. TABULA, les objets tangibles (AP2) pla- de manière permanente.
• Il y a peu d’objets tangibles qui cés sur la table tactile avaient un rôle Cette solution crée néanmoins un nou-
permettent leur détection unique- passif. La donne a changé au cours du veau problème. Les systèmes capaci-
ment au travers de leur propre profil développement du projet. En effet, ces tifs modernes sont dotés de puissants
tactile. objets indiquent désormais à l’ordina- mécanismes de filtrage pour parer aux
teur leur position ainsi que leur identité influences parasites de l’environnement.
Ces deux problèmes ont été résolus par l’intermédiaire d’une connexion Blue- Après un certain temps, les points de
en amont du projet TABULA. D’abord, tooth. Regardons de plus près comment contact sont éliminés par ces filtres
jetons un coup d’œil à la configuration le projet a évolué. (comme pour un objet tangible qui n’est
matérielle et logicielle (fig. 2). Le projet plus touché). Resurgit alors le problème
comprend trois éléments. L’écran tac- Détection sous une autre forme : le système est
tile (AP3) qui envoie ses données tac- En 2013, la filière « informatique des incapable de distinguer un objet tangible
tiles à l’ordinateur de commande (AP1) médias et interaction homme-machine » éliminé par le filtrage d’un objet tangible
par USB et reçoit, en contrepartie, des de l’Université technique d’Aix-la-Chapelle qui a réellement quitté la table.
informations d’images en fonction de la a trouvé une solution pour contourner le En 2015, après deux ans de recherche,
position des objets tangibles. Au-dessus premier problème en équipant les objets l’Université a finalement trouvé une solu-
trône l’application didactique qui met à tangibles de pieds conducteurs (balises). tion en créant des objets tangibles actifs.
la disposition de l’utilisateur les données Ces balises sont reliées entre elles, p. ex. Ces nouveaux objets tangibles sont dotés
informatiques, et ce, sous une forme par une pellicule de cuivre, ce qui permet de petites antennes et de détecteurs de
qui correspond à l’application concrète de détecter les points de contact même contours qui enregistrent le signal de
envisagée. Avant le lancement du projet lorsque l’utilisateur lâche l’objet tangible. mesure de la surface tactile, ce qui leur
permet de savoir s’ils se trouvent tou-
jours sur la surface tactile. La figure 3
montre un signal mesuré à l’aide d’un
U multimètre directement sur la surface
d’un écran tactile capacitif multipoints.
Ce signal est engendré à intervalles régu-
liers (en général à une cadence de 60 Hz)
pour détecter les points de contact. Doté
t
d’une antenne simple, l’objet tangible
COMP capte le signal et le filtre, il conserve
uniquement l’amplitude qui se trouve
au-dessus de la ligne pointillée de sorte
qu’il ne reste plus qu’un signal comme
celui illustré dans le bas de la figure.
t Le potentiomètre du détecteur de
contours permet de régler la hauteur
de la ligne pointillée, soit la tension de
Figure 3. En haut, le signal qui permet à la surface tactile capacitive multipoints de trouver les seuil. Le circuit est illustré à la figure 4.
saisies tactiles et en bas ce qui reste à l’entrée du microcontrôleur après la détection de contours. Le réglage est nécessaire étant donné
56k
10k
tion de secours (fig. 5), pour pouvoir
détecter les signaux lumineux sur l’écran. max. 10k
56k
10k
mations par Bluetooth à l’ordinateur de
commande qui peut discerner un objet
éliminé par filtrage d’un objet ôté de la
table. Un effet secondaire (agréable) est
que la puce Bluetooth octroie un iden-
Table
tifiant unique universel (UUID), ce qui
permet de distinguer entre plusieurs
objets tangibles (même s’ils présentent
Figure 4. Schéma du circuit de détection de signal de l’objet tangible. Le potentiomètre permet de
le même profil de balises). Voilà qui a
régler la tension de seuil.
permis de résoudre le second problème.
est utilisé pour parer aux interférences leur signale que l’objet a quitté la table
créées par les doigts ou les autres objets (événement OFF-table), ce qui permet à Light µC
www.elektormagazine.fr septembre/octobre 93
TIMER Light µC == 1
Edge Detection µC ~40 ms Timer overflow
RESET
Light No Light
OFF Table ON Table
Light µC == 0
Edge Detection µC
Figure 6. Automate fini pour la détection de contours ; chaque signal détecté remet à zéro le timer Figure 7. Automate fini pour le capteur de
de 40 ms et envoie un événement « ON-table ». luminosité. Seul un point très lumineux sur
l’écran permet de déclencher un événement de
type lumière.
Listage 1. Structure arborescente du protocole qui permet aux objets petits points très lumineux au niveau
tangibles d’envoyer à la table des informations sur leur état. des positions potentielles des objets
tangibles. Dès qu’un point lumineux se
controller tree protocol trouve au-dessous d’un objet tangible,
controller ce dernier le détecte et envoie un signal
| de luminosité (LIGHT) au PC. Ceci per-
met au système d’établir le lien entre
+- [0: // advanced communication port
les points de contact et l’objet tangible.
|
Comme le capteur de luminosité ne livre
+- [1: // product identification des données fiables que lorsque les dif-
| +- 0: // manufacturer (like: rwth_i10) férences de luminosité sont particuliè-
| +- 1: // product id (like: 0A4F) rement nettes, l’objet tangible n’envoie
| +- 2: // uid (like: 0FA457EF) un signal de luminosité ( LIGHT ) que
lorsque l’écran est réglé sur très lumi-
|
neux. La distinction est uniquement de
+- [2: // basic attributes type binaire « lumière » ou « pas de
| +- 0: // on table? lumière » (fig. 7), puisque la fiabilité
| | +- 0] // off table du capteur est insuffisante pour pouvoir
| | +- 1] // on table (with side 1) livrer une mesure précise. En revanche,
cette fiabilité est suffisante pour l’appli-
| | +- 2] // on table (with side 2)
cation envisagée.
| | +- .. // and so on..
| | Protocole
| +- 1: // see light? (the side that is on the table) Le protocole utilisé par l’objet tangible
| +- 0] // see no light pour envoyer les messages à l’écran tac-
| +- 1] // see light tile multipoints a été conçu de manière
à pouvoir ajouter des fonctions supplé-
|
mentaires. Le logiciel de base de l’ob-
+- [3: // orientation, position jet tangible tel que décrit ici et contenu
| +- 0:FFFFFFFFF] // orientation (single rotation vector xxxyyyzzz) dans le paquet téléchargeable n’envoie
| +- 1:FFF] // orientation relative to table au système que les événements pour
(| +- 2:FFFFFFFFF] // position) les deux capteurs. Le message envoyé
par l’objet tangible correspond à l’une
|
des branches de la structure arbores-
cente (cf. listage 1). Le message 2:0:01
Examples: p. ex. est envoyé lorsque l’objet tangible
[2:0:1] // placed on the touch table se trouve sur la table. Pour l’instant, les
[2:0:0] // taken off the touch table messages transmis par les objets tan-
[2:1:1] // sees the light gibles se limitent à l’indication de l’état :
sur la table (ON-table) ou pas sur la table
[2:1:0] // sees no light
(OFF-table), et lumière (LIGHT) ou pas de
Figure 8. Carte équipée d’un ampli op, d’un potentiomètre d’ajustement et d’un microcontrôleur, mais sans module Bluetooth. Situé au milieu, le
capteur de luminosité est orienté vers le bas pour viser l’écran tactile (photo : Université technique d’Aix-la-Chapelle).
www.elektormagazine.fr septembre/octobre 95
le bus I²C
3e partie : composants et analyse des erreurs
La dernière partie de cette série est consacrée à trois puces I2C typiques : un capteur de température, un
extenseur d’entrées-sorties et une horloge en temps réel. Nous apprendrons comment lire et écrire leurs
registres et de quels outils matériels et logiciels on peut se servir pour cela.
Josef Möllers du chapeau de cet article, on distingue les trois composants dont
il est question ici, enfichés côte à côte dans une platine d’essai,
de gauche à droite : un capteur de température LM75 monté
Il existe de nombreux composants et modules I2C, du capteur sur un adaptateur, un extenseur d’entrées-sorties PCF8574 et
de température aux afficheurs graphiques, en passant par un module RTC avec la puce d’horloge en temps réel RV-8523,
les horloges en temps réel et les capteurs de position et de à gauche, en dessous de la pile.
mouvement. Il n’y a qu’à en rechercher une liste sur l’internet
ou bien taper « I2C » dans le champ de recherche du site web LM75
de votre fournisseur de matériel électronique favori. Et voilà Le LM75 est LE standard du capteur de température connecté
puces et modules qui vous arrivent par pages entières [1], par bus I2C. Dans son adresse à 7 bits, seuls les 4 bits de poids
nous vous en présenterons quelques-uns ici. fort sont fixes, les 3 autres bits sont déterminés par un circuit
Les modules I 2C ne nécessitent pas une connexion bien extérieur. Il est donc possible de connecter huit LM75 avec
compliquée avec leur hôte. Avec un câble ruban à 4 conducteurs les adresses 0x48 à 0x4F. Si, par exemple, on utilise le LM75
pour les données et l’alimentation, le tour est joué. Sur l’image pour contrôler la température d’un gros ordinateur, on peut
Figure 1. Logique interne du capteur de température LM75 (source : Figure 2. Structure interne de l’extenseur de port PCF8574 (source : Texas
Maxim). Instruments).
la LED s’éteint.
Plus exactement, on a envoyé un numéro de registre 0x01
puis 0x00, car, selon la documentation et l’aide en ligne, i2cset
exige à la suite de l’adresse I2C un numéro de registre, qui est
interprété par l’extenseur de port comme un masque de bits Figure 4. L’horloge en temps réel dispose de 14 registres adressables
pour ses sorties. pour la commande, l’heure et l’alarme (source : Micro Crystal).
www.elektormagazine.fr septembre/octobre 97
Figure 5. L’Open Logic Sniffer observe comment un ATmega88 lit les valeurs de température d’un LM75.
Wire.beginTransmission(0x68);
Wire.write(byte(0x03));
// set register number to 3
Wire.endTransmission();
Wire.requestFrom(0x68, 7); // read time and date
seconds = Wire.read();
tenseconds = (seconds >> 4) & 0x07; seconds &= 0x0f;
minutes = Wire.read();
tenminutes = (minutes >> 4) & 0x07; minutes &= 0x0f
...
www.elektormagazine.fr septembre/octobre 99
Tableau 2. Lecture d’un capteur LM75 avec le Bus
Pirate en mode maître. Ensuite, avec le Bus Pirate, on peut, de la même manière
I2C>[0x90 qu’avec la commande Raspbian i2cdetect, rechercher les
Envoyer la condition de START,
esclaves sur le bus I2C, ce qui affiche leurs fonctions d’écriture
I2C START BIT l‘adresse 0x48 et le bit d‘écriture
et de lecture séparément :
WRITE: 0x90 ACK (0), le LM75 répond avec ACK
I2C>0x00 Envoyer l‘octet 0x00, le LM75
I2C>(1)
WRITE: 0x00 ACK répond avec ACK
Searching 7bit I2C address space.
I2C>]
Envoyer la condition de STOP. Found devices at:
I2C STOP BIT
0x90(0x48 W) 0x91(0x48 R)
Envoyer à nouveau la condition
de START, puis l’adresse 0x48 C’est l’alternative si, ne disposant pas d’un RPi, on avait un
et le bit de lecture (1), le LM75 doute sur l’adresse affectée à un esclave. On peut aussi utili-
I2C>[0x91 r:2 renvoie ACK. Lire ensuite ser le Bus Pirate comme maître et exécuter manuellement le
I2C START BIT 2 octets. Le Bus Pirate acquitte protocole I2C. Le tableau 2 donne l’exemple d’une lecture de
WRITE: 0x91 ACK le premier octet reçu avec ACK, température sur un LM74.
READ: 0x14 ACK 0x20 le second seulement lorsqu’il est
établi que c’est aussi le dernier, En résumé
c’est-à-dire lorsqu’il a été averti Le bus I2C est un moyen extrêmement simple de connecter
d’émettre la condition de STOP. des périphériques à un processeur lorsque les volumes de
Envoyer à nouveau la condition données sont faibles et qu’aucun traitement d’interruptions n’est
I2C>] de STOP, le dernier bit reçu nécessaire. Deux fils, voilà tout ce qu’il faut ! Et comme il s’agit
NACK étant aussi le dernier à recevoir, d’un protocole multipoint, on peut connecter plusieurs esclaves
I2C STOP BIT l‘acquitter au préalable avec sur ces deux fils. La ligne ne devrait toutefois pas dépasser
NACK. une longueur d’un mètre. Grâce à des bibliothèques gratuites,
On peut aussi saisir l’ensemble sur une seule ligne : comme celle de Peter Fleury, l’effort de programmation reste
limité et de nombreuses causes d’erreurs sont exclues d’office.
I2C>[0x90 0x00][0x91 r:2]
Les instruments de mesure nécessaires à la recherche d’erreurs
I2C START BIT
soit sont disponibles la plupart du temps (multimètre), soit
WRITE: 0x90 ACK
ne coûtent pas une fortune. Une infinité de capteurs et autres
WRITE: 0x00 ACK
modules I2C sont impatients de prendre contact avec la carte
I2C STOP BIT à microcontrôleur sur la paillasse de votre laboratoire !
I2C START BIT (160373 – version française : Helmut Müller)
WRITE: 0x91 ACK
READ: 0x14 ACK 0xA0
Liens
NACK
I2C STOP BIT [1] Par exemple : http://rn-wissen.de/wiki/index.php/
I2C_Chip-%C3%9Cbersicht
[2] www.elektor.fr/logic-analyzer-scanaquad-sq100
Le Bus Pirate peut aussi fournir les résistances de rappel [3] www.elektor.fr/stemlab-125-10-starter-kit
(10 kΩ). Pour la version 3, il faut que la broche 5 (VPU) du
[4] http://dangerousprototypes.com/docs/
bornier d’entrées/sorties soit raccordée à la tension de rappel
Open_Bench_Logic_Sniffer
souhaitée. Cette tension alimente alors un commutateur
analogique auquel sont connectées toutes les résistances de [5] http://ols.lxtreme.nl/
rappel sur le Bus Pirate. [6] http://dangerousprototypes.com/docs/Bus_Pirate
[7] www.watterott.com/en/Bus-Pirate
Cela est en principe superflu et même dangereux si un RPi
y est également connecté. Dans la nouvelle version v4, la
connexion est gérée par logiciel. Il est facile de déterminer
si une résistance de rappel est connectée et à quelle tension
par une mesure sur les broches 7 (SCL) et 8 (SDA). Les
résistances de rappel peuvent être activées ou désactivées
par les commandes :
I2C>P Remerciements
Pull-up resistors ON (activer)
Je remercie mes (anciens) collègues Franz Otte et Michael
Kleineberg pour leurs indications et conseils concernant
et
le matériel, ainsi que mes (anciens) collègues Reinhard
Bernhardi-Grisson, Norbert Bandzius et Thomas Schlüssler
I2C>p
pour leur relecture de mon texte et leurs remarques.
Pull-up resistors OFF (désactiver)
répulse-martre
90 dB d’ultrasons
Jan Visser (labo d’Elektor)
Caractéristiques C’est ce qu’a fait un lecteur d’Elek- un fait intéressant pour concevoir notre
tor ; il s’est adressé à notre labo pour répulse-martre électronique. Un vieux de
• Tension d’alimentation de 9 à 12 VCC
savoir s’il n’y avait pas moyen de trou- la vieille, chez Elektor, pensait se souve-
• Consommation moyenne de courant :
ver l’une ou l’autre solution « électro- nir que nous en avions déjà conçu un et,
7 mA
nique » pour régler le problème de la en effet, cela remontait à janvier 2003
• Consommation de courant lors d’une
« martre ». Quelques recherches ont vite (Chasse-nuisibles, Respecte la nature
salve : 80 mA
fait de nous apprendre que les mustélidés sous tous ses aspects). Le montage de
• Consommation de courant au repos : 2 mA
ont une forte aversion pour des ondes l’époque n’était constitué que de compo-
• Fréquence réglable entre 20 et 43 kHz
sonores proches de 23 kHz, donc des sants discrets, montés sur une carte de
• Signal sonore intermittent
ultrasons (inaudibles pour nous). C’est belle taille – à l’ère du microcontrôleur
100R
1 C1 C2 2
8
P1
Æ débutant
US
1u 2u2 VCC connaisseur
1 7
PB5/RST PB2/SCK/ADC1 1N4007 T1
100k expert
IC2 R1
3 6
PB4/ADC2 PB1/MISO 10k
ATTINY45
2
-20-DIP 5 BS170
PB3/ADC3 PB0/MOSI Env. 1 h
R2
GND
4
1k
LED1
160052 - 11
Env. 15 €
Figure 1. Le schéma du générateur d‘ultrasons est on ne peut plus simple ; la réalisation du circuit
est à la portée de tout un chacun.
(µC), il devrait être possible de faire plus Le µC est alimenté par la tension de pas s’accoutumer au signal. Nous
compact (et moins cher) ! sortie stabilisée de 5 V du régulateur. avons opté pour l’émission d’une salve
Il est plus que temps de mettre la main Comme l’étage de sortie peut se passer d’une seconde toutes les dix secondes.
à la pâte. Le cahier des charges de de tension stabilisée, nous utilisons ici Comme (évidemment) nous ne pouvons
notre lecteur était, en fait, relativement la tension « brute » de la pile ou de la pas entendre à quel moment le circuit
modeste : batterie de voiture. est actif (produit du bruit), nous avons
ajouté une LED, LED1 (avec sa résistance
• Projet simple et compact Entrons dans le saint des saints série R2) pour visualiser le fonctionne-
• Réalisation facile, pas de CMS SVP Le cœur du générateur est IC2, un ment du générateur.
• Plage de fréquences réglable ATtiny25 avec le strict minimum en La sortie du microcontrôleur (broche 6)
(20 à 40 kHz) périphérie. L’ajustable P1 per- est incapable, et de loin, de fournir
• Puissance sonore élevée met de régler la fréquence de l’énergie nécessaire à l’attaque
• Bon marché sortie (sur une plage allant du haut-parleur ; il
• Alimentation par pile de 9 V de 20 kHz à 43 kHz environ).
Le micrologiciel est écrit
Le schéma de façon à ce que le
En figure 1, nous découvrons le petit générateur produise
schéma de notre générateur d’ultra- un signal intermit-
sons. Le cœur du circuit est formé par tent. C’est à des-
– comment pouvait-il en être autrement sein que nous
– un µC, ici un mini-µC, un ATtiny25-20. avons choisi ce
Mais commençons par le début : l’ali- mode de fonc-
mentation. La tension d’entrée, comprise tionnement
entre 9 et 12 VCC (pile de 9 V, adapta- pour éviter
teur secteur ou batterie de voiture), est que la pile ou
appliquée sur l’embase à deux pôles K1, la batterie de
transite via l’interrupteur marche/arrêt voiture ne se
S1 et arrive sur le régulateur à faible décharge trop
tension de déchet, IC1, un LP2950 en vite, et que
version 5 V. Les classiques condensa- les créatures
teurs C1 et C2 assurent la stabilité de la à répulser
tension de sortie. ne puissent
void startTimer1(void) {
pinMode(1, OUTPUT);
TCNT1 = 0;
TCCR1 = 0;
GTCCR |= (1 << PSR1); //section 13.3.2 reset the prescaler
TCCR1 |= (1 << CTC1); // section 12.3.1 CTC mode
TCCR1 |= (1 << COM1A0); //togle pin PB1 table 12-4
TCCR1 |= (1 << CS10); //prescaler 1 table 12-5
//TCCR1 |= (1 << CS11);
//TCCR1 |= (1 << CS12);
//TCCR1 |= (1 << CS13);
OCR1C = compareValue;
OCR1A = compareValue;
}
void stopTimer1(void) {
TCNT1 = 0;
TCCR1 = 0;
}
void enableWatchdog(void) {
wdt_enable(WDTO_8S); //enable watchdog
}
void disableWatchdog(void) {
MCUSR &= ~(1<<WDRF); // reset status flag
wdt_disable(); //reset watchdog
}
void enterSleep(void) {
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();
Figure 3. Le circuit imprimé simple face
}
du répulse-martre est disponible dans l‘e-
choppe Elektor.
Liens
Le logiciel capable de fournir des signaux intermit-
Il n’y a pas grand-chose à dire au sujet tents à intervalle variable. [1] www.elektormagazine.fr/160052
du logiciel (cf. encadré) – après la mise Le logiciel est bien sûr disponible en télé- [2] www.elektor.fr/
en fonction, il y a lecture de la position de chargement gratuit [1] ; vous pouvez tl866a-universal-programmer
l’ajustable P1, puis configuration corres- également commander dans l’e-choppe
pondante du temporisateur et le répulse- d’Elektor, pour pas bien cher, un ATtiny25
martre est prêt à jouer son rôle (effica- programmé. Si vous préférez program-
cement nous l’espérons). Vous avez bien mer votre µC vous-même : le program- dans l’e-choppe
entendu liberté totale pour expérimen- meur TL866A disponible lui aussi dans
ª160052-1
ter avec le logiciel. La première idée qui l’e-choppe d’Elektor [2] est exactement circuit imprimé
vient à l’esprit est de jouer sur la durée ce qu’il vous faut.
ª160052-41
du signal et l’intervalle entre salves : en (160052 - version française : Guy Raedersdorf)
microcontrôleur programmé
fait, vous pouvez même (si vous avez
suffisamment d’expérience en program-
mation) écrire une toute nouvelle routine
Comme chaque année à la rentrée de septembre, les Le programme CAP’TRONIC et la DGE (Direction Générale
bureaux d’études, les entreprises, les jeunes pousses, les des Entreprises) organisent une journée d’échanges et
centres de recherche, les universités, les pôles industriels de témoignages de chefs d’entreprises pour donner une
et scientifiques se retrouvent au salon ENOVA de Paris large vision des possibilités offertes par les technologies
pour découvrir les dernières innovations en matière numériques connectées.
d’électronique, de mesure, de vision et d’optique.
Cette journée sera ponctuée par des présentations et
Le salon se déroulera du 19 au 21 septembre 2017, dans diverses tables rondes :
le hall 4 du parc des expositions Porte de Versailles • Cybersécurité : les risques et enjeux dans l’industrie
à Paris.
(par l’ANSSI)
ELEKTOR, partenaire de presse, et les organisateurs du • Cybersécurité : comment protéger vos produits et
salon ENOVA vous invitent à participer à un quiz en systèmes connectés ?
ligne sur l’électronique pour gagner un superbe
• Plateforme de service IoT : offre clé en main ou
oscilloscope R&S®RTB2000* de marque Rohde&Schwarz
(d’une valeur de 1250 €) ainsi que de nombreux autres développement sur mesure ?
lots comme une carte d’évaluation Uplynx pour le réseau • Objets connectés autonomes : pourra-t-on éviter les
Sigfox**. piles ?
Testez maintenant vos connaissances en électronique en • Les nouvelles offres de Bpifrance pour accompagner
participant au quiz et nous aurons (peut-être) le plaisir de la transformation numérique des entreprises
vous accueillir sur notre stand ELEKTOR ; ça se passe ici :
Cette manifestation sera aussi l’occasion de découvrir
www.elektormagazine.fr/enova-paris-quiz les lauréats des 11es Trophées CAP’TRONIC au cours
de présentations rapides et de désigner un 5e vainqueur
(prix du public) parmi les treize projets sélectionnés. Ces
Attention : la date limite de participation est Trophées récompensent et mettent en lumière les projets
le 10 septembre 2017, minuit. des PME françaises les plus novateurs par l’introduction de
solutions électroniques et logicielles dans leurs produits.
Condensateur ? Expérimentons !
Vous savez ce qu’est un condensateur, n’est-ce pas ? Maintenant, essayons donc de mesurer l’impédance d’un vrai
Prenez-en un et appliquez un signal sinusoïdal à ses bornes. condensateur pour la comparer à cette belle théorie. Commen-
Il sera traversé par un courant d’autant plus intense que sa çons par un petit condensateur de 100 nF standard (traversant),
capacité est grande ou que la fréquence du signal est élevée. déniché dans un de mes tiroirs. Pour avoir une mesure propre,
Plus précisément, l’impédance d’un condensateur est égale à j’ai utilisé le circuit imprimé d’un ancien projet radio doté d’un
Z = 1 / (2p f C), avec f la fréquence du signal en hertz et C connecteur SMA, et j’ai simplement soudé le condensateur
la capacité du condensateur en farads. Enfin le courant à tra- entre l’âme du connecteur et le plan de masse. Dans un pre-
vers le condensateur est déphasé de −90° par rapport à la mier temps, j’ai volontairement gardé des fils de connexion un
tension appliquée. peu longs, de l’ordre de 1 cm. Voyez le résultat sur la photo 1.
Comment mesurer l’impédance de ce condensateur ? Bien
Vous préférez une illustration plutôt qu’une formule ? J’ai réalisé sûr il serait possible d’utiliser un capacimètre ou un pont
pour vous une petite simulation d’un condensateur de 100 nF, RLC, mais ce type d’équipement n’autorise que des mesures
supposé parfait, en utilisant le simulateur QUCS (qui a le bon avec des signaux à très basse fréquence, quelques dizaines
goût d’être excellent et gratuit [2]). Regardez le résultat sur ou centaines de kHz. Ici j’aimerais savoir comment se com-
la figure 1. Pour mesurer l’impédance d’un tel composant sur porte le condensateur à des fréquences de quelques MHz à
un simulateur, il suffit de mesurer la tension U et le courant I, plusieurs centaines de MHz. Comment procéder ? La solu-
et de calculer Z=U/I, c’est l’objet de la première équation. On tion est d’avoir recours à un appareil de mesure longtemps
peut alors afficher sur un graphique l’amplitude et la phase réservé aux labos les plus fortunés, j’ai nommé l’analyseur
de Z (seconde équation). Comme prévu, l’impédance dimi- de réseau vectoriel ou VNA (acronyme de Vector Network
nue lorsque la fréquence augmente, et vaut par ex. 0,78 Ω Analyzer). Cet appareil produit des signaux qui peuvent grim-
à 2 MHz ; elle est ensuite divisée par deux à chaque fois que la per à plusieurs GHz (voire beaucoup plus…). Grosso modo,
fréquence double. Comme prévu aussi, la phase reste constante, un VNA est un appareil avec une impédance très précise, en
égale à −1, 57 rad, c’est-à-dire −90°. Simple, n’est-ce pas ? général 50 Ω. Il produit un signal sinusoïdal de fréquence
Si vous n’avez jamais utilisé un simulateur comme QUCS, je variable et envoie ce signal à un composant ou circuit d’im-
vous recommande de le télécharger et d’essayer de reproduire pédance inconnue. Si cette impédance n’est pas rigoureuse-
cet exemple, un bon exercice... ment de 50 Ω, une partie de l’énergie est réfléchie vers le
Réfléchissons...
Que se passe-t-il ? Cette inductance est liée principalement aux
pattes du condensateur. Rappelez-vous, je les avais laissées
assez longues, à peu près 1 cm. Or un fil droit est une induc-
tance. En 1908, E.B. Rosa a donné une formule pour calculer
cette inductance :
Photo 2. Pour le deuxième test, le condensateur de 100 nF est soudé au Photo 3. Ce test est réalisé avec un condensateur de 100 nF, mais monté
raz de la carte. en surface. L’inductance parasite est considérablement réduite.
Figure 5. L’impédance du condensateur de 100 nF avec des fils plus courts Figure 6. La mesure du condensateur CMS de 100 nF ne présente plus
montre encore une résonance, mais maintenant à 12 MHz, deux fois plus de résonance, mais sa valeur diminue lorsque la fréquence augmente.
haut que précédemment. À 30 MHz, sa capacité est légèrement supérieure à 50 nF.
Pour conclure
Exeptée la mise en œuvre d’un appareil de mesure un peu
exotique, le VNA, cet article n’a montré que des expériences
élémentaires. Toutefois j’espère qu’il vous a permis de décou-
Liens et ressources
[1] Article hors circuits « des condensateurs qui se rechargent tout seuls, attention à l’absorption diélectrique »,
Elektor 07-08/2017 : www.elektormagazine.fr/160500
[2] Simulateur QUCS : http://qucs.sourceforge.net/
[3] Article hors circuits « adaptation d’impédance », Elektor 06/2014 : www.elektormagazine.fr/140079
[4] Analyseur VNWA : www.sdr-kits.net
[5] « A Small, Simple, USB-Powered Vector Network Analyzer Covering 1 kHz to 1.3 GHz », Prof. Dr. Thomas C. Baier,
DG8SAQ, QEX magazine, 01-02/2009 : http://sdr-kits.net/DG8SAQ/VNWA/Baier_VNWA2_QEX.pdf
[6] « The self and Mutual industance of Linear Conductors », E.B. Rosa, Bulletin of the Bureau of Standards, Vol 4, N°2, 1908,
page 301 : www.g3ynh.info/zdocs/refs/NBS/Rosa1908.pdf
Adaptateur de et sûres à
SO8 à DIP8 l a f o i s. D e s
(150797) puces et des
Commençons par un modules sont
BoB simple et minus- arrivés et on
cule (c’est celui qui en développe
nous a inspiré cet encore à toute
article). Une carte si petite qu’on en poserait quatre sur un vitesse, mais
timbre poste. Elle sert à installer, sur un montage ancien dans leur s fiches
l’emplacement prévu pour un boîtier DIP8, un CMS SO8 souvent de caracté-
plus avantageux. La puce se trouve en dessous, entre les bro- ristiques sont
ches de raccordement. Sur la face supérieure, on peut encore souvent des bouquins entiers et les applications ne sont pas
souder un petit condensateur de découplage entre la broche 4, très engageantes. Raison pour laquelle le labo d’Elektor a déve-
généralement la masse, et la 7 (pour les amplis op) ou la 8 pour loppé un certain nombre de BoB avec trancepteur à 433 MHz,
beaucoup d’autres. Disponible dans l’e-choppe par cinq pièces. ATmega328 et UART. Un micrologiciel tout préparé facilite l’uti-
lisation de ces cartes comme passerelles sans fil. Les com-
Adaptateur pour microphone mandes et les chaînes de données prennent ainsi leur envol
MEMS (150346) avec l’UART en tremplin. Également disponible dans l’e-choppe
Encore plus petit ! Pour le détecteur de comme module prêt à l’emploi.
chauve-sourisPLUS, il nous fallait un Voir article : www.elektormagazine.fr/130023
microphone MEMS si petit qu’il est bien
difficile à souder, nous lui avons donc fabri- Module RS485 pour Embedded Extension
qué un adaptateur. Le module prêt à l’em- Connector (130155)
ploi est disponible dans l’e-choppe. Les caractéristiques excel- Pour des missions moins ardues
lentes du microphone destinent ce BoB à de nombreux usages. que ci-dessus, on a envie d’éta-
Voir articles : www.elektormagazine.fr/160083 & blir rapidement une connexion. Il
www.elektormagazine.fr/150346 existe pour cela le module RS485
pour ECC (Embedded Extension
Passerelle radio entre UART et 433 MHz (130023) Connector) qui permet d’ajouter
Ce qui va caractériser l’électronique de demain, c’est assu- une interface RS485 à une carte à
rément la déferlante du sans fil. Nous sommes habitués aux microcontrôleur, pour communiquer
interfaces HMI (homme-machine), mais ce qui se profile, c’est de manière fiable sur de grandes distances et configurer des
le MMI (de machine à machine) ou l’Internet des Objets (IdO). bus. Disponible tout préparé dans l’e-choppe.
C’est pourquoi il y a un besoin urgent de liaisons radio simples Voir article : www.elektormagazine.fr/130155
www.elektor.fr/arduino-36-experiences
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.
analyseur
d’impédance
Un aperçu historique sur des ponts de mesure jusque dans quinzaine d’années
L’histoire de la mesure d’impédance les années 60‑70, lorsque sont apparus dans bon nombre
remonte au XIX e siècle ; les lecteurs les premiers analyseurs d’impédance, de laboratoires ; il
intéressés peuvent consulter la comme le 4194A de Hewlett Packard était cher, volumineux,
monographie en [1]. En résumé, la (fig. 1). Cet appareil, sans doute le plus gourmand en énergie,
plupart des LCR-mètres étaient basés connu, se trouvait jusqu’à il y a une et peu commode d’emploi,
mais il était fiable et construire – en tant qu’amateur – un de fonctions, etc. L’analyseur d’impédance
précis. Il n’y a pas beaucoup appareil aussi compliqué. Dès ces mêmes restait cependant gros, cher et avec
d’autres instruments qui ont résisté années 60‑70, les circuits intégrés ont beaucoup (trop) de boutons, et il n’y avait
à l’obsolescence pendant plus de 40 ans, permis de réduire les dimensions et le prix guère de modèles sur le marché. Cela m’a
et ce n’est qu’avec l’avènement des de nombreux instruments de mesure : toujours intrigué, et j’ai décidé qu’une fois
microcontrôleurs qu’on a pu songer à oscilloscopes, multimètres, générateurs à la retraite j’en concevrai un.
V 1 = (a sin(ωt) + b cos(ωt)) sin(ωt)
= (a – a cos(2ωt) + b sin(2ωt))/2
V2 = (a sin(ωt) + b cos(ωt)) cos(ωt)
= (b + b cos(2ωt) + a sin(2ωt))/2
tampon de sortie. Celui-ci est constitué Amplificateurs de mesure qui maintient tant que faire se peut ce
d’une paire FET/BJT (T10/T9), suivie d’un et commutateurs point au potentiel de la masse (artificielle
amplificateur en classe AB (T13/T7), Le schéma de principe du dispositif de – Virtual Ground, VGND) ; la sortie du
qui peut fournir 20 mA à la charge. Le mesure est en figure 6. L’impédance pont est reliée à l’autre borne de Rref.
gain de cet étage est un peu inférieur à à mesurer (DUT) est alimentée en Pour permettre différentes plages de
l’unité, et le décalage en continu (offset) courant par la source V dr via R s ; ce mesure, la valeur de Rref varie entre 50 Ω
est stabilisé par IC2 et T6. courant circule aussi dans Rref. Le point et 100 kΩ ; les valeurs sont commutées
Le gain de l’ensemble des deux étages commun entre DUT et Rref est relié à par des relais, qui introduisent une légère
est d’environ 200. l’entrée du pont de mesure automatique, erreur de mesure : environ 20 nH, soit
en HF le gain dépend des caractéristiques • faible résistance lors de la Lorsque le signal de commande est
des transistors utilisés. conduction ; à l’état bas, D1 et D3 sont bloquées
La figure 8 montre le schéma d’un • faible capacité série lors du blocage. (cathodes au +15 V via R5) et D2
commutateur, il y en a deux par conduit. Le courant à travers R2 va en
amplificateur différentiel (et il y a Une jonction PN bloquée n’atténue partie vers le collecteur du transistor de
deux amplificateurs différentiels...). cependant pas assez le signal pour sortie de l’amplificateur différentiel, dont
La commutation est effectuée par les éviter les couplages parasites entre le courant de sortie va vers l’émetteur
diodes D1 à D3, qui sont des diodes de amplificateurs ; une commutation du transistor PNP via D2. Cette partie
commutation (band-switching diode) : « double » est donc appliquée. du circuit est à basse impédance, et
les capacités parasites d’une liaison
relativement longue n’occasionneront
pas de pertes significatives aux hautes
fréquences. La résistance commune aux
collecteurs des transistors PNP convertit
le courant en tension pour l’attaque du
détecteur.
Quand le signal de commande est à l’état
haut, D1 et D3 conduisent. Les valeurs
de R2 et R4 sont choisies pour que le
transistor PNP soit bloqué, et celles de
R1 et R3 pour que D2 le soit aussi. Nous
avons donc deux blocages successifs, ce
qui assure en pratique une atténuation
suffisante.
Le détecteur
Le schéma du détecteur est en figure 9 ;
les sous-ensembles du circuit sont
semblables à ceux des étages déjà
étudiés. Il y a deux signaux d’entrée : le
signal de commande M (DET‑P et DET‑M),
et le signal issu des amplificateurs de
mesure (SIG‑P et SIG‑M). Les signaux
de sortie DETOUT‑P et DETOUT‑M sont
Figure 10. Une batterie de synthétiseurs numériques directs produit les signaux de test et de lissés par C43 et C44, puis amplifiés par
commande. un amplificateur de mesure (×1 ou ×10)
Le programme
Figure 13. L’intérieur de l’analyseur, qui tient dans un boîtier de 25 cm de côté et d’une hauteur
de l’ordinateur hôte
de 5 cm. Le circuit imprimé du haut supporte les alimentations, le microcontrôleur et les circuits de
communication (FT232) ; le circuit imprimé du bas accueille la partie analogique, telle que décrite Le but du programme de l’ordinateur hôte
dans le texte. est de permettre un contrôle simple de
l’analyseur d’impédance, et de corriger
les erreurs systématiques. La figure 12
illustre le processus.
Au démarrage, le port COM auquel
est relié l’analyseur est identifié
automatiquement ; ensuite, une mesure
est effectuée avec les réglages de la
dernière session.
Un bouton Start Measurement est
clairement visible sur l’écran de
commande. À la suite d’une pression
sur ce bouton, les fréquences minimale
et maximale sont enregistrées, et
le programme calcule les valeurs
nécessaires pour commander les
g é n é r a t e u r s d e l ’a n a l y s e u r ( l e
programme en mikroBasic du PIC
travaille en virgule flottante sur 4 octets ;
ce n’est pas suffisant, et cela conduirait
à trop d’arrondis et d’imprécision).
Ces valeurs et l’information relative à
l’amplitude sont ensuite envoyées au
Figure 14. Le circuit imprimé avec la partie analogique. Les quatre DDS sont bien visibles en haut, microcontrôleur.
le pont de mesure automatique prend la moitié de la place, le reste est pour le détecteur et le Les résultats des mesures sont
signal Vdr. On reconnait aussi les relais pour la commutation de Rref. Les entrées de mesure, en bas enregistrés dans un tableau R/X, à partir
à droite, sont distantes entre elles de 22 mm, cela facilite les connexions. duquel les paramètres pour l’affichage
Liens
[1] www.ietlabs.com/pdf/GenRad_History/A_History_of_Z_Measurement.pdf
[2] literature.cdn.keysight.com/litweb/pdf/5950-3000.pdf
[3] www.analog.com/AD9851
[4] www.wildijkmanelectronics.nl
[5] youtu.be/AqmPsjSF00Y
3e édition augmentée avec AVR Playground & Elektor Uno R4 Les mini-ordinateurs, tel le Raspberry Pi, sont vraiment Ce kit a été spécialement conçu pour les plateformes à code
prédestinés à être utilisés comme lecteur audio autonome source ouvert les plus courantes. Il est compatible avec les
L’ambition de cet ouvrage est de vous faire entrer dans le et sur réseau. Avec une distribution Linux spécifique comme nano-ordinateurs (Raspberry Pi, Banana Pi, CubieBoard,
monde Arduino puis de vous en faire ressortir victorieux Volumio, c’est pratiquement un jeu d’enfant. Mais qu’en est- CubieTruck, Beaglebone, pcDuino) et divers microcontrôleurs
pour vous emmener plus loin dans l’apprentissage de la il de la qualité du signal audio ? Le quatuor formé par un (Arduino, ATmega, AVR, PIC, STM32, etc.). Il contient
programmation des microcontrôleurs. Il met la théorie en Raspberry Pi, le C A/N haut de gamme de type PCM1794A 40 capteurs différents. Vous pouvez soit les souder, soit les
pratique sur une carte Arduino avec l’environnement de (flanqué de remarquables filtres), la commande de volume et monter sur une platine d’expérimentation pour travailler sur
programmation Arduino. l’écran tactile flattera votre ouïe. différents circuits.
Python 3
Programming and GUIs
(livre en anglais)
Transformez des modules Peltier en générateur La carte d’extension StromPi 2 permet à une Raspberry Pi Ce DVD-ROM contient tous les numéros d’Elektor des années
thermoélectrique. Ici, la chaleur de la flamme d’une bougie est d’être alimentée par des sources issues d’environnements très 2010 à 2014. Elektor propose à ses lecteurs des montages
transformée en électricité pour alimenter une lampe à LED, ce divers (tension d’entrée entre 6 et 61 V ; courant de sortie électroniques de conception professionnelle et aisément
qui permet de gagner en intensité lumineuse. Le kit comprend de 3 A) : voiture, bateau, camion, site industriel, etc. Cette reproductibles, dans les domaines de l’électronique et de
toutes les pièces nécessaires pour assembler la lampe : carte peut également augmenter la puissance des ports USB l’informatique appliquées. Il leur apporte également des
convertisseur CC/CC préassemblé, pièces en acrylique avec de la carte Raspberry Pi ; le système pourra alors alimenter informations sur l’évolution technologique et les nouveaux
tous les accessoires et le matériel, modules Peltier, ventilateur, des périphériques gourmands en énergie comme des disques produits.
lampe USB, et même quelques bougies. durs USB.
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 21 septembre 2017 à l’adresse hexadoku@elektor.fr
Les gagnants
La solution de la grille du numéro de juillet/août est 92D17
Les cinq bons Elektor d’une valeur de 50 € vont à :
Jean-Claude Carré (France), Chris Cliquet (Belgique), Gilbert Luyckx (Belgique),
Harrie Rouwhorst (Pays-Bas) et Per Troelsen (Danemark)
Bravo à tous les participants et félicitations aux gagnants !
5 E B F 4 C 7 A
1 2 9 6 D F B 8
7 D 4 E 3 C 2
0 8 6 9 2 D 1 7
C 3 8 A F 6 7 E B
A 6 5 4 3 B 9 0 2 F
4 9 2 D B 0 3 8 A 5 6
3 1 5 F D B 8 7 2 6 4 9 C E A 0
8 9 7 6 3 C A D 1 0 F E 2 B 4 5
A 3 0 D E 1 C 2 9 7 5 4 F 8 6 B
7 8 A 5 F C 6 D B 0 3 E 1 4 2 9
E 5 8 1 A 4 2 B 6 D C
B 1 9 3 E C 4 5 F 0
9 0 C F E 7 1 A 5
2 A C 5 0 9 8 D
6 F D A 8 0 3
E D 8 4 3 B 6 1
5 C 1 3 7 2 9 4
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.
19 AU 21
Paris expo Porte de Versailles - Hall 4
SEPT
2017
NOUVEAU
+ d’exposants
+ de conférences
+ de services
+ village Prototypage / Impression 3D
M Ê M E L I E U , M Ê M E S DAT E S
B A D G E G R AT U I T : w w w. e n o v a - e v e n t . c o m
CIM2017
18e CONGRÈS INTERNATIONAL DE MÉTROLOGIE
Untitled-1
Enova 20171plus.indd 1 23/05/2017 13:17
25/07/2017 07:44
Plus de 45 ans d‘expérience
Envoi en 24 heures
Plus de 80 000 produits
PA I R & S AV E
, R E
BUILDVER BEFORE — RND
LIKE NE
RND est synonyme de qualité
et fiabilité à un prix avantageux.
Conçus pour un usage professionnel, les pro-
duits répondent exactement aux exigences
d’approvisionnement comme aux exigences
techniques des ingénieurs et spécialistes de
l’électronique.
Consultez régulièrement la boutique en ligne reichelt
pour y découvrir les tous derniers produits :
RND connect, RND cable,
RND components ou RND lab.
FORME PLA
TE H05V-K
cUL
HOM OLOGATION
Référence : Référence :
0,20 17,14
Conducteur cuivre souple classe 5
RND 205-00232 RND 475-00101
Broche / borne – laiton étaimé Plage de température fixe – 30 °C à +70 °C
Vis / couple – M2,5 acier nickelé Tension de contrôle : 300 / 500 V
100 Mohms
Résistance d’isolation En acier inoxydable, type SA
Référence : Référence :
0, 42,40
Grille 22,6 mm Non magnétisable
20
RND 170-00004 RND 550-00011
1,5 mm diamètre du Bonne résistance à la corrosion vis-à-vis de
trou dans la plaquette la plupart des agents chimiques, sels et acides
60 Endoscopes, microscopes,
>2100 Résistances, fusibles et boîtiers NOUVEAU déjà
pincettes, boîtes et mallettes
DÉCOUVRIR MAINTENANT ► http://rch.lt/Fq DÉCOUVRIR MAINTENANT ► http://rch.lt/Fr
Prix du jour! Prix à la date du: 24. 7. 2017 Prix en € hors T.V.A., frais de port en sus · reichelt elektronik, Elektronikring 1, 26452 Sande (Germany) Les langues de notre boutique:
www.reichelt.fr
MODES DE PAIEMENT INTERNATIONAUX: