鉄道模型を使った組込みソフトウェア教育（中洲線プロジェクト）
九州大学大学院システム情報科学研究院
福田研究室

演習のねらい

演習概要
 内容：
 ITRONボードを用いて鉄道模型の制御を行うソフトウェアを開発

 講師:
 中西 恒夫
 野田 厚志 北須賀 輝明 受講生：
 福田研に配属された学部4回生

4名

 受講生の既習事項
 C言語（技量は個人差かなりあり）
 演習（3回生時）： CMOSロジックICとFPGAを用いた論理回路設計
 演習（3回生時）： FPGAを用いたプロセッサ設計
 演習（3回生時）： オペレーティングシステム実装
九州大学大学院システム情報科学研究院

演習のねらい 組込みに興味を持たせる．
 作っていて面白い題材．
 一人でできる小さな題材．
 前提知識をあまり要求しない題材．
 力量に応じて複雑度を変えられる題材．

 C言語の知識を確かなものにする．
 とにかくハードウェアの実物に触れる．
 まずは半田付けから．
 トラブル対策はハードウェアからソフトウェアまで．

 組込みソフトウェア開発に慣れる．
 クロス開発の体験 ハードウェア制御の体験（I/Oポートへの直接アクセス） オシロスコープ等計測機器の使用体験
 状態遷移設計の体験
九州大学大学院システム情報科学研究院

なぜ鉄道模型なのか
 研究室にあったから．（昔，学生にやらせていた．）
 面白いから．（みんな電車が好き．）
 高度な前提知識を必要としないから．
 オープンで扱いやすいから．
 現象を目で確認できるから．
 Variability を出しやすい，複雑度を変えやすいから．
 レイアウト 電車の編成数
 電車の個体差（モータ回転数，連結数，台数）
 豊富な制御対象： 電車，ポイント，ターンテーブル，信号機，踏切…
 センサの種類
 デモシナリオ
九州大学大学院システム情報科学研究院

演習内容
1日目（4月25日）

C言語文法座学＆小演習～3日目（4月27日）

4日目（4月28日）

C言語文法座学＆大演習（万年暦作成）

5日目（5月6日）

モータ駆動回路作成

6日目（5月9日）

組込みボード試用（サンプルプログラム使用）

7日目（5月10日）

電車模型デモプログラム実装（電車速度PWM制御）

8日目（5月11日）

電車模型デモプログラム実装（ポイント切替制御）

9日目（5月12日）

電車通過センサ回路作成

10日目（5月13日）

電車模型デモプログラム実装（一周：加速→最高速度→低速→停止）

11日目（5月16日）

電車模型デモプログラム実装（シナリオ運転）～
15日目（5月20日）

九州大学大学院システム情報科学研究院

ハードウェア概要

ITRONボード（１）

九州大学大学院システム情報科学研究院

ITRONボード（２） プロセッサは SH2．
 OSはITRON（TOPPERS）
 周辺回路： 8bit パラレル出力 * 1
 8bit パラレル入力 * 1
 トグルスイッチ * 4
 プッシュスイッチ * 4
 7セグメントLED * 4
 液晶ディスプレイ * 1
 8 * 8 LEDマトリックス * 1
 ブザー シリアル入出力 * 1
 LAN * 1
九州大学大学院システム情報科学研究院

レール
モータ駆動回路より給電．

九州大学大学院システム情報科学研究院

ポイント

モータ駆動回路より給電．
九州大学大学院システム情報科学研究院

モータ駆動回路（１）九州大学大学院システム情報科学研究院

モータ駆動回路（２） 2bit でモータを制御．
 8bit のパラレル出力＝4系統のモータ駆動回路
AA

B

動作

00

停止

10

正回転

01

逆回転

1

1

制動

B

M

九州大学大学院システム情報科学研究院

モータ駆動回路（3）PWM制御：
 モータにパルス状に電流を流す．
 パルスのデューティ比を変えて速度制御する．

速度

九州大学大学院システム情報科学研究院

電車通過センサ

九州大学大学院システム情報科学研究院

センサ回路（１）

九州大学大学院システム情報科学研究院

センサ回路（２）センサの原理：CdSセル： 光の強度で抵抗値が変わる素子．

九州大学大学院システム情報科学研究院

レイアウト全容（１）

九州大学大学院システム情報科学研究院

レイアウト全容（２） 各送電区間（赤，青，黒）への送電により電車を制御．
 3つのポイントを同時制御．
 8ヶ所のセンサで電車の通過を検知．（イベント源）
九州大学大学院システム情報科学研究院

