04

Les nouvelles cartes à microcontrôleur

De nouvelles cartes à microcontrôleur sortent régulièrement, affichant des performances sans cesse croissantes, tant en matière de rapidité de traitement qu’en matière de stockage d’informations. Mieux, ces cartes sont pourvues de ressources qui présentent un intérêt certain pour le modélisme ferroviaire, comme par exemple un contrôleur CAN ou la possibilité de se connecter à un réseau WiFi.

4.1 / Les cartes d’origine Arduino : quatre grandes familles

Arduino classe ses cartes à microcontrôleur en quatre grandes familles :   La famille classique qui comprend 8 cartes, souvent au format Uno, et trois cartes shield (moteur, relais, ethernet). C’est dans cette catégorie qu’on retrouve la carte Uno R3 ou encore les nouvelles cartes Uno R4 dont je parle un peu plus loin.  La famille Nano qui comprend 7 cartes dont la carte Nano qui est équivalente à une Uno R3 mais en format plus petit, la Nano-33-IoT, la Nano RP2040 (microcontrôleur du Raspberry Pi), la Nano ESP32 (microcontrôleur des cartes ESP de chezEspressif) et une carte « Carrier » qui reçoit la carte au format Nano en son centre, un peu comme un shield à l’envers, et qui permet entre autre de contrôler quatre moteurs DC et quatre servomoteurs.  La famille MKR (pour Maker) qui comprend 9 cartes à base de microcontrôleur Arm© Cortex© M0 32 bit SAMD21 et 9 cartes shield. Cette catégorie, très spécialisée, s’adresse à ceux qui développent des projets de A à Z, électronique, informatique, faisant appel à la conception de circuits imprimés professionnels et à l’impression 3D. Ces projets sont généralement embarqués et autonomes sur batterie et consomment assez peu.  La famille Mega (figure 4-1) comprend 3 cartes au format Mega dont la classique Mega 2560, mais aussi la carte Due avec un microcontrôleur plus puissant ou encore la Giga R1 WiFi qui peut être considérée comme la Rolls des cartes Arduino. Cette famille comprend aussi le shield Giga Display conçu pour la Giga R1. Les prix de ces deux derniers produits de haute gamme sont en rapport avec leurs performances, mais l’association des deux peut avoir son utilité en modélisme ferroviaire pour réaliser une centrale DCC graphique ou un TCO ou les deux à la fois.   Il convient donc de bien étudier la gamme proposée en fonction du projet à réaliser, notamment en termes de ressources, mais plutôt que se précipiter sur le plus cher, on doit se poser la question de l’utilité de ces ressources. Dans notre domaine, un microcontrôleur 8 bits sera déjà bien suffisant et un 32 bits pas forcément nécessaire, sauf que les prix de ces derniers ont beaucoup baissé, alors pourquoi s’en priver ?

Figure 4-1
source Arduino

Cartes à microcontrôleur de différentes marques

4.2 / Uno R4 Minima  et R4 WiFi

En 2023, Arduino a sorti deux nouvelles cartes qui ont la forme de la carte Uno R3, les mêmes dimensions, les mêmes connecteurs avec un microcontrôleur RA4M1, un Arm© Cortex© M4 core de Renesas, de 32 bits donc plus puissant, plus rapide et avec plus de mémoire. Ces cartes ont été appelées Uno R4 et se déclinent en deux versions : Uno R4 Minima (version minimaliste si on peut dire) à 22 euros et Uno R4 WiFi (connectable en WiFi et Bluetooth) à 30 euros (prix avril 2025). Ces deux cartes travaillent également en 5 V ce qui leur permet de remplacer une carte Uno R3 dans un projet déjà abouti afin de lui donner plus de possibilités, et ce sans avoir à modifier les autres composants électroniques. La R4 Wifi présente les mêmes caractéristiques que la R4 Minima mais peut se connecter en WiFi et Bluetooth et dispose en plus d’une matrice de 12 x 8 LED rouges. Comme les connecteurs sont les mêmes, les cartes R4 acceptent les cartes shields qui étaient conçues pour la R3. Un programme écrit pour la R3 doit théoriquement tourner sur les R4 à la condition qu’il ait respecté l’API Arduino (ensemble des fonctions livrées avec Arduino). Par contre, si le programme manipule les registres internes du microcontrôleur Atmega328P, alors il ne tournera pas sur une R4 dont le microcontrôleur est différent. Il en est de même si le programme utilise une bibliothèque non compatible. Ces deux cartes nécessitent un câble USB de type C pour être reliées à l’ordinateur (prise A normale du côté ordinateur et USB-C du côté carte, câble souvent vendu avec l’appellation USB > USB-C sur l’emballage). Le tableau ci-dessous donnent quelques différences entre la carte Uno R3 et les cartes Uno R4. Bien évidemment, les cartes Uno R4 permettent des possibilités supplémentaires que n’avaient pas les R3 comme un module CAN (pour communiquer), une horloge temps réel (RTC), une interface humain-machine (Human Interface Device ou HID), et surtout une vraie sortie analogique grâce à la présence d’un DAC (Digital to Analog Converter). Enfin, les cartes disposent aussi d’un ampli opérationnel.

