マイコン用ビジュアルプログラミング言語ArduBlock の メニュー構成等の

 の
マイコン用ビジュアルプログラミング言語
メニュー構成等の検討
光永 法明 大阪教育大学
はじめに
ビジュアルプログラミング言語を使うことで,キー
ボード操作に不慣れな児童・生徒も,プログラミングを
楽しむことができる .マイコンマイコンボードなら
びに組み込み向けのビジュアルプログラミング言語と開
発環境としては,レゴマインドストームをはじめ,多く
の教材会社やキットメーカが作成したものがある.しか
し,回路構成の自由度が高く,入手しやすい開発環境は,
それほど多くない.
そのような環境としては
と
図
があげられる. は専用ファームウ
ェアが動作するマイコンで,
を使うとフロー
ている.図
ラムを作成できる. を使うとブロックを組み
はソースコードを
公開した,いわゆるオープンソースで開発が進められて
変えたいときには「見た目」を,音を出したいときには
ブロックを組み合わせてプログラムを作成するプログ
ラミング環境では,言語を構成するブロックを選択,配
置してプログラムを作成する.そのため,文字で記述す
数や命令 !"
など,関
など 等に相当するブロッ
クが多数用意される.多数のブロックの中から目的を達
成するブロックを見つけやすくするには,適切なブロッ
クの分類,配置が必要である.
にあるように,たとえば,キャラクタを
「音」を,マウスによるクリックなどのイベントに反応
おり,今後の発展が期待される.
るプログラミング言語の,キーワード 動かしたいときには「動き」を,キャラクタの見た目を
合わせて, マイコンボードで動作するプログラ
の表示 一部切り抜き
のやりたいことでブロックが分類,メニューが作成され
チャートのようなブロックと矢印の組み合わせでプログ
ムを作成できる.また
& #
$ '(
ではブロックをいくつかのグループに分類
して,メニューに配置している.しかし,グループの分
類(メニュー構成)をみたとき,初心者向けとは必ずし
もいえなかった.そこで, について初心者に
より分かりやすいメニュー構成を検討したので報告する.
させたいときには「イベント」を,繰り返しや条件分岐
などプログラムの流れを制御したいときには「制御」を
クリックすれば,その分類のブロックが表示される.ま
たブロックの色は,メニューの色と統一されていて,同
じ分類のブロックのメニューを探しやすくなっている.
ところで,マイコンを利用した作品で何をしたいかと
いう問をすると,最初の答は光らせたい,音を出したい,
動かしたいといった答になると考える.それができてか
ら,具体的に,点滅させたい,音を変化させたい,動き
を変えたいとなり,さらには外界に反応させたいとなる
のではないだろうか.
一方,最近の (% 年 ( 月 % 日のベータ
版 を見るとブロックは「制御」「ピン」「比べる」「計
算する」
「変数定数」
「ユーティリティー」
「通信」など
に分類されている.この分類はプログラミング言語の構
造を知っていると分かりやすい.たとえば「制御」には
メニュー構成の検討
#
$
%
文
)$
文
文と時間待ちの,
「ピン」には入出力
ピン操作の,
「比べる」には比較演算子と論理演算子に
は子ども向けのプログラミング環境とし
相当のブロックが分類されている.* を点灯するに
て有名であり,多くの子どもたちが利用している 図
. は「ピン」に,音を出すには「ユーティリティー」にあ
はプログラミング言語を教えプログラムを作ら るブロックを使う.どちらかというと,マイコンにでき
せることを目的としておらず,子ども自身が興味を持っ ることを理解してから,必要なブロックを探す必要があ
#
$
て何かを達成しようとすることを実現するためのツー
る.以下では, のブロックの分類を作品を作
ルを目標としている.したがって
る過程を考慮して見直す.
#
$
では,子ども
図
図
&
%&
改変した のメニュー部分
また
ブロックの分類と実装
*
追加したブロックを利用したプログラムの例
の点滅,音の出力,モータの動きといったものが
あると,回路・マイコンの動作が分かりやすい.また作
では
マイコンボードを前提
としているが,ヒダピオシステム
で学んだ生徒に使
+
わせたいという要望に合わせ,"1%% マイコンの
利用を考慮した改変も行った 図
%
. ではピン
単位の操作を簡単にできるようにし,マイコンのポート
りたい作品のイメージを具体化するにも役立つと考える. レジスタを意識せずに済むようになっている.一方,ヒ
自身の経験も含め,初心者のマイコンプログラム 作品 ダピオシステムではポートレジスタを直接操作する.そ
の作成過程は次のようになると考える.
'
作品づくりの最初の段階では,出力に関係するブ
ロックの使い方を覚える.
こでポートレジスタや入出力を決めるレジスタを操作出
来るようにしている.また音の出力について,音階に応
じた周波数を返す定数ブロックと,テンポに応じて音符
の長さから時間を計算するブロックを用意している.
'
つぎに,そういったブロックと時間待ちのブロック
を並べ,オープンループで動作するプログラムを
作る.
%'
繰り返しや,条件分岐,あるいは演算を使って動作
を複雑にする.
まとめ
本論文では,初心者のマイコンプログラムの作成過程
を考慮し,ビジュアルプログラミング言語 の
ブロックの分類を提案して改変を実装した.分類が他の
+'
入力に応じて動作を分岐するプログラムにする.
,'
入力や記憶(変数)を使って計算(演算)をし,動
作を変えるプログラムにする.
-'
ビジュアル言語の参考に,また改変した を
活用いただければ幸いである.
謝辞
デバッグ方法も覚え,さらに発展させていく.
助言と要望をいただいた兵庫県三田市立狭間中学
この仮定に基づいてブロックを, プログラムを構成
校の浅田寿展教諭に感謝する.本研究は
する基本のブロック(基本), デジタル. 出力
,43(+4
5##
科研費
の助成を受けたものである.
(出力),% 音の出力(音),+ プログラムの待ち(いわ
ゆる
/01 2
待つ),, くりかえし・分岐,- デジ
参考文献
タル入力と時刻(入力・時刻),3 変数,算術・論理・
ビット・比較演算(演算),4 非同期シリアル・ 通
語環境' 情報処理
信(通信)に分け,順にメニューに並べ ( 年 3 月ごろ
の を基に実装した 図 .#
$ にならい,
兼宗 阿部 原田& プログラミングが好きになる言
6',( '( 22'74-877, ((7'
& $2&/'
/'9
%
5' .
1 .' :0 ;' :0 ' #69
ブロックとメニューの色を統一し,ブロックを探しやす
くしている.例外としては,形状が同じで区別が必要な,
' 09&
変数,定数と音の長さをテンポから計算するブロックに
ついて,メニューとは別の色分け(値を代入できる変数
"
0' 92' '
6'( '+ 22'-&8-&, (('
はピンク,定数と計算ブロックは赤色, 進数の定数は
暗い赤)をしている.
"$ #
$ 2
99 <
69'
+
ヒダピオシステム&
$2&$
2'=2