🔖
【Raspberry Pi Pico W】lightsleepについて(micropython)
1. はじめに
結論:lightsleepを使うなら、v1.23.0のファームウェアを使おう!!
1.1 この記事について
- Raspberry Pi Pico W(以下、Pico)のlightsleepを使ったサンプルプログラムを記載する
1.2 対象読者
- Picoを使ったことがある
- Thonnyを使ってPicoにプログラムを書き込み・実行ができる
- プログラム言語(特にmicropython)が多少読める、書ける
1.3 動作環境
- PC
- OS:Windows 11 Home
- プログラミング環境:Thonny(v4.1.4)
- Raspberry Pi Pico W
- ファームウェア:v1.23.0 , v1.24.1, v1.25.0-preview.365.g3823aeb0f (2025-03-07)
2. lightsleepについて
- プログラムの処理を一時停止して、省電力状態にする
- lightsleeの場合、RAMと状態が完全に保持され、起床時はそのまま続きのプログラムが実行される
- 指定はmsecのため、1000で1秒のスリープとなる
詳しくはこちら↓
3. 実験
今回は以下の3つのuf2ファイルで検証
- RPI_PICO_W-20240602-v1.23.0.uf2
- RPI_PICO_W-20241129-v1.24.1.uf2
- RPI_PICO_W-20250307-v1.25.0-preview.365.g3823aeb0f.uf2
ファームウェアの入手元はこちら
実行するプログラムは以下の通り
test_lightsleep.py
from machine import Pin, lightsleep
from time import sleep_ms
led = Pin("LED", Pin.OUT) # OnBoard LED
while True:
led.on()
sleep_ms(1000)
led.off()
print("Good Night...")
lightsleep(5000) # 5000msec
print("Good Morning!!!")
for _ in range(6):
led.toggle()
sleep_ms(100)
処理としては、以下の1~3を繰り返すだけ
- LEDを1秒間点灯
- 5秒間lightsleepに入る
- LEDを3回点滅させる
3.1 v1.23.0
正常にlightsleepで5000msec停止したのち、LEDを3回点滅している
3.2 v1.24.1
ligthsleepが一瞬で解除されて、LEDが3回点滅している。不眠症かな?
3.3 v1.25.0
この子も不眠症。最新だから治っているわけではなかった。。。
Z. まとめ
ligthsleepを使う場合は、v1.23.0を使おう!!
Discussion