Alcuni metodi di utilizzo di Seeed Studio XIAO MG24 Sense e Standard

Cosa sono?

Seeed Studio XIAO MG24 e XIAO MG24 Sense sono schede di sviluppo wireless ultra a basso consumo basate su Silicon Labs' EFR32MG24 SoC, dotate di un core ARM Cortex®-M33 ad alte prestazioni da 78MHz ARM Cortex®-M33. Entrambe le schede supportano nativamente Matter® su Thread® e Bluetooth® Low Energy 5.3, supportati dal Core Arduino®, e includono 4MB di Flash, 19 GPIO, LED e un circuito di ricarica. Offrono un consumo di corrente estremamente basso e modalità ultra a basso consumo, rendendole ideali per applicazioni IoT, specialmente per progetti alimentati a batteria che utilizzano i protocolli Matter®. Inoltre, la XIAO MG24 Sense include un microfono analogico integrato e sensori IMU a sei assi, rendendola un'ottima scelta per applicazioni TinyML come il rilevamento della postura. Per maggiori dettagli, clicca qui.

Seeed Studio XIAO MG24 Silicon Labs EFR32MG24 BLE 5.3 1,95μA

Seeed Studio XIAO MG24 Standard

Visualizza prodotto
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Visualizza prodotto

Iniziare

programma di fabbrica semplice

XIAO MG24

La versione Standard include un programma preimpostato di fabbrica chiamato Blink Light. Quando accendi lo XIAO, l'indicatore utente arancione si illuminerà.

XIAO MG24 Sense

Il programma preimpostato di fabbrica nella versione Sense è progettato in modo che più si urla forte, più la luce brillerà intensamente.

Preparazione hardware

  • 1 Seeed Studio XIAO MG24
  • 1 computer
  • 1 cavo USB Type-C
nota: Alcuni cavi USB possono fornire solo alimentazione e non trasferire dati.

Preparazione del software

Per lo XIAO MG24, lo strumento di programmazione suggerito è il Arduino IDE, quindi il primo passo nella preparazione del software è completare l'installazione di Arduino.
  • Passo 1. Scarica e installa la versione stabile di Arduino IDE in base al tuo sistema operativo.
  • Passo 2. Avvia l'applicazione Arduino.
  • Passo 3. Aggiungi il pacchetto scheda XIAO MG24 all'Arduino IDE e clicca OK.
  • Passo 4. Chiudi l'Arduino IDE e riaprilo.

Aggiungi la scheda XIAO MG24

Aggiungi l'URL qui sotto alle preferenze del tuo Arduino IDE.

Scarica il pacchetto scheda XIAO MG24.


Scegli la variante XIAO_MG24.


Inizia il tuo primo programma Blink

  • Passo 1. Avvia l'applicazione Arduino.
  • Passo 2. Vai su File > Esempi > 01.Basics > Blink, apri il programma.
  • Passo 3. Scegli il modello di scheda XIAO MG24 e seleziona il numero di porta appropriato per caricare il programma.

Dopo il caricamento riuscito del programma, vedrai il messaggio di output qui sotto e noterai che il LED arancione sul lato destro dello XIAO MG24 lampeggia.

Uso della batteria

Collegamento e gestione della batteria

Lo XIAO MG24 dispone di un chip di gestione dell'alimentazione integrato che consente di alimentarlo in modo indipendente utilizzando una batteria o di caricare la batteria tramite la porta USB.
Se prevedi di collegare una batteria al XIAO, consigliamo di utilizzare una batteria ricaricabile al litio certificata da 3,7V. Durante la saldatura della batteria, assicurati di identificare correttamente i terminali positivo e negativo. Il terminale negativo deve essere collegato al lato più vicino alla porta USB, mentre il terminale positivo al lato più lontano dalla porta USB.

Visualizzazione dello stato di carica

Abbiamo implementato una spia rossa per mostrare lo stato di carica della batteria, mantenendo gli utenti informati sullo stato attuale durante la ricarica.
  • Senza batteria collegata: La luce rossa si accende quando il cavo Type-C è collegato e si spegne automaticamente dopo 30 secondi.
  • Ricarica con batteria collegata: La luce rossa lampeggia mentre il cavo Type-C carica la batteria.
  • Quando la batteria è completamente carica: La luce rossa si spegne, segnalando il completamento del processo di ricarica.

