Standardiser le matériel utilisé avec les cartes

Le constat

Ma tendance, après des années de "bidouilles", c'est d'utiliser les modules à connecteurs Dupont voire sans connecteur (= pastilles à souder brutes) et mettre ce qu'on veut comme connecteur (mâle ou femelle, droit ou coudé, bornier à vis 2.54mm, etc ). Les "shields", hormis le cas d'une CNC, ou d'une I3D, et encore..., je trouve que çà vieillit mal :

  • çà ne passe pas facilement d'une plateforme à l'autre : un shield Arduino n'est pas facilement utilisable avec autre chose qu'une carte Arduino... une carte HAT pour le connecteur du Pi n'est pas facilement utilisable avec autre chose qu'un Pi...

  • çà se répare mal : si un composant grille sur un shield, on est bon pour changer tout le shield... alors que l'essentiel du shield est par ailleurs fonctionnel.

  • çà entraîne l'usage d'autres shields : je trouve que çà c'est le pire... tel shield nécessite tel autre shield et ainsi de suite...

Alors que les modules simples, on peut utiliser le même avec Arduino, le Raspberry Pi, la Pyboard, le Pi Pico, etc, indifféremment même 3.3V ou 5V si on les choisit bien. On peut "définitiver" (= rendre définitif) un montage sans problème et çà se fixe facilement, on peut faire du petit boîtier 3D qui va bien, etc. Dans la durée, on répare beaucoup plus simplement qu'un shield où c'est un peu "tout ou rien". Et si on doit remplacer un module, et bien c'est juste le module, pas tous les modules.

Le problème des modules par contre est la nécessité de faire facilement un commun du 0V (GND) et du V+ (3.3V ou 5V) qui sont nécessaire pour tous les modules, et une excellente solution, c'est le module Wago à levier qui prennent les "jumper" mâles sans problème.

Avec l'arrivée du Pi Pico, je revis une nouvelle fois ce que je ressens à chaque nouvelle carte qui sort :

  • lorsque Arduino est sorti, il y a tout un écosystème de "shields" associés au format spécifique à la carte qui est sorti. Et après 10 ans d'utilisation d'Arduino, on se retrouve avec sur les bras des tas de shields dont on ne peut pas faire grand chose tant leur usage est spécifique au format de la carte Arduino.

  • lorsque le Raspberry Pi est sorti, à nouveau, tout un écosystème de "Hats" et de cartes sépcifiques est sorti, compatible avec le bornier GPIO de la carte. C'est un peu moins spécifique d'Arduino, mais malgré tout, avec le temps qui passe, là encore, on se retrouve avec toute une série de cartes associées qui ne peuvent servir qur sur le Raspberry Pi. Seules les cartes modulaires simples qui étaient utilisables avec Arduino sont utilisables avec la carte Raspberry Pi, sous réserve d'une compatiblité 5V vers 3.3V, ce qui est malgré tout le cas d'un bon nombre d'entre-elles.

  • j'ai utilisé la Pyboard dès 2015, et la carte a également un format particulier... et là clairement, j'ai vu tout l'intérêt des cartes "modules" simple : je pouvais les utiliser sans problèmes avec la Pyboard.

  • et là, maintenant, avec la sortie de la Pi Pico, c'est le même topo : les shields Arduino sont inutilisables, à moins de créer une carte d'adaptation, qui à tous les coups va coûter aussi cher que le Pi Pico, voire plus chère (cherchez l'erreur...). On peut malgré tout retenir cette solution à titre "transitoire", mais pas pour en faire un but en soi je pense. Les "hat" pour le Raspberry Pi ne sont pas utilisables simplement, ou disons plutôt qu'ils sont beaucoup trop gros pour ce que l'on souhaite faire... Seuls les petites cartes modulaires s'avèrent pertinentes et sont utilisables !

Si je fais le bilan de plus de 10 ans de prototypage et si je regarde ce que j'ai dans mes tiroirs, ce qui me sert encore aujourd'hui et qui me servait déjà il y a 10 ans ou plus parfois, ce sont les modules simples "prêts à câbler", que l'on appelle "breakout", les mieux étant ceux à connecteur Dupont ou à sortie "à souder". L'essentiel des "déchets", autrement dit les cartes qui ne me servent plus, ce sont les shields... et j'ai vraiment un sentiment de gâchis quand je vois toutes ces cartes compliquées à réutiliser avec autre chose qu'Arduino. Shield éthernet, shield carte SD et RTC, etc... tout çà existe sous forme de module utilisables avec n'import quelle plateforme... alors que les shields dédiés pour une carte... c'est mort ! En tout cas pas simplement, car on peut toujours aller étudier le câblage du shield, faire les connexions qui vont bien... mais c'est vite compliqué, loin d'être immédiat !

Les shields ont clairement un côté "emprisonnement" dans une gamme de cartes, les modules "beakout" non : même si il y a compatibilité entre les évolutions de la carte mère (la carte logique en général), on est malgré tout obligé de rester dans la gamme. C'est le cas pour Arduino ou Raspberry Pi.

Les modules "prêt à câbler" : le bon entre deux.

Grosso modo, on a un peu 2 extrêmes opposés :

  • soit on utilise la plaque d'essai (ou breadboard), avec de nombreux jumpers, mais çà peut vite devenir inconfortable, et ce n'est pas jouable pour un projet un peu définitif.

  • soit on utilise la carte "intégrée", ou shield, mais avec le Pi Pico, cette solution fait perdre de côté compact de la carte.

Le bon entre deux c'est les modules "prêts à câbler" :

  • ils assurent le montage utile pour un composant donné, en dur, et donc n'est pas à faire sur plaque essai
  • ils offrent une connectique générique : [0V,V+,Signal] d'un capteur analogique ou mécanique, [0V, V+, SDA, SCL] d'un capteur I2C, etc.
  • sur connecteurs Dupont ce qui évite des câbles "exprès" et des cartes "exprès"... ce que les fabricants / vendeurs souhaitent... pour que l'on reste dans leur écosystème, mais çà ne sert pas le "maker".
  • ils sont facilement fixables, typiquement au trou de 3mm
  • ils sont faciles à utiliser avec n'importe quelle carte, que ce soit Arduino, Raspberry Pi, Pyboard, Pi Pico... et les suivantes.

Mieux, ce format permet facilement d'envisager ses propres "cartes modules" à partir d'un composant + un mini-CI "brut" et générique pour modules DIY. Et des modules "universels" existent aussi pour créer par exemple son propre dispositif I2C.

Réponse à quelques objections

Ce n'est pas très compact...

Souvent, sur un montage, on se retrouve avec la nécessité d'une alimentation... et cela impose une certaine dimension, donc la compacité est ici un point second. Ceci étant, l'argument est entendable, mais n'est pas forcément vérifié.

Par contre, ce qui est sûr, c'est que l'on gagne en souplesse pour positionner un capteur, etc.

Mais cela n'est pas très vrai finalement pour certaines choses : on des modules "prêts à câbler" avec un écran OLED polyvalents miniatures.

On peut aussi facilement envisager une mise en boitiers imprimés en 3D, etc.

On a vite un câblage abondant...

Cela peut être vrai, mais il s'agit du choix des câbles utilisés. Il ne faut pas qu'il soit trops longs. Et il faut probablement trouver des câbles dupond nappe, ce genre de chose.

Autre point, on peut utitilser des Wago pour faire les communs sur GND ou V+ logique.