DesignSpark Electrical Logolinkedin
Ask a Question

Carte Adalogger compatible Arduino impressionnante d'Adafruit

Carte ARM Cortex-M0 compacte offrant des fonctionnalités économiques d'enregistrement de données

Adafruit Feather est une gamme de cartes de développement compatibles Arduino conçues pour être flexibles, portables et légères. Elles ont en commun un facteur de forme compact et incluent des affichages matriciels LED, des modules Wi-Fi et LoRa, et bien plus encore. Vous trouverez une vue d'ensemble complète des cartes Feather sur le site Web d'Adafruit.

Dans cet article, nous allons regarder de plus près la carte Adalogger, un enregistreur de données tout-en-un intégrant non seulement un port USB et un support de carte microSD, mais aussi un chargeur de batterie LiPo ! Nous allons mettre tous ces éléments en ordre de marche avec l'IDE Arduino, avant de connecter une carte d'accéléromètre Adafruit et d'enregistrer des données.

Qui se ressemble s'assemble

Il faut savoir qu'il existe deux variantes de la carte Adalogger : la première avec un microcontrôleur ARM® Cortex®-M0 ATSAMD21G18, la seconde avec un ATmega32u4. Dans cet article, nous avons choisi la version Cortex-M0.

Avant de connecter des périphériques, commençons par mettre la carte Adalogger en ordre de marche avec l'IDE Arduino, de façon à pouvoir tester du code de démonstration (ou "schéma", en jargon Arduino).

Nous utilisons ici la dernière version de l'IDE (1.6.13 lors de la rédaction de cet article) et nous devons ajouter une URL au gestionnaire de cartes supplémentaires avant de procéder à la connexion physique de la carte. Dans le menu Preferences (Préférences), recherchez l'option Additional Boards Manager (Gestionnaire de cartes supplémentaires), et ajoutez l'URL suivante :

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

Cliquez sur OK pour enregistrer les paramètres. Ensuite, passez au menu Tools (Outils), puis Board>Boards Manager (Carte>Gestionnaire de cartes). Tout d'abord, faites défiler l'écran pour rechercher les cartes Arduino SAMD (ARM Cortex-M0+ 32 bits) dans l'onglet Arduino (un peu long à dire !) et installez la dernière version (1.6.9 lors de la rédaction de cet article). Toujours dans le gestionnaire de cartes, recherchez les cartes Adafruit SAMD dans l'onglet Adafruit et installez la dernière version (1.0.13 lors de la rédaction de cet article). Ensuite, il est fortement recommandé, mais pas strictement nécessaire, de quitter le programme et de redémarrer l'IDE Arduino. Si vous utilisez Windows, vous devez télécharger et installer des pilotes Adafruit supplémentaires, en sélectionnant impérativement "Feather M0" pendant l'installation.

Désormais, nous pouvons connecter la carte Adalogger à notre PC au moyen d'un cordon micro-USB. La carte passe automatiquement en mode Alimentation USB, ce qui vous épargne d'avoir à appuyer sur un bouton ou à vous demander sur quelles broches positionner un cavalier. L'ordinateur reconnaît le périphérique et créé un port COM.

Le menu déroulant Tools>Ports (Outils>Ports) doit désormais afficher la carte Adafruit Feather M0 avec le port COM qui lui est affecté. Sélectionnez-le pour charger un schéma de démonstration sur la carte. Vous pouvez par exemple choisir "Blink", qui figure dans Files>Examples>Basics>Blink (Fichiers>Exemples>Basiques>Blink), car c'est un excellent point de départ.

Ouvrez le programme et essayez de le charger sur la carte. Si les étapes ci-dessus ont été complétées avec succès et si tout va bien, la LED rouge intégrée clignote.

Enregistrement de données sur la carte SD

Nous avons vu comment charger des programme sur la carte Adalogger et nous allons maintenant tenter d'écrire des données sur une carte SD. Pour cela, il faut formater la carte SD pour le système de fichiers FAT et j'ai utilisé pour cela un outil que j'ai trouvé ici.

Nous allons utiliser un exemple de programme fourni avec l'IDE Arduino pour extraire des informations sur la carte (ce qui permet de réaliser un excellent test basique par la même occasion). Accédez à File>Examples>SD>CardInfo (Fichier>Exemples>SD>InfosCarte). Chargez le schéma sur la carte Adalogger, puis ouvrez la console série (en cliquant sur la petite icône "loupe" située dans le coin supérieur droit de l'IDE). Normalement, vous devriez obtenir quelque chose de similaire à la copie d'écran ci-dessous :

Nous allons à présent tenter d'écrire des données sur la carte. Encore une fois, il s'agit d'un exemple de programme provenant de l'IDE, mais il existe une version plus simple sur le site GitHub d'Adafruit. J'ai utilisé ce code et l'ai modifié pour lire et enregistrer la tension d'une batterie LiPo connectée à la carte Adalogger. Cette fonctionnalité est intégrée sur la carte, ce qui évite d'avoir à se soucier du câblage, seul le code nous intéresse ici.

