【備忘録】M5Stack/Stick-CのMicroPythonでリセットをかけたいとき


MicroPythonでプログラムからリセットをかける

M5Stackを使っている中で,条件分岐でリセットを掛けたくなるタイミングもあるでしょう.
しかし,UIFlowのBlocklyのブロック一覧を見てもリセットのブロックは見当たらない.
そこで,検索してみるとこちらのサイトに記述があった.

リセットはないがリセットと同等のものはある

DeepSleepという節電用(?)の機能がある.
こちらを使用するとメモリの初期化が行われるようである.(少なくとも起動時間はリセットされた.)

deepsleeptest
from m5stack import *
from m5ui import *
from uiflow import *
from time import sleep
import machine

setScreenColor(0x111111)

while True:
  if time.ticks_ms() > 5000:
    machine.deepsleep(10)
  lcd.print((time.ticks_ms()), 0, 0, 0xffffff)
  wait_ms(2)

こちらのサンプルコードをM5Stick-Cで実行すると以下のような動作になる.

これで定期的に再起動してくれるM5のプログラムが書けるね!