演習課題
 要件
 当該システムは手動運転モードと自動運転モードを有する．
 送電区間は3区間とし，3つのモータ駆動回路で制御する．
 3つのポイントは全て同じひとつのモータ駆動回路で制御する．
 手動運転モード： トグルスイッチで選択した送電区間に存在する電車の速度を，時計回り加速，反時計周り加速プッシュボタンで制御する．
 自動運転モード： プッシュボタンで選択したシナリオに従って，2台の電車を自動運転する．
 緊急停止ボタンを押すと全列車が停止する．

 指示
 自動運転のシナリオを作成せよ．
 状態遷移図または状態遷移表を設計してから実装せよ．

九州大学大学院システム情報科学研究院

シナリオ例
1. 普通列車が駅を出発する．
2. 普通列車は順次加速，その後最高速度で走行する．
3. 普通列車が半周回ると，特急列車は普通列車を追って駅を出発する．
4. 特急列車は順次加速，その後最高速度で走行する．
5. 普通列車は駅の待避線に進入し，順次減速，停止する．
6. 普通列車停止後，特急列車は駅の通過線に進入し，駅を通過する．（普通列車を追越し．）
7. 特急通過後，普通列車はスタックに進入，停止する．
8. 特急は1周後，駅に停車する．
9. 普通はスタックから駅に進入，停止する．
九州大学大学院システム情報科学研究院

デモ

九州大学大学院システム情報科学研究院

学生たちが直面した問題

学生たちが直面した問題
 車両が振動する．
 原因： モータ制御の周波数が低かった．
 周期は20msぐらいならば違和感なく動作した．

 ポイントが切り替わらない．
 原因： 電磁石への通電時間が短い．
 100ms 通電すればOK．（別の学生は 30ms で十分とも．）

 脱線する．
 原因： センサの信号を検知してからポイントを切り替えるまでの時間が短く，電車がポイントに乗っているのにポイントを切り替えてしまう．

 電車の通過が検知できない．
 原因： ポーリングの周期の問題．

 問題がどこにあるのか絞りにくい．
 線路不良，半田不良からソフトウェアのエラーまで．

 センサの問題
九州大学大学院システム情報科学研究院

センサ問題（１） 【症状１】１両編成だとうまく自動運転できていたのに，3両編成だとうまくできなくなった．
 【症状２】特急「にちりん」だとうまく自動運転できていたのに，新幹線「のぞみ」だとうまくできなくなった．
 【症状３】新幹線「のぞみ」は直線部だと通過を正しく検知できていたのに，曲線部だと通過を正しく検知できなくなる可能性が見つかった．
 【症状４】特急「にちりん」は低速だと通過を正しく検知できていたのに，高速だと通過を正しく検知できなくなった．

九州大学大学院システム情報科学研究院

センサ問題（２）センサ波形の違い（上：1両編成，下：3両編成）

九州大学大学院システム情報科学研究院

センサ問題（３）センサ波形の違い（上：のぞみ，下：にちりん）

九州大学大学院システム情報科学研究院

センサ問題（４）センサ波形の違い（上：直線部，下：曲線部）

九州大学大学院システム情報科学研究院

センサ問題（５）CdSセンサは反応が遅い．
センサ波形の違い（上：低速時，下：高速時）

九州大学大学院システム情報科学研究院

センサ問題（６）ポーリング周期の問題．
センサ波形の違い（上：短周期，下：長周期）

九州大学大学院システム情報科学研究院

まとめ他

学生たちの感想 今回のソフトウェアは非常に複雑だったので，各タスクの関係や入力ポート，出力ポートのビット割当などを図や表にまとめてから作成に取り掛かった．
考えたことを書き加えていくことで考えが整理され，非常にわかりやすかった．これまではこのようなプログラムの仕方はしなかった．
 ほとんどドントケアで（状態遷移）表が埋まってしまっているのだが，ドントケアでないほんの数箇所を考えるだけで長い時間を必要とした．
 実際に動かさないとわからない，列車が区間を通過するのに必要な時間などの要素すべてに対処するような状態遷移を設計する必要性と難しさを感じたものの，時間が足りずどうしようもなかった．
 作成するプログラムが動作するのを，列車の動きによって見ることができるのは楽しくもあり，充実感もありました．
 マルチタスクプログラミングをどのようにやるかがわかってきた．
 今までよりビット演算やシフト演算に習熟したと思う．

九州大学大学院システム情報科学研究院

教員側の感想 「摺り合わせ」の何たるかが少しわかった気がした．
 成功させるにはコーディネーションはとても大事である．
 今まではボードと仕様を渡して丸投げ．→うまくいかず 粒度の小さいマイルストーン設定が重要．

 余計な感想と後悔： 学生の「電の字」離れを食い止めたかも．
 オープンキャンパスでの展示で理系離れを食い止めたかも．
 しんどかったけどやってよかった．
 もっと早くやるんだった．

九州大学大学院システム情報科学研究院