Některé způsoby použití Seeed Studio XIAO MG24 Sense a Standard

Co jsou zač?

Seeed Studio XIAO MG24 a XIAO MG24 Sense jsou ultra-nízkopříkonové bezdrátové vývojové desky založené na SoC EFR32MG24 od Silicon Labs, vybavené výkonným jádrem 78MHz ARM Cortex®-M33. Obě desky jsou Matter® nativně podporovány přes Thread® a Bluetooth® Low Energy 5.3, podporovány Arduino® Core a obsahují 4MB Flash, 19 GPIO, LED a nabíjecí obvod. Vyznačují se extrémně nízkou spotřebou proudu a ultra-nízkopříkonovými režimy, což je činí ideálními pro IoT aplikace, zejména projekty napájené z baterie využívající protokoly Matter®. Navíc XIAO MG24 Sense obsahuje vestavěný analogový mikrofon a šestiosé IMU senzory, což z něj činí vynikající volbu pro TinyML aplikace jako je detekce držení těla. Pro více informací klikněte prosím zde.

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

Seeed Studio XIAO MG24 Standard

Zobrazit produkt
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Zobrazit produkt

Začínáme

jednoduchý tovární program

XIAO MG24

Verze Standard obsahuje výchozí program nazvaný Blink Light. Po zapnutí XIAO se rozsvítí oranžová uživatelská kontrolka.

XIAO MG24 Sense

Výchozí program ve verzi Sense je navržen tak, že čím hlasitěji křičíte, tím jasněji světlo svítí.

Příprava hardwaru

  • 1 x Seeed Studio XIAO MG24
  • 1 x Počítač
  • 1 x USB Type-C kabel
poznámka: Některé USB kabely mohou pouze napájet a nemohou přenášet data.

Příprava softwaru

Pro XIAO MG24 je doporučeným programovacím nástrojem Arduino IDE, takže prvním krokem v přípravě softwaru je dokončení instalace Arduino.
  • Krok 1. Stáhněte a nainstalujte stabilní verzi Arduino IDE podle vašeho operačního systému.
  • Krok 2. Spusťte aplikaci Arduino.
  • Krok 3. Přidejte balíček desky XIAO MG24 do Arduino IDE a klikněte na OK.
  • Krok 4. Zavřete Arduino IDE a znovu jej otevřete.

Přidejte desku XIAO MG24

Přidejte níže uvedenou URL do nastavení vašeho Arduino IDE.

Stáhněte balíček desky XIAO MG24.


Zvolte variantu XIAO_MG24.


Začněte svůj první program Blink

  • Krok 1. Spusťte aplikaci Arduino.
  • Krok 2. Přejděte na Soubor > Ukázky > 01.Základy > Blink a otevřete program.
  • Krok 3. Vyberte model desky XIAO MG24 a zvolte odpovídající číslo portu pro nahrání programu.

Po úspěšném nahrání programu uvidíte níže výstupní zprávu a všimnete si, že oranžová LED dioda na pravé straně XIAO MG24 bliká.

Využití baterie

Připojení a správa baterie

XIAO MG24 má vestavěný čip pro správu napájení, který umožňuje nezávislé napájení pomocí baterie nebo nabíjení baterie přes USB port.
Pokud plánujete připojit baterii k XIAO, doporučujeme použít certifikovanou 3,7V dobíjecí lithium baterii. Při pájení baterie prosím správně určete kladný a záporný pól. Záporný pól by měl být připojen na stranu nejblíže k USB portu, zatímco kladný pól na stranu nejdále od USB portu.

Zobrazení stavu nabíjení

Zavedli jsme červenou kontrolku, která zobrazuje stav nabíjení baterie, aby uživatelé byli informováni o aktuálním stavu během nabíjení.
  • Bez připojené baterie: Červená kontrolka se rozsvítí při připojení kabelu Type-C a automaticky zhasne po 30 sekundách.
  • Nabíjení s připojenou baterií: Červená kontrolka bliká, zatímco kabel Type-C nabíjí baterii.
  • Když je baterie plně nabitá: Červená kontrolka zhasne, což signalizuje dokončení nabíjení.

