upyOS na mikrokontrolerach: co to jest, jak działa i jak zapewnić jego nieprzerwaną pracę.

  • upyOS zapewnia warstwę usług na poziomie MicroPython, obejmującą zadania, sieć, logi i uporządkowane uruchamianie.
  • Aby zapewnić stabilność systemu, należy połączyć upyOS z odpowiednio dobranym zasilaczem UPS lub baterią DC.
  • Wybierz pomiędzy UPS-em offline, interaktywnym lub on-line, zależnie od krytyczności i wrażliwości obciążenia.

upyOS dla mikrokontrolerów

Jeśli zastanawiasz się, co to do cholery jest upyOS w świat mikrokontrolerówNie jesteś sam: to pytanie często jest mylone z UPS (zasilaczem awaryjnym). Tutaj znajdziesz jasne wyjaśnienie, czym jest upyOS, jak pasuje do Twoich projektów wbudowanych, a ponieważ pomyłki są powszechne, praktyczny przewodnik, jak go używać. zasilacz awaryjny do płytek typu ESP32, STM32 lub Arduino, z prawdziwymi rekomendacjami zaczerpniętymi ze wspólnych doświadczeń.

Idea jest dwojaka: po pierwsze, należy zrozumieć aspekt „programowy”, jaki oferuje upyOS, a po drugie, nie należy zaniedbywać aspektu „elektrycznego”, ponieważ dobre środowisko uruchomieniowe jest bezużyteczne, jeśli systemy wyłączą się podczas przerwy w dostawie prądu. W dalszej części artykułu zobaczysz Funkcje, architektura, zastosowania i wskazówki dotyczące wdrażania systemu upyOSPonadto zamieściliśmy kompletny blog na temat systemów UPS, obejmujący m.in. ich rodzaje, zalety oraz instrukcję konfiguracji urządzenia zapasowego z baterią 18650 i modułem ładowania, co pozwoli zachować bezpieczeństwo Twoich urządzeń.

Czym jest upyOS dla mikrokontrolerów?

Termin upyOS jest często używany w odniesieniu do lekka warstwa „systemu operacyjnego” na MicroPythonie (port Pythona przeznaczony dla mikrokontrolerów) i jest czasami porównywany do alternatyw, takich jak Spurine, które stosują różne podejścia; który organizuje wykonywanie zadań, timerów, sterowników i zasobów systemowych w wygodny i spójny sposób. Nie jest to monolityczny system operacyjny w stylu desktopowym; pomyśl o upyOS jako Ustrukturyzowane środowisko wykonawcze dodające usługi systemowe do środowiska MicroPython aby uczynić Twoje IoT i aplikacje wbudowane łatwiejszymi w utrzymaniu.

W praktyce upyOS udostępnia narzędzia do planowanie zadań (kooperacyjne), obsługa zdarzeń, timery, abstrakcje peryferyjne i narzędzia inicjujące (uruchamianie usług podczas rozruchu, kolejność ładowania itp.). Przede wszystkim ma to na celu zapewnienie, że programista nie będzie musiał zmagać się z niskopoziomowym klejem w każdym projekcie i będzie mógł go ponownie wykorzystać. komponenty systemu (sieć, pamięć masowa, czujniki) w sposób spójny na wszystkich płytach.

Istotną zaletą dla małych zespołów jest to, że upyOS unika ponownego wyważania otwartych drzwi: ustala konwencje (lokalizacje plików, main/boot, moduły usługowe) i udostępnia narzędzia do zarządzanie cyklem życia aplikacji w urządzenia o ograniczonych zasobachWarstwa ta ułatwia zachowanie porządku w projektach o ograniczonej pamięci i procesorze.

Często stosuje się również typowe codzienne integracje: łączność WiFi/Ethernet, proste klienty i serwery (HTTP/MQTT), zapis dziennikai narzędzia aktualizacji OTA, gdy pozwala na to płyta. W związku z tym podstawa projektu koncentruje się na logice biznesowej i „system” jest ustawiany przez upyOS.

upyOS i mikrokontrolery

Architektura i komponenty upyOS

