27
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IoTLTAdvent Calendar 2018

Day 11

ESP32でJavaScriptが動くModdable SDKさわってみた

Posted at

つい先日のIoTLT名古屋で発表したModdable SDKの話をしていこうと思います。

この技術でESP32やESP8266でJavaScriptが動かせるようになります!さっそく説明していこうと思います。

Moddable SDK

ESP32やESP8266でJavaScriptが動かせるSDKになります。(NefryBTで動作確認しました)

GitHubでオープンソースで開発が進められています。
https://github.com/Moddable-OpenSource/moddable/

似たようなものにObnizがありますが、おそらくアプローチは別だと思います。

ESP32、ESP8266

ものすごく簡単にまとめます。

500円程度で購入することができるWiFiモジュールです。
WiFiが使えるためIoTデバイスとして使用できます。

ESP8266とESP32の違いはBLEを使えるか使えないかが大きな違いです。ESP32がBLEを使用できます。

Moddable SDKの環境構築

上記のリンクから開発環境を構築できます。

手順が多く少々めんどくさいですが、特段難しいことはないので上記を参考にしてください。

https://make.kosakalab.com/make/electronic-work/moddable-sdk_build_how-to
こちらの方がきれいにまとめられているので悩んだらこちらを参照してください。

動かしてみる

環境構築ができたら、「Hello, world - sample」と表示するサンプルプログラムを動かしてみましょう。
2018-12-09_11h16_09.png

デバッガーが起動して、変数の確認やブレイクポイント貼ってプログラムを試すことができます。

ポートなどの設定をしたあとにmcconfig -d -m -p esp32を実行するとESP32でHello worldという処理を実行することができました。

次のステップでLチカもサンプルプログラムみるとこんな感じで実行してLEDをそのピンにつけるとLチカしてくれます!

import Timer from "timer";
import Digital from "pins/digital";

// blinks the two LEDs on ESP8266 NodeMCU boards
// blinks only blue LED on ESP32 Node<MCU boards (pin 2).

let count = 0;
Timer.repeat(() => {
	trace(`repeat ${++count} \n`);
	Digital.write(2, ~count & 1);
	Digital.write(16, count & 1);
}, 200);

引用:https://github.com/Moddable-OpenSource/moddable/blob/public/examples/pins/blink/main.js

ドキュメントをよむ

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/pins/pins.md
デジタル入出力やI2C、SPIなど一通りのピン制御ができます。

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/network/ble/ble.md
BLEなんかもサポートしててわりとよさげです!

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/network/network.md#class-wifi
もちろんWiFiもつながります!

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/drivers/ssd1306/ssd1306.md
NefryBTでつながるDisplayのライブラリもあるみたいですね!

まとめ

Obnizちょっと高いなとかESP32余らしてるんだよなとかちゃんとJavaScriptでボード動かしたいんだよね!みたいな人にはいい技術じゃないんでしょうか?

初めの環境構築がちょっとめんどくさいとこだけ乗り越えたら遊べるのでぜひ一度遊んでみてください!

27
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?