Altre note

  • Usa batterie qualificate: Usa solo batterie che soddisfano i requisiti specificati.
  • Connessione del cavo dati: L'XIAO può essere collegato al tuo computer tramite un cavo dati mentre funziona a batteria. Puoi stare tranquillo, ha un chip di protezione del circuito integrato per la sicurezza.
  • Indicatore LED: Quando alimentato a batteria, l'XIAO MG24 non mostrerà alcuna luce LED (a meno che tu non l'abbia programmato per farlo). Ti preghiamo di non valutare il funzionamento dell'XIAO MG24 basandoti sullo stato del LED; affidati al tuo programma per una valutazione corretta.
  • Monitoraggio del livello della batteria: Purtroppo, attualmente non possiamo fornire un modo per controllare il livello residuo della batteria tramite software (a causa della mancanza di pin disponibili sul chip). Dovresti caricare regolarmente la batteria o usare un multimetro per monitorarne il livello.

Misurazione della tensione della batteria

Codice software:

 

/*
  AnalogReadSerial

  Legge un ingresso analogico sul pin 0, stampa il risultato sul Monitor Seriale.
  La rappresentazione grafica è disponibile usando il Serial Plotter (menu Strumenti > Serial Plotter).
  Collega il pin centrale di un potenziometro al pin A0, e i pin esterni a +5V e massa.

  Questo codice di esempio è di pubblico dominio.

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

// la routine di setup viene eseguita una volta quando premi reset:
void setup() {
  Serial.begin(115200);
  pinMode(PD3, OUTPUT);
  digitalWrite(PD3, HIGH);
}

void loop() {
  int valoreTensione = analogRead(PD4);
  float tensione = voltageValue * (5.0 / 4095.0);
  
  Serial.print("Tensione: ");
  Serial.print(voltage, 2);
  Serial.println(" V");
  delay(1000);  // ritardo tra le letture per stabilità
}

Mostra risultato

Esempio di Deep Sleep e Sleep

Demo1 Modalità Sleep e risveglio

 


/*
   Esempio di sleep temporizzato con ArduinoLowPower

   L'esempio mostra l'uso base della libreria Arduino Low Power mettendo il dispositivo in sleep per un periodo di tempo.
   Il dispositivo entrerà in modalità sleep per 2000ms. Durante il sonno la CPU è ferma ma la RAM mantiene i suoi contenuti.

   Questo esempio è compatibile con tutte le schede Arduino di Silicon Labs.

   Autore: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Sleep con risveglio temporizzato");
}

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

  Serial.printf("Andando a dormire a %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Risvegliato a %lu\n", millis());
}

Demo2 Modalità Deep Sleep e risveglio

 

/*
   Esempio di deep sleep con ArduinoLowPower con risveglio esterno o temporizzato

   L'esempio mostra l'uso base della libreria Arduino Low Power mettendo il dispositivo in deep sleep.
   Il dispositivo rimarrà in deep sleep finché il timer di sleep non scade.
   Durante il deep sleep l'intero dispositivo è spento tranne un set minimo di periferiche (come la RAM di backup e l'RTC).
   Ciò significa che la CPU è fermata e il contenuto della RAM viene perso - il dispositivo ripartirà dall'inizio dello sketch dopo il risveglio.

   Questo esempio è compatibile con tutte le schede Arduino di Silicon Labs.

   Autore: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Risveglio temporizzato da deep sleep");
}

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

  Serial.printf("Entrando in deep sleep per 10s a %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Modalità Deep Sleep con flash e risveglio

Per abilitare il deep sleep per la flash, devi attivare il registro 0xb9.
 

/*
   Esempio di deep sleep con ArduinoLowPower con risveglio esterno o temporizzato

   L'esempio mostra l'uso base della libreria Arduino Low Power mettendo il dispositivo in deep sleep.
   Il dispositivo rimarrà in deep sleep finché il timer di sleep non scade.
   Durante il deep sleep l'intero dispositivo è spento tranne un set minimo di periferiche (come la RAM di backup e l'RTC).
   Ciò significa che la CPU è fermata e il contenuto della RAM viene perso - il dispositivo ripartirà dall'inizio dello sketch dopo il risveglio.

   Questo esempio è compatibile con tutte le schede Arduino di Silicon Labs.

   Autore: 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("Risveglio temporizzato da deep sleep");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

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

  //Serial.printf("Going to deep sleep for 10s at %lu\n", millis());
  LowPower.deepSleep(600000);
}

Proteggere lo XIAO MG24 dal Brick durante il Deep Sleep

Lo XIAO MG24 di Seeed Studio è una potente scheda microcontrollore, ma gli utenti hanno riscontrato problemi in cui il dispositivo diventa non rispondente ("bricked") dopo essere entrato in modalità Deep Sleep. Questa guida affronta la causa principale, dettaglia un processo di recupero e fornisce consigli per prevenire il brick del tuo XIAO MG24.
Quando lo XIAO MG24 entra in modalità Deep Sleep (EM4) per risparmiare energia, potrebbe non svegliarsi correttamente, bloccando il caricamento di nuovi sketch. A differenza di altre schede XIAO, il MG24 non ha un pulsante BOOT o un metodo chiaramente documentato per entrare in modalità boot, rendendo il recupero più complesso.
Per passaggi dettagliati di recupero, continua a leggere qui sotto.

1.Usa il Pin di Escape (PC0)

Lo XIAO MG24 ha un meccanismo di escape integrato per prevenire il brick. Se PC0 viene portato a LOW durante un reset, il dispositivo entrerà in un ciclo infinito, permettendoti di caricare un nuovo sketch.
  • Connessione: Collega PC0 a GND prima di resettare il dispositivo.
  • Caricamento: Dopo il reset, carica il tuo sketch mentre il dispositivo è nel loop.

2.Modifica il tuo Sketch

Aggiungi il seguente codice al tuo sketch per rilevare un interruttore utente. Se l'interruttore è premuto, il dispositivo entrerà in un ciclo infinito, permettendoti di caricare un nuovo sketch mentre il dispositivo è in loop:
 

#define USER_SW  PC3   // Pin di esempio per l'interruttore utente

void setup() {
  // Altri codici di configurazione...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Abilita il caricamento di un nuovo sketch");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Evita la Modalità Sleep Inutile della Flash

Assicurati che il tuo sketch non metta la memoria flash in modalità sleep (Deep Power Down) a meno che non sia assolutamente necessario. Farlo può prevenire problemi durante il caricamento di nuovi sketch. Mantenere la memoria flash attiva garantisce un processo di caricamento più fluido ed evita potenziali danni irreversibili al dispositivo.

Soluzioni per Accesso e Recupero della Porta Seriale

Soluzioni Windows

1.Scarica il file ZIP fornito.

2.Collega l'XIAO MG24

Usa un cavo USB per collegare l'XIAO MG24 non rispondente al tuo computer.

3.Esegui lo Script

Apri la cartella estratta e trova il flash_erase.bat script.
Fai doppio clic sullo script per eseguirlo. Questo cancellerà la memoria flash e resetterà il dispositivo.

4.Verifica il Recupero

Al termine dello script, il XIAO MG24 dovrebbe essere ripristinato e pronto all'uso.

Soluzioni macOS

1.Scarica il file ZIP fornito.

2.Collega l'XIAO MG24

Usa un cavo USB per collegare l'XIAO MG24 non rispondente al tuo computer.

3.Consenti Terminale Accesso

  • Apri Preferenze di Sistema: Vai a Preferenze di Sistema sul tuo Mac.
  • Vai a Sicurezza e Privacy: Clicca su Sicurezza e Privacy, poi vai a Privacy scheda.
  • Controlla Accessibilità: Sotto il Accessibilità nella sezione, assicurati che il Terminale sia autorizzato a controllare il tuo computer.
  • Aggiungi il Terminale se necessario: se il Terminale non è elencato, clicca sul pulsante + per aggiungerlo manualmente. Seleziona Terminale dalla cartella Applicazioni.

4.Esegui lo Script

  • Apri il Terminale.
  • Naviga nella cartella estratta usando il cd comando. Per esempio:
  • Esegui lo script usando il ./xiao_mg24_erase.sh.Questo cancellerà la memoria flash e resetterà il dispositivo.

5.Verifica il Ripristino

Al termine dello script, il XIAO MG24 dovrebbe essere ripristinato e pronto all'uso.

Nota

Se macOS non riconosce OpenOCD, verifica che OpenOCD sia installato e che lo script utilizzi il percorso corretto. Inoltre, gli script forniti sono specificamente progettati per il XIAO MG24 e non devono essere usati con altri modelli XIAO.

Altre informazioni

Domande frequenti

Ci sono informazioni dettagliate o parametri del Seeed Studio XIAO MG24 Sense o Standard?

 

Barra laterale

Ultimo post

Questa sezione attualmente non include alcun contenuto. Aggiungi contenuti a questa sezione utilizzando la barra laterale.

Iscriviti alla nostra newsletter

Ottieni le ultime informazioni sui nostri prodotti e offerte speciali.