Wersja Standard zawiera fabrycznie ustawiony program o nazwie Blink Light. Po włączeniu XIAO zapali się pomarańczowy wskaźnik użytkownika.
XIAO MG24 Sense
Fabrycznie ustawiony program w wersji Sense jest zaprojektowany tak, że im głośniej krzyczysz, tym jaśniej świeci światło.
Przygotowanie sprzętu
uwaga: Niektóre kable USB mogą dostarczać tylko zasilanie i nie mogą przesyłać danych.
Przygotowanie oprogramowania
Dla XIAO MG24 sugerowanym narzędziem programistycznym jest
Arduino IDE, więc pierwszym krokiem w przygotowaniu oprogramowania jest ukończenie instalacji Arduino.
-
Krok 1. Pobierz i zainstaluj stabilną wersję Arduino IDE odpowiednią dla Twojego systemu operacyjnego.
-
Krok 2. Uruchom aplikację Arduino.
-
Krok 3. Dodaj pakiet płyty XIAO MG24 do Arduino IDE i kliknij OK.
-
Krok 4. Zamknij Arduino IDE i otwórz je ponownie.
Dodaj płytkę XIAO MG24
Dodaj poniższy adres URL do preferencji swojego Arduino IDE.
Pobierz pakiet płytek XIAO MG24.
Wybierz wariant XIAO_MG24.
Rozpocznij swój pierwszy program Blink
-
Krok 1. Uruchom aplikację Arduino.
-
Krok 2. Przejdź do Plik > Przykłady > 01.Podstawy > Blink, otwórz program.
Po pomyślnym wgraniu programu zobaczysz poniższy komunikat wyjściowy i zauważysz, że pomarańczowa dioda LED po prawej stronie XIAO MG24 miga.
Użytkowanie baterii
Podłączenie i zarządzanie baterią
XIAO MG24 posiada wbudowany układ zarządzania energią, który pozwala na niezależne zasilanie z baterii lub ładowanie baterii przez port USB.
Jeśli planujesz podłączyć baterię do XIAO, zalecamy użycie certyfikowanej, ładowalnej baterii litowej 3,7V. Podczas lutowania baterii upewnij się, że prawidłowo oznaczyłeś bieguny dodatni i ujemny. Biegun ujemny powinien być podłączony do strony bliższej portowi USB, a biegun dodatni do strony dalszej od portu USB.
Wyświetlanie statusu ładowania
Wprowadziliśmy czerwoną diodę wskazującą status ładowania baterii, aby informować użytkowników o aktualnym stanie podczas ładowania.
-
Bez podłączonej baterii: Czerwona dioda zapala się po podłączeniu kabla Type-C i automatycznie gaśnie po 30 sekundach.
-
Ładowanie z podłączoną baterią: Czerwona dioda miga podczas ładowania baterii kablem Type-C.
-
Gdy bateria jest w pełni naładowana: Czerwona dioda gaśnie, sygnalizując zakończenie procesu ładowania.
Inne uwagi
-
Używaj kwalifikowanych baterii: Używaj tylko baterii spełniających określone wymagania.
-
Połączenie kablem danych: XIAO można podłączyć do komputera za pomocą kabla danych podczas pracy na baterii. Zapewniamy, że posiada wbudowany układ zabezpieczający dla bezpieczeństwa.
-
Wskaźnik LED: Gdy urządzenie XIAO MG24 jest zasilane z baterii, nie będzie świecić żadna dioda LED (chyba że zaprogramujesz je inaczej). Prosimy nie oceniać działania XIAO MG24 na podstawie stanu diody LED; polegaj na swoim programie, aby prawidłowo ocenić działanie.
-
Monitorowanie poziomu baterii: Niestety, obecnie nie możemy zapewnić sposobu na sprawdzenie pozostałego poziomu baterii przez oprogramowanie (z powodu braku dostępnych pinów na chipie). Należy regularnie ładować baterię lub używać multimetru do monitorowania poziomu baterii.
Pomiar napięcia baterii
Kod oprogramowania:
/* AnalogReadSerial
Odczytuje analogowe wejście na pinie 0, wyświetla wynik w Monitorze portu szeregowego. Graficzna reprezentacja jest dostępna za pomocą Serial Plotter (menu Narzędzia > Serial Plotter). Podłącz środkową nóżkę potencjometru do pinu A0, a zewnętrzne nóżki do +5V i masy.
Ten przykładowy kod jest w domenie publicznej.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial */
// procedura setup uruchamia się raz po naciśnięciu 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("Napięcie: "); Serial.print(voltage, 2); Serial.println(" V"); delay(1000); // opóźnienie między odczytami dla stabilności }
|
Wyświetl wynik
Przykład głębokiego uśpienia i uśpienia
Demo1 Tryb uśpienia i wybudzanie
/* Przykład uśpienia z użyciem ArduinoLowPower
Przykład pokazuje podstawowe użycie biblioteki Arduino Low Power poprzez uśpienie urządzenia na określony czas. Urządzenie przejdzie w tryb uśpienia na 2000 ms. Podczas uśpienia CPU jest zatrzymany, ale pamięć RAM zachowuje swoją zawartość.
Ten przykład jest kompatybilny ze wszystkimi płytkami Arduino firmy 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("Uśpienie z czasowym wybudzeniem"); }
void loop() { digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE); opóźnienie(500); digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE); opóźnienie(500);
Serial.printf("Przechodzę w uśpienie o %lu\n", millis()); LowPower.sleep(2000); Serial.printf("Wybudzono o %lu\n", millis()); }
|
Demo2 Tryb głębokiego uśpienia i wybudzenie
/* Przykład głębokiego uśpienia ArduinoLowPower z zewnętrznym lub czasowym wybudzeniem
Przykład pokazuje podstawowe użycie biblioteki Arduino Low Power poprzez wprowadzenie urządzenia w głębokie uśpienie. Urządzenie pozostanie w głębokim uśpieniu, dopóki nie wygaśnie timer uśpienia. Podczas głębokiego uśpienia całe urządzenie jest wyłączone z wyjątkiem minimalnego zestawu peryferiów (takich jak pamięć Back-up RAM i RTC). Oznacza to, że procesor jest zatrzymany, a zawartość pamięci RAM zostaje utracona – urządzenie uruchomi się od początku szkicu po wybudzeniu.
Ten przykład jest kompatybilny ze wszystkimi płytkami Arduino firmy 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("Głębokie uśpienie z czasowym wybudzeniem"); }
void loop() { digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE); opóźnienie(500); digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE); opóźnienie(500);
Serial.printf("Przechodzę w głębokie uśpienie na 10s o %lu\n", millis()); LowPower.deepSleep(10000); }
|
Demo3 Tryb głębokiego uśpienia z pamięcią flash i wybudzeniem
Aby włączyć głębokie uśpienie dla pamięci flash, musisz aktywować rejestr 0xb9.
/* Przykład głębokiego uśpienia ArduinoLowPower z zewnętrznym lub czasowym wybudzeniem
Przykład pokazuje podstawowe użycie biblioteki Arduino Low Power poprzez wprowadzenie urządzenia w głębokie uśpienie. Urządzenie pozostanie w głębokim uśpieniu, dopóki nie wygaśnie timer uśpienia. Podczas głębokiego uśpienia całe urządzenie jest wyłączone z wyjątkiem minimalnego zestawu peryferiów (takich jak pamięć Back-up RAM i RTC). Oznacza to, że procesor jest zatrzymany, a zawartość pamięci RAM zostaje utracona – urządzenie uruchomi się od początku szkicu po wybudzeniu.
Ten przykład jest kompatybilny ze wszystkimi płytkami Arduino firmy 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("Wybudzenie z głębokiego uśpienia na czas"); writeEnable(); digitalWrite(CS_PIN, LOW); sendSPI(0xB9); digitalWrite(CS_PIN, HIGH); }
void loop() { delay(12000); digitalWrite(PA7, HIGH); opóźnienie(500);
//Serial.printf("Przechodzę w głębokie uśpienie na 10s o %lu\n", millis()); LowPower.deepSleep(600000); }
|

Ochrona XIAO MG24 przed zablokowaniem podczas głębokiego uśpienia
XIAO MG24 od Seeed Studio to potężna płytka mikrokontrolera, ale użytkownicy napotkali problemy, gdy urządzenie staje się nieodpowiadające („zablokowane”) po wejściu w tryb głębokiego uśpienia. Ten przewodnik wyjaśnia przyczynę, opisuje proces odzyskiwania i podaje wskazówki, jak zapobiec zablokowaniu XIAO MG24.
Gdy XIAO MG24 przechodzi w tryb głębokiego uśpienia (EM4) w celu oszczędzania energii, może nie obudzić się poprawnie, blokując wgrywanie nowych szkiców. W przeciwieństwie do innych płytek XIAO, MG24 nie ma przycisku BOOT ani jasno udokumentowanej metody wejścia w tryb bootowania, co utrudnia odzyskiwanie.
Aby poznać szczegółowe kroki odzyskiwania, czytaj dalej poniżej.
1.Użyj pinu ucieczki (PC0)
XIAO MG24 ma wbudowany mechanizm ucieczki zapobiegający zablokowaniu. Jeśli PC0 zostanie podciągnięty do LOW podczas resetu, urządzenie wejdzie w nieskończoną pętlę, pozwalając na wgranie nowego szkicu.
-
Połączenie: Podłącz PC0 do GND przed zresetowaniem urządzenia.
-
Wgrywanie: Po resecie wgraj szkic, gdy urządzenie jest w pętli.
2.Zmodyfikuj swój szkic
Dodaj następujący kod do swojego szkicu, aby wykryć przełącznik użytkownika. Jeśli przełącznik jest wciśnięty, urządzenie wejdzie w nieskończoną pętlę, umożliwiając wgranie nowego szkicu podczas działania pętli:
#define USER_SW PC3 // Przykładowy pin dla przełącznika użytkownika
void setup() { // Inny kod inicjalizacyjny...
pinMode(USER_SW, INPUT_PULLUP); if (digitalRead(USER_SW) == LOW) { Serial.println("Włącz możliwość wgrania nowego szkicu"); while (true) { digitalWrite(LED_BUILTIN, LOW); delay(50); digitalWrite(LED_BUILTIN, HIGH); delay(50); } } }
|
3.Unikaj niepotrzebnego uśpienia pamięci flash
Upewnij się, że twój szkic nie wprowadza pamięci flash w tryb uśpienia (Deep Power Down), chyba że jest to absolutnie konieczne. Zapobiega to problemom podczas wgrywania nowych szkiców. Utrzymywanie pamięci flash w stanie aktywnym zapewnia płynniejszy proces wgrywania i unika potencjalnego uszkodzenia urządzenia.
Rozwiązania dla dostępu do portu szeregowego i odzyskiwania
Rozwiązania dla Windows
1.Pobierz dostarczony plik ZIP.
2.Podłącz XIAO MG24
Użyj kabla USB, aby podłączyć nieodpowiadający XIAO MG24 do komputera.
3.Uruchom skrypt
Otwórz rozpakowany folder i znajdź flash_erase.bat skrypt.
Kliknij dwukrotnie skrypt, aby go uruchomić. Spowoduje to wymazanie pamięci flash i zresetowanie urządzenia.
4.Weryfikacja odzyskiwania
Po zakończeniu działania skryptu XIAO MG24 powinien zostać przywrócony i być gotowy do użycia.
Rozwiązania dla macOS
1.Pobierz dostarczony plik ZIP.
2.Podłącz XIAO MG24
Użyj kabla USB, aby podłączyć nieodpowiadający XIAO MG24 do komputera.
3.Zezwól Konektor Dostęp
-
Otwórz Preferencje systemowe: Przejdź do Preferencje systemowe na twoim Macu.
-
Przejdź do Bezpieczeństwo i prywatność: kliknij na Bezpieczeństwo i prywatność, następnie przejdź do Prywatność tab.
-
Sprawdź dostępność: w zakładce Dostępność w sekcji, upewnij się, że Terminal ma pozwolenie na kontrolowanie twojego komputera.
-
Dodaj Terminal, jeśli to konieczne: jeśli Terminal nie jest na liście, kliknij przycisk +, aby dodać go ręcznie. Wybierz Terminal z folderu Aplikacje.
4.Uruchom skrypt
5. Zweryfikuj odzyskiwanie
Po zakończeniu działania skryptu XIAO MG24 powinien zostać przywrócony i być gotowy do użycia.
Uwaga
Jeśli macOS nie rozpoznaje OpenOCD, proszę upewnić się, że OpenOCD jest zainstalowany oraz że skrypt używa poprawnej ścieżki. Dodatkowo, dostarczone skrypty są specjalnie dostosowane do XIAO MG24 i nie powinny być używane z innymi modelami XIAO.
Inne informacje
Najczęściej zadawane pytania
Czy są dostępne szczegółowe informacje lub parametry dotyczące Seeed Studio XIAO MG24 Sense lub Standard?