| Uno R3 | Uno R4 Minima | Uno R4 WiFi
Microcontrôleur | ATmega328P (8 bits) | RA4M1 (32 bits) | RA4M1 (32 bits)
Fréquence | 16 MHz | 48 MHz | 48 MHz
Mémoire Flash | 32 k | 256 k | 256 k
Mémoire SRAM | 8 k | 32 k | 32 k
Mémoire EEPROM | 1 k | 8 k (data memory) | 8 k (data memory)
E/S numériques | 14 | 14 | 14
PWM | 6 | 6 | 6
Entrées analogiques | 6 | 6 | 6
Sortie analogique | 0 | 1 | 1
WiFi, Bluetooth, IoT | non | non | oui

Attention : alors qu’une sortie de la carte Uno R3 pouvait fournir ou absorber un courant de 20 mA, les cartes Uno R4 sont limitées à 8 mA maximum. Afin de ne pas endommager ces cartes, il est nécessaire de tenir compte de cette limitation et de choisir des résistances de limitation de courant en conséquence (ne jamais descendre en dessous de 470 ohms).

4.3 / Carte Uno R4 Minima

La figure 4-2 montre les deux côtés de la carte : effectivement, cela ressemble à la carte Uno R3 mis à part l’interface USB-C et le microcontrôleur.   La carte dispose aussi d’un connecteur SWD (Serial Wire Debug) que n’a pas la R4 WiFi et qui permet à des utilisateurs avancés et équipés de disposer d’options de débogage.

Figure 4-2
source Arduino

4.4 / Carte Uno R4 WiFi

La figure 4-3 montre les deux côtés de la carte : on distingue la matrice de 96 LED et la puce (un microcontrôleur ESP32 de chez Espressif) qui permet la connexion en WiFi ou Bluetooth.    Attention car si la carte fonctionne en 5 V, l’ESP32 fonctionne en 3,3 V. Cette carte est évidemment compatible avec l’Arduino IoT Cloud, ce qui permet de créer facilement des objets connectés (voir chapitres 1 et 9). On remarque aussi sur la carte un connecteur Qwiic qui permet des connexions en I2C avec des composants de l’écosystème Qwiic développé par Sparkfun et Adafruit sous les noms Qwiic ou STEMMA. On peut remarquer aussi la présence de trois broches supplémentaires OFF, GND et VRTC. La broche OFF permet de mettre la carte hors tension alors que la broche VRTC permet de garder l’alimentation de l’horloge temps réel (RTC) pour que cette dernière puisse continuer à fonctionner (il suffit d’appliquer une tension comprise entre 1,6 et 3,6 V sur cette broche).  Le site d’Arduino est très bien documenté concernant les nouvelles fonctionnalités de ces cartes par rapport à la carte Uno R3 (utilisation de l’horloge RTC, du DAC, du HID, du CAN, de l’ampli opérationnel, de la matrice de LED, du WiFi et du Bluetooth) mais si vous ne lisez pas l’anglais, vous pouvez vous reporter à cet article que j’ai publié chez LOCODUINO : https://locoduino.org/spip.php?article340.  L’article fait également le point sur ce que ces cartes ont sous le capot mais aussi sur de petites différences de conception entre la R4 Minima et la R4 WiFi qui peuvent donner lieu à problèmes si on essaie de remplacer l’une par l’autre dans un projet déjà terminé.

Figure 4-3
source Arduino

4.5 / Importation dans l’IDE des fichiers nécessaires à la programmation de ces cartes

