M5Stack×Moddable入門その0~環境構築・シミュレータ起動
マイコンでの電子工作には興味があったものの、C/C++を書くことに苦手意識がありなかなか手が出せていなかったのですが、JavaScriptでも書けることが分かってきたため、この度M5Stack×ModdableでJavasSriptを使った電子工作に挑戦してみたい。
Moddable 選定について
まず今回使用するModdable以外にもobnizやJohnny-Fiveといったプラットフォームを使うことでJavaScriptによるマイコン制御ができるのですが、
obniz
一意のobnizライセンスが付与されたマイコンをインターネット接続することにより、クラウド上よりプログラムの実行が可能。 クラウド経由の実行となるため、環境構築の手間は最も手軽に思われる一方、実行に当たってはマイコンがインターネット接続されていることが前提となってしまうため、マイコン単体で動いてくれないことに微妙さを感じる
Johnny-Five
npmインストールするだけのため、これも環境構築の手間は手軽そうであるが、プログラム実行に当たってはホストマシンと接続しないといけないため、これもまたマイコン単体で動いてくれないことに微妙さを感じる
Modabble
これまでの2つと違ってマイコン単体でも動きそうだし、シミュレータやデバッガもありそうなので、なんとかなりそう。 日本語の情報は少なさそうだが、前述2つも少ないので、頑張って公式のドキュメントやサンプル見るか、という機運
環境構築
公式のGetting Startedを見て進める。
moddable/Moddable SDK - Getting Started.md at public · Moddable-OpenSource/moddable · GitHub
今回はWinows10 HomeをホストPCとして進めました。 やったことは大まかに以下通り。特に嵌りどころも無かった。
- Visual Studio 2019 (Community Editionでよし)をインストール。その時C++のよるデスクトップ開発もインストール。
- Moddableのリポジトリをクローン
- 上記クローン先にパスを通す
- VSのコマンドラインツールでビルドする
- シミュレータが動くようになるので、サンプルのhelloworldを動かす(立ち上がるがコンソールのほうにheloworldと出るだけ。。あまりに面白みがないので"examples\piu\balls"を動かした
Moddableの環境構築でシミュレータ起動まで行ったので、あとはドキュメントでも見てM5Stackの到着を待つ pic.twitter.com/WQSvayxRpd
— STC (@stc1988) 2020年6月28日
次回はM5Stack到着後に。
(2020/06/28 23:00追記)
mcconfig
ビルドやプログラム実行時に打つmcconfig
コマンドについては以下に詳細が記載されているので、軽く読んでおくと何をしようとしてるか分かるので安心。
上記にも記載されているが、$MODDABLE/build
に生成物が格納される。
XSリンカー?がmakeファイルやCファイルを吐いて、コンパイルされていそう
$ ls makefile mc.exp mc.resources.c mc.xs.c modInstrumentation.c.o modTime.c.o modTimer.c.xsi Resource.c.o screen.c.o timer.c.o mc.config.js mc.format.h mc.resources.o mc.xs.h modInstrumentation.c.xsi modTime.c.xsi modTimer.h.xsi Resource.c.xsi screen.c.xsi timer.c.xsi mc.defines.h mc.lib mc.rotation.h mc.xs.o modInstrumentation.h.xsi modTimer.c.o modules/ resources/ screen.h.xsi