Arduinoをビジュアルプログラミングする ~ Ardublock, BlocklyDuino, S4A, Scrattino, mBlock ~

Arduinoをビジュアルプログラミングする ~ Ardublock, BlocklyDuino, S4A, Scrattino, mBlock ~

Arduinoのプログラミングは、C/C++を学んだことがある人からすると、すんなりと入り込めると思います。しかし、多くの子供はキーボードを打つことさえ難しいのが現状です。そこで、登場するのがScratchのようにブロックを置いてプログラムする方法です。Arduino用にさまざまなツールが開発されていますので、それぞれの特徴について解説します。

なぜビジュアルプログラミング?

 初めてプログラミングをする子供に学んで欲しいことは、自分のアイデアを形にして、トライ&エラーを繰り返し、より良いものを作り上げる楽しさです。プログラミングは、それを実現するための手段であり、習得することが目的では有りません。 テキストベースのプログラム を学ぶためには、その前提知識として、「キーボードを打てる」「中学生レベルの英語がわかる」が必要です。その知識がなければ、「キーボードの文字探し」「よくわからない英字の羅列を記憶」というストレスを感じ、その上「コンパイルエラー」で嫌気が差して、2度とプログラミングをやりたくなくなってしまうかもしれません。プログラミングの障壁をできるだけ下げるためには、Scratchのようにブロックをドラッグ&ドロップでビジュアルプログラミングできる環境が必要です。

各種開発環境の比較

開発環境対応OSひらがな
対応
コード
生成
動作時の
PC接続
PC画面
と連携
更新
頻度
ArduBlockWin, Mac, Linux有り不要
BlocklyDuinoWin, Mac, Linux
(Chromeアプリ)
有り不要
S4AWin, Mac, Linux無し必要
Scrattino 3Win, Mac無し必要
mBlockWin, Mac,
iOS, Android
有り不要

ArduBlock

ArduBlockは、Arduinoのコード生成を手助けするツールです。使用環境の準備は簡単で、 ArduBlockをダウンロードして 、普段使用しているArduino-IDEのtoolsフォルダに移動させるだけです。これだけで、ブロックをドラッグ&ドロップして、コードを生成することができます。 ブロックは日本語化されていますが、一部のブロックは英語表記が残っています。また、ひらがな対応はしていないため、小学校低学年だと一人で操作するのは難しいかもしれません。 ArduBlockの最新版の日付を見ると、2017年12月となっているため、今後の更新はあまり期待できません。

<各ブロックの説明>

  • 制御: プログラムの論理フローを決定します。ブロックには、delay、loop、while、if / elseなどの構造が含まれます。
  • ピン: Arduino側のピンを制御します。デジタル・アナログ、プルアップ、PWMなどが設定できます。
  • テスト:  数値の大小関係の比較や、ANDやORが含まれます。
  • 計算する:  加減乗除の数学演算、絶対値、三角関数などが含まれます。
  • 変数/定数: さまざまなタイプの変数(整数、浮動小数点、文字)が含まれます。
  • Generic Hardware: サーボ、超音波センサ、LCDなどのよく利用されるモジュール制御が含まれます。
  • 通信: シリアルまたはI2Cポートを介した通信が含まれます。

