Model Driven Developmentを用いた組

41
2004 Model Driven Development 1ADT2418 ミュ 1

Transcript of Model Driven Developmentを用いた組

Page 1: Model Driven Developmentを用いた組

東海大学 2004年度 卒業論文

Model Driven Developmentを用いた組込みシステム開発研究

指導教員 清水尚彦 教授

1ADT2418 御村武生東海大学 電子情報学部 コミュニケーション工学科

1

Page 2: Model Driven Developmentを用いた組

目 次

第 I部 序論 7

1 はじめに 7

1.1 本稿について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 サーベイヤプロジェクトの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3 東海大学サーベイヤプロジェクトの概要 . . . . . . . . . . . . . . . . . . . . . . . 7

第 II部 サーベイヤプロジェクト 8

2 Hamana-1 8

2.1 Hamana-1の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Hamana-1のシステム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 データロガーの要求と分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 データロガーで用いるデバイス選定 . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 データロガーのシステム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5.1 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6 実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6.1 第一回モデルロケット打ち上げ実験 . . . . . . . . . . . . . . . . . . . . . . 112.6.2 昇圧実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6.3 ラジオビーコン実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6.4 GPS実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6.5 第二回モデルロケット打ち上げ実験 . . . . . . . . . . . . . . . . . . . . . . 132.6.6 防水実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.6.7 逆噴射実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7 実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8 実装結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 MDDロボットチャレンジ 18

3.1 システム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3 モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3.1 システムに要求される機能の分析 . . . . . . . . . . . . . . . . . . . . . . . 183.3.2 要求分析モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

例外シナリオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.3 設計モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.4 実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.4.1 超音波実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.4.2 赤外線実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2

Page 3: Model Driven Developmentを用いた組

3.5 ハードウェア実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.5.1 飛行船ハードウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

飛行船部 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.6 ソフトウェア実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.6.1 飛行船ソフトウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.7 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

第 III部 東海大学サーベイヤプロジェクト 31

4 SHMZプロジェクト 31

4.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Hamana-1からの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.3 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4 開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.4.1 モデルロケット開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4.2 ハードウェア開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4.3 ソフトウェア開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.5 実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.6 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5 飛行船プロジェクト 34

5.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 システム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.3 実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3.1 ハードウェア実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.3.2 ソフトウェア実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.4 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

A 電流計算 37

B 基板作成 39

3

Page 4: Model Driven Developmentを用いた組

図 目 次

1 2004年度サーベイヤプロジェクトの企画 . . . . . . . . . . . . . . . . . . . . . . . 72 Hamana-1構成要素の関係と流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 測定方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 測定器具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 データロガーの回路構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 蛇の目基板で作成したテスト基板 . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 打ち上げ距離の測定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 昇圧実験の回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210 昇圧された出力電圧波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211 ラジオビーコン回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312 発振回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313 GPSデータ受信回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314 外部回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415 逆噴射実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416 データロガー全体の回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1517 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618 bottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619 データロガー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720 データロガーの計量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721 MDDロボットチャレンジの競技内容 . . . . . . . . . . . . . . . . . . . . . . . . . 1822 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1823 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1824 ユーザ・全体システム間ユースケース図 . . . . . . . . . . . . . . . . . . . . . . . 1925 飛行船システム・管制塔システム間ユースケース図 . . . . . . . . . . . . . . . . . 1926 管制塔システム・飛行船システム間ユースケース図 . . . . . . . . . . . . . . . . . 1927 シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2228 飛行船ステートチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2329 管制局ステートチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2430 飛行船アクティビティー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2531 管制局アクティビティー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632 超音波送信回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2734 赤外線回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2735 赤外線送信のテスト回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2733 超音波受信回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2836 ハードウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2837 制御部の関係図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2838 回路構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2939 model~ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2940 赤外線受信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2941 モデルから作成した疑似コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4

Page 5: Model Driven Developmentを用いた組

42 疑似言語から作成した Cコード . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3043 飛行船ソフトウェア構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3044 構成要素の関係と流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3145 開発スケジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3246 データロガー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3247 解析結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3348 一次軸飛行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3449 飛行船回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3450 0.1秒タイマ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551 飛行船 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3552 入力電流の等価回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3853 LX-Timeのグラフ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5

Page 6: Model Driven Developmentを用いた組

表 目 次

1 Hamana-1システム構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 デバイス選定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 使用モデル図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 飛行船と管制局の必要なデバイスと要求の関係 . . . . . . . . . . . . . . . . . . . . 205 ハードウェア (HW),ソフトウェア (SW)で実現させる機能の分割 . . . . . . . . 206 変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6

Page 7: Model Driven Developmentを用いた組

第 I部

序論

1 はじめに

1.1 本稿について

この一年間を通じ、実践で組込み技術を学ん

だ。参加した企画は、サーベイヤプロジェクト

[1]のHamana-1,飛行船ロボットコンテストと東海大学サーベイヤプロジェクトの SHMZプロジェクト,飛行船プロジェクトである。

本稿では、サーベイヤプロジェクト [2][3],東海大学サーベイヤプロジェクトを通じ学習,経

験したことのまとめを行う。

1.2 サーベイヤプロジェクトの概要

現代の高機能工業製品において組込み技術は

必要不可欠である。しかし、組込み技術者の学

習環境は十分とは言えない。

サーベイヤプロジェクトは、組込みシステムと

ソフトウェアの開発技術向上を目指して学習環

境と教材を作りあげるために考案された。この

計画は、(図 1)で構成され現在も継続中である。

1.3 東海大学サーベイヤプロジェクトの概要

東海大学サーベイヤプロジェクトでは、Hamana-1、MDDロボットコンテストで出来なかったこ

Hamana-1�������

MDD ����� �������

7 �

10 �

図 1: 2004年度サーベイヤプロジェクトの企画

と,失敗に終わったことを、再度チャレンジし

成果を出す為に行われたプロジェクトである。

内容として、モデルロケットの打ち上げ軌道

を GPSユニットを用い記録、解析するモデルロケットプロジェクト,飛行船の自律飛行を目

指す飛行船プロジェクトを行う。

7

Page 8: Model Driven Developmentを用いた組

第 II部

サーベイヤプロジェクト

2 Hamana-1

2.1 Hamana-1の概要

Hamana-1プロジェクトは、SWEST6(SummerWorkshop on Embedded Technologies)の中で行われた企画である。この企画は、GPSを用いたデータロガーを搭載したモデルロケットの軌

道の収集とロケット回収後に収集したデータの

解析を行った。我々は、この企画の中でデータ

ロガーの開発を行った。学部生が中心となった

初めての開発であり、技術的、知識的にも多く

の困難があったが本番はデータの収集・分析を

行うことができた。

2.2 Hamana-1のシステム構成

Hamana-1のシステム構成、(表 1)に示す。

表 1: Hamana-1システム構成

探査体 小型モデルロケット

データロガーGPSを用いて打ち上げ軌道を記録する

基地局発射地点測位システ

管制発射局

ロケットの打ち上げ,

搭載 GPS の動作をサポートするシステ

観測局

打ち上げ軌道を地上

