MacにTinyPicoKeyを繋ぎっぱなしにしていたら、スリープあけに使えなくなる現象が起きて、しばらく不便していました。
TinyPicoTrioもできたしと重い腰をあげて調べてみたらなんのことはなく、キーボード(あるいはマウス)を初期化する時に、初期化に成功するまで再試行してやればいいだけでした。
import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode from adafruit_hid.mouse import Mouse keyboard = 0 while not keyboard: try: keyboard = Keyboard(usb_hid.devices) except: pass sleep(1)
たぶん、スリープ中か復帰前後のどこかで、デバイスとしては切断しているけれど、単に電源が供給されるタイミングがあるのかもしれません。まあ、このくらいのループで解決するなら良かった。
逆に、初期化に失敗したら再試行せずに、デバイスとしてじゃなくても遊べるモードみたいなのもあったら楽しいかなーと思って、カーソルがランダム移動するだけの拙作クソアプリことうろうろマウスのCircuitPython+Tiny2040版でやってみました。
デバイスとして認識したときは、ボタンを押すとPC上のマウスカーソルがうろつきながら、Tiny2040のLEDもRGB適当に光るのですが、単に電源だけ供給したときでもLEDが光るやつだけはできるようになりました。これで、外でモバイルバッテリーとかにつないで無駄にビカビカ光らして遊べるようになりましたね。
そんなことするか???