Dans l’IDE, choisissez l’option « Sélectionnez une autre carte et un autre port… » et tapez Uno. La figure 4-4 montre les cartes Uno connues et on peut voir que les Uno R4 ne sont pas encore installées car elles n’apparaissent pas en brillant.   Sélectionnez l’icône « Gestionnaire de carte » (1) et entrez dans la case de recherche UNO R4 (2) ; vous obtenez un package qui est fait pour les deux cartes Uno R4 Minima et Uno R4 WiFi. Il suffit alors de cliquer sur « INSTALLER » (3) comme le montre la figure 4-5.   Vous aurez à accepter que le logiciel modifie votre ordinateur, comme c’est le cas lorsqu’on veut installer un nouveau logiciel, et pour cela il faut que vous soyez administrateur. Après quelques secondes, vous obtenez le message « Platform arduino:renesas_uno@1.4.1installed » (ou une version supérieure à la 1.4.1). Si vous retournez dans « Sélectionnez une autre carte et un autre port… », vous pouvez constater que les Uno R4 sont bien installées comme le montre la figure 4-6.

Figure 4-4

Figure 4-5

Figure 4-6

4.6 / Les cartes ESP

L’écosystème Arduino n’est pas limité aux cartes de marque Arduino. D’autres constructeurs proposent également des cartes à microcontrôleur qui peuvent être programmées par l’IDE d’Arduino. La firme chinoiseEspressif a sorti des cartes bon marché mais très performantes, comprenant un microcontrôleur ESP32 qui a d’ailleurs été repris par Arduino dans sa carte Nano ESP32.  Fondée en 2008, la société chinoise Espressif fabrique des MCU (Microcontroller Unit) : en 2013, elle a sorti l’ESP8089 doté du WiFi mais qui n’existait qu’en tant que composant et pas en tant que module. L’arrivée en 2014 de l’ESP8266 (MCU ou module) a comblé cette lacune et le petit module est très vite devenu populaire. En 2016, l’ESP32 a été une amélioration de l’ESP8266 avec une documentation conséquente et la possibilité de kits de développement (ESP-WROOM ESP DevKit V1).  L’ESP32 est un MCU 32 bits, généralement doté du WiFi et du Bluetooth (mais pas toujours : voir plus loin), avec un ADC 12 bits (10 bits seulement pour les cartes Arduino de l’époque) et un DAC de 8 bits, un GPIO, le Hall Sensor et des bus de communication comme UART, SPI, I2C, I2S.   Plusieurs séries existent pour l’ESP32 :    • ESP32 32 bits single ou dual core, bus caméra et interface SD
• ESP32-S en 2020 (S2 single core, WiFi, 12 bits ADC bus caméra – S3 dual core, WiFi et Bluetooth 5, 12 bits ADC, bus caméra, mémoire externe possible)
• ESP32-C en 2020 (C2 single core qui remplace l’ESP8266 – C3 qui contient un RTC, C6 qui permet le protocole de communication Thread/Zigbee)
• ESP32-H (H2 spécialisé application IoT, avec possibilité de Flash externe)
• ESP32-C61 utilisé comme MCU ou comme co-processor d’un autre MCU, avec WiFi 6 et Flash externe
• ESP32-C5 utilisé comme MCU ou comme co-processor d’un autre MCU, avec WiFi 6 double bande et Flash externe
• ESP32-P (P4 MCU dual core haute performance, pas de WiFi ni Bluetooth)
Les ESP32 existent soit en SoC (System on a Chip, ou encore composant électronique simple), soit en module (board) comme WROOM, WROVER, SOLO, PICO, MINI, soit en DevKit (voir plus haut). Pour notre hobby, seules les deux dernières possibilités sont exploitables. Devant une offre aussi pléthorique, il n’est pas facile de bien choisir l’ESP32 qu’il nous faut. Pour comparer les différentes versions d’ESP, le site https://products.espressif.com/#/product-selector vous sera d’une grande utilité.  Plusieurs marques proposent des cartes à base d’ESP32 ; elles sont programmables avec l’IDE 2 d’Arduino ou d’autres plateformes (PlatformIO ou ESP IDF (pour IoT Development Framework) d’Espressif.  Les langages sont C/C++, Python, MicroPython, CircuitPython.   Attention : certaines cartes ne peuvent pas être enfichées sur une breadboard et il faut bricoler deux breadboards et les réunir côte à côte sur un même support.   Arduino a sorti une carte au format Nano munie d’un ESP32 : la Nano ESP32. La marque Seeduino a sorti la carte XIAO-ESP32S3 et la marque DFRobot (rappelez-vous du Mini-DFPlayer décrit dans le tome 1) a sorti une carte minuscule DFRobot Beetle-ESP32C3. Ces cartes ont un ou deux USB, un nombre variable de broches E/S (I/O) accessibles et elles restent bon marché (moins de 25 dollars). Assurez-vous cependant d’avoir la documentation de la carte pour vous y référer car elle est indispensable. Le simulateur Wokwi propose quelques cartes ESP32, ce qui peut vous permettre d’en découvrir certaines avant de faire votre choix définitif (S2, S3, C3, C6, H2 et P4 ainsi que les cartes XIAO ESP32-C3, -C6 et -S3). Pour apprendre à les utiliser, il y a de nombreux tutos sur internet, notamment sur YouTube, et beaucoup sont en français.  Du fait de leur connectivité, de leurs hautes performances et de leur prix plutôt bas, les cartes ESP32 sont devenues rapidement aussi populaires que la carte Uno. Elles travaillent en 3.3 V, ce qui n’est qu’un détail, et on peut trouver sur le marché asiatique des kits de début à base de carte ESP32 comme on en trouve d’autres à base de carte Uno. C’est aussi une excellente façon de découvrir ces cartes ESP32 et de progresser avec elles.   Attention : les broches de ces cartes ne sont pas tolérantes au 5 V (comme beaucoup de cartes qui sont en 3,3 V).  En modélisme ferroviaire, de nombreux montages à base d’ESP32 ont été publiés par le site LOCODUINO (pont automatisé Fleischmann, manette DCC, TCO Web interactif, LaBox, etc.) : il n’y a qu’à piocher pour avoir une bonne base pour développer ses propres projets. Et il n’est pas difficile de modifier un programme pour carte Arduino en programme pour carte ESP. Au chapitre 3, j’avais demandé à l’IA de réaliser une commande d’aiguille. J’ai repris son programme pour l’adapter à une carte ESP, comme le montre la figure 4-7. Un changement important est d’utiliser la bonne bibliothèque (ESP32Servo à la place de Servo) et il a fallu également modifier les broches utilisées.   Vous pouvez récupérer le programme ici :  https://wokwi.com/projects/428316358472666113 .

