Upload
ryota-nakamura
View
1.099
Download
0
Embed Size (px)
Citation preview
プログラムによる
計測と制御の
仕組みを学ぶための
学習支援ソフトウェア • 松浦 敏雄/中村 亮太/Chan Myae THU
– 大阪市立大学 大学院創造都市研究科
• Liu Lu
– 関電システムソリューション
• 西田知博
– 大阪学院大学 情報学部
×
プログラミング教育の重要性
情報教育の流れ
コンピュータリテラシ中心
コンピュータの仕組みの理解が重要視される
中学校 技術・家庭科の新学習要領
「プログラムによる計測と制御」が必履修
本研究の目的
『プログラムによる計測と制御』で学ぶべきこと
コンピュータによる計測・制御の基本的な仕組みを知ること。
情報処理の手順を考え,簡単なプログラムが作成できること。
このための学習支援ソフトウェアを作成
学習支援ソフトウェアの概略
センサーの値
制御
初学者向けプログラミング学習環境 PEN Arduino
本研究の学習支援ソフトウェア
初学者向けプログラミング学習環境 PEN
プログラムを日本語で記述
大学入試センター「情報関係基礎」のDNCL
ボタンによる入力支援機能
トレース機能で実行の流れがつかめる
PEN に計測・制御を学ぶための機能拡張
ハードウェアには Arduino を使用
初学者向けプログラミング学習環境 PEN
変数表示
コンソール
エディタ
プログラム入力支援ボタン
実行制御
とっつきやすいプログラミング言語
大学入試センター 入試科目 「情報関係基礎」で用いられている
日本語表現
付加的な説明がなくても理解できる
平成19年度センター試験 「情報関係基礎」より
変数の宣言を追加 組み込み関数追加
xDNCL
プログラムの入力の誤りを減らす
プログラム入力支援機能
文法的誤りを抑えることができる
支援ボタンのカスタマイズ可能
カスタマイズすると…
プログラムの実行を観察できる工夫
プログラム実行制御/状態表示機能 実行制御
実行 / 一時停止 / 一行実行
実行速度調整バー 観察しながらプログラムを実行できる
プログラム実行箇所マーカー 何行目が実行されているかを把握できる
変数表示画面 変数の値変化がリアルタイムで見れる
Arduino を制御するための関数
openPort( port )
Arduinoと通信するためのポートを開く
[パラメータ] port:デバイス名
closePort()
開いたポートを閉じる
portListLength()
シリアル通信できるポート数を調べる
[戻り値] シリアル通信できるポート数
portList( num )
シリアル通信できるポートを返す
[パラメータ] num:ポートリスト番号
[戻り値] シリアル通信できるポート情報
pinMode( pin, value )
指定したピンを入力用か出力用を設定
[パラメータ] pin:ピンの番号
value:INPUT または OUTPUT
[戻り値] なし
digitalRead ( pin )
指定したピンの値を読み取る
[パラメータ] pin:読み取るピンの番号
[戻り値] 0 または 1
digitalWrite ( pin, value )
指定したピンにデジタルデータを書き込む
[パラメータ] pin:ピンの番号, value:0 または 1
[戻り値] なし
analogRead ( pin )
指定したアナログピンから値を読み取る
[パラメータ] pin:読み取るピンの番号
[戻り値] 0 から 1023 までの整数値
analogWrite ( pin, value )
指定したピンにアナログデータを書き込む
[パラメータ] pin:出力に使うピンの番号
value:0 から 255 の整数値
[戻り値] なし
Arduino の PIN について
• 6:ボタン1
• 7:ボタン2
• 8:ボタン3
• 10:LED1
• 13:LED2
14本のデジタルIO
うち6本をPWMで利用可能
6本のアナログ入力
• 4:光センサ
• 5:温度センサ
01:/* LEDを5秒間光らせるプログラム */
02:openPort("COM7") /* シリアル通信開始 */
03:
04:pinMode(13, "OUTPUT") /* 出力モード */
05:
06:digitalWrite(13, 1) /* LEDを光らせる */
07:sleep(5000)
08:digitalWrite(13, 0) /* LEDを消灯する */
09:
10:closePort() /* シリアル通信終了 */
01:/* LEDを10回点滅させるプログラム */
02:整数 i
03:openPort("COM7")
04:pinMode(13, "OUTPUT")
05:i を 1 から 10 まで 1 ずつ増やしながら,
06: | digitalWrite(13, 1)
07: | sleep(500)
08: | digitalWrite(13, 0)
09: | sleep(500)
10:を繰り返す
11:closePort()
今後の予定
Arduino を使うためのマニュアル整備
Arduino を制御するための関数を追加
抽象度の異なるものを用意する
例) LED1("high") だけで LED1 が光る
プラグイン機能を用いて関数を追加
他の計測・制御を行うハードウェアに対応
学習支援ソフトウェアの評価
実際の授業で使用し評価し改良を加える