Les fabricants de microcontrôleurs sont engagés dans une compétition féroce. Une des raisons de cette concurrence acharnée vient de ce que l’assemblage d’un microcontrôleur est devenu relativement aisé : acquérez une licence auprès d’un concepteur anglais de cœurs  bien connu, tournez-vous vers un autre fournisseur pour vous procurer une brassée de périphériques dont il a la propriété intellectuelle, assemblez le tout sur une puce, et voilà. Le résultat ? Une croissance exponentielle du nombre de microcontrôleurs et de leurs fabricants. Toutefois, fabriquer un µcontrôleur est une chose, le vendre en est une autre. Les fabricants de µC s’ingénient donc à concevoir toutes sortes de cartes d’évaluation afin d’attirer un maximum d’acheteurs potentiels vers leurs produits.
 
STMicroelectronics est réputé pour la qualité de ses microcontrôleurs et de ses outils de développement. Ses cartes de prototypage rapide bon marché Nucleo, qu’on peut voir comme une lignée avancée des anciennes et populaires cartes Discovery, illustrent bien la façon dont un constructeur peut cibler un public large. Conçues pour la famille de processeurs STM32, les cartes Nucleo sont compatibles avec Arduino, mbed (ARM) et Morpho (ST), et donc accessibles au plus grand nombre, du débutant au professionnel.

Trio de triplettes

Sur la page web décrivant la famille Nucleo, on compte pas moins de 26 cartes différentes déclinées en trois versions : petite (Nucleo-32), moyenne (Nucleo-64) et grande (Nucleo-144), les chiffres correspondant au nombre de broches du contrôleur. Ces trois groupes sont à leur tour divisés en trois sous-groupes : ultra-basse consommation (ultra-low-power, en vert), ordinaire (mainstream, bleu) et haute performance (high-performance, magenta). Les petites cartes Nucleo-32 (50 x 19 mm) sont compatibles avec la carte Arduino Nano. Les deux autres sont compatibles avec la carte Arduino Uno R3 et possèdent des connecteurs Morpho donnant accès à toutes les broches du µC. Avec ce trio de triplettes et la pléthore de shields Arduino disponibles, nous avons en main tout ce qu’il faut pour bricoler rapidement quelque circuit.
  
 
La Nucleo-32 a les mêmes dimensions que la carte Arduino Nano.

La seule différence entre une famille de taille donnée (petite, moyenne ou grande) est le processeur. Il est donc facile de comparer leurs performances et de substituer une carte à une autre plus ou moins puissante puisqu’elles s’enfichent de la même façon.
 
Les cartes à ultra-basse consommation reposent sur la famille STM32 L, un ensemble de processeurs destinés aux compteurs intelligents, aux montres connectées et autres dispositifs de ce genre. Là encore nous trouvons trois sous-catégories :
  •     L0, ARM Cortex-M0+
  •     L1, ARM Cortex-M3
  •     L4, ARM Cortex-M4
 Les cartes mainstream reposent quant à elles sur la première moitié de la famille STM32 F :
  •     F0, ARM Cortex-M0+
  •     F1, ARM Cortex-M3
  •     F3, ARM Cortex-M4
 Les cartes à haute performance, enfin, ont pour cœurs les processeurs de la seconde moitié de la famille STM32 F :
  •     F2, ARM Cortex-M3
  •     F4, ARM Cortex-M4
  •     F7, ARM Cortex-M7
 Les cartes Nucleo offrent des mémoires flash de 16 Ko à 2 Mo, des mémoires RAM de 4 Ko à 320 Ko, et des fréquences d’horloge de 32 MHz à 216 MHz.
Autant de caractéristiques font véritablement de Nucleo une vaste plateforme.

Autre matériel

Si vous ne trouvez pas de shield Arduino adapté à votre application, vous pouvez chercher du côté des cartes d’extension Nucleo proposées par ST et ses revendeurs. Ces cartes d'extension ne manquent pas d’intérêt. D’une part car elles sont compatibles avec Arduino et comme telles intéresseront donc aussi les utilisateurs d’Arduino, d’autre part parce qu’elles embarquent plusieurs capteurs par carte. Prenons l’exemple de la carte « multi-sensor » : elle est dotée d’un accéléromètre 3D (à 3 axes), d’un gyroscope 3D, d’un magnétomètre 3D, d’un capteur de pression, d’un capteur de température et d’humidité relative, et d’un connecteur permettant d’ajouter encore plus de capteurs. Autre extension très intéressante, la carte VL6180X, qui combine un capteur de proximité, un capteur de distance et un capteur de luminosité.

 
La carte VL6180X à capteurs de proximité, de distance et de luminosité.

Toutes les cartes Nucleo sont équipées d’un programmateur/débogeur ST-LINK/V2.1. Le seul matériel supplémentaire à acquérir pour se lancer est donc un câble USB mini-B (pour les Nucleo 64 et 144) ou un câble USB micro-B (pour la Nucleo-32). Les outils de programmation/débogage fonctionnent avec les versions Windows XP et ultérieures. Le développement sous Linux est possible, mais il vous faudra consacrer un peu de temps à la préparation de la chaîne d’outils nécessaire. Des tutoriels expliquent comment y parvenir.