Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

つい先日の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://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md

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

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

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でボード動かしたいんだよね!みたいな人にはいい技術じゃないんでしょうか?

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

wamisnet
Arduinoで遊んだり、Androidさわったりしてる学生だったもの
https://wamisnet.github.io/
iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした