Moddable Twoを使ってみる(Moddable SDK、Node-RED MCU、ESP32)
はじめに
今回はModdable Twoを使ってみました。Moddableが開発したボードで、ESP32とディスプレイが搭載されています。
Node-RED MCUで使っていましたが、Moddable SDKのサンプルプログラムも試してみました。Moddable SDKはJavaScriptでマイコンのプログラムを作成することができます。
▼実物はこちら。

▼裏面には見慣れたESP32が搭載されています。GPIOピンも側面から出ていますね。

▼電源を供給すると、画面が表示されました。明るさを調整できます。

関連情報
▼販売ページはこちら
https://www.moddable.com/purchase-cart.php
▼公式のハードウェア情報はこちら
https://www.moddable.com/moddable-two.php
▼Moddableのブログページはこちら。活用事例の紹介もあります。
https://www.moddable.com/blog/index
▼HACKberryを動かすサンプルも!電動義手ですね。
https://www.moddable.com/blog/hackberry-bionic-hand/
筐体を設計する
ケースが無くて基板がむき出しの状態だったので、設計して3Dプリンターで出力してみました。
▼他の方が作成されたデータもあります。
https://github.com/jernst/openscad/tree/master/moddable-2-box
▼雑ですがFusion360で設計してみました。


▼裏側はこんな感じ。とりあえず寸法が必要なところだけ用意しました。


▼実際にできたものがこちら。M2のネジでちょうど固定できるような穴の大きさにしています。


環境を構築する
Node-RED MCUの環境を構築したことがある場合はModdable SDKも入っているかと思います。
▼最近のアップデートでESP-IDFのバージョンが変わっています。こちらの記事ではRaspberry Piの環境で新たに構築しています。
他の環境については、Node-RED MCUの書籍と補足書を読むのが分かりやすいと思います。
▼最近発売された補足書には、バージョンアップデートへの対応方法が書かれています。私も執筆させて頂きました。
https://techbookfest.org/product/wwADMShyx2RuB9zjnrUaz0?productVariantID=6v5hDHmdjF9Qv0t8H2KgUj
Moddableのページ
▼Moddable SDKのセットアップについてはこちら
▼ESP32のセットアップについてはこちら
https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp32.md
▼Error: $IDF_PATH not setというエラーが出たのですが、環境変数はこちらのコマンドでセットできるかと思います。私の環境でちゃんとセットされていないような...
export IDF_PATH=$HOME/esp32/esp-idf
Node-RED MCUでプログラムを書き込んでみる
▼ハッカソンで使用しました。こちらをご覧ください。
▼ProtoPediaにも投稿しています。
https://protopedia.net/prototype/4716
▼実際にNode-RED MCUで書き込んだ画面。これはNode-REDのダッシュボード画面が反映されています。ノードを並べるだけで簡単に画面を作ることができます。

Moddable SDKでプログラムを書きこんでみる
BLE Keyboardを試してみる
ここではBluetoothとHID機能を使ったサンプルを試してみます。
▼こちらで紹介されています。
https://www.moddable.com/blog/bleremotes/
まずはHIDホストをビルドしてインストールします。ここに後でmodを追加することで、様々な機能が使えるようになります。
cd $MODDABLE/contributed/ble/hid-peripheral/host
mcconfig -d -m -p esp32/moddable_two
▼ホストをインストールした状態。さらにmodが必要です。

▼以下のコマンドでmodをインストールします。
cd $MODDABLE/contributed/ble/hid-peripheral/mod-media
mcrun -d -m -p esp32/moddable_two
▼インストール後、パソコンに接続してみました。音量の調整ができます。

最後に
Moddable Twoのデザインが結構好きなのですが、日本では販売されていないので持っている方は少ないかもしれないですね。ディスプレイの配線は多くて面倒なので、ボードにまとまっていると便利です。
最近はスタックチャンも触っているのですが、Moddable SDKが使われています。modを追加するようになっていて、実質Moddable SDKの日本語版資料のようになっている気がしています。Node-RED MCUのノードを作成するためにも、詳しく知りたいところです。
▼本当はこちらのサンプルも試していたのですが、画面が表示されていません。Gifを表示できるみたいです。
https://www.moddable.com/blog/giphy/