Další poznámky

  • Používejte kvalifikované baterie: Používejte pouze baterie, které splňují specifikované požadavky.
  • Připojení datového kabelu: XIAO lze připojit k počítači pomocí datového kabelu i při napájení z baterie. Mějte jistotu, že má vestavěný obvodový ochranný čip pro bezpečnost.
  • LED indikátor: Když je zařízení XIAO MG24 napájeno z baterie, nebudou svítit žádné LED diody (pokud jste je sami nenaprogramovali). Neposuzujte funkčnost XIAO MG24 podle stavu LED; spoléhejte se na svůj program pro správné vyhodnocení.
  • Monitorování úrovně baterie: Bohužel momentálně nemůžeme poskytnout způsob, jak zkontrolovat zbývající úroveň baterie přes software (kvůli nedostatku dostupných pinů čipu). Měli byste baterii pravidelně nabíjet nebo použít multimetr k monitorování úrovně baterie.

Měření napětí baterie

Kód softwaru:

 

/*
  AnalogReadSerial

  Čte analogový vstup na pinu 0, výsledek tiskne do Serial Monitoru.
  Grafické zobrazení je dostupné pomocí Serial Plotter (Nástroje > Serial Plotter).
  Připojte střední pin potenciometru k pinu A0 a vnější piny k +5V a zemi.

  Tento příkladový kód je ve veřejné doméně.

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

// inicializační rutina se spustí jednou po stisknutí resetu:
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("Napětí: ");
  Serial.print(voltage, 2);
  Serial.println(" V");
  delay(1000); // prodleva mezi čteními pro stabilitu
}

Zobrazit výsledek

Příklad hlubokého spánku a spánku

Demo1 Režim spánku a probuzení

 


/*
   Příklad časovaného spánku ArduinoLowPower

   Příklad ukazuje základní použití knihovny Arduino Low Power tím, že zařízení uspí na určitou dobu.
   Zařízení přejde do režimu spánku na 2000 ms. Během spánku je CPU zastaveno, ale RAM si uchovává svůj obsah.

   Tento příklad je kompatibilní se všemi Arduino deskami od Silicon Labs.

   Autor: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Spánek s časovaným probuzením");
}

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

  Serial.printf("Přechod do spánku v čase %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Probuzeno v čase %lu\n", millis());
}

Demo2 Režim hlubokého spánku a probuzení

 

/*
   Příklad hlubokého spánku ArduinoLowPower s externím nebo časovaným probuzením

   Příklad ukazuje základní použití knihovny Arduino Low Power tím, že zařízení uvede do hlubokého spánku.
   Zařízení zůstane v hlubokém spánku, dokud nevyprší časovač spánku.
   Během hlubokého spánku je celé zařízení odpojeno od napájení kromě minimální sady periferií (jako je záložní RAM a RTC).
   To znamená, že CPU je zastaveno a obsah RAM je ztracen – zařízení se po probuzení spustí od začátku sketche.

   Tento příklad je kompatibilní se všemi Arduino deskami od Silicon Labs.

   Autor: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Probuzení z hlubokého spánku s časovačem");
}

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

  Serial.printf("Přechod do hlubokého spánku na 10 s v čase %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 režim hlubokého spánku s flash a probuzením

Pro povolení hlubokého spánku pro flash musíte aktivovat registr 0xb9.
 

/*
   Příklad hlubokého spánku ArduinoLowPower s externím nebo časovaným probuzením

   Příklad ukazuje základní použití knihovny Arduino Low Power tím, že zařízení uvede do hlubokého spánku.
   Zařízení zůstane v hlubokém spánku, dokud nevyprší časovač spánku.
   Během hlubokého spánku je celé zařízení odpojeno od napájení kromě minimální sady periferií (jako je záložní RAM a RTC).
   To znamená, že CPU je zastaveno a obsah RAM je ztracen – zařízení se po probuzení spustí od začátku sketche.

   Tento příklad je kompatibilní se všemi Arduino deskami od Silicon Labs.

   Autor: 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("Časované probuzení z hlubokého spánku");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

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

  //Serial.printf("Přechod do hlubokého spánku na 10 s v čase %lu\n", millis());
  LowPower.deepSleep(600000);
}

Ochrana XIAO MG24 před zablokováním v režimu hlubokého spánku

XIAO MG24 od Seeed Studio je výkonná mikrokontrolérová deska, ale uživatelé narazili na problémy, kdy zařízení přestane reagovat ("zablokuje se") po vstupu do režimu hlubokého spánku. Tento průvodce řeší hlavní příčinu, popisuje proces obnovy a poskytuje tipy, jak zabránit zablokování vašeho XIAO MG24.
Když XIAO MG24 přejde do režimu hlubokého spánku (EM4) pro úsporu energie, může se stát, že se správně neprobudí, což blokuje nahrávání nových skic. Na rozdíl od jiných desek XIAO MG24 nemá tlačítko BOOT ani jasně zdokumentovanou metodu pro vstup do bootovacího režimu, což činí obnovu složitější.
Pro podrobné kroky obnovy pokračujte ve čtení níže.

1. Použijte únikový pin (PC0)

XIAO MG24 má vestavěný únikový mechanismus, který zabraňuje zablokování. Pokud je PC0 během resetu připojen k LOW, zařízení vstoupí do nekonečné smyčky, což vám umožní nahrát nový sketch.
  • Připojení: Před resetem připojte PC0 k GND.
  • Nahrání: Po resetu nahrajte svůj sketch, zatímco je zařízení ve smyčce.

2. Upravte svůj sketch

Přidejte následující kód do svého sketche pro detekci uživatelského spínače. Pokud je spínač stisknutý, zařízení vstoupí do nekonečné smyčky, což vám umožní nahrát nový sketch, zatímco zařízení běží v této smyčce:
 

#define USER_SW  PC3   // Příklad pinu pro uživatelský spínač

void setup() {
  // Další kód pro nastavení...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Povolte nahrání nového sketche");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Zabraňte zbytečnému uspání flash paměti

Ujistěte se, že váš sketch nepřepíná flash paměť do režimu spánku (Deep Power Down), pokud to není nezbytně nutné. Tento režim může způsobit problémy při nahrávání nových sketchů. Aktivní flash paměť zajišťuje hladší proces nahrávání a zabraňuje možnému zablokování zařízení.

Řešení pro přístup k sériovému portu a zotavení

Řešení pro Windows

1.Stáhněte si poskytnutý ZIP soubor.

2.Připojte XIAO MG24

Použijte USB kabel k připojení nereagujícího XIAO MG24 k vašemu počítači.

3.Spustit skript

Otevřete rozbalenou složku a najděte flash_erase.bat skript.
Dvojklikem spusťte skript. Tím se vymaže flash paměť a zařízení se resetuje.

4.Ověření zotavení

Po dokončení skriptu by měl být XIAO MG24 obnoven a připraven k použití.

Řešení pro macOS

1.Stáhněte si poskytnutý ZIP soubor.

2.Připojte XIAO MG24

Použijte USB kabel k připojení nereagujícího XIAO MG24 k vašemu počítači.

3.Povolit Terminál Přístup

  • Otevřete Předvolby systému: Přejděte do Předvolby systému na vašem Macu.
  • Přejděte do Zabezpečení a soukromí: Klikněte na Zabezpečení a soukromí, poté přejděte do Soukromí záložka.
  • Zkontrolujte přístupnost: V části Přístupnost sekce, ujistěte se, že Terminál má povolení ovládat váš počítač.
  • Přidejte Terminál, pokud je to nutné: Pokud není Terminál uveden, klikněte na tlačítko + a přidejte jej ručně. Vyberte Terminál ze složky Aplikace.

4.Spusťte skript

  • Otevřete Terminál.
  • Přejděte do rozbalené složky pomocí cd příkazu. Například:
  • Spusťte skript pomocí ./xiao_mg24_erase.shTímto se vymaže flash paměť a zařízení se resetuje.

5.Ověření obnovení

Po dokončení skriptu by měl být XIAO MG24 obnoven a připraven k použití.

Poznámka

Pokud macOS nerozpozná OpenOCD, ověřte, že je OpenOCD nainstalován a že skript používá správnou cestu. Navíc jsou poskytnuté skripty speciálně přizpůsobeny pro XIAO MG24 a neměly by být používány s jinými modely XIAO.

Další informace

Často kladené otázky

Existují nějaké podrobné informace nebo parametry modelů Seeed Studio XIAO MG24 Sense nebo Standard?

 

Postranní panel

Nejnovější příspěvek

Tato sekce momentálně neobsahuje žádný obsah. Přidejte obsah do této sekce pomocí postranního panelu.

Přihlaste se k odběru našeho newsletteru

Získejte nejnovější informace o našich produktech a speciálních nabídkách.