Na wysokim poziomie można sobie wyobrazić upyOS podzielony na moduły systemowe które zaczynają się w kolejności i udostępniają proste interfejsy API. Chociaż dokładne szczegóły różnią się w zależności od implementacji, zazwyczaj znajdziesz takie elementy jak:

  • Planista/Zadanie:główna pętla z kooperacyjnymi mikrozadaniami, licznikami i wywołaniami zwrotnymi, korzystająca z możliwości MicroPython (i czasami uasyncio) w celu uniknięcia blokad.
  • Zarządzanie urządzeniami:inicjalizacja magistral (I2C, SPI, UART), GPIO, PWM i sterowniki czujników lub siłowników powszechnie stosowane do ponownego wykorzystania w wielu projektach.
  • Czerwony:pomocnicy dla WiFi/Ethernet, DNS, gniazd i typowych protokołów (np. MQTT dla IoT) z automatycznym ponownym połączeniem i trwałymi poświadczeniami.
  • magazynowanie: narzędzia systemu plików (LittleFS/FAT), struktura folderów, dzienniki i parametry oraz ładowanie konfiguracji na początku.
  • Usługi na początku: mechanizm decydujący o tym, które usługi zostaną uruchomione w pliku boot.py i w jaki sposób wykonywanie jest powiązane z plikiem main.py, z minimalna diagnoza (np. miganie diody LED w przypadku awarii).

Ta architektura opiera się na MicroPythonie, co oznacza, że ​​jest przenośny między wieloma rodzinami mikrokontrolerów z dojrzałymi portami: ESP32, STM32, RP2040, między innymi. Warstwa upyOS różni się od klasycznego systemu czasu rzeczywistego (RTOS) tym, że preferuje prostotę i programowanie w Pythonie, w wielu przypadkach poświęcając planowanie wyprzedzające na rzecz planowania kooperatywnego, aby utrzymać niskie zużycie i złożoność.

W typowych zastosowaniach IoT (telemetria, monitorowanie środowiska, automatyzacja oświetlenia) takie podejście jest więcej niż wystarczające: trudny czas rzeczywisty Rzadko jest to konieczne, ale szybkość tworzenia oprogramowania w Pythonie rekompensuje tę konieczność.

Innym wspólnym filarem upyOS jest obserwowalność: system rejestrowania zdarzeń z poziomami (INFO, WARN, ERROR), prostymi znacznikami czasu i miejscami docelowymi plików/numerów seryjnych, które umożliwiają analizowanie incydentów bez konieczności wdrażania zaawansowanych narzędzi. Tym bardziej, jeśli dodasz automatyczne ponowne łączenie się z siecią i kolejki komunikatów w pamięci. tolerować cięcia tymczasowej łączności.

system upyOS dla mikrokontrolerów

Główne cechy i korzyści

Największą atrakcją jest to, że upyOS oferuje wspólna i wielokrotnego użytku baza w przypadku projektów na różnych płytach: na każdym urządzeniu stosujesz tę samą strukturę usług, konfigurację i rozruch, przy minimalnych zmianach specyficznych dla sprzętu.

Do najczęściej pożądanych funkcji praktycznych należą: uporządkowany rozruch (usługi rozruchowe), ponowne łączenie się z siecią z funkcją wycofywania, stabilne timery do pobierania próbek/urządzeń peryferyjnych i haki wyłączające (pozostawiające urządzenia peryferyjne w bezpiecznym stanie, gdy system przejdzie w tryb uśpienia lub uruchomi się ponownie).

Na poziomie produkcyjnym użycie MicroPython i warstwy upyOS drastycznie zmniejsza czas prototypowaniaModuły sieciowe, czujnikowe i trwałości są już na miejscu, więc większość czasu poświęcasz logice (np. polityka przesyłania danych lub konkretna automatyzacja Twojej instalacji).

Kolejną zaletą jest łatwość rozbudowy: jeśli dodasz nowy czujnik przez I2C, wystarczy mały sterownik i zarejestrujesz go w Menedżer urządzeńReszta systemu (zadania, logi, sieć) nawet tego nie zauważa, a Ty kontynuujesz pracę, korzystając ze spójnego interfejsu API.

Na koniec, co nie mniej ważne, upyOS promuje dobre praktyki na urządzeniach o ograniczonych zasobach: uniknąć awarii, rozdziel zadania, korzystaj z timerów, oszczędnie zapisuj dzienniki i utrwal konfigurację w plikach zamiast kompilowania stałych wartości w kodzie.

Funkcje i korzyści upyOS

Zgodność, instalacja i praktyczne zastosowania

Typowa kompatybilność z upyOS jest zgodna z MicroPythonem: ESP32, STM32, RP2040 i innych platform z aktywnym portem. W heterogenicznych flotach przenośność ta oznacza, że ​​ta sama aplikacja (lub bardzo podobna) może działać na wielu płytach, takich jak Zobacz Studio XIAO bez konieczności przebudowy szkieletu systemu.

Wdrożenie jest zazwyczaj proste: wgraj MicroPython na płytkę, skopiuj drzewo plików (boot.py, main.py, foldery usługowe i konfiguracji) i restartu. Jeśli projekt obejmuje sieć, upyOS zazwyczaj najpierw uruchamia uwierzytelnienia i po uzyskaniu adresu IP uruchamia zależne usługi (np. MQTT lub HTTP), zapisując w dzienniku to, co się wydarzyło.

