LoginSignup
1
0

More than 5 years have passed since last update.

ESP32のためのブロックプログラム(調査中)

Last updated at Posted at 2017-05-25

ESP32 を Arduino 環境で動かす + 追加プログラムでブロックプログラム。

Scratch Look

Scratch のようなもの。

画面はScratch1.4

image

  • 同じ感覚で扱える
  • マルチプラットフォーム。
    • 最低、 Windows/OSX/Linux 対応
  • OSS
    • メジャーライセンスが望ましい

ESP32 対応のために

初期化だとかお定まりの処理が、ブロック1つおくと実現できるようにしたい。

  • Wi-Fi に接続するブロック
  • センサーの値を取得するブロック
  • サーバにプッシュするブロック

これを組み合わせて、1分ごとに実行できるようなものがカンタンにできるようになる。
キッズの教材にももちろん、オトナのラピッドプロトタイプにも使えるようにしたい。

候補

  • ArduBlock
  • mBlock

ArduBlock

本家
http://blog.ardublock.com/
image
コード
https://github.com/taweili/ardublock

独自に作ったキッズバージョン

image

  • Arduino IDEへのプラグインの形となる
  • 新しいボードについても、Arduino IDE さえ対応できていれば ArduBlock も基本動く
  • センサの写真が乗るimage

  • ブロック編集ペインにおいて、拡縮できないのが不便

    • ブロックの面積が大きいので、ループが深いとすぐ編集ペインでの見通しがかなり悪くなる。
  • Scratch よりはかなり使い勝手が変わる

  • 公式ページが更新されていない。

    • エラーが出てたりリンクが切れてたり
    • 紹介するにはツライ

ビルド

別記事に書きました

mBlock

mBot の製品用に開発されたっぽい
image

公式ページ
http://www.mblock.cc/
コード
https://github.com/Makeblock-official/mBlock

Arduinoモードにするとこうなる
image

  • ソフトウェアパッケージ内部にArduino開発環境を持っている
    • 内部でこれを呼び出しているらしい
    • Arduino開発環境のバージョンはは1.6.5
  • ボード対応が限られている
    • image
    • 追加するにはコード変更が必要
  • ブロックに写真などはつかない
    • image
  • ブロックの種類は限られている
  • extension の共有場所
  • 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

ここで止まってしまう

image

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 も可能性があるが、現時点でビルドできないので
- トラブルシュート
- ボード対応増やす
- ブロック対応増やす
のは工数かかって得策ではない。

引き続き、調査中

1
0
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
1
0