Évaluation des différentes cartes de développement et de prototypage pour les applications corporelles

Par Clive "Max" Maxfield

Avec la contribution de Rédacteurs nord-américains de DigiKey

Le concept Arduino open-source s'est avéré être un énorme succès auprès des amateurs et des makers. Il a également été adopté par les concepteurs professionnels pour le développement et le prototypage précoces, et plus récemment pour les conceptions intégrales. Avec l'émergence d'applications telles que les dispositifs corporels et de surveillance de santé, les utilisateurs ont besoin de performances plus élevées et de plus de fonctionnalités dans des facteurs de forme de carte toujours plus petits.

Cet article explique brièvement comment les cartes Arduino ont évolué pour répondre aux exigences des makers et des professionnels en matière de hautes performances et de fonctionnalités dans les applications basse consommation à espace restreint. Il explique ensuite comment démarrer avec un récent ajout à la famille Arduino, le Seeeduino XIAO de Seeed Technology Co.

Comment Arduino a évolué pour répondre aux exigences des conceptions corporelles

De nombreux amateurs et concepteurs s'intéressent au développement de produits physiquement petits destinés à être déployés dans des environnements à espace restreint, y compris des dispositifs corporels. Il s'agit généralement de systèmes électroniques intelligents qui sont souvent basés sur un microcontrôleur en conjonction avec des dispositifs de détection et/ou d'affichage. Dans certains cas, ils servent de bijoux high-tech. Dans d'autres cas, ils sont portés près et/ou à la surface de la peau, où ils peuvent détecter, analyser et transmettre des données corporelles telles que la température, le rythme cardiaque et l'oxymétrie pulsée, ainsi que des données environnementales. Parfois, ils fournissent un bio-feedback immédiat au porteur.

Pour de telles conceptions, de nombreux amateurs et makers utilisent les cartes de développement de micro-ordinateurs Arduino. Il en va de même pour un nombre croissant d'ingénieurs professionnels qui peuvent utiliser ces cartes de développement comme plateformes d'évaluation et de prototypage pour accélérer l'évaluation des circuits intégrés, des capteurs et des périphériques et réduire les coûts associés.

Ces utilisateurs commencent généralement avec l'Arduino Uno Rev3 A000073, qui est présentée comme « la carte avec laquelle tout le monde commence » (Figure 1). Cette carte est basée sur le microcontrôleur ATMEGA328P-AUR d'Atmel (maintenant Microchip Technology). Le processeur de 5 volts (V) offre 14 entrées/sorties (E/S) numériques, dont six peuvent fournir une capacité de modulation de largeur d'impulsion (PWM), et six broches d'entrée analogique, qui peuvent également être utilisées comme E/S numériques si nécessaire. Il prend également en charge deux interruptions externes sur les broches E/S numériques 2 et 3, ainsi qu'une de chacune des interfaces UART, SPI et I2C.