W scenariuszach z życia wziętych wzorce te idealnie pasują do zadań takich jak telemetria LoRa/WiFi, automatyzacja oświetlenia czujniki środowiskowe, sterowanie przekaźnikami, proste bramy i węzły wysyłające dane do chmury. Wielu programistów próbowało kombinacji z ESP32-LoRa, gdzie stos systemowy (upyOS) zarządza siecią, logami i timerami, a Twój kod decyduje tylko co i kiedy post

Praktyczna porada: Nawet jeśli posiadasz tak uporządkowany system operacyjny jak upyOS, nie zapomnij o zaplanowaniu prawidłowego wyłączania urządzenia na wypadek awarii zasilania. Właśnie tutaj z pomocą przychodzi nieprzerwane zasilanie. Poniżej podpowiemy, jak rozwiązać ten problem bez zbędnych problemów.

Instalacja i zgodność upyOS

Nie mylić z UPS-em: nieprzerwanym zasilaniem dla mikrokontrolerów

„UPS” lub „SAI” (po angielsku, Zasilacz awaryjny; w języku hiszpańskim „zasilanie awaryjne” nie jest systemem operacyjnym, lecz sprzęt do tworzenia kopii zapasowych elektrycznych który utrzymuje Twoje urządzenia w działaniu podczas awarii sieci lub anomalii. Jest to kluczowe w scenariuszach IoT, laboratoriach lub zdalnych wdrożeniach, gdzie utrata zasilania oznaczałaby utrata danych lub awarie.

Jak to działa w ogólności: UPS ma wewnętrzne baterie które są ładowane, gdy istnieje sieć, prostownik (przechodzi z prądu przemiennego na prąd stały w celu ładowania), inwestor (zamienia prąd stały z akumulatora na prąd przemienny) i mały mikrokontroler który wykrywa przecięcie i przełącza w milisekundach. Niektóre modele stabilizują również napięcie i filtrują. harmoniczne i szczyty.

Tam trzy główne technologie UPS-y, które należy wyróżnić, aby dokonać dobrego wyboru w zależności od wymagań chronionego sprzętu:

  • Offline (podstawowy):Przełączają się na zasilanie bateryjne, gdy wykryją przerwę w dostawie prądu. Ekonomiczne i skuteczne rozwiązanie dla Komputery PC, systemy podstawowe lub hobbystyczneCzas przezbrojenia jest krótki, akceptowalny w przypadku większości obciążeń niekrytycznych.
  • Linia interaktywna:jak poprzedni, ale z automatyczny regulator napięcia (AVR). Korygują drobne spadki/wzniesienia bez rozładowywania baterii i przełączają się szybciej. Bardzo odpowiednie dla routery, urządzenia NAS lub sprzęt biurowy.
  • Online (podwójna konwersja):Inwerter zawsze zasilany jest z akumulatora/prądu stałego, więc nie ma przełączania okien. Dają „najczystszy” i najbardziej stabilny wynik dla delikatne ładunki (przełączniki, łącza, serwery, instrumentacja). Są droższe i wydajniejsze, ale kosztem większej złożoności.

Praktyczne zalety: UPS pozwala nie tylko na: zapisz i wyłącz bezpiecznie, chroni również przed skokami napięcia, przepięciami i upadkami, wydłużając żywotność sprzętu i obniża koszty konserwacji. W przypadku węzłów wbudowanych zapobiega również uszkodzeniu systemu plików, jeśli awaria zasilania uniemożliwi zapis do pamięci flash urządzenia.

Elementy, o których należy pamiętać przy wyborze UPS-a lub projektowaniu wbudowanego systemu kopii zapasowej: bateria (jej pojemność determinuje autonomię), inwestor (jakość fali i moc wyjściowa), prostownik (nośność) i kontrola energii (czas transferu i zabezpieczenia).

Uwaga, którą wielu pomija: chociaż Arduino są z reguły mało wymagające, ESP (ESP8266/ESP32) Wymagają znacznych szczytów prądu w Wi-Fi/LoRa. Niektóre ładowarki mobilne dostarczają w praktyce mniej prądu, niż deklarują, co skutkuje losowe resetyZawsze sprawdzaj wyniki testów w warunkach rzeczywistych, zanim zaczniesz polegać na etykiecie.

Jeśli pracujesz przy sieci elektrycznej, pamiętaj o bezpieczeństwie: Przy napięciach sieciowych powinni pracować wyłącznie wykwalifikowani specjaliściW przypadku prototypów zasilacz laboratoryjny lub komercyjny UPS znacznie ułatwiają życie, nie narażając się na niepotrzebne ryzyko.

Alternatywa DIY dla mikrokontrolera? Zbudowanie zapasowego układu DC jest stosunkowo proste dzięki Akumulator litowo-jonowy 18650 oraz moduł ładowarki/zabezpieczenia. Akumulator jest ładowany ze stabilnego źródła 5 V, a kontroler wyłącza się w odpowiednim momencie, aby zapobiec przeładowanie i głębokie rozładowanie, a mikrofon pozostaje zasilany podczas cięcia.

Na tych modułach zobaczysz piny oznaczone jako BAT+ i BAT‑ do podłączenia ogniwa i wyjść do płytki (5 V przez USB lub 3,3 V regulowane, w zależności od konstrukcji). Jeśli złącze USB jest bardzo „grube”, nie jest niczym niezwykłym, że trzeba zginać lub dostosowywać starannie fizyczne połączenie w kompaktowych zespołach.

Typowy przebieg testu przełączania polega na zaplanowaniu ESP32 z LoRa i WiFi i wymuś przerwę w dostawie prądu, aby upewnić się, że system nie zrestartuje się i że upyOS będzie kontynuował wykonywanie zadań i ponowne wysyłanie danych po przywróceniu połączenia z siecią. To da Ci pewność przed wdrożeniem.

Wskazówki dotyczące doboru wielkości: Zsumuj moc (W) obciążeń i dodaj margines 20-25%Jeśli masz wartości w amperach, pomnóż je przez napięcie (V), aby oszacować waty. Wybierz czas pracy odpowiednio do swojego przypadku (minuty na płynne wyłączenie lub więcej, jeśli wolisz). ciągłość operacyjna przedłużony).

