Quelques méthodes d'utilisation du Seeed Studio XIAO MG24 Sense et Standard

Que sont-ils ?

Seeed Studio XIAO MG24 et XIAO MG24 Sense sont des cartes de développement sans fil ultra-basse consommation basées sur le SoC EFR32MG24 de Silicon Labs, dotées d'un cœur ARM Cortex®-M33 78MHz performant. Les deux cartes sont Matter® natives sur Thread® et Bluetooth® Low Energy 5.3, prises en charge par le noyau Arduino®, et comprennent 4 Mo de Flash, 19 GPIO, une LED et un circuit de charge. Elles offrent un courant de fonctionnement extrêmement faible et des modes ultra-basse consommation, ce qui les rend idéales pour les applications IoT, en particulier les projets alimentés par batterie utilisant les protocoles Matter®. De plus, le XIAO MG24 Sense inclut un microphone analogique intégré et des capteurs IMU six axes, ce qui en fait un excellent choix pour les applications TinyML telles que la détection de posture. Pour plus de détails, veuillez cliquer ici.

Seeed Studio XIAO MG24 Silicon Labs EFR32MG24 BLE 5.3 1.95μA

Seeed Studio XIAO MG24 Standard

Voir le produit
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Voir le produit

Commencer

programme simple d'usine

XIAO MG24

La version Standard est livrée avec un programme préinstallé en usine appelé Blink Light. Lorsque vous allumez le XIAO, l'indicateur utilisateur orange s'allume.

XIAO MG24 Sense

Le programme préinstallé en usine dans la version Sense est conçu pour que plus vous criez fort, plus la lumière brillera intensément.

Préparation du matériel

  • 1 x Seeed Studio XIAO MG24
  • 1 x ordinateur
  • 1 x câble USB Type-C
note : Certains câbles USB ne peuvent fournir que de l'alimentation et ne peuvent pas transférer de données.

Préparation du logiciel

Pour le XIAO MG24, l'outil de programmation suggéré est le Arduino IDE, donc la première étape de la préparation logicielle est de compléter l'installation d'Arduino.
  • Étape 1. Téléchargez et installez la version stable de l'IDE Arduino selon votre système d'exploitation.
  • Étape 2. Lancez l'application Arduino.
  • Étape 3. Ajoutez le package embarqué XIAO MG24 à l'IDE Arduino et cliquez sur OK.
  • Étape 4. Fermez l'IDE Arduino et rouvrez-le.

Ajoutez la carte XIAO MG24

Ajoutez l'URL ci-dessous aux préférences de votre Arduino IDE.

Téléchargez le package de la carte XIAO MG24.


Optez pour la variante XIAO_MG24.


Commencez votre premier programme Blink

  • Étape 1. Lancez l'application Arduino.
  • Étape 2. Allez dans Fichier > Exemples > 01.Basics > Blink, ouvrez le programme.
  • Étape 3. Choisissez le modèle de carte XIAO MG24 et sélectionnez le numéro de port approprié pour télécharger le programme.

Après le téléchargement réussi du programme, vous verrez le message de sortie ci-dessous et remarquerez que la LED orange sur le côté droit du XIAO MG24 clignote.

Utilisation de la batterie

Connexion et gestion de la batterie

Le XIAO MG24 est équipé d'une puce de gestion d'alimentation intégrée qui lui permet d'être alimenté indépendamment par une batterie ou de charger la batterie via le port USB.
Si vous prévoyez de connecter une batterie au XIAO, nous recommandons d'utiliser une batterie lithium rechargeable certifiée 3,7 V. Lors de la soudure de la batterie, veuillez vous assurer d'identifier correctement les bornes positive et négative. La borne négative doit être connectée au côté le plus proche du port USB, tandis que la borne positive se connecte au côté le plus éloigné du port USB.

Affichage de l'état de charge

