資料 - Biglobe

2014.7.13
リアルタイム OS で制御する電気自動車実験装置の開発
明石工業高等専門学校
電気情報工学科
堀
兵庫県立尼崎工業高等学校 電気科
「配布資料」
桂太郎
櫻木 嘉典
1.実習車両の制御回路
図1は、リアルタイム OS を利用して実習車両を制御するブロックダイアグラムである。モー
タ制御は G5V2D3V の 2 接点(a 接点)を利用して信号を入力している。また、安全装置として、モ
ータの幹線回路にバンパーセンサと ZigBee モジュールによる無線制御でモータを停止できるよ
うになっている。幹線回路によるモータの停止は、マイコンを経由していないため、完全なハー
ドウェアで処理している。その他のモジュールは、PIC マイコン(PIC32MX340F512H)を利用し
たソフトウェアで処理している。
ZigBee モジュール
ZigBee モジュール
TWE-Lite
無線
TWE-Lite
バンパーセンサ
前進・後進・停止モジュール
記録モジュール
G5V2DC3V
モータライン
G5V2DC3V
ポテンショメータ R
G5V2DC3V
ポテンショメータ L
Z-15GW25-B 右
LCD モジュール
MPU
SC2004CSWB-XA-LB-G
SD カード
usart
PIC32MX340F512H
測距センサモジュール
書込みモジュール
GP2Y0A21YK0F
PICKit3
ICD3
Z-15GW25-B 左
警告ランプモジュール
LED-Y0
左
LED-Y1
前左
LED-Y2
前中
LED-Y8
前右
LED-Y9
右
×
GP2Y0A21YK0F
GP2Y0A21YK0F
×
GP2Y0A21YK0F
GP2Y0A21YK0F
実行ランプモジュール
LED-Y1
LED-Y2
図1
制御回路のブロックダイアグラム
左(AN0)
前左(AN1)
前中(AN2)
前右(AN8)
右(AN9)
2.実習車両の制御フロー
図2は、ソフトウェアの簡略化した制御フロー図である。main 関数でタスク、キューバッフ
ァ、セマフォの生成をした後は、while(1){ }の永久ループに入る。その後、タスク1~4が優
先レベルに従ってマルチタスク処理で実行される。タスク 4 は、PDS センサによって距離 40cm
以内の障害物を検出すると、同期制御(セマフォ)によってタスク 2 のモータを逆転制御させる。
そのため、40cm 以内の障害物を検出してバンパーに接触するまでの時間が、デッドライン(ハ
ードリアルタイム処理)となる。当然、実験車両の速度が速ければデッドラインは短くなる。ま
た、バック制御に入る目安として、PDS センサによって距離 50cm 以内の障害物を検出すると各
センサの警告ランプが点灯する。
デッドラインを超えた場合、バンパーセンサからの信号でモータ停止をハードウェアで実行さ
せる。更に、遠隔制御でモータをハードウェアで実行できる手段を設けている。安全性が必要と
される機器では、ソフトウェア制御と共にハードウェア制御での考慮も必要になる。
スタート
コンフィグ設定
各種定義
リアルタイム OS で
マルチタスク処理
main 関数
タスク 1,2,3,4 の生成
キューバッファの生成
セマフォの生成など
タスク 1(優先レベル 1)
タスク 2(優先レベル 2)
タスク 3(優先レベル 1)
タイマーの処理
モータの正転処理
LCD 表示処理
モータの電路処理
モータの逆転処理
タスク 4(優先レベル 3)
PSD 処理
LED 処理
関数 1
関数 2
関数 3
文字列に変換処理
距離データに変換処理
LED 点灯処理
関数 4
LED 消灯処理
図2
ソフトウェアの制御フロー
3.アンケート結果詳細
表1は、実習に参加した学生に対して実施したアンケート結果である。
表1 アンケート結果
Q1 実習前は,リアルタイムOSという用語を知っていましたか?
知っていた
5
4
3
2
1
知らなかった
1年
1
2年
1
2
3年
3
2
Q2 実習前は,リアルタイムOSの意味(内容)を知っていましたか?
知っていた
5
4
3
2
1
知らなかった
1年
1
2年
3
3年
1
4
Q3 実習後は,リアルタイムOSの意味(内容)を全般的に理解できましたか? できた
5
4
3
2
1
できなかった
1年
1
2年
2
1
3年
1
3
1
Q4 実習後は,リアルタイムOSの次の項目について理解できましたか?
A リアルタイムOSとそうでない通常のOSとの違い
できた
5
4
3
2
1
できなかった
1年
1
2年
1
2
3年
4
1
B リアルタイムOSの利点と注意すべきところ
できた
5
4
3
2
1
できなかった
1年
1
2年
2
1
3年
2
3
C プログラム処理の安全対策について理解できましたか? できた
5
4
3
2
1
できなかった
1年
1
2年
3
3年
3
2
Q5 この実習は,興味をもって取り組めましたか?
もてた
5
4
3
2
1
もてなかった
1年
1
2年
2
1
3年
1
3
1
Q6 この実習は,リアルタイムOSの動作を臨場感をもって学べるものでしたか?
できた
5
4
3
2
1
できなかった
1年
1
2年
2
1
3年
2
2
1
Q7 この実習では,チームワークを生かせたと思いますか?
思う
5
4
3
2
1
思わない
1年
1
2年
2
1
3年
1
2
2
Q8 この実習は,リアルタイムOSの基礎を学ぶのに適していると思いますか?
思う
5
4
3
2
1
思わない
1年
1
2年
2
1
3年
1
2
2
Q9 この実習について,良かったことと良くなかったことを書いてください.
良い リアルタイムOSやC言語などを少し理解できた(1年)
リアルタイムOSの動作をしっかり体感できる(2年生)
わかりやすい説明だった(2年)
デッドラインの実習ができた(2年)
OSの種類と特徴を理解しやすい授業だった(3年)
実際に乗れたのがよかった(3年)
機械での体験は時間がかかるが大事だと思う(3年)
実際に体験したことがよかった(3年)
全体的にわかりやすかった(3年)
悪い プログラムの改良は,Cをよく理解していないとわからない(2年,3年)
走行コースが短かった(2年,3年)
プログラム改良の問題が難しかった(2年,3年×3)
Q10 この実習についての感想があればなんでも書いてください.
リアルタイムOSのメリット,デメリットを実感できた(1年)
実習車両を運転するのが楽しかった(2年,3年)
現在,自動車に使用されているリアルタイムOSについて知ることができた(2年)
体験を通してデッドラインのこと良く理解できた(2年)
プログラムが難しかったので,Cを使えるようになりたい(2年,3年)
こんなややこしいものを作ったり考えたりする人はすごい(3年)
身の回りはほとんど制御だが,自分を制御できるかどうかも大切だと思った(3年)
授業の内容がわかりやすく,今後何かに活かしていきたい(3年)