メインコンテンツへスキップ
見出し画像

M5Paperを家庭内スマホにする

    前史

    M5Stackシリーズの電子ペーパー端末にM5Paperっていうのがあって…いや「あった」んですけど…

    これがねえ、お気に入りなんですよ。RAMもフラッシュメモリも十分あって、画面が広い。タッチ対応。バッテリー内蔵。これで色々作ったわけです。

    ただ、電子ペーパーというのはやはり「表示しっぱなし」の用途に向いています。例えばカレンダー用のM5Paperファームウェアを作ったとしましょう。スタンドに置いておいて、一日一回自動表示更新のカレンダー専用機。…他に作りたいものができたら?

    画像
    左からYahooリアルタイム表示機、RTM表示機、Googleカレンダー表示機

    こういうことになってしまった。いいデバイスなんですけど、放置して表示更新する専用機化してしまうと何台も増えるしタッチ機能もあまり要りません。それだったら…

    タッチ機能がない代わりに大きな電子ペーパーの専用機でいい。こうしてM5Paperの活躍の場は減っていきました…

    しかし2026年になり…Claude Codeくんの力が加わりました。

    画像
    SenseCap IndicatorのYahooニュース表示機とSwitchBot操作機

    このときSenseCap Indicatorのコードを書いてもらい、気付いたわけです。タッチパネル装備機はスマホみたいな複数アプリのランチャー画面を作れば、複数の機能を兼ねられる…

    画像
    ランチャー画面と適当に作ってもらった計算機アプリ

    そう、ちょっと頼んだだけでやってくれるわけですよ。スマホによくある時計アプリとか電卓アプリとかも一発で追加してくれる。

    じゃあM5Paperでだって出来るはずですよ。今まで作ってきた単機能のファームウェアをアプリとして、スマホっぽい画面を作ってもらえば!

    PaperApp

    画像
    スマホっぽくしたM5Paper ホーム画面
    画像
    スマホっぽくしたM5Paper アプリ画面(検閲済み)

    出来ましたね…アイコンはClaude Codeくんが基本図形の描画関数を使ってコードで描いているのでシンプルですが、そこは追い追い。どういうアプリがあるか紹介していきましょう。

    カレンダー&天気

    画像
    カレンダーアプリ(検閲済み)と天気アプリ(東京の予報)

    カレンダーアプリは今まで散々作ってきたGoogleカレンダー表示、天気アプリは他の電子ペーパーデバイス用に作った気象庁の予報表示コードから作ってもらいました。

    時計&SwitchBot

    画像
    時計アプリとSwitchBot操作アプリ

    時計アプリはClaude Codeくんにアナログ時計を表示する画面を作って、と頼んだだけです。NTP同期機能もついています。SwitchBotアプリはSenseCap Indicator用のコードから移植してもらいました。

    なので画面に合わせてちょっと縦長になってますけど、まあいいか…

    タスク管理&計算機

    画像
    タスク管理アプリ(検閲済み)と計算機アプリ

    タスク管理アプリは、これもClaude Codeくんに頼んでRaspberry Pi 4上に構築した自分用のタスク管理アプリの内容を表示します。Webブラウザやスマホアプリからは編集もできますが、M5Paper用には表示と完了操作だけできるようにしています。計算機アプリはスマホっぽくしようとしてつけただけです。

    トレンド&Poodle

    画像
    トレンドアプリはYahooリアルタイム検索でバズっているワードを表示、PoodleはWordleのクローンです。

    以前単体で作ったM5Paper用のトレンドワード表示機と無限Wordleマシンもアプリ化しました。これで暇つぶしにも対応できます。

    設定&メモ

    画像
    設定アプリ(検閲済み)とメモアプリ(英語のみ)

    基本的に設定はSDカードに入れたテキストファイルを読み込む形で行っています。ただ外出先でWiFiに接続する場面がもしかしたらあるかもしれないので、一応WiFi設定機能があります。Wordleアプリを参考にキーボード機能を作ってもらい、そのテスト用としてメモアプリを置いています。

    OTA更新機能

    設定アプリにはソフトウェアアップデート機能がついています。これはESP32のOTA(Over The Air)、つまり無線経由のファームウェア更新機能を利用してClaude Codeくんに作ってもらったもので、Raspberry Pi上に置いたマニフェストファイルを読んでバイナリをダウンロード、ファームウェアを書き換えて再起動します。

    Claude Codeくんが偉いのは、このファームウェアのデプロイ機能まで完璧に作ってくれたことです。Claude Codeくんが書いたシェルスクリプトを実行するとPlatform IOでビルド、バイナリをアップロード、マニフェストファイルの作成とアップロードを全部やってくれます。

    なぜOTA更新が必要なのでしょうか?それはM5Paperが複数台あるからです。以前はカレンダーならカレンダー専用のM5Paperがありました。でも今は、どのM5Paperもカレンダーにもなればタスク管理にも、SwitchBot操作マシンにもなるわけです。家の中に散らばったM5Paperが常に何にでもなれるようにしておくために、ファームウェアは統一しなければなりません。

    スリープ中画面更新機能

    画像
    時計アプリ、タスク管理アプリ(検閲済み)、天気アプリ、SwitchBotアプリ
    (あとカレンダーアプリにも)これらにはスリープ中更新機能があります

    M5Paperがスマホと異なるのは、スクリーンが電子ペーパーであるところです。まあ世の中には電子ペーパースマホもあるんですけど。電子ペーパーのいいところは、消費電力ゼロで表示を維持できること。なので、これらPaperAppは5分間操作がないとスリープするようになっているのですが…それぞれスリープ中でも定期的に画面を更新するようになっています。

    更新間隔はアプリごとに違っていて、時計アプリ、タスク管理アプリ、SwitchBotアプリは1時間ごとに一瞬復帰して画面を更新します。天気予報は3時間ごと。カレンダーは一日ごと。このようにすることで、家の各所に散らばってそれぞれの内容を表示しているM5Paperは、操作されない間もある程度最新の情報に更新されます。

    ホーム画面のカレンダーアプリと時計アプリのアイコンも、スマホ同様に更新されています。放置されている機体の日付アイコンが以前スリープした日付のままでもアレなので、ホーム画面のままスリープした場合も一日ごとに一瞬復帰して画面を更新しています。

    未来へ…

    M5Paperはディスコンらしいんですよね。でもこういう電子ペーパー+タッチ操作で自由にアプリが作れるデバイスとしては、すごくいい機体だったと思っているので…維持していきたい。バッテリーがへたってきた機体や画面の表面が浮いてきた機体があるんですが…

    今回作ったものってキッズスマホみたいなやつですよね。タッチパネル装備のESP32デバイスさえあればAIが自分専用のキッズスマホを作ってくれる。これはなかなか楽しいですよ…


    あなたへのおすすめ