プログラムによる計測・制御学習のための GUI - 鳴門教育大学

日本産業技術教育学会誌第 54 巻第 2 号(2012)59~67
プログラムによる計測・制御学習のための
GUI プログラミング環境の構築†
The Construction of a GUI Programming Environment
for Learning “Measurement and Control by Programming”
菊 地
章*
Akira KIKUCHI
鎮
革**
Ge ZHEN
中学校技術・家庭(技術分野)においてはこれまで計測・制御学習が積極的に行われてきた。このと
き,計測に主体を置いた学習や制御に主体を置いた学習等,様々な形態で授業実践が行われている。平
成20年2月に公布された学習指導要領では,これまでの技術学習における計測学習や制御学習は一体
化され,
「プログラムによる計測・制御」として扱われるようになった。そのため,従来のフローチャー
ト形式のみ利用する計測・制御学習では「プログラムによる」の内容が弱く,プログラム作成を意識し
た計測・制御学習をさらに進める必要が生じている。本研究では,従来のフローチャート形式でのアル
ゴリズム学習の利点は活かしながら,同時にプログラム作成も考慮でき,フローチャートを作成した後
にプログラムを表示し,修正し,翻訳・実行できる PIC 対応 GUI プログラミング環境を構築する。
キーワード:計測・制御,フローチャート,プログラミング,PIC,PIC-GPE
1.はじめに
平成20年2月に公布され,平成24年に全面実施と
なる新しい中学校学習指導要領 1) では,従来の「技術
とものづくり」と「情報とコンピュータ」の内容が再構
成され,
「材料と加工に関する技術」,
「エネルギー変換
に関する技術」,
「生物育成に関する技術」,
「情報に関す
る技術」の4内容として構成されている。さらには,従
来の必修内容が整理統合されるとともに,選択内容が必
修内容となった結果,時間数維持の中での内容の増加と
なり,さらに分かりやすい授業内容により学習を進める
必要に迫られている。
従来の「情報とコンピュータ」の内容は選択内容を含
んでいたが,今回の「情報に関する技術」は全て必修内
容となって項目が増えており,さらには従来の「プログ
ラムと計測・制御」は今回「プログラムによる計測・制
御」に変更されており,プログラム学習と計測・制御学
習を一体として捉えて学習する必要が生じている。情報
(2012 年 2 月 21 日受付,2012 年 5 月 26 日受理)
*
鳴門教育大学 大学院 自然・生活系教育部
**
鳴門教育大学 大学院 学校教育研究科
†
2011 年 8 月本学会第 54 回全国大会(宇都宮)にて
発表
基礎発足の時代は OS 起動後に入出力ポートを直接制
御できる BASIC 言語が利用でき,手軽に計測・制御学
習を行うことが可能であった。最近のコンピュータは高
速化ならびにメモリアクセス権限の分離化が進んでお
り,一般ユーザが拡張ボードを設計・製作したり入出力
ポートを扱うことは,以前より難しくなっている。
パーソナルコンピュータによる計測・制御学習の複雑
さの問題を解消するために,近年では組込機器に利用さ
れている PIC(Peripheral Interface Controller)が学
校教育にも広く利用されるようになっている。例えば,
PIC マイコンを利用した基数変換教具 2) ,点灯制御教
材 3) ,データロガー開発 4) ,距離計測教材 5) ,カメラ
搭載型移動ロボット教材 6) 等が開発されている。また,
中学生を対象としたロボットコンテスト 7),8) や国際ロ
ボットコンテスト WRO(World Robot Olympiad)9) も
行われている。さらには,PIC 教材の大学授業実践 10),11)
や,学習効果の研究 12)-14) も行われている。
これらの計測・制御教材の実践では,Microchip 社の
PIC 15),16) が主に使われているが,PIC にプログラムを
書き込むためには PIC を PIC ライタに差し替えて書き
込む従来からの方法に加え,最近では USB 機能付きの
PIC も販売されているため PIC を差し替えることなく
直接 USB インタフェースを介して作成プログラムを書
き込む方法 17)-19) もある。また,アルゴリズム具現化環
59
プログラムによる計測・制御学習のための GUI プログラミング環境の構築
境を教材会社等が種々提供 20)-25) しており,計測・制御
学習に関する種々の研究 26)-28) も行われている。ただ,
これらの方法は中学生の実態に合った手軽な環境であ
るが,全てフローチャート形式のみ利用する環境であり,
「プログラムによる計測・制御」を行う環境としては弱
いものとなっている。逆に,PIC 用プログラム 29) を直
接扱うと,中学生には理解不能な状態に陥ってしまう。
そのため,フローチャートによるアルゴリズム作成の利
点は活かしながら,プログラムも理解できる環境の構築
が急務となっている 30),31)。
本論文では計測・制御学習における PIC 利用の有効
性を議論するとともに,GUI 環境を利用した PIC プロ
グラム環境を構築する。まず,フローチャート学習の利
点を考察し,フローチャートを用いた計測・制御学習環
境の設計を行う。また,フローチャートのみでなく,プ
ログラム学習の環境へも拡張するとともに,コンパイル,
PIC 書 込 , PIC 実 行 の 機 能 も 付 加 し た PIC GUI
Programming Environment(以下,PIC-GPE と呼ぶ)
を構築する。さらに,USB 経由でのプログラム書込を
実現するための PIC 用 Bootloader も作成する。さらに,
帰国子女への対応を考慮し,多言語環境でのヘルプ機能
も付加する。これらより,計測・制御学習における開発
した PIC-GPE の有効性を検討する。
2.計測・制御学習における PIC 利用
2.1 PIC 利用の有効性
中学校での計測・制御学習では,これまでものづくり
と情報の内容を互いに関連させながら行われてきた。そ
のため,計測・制御教材は,新しい学習内容でのエネル
ギー変換内容にも関連するとともに,情報の内容にも関
連する。従来の情報の内容では,表計算ソフトウェアに
付随している環境を利用してプログラムを作成するこ
とも可能であったが,計測・制御のために直接外部機器
を操作することが難しく,コンピュータ本体内での数
値・情報処理のためのプログラム作成に留まっていた。
近年,PIC が広く使われるようになっており,技術
学習におけるものづくりでの動く教材のための有力な
電子素材となっている。PIC はコードエリアとデータ
エリアが分離されたハーバード・アーキテクチャとして
構成されている特徴があり,また電源を落としてもメモ
リ内容を保持するため学校での電池で利用する教材と
して適している。従来の PIC は PIC ライタに移し替え
てプログラムを書き込む方式であったために生徒が自
作のプログラムを作成しても書込に手間取り,技術学習
60
で実施する際には予め教員が書込を行っている PIC を
利用することが多かった。最近では,USB 接続機能や
NIC 接続機能を有する PIC シリーズも提供されており,
時間数が少ない学校での利用も可能となっている。ただ,
NIC 利用のネットワーク対応型はドライバソフトウェ
アがまだ普及していないため,有線で接続できる USB
接続型 PIC の利用が技術学習では扱いやすい。そのた
め,本研究では USB 接続型で,小型にするためにピン
数が少ないシリーズを選び,さらにその中でメモリ容量
が大きい PIC18F2550 を採用する。
2.2 PIC におけるフローチャート学習の利点と欠点
プログラムにおける計測・制御を行う際には当然プロ
グラム作成が重要であるが,PIC については規約語が
多く,初学者にはかなり敷居が高い。これは生徒のみな
らず,教員にとっても同様である。そのため,既定の書
式を考える必要なく,アルゴリズムの学習に焦点を当て
るフローチャート学習は非常に有益である。実際,大学
研究者や教材会社各社はフローチャート学習を基礎と
して種々の PIC による計測・制御教材を開発しており,
また学校教員から高い評価を得ている。
一方,フローチャート学習環境のみではアルゴリズム
学習はできるがプログラム学習ができず,「プログラム
による計測・制御」のための学習材としては弱くなって
いる。そのため,フローチャート学習もでき,さらにプ
ログラム学習もできる学習材の開発が必要となってい
る。本研究では,GUI 環境を利用しての PIC 用のフロ
ーチャート作成,プログラムへの変換と編集,コンパイ
ル,USB を介した PIC への転送と実行の環境を備えた
PIC-GPE を構築する。
3.GUI 環境を利用した PIC プログラム環境
3.1 PIC-GPE の開発環境と PIC 入出力設定
今回開発した PIC-GPE は,中学校でのコンピュータ
OS がほとんど Windows OS であることを考慮し,
Windows マシンで利用できる環境として構築した。ま
た PIC-GPE の開発は次の環境で行った。
CPU: Intel Pentium 4 3.0GHz
RAM: DDR2-800 2GB×1 枚
OS: Windows Vista Ultimate SP2 64bit
ソフトウェア: Visual Studio 2008 Professional
Edition(Microsoft Visual C# 2008)
必要 HDD 容量:C#は約 4GB,PIC-GPE は約
50MB
日本産業技術教育学会誌第 54 巻第 2 号(2012)
PIC-GPE の実行時には.NET 環境が必要となる。も
し.NET 環境がプリインストールされていない場合は,
無料の.NET Framework をインストールできる。現在
インストールされているバージョンは,¥Windows
¥Microsoft.NET¥Framework の下のフォルダ名の数
字で確認できる。なお,Windows Vista 以降には.NET
が標準でバンドルされており,また Windows XP 以降
は今回 PIC-GPE での利用を想定している v3.5 が利用
可能である。現在は v4.5 Beta まで提供されているが,
これらにも対応可能であり,多くの環境で動作可能であ
る。
今回使用した PIC18F2550 には入出力ポートとして
RA0~RA6 ,RB0~RB7,RC0~RC2,RC4~RC7 が
備わっている。このとき A-D ポートは RA ポートの先
頭に配置する必要があることから,中学校等では2チャ
ンネルで十分と判断し,RA0 と RA1 を A-D に割り当
てた。RA ポートの最後の RA6 は IC 用クロックのため
の発振子に使う必要があり,結果としてディジタル入力
は RA ポートの残りの RA2~RA5 の4チャンネルを割
り当てた。計測・制御学習ではディジタル出力を多く使
用するため,RB ポート全ての RB0~RB7 の8チャン
ネルを割り当てた。残りの RC ポートは,RC0・RC1
と RC2 を Bootloader 動作状態表示のための LED フラ
ッシュ用と Bootloader 起動スイッチ用に使い,RC4 と
RC5 を USB データ転送用に使い,余りは RC6 と RC7
の2ポートであるが,プログラム作成作業の際に使用可
図1
能ポートの数値が連続でなくなるため,RC ポートにつ
いては使用しないこととした。
3.2 プログラミング学習環境の設計
構築した PIC-GPE の利用画面を図1に示す。一般に,
プログラム作成では,まずプログラムコードを作成し,
次にコンパイルとリンクを実行し,最後に実行ファイル
を起動してプログラムを実行させる。今回はこの前処理
としてフローチャート作成工程を含めているため,全体
として次の流れが必要となる。
(作業1)フローチャートの作成
(作業2)PIC 用 C プログラム言語への変換
(作業3)プログラム言語のコンパイル(リンカ含む)
(作業4)PIC への USB 経由での書込と実行
ただ,作業のほとんどの時間がフローチャート作成に
費やされることも事実である。さらに,プログラムの編
集については,全体を眺めて理解することが多いが,細
かい部分を授業中に修正する頻度は低い。一方,全世界
の多くの文章は,一部に右から左へまたは上から下へ移
動するものもあるが,多くは左から右へ,さらには上か
ら下へ進むようになっている。この通常の文章スタイル
を利用すると,GUI 環境におけるメニュー構成は,全
体的には上から下へ作業を移動させ,細かい部分では左
から右へ作業を移動させると,直感的に動作環境が理解
できる。
開発した PIC-GPE
61
プログラムによる計測・制御学習のための GUI プログラミング環境の構築
図2
PIC-GPE の全体メニュー構成
この考え方を基にして,PIC-GPE の全体メニューを
図2のように構成した。すなわち,画面の左側に(作業
1)に対応する1から(作業4)に対応する4の流れ
を上から下に配置し,中央に作業時間が多いフローチャ
ート作成環境を配置し,さらに高度な内容のプログラム
編集環境は一番右側に配置した。なお,ノートコンピュ
ータの場合は画面解像度が小さいものが多いため,一番
右側のプログラム編集部分についてはポップアップも
できるようにした。このように,メニューブロック内は
順次上から下に,かつ左から右へ,必要作業のボタンを
クリックしながら作業が進むように構成した。
さらに,細かい作業として,図2に示すように,5
の作業状況表示バー,6のヘルプ等の言語メニュー,
7の描画画面グリッド有無や中央下の作業内容文字列
表示有無のメニュー,8のフローチャート画面拡大・
縮小バー,9のプログラム編集モードとポップアップ
メニュー,10のヘルプ内容管理メニューを付加して
いる。なお,図1の画面全体をマウスで動かす際には,
他の表示内容が見えるように全体を薄く表示させて移
動場所指定が容易にできるようにしている。
3.3 フローチャート作成環境の構築
フローチャート作成環境は図2の1に対応し,また
図1の画面左側の一番上のブロックに対応する。新規の
フローチャート作成の際には直接フローチャートブロ
ックを利用してフローチャートを描くが,既に前回の学
習で自作したフローチャートや教師のサンプルフロー
チャートがある場合にはファイルから読めるようにし
た。自作したフローチャートは次回のためにファイルに
保存する必要があるためフローチャートの保存メニュ
ーを配置している。なお,フローチャートメニューの中
では,前回のフローチャート利用を左側に,今回作成し
たフローチャート利用を右側に配置した。さらに,フロ
ーチャートが大きくなって画面内に表示しきれない場
62
合には画面コピーでは全体を画像化できないため,フロ
ーチャート全体を画像として保存できるメニューも付
加した。これにより,作成したフローチャートを文書に
含めたり,プリンタに出力したりできるようにした。プ
リント出力の際には,プリントビュー機能も付加した。
図1中央のフローチャート作成環境では,左側にフロ
ーチャートブロックを縦に配置している。このときのフ
ローチャートメニューは JIS X0121 情報処理用流れ図
に準じて構成し,PIC 利用で必要な項目のみ組み込ん
だ。すなわち,開始,終了,処理,アナログ入力,ディ
ジタル入力,
ディジタル出力,時間待,ループ端とした。
なお,フローチャート画面を一挙に消したいこともある
ため画面クリアアイコンを付け,また無駄なフローチャ
ートブロックがないかのフローチャート整合性チェッ
クができるようにチェックメニューも付けている。さら
には,作業内容の取消や復帰ができるように矢印表現で
Undo と Redo メニューも付加した。
具体的な GUI 設計は, Microsoft VS2008 環境の C#
言語での Windows Forms Application でプログラミン
グした。まず,提供されている元々の Control ToolBox
から必要な Control を選んで自分のプログラムに組み
込み,全体の配置を整えた。次に,対応する Control
の Event を編集した。カーソルを重ねると表示が変わ
る可変 Button は,MouseEnter と MouseLeave の
Event を利用した。PIC-GPE 画面左下にサブメニュー
を表示する時には,表示枠の制限から「コンパイル」と
「書込&実行」のメニュー表示を一時的に消して表示場
所を確保し,パラメータ指定時のみサブメニューを表示
した。
フローチャートを描くためには,グラフィカルオブジ
ェクトを構成できる GDI 環境を使用し,Panel に基づ
いて新しい Class である PaintPanel を作成した。さら
に,PaintPanel Class の中に PaintItem と PaintLink
を作成した。このとき,PaintLink は PaintItem の派
生 Class として構成した。
利用者が使用する際にはフローチャートブロックを
ドラッグして利用するようにした。このとき,移動方向
が分かるように,ドラッグしているマウスがフローチャ
ートメニュー画面上にある時には右矢印の画像を薄く
表示するようにした。さらに移動方向を強調するために
矢印が右方向に動く画像を7枚組み込んで3秒動作す
る GIF アニメーション画像を用いた。これにより初心
者にフローチャートブロックをフローチャートメニュ
ー画面からフローチャート描画画面にコピー利用する
方向が容易に分かるようにした。なお,ドラッグ状態の
日本産業技術教育学会誌第 54 巻第 2 号(2012)
マウスがフローチャート描画画面に入ると既に描いて
いるフローチャートが見え難くなるためフローチャー
ト描画画面内では GIF アニメーションの矢印を表示さ
せないようにした。また,画像表示プログラム部分を新
たな Form に組み込んで,その Form の透明度を調整す
ることにより,ドラッグしているフローチャートブロッ
クがフローチャート描画画面に入ると他の領域を薄く
表示させ,描画画面の範囲を分かりやすくした。
フローチャートの各ブロックをダブルクリックする
とサブメニューでの詳細設定を可能としている。サブメ
ニューを作成する際には,.NET の GroupBox クラスを
作成し,その内に Control パラメータを加えて Event
を組み込む方法を採用した。さらに Event を作成する
プログラムの中で,各々の必要データをテキスト形式で
保存した。発生させる Event には,標準モードとアド
バンスドモードの2種類を設定した。通常は初学者が理
解しやすいように設定パラメータ数を少なくした標準
モードで動くようにしている。一方,変数指定や値代入
等の高度なプログラムを自由に作成したい場合は,アド
バンスドモードのボタンをクリックしてアドバンスド
モードのサブメニューが変わることができるようにし
ている。このように,通常は標準モードで利用し,必要
に応じてアドバンスドモードを選べることができるよ
うにすることにより,学習者のレベルや学習内容に応じ
てサブメニューを切り替えることができるようにして
いる。このアドバンスドモードを利用できるようにした
ために,フローチャートによるプログラム作成ではある
が,どのようなプログラムでも作成できるようになって
おり,従来の初学者限定で機能制限があるフローチャー
ト作成のみの環境とは大幅に異なる環境となっている。
このように,利用モードを切り替えることにより,小学
生から大学生ならびに一般社会人まで幅広く利用でき
る GUI プログラミング環境となっている。
中学校での技術学習では,簡単・安全でありまた変化
を伴うため,LED 発光を伴う学習事例が多い。LED 発
光の明るさを変化させるには電流値を制御する必要が
あり,単に一定値を提供するだけでは自由に明るさを変
化させることはできない。これを1ビットで単色 LED
の明るさを変化させ,3ビットでフルカラーLED の明
るさを変化させることができるように,フローチャート
ブロックの中に PWM 出力ができるモードを追加した。
通常は単一ポートの8ポートに各々1ビットの固定デ
ィジタル値を出力するが,ディジタル出力ポートである
RB0~RB7 の内の最後の RB5~RB7 は固定ディジタル
値を出力するか時間とともに変化するディジタル値を
出力するかを選べるようにしている。これにより,単色
LED またはフルカラーLED の明るさや色をフローチ
ャート作成で自由に設定できるようにしている。実際の
ソフトウェア利用では,高電圧時間幅と低電圧時間幅の
比率を PWM 変調のデューティー比として指定し,3
ビットのディジタル値を明るさに応じて短い時間で切
り替えることにより,3ビット駆動でフルカラーLED
を発光させるようにしている。また,中学生が利用する
ことを意識して,フルカラーLED の明るさを時間とと
もに徐々に変化させることができるメニューも組み込
んでいる。なお,PWM 変調は生徒自身がフローチャー
トならびに C プログラム編集により作成できるが,行
数が多くなるため,作業時間を短くするために既定メニ
ューのルーティンとして提供した。
3.4 C プログラム変換環境の構築
フローチャート作成が終わると,図2の2の「ソー
スコード変換」メニューにより作成したフローチャート
を C プログラムへ変換できる。このとき,フローチャ
ートの各々のブロックに nodeid1 のように NodeID と
してプログラムラベルを付け,互いをフローチャートの
結線状態に従って goto 文で当該ラベルにジャンプさせ
るようにして全体のプログラムを構成するようにした。
なお,各フローチャートブロック内の既定のプログラム
内容は予め作成しているプログラムリストを入れ,フロ
ーチャート作成時にサブメニュー内で指定した各種パ
ラメータに応じてパラメータ部分のみプログラムを修
正する方法でフローチャートからプログラムへの変換
を行っている。
授業時には教員の説明を聞いたり生徒同士で相談し
たりする際に行番号が表示されている方が理解しやす
いため,プログラム編集部分の上部にある「プログラム
編集モード」のメニューをクリックするとプログラムの
行番号が現れるようにした。なお,プログラムウィンド
ウ内にプログラムを表示する際の行数の表示機能は,
GDI の String 機能を用いて作成した。また,プログラ
ムを見やすくするとともに画面の大きさに合わせるた
めに,フォントサイズを3段階で拡大・縮小できるよう
にしているが,表示しているプログラムのフォントサイ
ズを変えるとプログラム枠の外側に付した行番号用の
数字文字のサイズと異なってくるために,フォントサイ
ズの拡大・縮小に従ってプログラム枠の外側の数字フォ
ントも同じように拡大・縮小するようにした。これによ
り,プログラムの行が広くなっても行番号が同一ライン
に表示できるようにした。
63
プログラムによる計測・制御学習のための GUI プログラミング環境の構築
3.5 コンパイル・PIC 書込・実行環境の構築
プログラム作成後にプログラムをコンパイルする際
は,「コンパイル」メニューをクリックするとコマンド
モードで C コンパイラを走らせるようにしている。こ
れには Microchip 社のフリーソフトウェアの MP-Lab
C コンパイラ環境を組み込んだ。このとき,フローチャ
ート等を並行して実行できるように,マルチプロセス環
境でのバックグラウンド処理として C コンパイラを実
行させるようにしている。C プログラムのコンパイラな
らびにリンカの操作は図3に示すコマンドで行った。こ
れにより,フローチャートを介して作成した prg.c プロ
グラムは prg.hex の PIC で実行できる Hex ファイルに
変換される。
mcc18.exe -p=18F2550 "prg.c" "bios.c"
-fo="prg.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opamplink.exe
/p18F2550
/l".¥lib¥"
"Bootload.lkr" "prg.o" /u_CRUNTIME /o
"prg.out" /M"prg.map" /W
図3
C コンパイラの具体的なコマンド
また,図1中央下側のコンパイル結果を表示するウイ
ンドウ内では,コマンド出力を Msgbox へリダイレク
トさせ,表示ライン数をカウントして表示位置を変える
方法で,コンパイル結果が小さなウィンドウ内で順次上
側に動くようにした。同時に,エラー発生時にはエラー
内容も出力するようにした。なお,プログラムが大きく
結果の表示行が多い場合には CPU に負荷がかかる影響
で表示が一瞬止まることもあるが,結果そのものには影
響を与えることはない。
文法的なエラーがある場合は,各フローチャートブロ
ックに割り当てた NodeID に対応する C 言語ブロック
のプログラムラベル部分を Syntax Highlighter 機能で
強調表示するようにしており,フローチャートならびに
プログラムのどの部分にエラーが発生しているか分か
るようにした。フローチャートの各ブロックとプログラ
ムの対応部分は,フローチャートブロックをマウス右ク
リックして「View Code」を選択するとプログラムの該
当部分がハイライトするようにしており,単なるフロー
チャート作成による PIC 操作ではなくて,プログラム
作成を意識させて PIC での計測・制御学習ができるよ
うに配慮している。
「書込&実行」のコマンドでは次の操作を行うように
している。まず,図4の1行目に書いているようにコン
ピュータ上の boot.exe プログラムを起動させ,既に PIC
64
ライタで PIC に書き込んでいる bootloader プログラム
とコンピュータを USB 経由で通信させ,コンピュータ
上の Hex ファイル(prg.hex)を PIC に転送する。そ
の後,2行目の操作により,run モードを指定して転送
したプログラム(prg.hex)を起動する。
boot.exe prg.hex
boot.exe -r
図4
プログラム転送と実行のコマンド
コンパイルや書込等の動作状況が分かるように,画面
左下のタスク進行バーを設け,進行状況に応じて順次表
示バーが長くなるようにした。コンパイルが終了すると
タスク進行バーの上に「Compiled」の文字を二重スク
リーン状態で上書きしてコンパイル完了を分かりやす
くさせた。これにより,書込等に時間がかかっても終わ
った状態が明確に分かるようにした。
4.Bootloader 構築
Bootloader はコンピュータから自作プログラムを転
送しその転送したプログラムを動作させる機能として
動作しているが,コンパイルした Hex ファイルをコン
ピュータから PIC へ書き込む作業は Microchip 社のフ
リーの書込プログラムを利用している。このとき,
Bootloader の動作は自作の Hex プログラムを繰り返し
実行する動作となるため,自作プログラムが一度最後ま
で動くと Bootloader に戻り,再度 Bootloader が自作プ
ログラムを実行することを繰り返す。そのため, PIC
に書き込んだ自作プログラムを一回だけ動かしたいと
きには工夫が必要となる。フローチャートによるプログ
ラム作成では,通常のアルゴリズムとして C プログラ
ムに変換するため,そのままでは無限に動作を繰り返す。
計測・制御等の入力待ちが多いプログラム等の場合は都
合が良いが,LED 点灯等では規定回数の点滅を指定で
きる方が実態に合う。そのため,一度しかプログラムを
動作させない方が良い場合には,図2の2にある無限
ループのチェックを学習者が外すようにして,C プログ
ラムの最後の部分に無限ループを作って Bootloader に
処理が戻らないようにした。これにより,自作 Hex フ
ァイルを PIC 内で無限回動作させるか一度だけ動作さ
せるかを切り替えることができるようにした。
PIC ライタ等により Bootloader を PIC に書き込む際
には ICSP(In-Circuit Serial Programming)環境を構
築する必要がある。そのため,Bootloader 書込の際に
日本産業技術教育学会誌第 54 巻第 2 号(2012)
は PIC18F2550 の1番ピン(MCLR/RE3/Vpp),20 番
ピ ン ( Vdd ), 27 番 ピ ン ( RB6/PGC ), 28 番 ピ ン
(RB7/PGD)を使用した。また,作成・コンパイルし
たプログラムの Hex ファイルを USB 経由で転送する
際には,15 番ピン(RC4/SDI)と 16 番ピン(RC5/SDO)
ならびに Vcc と GND を USB ピンとして使用し,コン
ピュータと USB 接続している。さらに,PIC とコンピ
ュータの接続では,PIC の USB デバイスクラスとして
ドライバーのインストールが不必要なだけでなく拡張
性 の 高 い デ バ イ ス ク ラ ス で あ る HID ( Human
Interface Devices)を採用した。
を使用する方法がある。これらの回路事例は,マイクロ
フォンに音響信号が入るとフルカラーLED を発光させ
る回路 33) として構成しており,PIC-GPE の PWM 機
能を使ってフルカラーLED の明るさを徐々に変化させ
ることも可能である。なお,図5と図6の各々の写真の
上側の回路がディジタル入力用スイッチと3ビット
PWM 出力によるフルカラーLED を含んだ PIC の回路
で,下側の回路がアナログ音声入力用マイクロフォンの
回路である。市販 PIC18F2550 ボードを使用すると最
初から水晶発振子等が組み込まれているので追加の回
路が少なくて製作が楽になる。
5.計測・制御回路の事例
6.帰国子女を想定したヘルプ機能の構築
今回開発した PIC-GPE はソフトウェア環境を主と
して開発したが,実際に回路を構成する際にはブレッド
ボードを利用すると便利である。PIC-GPE が対象とし
ている PIC 素子は PIC18F2550 であり,この素子を使
用する場合は,図5に示す PIC18F2550 素子を単体で
使用する方法と図6に示す市販 PIC18F2550 ボード 32)
今回開発した PIC-GPE は主に日本国内の中学校技
術等での利用を想定しているが,学習者には帰国子女も
含まれる可能性があるため,日本語が分かり難い学習者
のために2段階の多言語対応を行った。一つは,フロー
チャートブロック内の表示文字の言語を選択できるよ
うにした。他の一つは,フローチャートブロックにカー
ソルを重ねると指定した言語でヘルプ文字列が表示さ
れるようにした。なお,開発時にはすべての外国語に対
応することはできないため,新たな外国語でのメニュー
ならびにヘルプを学習支援者が簡単に追加できるよう
にするため,XML フォーマットのテキスト形式ファイ
ルをユーザに開放し,ボックスメニューを表示させて各
自が新規の多言語対応ヘルプを追加作成できるように
した。また,他の学習支援者が作成した別の外国語の
XML ファイルをコピーして利用できるようにもしてい
る。
このとき,各学校で使用する言語に対応したヘルプメ
ニューの追加を可能とするために,各メニュー項目名は
英語で統一し,左右に文字入力ブロックを配置し,左側
の文字入力ブロックではヘルプの表示名称,右側の文字
入力ブロックではカーソルを重ねると表示するヘルプ
内容を追加できるようにした。なお,コンピュータの1
画面内には入らないため,スライドバーを付けて順次上
下に動かして作業できるようにした。
種々の外国語を利用できるようにするために多言語
OS 上で使用できるようにしたが,逆に.NET 環境の
Default Font Size 機能が災いして多言語 OS での使用
する基本言語が変わるとメニュー内の文字の大きさが
変わるため,工夫が必要となった。多言語 OS 上でどの
ような言語を使用しても表示枠が変わらないようにす
るために Mainform プロパティのフォントサイズを標
図5
図6
PIC18F2550 素子を使用した回路例
PIC18F2550 ボードを使用した回路例
65
プログラムによる計測・制御学習のための GUI プログラミング環境の構築
準のポイント指定でなくて画面サイズが固定できるピ
クセル指定とした。これにより,メニュー画面内に指定
する文字の言語が変わってもメニューブロックの上下
方向が一定にでき,全体画面の位置関係を維持できた。
これにより,単なる PIC プログラミング環境の提供
のみでなく,帰国子女対応をも想定した計測・制御学習
材を構築することができた。
5)
6)
7.おわりに
7)
本論文では,フローチャート作成を通して PIC プロ
グラミングを容易に行う環境である PIC-GPE を開発
した。このとき,アルゴリズム学習としてのフローチャ
ート作成による順次・分岐・反復の学習支援は勿論のこ
と,計測・制御特有のアナログ/ディジタル情報による
外部機器に対応した計測・制御の学習もできるようにし
た。さらに,フローチャート学習のみでなくプログラム
学習も一体化してアルゴリズムとプログラムの関連性
の理解を容易とし,さらに「プログラムによる計測・制
御」の「プログラム」と「計測・制御」を融合させた。
このとき,GUI 環境を効果的に用い,生徒の学習理解
が容易となるとともに学習意欲が持続するように配慮
した。さらには帰国子女への対応も考慮し,メニューや
ヘルプを多言語対応とした。
現在,大学での授業や現職研修(教員研修センター主
催の中学校技術担当教員を対象とした産業・情報技術等
指導者養成研修等)で利用しているが,全員から好意的
な反応を得ている。また,細かい改訂を30回程度経て,
現在は自由に学校等で利用できるように Web にて
PIC-GPE を公開している 33) 。今後,学校等で広く利
用されることを期待する。
参考文献
1)
文部科学省:学習指導要領技術・家庭,
2)
http://www.mext.go.jp/a_menu/shotou/new-cs/yo
uryou/chu/gika.htm
工藤雄司・平田晴路・入江隆:PIC マイコンを用
いた 2 進数-10・16 進数変換教具の開発,日本産
業技術教育学会誌,第 51 巻,第 3 号,pp.187-194
3)
4)
66
(2009)
宮崎英一・氏家徹也・白井和紀:マトリックス LED
を用いた点灯制御教材の試作,日本産業技術教育
学会 第 54 回全国大会
(宇都宮)
,A6-4,p.27 (2011)
宮崎英一・氏家徹也:PIC を用いた簡易型データ
8)
9)
10)
11)
12)
13)
ロガー・システムの試作,日本産業技術教育学会
第 53 回全国大会(岐阜)
,b2C-5,p.73 (2010)
杉村達也・渡邉肇也・江口啓・西ヶ谷浩史:教材
用簡易距離計の開発,日本産業技術教育学会 第
53 回全国大会(岐阜),a2C-5,p.35 (2010)
浜本佳彦・山路康貴:画像認識システムを搭載し
たロボット技術教育用ライントレーサの開発,日
本産業技術教育学会 第 53 回全国大会(岐阜),
c2C-6,p.120 (2010)
全日本中学校技術・家庭科研究会:創造アイデア
ロボットコンテスト全国中学生大会,http://ajgika.
ne.jp/~robo/
山本利一・村松浩幸・杵淵信・他:第 11 回全日
本中学校技術・家庭科研究会主催創造アイデアロ
ボットコンテスト報告,日本産業技術教育学会誌,
第 53 巻,第 1 号,pp.69-72 (2011)
WRO:http://www.wroj.org/
野村良雄・田宮 直:産業用ロボットインターフェ
ース教材の開発,日本産業技術教育学会 第 53 回
全国大会(岐阜)講演要旨集,p. 98 (2010)
杵淵信・鳥居隆司・川崎直哉・安藤明伸:マイク
ロコンピュータを使用した情報教育の大学教養科
目への展開,CIEC 会誌コンピュータ&エデェケー
ション,第 24 巻,pp.48-51 (2008)
紅林秀治・青木浩幸・室伏春樹・江口啓:自律型
3 モータ制御ロボット教材を用いた授業による学
習効果の検討,日本産業技術教育学会誌,第 51 巻,
第 3 号,pp.195-202 (2009)
古平真一郎・坂本弘志・針谷安男:自律型ロボッ
ト教材を用いた「プログラムによる計測・制御」
学習の授業実践に基づく学習効果の検証,日本産
業技術教育学会誌,第 51 巻,第 4 号,pp.285-292
(2009)
14) 藤本登・森岡亮・外園公誠:省エネ型登坂ロボッ
トを用いたロボコンの授業化への試み,日本産業
技術教育学会誌,第 52 巻,第 2 号,pp.119-127
(2010)
15) Microchip:PIC(R)MCU, http://www.microchip.
com/stellent/idcplg?IdcService=SS_GET_PAGE
&nodeId=2551
16) Microchip:USB ホーム,http://www.microchip.
com/stellent/idcplg?IdcService=SS_GET_PAGE
&nodeId=1486
17) 西岡歩・山田朗:USB インターフェイスによる
PIC ライタ搭載ロボットカー教材の開発と実践,
日本産業技術教育学会誌第 54 巻第 2 号(2012)
日本産業技術教育学会 第 54 回全国大会(宇都宮)
講演要旨集,p.62 (2011)
18) 道法浩孝:技術科教育におけるパソコン USB 計
測・制御教材の開発,日本産業技術教育学会 第
53 回全国大会(岐阜)講演要旨集,p.33 (2010)
19) 宮崎英一・坂井聡:PIC を用いた障害者支援用仮
想 HID の開発,日本産業技術教育学会誌,第 52
巻,第 2 号,pp.129-136 (2010)
20) 久富電機産業:http://www.hisatomi-kk.com/
seihin/submenu/johoetc/joho.html
21) 山崎教育システム:http://www.yamazaki-kk.com/
goods/goods_gi_set.html
22) トップマン:http://www.topman.co.jp/ky/goods/
technique/technique.html
23) レゴ マインドストーム公式サイト:http://www.
legoeducation.jp/mindstorms/products/
24) 梵天丸:http://www.inrof.org/toro/bonten/
25) バンダイ:http://robot.watch.impress.co.jp/cda/
news/2007/08/28/623.html
26) 井戸坂幸男・青木浩幸・李元揆・久野靖・兼宗進:
状態遷移概念を利用した制御プログラミングの学
習効果,日本産業技術教育学会誌,第 53 巻,第 3
号,pp.179-187 (2011)
27) 針谷安男・飯塚真弘・山菅和良:プログラムによ
る計測・制御学習の授業実践とその学習効果の検
証,日本産業技術教育学会誌,第 52 巻,第 3 号,
pp.205-214 (2010)
28) 樋口大輔・紅林秀治:コンピュータによる計測・
制御学習のための汎用計測・制御基板の開発,日
本産業技術教育学会誌,第 53 巻,第 3 号,
pp.169-178 (2011)
29) 後閑哲也:改訂版 電子工作のための PIC18F 本
格活用ガイド,技術評論社 (2008)
30) 菊地章・鎮革:中学校情報技術教育を意図したグ
ラフィカルプログラミング環境,日本産業技術教
育学会 第 54 回全国大会(宇都宮)講演要旨集,
p.9 (2011)
31) 鎮革・菊地章:PIC マイコン制御のための PIC-GUI
ソフトウェアの改良,日本産業技術教育学会四国
支部大会講演要旨集,p.7 (2012)
32) 秋 月 電 子 通 商 : USB マ イ コ ン ボ ー ド 完 成 品
(PIC18F2550),http://akizukidenshi.com/
catalog/g/gI-02161/
33) 菊地章・鎮革:PIC-GPE,http://www.naruto-u.ac.
jp/facultystaff/kikuchi/pic/index.html
Abstract
There were mainly two types of measurement and control learning: energy learning through robot control
and information learning through programming. The present learning contents in the information area has
been changed to the measurement and control learning by programming. There are many software products
to produce flowcharts; however there is no learning material with dual concepts for producing flowcharts and
programming. In this paper, we construct PIC-GPE, (i.e., PIC GUI Programming Environment), whose
software provides the environment of producing flowcharts and programming. The PIC-GPE is also efficient
for returnee students’ learning because it utilizes a multilingual assistance environment.
Key words: Measurement and control, Flow-chart, Programming, PIC, PIC-GPE
67