名称

MIRS1001 統合プログラム

番号

MIRS1001-SOFT-0011

 

最終更新日:2011.3.1

版数

更新日

作成

承認

改訂記事

A01

2011.3.1

川合

古橋

初版


1.    目的

各仕掛けをクリアするプログラムをまとめ、それらのプログラムをまとめて迷路をクリアする

 

2.    概要

各ファイルで宣言した関数をextern宣言することで、mainプログラム内で使えるようにした。

 

3.    各仕掛けクリアのプログラムの説明(外部で宣言した関数)

関数名

引き数

説明

返り値

DB_act()

int

(int) *num1,*num2

引数をポインタ型にして、画像認識の結果をもらう。また、認識できなかった場合はエラーを返す。

エラーなし:0

エラーあり():-1

エラーあり():-2

tuuro()

int

void

通常の通路を走行する

void

seitai_hosei()

int

(int) hakusen_pattern

引数のよって、正体補正の動作を変える。

void

turn90()

int

(int) pattern

右・左に90度回転する。

void

kobeya()

int

void

小部屋をクリアする。

void

susumukun()

int

void

少し前進する。

void

modorukun()

int

void

少し後進する。

void

tuuro_ju()

int

(int) juji_counter

十字路専用の通路を走行する。

void

key()

int

void

鍵をクリアする。

void

rotary2()

int

void

ロータリーをクリアする。

void

 

4.    具体的プログラムのフローチャート

説明: 説明: 説明: C:\Users\d07113\Desktop\無題.png

 

5.    工夫した点

・メインプログラムに極力モーターを回す処理を入れないようにした。

・メインのプログラムはデバッグ処理をしやすくするためにシンプルにした。

・画像処理が3回失敗したら、少し前進して正対補正をし、再び画像処理を行うようにした。それによって、画像処理の成功確率が上げた。

・各クリア仕掛けのプログラムを統合するときに、フォルダごとに分けた。また、各仕掛けのプログラムのデバッグ処理簡単化のためにMakefiletestプログラムを作成するようにした。

・また、メインプログラムの動作をデバッグするために、疑似的な画像処理プログラムを作成してデバッグを行った。

 

6.    弱点・改良点

それぞれの仕掛けのプログラムをクリアした後、スレッドが完璧に閉じていないことがあり、次のプログラムのスレッドが起動できないということがあった。

→スレッドが完璧に閉じれるように、各プログラムの前に1秒間のsleepを入れた

 

7.    まとめ

統合プログラム自体は、各仕掛けのプログラムをくっつけただけなので、問題点も改良点もあまりなかった。

後半は、各仕掛けをクリアするプログラムの精度を上げるために努力する形となった。

 

 

沼津工業高等専門学校 電子制御工学科