Retour

222 modules Seeed Grove s'exécutent désormais dans le navigateur

Grove est le système plug-and-play de Seeed Studio — un connecteur à quatre broches, un câble, et quelques centaines de modules qui le partagent. Un bouton, un capteur de température, un relais, un OLED, une caméra thermique et une radio LoRa se branchent tous sur la même prise, ce qui explique pourquoi tant de premiers projets sont construits dessus.

Depuis septembre 2026, 222 des 279 modules du catalogue Grove de Seeed s’exécutent dans Velxio. Chacun possède sa propre pièce sur le canevas, dessinée d’après la photo du produit, une fiche technique avec le lien vers la boutique de Seeed, et un exemple de galerie adapté du wiki de Seeed lui-même, câblé à une carte XIAO. Cet article explique ce que cela signifie en pratique.

À quoi ressemble un module Grove sur le canevas

Seize modules Grove tels que Velxio les dessine — Button, Light Sensor v1.2, SHT31, OLED 0.96", Ultrasonic Distance Sensor, DHT22 Pro, Chainable RGB LED V2, Relay, caméra thermique MLX90640, Vision AI Module V2, LoRa Radio 868 MHz, NFC PN532, 16x2 LCD RGB Backlight, I2C Motor Driver TB6612FNG, Triple Color E-Ink 2.13" et le module CAN BUS

Chaque module est dessiné d’après la photo du produit de Seeed, avec le connecteur, les composants et la sérigraphie là où ils se trouvent sur la carte, et il porte le nom de produit exact de Seeed. Les broches sont les quatre lignes du connecteur, nommées comme la sérigraphie les nomme, de sorte qu’un fil partant de SIG ou SDA arrive là où il arriverait sur l’établi.

Ce que vous obtenez avec chaque pièce :

Pour les trouver, ouvrez le sélecteur de composants et tapez « Grove », ou ouvrez la galerie d’exemples et filtrez par Seeed Studio.

Essayez-en trois

Les étapes sont les mêmes pour chaque exemple :

  1. Ouvrez le lien de l’exemple. Vous n’avez pas besoin de compte.
  2. Appuyez sur le bouton lecture de la barre d’outils. Le sketch se compile sur les serveurs de Velxio et la carte démarre dans votre navigateur.
  3. Déplacez les curseurs du module, cliquez sur ses boutons, ou regardez-le dessiner.

Une caméra thermique. Le MLX90640 est une matrice 32 par 24 de thermopiles. Le sketch récupère l’EEPROM de calibration du capteur, lit une trame et exécute les calculs radiométriques de Melexis lui-même, puis imprime la trame sur le moniteur série en art ASCII. La pièce affiche la même trame sous forme de carte thermique ; le curseur définit où se trouve le point chaud et à quelle température.

La caméra thermique MLX90640 sur le canevas, câblée à un XIAO ESP32-C6, montrant un point chaud au milieu de sa trame 32 par 24

Deux moteurs sur un seul pilote. L’I2C Motor Driver embarque un TB6612FNG derrière un petit STM32 qui parle un protocole de commande. L’exemple fait tourner deux moteurs DC en avant, en arrière et en freinage ; les rotors sur le canevas tournent à la vitesse et dans la direction commandées, et le freinage les bloque.

Le Grove I2C Motor Driver sur le canevas pilotant deux moteurs DC, câblé à un XIAO ESP32-C6

Un OLED. Le SSD1315 de 0,96” est l’écran avec lequel la plupart des kits Grove sont livrés. L’exemple est le hello world u8g2 de Seeed — une ligne de texte et un compteur, envoyés en I2C à l’adresse 0x3C, peints par un modèle du contrôleur.

Le Grove OLED 0.96" sur le canevas affichant Hello World et un compteur, câblé à un XIAO ESP32-C6

Comment un module est émulé

Rien ici n’est simulé au niveau de la bibliothèque. Le sketch est compilé par un vrai arduino-cli pour la carte que vous avez choisie, le firmware s’exécute sur l’émulateur de Velxio pour ce SoC, et le module répond sur le fil comme la pièce le ferait. Ce qui diffère d’un module à l’autre, c’est ce qu’est « le fil » :

Les modèles de périphériques sont courts, car la plupart des pièces suivent l’une de quelques formes — une carte de registres avec un pointeur à auto-incrémentation, un périphérique à commandes de style Sensirion avec un CRC-8 sur chaque mot, ou une trame plate que le capteur diffuse. Le modèle du SHT31 est l’intégralité du capteur de température et d’humidité de Seeed, moins les commentaires :

