Data Logger (enregistreur multi-canaux)

Un projet conçu et réalisé par Didier.

Introduction

Nota: ce système est en cours d'évaluation et les prototypes seront réservés aux membres actifs de l'association. Leur fonctionnement sera décrit de manière détaillée lors des week-ends techniques organisés par l'association.

Le principe du d'un Data Logger est de mesurer plusieurs canaux simultanément. En d'autres termes, il s'agit de multimètres qui seraient montés côte à côte. Bien malin celui qui pourrait lire et mémoriser les mesures, surtout si celles-ci sont effectuées à haute fréquence! Un Data Logger est donc bien plus qu'une combinaison de multimètres. Le plus simple est de définir ce qu'il devrait faire.

Cahier des charges simplifié

et pour corser le tout

Réalisation

Bon, c'est là que çà se complique! Pour que le système puisse fonctionner de manière autonome, il faut le contrôler avec un microprocesseur. Et là, nous avons l'embarras du choix! Un PICBASIC, un PIC de chez Microchip, un AVR de  Atmel ... Mon choix s'est porté sur l'Atmega168, pas uniquement pour ses performances intrinsèques, mais surtout parce qu'il est le cœur du concept Arduino. Il s'agit de la plateforme idéale pour s'initier aux microprocesseurs et développer rapidement et assez facilement de petites applications. Il existe actuellement plusieurs variantes du concept de base, qui différent essentiellement par leur taille.

La seul véritable exigence réside dans le langage de programmation qui est le C. Et l'IDE est certes bien fait, mais le debugging peut être taquin. La mémoire est aussi une limitation, 16K pour le programme, 1K de RAM et 512K d'EEPROM. Il faut jongler un peu pour en tirer le meilleur parti. Pour mémoire, les "gros" ordi au début des années 80 n'étaient pas mieux dotés et avaient la taille d'une machine à laver!

Pas question d'utiliser LE Ko de mémoire RAM pour enregistrer les données mesurées! La solution SD Card s'impose d'elle même: communication en mode SPI qui n'utilise que 4 fils (or l'Atmega168 contient tout ce qu'il faut pour communiquer par ce protocole), coût modique et énorme capacité (au regard de la taille des données enregistrées, soit 8bytes par enregistrements). Il nous faut encore un élément qui va nous simplifier la vie: une carte interface et un "breadbord", idéal pour la conception de prototypes. Vous en trouverez sur eBay, mais mon fournisseur préféré c'est AdaFruit la micro entreprise d'un fille pas banale. Et en plus c'est un des meilleurs rapports qualité prix, livré en France pour 4€ !!!!!!! Pour les composants standards, connecteurs, petit matériel, j'achète depuis des années chez GOTRONIC, mais ils ne sont pas les seuls et CONRAD a aussi une bonne réputation.

Le tout est protégé par un boîtier plastique constitué de deux coques symétriques d'environ 12x12x4 cm.

  

Programmation

Commençons par le plus facile. Le Data Logger sera commandé à paramétré à partir d'un PC qui via un port USB. En fait ce port USB sera reconnu comme un port série. Il suffit donc d'utiliser un logiciel de type HyperTerminal pour communiquer entre le Data Logger et le PC. Il suffit de nommer la connexion et de préciser le nom du port série.

Ensuite, il faut préciser les paramètres du port série

Et la fête peut commencer!

Vous pouvez aussi développer votre propre application en VB.NET (freeware dans sa version de base). C'est ce que j'ai fait pour ajouter quelques fonctions particulières comme l'activation des lignes DTR et RTS ou la visualisation de l'activité du port série.

Le micro code est télécharger à partir de l'IDE de Arduino (version 11). Une fois que c'est fait, vous pouvez dialoguer avec le Data Logger à l'aide des commandes décrites ci-dessous. Elles sont constituées d’une lettre (initiale de la commande), éventuellement suivi d’un argument (numérique) figurant entre crochets dans les explications suivantes. Lorsque l’argument n’est pas spécifié pour les commandes concernées (a, c, i et n), la valeur actuelle est retournée.

La liste des commandes disponibles pour l’utilisateur peut être obtenue à l’aide de la commande « h » (pour help)

back.gif (853 octets) Abstract

This page contains the description of a nice little data logger that has been design specifically for the purpose of diagnosing engines. 4 channels, averaging, fully featured file system, self probe recognition, what else? Please contact the author for further information.