Nous avons mis en place une lumière indicatrice rouge pour afficher l'état de charge de la batterie, tenant les utilisateurs informés de l'état actuel pendant la charge.
  • Sans batterie connectée : La lumière rouge s'allume lorsque le câble Type-C est connecté et s'éteint automatiquement après 30 secondes.
  • Charge avec une batterie connectée : La lumière rouge clignote pendant que le câble Type-C charge la batterie.
  • Lorsque la batterie est complètement chargée : La lumière rouge s'éteint, signalant la fin du processus de charge.

Autres notes

  • Utilisez des batteries qualifiées : N'utilisez que des batteries qui répondent aux exigences spécifiées.
  • Connexion par câble de données : Le XIAO peut être connecté à votre ordinateur via un câble de données tout en fonctionnant sur batterie. Soyez assuré qu'il dispose d'une puce de protection de circuit intégrée pour la sécurité.
  • Indicateur LED : Lorsqu'il est alimenté par une batterie, le XIAO MG24 n'affichera aucune lumière LED (sauf si vous l'avez programmé pour le faire). Veuillez ne pas évaluer le fonctionnement du XIAO MG24 en vous basant sur l'état de la LED ; fiez-vous à votre programme pour une évaluation correcte.
  • Surveillance du niveau de batterie : Malheureusement, nous ne pouvons actuellement pas fournir de moyen de vérifier le niveau de batterie restant via un logiciel (en raison du manque de broches disponibles sur la puce). Vous devez charger la batterie régulièrement ou utiliser un multimètre pour surveiller le niveau de la batterie.

Mesure de la tension de la batterie

Code logiciel :

 

/*
  AnalogReadSerial

  Lit une entrée analogique sur la broche 0, affiche le résultat sur le Moniteur Série.
  Une représentation graphique est disponible via le Traceur Série (menu Outils > Traceur Série).
  Connectez la broche centrale d'un potentiomètre à la broche A0, et les broches extérieures à +5V et à la masse.

  Ce code d'exemple est dans le domaine public.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial
*/

// la routine d'initialisation s'exécute une fois lorsque vous appuyez sur reset :
void setup() {
  Serial.begin(115200);
  pinMode(PD3, OUTPUT);
  digitalWrite(PD3, HIGH);
}

void loop() {
  int voltageValue = analogRead(PD4);
  float voltage = voltageValue * (5.0 / 4095.0);
  
  Serial.print("Tension : ");
  Serial.print(voltage, 2);
  Serial.println(" V");
  delay(1000);  // délai entre les lectures pour la stabilité
}

Afficher le résultat

Exemple de veille profonde et veille

Démo1 Mode veille et réveil

 


/*
   Exemple de veille programmée avec ArduinoLowPower

   L'exemple montre l'utilisation basique de la bibliothèque Arduino Low Power en mettant l'appareil en veille pour une période donnée.
   L'appareil entrera en mode veille pendant 2000 ms. Pendant la veille, le CPU est arrêté mais la RAM conserve son contenu.

   Cet exemple est compatible avec toutes les cartes Arduino Silicon Labs.

   Auteur : Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Veille avec réveil programmé");
}

void loop()
{
  digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
  delay(500);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  delay(500);

  Serial.printf("Mise en veille à %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Réveillé à %lu\n", millis());
}

Démo2 Mode veille profonde et réveil

 

/*
   Exemple de sommeil profond ArduinoLowPower avec réveil externe ou temporisé

   L'exemple montre l'utilisation basique de la bibliothèque Arduino Low Power en mettant l'appareil en sommeil profond.
   L'appareil restera en sommeil profond jusqu'à l'expiration du minuteur de sommeil.
   Pendant le sommeil profond, l'ensemble de l'appareil est éteint sauf un ensemble minimal de périphériques (comme la RAM de secours et le RTC).
   Cela signifie que le CPU est arrêté et que le contenu de la RAM est perdu - l'appareil redémarrera depuis le début du sketch après le réveil.

   Cet exemple est compatible avec toutes les cartes Arduino Silicon Labs.

   Auteur : Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Réveil programmé en mode veille profonde");
}

void loop()
{
  digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
  delay(500);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  delay(500);

  Serial.printf("Passage en sommeil profond pendant 10s à %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Mode de sommeil profond avec flash et réveil

Pour activer le sommeil profond pour la mémoire flash, vous devez activer le registre 0xb9.
 

/*
   Exemple de sommeil profond ArduinoLowPower avec réveil externe ou temporisé

   L'exemple montre l'utilisation basique de la bibliothèque Arduino Low Power en mettant l'appareil en sommeil profond.
   L'appareil restera en sommeil profond jusqu'à l'expiration du minuteur de sommeil.
   Pendant le sommeil profond, l'ensemble de l'appareil est éteint sauf un ensemble minimal de périphériques (comme la RAM de secours et le RTC).
   Cela signifie que le CPU est arrêté et que le contenu de la RAM est perdu - l'appareil redémarrera depuis le début du sketch après le réveil.

   Cet exemple est compatible avec toutes les cartes Arduino Silicon Labs.

   Auteur : Tamas Jozsi (Silicon Labs)
 */
#include
#include "ArduinoLowPower.h"

#define CS_PIN PA6
#define CLK_PIN PA3
#define MOSI_PIN PA5
#define MISO_PIN PA4

#define READ_DATA 0x03
#define WRITE_ENABLE 0x06
#define PAGE_PROGRAM 0x02
#define SECTOR_ERASE 0x20

void sendSPI(byte data) {
  for (int i = 0; i < 8; i++) {
    digitalWrite(MOSI_PIN, data & 0x80);
    data <<= 1;
    digitalWrite(CLK_PIN, HIGH);
    delayMicroseconds(1);
    digitalWrite(CLK_PIN, LOW);
    delayMicroseconds(1);
  }
}

void writeEnable() {
  digitalWrite(CS_PIN, LOW);
  sendSPI(WRITE_ENABLE);
  digitalWrite(CS_PIN, HIGH);
}

void setup()
{
  //Serial.begin(115200);
  pinMode(PA7, OUTPUT);
  digitalWrite(PA7, LOW);

  pinMode(CS_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(MOSI_PIN, OUTPUT);
  pinMode(MISO_PIN, INPUT);


  //SW
  pinMode(PD3, OUTPUT);
  pinMode(PB5, OUTPUT);
  pinMode(PB1, OUTPUT);
  pinMode(PB0, OUTPUT);
  pinMode(PA6, OUTPUT);
  digitalWrite(PD3, LOW); //VBAT
  digitalWrite(PB5, LOW); //RF_SW
  digitalWrite(PB1, LOW); //IMU
  digitalWrite(PB0, LOW); //MIC
  digitalWrite(PA6, HIGH);  //FLASH

  //Serial.println("Réveil programmé du deep sleep");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

void loop()
{
  delay(12000);  
  digitalWrite(PA7, HIGH);
  delay(500);

  //Serial.printf("Passage en deep sleep pendant 10s à %lu\n", millis());
  LowPower.deepSleep(600000);
}

Protéger le XIAO MG24 contre le brickage en mode Deep Sleep

Le XIAO MG24 de Seeed Studio est une carte microcontrôleur puissante, mais les utilisateurs ont rencontré des problèmes où l'appareil devient non réactif ("brické") après être entré en mode Deep Sleep. Ce guide traite de la cause principale, détaille un processus de récupération et fournit des conseils pour éviter de bricker votre XIAO MG24.
Lorsque le XIAO MG24 entre en mode Deep Sleep (EM4) pour économiser de l'énergie, il peut ne pas se réveiller correctement, bloquant le téléversement de nouveaux sketches. Contrairement aux autres cartes XIAO, le MG24 ne dispose pas d'un bouton BOOT ni d'une méthode clairement documentée pour entrer en mode boot, rendant la récupération plus complexe.
Pour des étapes de récupération détaillées, continuez à lire ci-dessous.

1. Utilisez la broche d'échappement (PC0)

Le XIAO MG24 dispose d'un mécanisme d'échappement intégré pour éviter le brickage. Si PC0 est tiré à LOW lors d'un redémarrage, l'appareil entrera dans une boucle infinie, vous permettant de téléverser un nouveau sketch.
  • Connexion : Connectez PC0 à GND avant de redémarrer l'appareil.
  • Téléversement : Après le redémarrage, téléversez votre sketch pendant que l'appareil est dans la boucle.

2. Modifiez votre sketch

Ajoutez le code suivant à votre sketch pour détecter un interrupteur utilisateur. Si l'interrupteur est pressé, l'appareil entrera dans une boucle infinie, vous permettant de télécharger un nouveau sketch pendant que l'appareil boucle :
 

#define USER_SW  PC3   // Exemple de broche pour l'interrupteur utilisateur

void setup() {
  // Autres codes d'initialisation...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Activation du téléchargement d'un nouveau sketch");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Évitez la mise en veille inutile de la mémoire flash

Assurez-vous que votre sketch ne met pas la mémoire flash en mode veille (Deep Power Down) sauf si c'est absolument nécessaire. Cela peut empêcher des problèmes lors du téléchargement de nouveaux sketches. Garder la mémoire flash active garantit un processus de téléchargement plus fluide et évite un éventuel blocage de l'appareil.

Solutions pour l'accès au port série et la récupération

Solutions Windows

1.Téléchargez le fichier ZIP fourni.

2.Connectez le XIAO MG24

Utilisez un câble USB pour connecter le XIAO MG24 non réactif à votre ordinateur.

3.Exécutez le script

Ouvrez le dossier extrait et trouvez le flash_erase.bat script.
Double-cliquez sur le script pour l'exécuter. Cela effacera la mémoire flash et réinitialisera l'appareil.

4.Vérifiez la récupération

Après l'exécution du script, le XIAO MG24 devrait être restauré et prêt à l'emploi.

Solutions macOS

1.Téléchargez le fichier ZIP fourni.

2.Connectez le XIAO MG24

Utilisez un câble USB pour connecter le XIAO MG24 non réactif à votre ordinateur.

3.Autoriser Bornier Accès

  • Ouvrez les Préférences Système : Allez à Préférences Système sur votre Mac.
  • Accédez à Sécurité et confidentialité : Cliquez sur Sécurité et confidentialitépuis allez à la Confidentialité onglet.
  • Vérifiez l'accessibilité : Sous le Accessibilité section, assurez-vous que Terminal est autorisé à contrôler votre ordinateur.
  • Ajouter le Terminal si nécessaire : Si Terminal n'est pas listé, cliquez sur le bouton + pour l'ajouter manuellement. Sélectionnez Terminal dans votre dossier Applications.

4.Exécutez le script

  • Ouvrir le Terminal.
  • Naviguez jusqu'au dossier extrait en utilisant le cd la commande. Par exemple :
  • Exécutez le script en utilisant ./xiao_mg24_erase.sh.Cela effacera la mémoire flash et réinitialisera l'appareil.

5. Vérifier la récupération

Après l'exécution du script, le XIAO MG24 devrait être restauré et prêt à l'emploi.

Remarque

Si macOS ne reconnaît pas OpenOCD, veuillez vérifier que OpenOCD est installé et que le script utilise le bon chemin. De plus, les scripts fournis sont spécialement conçus pour le XIAO MG24 et ne doivent pas être utilisés avec d'autres modèles XIAO.

Autres informations

FAQ

Y a-t-il des informations détaillées ou des paramètres sur Seeed Studio XIAO MG24 Sense ou Standard ?

 

Barre latérale

Dernier article

Cette section ne contient actuellement aucun contenu. Ajoutez du contenu à cette section en utilisant la barre latérale.

Inscrivez-vous à notre newsletter

Obtenez les dernières informations sur nos produits et offres spéciales.