Image de la carte de développement Arduino Uno Rev3Figure 1 : La carte de développement Arduino Uno Rev3 est basée sur le microcontrôleur ATmega328P 8 bits fonctionnant à 16 mégahertz (MHz). L'empreinte des embases, avec 14 broches E/S numériques, 6 broches d'entrée analogique et diverses broches d'alimentation, de masse et de référence, est à la base d'un important écosystème de cartes filles appelées « shields ». (Source de l'image : Arduino.cc)

Outre la limitation d'un chemin de données de 8 bits et d'une horloge de 16 MHz, et du fait que l'Arduino Uno n'offre que 32 Ko de mémoire programme Flash et 2 Ko de SRAM, cette carte de développement est trop grande pour de nombreuses applications, avec un format de 68,6 millimètres (mm) x 53,4 mm (36,63 centimètres (cm)2).

Une façon de réduire l'empreinte physique de la carte de développement de microprocesseur est de passer à une carte Arduino Nano Every ABX00028, basée sur le microcontrôleur ATMEGA4809-MUR d'Atmel (Figure 2). Elle offre 50 % de mémoire programme en plus que l'Arduino Uno (48 Ko) et 3 fois la quantité de SRAM (6 Ko). Comme l'Arduino Uno, l'Arduino Nano Every est basée sur un processeur de 5 V qui offre 14 E/S numériques ainsi que 6 broches d'entrée analogique, qui peuvent également être utilisées comme E/S numériques si nécessaire. De plus, comme l'Uno, la Nano Every offre des interfaces UART, SPI et I2C. Cependant, contrairement à l'Uno qui ne prend en charge que deux interruptions externes, toutes les broches numériques de la carte Nano Every peuvent être utilisées comme interruptions externes.

Image d'Arduino Nano EveryFigure 2 : L'Arduino Nano Every est une évolution de la carte Arduino Nano traditionnelle mais elle est dotée d'un processeur nettement plus puissant, l'ATMEGA4809, qui a 50 % de mémoire programme en plus que l'Arduino Uno, et beaucoup plus d'espace pour les variables car la SRAM est 3 fois plus grande à 6 Ko. (Source de l'image : Arduino.cc)

Bien que l'Arduino Nano Every ait toujours la limitation d'un bus de données 8 bits, elle a une horloge plus rapide (20 MHz) et plus de mémoire (48 Ko de Flash et 6 Ko de SRAM). Plus important encore pour les projets à taille limitée, l'Arduino Nano Every ne mesure que 45 mm x 18 mm (8,1 cm2).

Une autre alternative populaire qui peut être programmée en utilisant l'environnement de développement intégré (IDE) d'Arduino est le Teensy 3.2 DEV-13736 de SparkFun Electronics (Figure 3). En ce qui concerne les E/S, cette carte de développement de 3,3 V fait vraiment monter les enchères, avec 34 broches numériques, dont 12 prennent en charge la modulation PWM, et 21 entrées analogiques haute résolution.

Image de la carte Teensy 3.2Figure 3 : Le Teensy 3.2 est une petite carte de développement compatible avec les montages d'essai, conçue par Paul Stoffregen chez PRJC.com. Cette carte de développement conviviale offre une plateforme Arm® Cortex®-M4 32 bits économique aux amateurs, aux étudiants et aux ingénieurs professionnels. (Source de l'image : PRJC.com)

Le Teensy 3.2 est alimenté par un microcontrôleur Kinetis K20 MK20DX256VMC7R de NXP. Le K20 est équipé d'un processeur Arm Cortex-M4 32 bits cadencé à 72 MHz, avec 256 Ko de mémoire Flash et 64 Ko de SRAM. Pour les projets à espace restreint, il est particulièrement intéressant de noter qu'avec un format de 35 mm x 18 mm (6,3 cm2), le Teensy 3.2 fait environ les trois quarts de la taille de l'Arduino Nano Every.

Présentation du Seeeduino XIAO

Même si le Teensy 3.2 ne mesure que 6,3 cm2, il est encore trop grand pour de nombreuses applications. La solution pour ceux qui recherchent des plateformes encore plus petites et plus puissantes se trouve dans le vaste écosystème Arduino. Une option relativement récente est le Seeeduino XIAO de Seeed Technology (Figure 4), qui ne mesure que 23,5 mm x 17,5 mm (4,11 cm2), soit la taille d'un timbre-poste standard. Les concepteurs du Seeeduino XIAO ont également mis l'accent sur le coût ultrafaible.

Image de Seeeduino XIAO compatible avec les montages d'essai Figure 4 : Actuellement la plus petite carte de développement de microcontrôleur compatible Arduino de la famille Seeeduino, le Seeeduino XIAO, compatible avec les montages d'essai, fournit aux utilisateurs un puissant processeur Arm Cortex-M0+ 32 bits cadencé à 48 MHz. (Source de l'image : Seeed Studio)

Le XIAO est alimenté par un microcontrôleur SAMD21G18 ATSAMD21G18A-MUT d'Atmel. Ce microcontrôleur est doté d'un cœur de processeur Arm Cortex-M0+ 32 bits cadencé à 48 MHz et soutenu par 256 Ko de mémoire Flash et 64 Ko de SRAM.

Bien que le XIAO ne fournisse que 11 broches de données, chacune de ces broches peut être utilisée comme E/S numérique ou comme entrée analogique (Figure 5). Dix des broches prennent en charge la modulation PWM, et une est équipée d'un convertisseur numérique-analogique (CNA), ce qui lui permet de fournir une véritable capacité de sortie analogique. En outre, le XIAO prend en charge une interface UART, une interface SPI et une interface I2C.

Schéma des 11 broches de données servant d'E/S numériques (D0 à D10) ou d'entrées analogiques (A0 à A10)Figure 5 : Les 11 broches de données peuvent servir d'E/S numériques (D0 à D10) ou d'entrées analogiques (A0 à A10). En outre, A0 peut agir comme une véritable sortie analogique, D4 et D5 peuvent agir comme interface I2C, D6 et D7 peuvent être utilisées comme interface UART, et D8, D9 et D10 peuvent agir comme interface SPI. (Source de l'image : Seeed Studio)

Déploiement et utilisation du Seeeduino XIAO

En général, travailler avec le Seeeduino XIAO est aussi facile que de travailler avec n'importe quelle autre carte de développement Arduino ou compatible Arduino, mais il y a quelques trucs et astuces qui valent la peine d'être notés.

Un bon point de départ est de s'assurer de travailler avec la version la plus récente de l'IDE Arduino. Ensuite, visitez le site Seeeduino XIAO Wiki pour obtenir des instructions sur la façon d'étendre l'IDE Arduino avec le gestionnaire de carte approprié.

De nombreux projets Seeeduino XIAO, corporels ou autres, impliquent l'utilisation de NeoPixels tricolores basés WS2818 d'Adafruit, comme le ruban 2970 avec 144 NeoPixels par mètre (Figure 6).

Image de Seeeduino XIAO pouvant être utilisé pour contrôler individuellement des centaines de NeoPixels tricoloresFigure 6 : Une simple broche sur le Seeeduino XIAO peut être utilisée pour contrôler individuellement des centaines de NeoPixels tricolores, comme ceux du ruban noir de 144 NeoPixels par mètre d'Adafruit. (Source de l'image : Adafruit.com)

Un problème potentiel est que, alors que les cartes de développement Arduino traditionnelles peuvent continuer à fonctionner avec les anciennes versions de la bibliothèque NeoPixel d'Adafruit, le Seeeduino XIAO nécessite la dernière version optimisée.

Si une ancienne bibliothèque NeoPixel est installée, des messages d'erreur étranges et déroutants peuvent survenir. La solution consiste à supprimer toute ancienne version de la bibliothèque du système, puis à suivre les instructions du guide NeoPixel Überguide d'Adafruit pour installer la dernière version.

Les NeoPixels sont également sensibles aux dépassements et aux dépassements négatifs sur leurs broches de données. Le problème est que les taux de fronts rapides des signaux des microcontrôleurs modernes peuvent entraîner de telles caractéristiques. La solution consiste à ajouter une résistance série aussi près que possible du premier élément de la chaîne NeoPixel (Figure 7). Un exemple approprié est une résistance de 390 ohms (Ω), 1/4 de watt (W), avec une tolérance de 5 %, telle qu'une résistance à couche de carbone CF14JT390R de Stackpole Electronics Inc.

Schéma de la résistance série placée au plus près du premier NeoPixelFigure 7 : Une résistance série placée au plus près du premier NeoPixel de la chaîne élimine les dépassements et les dépassements négatifs sur les fronts du flux de données du microcontrôleur. (Source de l'image : Max Maxfield)

Un autre problème lié au NeoPixel est que les sorties numériques de 3,3 V du Seeeduino XIAO pourraient ne pas suffire pour commander les entrées de données de 5 V du NeoPixel. Une solution consiste à utiliser une carte Breakout de convertisseur de niveau logique BOB-12009 de SparkFun (Figure 8).

Image du convertisseur de niveau logique BOB-12009 de SparkFunFigure 8 : Le convertisseur de niveau logique BOB-12009 de SparkFun fournit quatre canaux bidirectionnels qui peuvent être utilisés pour convertir les signaux entre les domaines de 3,3 V et de 5 V. (Source de l'image : Adafruit.com)

Une application NeoPixel ne requiert qu'un seul canal unidirectionnel. Le problème avec le BOB-12009 est qu'il offre quatre canaux bidirectionnels, ce qui en fait une solution relativement importante pour un projet à espace limité, et une solution relativement coûteuse pour un projet sensible aux coûts. Une solution simple consiste à utiliser une seule diode 1N4001 de Comchip Technology (Figure 9).

Schéma du NeoPixel « sacrificiel » contraint d'agir comme un convertisseur de niveau de tensionFigure 9 : En utilisant une diode 1N4001 pour fournir une chute de tension de 0,7 V, un NeoPixel « sacrificiel » peut être contraint d'agir comme un convertisseur de niveau de tension. (Source de l'image : Max Maxfield)

Les NeoPixels considèrent un 1 logique comme tout ce qui est supérieur à 0,7 * VCC. Dans ce cas, le NeoPixel considère un 1 logique comme 0,7 * 5 = 3,5 V.

L'alimentation d'un pixel « sacrificiel » via une diode 1N4001, qui a une chute de tension directe de 0,7 V, se traduira par une alimentation avec une valeur VCC de 5 - 0,7 = 4,3 V, ce qui signifie un 1 logique comme 0,7 * 4,3 = 3,01 V. Cela signifie qu'un signal de 3,3 V provenant du Seeeduino XIAO est plus que capable de commander le pixel sacrificiel. En même temps, la sortie de 4,3 V du pixel sacrificiel est plus que suffisante pour commander l'entrée de données au prochain NeoPixel de la chaîne.

Conclusion

Les premières cartes de développement Arduino, comme l'Arduino Uno 8 bits, 16 MHz, étaient physiquement grandes et limitées en termes de capacités et de performances. Aujourd'hui, l'écosystème Arduino inclut une extraordinaire variété de cartes couvrant un large éventail de formes, de tailles et de capacités.

Pour les projets à espace restreint, comme les dispositifs corporels, le Seeeduino XIAO offre un cœur de processeur Arm-Cortex-M0+ 32 bits cadencé à 48 MHz avec 256 Ko de mémoire Flash et 64 Ko de SRAM, et ce, dans une plateforme miniature compatible avec les montages d'essai, mesurant seulement 4,11 cm2 et bénéficiant d'un support étendu de l'écosystème.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield a obtenu sa licence en ingénierie de contrôle en 1980 à l'université de Sheffield Hallam, en Angleterre, et a commencé sa carrière en tant que concepteur de processeurs (CPU) pour ordinateurs centraux. Au fil des ans, Max a tout conçu, de puces en silicium aux cartes à circuit imprimé, en passant par les amplificateurs d'ondes cérébrales et les moteurs de prédiction steampunk (ne posez pas de questions !). Il a également été à la pointe de l'automatisation de la conception électronique (EDA) pendant plus de 30 ans.

Max est l'auteur et/ou le co-auteur d'un certain nombre d'ouvrages, dont Designus Maximus Unleashed (interdit en Alabama), Bebop to the Boolean Boogie (un guide non conventionnel de l'électronique), EDA: Where Electronics Begins, FPGAs: Instant Access, et How Computers Do Math. Consultez son blog « Max's Cool Beans ».

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey