micro:bit:Mi:Power – czyli micro:bit zasilany z cr2032 (i biblioteka filesystem)

micro:bit można zasilać z USB, przez gniazdo baterii lub bezpośrednio przez pin 3v. Rozszerzenie Mi:Power wykorzystuje tą ostatnią możliwość. Moduł zasila micro:bit z baterii pastylkowej typu cr2032. Dodatkowo na płytce MiPower umieszczono buzzer – dzięki czemu możecie rozszerzyć możliwości micro:bit o wydawanie dźwięków.

cr2032?!

Pomysł jest ciekawy: zasilić micro:bit z niewielkiej baterii typu cr2032. Nominalne napięcie takich baterii to 3v – czyli takie, jakie można bezpiecznie podłączyć pod micro:bit przez złącze baterii lub pin 3v (stabilizator znajduje się jedynie na linii USB).

Oczywiście niewielka pastylka nie ma pojemności baterii AA. Zależnie od producenta, maksymalna wydajność CR2032 to około 240mA – zakładając rozładowywanie obciążeniem 15kΩ przy 21ºC i spadek napięcia do 2v (cut-off voltage). Obciążenie 15kΩ przy nominalnym napięciu 3v oznacza prąd:
I = U / R
I = 3v / 15000Ω = 0.2 mA = 200uA = 0.2mA = 200 mikro-Amper

spadające do:
I = 2v / 15000Ω = 0.2 mA = 200uA = 0.13mA = 130 mikro-Amper

Tego typu baterie skonstruowano więc raczej do długotrwałego rozładowywania minimalnym prądem. Świetnie sprawdzają się np. do podtrzymywania zegarów RTC, w niewielkich pilotach czy zegarkach.

„Odpoczywający” micro:bit przy 3v potrzebuje ok. 2mA – a pracujący ok. 6mA, świecące LED – to dodatkowe 9mA… Moduł wyposażono dodatkowo w buzzer, który ze swojej natury – również specjalnie „energo-oszczędny” nie jest.

 Czy to dobry pomysł zasilać micro:bit z cr2032? Przetestujmy:)

Mi:Power

Mi:Power pozwala na zasilenie micro:bit z pojedynczej baterii cr2032. Dodatkowo moduł wyposażono w buczek (podłączony do portu P0).

Moduł przykręca się do micro:bit za pomocą 3 śrubek M3 do gniazd P0, 3v i GND:

Obudowa

Do modułu sprzedawana jest też gustowna obudowa. Jeżeli zamierzacie jej użyć, pamiętajcie, żeby łebki śrubek przełożyć od strony pola LED – a nakrętki od Mi:Power

Logowanie wyników: komponent filesystem

Zanim przejdę do testów, przedstawię Wam całkiem ciekawą bibliotekę, którą możecie dodać do swoich programów: filesystem. Biblioteka ta pozwala na tworzenie plików. Możecie w  nich zapisywać dane – np. czas pracy czy stan zmiennych. Takie pliki nie znikają po wyłączeniu zasilania lub po resecie. Usunie je dopiero nadpisanie programu przez nowy (lub wywołanie odpowiedniej funkcji usuwającej plik).

Moduł filesystem jest określony jako eksperymentalny – ale mi zadziałał bez problemu. Dokumentacja wspomina maksymalną wielkość pliku na 30kB.

Żeby dodać obsługę plików do projektu:

  • Kliknijcie przycisk „Add Package”:
  • W polu wyszukiwania wpiszcie „files”:
  • Kliknijcie: „filesystem”.
  • W menu pojawi się nowa grupa files:

Logowanie czasu pracy

Przykladowy szkielet programu do śledzenia aktywności micro:bit.

Po dodaniu modułu filesystem:

  • W on start ustawiam sobie zmienną logFileName; wpisuję w niej nazwę pliku data.txt. Zamiast powielać nazwę w wielu miejscach programu – będę używał zmiennej. Jeżeli zechcę zmienić nazwę pliku – po prostu zmienię wartość zmiennej.
  • Funkcja log() zapisuje do pliku łańcuch z ilością milisekund, która upłynęła od włączenia micro:bit i komentarzem. Jeżeli układ się zresetuje – od razu to zobaczę. Dzięki komentarzowi upewnię się, że to kod uzupełnia plik, a nie trafiają do niego przypadkowe „śmieci”,
  • Funkcja alive() każe zapisać log() komentarz „ping”.
  • Po wciśnięciu klawisza „A” micro:bit wyśle zawartość loga na port szeregowy,
  • Klawisz „B” kasuje plik logu.

Teraz pozostaje rozsądnie zapisywać logi, żeby miejsca starczyło na długo:) Albo krótko…

Testy

Żeby testy były bardziej miarodajne, zamiast baterii załączonej w zestawie – użyłem oryginalnych cr2032 z ikea:)

Program testujący zapala po kolei wszystkie diody na polu LED. Każda dioda zapalana jest z rosnącą jasnością – od 0 do 255 co 50. Dodatkowo, po wciśnięciu klawisza „A” program wypisze czas działania na ekranie – wysyłając jednocześnie zawartość pliku logu na port szeregowy.

Kod:

Powyższy kod podałem w formie źródłowej. Możecie go skopiować i wkleić w edutorze https://makecode.microbit.org/#. Kliknijcie „{} Javascript” i wklejcie kod. Kliknijcie „Blocks” a środowisko „przetłumaczy” go na bloczki… przynajmniej część:)

Wyniki

Na zasilaniu z CR2032 (z powyższym programem) micro:bit zapalał diody przez… 41 godzin i 50 minut! Uzyskany log pokazał, że układ pracował cały czas – bez żadnych resetów. Z czasem jasność diod była mniejsza – ale cały czas zapalały się i czyściły zgodnie z programem.

Początkowe napięcie baterii wyniosło 3.11v. Końcowe – na pinie 3V, jedynie… 1.72v.

Rekomendacja?

Początkowo zasilanie z cr2032 nie wydało mi się specjalnie dobrym pomysłem. Owszem, rozszerzenie ładnie pasuje do micro:bit, skręcone z nią i zapakowane do obudowy stanowi całkiem zgrabną całość.

Ze względu na niewielką pojemność cr2032 liczyłem na max. kilkanaście godzin pracy. Przyznaję – wynik prawie 42 godzin właściwie mnie zaskoczył. Wyobrażam sobie, że zapalając mniej diod z mniejszymi jasnościami może ten wynik poprawić. A rezygnując z używania diod – które konsumują najwięcej mocy – kto wie… Gdyby tak zbudować… No właśnie – macie jakiś pomysł?! Bo ja kilka…

Źródła

  • https://makecode.microbit.org/pkg/microsoft/pxt-filesystem

2 thoughts on “micro:bit:Mi:Power – czyli micro:bit zasilany z cr2032 (i biblioteka filesystem)”

    1. Około 18 godzin. Ale zamierzam powtórzyć doświadczenie – wtedy wziąłem baterię z kompletu (która nie wiadomo ile już miała) i jej nie pomierzyłem.
      Pozdrawiam,
      Arek

Dodaj komentarz

Proszę dodaj swój komentarz. Pamiętaj, żeby nie podawać żadnych danych osobowych.