Kick Out the World

技術的なメモとかポエムを書きます。

M5Stack×Moddable入門その0~環境構築・シミュレータ起動

マイコンでの電子工作には興味があったものの、C/C++を書くことに苦手意識がありなかなか手が出せていなかったのですが、JavaScriptでも書けることが分かってきたため、この度M5Stack×ModdableでJavasSriptを使った電子工作に挑戦してみたい。

Moddable 選定について

まず今回使用するModdable以外にもobnizやJohnny-Fiveといったプラットフォームを使うことでJavaScriptによるマイコン制御ができるのですが、

obniz

obniz.io

一意のobnizライセンスが付与されたマイコンをインターネット接続することにより、クラウド上よりプログラムの実行が可能。 クラウド経由の実行となるため、環境構築の手間は最も手軽に思われる一方、実行に当たってはマイコンがインターネット接続されていることが前提となってしまうため、マイコン単体で動いてくれないことに微妙さを感じる

Johnny-Five

johnny-five.io

npmインストールするだけのため、これも環境構築の手間は手軽そうであるが、プログラム実行に当たってはホストマシンと接続しないといけないため、これもまたマイコン単体で動いてくれないことに微妙さを感じる

Modabble

www.moddable.com

これまでの2つと違ってマイコン単体でも動きそうだし、シミュレータやデバッガもありそうなので、なんとかなりそう。 日本語の情報は少なさそうだが、前述2つも少ないので、頑張って公式のドキュメントやサンプル見るか、という機運

環境構築

公式のGetting Startedを見て進める。

moddable/Moddable SDK - Getting Started.md at public · Moddable-OpenSource/moddable · GitHub

今回はWinows10 HomeをホストPCとして進めました。 やったことは大まかに以下通り。特に嵌りどころも無かった。

  1. Visual Studio 2019 (Community Editionでよし)をインストール。その時C++のよるデスクトップ開発もインストール。
  2. Moddableのリポジトリをクローン
  3. 上記クローン先にパスを通す
  4. VSのコマンドラインツールでビルドする
  5. シミュレータが動くようになるので、サンプルのhelloworldを動かす(立ち上がるがコンソールのほうにheloworldと出るだけ。。あまりに面白みがないので"examples\piu\balls"を動かした

次回はM5Stack到着後に。

(2020/06/28 23:00追記)

mcconfig

ビルドやプログラム実行時に打つmcconfigコマンドについては以下に詳細が記載されているので、軽く読んでおくと何をしようとしてるか分かるので安心。

github.com

上記にも記載されているが、$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