プログラムによる計測と制御の仕組みを学ぶための学習支援ソフトウェア...

Post on 01-Jul-2015

1.099 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

プログラムによる

計測と制御の

仕組みを学ぶための

学習支援ソフトウェア • 松浦 敏雄/中村 亮太/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 が光る

プラグイン機能を用いて関数を追加

他の計測・制御を行うハードウェアに対応

学習支援ソフトウェアの評価

実際の授業で使用し評価し改良を加える

top related