hogehoge, world.

米国カリフォルニアのソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

M5AtomライブラリのLED機能は使うべからず

前回のM5Stack Atomに関する記事で、LEDマトリクスにフリッカーやジッターが出る、deep sleepするとランダムに光りっぱなしになる、という問題について書いた。何のことはない、M5Atomライブラリが不必要な非同期処理をやっているせいであり、ライブラリを使わずFastLEDを直接叩けば問題はすべて解決した。これでやっとdeep sleepが不安なく使えるようになり、また本体をdeep sleepさせつつLEDは特定のパターンを光らせっぱなしにすることもできるようになった。

コードは概ねこんな感じで。

gist.github.com

M5Atomライブラリには、この残念なLED機能の他に、加速度センサー・ボタン検出・Serial/Wire初期化の各機能が入っているが、加速度センサー機能以外は価値がないどころかむしろ邪魔である。結局のところ加速度センサーが必要なとき以外はライブラリ自体をインクルード&コンパイルしない方が良い。

どうして彼らこんなものを作ってしまったのだろう(笑)。善良な意思、ある種の優しさは感じるのだが、結果的には製品の価値を下げてしまっていると思う。初めて製品を使う人は「中の人が作ったライブラリなのだから自分の知らないノウハウが詰まっているのだろう、使った方がいいのだろう」、うまく動かなければ「自分の使い方が悪いのだろう」と思うわけだから、散々悩んだ挙句ソース真面目に読む⇒(;つД⊂)ゴシゴシ⇒なんじゃこりゃ(゚Д゚)という裏切られ体験は起こさない方がいいと思うのだ。