Arduinoのプログラミングは、C/C++を学んだことがある人からすると、すんなりと入り込めると思います。しかし、多くの子供はキーボードを打つことさえ難しいのが現状です。そこで、登場するのがScratchのようにブロックを置いてプログラムする方法です。Arduino用にさまざまなツールが開発されていますので、それぞれの特徴について解説します。
なぜビジュアルプログラミング?
初めてプログラミングをする子供に学んで欲しいことは、自分のアイデアを形にして、トライ&エラーを繰り返し、より良いものを作り上げる楽しさです。プログラミングは、それを実現するための手段であり、習得することが目的では有りません。 テキストベースのプログラム を学ぶためには、その前提知識として、「キーボードを打てる」「中学生レベルの英語がわかる」が必要です。その知識がなければ、「キーボードの文字探し」「よくわからない英字の羅列を記憶」というストレスを感じ、その上「コンパイルエラー」で嫌気が差して、2度とプログラミングをやりたくなくなってしまうかもしれません。プログラミングの障壁をできるだけ下げるためには、Scratchのようにブロックをドラッグ&ドロップでビジュアルプログラミングできる環境が必要です。
各種開発環境の比較
開発環境 | 対応OS | ひらがな 対応 | コード 生成 | 動作時の PC接続 | PC画面 と連携 | 更新 頻度 |
ArduBlock | Win, Mac, Linux | ☓ | 有り | 不要 | ☓ | ☓ |
BlocklyDuino | Win, Mac, Linux (Chromeアプリ) | ○ | 有り | 不要 | ☓ | ○ |
S4A | Win, Mac, Linux | ☓ | 無し | 必要 | ○ | ☓ |
Scrattino 3 | Win, Mac | ○ | 無し | 必要 | ○ | ○ |
mBlock | Win, 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ポートを介した通信が含まれます。
<使用手順>
- ArduBlockをダウンロード ( https://github.com/taweili/ardublock )
- Arduino-IDEのtoolsフォルダにファイルを移動。
- Arduino-IDEを起動して、ツールメニューの「ArduBlock」をクリック。
- ブロックを配置して、プログラムを作る。
- 「Arduino」にアップロードをクリック。
BlocklyDuino
BlocklyDuinoは、Googleが作ったBlocklyをベースにして、ArduinoをScratchのようにブロックを並べるだけで、コードを生成してくれます。このツールは、日本人が開発したもので、日本の子供がもっと簡単にArduinoをプログラミングできるようにという思いで作成されたものです。BlocklyDuinoができるまでを説明したスライドが公開されていますので、興味のある方は見てください。
このツールは、chrome拡張機能として提供されています。日本語にはもちろん対応していますが、それだけではなく、ひらがなにも対応しています。現時点の最終更新日は2019年3月なので、ある程度のメンテナンスはされているようです。いくつかのCoderdojoでも利用されているようです。さらに、開発者は Let’s Make With Arduino! というサイトでサンプルコードを公開しています。すばらしい!
<使用方法>
- Chromeストアからインストール ( https://chrome.google.com/webstore/detail/blocklyduino-editor/ohncgafccgdbigbbikgkfbkiebahihmb?hl=ja )
- BlocklyDuinoを起動 (http://code.makewitharduino.com/)。
日本語表示に切り替えたい場合は、右上の歯車をクリックして設定する。 - 「ブロック」タブでプログラムを書く。
サンプルプログラムを使用する場合は、 Let’s Make With Arduino!からコードをコピーする。BlocklyDuino画面右上の▼を押して、インポートをクリックして、ペーストする。 - 「arduino」タブでソースコードをコピーする。
- Arduino-IDEにペーストして書き込む。
S4A
S4Aは、Arduinoにファームウェアを書き込んで、PCと接続して使うことが前提となりますが、Scratchのようにブロックを組み合わせてプログラミングできます。ArduBlockやBlocklyDuinoとは異なり、コードは生成されません。S4Aの最終更新日を見ると、2014年12月となっており、今後の更新はあまり期待できません。しかし、Scratchをベースとしているため、Arduinoでコントローラを作成して、PC画面を制御する作品を作ることができるのが大きな利点です。対応OSは、Windows/Mac/Linuxといった基本OSは抑えており、日本語化もされています。Bluetoothを使えば無線で通信することもできます。
<使用方法>
- S4A公式サイトからS4Aプログラムとファームウェアをダウンロードする。ファームウェアは「Download our firmware from here」と書かれたところにリンクがあります。
- S4Aプログラムをインストールする。
- S4Aを起動すると「Searching board……」と表示されており、まだArduinoが認識できていないことを確認する。
- 先程ダウンロードしたファームウェアを開くと、拡張子「ino」のファイルがあるので、これをArduinoに書き込めば、S4Aプログラムで認識される。
- あとは、Scratchと同じ用にブロックを並べて動かす。
Scrattino
Scrattinoは、Scratchの拡張機能としてArduinoと接続することができます。現在は、Scratch3.0に対応したScrattino3が最新版です。S4Aとは異なり、公式のScratch3.0にあらかじめScrattino拡張機能が組み込まれているので、慣れた画面で手軽に始められます。 対応OSはWinとMacです。Scratchと連携させるために、最初の1回はFirmataというプログラムの書き込みが必要です。 現在の最終更新日は2019年4月なので、今後もメンテナンスは継続されると思われます。
<使用方法>
- Arduino-IDEメニューから、「ファイル->スケッチ例->Firmata->StandardFirmata」を開いて書き込む。
- Scrattino3を公式サイトからダウンロードする。
- Scrattino Desktop.exeを起動し、左下の拡張機能の追加ボタンを押して、「scrattino」をクリックする。
- PCに接続しているArduinoがリストに出てきたら、「接続する」ボタンを押す。
- 接続が完了したら「エディターへ行く」ボタンを押す。
- ブロックを並べてプログラムし、動作させる。
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の画面>
コメントを残す