Rzeczywista autonomia zależy od zużycia i cyklu pracy; jeśli zdecydujesz się na baterie wewnętrzne, pamiętaj, że zwykle wytrzymują one dłużej 3–5 lat Zaleca się okresowe testowanie UPS-a (autotest), aby uniknąć niespodzianek. Niektórzy zalecają okresowe, kontrolowane rozładowywanie, gdy UPS jest używany jako wbudowany UPS. przedłużyć życie i „porusza” chemię komórki.

aplikacje i korzyści w skrócie:

  • Ochrona danych: Zapobiega uszkodzeniu plików i utracie danych telemetrycznych; umożliwia czyste zamknięcie procesów.
  • Jakość dostaw:filtruje skoki napięcia, reguluje napięcie i redukuje szum elektryczny, klucz do wrażliwego sprzętu.
  • Oszczędność:mniej awarii, mniej konserwacji, dłuższa żywotność routerów, przełączników, płyt i urządzeń peryferyjnych.

Oczywiście istnieją również przemysłowe UPS-y o dużej mocy i wysokiej wydajności (> Wydajność 93%. (w niektórych modelach wielokilowatowych) do dużych obciążeń. Do mikrokontrolerów i elektroniki laboratoryjnej, z odpowiednio dobranym zasilaczem liniowym lub małym akumulatorem rezerwowym DC 18650. jesteś obsługiwany w większości przypadków.

Szczegóły praktyczne konfiguracji eksperymentalnej: dzięki modułowym źródłom „mini zasilaczy” możesz zbudować własne wejście prądu przemiennego, jeśli jesteś profesjonalistą i spełniasz wymagania zaciski zabezpieczające przed dotykiem, izolacja i szczeliny powietrzneW pozostałych przypadkach lepszym rozwiązaniem będzie zasilacz laboratoryjny lub komercyjny UPS z wyjściem USB/12 V, a obudowa powinna być zamknięta i nie może być wystawiona na działanie sieci.

I ostatnia rada: nawet jeśli widzisz, że Twój talerz „trzyma”, ważne pod obciążeniem Rzeczywiste (transmisja Wi-Fi, aktywne czujniki, zapis flash). Wiele niestabilności pojawia się tylko przy szczytowym poborze mocy i właśnie wtedy dobrze rozwiązana kopia zapasowa robi ogromną różnicę.

Mając na uwadze powyższe, upyOS porządkuje Cię na poziomie oprogramowania (zadania, usługi, sieć, logi), a kopia zapasowa UPS/DC chroni Cię na poziomie elektrycznym; razem zamieniają one delikatny prototyp w niezawodne urządzenie Gotowy do pracy bez żadnych problemów: zaplanuj swoje usługi za pomocą MicroPython, rejestruj zdarzenia, prawidłowo dostosuj moc obliczeniową i zweryfikuj działanie za pomocą testów przełączania przed wdrożeniem w terenie.

Czym są ARM Cortex-R i Cortex-M?
Podobne artykuł:
ARM Cortex-R i Cortex-M: czym są, różnice i kiedy wybrać który z nich