<使用手順>

  1. ArduBlockをダウンロード ( https://github.com/taweili/ardublock
  2. Arduino-IDEのtoolsフォルダにファイルを移動。
  3. Arduino-IDEを起動して、ツールメニューの「ArduBlock」をクリック。
  4. ブロックを配置して、プログラムを作る。
  5. 「Arduino」にアップロードをクリック。

BlocklyDuino

 BlocklyDuinoは、Googleが作ったBlocklyをベースにして、ArduinoをScratchのようにブロックを並べるだけで、コードを生成してくれます。このツールは、日本人が開発したもので、日本の子供がもっと簡単にArduinoをプログラミングできるようにという思いで作成されたものです。BlocklyDuinoができるまでを説明したスライドが公開されていますので、興味のある方は見てください。
 このツールは、chrome拡張機能として提供されています。日本語にはもちろん対応していますが、それだけではなく、ひらがなにも対応しています。現時点の最終更新日は2019年3月なので、ある程度のメンテナンスはされているようです。いくつかのCoderdojoでも利用されているようです。さらに、開発者は Let’s Make With Arduino! というサイトでサンプルコードを公開しています。すばらしい!

<使用方法>

  1. Chromeストアからインストール ( https://chrome.google.com/webstore/detail/blocklyduino-editor/ohncgafccgdbigbbikgkfbkiebahihmb?hl=ja )
  2. BlocklyDuinoを起動 (http://code.makewitharduino.com/)。
    日本語表示に切り替えたい場合は、右上の歯車をクリックして設定する。
  3. 「ブロック」タブでプログラムを書く。
    サンプルプログラムを使用する場合は、 Let’s Make With Arduino!からコードをコピーする。BlocklyDuino画面右上の▼を押して、インポートをクリックして、ペーストする。
  4. 「arduino」タブでソースコードをコピーする。
  5. Arduino-IDEにペーストして書き込む。

S4A

S4Aは、Arduinoにファームウェアを書き込んで、PCと接続して使うことが前提となりますが、Scratchのようにブロックを組み合わせてプログラミングできます。ArduBlockやBlocklyDuinoとは異なり、コードは生成されません。S4Aの最終更新日を見ると、2014年12月となっており、今後の更新はあまり期待できません。しかし、Scratchをベースとしているため、Arduinoでコントローラを作成して、PC画面を制御する作品を作ることができるのが大きな利点です。対応OSは、Windows/Mac/Linuxといった基本OSは抑えており、日本語化もされています。Bluetoothを使えば無線で通信することもできます。

<使用方法>

  1. S4A公式サイトからS4Aプログラムとファームウェアをダウンロードする。ファームウェアは「Download our firmware from here」と書かれたところにリンクがあります。
  2. S4Aプログラムをインストールする。
  3. S4Aを起動すると「Searching board……」と表示されており、まだArduinoが認識できていないことを確認する。
  4. 先程ダウンロードしたファームウェアを開くと、拡張子「ino」のファイルがあるので、これをArduinoに書き込めば、S4Aプログラムで認識される。
  5. あとは、Scratchと同じ用にブロックを並べて動かす。

Scrattino

Scrattinoは、Scratchの拡張機能としてArduinoと接続することができます。現在は、Scratch3.0に対応したScrattino3が最新版です。S4Aとは異なり、公式のScratch3.0にあらかじめScrattino拡張機能が組み込まれているので、慣れた画面で手軽に始められます。 対応OSはWinとMacです。Scratchと連携させるために、最初の1回はFirmataというプログラムの書き込みが必要です。 現在の最終更新日は2019年4月なので、今後もメンテナンスは継続されると思われます。

<使用方法>

  1. Arduino-IDEメニューから、「ファイル->スケッチ例->Firmata->StandardFirmata」を開いて書き込む。
  2. Scrattino3を公式サイトからダウンロードする。
  3. Scrattino Desktop.exeを起動し、左下の拡張機能の追加ボタンを押して、「scrattino」をクリックする。
  4. PCに接続しているArduinoがリストに出てきたら、「接続する」ボタンを押す。
  5. 接続が完了したら「エディターへ行く」ボタンを押す。
  6. ブロックを並べてプログラムし、動作させる。

mBlock

mBlockは、Makeblock社が開発した言語で、Scratchをベースにしています。MakeBlock社は、プログラミング教育用に「mBot」「mTiny」「Codey Rocky」などの製品を販売しています。mBlockはこれらの製品をプログラムするために特化した言語です。「Arduino Uno」や「Arduino mega2560」もプログラムできるようですが、使用できるブロックは少なく、融通が利かない感じがします。しかし、対応OSは多彩(Windows, Mac, iOS, Android)です。現在(2019年12月時点)対応しているデバイスは下記のとおりです。

<MakeBlock社製品>

<その他製品>

試しにWindows版をインストールしたところ、その手順は簡単で、迷うところはありませんでした。ユーザーインターフェースは見やすく、日本語対応しており、ひらがな対応もしていますので、小学校低学年でも一人で操作できそうです。

<mBlockの一般画面>

<mBlockのインストール画面>

<mBotの画面>

<Arduino mega2560の画面>

Arduino番外編カテゴリの最新記事