static uint32_t handle(sn_dev* d, uint16_t cmd, const uint16_t* args, uint32_t nargs, uint16_t* w) {
  (void)d; (void)args; (void)nargs;
  switch (cmd) {
    case 0x306D: heater = true;  return 0;
    case 0x3066: heater = false; return 0;
    case 0x30A2: heater = false; return 0;   /* soft reset */
    case 0x3093: return 0;                    /* break */
    case 0x3041: return 0;                    /* clear status */
    case 0xF32D: {                            /* status register */
      uint16_t st = heater ? 0x2000 : 0x0000;
      w[0] = st; return 1;
    }
    default: break;
  }
  /* Everything else is a measurement request (single shot, periodic, fetch). */
  double t = vx_attr_read(A_temp) + (heater ? 2.0 : 0.0);
  double h = vx_attr_read(A_hum);
  w[0] = gc_u16((gc_clamp(t, -45, 130) + 45.0) * 65535.0 / 175.0);
  w[1] = gc_u16(gc_clamp(h, 0, 100) * 65535.0 / 100.0);
  return 2;
}

A_temp et A_hum sont les deux curseurs. La conversion est celle de la fiche technique du SHT31, exécutée à l’envers — le curseur indique 25 degrés, le modèle produit le mot brut que le pilote retransformera en 25 degrés, CRC compris.

D’où viennent les modèles

Chaque modèle est écrit à partir d’un document : la fiche technique du composant, ou la bibliothèque du fabricant qui communique avec lui, lue ligne par ligne. Quand aucun des deux n’existait, le module a été laissé de côté plutôt que deviné. Trois cas montrent ce que cela impliquait.

Les caméras thermiques ont dû être dérivées, et non transcrites. Un pilote thermique ne lit jamais une température. Il extrait 832 mots d’EEPROM, en tire environ deux cents constantes de calibration, lit 832 mots de données de trame et exécute le modèle du fabricant. Le modèle MLX90640 fournit donc une calibration dégénérée dans laquelle chaque terme de correction s’annule, et remonte les calculs à l’envers depuis la température demandée par le curseur jusqu’au mot brut qui la produit. Il a été vérifié contre un portage du pilote avant qu’aucun C ne soit écrit ; une cible de -20 à 300 degrés boucle à 0,02 degré près. Le MLX90641 a nécessité la même astuce plus une EEPROM codée en Hamming, et le MLX90621, pour lequel Seeed ne publie rien, provient du pilote de référence de Melexis.

L’exemple du pilote de moteur utilise Wire brut. La bibliothèque de Seeed pour la carte TB6612FNG embarque un assistant I2C de l’ère AVR qui ne compile pas pour un ESP32, donc l’exemple parle directement le protocole. C’est un octet de commande et sa charge utile :

const uint8_t ADDR = 0x14;
const uint8_t BRAKE = 0x00, CW = 0x02, CCW = 0x03;
const uint8_t STANDBY = 0x04, NOT_STANDBY = 0x05;
const uint8_t CHA = 0, CHB = 1;

void cmd(uint8_t c, const uint8_t* payload, uint8_t n) {
  Wire.beginTransmission(ADDR);
  Wire.write(c);
  for (uint8_t i = 0; i < n; i++) Wire.write(payload[i]);
  Wire.endTransmission();
  delay(1);
}

void run(uint8_t channel, int speed) {
  uint8_t p[2] = { channel, (uint8_t)(speed < 0 ? -speed : speed) };
  cmd(speed >= 0 ? CW : CCW, p, 2);
}

Le module CAN BUS n’est pas une conception Seeed. Il a d’abord été laissé de côté parce que Seeed ne publie ni protocole ni bibliothèque pour lui. La carte est fabriquée par Longan Labs, qui publie les deux, et le modèle suit leur disposition de trame : 0xAA, une longueur, une commande, la charge utile et un CRC MODBUS.

Chaque modèle dispose d’un test qui le pilote comme le fait son pilote, octet par octet : 1 804 au total dans le catalogue en septembre 2026. Les exemples de la galerie ont également été exécutés sur l’application déployée, pas seulement dans la suite de tests.

Ce qui n’est pas dans le catalogue

Soyons francs sur les lacunes : 57 des 279 références ne sont pas modélisées, et trois groupes expliquent celles qui pourraient l’être.

Le reste, ce sont des câbles, du matériel de montage et des kits.

Où aller ensuite

Les illustrations des modules sont tirées des photographies de produits de Seeed Studio.


Partager sur :
David Montero

Écrit par

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Articles liés


Article suivant
Les nouvelles cartes XIAO IPS Display de Seeed, exécutées dans votre navigateur quelques jours après leur lancement