から測定するシステ

軌道分析打ち上げ軌道を解析・

表示するシステム

Hamana-1構成要素の関係と流れを (図 2)に

���

�����( ��� 1)

� ���������

GPS ���

GPS ���

�����

(3)��� ,GPS ���

(4)�� , !#"

(5) $�%�& '�(

(6) $�%�&�)�*,+�-�.

(1) /�0213547698;:9<7=

!!

>@?2A;B2CED OPEN!!

FHGJI!!

(2) K�L�L�M

N�O�PRQ %�S�T

図 2: Hamana-1構成要素の関係と流れ

示す。

観測局については (図??)を用い、ロケットの打ち上げ高度を目測する。測定方法を (図 3)に示す。また、角度を測定するための器具は (図.4)

����������� �

x y

z

� �

����� ������������� �

図 3: 測定方法

Hamana-1プロジェクトの開発は、産学共同の分散開発で行った。東海大学では、データロ

ガーの開発を担当したため、データロガー開発

ついて述べる。

2.3 データロガーの要求と分析

2.3.1 要求

データロガーの開発を行うにあたり、以下に

示しす要求がある。

1. GPSデータの記録

8

Page 9: Model Driven Developmentを用いた組

図 4: 測定器具

• GPSのデータを記録するための要求は、以下の通りである。

GPSのデータを記録するための記録デバイスが必要である。

打ち上げ軌道を記録する時間は、発

射準備の時間などを考慮すると約 5分の記録時間が必要である。

2. サイズ

• モデルロケットに搭載しなければならないため、防水を施したデータロ

ガーのサイズは 38mm× 30mm以内。

3. 重量

• 目標到達高度が約 50mに設定したため、モデルロケットに搭載可能な

重量は 40g以内。

4. 防水

• ロケット着陸時にデータロガーが濡れてしまうと、記録したデータが消

えてしまう可能性があるため防水を

行わなければならない。

5. ロケット発見のための信号

• 波の影響で発見・回収が困難と予想されるため、発見用の信号をデータ

ロガーから出す必要がある。

2.3.2 分析

(2.3.1)で表した要求について分析した結果、データロガーに必要なデバイス,回路を以下に示す。

1. マイクロコントローラ

• GPS ユニットからデータを受け取り、記録素子にデータを読みだし,

書き込みを行うためデータを制御す

るためのものが必要である。

2. 水晶発振子

• マイクロコントローラの周波数が安定していない場合、データが正確な

値にならない可能性がある。そのた

めに、マイクロコントローラの周波

数を安定させるための水晶発振子を

用いる。

3. リセット IC

• マイクロコントローラの電源投入時の電圧が安定していない可能性があ

り、デバイスを破壊してしまう可能

性がある。リセット ICを用い、マイクロコントローラの電源投入時に

安定した電圧を与える。

4. DC/DCコンバータ

• ロケットに搭載可能な電源の総電圧は 3.0vであるのに対し、GPSユニットの駆動電圧は、3.3vである。そのため、昇圧を行わなければならな

い。また、安定した電圧にするため、

DC/DCコンバータを用いる。

5. EEPROM

• 常に回路に電圧を与え続けることは、難しい。よって、電源が入っていな

い状態においてもデータが消去され

ない EEPROMを用いる。

6. 電源

9

Page 10: Model Driven Developmentを用いた組

• モデルロケット打ち上げ準備から着水までの時間、データロガーが起動

させるための電力が必要。

7. ラジオビーコン回路

• 浜名湖で打ち上げを行うため、着陸地点は海である。波の影響でロケッ

トの発見が困難であると考えられる

ため、電波を用いた探索方法を用い

る。

2.4 データロガーで用いるデバイス選定

(2.3)の結果より、データロガーに必要なデバイスの種類が決定した。

次に行うことは、条件を満たすデバイスを選

定することである。選定したデバイスを (表 2)に示す。

表 2: デバイス選定

マイクロコントロー

ラMEGA16L-TQFP1

水晶発振子 CSTCR G( A)

リセット ICLM3722IM-3.08CT-ND

DC/DCコンバータ MAX1675

EEPROM AT25HP512(LAP)

ラジオビーコン (図??))に示す

電源 CR2

以下にそれぞれ選定したデバイス理由を示す。

1. AT25HP512(LAP)

• AT25HP512の容量は、512kbitである。この容量では、GPSデータを約8分間記録することができる。

2. MEGA16L-TQFP1

• MEGA16Lのサイズは、44pinの約12m× 12mとデータロガー作成に

は、多少大きい。しかし、EEPROMとの通信のための SPI シリアルインタフェースが搭載されており、プ

ログラムダウンロード用 Flashメモリが 16kbit であり、データロガーを作成するにあたり十分だと考えら

れる容量があったため MEGA16L-TQFP1を選定した。

3. CSTCR G( A)

• CSTCR G( A)は、4.00MHz~7.99MHzの周波数を出すことが可能なデバイ

スである。また、周辺回路の必要が無

く、サイズも小さいためCSTCR G( A)を選定した。

4. LM3722IM-3.08CT-ND

• MEGA16L-TQFP1に電圧を安定した状態で与えることができるため、

LM3722IM-3.08CT-NDを選定した。

5. MAX1675

• MAX1675は、出力電圧 3.3Vでデータロガーを動かすために必要な電流

を流すことができ、

6. 電源

• CR2 はリチウム電池である。そのため、大量の電流を流した場合、電

池が破裂してしまう可能性がある。

しかし、メーカに問い合わせたとこ

ろ、今回、使用する範囲では破裂し

ないことが解かった。CR2の容量は、3V,850mA/Aである。

2.5 データロガーのシステム構成

データロガー全体の構成は (図 19)の通りである。ここで、かるく回路の説明をする。

2.5.1 開発スケジュール

開発期間を (図.6)に示す。

10

Page 11: Model Driven Developmentを用いた組

DC/DC���������

EEPROM

GPS � ��� ���������

��� ���������� � � �

!�"$#�% ��� � % �

&(' ) &(* " �),+ ��� " �

図 5: データロガーの回路構成図

2.6 実験

実験を行うにあたり、回路作成が必要になる。

開発当初では、蛇の目基板にデバイスを着け配

線をした。

回路規模が大きくなると、線類を多く用いた

回路設計になってしまう可能性がある。

(図.7)のように、線類が多い設計では、

• 配線の接続チェックが困難になる可能性がある。

• 何らかの衝撃で配線が切れてしまう可能性がある。

のデメリットがある。

線類を多く使用した設計を行うと、上記など

の原因により開発進行がおくれてしまう。

こののような状況を解決する手段の一つとし

て、感光基板を用いることにした。

感光基板で回路作成する場合のメリットとし

て、

• 線類を用いない設計が容易になる。

• 複製が蛇の目基板を用いるより容易になる。

などがある。しかし、感光基板で回路作成する場

合のデメリットもあるため、それを以下に示す。

• 専用の機材が必要

4�

17 ��� SWEST �������� ����

�����������3 ��� �

����� �!#"%$�&�'

7 � 18 (*SWEST6)*,+�-7 � 23 ( 7:30

.2 /�0�1�27 3 11 4

51 6�7�8�95 � 9 (

������:4 ��;�<=�>�?A@�BDCFE G,HFIFJFK�LNMPO�Q BDR�S

T�UV�WYX[Z

\^] _F`DaAb�cYd^e,fGPS g�h�iFj�k%l m�n

o[p[q�rAs�t[ulv[w�x[y�z,{�|�}�~

s[�[��� !!

�����[�A���������� �����

������� l����������� r l v[w������� h {[�������^�% �¡[¢

図 6: 開発スケジュール

研究室には、感光基板作成用の機材が揃って

いるため、蛇の目基板を用いず感光基板を用い

て回路設計することにした。

全体の回路を作成する前に、デバイス単体の

テストを行い、それぞれのデバイスが使えるか

どうかの確認を行う。実験内容は、実際に取り

組んだ内容順に記述する。

2.6.1 第一回モデルロケット打ち上げ実験

この実験では、以下のことを確認した。

1. モデルロケットがどのように飛ぶのか

2. モデルロケットを打ち上げる手順の確認

3. 観測局のテスト

などを行った。

観測の結果、それぞれの測定値は約 50度~60度であったため、モデルロケットの飛行距離は約 70~80mである。

11

Page 12: Model Driven Developmentを用いた組

図 7: 蛇の目基板で作成したテスト基板

図 8: 打ち上げ距離の測定

2.6.2 昇圧実験

昇圧実験を行う前に、MAX1675を用い要求される電圧・電流が全てのデバイスに提供でき

るかを調べるために、(APPENDIX.A)に記述してある電圧・電流計算式を用いた。

電流・電圧計算には、DC/DCコンバータの入力端子に接続しているインダクタの特性が密接

に関係してくる。今回、インダクタはCDRH6D28-220(最大入力電流 1.2A,直流抵抗 95mΩ)を使用した。

(APPENDIX.A)の電流・電圧計算の計算式を用いた結果とDC/DCの仕様からDC/DCコンバータ入力電圧が約 1.7までは、データロガーの駆動が可能である。

理論上の確認ができたが、実際に動作するの

かを確かめるために昇圧実験を行う。昇圧実験

回路を (図.9)に示す。

図 9: 昇圧実験の回路

図 10: 昇圧された出力電圧波形

2.6.3 ラジオビーコン実験

開発当初、ラジオビーコンの用途は、(2.3)で示した。しかし、開発状況の遅れのため、外部

との通信 (GPS状態の確認)を赤外線を用いた通信方法から、ラジオビーコンを用いた通信方

法に変更した。

ラジオビーコンの回路を (図.11)に示す。ラジオビーコン回路を作成するにあたり、共

振回路部分 (図.12)のインダクタとコンデンサの距離が離れてしまうと全く共振しなくなるな

め、2つのデバイスを極力近く設計したければならない。

ラジオビーコン回路を作成するにあたり以下

のことを注意した。

• 受信距離を長くする。

• 周波数が他のラジオの電波帯と重ならないようにする。

12

Page 13: Model Driven Developmentを用いた組

図 11: ラジオビーコン回路

図 12: 発振回路

受信距離を長くするために、アンテナを用い

るという考えがあった。しかし、アンテナをモ

デルロケット外部に出すとなるとモデルロケッ

ト内部に水が入ってしまう可能性があるため、

アンテナは使わないことになった。

他のラジオの電波帯と重ならないようにする

ために、共振回路のインダクタを自作インダク

タにすることで周波数の変更を可能にした。し

かし、自作インダクタにしたことにより、何ら

かの衝撃でインダクタの形が変形してしまうと

周波数が変わってしまうというデメリットも発

生した。

2.6.4 GPS実験

GPSユニットから出力されたデータを受信する回路を (図.13)に示す。

(図.13)の回路は、トランジスタを用いたことにより GPSの主電源コントロールを行うことができる。使用する GPSユニットの消費電力が約 88mAと大きいため、必要な時以外は電

図 13: GPSデータ受信回路

源を落す必要があった。

今回、測定のために必要なGPSデータは、高度,緯度,経度の 3つである。高度を計ろうとすると、GPSユニットは衛星の数を 5こ以上キャッチしなければならない。衛星の数を 4こ以下の場合、高度の誤差が大きくなる。

衛星の数を 5こ以上キャッチするために必要な時間は、実験により、最速で約 3分かかる。しかし、受信状況によっては、衛星の数を 5こ以上キャッチする時間が安定しない。

より精度が良い状態でデータを記録するため

に、GPSユニットが衛星の数を 5こ以上キャッチした状態で EEPROMにデータを書き込む必要がある。GPSデータを記録するための EEP-ROMの容量が 512kByteであるため、GPSデータは、約 8分しか書き込むことができない。そこで、衛星の数を 5こ以上キャッチした状態

をラジオビーコンで確認し (図.14)に示す外部回路を用い EEPROMの書き込みのコントロールを行った。

2.6.5 第二回モデルロケット打ち上げ実験

この実験では、以下のことの確認を行った。

• GPSを用いた高度データの受信テスト

13

Page 14: Model Driven Developmentを用いた組

図 14: 外部回路

• モデルロケットの軌道確認

• 観測局のテスト

この実験場所は、富士山で行うため、移動中

にデータロガーを起動し GPSデータの受信・記録を行った。このデータを地図で確認した結

果、ほぼ正確な値を示していた。

また、今回の打ち上げ実験において、打ち上

げたモデルロケットが紛失してしまった。その

ため、もう一度、モデルロケットを作成するこ

とになり、データロガーの要求も若干であるが

変更された。変更された点は、データロガーの

大きさが数mm大きくなるという点である。

2.6.6 防水実験

防水実験で確認することは、

• 防水ができるのか。

• 防水を施したデータロガーが水に浮かぶのか。

防水のため、35mカメラフィルムケースに、データロガー,GPSユニット,電源を納め、フィルムケースの外側をテープで覆った。この状態で

約 1 時間、水につけておくことで、防水が可能かどうかを確かめた。結果、フィルムケース

の内部に水が入ってなかった。よって、防水は

35mmフィルムケースを用いることにした。防水を施したデータロガーは、水入れると沈

んでしまうため、フロートを用いることで、水

に沈まないようにした。

2.6.7 逆噴射実験

逆噴射実験では、以下の確認を行った

• モデルロケットが正常に逆噴射するかどうか

• 逆噴射を行い、搭載してある回路が落下衝撃に耐えられるかどうか

結果、逆噴射は成功し、回路も落下衝撃にも

耐えられることが解かった。

図 15: 逆噴射実験

2.7 実装

回路規模を小さくするために、両面感光基板

を用いる。回路設計のために、CADツール EA-GLEを用いる。EAGLEを用いて作成した回路が (図.17)(図.18)である。

(図.17)(図.18)の回路図をもとに、(??)に示してある手順を行い基板を作成した。基板に実

装する全てのデバイスは、手半田で実装した。

14

Page 15: Model Driven Developmentを用いた組

図 16: データロガー全体の回路図

2.8 実装結果

求められた要求を満たすために、いくつかの

実験を行った。そのために要求を満たすデータ

ロガーを作成できた。作成したデータロガーの

サイズは 28mm× 30mmに抑えることができた。その結果、データロガー, GPSユニット,電源を 35mmカメラフィルムケースに納めることができた。(図.19)また、防水を施したデータロガーの重さは 38g

に抑えることができた。(図.20)

15

Page 16: Model Driven Developmentを用いた組

AV

R

N P N - T R

C7

C6

10

KC

8L

1

C9C

5

JP1

JP2

L2

R1

JP3

FMMTH10CT-ND

0.01

uF0.

1uF

R3

33pF

4.7p

F 10pF 220

図 17: top

C4

C2C3

L

C1

PNP-TR

R2

01uF

0.1uF

47uF

22uH47uF

MMBTA55DICT-ND820

図 18: bottom

16

Page 17: Model Driven Developmentを用いた組

図 19: データロガー

図 20: データロガーの計量

17

Page 18: Model Driven Developmentを用いた組

�����

��������

Ir/US ������ 3

Ir ��� ��

US

IrDA

IrDA

WP2

WP1

US �������IrDA �������

図 21: MDDロボットチャレンジの競技内容

3 MDDロボットチャレンジ

MDDロボットチャレンジは、飛行船の自律飛行を行わせるための基地局と飛行船に搭載す

る制御回路の開発を行った。

この開発ではモデリングを行いチーム開発を

しなければならない。使用したモデルは、UML12.0である。モデリング言語は現在多く存在し広範

囲の分野で使用されているが、UML2.0は現在モデリング言語の中で汎用的であるため選択

した。

3.1 システム構成

開発するシステム構成は (図.22)の通りである。

それぞれの担当を定め、開発を行った。この

プロジェクトでは、主に飛行船ソフトウェアの

担当した。

3.2 開発スケジュール

スケジュールを (図 23)に示す。システムの仕様を決定した後、ハードウェア、ソフトウェ

アの開発を並行して行った。

3.3 モデル

モデリングに用いた図を表 3にまとめる。

1Unified Modeling Language

������������ ��

����� ������ ��

����������� �� ��

図 22: 開発スケジュール

HW

SW

SW

8�����

( ���� )

( �� � )

���� - �� � ����� �����- ��� ��� �����

���� �! !"

HW # SW ��$&%('�)START *�+�, #�-�.�/���� ��0 �219��3��

10�

14 4END

5687 �:9 ;:< 6!= �9

10�

9 4

10�

12 4

>?& 0 �21

@BA C�D &6E ����F �

9�8G �

図 23: 開発スケジュール

3.3.1 システムに要求される機能の分析

モデリングを始める前にシステムに要求され

る機能の分析を行う必要がある。対象となる自

律飛行システムは多くの機能を必要とし、どの

機能を何で実現するかがその開発に影響を及

ぼす。

まず、ハードウェアで実現する機能を列挙し

必要なデバイスとの関係を検討した (表 4)。次に表 4の関係を展開し、ハードウェア-ソフトウェア両方で実現する機能の分割を行った (表

表 3: 使用モデル図

モデル 使用図

概念モデル クラス図

分析モデルユ ー ス ケ ー ス 図

(ユースケース記述)

設計モデル

シーケンス図、ア

クティビティ図、ス

テートチャート図

18

Page 19: Model Driven Developmentを用いた組

5)。機能分割をすることでソフトウェアで行う作

業、ハードウェアで行う作業を明確にすること

ができ、両システムのそれぞれのモデル作成、

開発を行い易くできた。

3.3.2 要求分析モデル

機能分割からさらに詳細に要求の分析、定義

を行うためユースケース図を作成した (図 24、図 25、図 31に図示する)。要求分析ではあまり細かなユースケースに分けてしまうと、図が複

雑になってしまい要求を捉えることができなく

なってしまう。この段階で、ユーザ・全体のシ

ステム間のユースケース図を作成し、ユーザが

競技に参加した時にシステムのどのユースケー

スを使用するのかを明確にした (図 24に図示する)。

���������

� ���� ��

base � � ��� ������� � � ��� ��

���������������� �

�� ���!�" ���

#�$ �%���

Ir/US &�'�( �#�$����� �*)�+�,�- �/.�0#�$

図 24: ユーザ・全体システム間ユースケース図

���

��� ���� ��

<<include>>

�������������

����� �������

<<include>>

図 25: 飛行船システム・管制塔システム間ユースケース図

次に、作成したユースケース図を元に、ユー

スケースの記述を行った。ここでは、それぞれ

������� �� � ���

������� ��

��������� ��!"$#&%('�) *�+

, -�. ��� ��!

図 26: 管制塔システム・飛行船システム間ユースケース図

のユースケースについての概要、ユースケース

を使用するアクター、動作詳細、正常シナリオ、

例外シナリオ、例外シナリオ時の解決方法を記

述した。多くの例外シナリオを考えることで、

どのような準備をしておけばよいのかが分かり

対処をすることが可能である。 3つの関係か

らユースケース図を作成することで問題領域を

抽出した。その中から例外が出る可能性のある

箇所を話し合い、どのような解決をしたら良い

かを検討した。例外シナリオや正常シナリオの

見直しを行った場合は、その都度メンバと話し

合いで追加・変更を行った。

例外シナリオ 我々は、要求分析で作成した3

つのユースケース図から多くの例外シナリオを

考え、解決方法を検討した。以下に検討した例

外シナリオと解決方法を示す。

• ユーザ・全体のシステム間の例外シナリオ (図 24)

– 例外シナリオ

(1)ユーザがプログラムを開始したが自動制御飛行が行われない。

– 解決方法

(1)・管制塔システムの PCに接続している

RS-232Cのケーブルの接続の確認

・飛行船システムに搭載した電池

の確認

19

Page 20: Model Driven Developmentを用いた組

表 4: 飛行船と管制局の必要なデバイスと要求の関係

飛行船 管制局

要求 デバイス 要求 デバイス

赤外線を受信する 赤外線受信モジュール 赤外線を受信する 赤外線受信モジュール

赤外線を送信する 赤外線送信モジュール 赤外線を送信する 赤外線送信モジュール

超音波を受信する 超音波受信モジュール 超音波を受信する 超音波受信モジュール

モーターを動かす モーター 超音波を送信する 超音波送信モジュール

演算制御 M16マイコン 演算制御 PC(Linux)

表 5: ハードウェア (HW),ソフトウェア (SW)で実現させる機能の分割

飛行船 管制局

要求 HW SW 要求 HW SW

赤外線送信 ○ ○ 赤外線送信 ○ ○

赤外線受信 ○ ○ 赤外線受信 ○ ○

超音波受信 ○ ○ 超音波送信 ○ ○

モーター回転 ○ ○ 超音波受信 ○ ○

時間の計算 × ○ 現在位置の検出 × ○

メッセージ投下 ○ ○ モーター制御信号の作成 × ○

エラー処理 × ○ 次に行く位置の算出 × ○

受信確認用信号の送信 ○ ○ 飛行経路の記録 × ○

モーター制御信号の解析 × ○ 送信信号の記録 × ○

- - - 通信状態確認信号の送信 ○ ○

- - - 終了用メッセージ要求信の送信 ○ ○

- - - エラー処理 × ○

・Ir/US送信機を配置した位置の確認

以上のことを確認し、プログラムを

再度実行する。

• 飛行船システム・管制塔システム間の例外シナリオ (図 25)

– 例外シナリオ

(1)管制塔システムが受信状態コマンドを送信したが、飛行船システム

からの受信可能コマンドを受信でき

ない。

(2)管制塔システムが飛行船制御用信号を送信したが、ある一定の時間

が過ぎても飛行船は受信することが

できない。

(3)管制塔システムは飛行船制御用コマンドを送信後、ある一定の時間

が過ぎても位置情報通知用信号を受

信できない。

(4)管制塔システムが受信した位置情報通知用信号に含まれている3つの

時差情報が2つ以下になっている。

20

Page 21: Model Driven Developmentを用いた組

– 解決方法

(1)管制塔システムは、一定の時間受信可能コマンドが送信されてくる

のを待機し再度受信状態確認コマン

ドを送信する。

(2)飛行船は上下用プロペラ以外の駆動を止め、再度飛行船制御用信号

がくるのを待つ。

(3)管制塔システムは、位置情報検出用信号を再送信する。

(4)管制塔システムは、2つ以下になった位置情報通知用信号を破棄し

再送信されるのを待つ。

• 管制塔システム・飛行船システム間の例外シナリオ (図 31)

– 例外シナリオ

(1)飛行船システムは位置情報を送信したが、管制塔システムは受信す

ることができない。(2)管制塔システムは、飛行船システムからの位置通

知用信号を受信したが、CheckSumからエラーが含まれていることが分

かった。

– 解決方法

(1)管制塔システムは再度位置検出用信号を送信し、飛行船システムか

らの位置通知用信号が再送信される

のを待つ。

(2)管制塔システムはエラーの含まれた位置通知用信号を破棄し、次の

位置検出用信号を受信し制御用信号

の作成をする。

3.3.3 設計モデル

使用した設計モデルの用途は以下の通りで

ある。

• シーケンス図

– 飛行船・管制局間の通信を動的に確

認するために用いた。また、シーケ

ンス図を作成するにあたり、動作を

くり返すという記述をしたが、本来

のシーケンス図には、このような記

述 (文法)はない。

• 飛行船ステートチャート図

– 飛行船の各機能単体の動きを把握す

るために用いた。

• 管制塔ステートチャート図

– 管制塔の各機能単体の動きを把握す

るために用いた。

• 飛行船アクティビティー図

– 飛行船のプログラム全体の流れを把

握するために用いた。また、アクテ

ィビティー図が設計の主なモデルと

なった。

• 管制塔アクティビティー図

– 管制塔のプログラム全体の流れを把

握するために用いた。

3.4 実験

飛行船を自律飛行させるためには、超音波・

赤外線通信が必要であるため、超音波実験,赤

外線実験を行った。

3.4.1 超音波実験

飛行船の回路には、超音波受信回路を搭載す

れば良い。しかし、実験するにあたり、超音波

受信回路,超音波送信回路の両方を作成しなけ

ればならない。

超音波の送信距離を長くするために、超音波

発信器に与える電位差を大きくする必要がある。

そのために、RS232Cを用い、超音波送信機に

21

Page 22: Model Driven Developmentを用いた組

����������� �� �Ir���� � �� Ir ����� � �� US ����� �� �� �����

������������ () ��������������� () ����������� () � ����������� () �

!�"�#�$�%�&(Ir/US1) ' �!�"�#�$�%�&

(Ir/US1) '

(�)�*�+�, ��� () � (�)�*�+�, ��� () �

(�)�*+, ��� () � ()�*�+�, ��� () �

(�)�*+, ��� () � ()�*�+, ��� () �

-�.�/�021�34(Ir/US2) 5 -�.�/�021�3�4

(Ir/US2) 5

-�.�/�021�3�4(Ir/US3) 5-�.�/�021�34

(Ir/US3) 5

�� ����6, ��� () ��� ����6, ��� () �

7829�:; �� ��

<�= ��� ( >�? ) �

@�ACBD�EGFH 34() 5 @�AIB�D�EGFH 34

() 5<= ��� ( JK ) � L MCN�O�P ��� () �

L MCN�OP ��� () �

Q�R�S����UTWV2XY�Z\[�]

図 27: シーケンス

22

Page 23: Model Driven Developmentを用いた組

�������STOP

�������START

������ �� ����� ���������

����� ���������

� �������� � ����� ���������

� ����� � ����� ��!�"����

� ������#�$

%�&�'�(*) ��+ � �,��� �*-������

%,&�'�(*) ��+�.�/ � �,��� ���������

����0�1�2�3 � ����� ���������

����2�3 � ����� ��-������

4�5�6�7

�������

[4�5�6�7 #�8

= 3]

[else]

4�5�9�:�;�� ����� <�=

4�5�9�:�;�� ����� �*-������

Reception_Check

Message

Motor_Control

Position_Detection

�������STOP

図 28: 飛行船ステートチャート

23

Page 24: Model Driven Developmentを用いた組

����������� �� ����

� ��������� �� ����

�������

�������� �! ��

"�#%$'&�(

)+*�,�-�.�/

0%1�2�354 �6 �� � ����

0�1�2�354 �6�7�8 �� 5� ����

����������� � ����

9�: 3�;�<�= >@?A

[ BC ]

[ DBC ]

EGFIHIJLK�MGNPO+Q

EGFIHIJ+RIS�TVU = 3T

WIXIYPZV['\�X^]EIF'_V`VaLK%O�Q

WIXIY _�bGcIEGF K%`VaLK%O�QEIFGHdJLK�RIS�O�Q

WIXIYPZV['\%Xe]EIF�K�fIg�KVO+Q

WGXdY _%bIcGEGF

K�fGg'KVO�Q

h+i+jIi�kIlGm+n K�oGp+O�Q

h+i+jIi�kIlGm+n K�fGg+O�Q

h+i+jIi�kIl+mGn K�q m O�Q

[YES]

[NO]

� �r�s��� � ����

��tu��

jdvIw+iSTART

図 29: 管制局ステートチャート

24

Page 25: Model Driven Developmentを用いた組

airship_activity_Ver1

Ir���������

Ir�������

[ �� �����

���]

[ ����������� ��� ]

[ ���������� "!���#"$�% ��� ]

[���&�' ��� ��� ]

����� �!���# �)(��

*,+.-Ir /1032 Ir /1032US /1032

���4�5���� �)(��

��6�7�� START

US�����"�� ��6�7�� STOP

8�9�:�;

�� �<�=����� ������>�?

�� �<�=����� ������(��

������@�A

����������� ���

�"���

B3CED,FEG.H

図 30: 飛行船アクティビティー

25

Page 26: Model Driven Developmentを用いた組

Ir���������

Ir � � Ir � � US �� �

��������� �����

�������START

PC(LINUX)

Ir���������

�!�"�#�!�$

%�&�'�(�)�*�+ ,.- *�/�0

1�*�2�3�4�5�*�+ ,.- *�/�0

6�7�8�9�:�!�$

6�7�8�9�:�!�$ ;�<�=

[ >�?A@�BACAD�E FHG�I�J.K = 3 J ][NO]

[YES]

L�M�N ;�O�P 6�7 Q�RTS�UWV

L�M�N ;�O�P 6�7 Q�X�Y�UWV

Z�[�\�[�]�^!�$ Q�_ ! UWV

[ >�?A@�B�CAD�E `.aAD�bHc ]

�������STOP

[d�eHf�gihHj�k l�m�nHo�p�q ]

r�sHt�u�v�w�x*�+ ,.- *�/�0

[ y�z�{�|.}�~�F.��� ]

[ ��������������� ] [ ���i������������� ]

6�7�8�9�:�!�$ Q�����UWV

Z�[�\�[�]�^ !�$ Q�X�Y�UWV

L�M�NW���T��M�� 6�7 Q�RTS�UWV

Z�[�\�[�]�^ !�$ Q�����UWV

L�M�NT���T��M�� 6�7 Q�X�Y�UWV

[YES]

[NO]

[NO]

[YES]

図 31: 管制局アクティビティー

26

Page 27: Model Driven Developmentを用いた組

MAX232IN �����������

図 32: 超音波送信回路図

与える電位差を 24Vにした。作成した超音波送信回路を (図.32)に示す。超音波を受信した時に発生する電圧は、低い

ため増幅する必要がある。電圧増幅するために、

オペアンプを用いた。また、オペアンプ電圧増

幅率は、一段目のオペアンプで 2倍、二段目のオペアンプで 100倍に増幅した。出力された電圧波形を整形するためにフォトカプラを用いた。

作成した超音波受信回路を (図.33)に示す。作成した回路で超音波受信実験を行った結果、

超音波の受信距離は約 6mになった。

3.4.2 赤外線実験

赤外線通信は、飛行船のモータ制御,管制局

に対し時間情報を送信しなくてはならない。こ

のようにデータを乗せた通信を行わなくてはな

らないため、通信精度が高くてわならない。

作成した赤外線送信・受信回路を (図.34)に示す。また、実際に、赤外線送信実験に用いた

回路を (図.35)示す。(図.35)を用い通信距離のテストを行った。通

信距離を延ばすために、以下のことを行った。

• 赤外光を強くするために LEDを 2つ用いた。

• 使用した LEDが耐えられる最大電流を流した。流した電流は、1つの LEDに対し約 90mAである。

結果、データを乗せない状態では、最大通信

距離が約 4m~5m まで通信可能だった。しか

図 34: 赤外線回路図

図 35: 赤外線送信のテスト回路

27

Page 28: Model Driven Developmentを用いた組

+V�����������

� � ��� ������� ���� �����

+V

-V -V

+V

IN

図 33: 超音波受信回路図

し、データを乗せた状態の通信距離は、最大で

約 2mだった。

3.5 ハードウェア実装

3.5.1 飛行船ハードウェア構成

モデル飛行船のハードウェアは競技仕様に併

せて次の構成にした。(図 36)

• 制御部

• 通信部

• 回路部

• 飛行船部

・制御部

制御部はモデル飛行船のハードウェア制御を

行う。制御はルネサス製M16を搭載したOAKS-miniマイコンボードを用いた。M16の処理項目は、基地局との通信処理、基地局からの命令

の解読、モデル飛行船のプロペラ・モーター制

御である。(図 37)

・通信部

通信部は、赤外線送受信モジュール、超音波

受信モジュールで構成する。各モジュールの電

気信号は、回路部にて変圧、増幅している。

�����

����

����

���������

����� �����

���! "�$#%

&(')+*-,/.021�354�6�7

#% �M16 8�9-:�;

<=5>�?( @BADCBADE )

F/G :�;

図 36: ハードウェア構成

M16�������

OAKS-mini ���� ����

�������������� ��� ����! �"�#%$�#'&�(

)+*-,

./0�1�2 "�3�4�#�5

図 37: 制御部の関係図

28

Page 29: Model Driven Developmentを用いた組

・回路部

回路部は、各部品間の電気的な変換、接続を

行う。マイコンボードとの変圧回路、各通信モ

ジュールの信号増幅、発振回路、モータドライ

バ回路、電源回路(電池、降圧回路)で構成す

る。(図 38)

・基板開発

CADツール EAGLE[?]を用い飛行船に搭載する回路基板を開発した。

�����

���3V � 2=6V

� ���

���3.6V

������������������ ��� �!�"

#�$&%(' ����)��

図 38: 回路構成図

・飛行船部

飛行船部はエンベローブ、回路基板を載せる

ゴンドラ、プロペラから構成する。市販のモデ

ル飛行船をベースに改良を行った。ゴンドラ部

の既存基板を取り除き、製作した回路基板を搭

載した。プロペラは強力なプロペラ付モーター

に交換した。

3.6 ソフトウェア実装

C言語のソースコードを作成する方法として、(図 39)に示すように、モデルから擬似コードを作成。さらに、擬似コードから C言語のソースコードを作成した。一例として、(図.40)を実現する赤外線受信部分のソースコードの擬似

コードと C言語ソースコードを (図 41)と (図42)に示す。

�����

�������

C���

図 39: model~ソース

LOW

HI

CLOCK1800bps 1200bps 1200bps

図 40: 赤外線受信

3.6.1 飛行船ソフトウェア構成

モデルを元にした飛行船ソフトウェア構成は

(図.43)開発初期に管制塔との通信プロトコルを定め

ていため、通信プロトコルを満たしていれば、

飛行船ソフトウェアの中身を自由に開発するこ

とができた。

3.7 結果

ハードウェアの仕様を満たすことができなかっ

た。そのため、飛行船自律飛行を行うことがで

きなかった。

しかし、以下のことが評価されたため、優秀

学生賞を受賞することができた。

• ソフトウェアとハードウェアの切り分け。

• ユースケースを作成するにあたり、それぞれのユースケースに対応する、正常シ

ナリオ・異常シナリオの作成。

29

Page 30: Model Driven Developmentを用いた組

赤外線受信ポートが LOWレベルの時1800bpsの通信速度でデータを 1bitだけ受信する。

タイマー関数を呼び出す。タイマー関数の設定として、タイマースピード (1800bps),タイマーの種類,カウント方法を設定する。

タイマーを開始する。

タイマーカウントが"0"になるまで待つ。

赤外線受信ポートの状態を記録する。

タイマー関数を再設定する。再設定するのは、タイマースピード (1200bps),

1200bpsの通信速度でデータを 7bit 受信する。タイマー関数を呼び出す。タイマー関数の設定として、タイマースピード (1200bps),タイマーの種類,カウント方法を設定する。

タイマーを開始する。

タイマーカウントが"0"になるまで待つ。

配列を用い赤外線受信ポートの状態を記録する。

1800bpsで記録した 1bitデータと 1200bpsで記録した

7bitデータを用い、赤外線受信データを作成する。

赤外線受信データをかえす。

図 41: モデルから作成した疑似コード

if(Ir_Receive_Port == LOW)

{

for ( First_Count = 0 ; First_Count

< Loop_Value ; First_Count++ )

{

timer_a0(Mode_Serect , Count_Value ,

Set_UpDown_Flag /*, Set_Start_Or_Stop*/);

COUNT_START_FLAG_A0 = Set_Start_Or_Stop;

while (COUNT_A0 != COUNT_ZERO);

First_Bit_Data = Ir_Receive_Port;

}

Count_Value = COUNT_VALUE_1200_BPS;

Loop_Value = LOOP_SET_7 ;

for ( Second_Count = 0 ;

Second_Count < Loop_Value ; Second_Count++)

{

timer_a0(Mode_Serect , Count_Value ,

Set_UpDown_Flag /*, Set_Start_Or_Stop*/);

COUNT_START_FLAG_A0 = Set_Start_Or_Stop;

while (COUNT_A0 != COUNT_ZERO);

for ( i = 0 ; i < 7; i++)

{

Ir_Receive_Buff[i] = Ir_Receive_Port;

}

}

Ir_Byte_Data = make_byte_data( First_Bit_Data ,

Ir_Receive_Buff );

}

return Ir_Byte_Data;

図 42: 疑似言語から作成した Cコード

��������� �������

���� ��������

� ������� ���� ��������

���������

�������

���

図 43: 飛行船ソフトウェア構成

30

Page 31: Model Driven Developmentを用いた組

第 III部

東海大学サーベイヤプロジェクト

4 SHMZプロジェクト

4.1 概要

SWEST6においてHamana-1のGPSデータを取得するためのデータロガーの開発を行った。

今回は、学生のみでモデルロケットの製作,

GPSデータの解析,データロガーの設計,Hamana-1プロジェクトからのシーケンスの変更を行い、モデルロケットの打ち上げ軌道を記録した。

4.2 Hamana-1からの変更

Hamana-1プロジェクトを元に、SHMZプロジェクトの仕様を作成した。(表.6)に Hamana-1プロジェクトから SHMZプロジェクトへの変更点を示す。

打ち上げ場所がグランドになったため、デー

タロガーを防水する必要が無くなった。また、

対衝撃にはエアーパッキンを用いた。また、使

用するグランドの見通しが良いため、モデルロ

ケットを見失う可能性が低いと考えたため、ラ

ジオビーコンを使用しなかった。

マイクロコントローラについて、MEGA16Lはオーバスペックであり、デバイスの大きさも

大きかった。データロガーのサイズを小さくす

るために、同ファミリのMEGA8Lを用いた。EEPROMのパッケージが LAPの場合は、デ

バイスの端子が出ていないため、半田付けされ

ているかどうかの確認が困難である。デバック

の時に EEPROMの接続の不具合が原因なのかどうかの判断が難しい。そのため、パッケージ

を LAPから DIPに変更した。Hamana-1から変更した構成要素の関係と流

れを (図 44)に示す。観測局については (図??)を用い、ロケットの

打ち上げ高度を目測する。測定方法を (図 3)に

��� �����GPS �

���

(2) ��� ,GPS���

(3)��� , ���

(4) ���������

(5) ������� "!#�$

(1) %�&('

)+*-,/.10/2-3!!

465(718(9;: OPEN!!

<>=@?!!

図 44: 構成要素の関係と流れ

示す。また、角度を測定するための器具は (図.4)を用いる。

4.3 開発スケジュール

開発期間を (図.45)に示す。

4.4 開発

4.4.1 モデルロケット開発

モデルロケット本体の重量を軽減させるため

に、バルサ素材を用い作成した。また、バルサ,布,バルサの 3重構造にすることにより、モデルロケット落下衝撃に耐えることができた。

4.4.2 ハードウェア開発

Hamana-1のデータロガーでは、ラッチアップ現象が発生してしまい、いくつかの回路が破

壊されてしたまった。そのため、SHMZプロジェクトでは、ラッチアップ現象が発生させないた

めに、以下のことを行った。

• GND面を大きくする

• GNDに落さなければならない場合は、最短のルートを用いる

31

Page 32: Model Driven Developmentを用いた組

表 6: 変更点

変更点 Hamana-1 SHMZ

打ち上げ場所 浜名湖 グランド

マイクロコントローラ MAGA16L MAGA8L

EEPROMパッケージ LAP DIP

EEPROM書き込み方法 外部回路 ソフトウェア

EEPROM書き込み開始確認信号 ラジオビーコン LED

10�

21 �

10�

27 �

10�

28 �

10�

31 �

11�

1 �

11�

2 �

��������� ��� GPS �����������������������

�!������"� #�$�%�&

�(')*�+�-,�.�/0 %�&

� %�1�%�&� �2�3��4 +

576�8:9!!

�-,�.� �� LED 1�;������

<>=@?BA>C2 D A

図 45: 開発スケジュール

4.4.3 ソフトウェア開発

マイクロコントローラをMEGA16Lと同ファミリのMEGA8Lを用いたため、プログラムの流用することができた。よって変更したところ

は、、入出力のポート変更,ラジオビーコンからLEDの変更などである。また、プログラムステップ数は、773になり

Haman-1から約 20%の削減になった。

4.5 実装

回路のサイズを小さくさせるために、チップ

LEDを用いたが、EEPROMをDIPに変更した

図 46: データロガー

ことにより、EEPROMのサイズが大きくなってしまったため、回路のサイズは Haman-1のサイズをほぼ同じになった。作成したデータロ

ガーを (図.46)に示す。

4.6 結果

モデルロケットの打ち上げデータの記録,解析,表示を行うことができた。しかし、打ち上げ当日の人員が少なかったため、観測局に当て

る人員がいなかった。そのため、(図.??)を用いた高度の測定ができなかった。

EEOROMからデータ抽出,解析,表示の結果が (図.47)である。

32

Page 33: Model Driven Developmentを用いた組

���

GPS � 1 ����������

���

���0 0 0-0.9 0.54 0.8-1.8 0.9 1.6-2.34 1.26 2.6-2.88 1.8 3.5

���������������

GPS ��� � !#"#$&% '�(�)�*,+#-�"�.�/

021430�57648:9<;>=@?BA76<C

02D4302E43 0�F7G7=HCJI<K

e0 e0 e0 47 08 0a 0f 0b 4f 27 6c 38 5e 00 00 0044 00 00 06 07 4f 05 cc ea e1 01 04 0b 02 06 350f d1 ea e2 06 17 00 00 00 78 00 18 00 00 00 7800 03 00 0a 44 12 29 19 00 00 00 78 00 0b 01 4d0e 78 00 00 00 00 00 00 00 13 02 14 3d 02 28 1000 5c 2c 02 25 00 00 00 00 00 00 0f 00 42 2d 0a25 16 00 00 00 78 00 1b 02 3a 17 0a 22 a5 ea e300 1c 00 1d 02 0a 00 52 00 69 02 00 d3 ea 00 ff

-40-30

-20-10

0 10

20 30

Latitude [m]-20

-10 0

10 20

30 40

50 60

Longitude [m]

0 5

10 15 20 25 30 35 40

Altitude [m]

LGPS M�NPO�QBNSRBTVUXW

図 47: 解析結果

33

Page 34: Model Driven Developmentを用いた組

5 飛行船プロジェクト

5.1 概要

MDD ロボットチャレンジの開発において、赤外線を用いた通信が出来ず、飛行船の自律飛

行が出来なかった。そのため、本プロジェクト

の目標は、赤外線を用い飛行船の制御を行う。

5.2 システム構成

本プロジェクトは、どのようなこと行うかが

決まっていなかった。

システム構成は、時間の問題,開発資金の問

題などから、MDDロボットチャレンジの様なシステムは、実現できないと考えた。そのため、

飛行船プロジェクトでは、赤外線を用いた一次

軸の飛行を行うことにした。(図.48)

5.3 実装

5.3.1 ハードウェア実装

MDDロボットチャレンジでは、ある一定の時間以内の稼働が保証されていれば良い。しか

し、本プロジェクトは、競技ではなく飛行船を

動かし展示するため、長い時間の稼働が必要に

なる。

長い時間、飛行船を稼働させるために、以下

のことをおこなった。

• MDDでは、2種類の電源を用いていたため、重量が重くなってしまい。電力の大き

い電池を用いることができなかった。し

かし、電源を 1種類にしたことにより、同

����������� �����������

図 48: 一次軸飛行

じ種類の電池を直列につなぎ、電力を増

幅させた。

開発した基板が (図.49)である。

図 49: 飛行船回路

5.3.2 ソフトウェア実装

ソフトウェアを開発するにあたり、流量でき

るソフトウェアを作成することを心がけた。そ

の一例として、作成した、OAKSのボードを使用したときの 0.1秒タイマを (図.50)に示す。

5.4 結果

一次軸の飛行を行うための開発を行った。し

かし、飛行船は、微弱な風の影響でコースがそ

れてしまうため、飛行船の両サイドに紐をはり

コースを作ることで、一次軸飛行を実現させた。

(図.51)

34

Page 35: Model Driven Developmentを用いた組

/*

* name: TimeConsumption

* argument: int time

* return: none

* function: consume (0.1*time) seconds

* notice: inner loop setting 20MHz mode -> Count2 < 91000

* 10MHz mode -> Count2 < 182000

*/

void TimeConsumption(unsigned int time)

{

unsigned int Count1;

unsigned long Count2;

for (Count1 = 0 ; Count1 < time ;Count1++){

/* this loop consumes 0.1 second */

for (Count2 = 0 ; Count2 < 91000 ;Count2++){

}

}

}

図 50: 0.1秒タイマ

図 51: 飛行船

35

Page 36: Model Driven Developmentを用いた組

参考文献

[1] 二上 貴夫,”サーベイヤ計画 目論見

書”,2004

[2] 森 孝夫,二上 貴夫,清水 尚彦,岩橋 正実,岸田昌己,”教育用飛行探査体「Hamana-1」開発の経験と知見”,組込みソフトウェアシンポジウム 2004論文集,pp78-pp85,2004

[3] SWEST,”小型飛翔探査体 開発計画”,2004

36

Page 37: Model Driven Developmentを用いた組

A 電流計算

まず、初めに LXに流れる電流値を求める理論式を求める。理論式を求めるための回路は、

(図 52)である。Lはリアクタンス、Rは、コイルの直流抵抗と DC-DCの直流抵抗の和である。以下に理論式を求める。

E = L · ∂i

∂t· i(t) + R · i(t) (1)

電流を求める為に、(式 1)をラプラス変換を行う。ただし、初期値はすべて 0とする。

E

s= L · (s · I(t)− I(0)) + R · I(t) (2)

条件より、I(0)=0とする。

E

s= L · (s · I(t) + R · I(t)

= I(t) · (L · s) + R · I(t)

E = (L · s2 + R · s) · I(t)

I(t) =E

L · s2 + R · s

(3)

ここで、ラプラス変数 sの次数が 1でなければ、ラプラス逆変換が出来ないので、ラプラス次数

を 1にするために、(式 3)を部分文数展開をする。

F = (式 3)

=E

s · L · 1s + R

L

=EL

s· 1s + R

L

(4)

ここで、

F =EL

s· 1s + R

L

=A

s+

B

s + RL

(5)

とし、A、Bについて求める。まず、Aについて、

A = s · F

= s(E

s · L · 1s + R

L

)

s=0

=E

L· 1s + R

L

s=0

=E

R

(6)

となる。次に Bについて求める。

B = (s +R

L) · F

= (s +R

L) · ( E

s · L · 1s + R

L

)

s=−RL

= (E

s · L )

s=−RL

=−E

R

(7)

A,Bを (式 5)に代入する。

F =A

s+

B

s + RL

=ER

s+

−ER

s + RL

(8)

ここで、(式 8)について、ラプラス逆変換を行う。

i(t) =E

R+ (

−E

R) · e−Rt

L

=E

R· (1− e

−RtL )

(9)

(式 9)が LXに流れる電流の理論式である。(式 9)の特性を (図 53)に示す。次に、入力電流の平均を求める為に、電荷量

の式を求める。

電荷量 =∫ t

0

i(t) dt

=E

R

∫ t

0

(1− e−Rt

L ) dt

=E

R[t− (

−R

L)e−Rt

L ]t0

=E

R(t− (

−R

L)e−Rt

L + 1)

=E

R(t +

L

R(e−Rt

L − 1))

(10)

37

Page 38: Model Driven Developmentを用いた組

SWITCH

EL

R

図 52: 入力電流の等価回路

Ton-Time Toff-Time

T

(t)

(I) I-PEAK

図 53: LX-Timeのグラフ

求めたいのは、入力電流の平均値なので、求

める為には、LX-TIME-ON時の電荷量と LX-TIME-OFF時の和を全体の時間で割った値になる。式は以下通りである。

平均入力電流 =(ON 時の電荷量+ OFF 時の電荷量)

全体の時間(11)

また、最大出力電流の理論式は、仕様書より

Iout(MAX) =V in

V out[ILIM − toff ·

(V out− V in

2L

)]η

(12)

で求められる。ここで、

• Iout = 最大出力電流

• Vin = 入力電圧

• L = インダクタ値 (uH)

• η = 効率

• toff = LXスイッチのオフタイム (us)

• ILIM = 0.5(A)

と表す。

38

Page 39: Model Driven Developmentを用いた組

B 基板作成

感光基板の作成方法を以下に示す。

1. 感光基板とフイルムを固定するために (図B)に入れ真空状態を作り基板を固定する。

2. 基板を固定した状態の (図B)を (図B)に入れ紫外線を当てる。紫外線を当てる時

間は、約 5分。

3. 紫外線に当てた基板を (図.B)の現像溶液の中に入れる。

4. (図.B)のエッジング溶液の中に入れ、露出している銅を融かす。

5. 基板を (図.B)に入れ真空状態を作り基板を固定する。

6. 基板を固定した状態の (図B)を (図B)に入れ紫外線を当てる。紫外線を当てる時

間は、約 5分。

7. 紫外線に当てた基板を (図.B)の現像溶液の中に入れる。

39

Page 40: Model Driven Developmentを用いた組

bh

40

Page 41: Model Driven Developmentを用いた組

41