ESP32 を Arduino 環境で動かす + 追加プログラムでブロックプログラム。
Scratch Look
Scratch のようなもの。
画面はScratch1.4
- 同じ感覚で扱える
- マルチプラットフォーム。
- 最低、 Windows/OSX/Linux 対応
- OSS
- メジャーライセンスが望ましい
ESP32 対応のために
初期化だとかお定まりの処理が、ブロック1つおくと実現できるようにしたい。
- Wi-Fi に接続するブロック
- センサーの値を取得するブロック
- サーバにプッシュするブロック
これを組み合わせて、1分ごとに実行できるようなものがカンタンにできるようになる。
キッズの教材にももちろん、オトナのラピッドプロトタイプにも使えるようにしたい。
候補
- ArduBlock
- mBlock
ArduBlock
本家
http://blog.ardublock.com/
コード
https://github.com/taweili/ardublock
独自に作ったキッズバージョン
-
Arduino IDEへのプラグインの形となる
-
新しいボードについても、Arduino IDE さえ対応できていれば ArduBlock も基本動く
-
ブロック編集ペインにおいて、拡縮できないのが不便
-
ブロックの面積が大きいので、ループが深いとすぐ編集ペインでの見通しがかなり悪くなる。
-
Scratch よりはかなり使い勝手が変わる
-
公式ページが更新されていない。
-
エラーが出てたりリンクが切れてたり
-
紹介するにはツライ
ビルド
別記事に書きました
mBlock
公式ページ
http://www.mblock.cc/
コード
https://github.com/Makeblock-official/mBlock
- ソフトウェアパッケージ内部にArduino開発環境を持っている
- 内部でこれを呼び出しているらしい
- Arduino開発環境のバージョンはは1.6.5
- ボード対応が限られている
- 追加するにはコード変更が必要
- ブロックに写真などはつかない
- ブロックの種類は限られている
- 配列変数などは使えないようだ
- ブロック追加などは Extension を書いて行う
- http://www.mblock.cc/posts/create-extensions-for-mblock
- extension の共有場所
- http://www.mblock.cc/extensions/
- Scratchの使い勝手にかなり近い
ビルド
In Ubuntu 16.04.1 LTS (AMD64).
https://github.com/Makeblock-official/mBlock.
よりversion 4.0 をダウンロード
scratch 2.0 App 版に 機能追加分を electron で作っているらしい。
以下のようにしてビルド
sudo apt install nodejs npm
sudo npm cache clean
sudo npm install n -g
sudo n stable
sudo ln -sf /usr/local/bin/node /usr/bin/node
npm run rebuild-serialport
npm install --save ribuild-hid
npm install --save hid
npm install --save bluetooth
npm install --save electron
npm install --save-dev electron-rebuild
npm install --save-dev node-hid
npm install --save-dev express
起動したが
npm start
ここで止まってしまう
node および npm の version:
$ npm -v
4.2.0
$ node -v
v7.10.0
4.0 は mBlock 4.0.0 for Linux だとか Support (tested in) 64-bit とある。
stable版として 3.4.5 があるがこちらは electron ではなく、Linux などでは動かない感じ。
どちらを選択するか?
ArduBlockを選択した。これは ArduBlock が優れているというよりは、 mBlock の使用に無理があるという理由から。
mBlockの4.0はExtension機能がまだ入っていないので、ブロック追加はソース変更が必要。
mBlock はボード対応が限られている、配列変数が使えない、など、ソースにかなり手を加えることが前提。
ソース触ることができれば mBlock も可能性があるが、現時点でビルドできないので
- トラブルシュート
- ボード対応増やす
- ブロック対応増やす
のは工数かかって得策ではない。