Vous trouverez un exemple de schéma ici.

Nous pouvons constater que la tension est bien lue et imprimée sur la console. Pour m'assurer que les données ont été enregistrées dans le fichier journal, j'ai mis hors tension la carte Adalogger et retiré la carte SD que j'ai ensuite insérée dans mon PC. Malheureusement, cette carte contenait bien plusieurs fichiers texte, mais tous totalement vides !

Après quelques recherches dans la documentation d'Adafruit, j'ai compris que les données étaient stockées dans une mémoire tampon et écrites dans un fichier uniquement tous les 50 points de données. Il semblerait donc que mon test d'enregistrement était trop court ! J'ai fait un test plus long de quelques minutes avant de revérifier les fichiers. Ce fut à nouveau un échec et j'ai dû ajouter la ligne suivante pour forcer l'écriture des points de données :

logfile.flush();

Cette manipulation a résolu le problème, toutefois la documentation d'Adafruit précise que dans ce cas la carte Adalogger consomme environ 3 fois plus de courant, ce qui n'est donc pas idéal pour les applications faible puissance.

Enregistrement de données plus intéressantes

La gamme Adafruit couvre de très nombreux capteurs et dispositifs d'entrée montés sur de petites cartes de dérivation très pratiques, afin de faciliter les opérations de prototypage par les amateurs, notamment avec des plates-formes telles que Raspberry Pi et Arduino.

Nous allons maintenant connecter l'un de ces modules, une carte accéléromètre 3 axes communiquant via I2C avec la carte Adalogger et enregistrer les valeurs ainsi obtenues. La connexion de ces deux cartes est on ne peut plus simple : après avoir soudé les contacts à faible insertion de force fournis, nous avons utilisé quatre fils volants femelle-femelle, afin de connecter les points Vcc, GND, SCL et SDA.

Ensuite, une plaque de montage simple conçue spécialement et coupée au laser est utilisée pour assembler les cartes et la batterie. Cela permet d'assurer une excellente cohésion et une protection supplémentaire en cas de fils/objets en métal traînant sur l'établi et entrant en contact avec les broches du dessous de la carte.

Comme pour tous les produits Adafruit, la carte de dérivation de l'accéléromètre est fournie avec une documentation et des exemples de code pour vous aider à avancer. J'ai dû télécharger et installer deux bibliothèques depuis le site GitHub d'Adafruit : ici et ici avant d'essayer de lire les données du capteur.

Un mot rapide sur ces deux bibliothèques : il est important de souligner la qualité et l'importance de ces bibliothèques et cartes d’expérimentation. Sans elles, l'utilisation de ces capteurs serait beaucoup plus difficile, notamment pour les personnes qui découvrent cette activité ou qui n'ont pas d'expérience en électronique. Ainsi, par exemple, une carte d’expérimentation sans bibliothèque produirait des suites de nombres nécessitant des calculs supplémentaires pour identifier les données utiles ou simplement compréhensibles. Adafruit fait tout son possible pour créer des bibliothèques permettant à son code de produire des données en unités SI, afin de nous laisser nous concentrer sur le cœur du projet !

Vous trouverez plus de détails sur l'installation de ces bibliothèques ici.

Une fois ces éléments installés et l'IDE redémarré (encore une fois, il s'agit d'une étape importante pour s'assurer que les bibliothèques sont installées et ajoutées correctement), j'ai chargé l'exemple de schéma (File>Examples>Adafruit MMA8451 Library>MMA8451 demo - Fichier>Exemples>Bibliothèque Adafruit MMA8451>Démo MMA8451) sur la carte Adalogger pour tester cela également.

J'ai ensuite greffé des éléments de l'exemple de programme d'accéléromètre dans le programme d'enregistrement de données existant et, très rapidement, les données ont afflué sur la carte SD.

 

Le code final est disponible ici.

Résumé

La gamme de cartes compatibles Arduino d'Adafruit ne cesse de s'élargir et d'impressionner, ainsi que son offre de cartes de d’expérimentation et de modules. Même si le public visé concerne essentiellement les amateurs, les établissements d'enseignement et les makers, ces produits sont intéressants pour toute personne cherchant à réaliser rapidement des prototypes et développer des projets intéressants.

Une conception ouverte (Adafruit publie la disposition de ses cartes et les schémas de la plupart de ses produits) associée à une documentation et des logiciels très bien conçus garantissent une excellente expérience utilisateur, tandis qu'une communauté en ligne très active pourra répondre aux questions les plus pointues. L'étendue de l'offre d'Adafruit et son taux d'adoption à l'échelle internationale en font une solution de premier choix pour les makers et les passionnés de projets électroniques.

maker, hacker, doer

13 Sep 2017, 9:29

Commentaires