Deux cartes populaires de chez Espressif : ESP32 WROMER à gauche et ESP8266 à droite  (kit de découverte Freenove)

Figure 4-7

4.7 / Les autres cartes

Il existe de nombreux autres constructeurs de cartes à microcontrôleur. Les cartes sont architecturées autour d’un microcontrôleur 32 bits et elles ne coûtent pas forcément plus cher que les cartes à 8 bits. PJRC propose ses cartes Teensy qui ont besoin d’un add-on pour être programmées avec l’IDE d’Arduino. STM (STMicroelectronics) propose sa gamme de cartes Nucleo. Enfin, Raspberry connu pour son nano-ordinateur puissant et compact fonctionnant sous une distribution de Linux (le Raspberry Pi), a sorti une carte Raspberry Pi Pico architecturée autour d’un RP2040, qui se rapproche du format Arduino Nano, mais qui ne peut pas délivrer autant de courant qu’un ATmega328P ; il faudra donc veiller à ce point et utiliser des amplificateurs comme l’ULN2803A.
Il est bien évident que je ne peux pas les décrire en détail, mais je vous incite à les découvrir car leurs possibilités sont étonnantes.Wokwi propose les STM32 Nucleo-64 C031C6 et STM32 Nucleo-64 L031K6, ainsi que Raspberry Pi Pico et Raspberry Pi Pico W. En plus, changer de marque et de modèle de microcontrôleur ne peut que vous faire progresser dans la connaissance des ressources que ces cartes proposent (notamment en matière de WiFi ou Bluetooth).

résumé du chapître 4
Les cartes à microcontrôleur évoluent sans cesse et nous proposent de nouvelles fonctionnalités dont certaines peuvent avoir leur utilité sur un réseau de trains miniatures. Même si notre hobby n’a pas besoin d’une énorme puissance de calcul, la possibilité de se connecter au réseau internet permet dans certains cas de simplifier le câblage entre composants. Ce chapitre a montré que certaines cartes sont à privilégier comme la Uno R4 d’Arduino ou bien l’ESP32 d’Espressif.