...

関数定義機能などを拡張した Arduino 用タイルプログラミング教材

by user

on
Category: Documents
19

views

Report

Comments

Transcript

関数定義機能などを拡張した Arduino 用タイルプログラミング教材
関数定義機能などを拡張した Arduino 用タイルプログラミング教材
中川 洋
中西 通雄
Nakagawa Hiroshi
Michio Nakanishi
大阪工業大学 情報科学部 コンピュータ科学科
Department of Computer Science, Faculty of Information Science and Technology, Osaka Institute of Technology
Email: [email protected]
あらまし:2012 年度から「プログラムによる計測・制御」が中学校の技術・家庭科の学習指導要領に
組み入れられた。この教材として作成されたタイルプログラミング教材「Arduino を利用したプログラ
ミング学習教材 Eduino」をもとにして、関数を定義する機能、モータを制御する機能、センサの値に
よって制御を分岐させる機能を追加した。
キーワード:Eduino,関数,Arduino
1.
はじめに
2.
類似研究
2012 年度から中学校の技術・家庭科の技術分野に
「プログラムによる計測・制御」が組み入れられた。
そこで本研究室では、昨年度にプログラムによる計
測・制御を行うためのハードウェアと、プログラミ
ング学習をするためのソフトウェアのセット
「Eduino」を開発した。この研究の評価として「も
う少し難しい操作もしてみたい」という意見があり、
他にもセンサーカーやロボットを動かせるようにす
る、という課題があった。
類似研究として「計測学習を取り入れたロボット制
御教材の開発」及び「プログラムによる計測と制御
の仕組みを学ぶための学習支援ソフトウェア」が挙
げられる[1][2]。
[1]は MYU ロボとドリトルを使用してフィードバ
ック制御を学ばせるような研究をしており、計測し
たデータをグラフに表示する。日本語でプログラミ
ングできるが、プログラムの中に同じ制御があると、
また、同じプログラムを入力しなければならない。
[2]では Arduino、CLCD-BOOSTER と初心者向け
プログラミング学習教材 PEN を用いている。PEN
には、プログラム入力支援ボタンがあり、初心者で
も プ ロ グ ラ ミ ン グ で き る 。 CLCD-BOOSTER は
Arduino 専用シールドであり、文字 LCD、LED、ス
イッチ、温度・光センサといった、入出力装置がつ
いているが、制御する対象にはモータのような動く
ものは実装されていない。
3.
図1
図 1 は Eduin メイン画面である。画面左側のボタ
ンをクリックして、目的に応じたタイルを右側画面
に生成する。生成したタイルをマウス操作で組み合
わせることで、プログラミングを行う。タイルの組
み立てを終えた後、作成したプログラムをコンパイ
ルし、Eduino にアップロードを行うことでプログラ
ムの実行結果を確認できる。
Eduino のハードウェアは、Arduino が持つ入出力
ポートとして学習者が利用することを想定した電子
部品(7 セグメント LED、スイッチ、可変抵抗、温度
センサ、光センサの 5 種類)を予め実装しており、
Arduino 互換である(図 2)。
図2
Eduino
Eduino は、2011 年度に当時4年生の桐畑鷹輔と主
原佑記が作成したものである。
Eduino のソフトウェアは Arduino を制御するため
の総合開発環境 Arduino IDE に、タイルプログラミ
ングできるよう機能追加されている。
Eduino メイン画面
4.
Eduino 用マイコンボード
開発
4.1 設計方針
Eduino の評価結果では、もう少し複雑な操作をで
きるようにしたいという意見があった。そこで、本
研究では、ソフトウェアに(1)センサの値から制御の
流れを分岐する機能、(2)モータを制御する機能、(3)
関数を定義する機能を追加したタイルを開発する。
一方、ハードウェアに関しては標準の Arduino を用
いた。Arduino を搭載した車を動かせるようにする
ため、モータの制御を追加する。さらに、センサー
カーのようにモータを制御しながら LED、光センサ、
温度センサも制御をできるようにした。
ってもらった後、アンケートを採った。
5.2 評価結果
図 5 はソフトウェアについてアンケートを採った
結果である。グラフの横軸は人数である。
4.2 ソフトウェア
開発したタイルを図 3 に示す。
図5
図3
生成したタイル
左から順に、(1)センサの値から制御の流れを分岐
する、(2)モータを制御する、(3)関数を定義する機能
を追加したタイルである。
(1) は、値によって制御の流れを変えることがで
きればより複雑な制御をできると考えた為。(2)は、
動きを制御できものを追加したいと考えた為。(3)
は、二重の繰り返し文など、複雑な制御をあらかじ
め関数定義タイルに格納しておくことで、プログラ
ムが苦手な人でも制御を行うことができる。また、
何回も同じ制御を作成する手間を省くことができる。
例えば、ライントレーサーの場合、センサから取
り出した値によって車の進行方向を操作する。車の
進行方向を操作する関数を定義しておくことで、簡
単にライントレーサーができる。
4.3 ハードウェア
機材は標準の Arduino と 4MOTORS Shield を使用
した(図 4)。これは、
シールドに対応した
ハードウェアを基盤
から開発することは
図 4 4MOTORS Shield
時間的に難しいと考
えたからである。
4MOTORS Shield を
用いることによって、
図 4 4MOTORS Shields
モータを制御しながら
LED、光センサを制御できる。他にも、モータを使
用せず、7 セグメント LED など、モータを制御する
ピンで他の制御もする場合でも、モータードライバ
を外さずに、出力を切り替えることができる。
5.
評価
本稿執筆の時点では、大学理系 4 年生 5 人と文系
4 年生 1 人を被験者として評価を行った。
5.1 評価方法
口頭で説明を行った後、被験者にプログラムを使
アンケート
「プログラムを知らなくても、マイコンを制御で
きることは面白い」、
「ソフトウェアに対してほとん
どマウスでの操作だったので、使いやすいし、修正
も簡単」といった意見を得た。
6.
今後の課題
中学、高校生向けの教材として開発しているので、
中高生を被験者として評価することが必要である。
関数定義タイルに関しては、関数を定義した後も
タイルの中身が全て表示されたままなので、定義し
た後のタイルはタイル1つ分の大きさに縮小表示し、
定義したタイルを変更したいときのみ全体を表示で
きるようにしていきたい。
また、今回使用した器材の部品価格合計は約 9000
円で、Eduino の 3 倍以上の価格である。今後、使用
していない部品を減らすなどして、半分以下の価格
に抑えることを目指す。
7.
謝辞
本研究を進めるにあたり、相談に乗っていただき
ました OB の主原佑記氏(現在、大阪市立大学大学院
創造都市研究科在学中)と桐畑鷹輔氏(現在、島津エ
ス・ディー株式会社)に感謝いたします。また、本
研究の一部は、科学研究費補助金(23501163、代表:
大阪市立大学松浦敏雄)の助成を受けました。
参考文献
[1] 紅林秀治, 室伏春樹, 樋口大輔, 江口啓, 「計測
学習を取り入れたロボット制御教材の開発」日本産
業技術教育学会誌, 52, 3, pp.159-167, 2010,
http://hdl.handle.net/10297/5299
[2] 松浦敏雄, 中村亮太, Liu Lu, Chan Myae THU, 西
田知博, 「プログラムによる計測と制御の仕組みを
学ぶための学習支援ソフトウェア」, CIEC, 2012 PC
Conference 論文集, pp.77-78,
http://gakkai.univcoop.or.jp/pcc/2012/papers/pdf/
pcc117.pdf
Fly UP