next up previous contents
Next: 画像処理 Up: パソコンインターフェース及びソフト(低レベル部) Previous: モータ・サーボへの出力

Subsections

用意した関数

基本

各ヘッダファイルの説明

y_sensor.h

超音波センサー(以下 超音波センサーを単にセンサーと呼ぶ)及びエンコー ダにまつわる処理。

構造体の説明

Sensor
センサーのデータを格納するのに使う。
int right 右センサ
int left 左
int front 前
Encoder
エンコーダのデータを格納するのに使う
int right 右
int left 左

定義

各センサー番号と方向の関連付け
#define SENSOR_RIGHT_ID 1
#define SENSOR_LEFT_ID 3
#define SENSOR_FRONT_ID 2

関数

void InitSensor (void)
センサーの初期化

void EndSensor (void)
センサーの終了処理

void GetSensor ( void )
この関数を呼び出すことで ReadSensorなんたら(),ReadEncoderなんたら() 関数から読み出すデータが書き変わる

Sensor ReadSensor ( void )
サンサーのデータを読み出す。

Sensor ReadSensorHist (int num)
num回前のセンサーのデータを読み出す。

Sensor ReadSensorNoiseCut ( void )
ノイズカットしたサンサーのデータを読み出す。

Sensor ReadSensorNoiseCutHist (int num)
num回前のノイズカットしたセンサーのデータを読み出す。

Encoder ReadEncoder ( void )
エンコーダのデータを読み出す。

Encoder ReadEncoderHist ( int num )
エンコーダの過去のデータを読み出す。

int ResetEncoder ( void )
エンコーダの値を0にリセットする。

y_video.h

概要

画像取り込みに関するものが集められている。

構造体

GEOM 画像のサイズを格納するのに使う
	    int width;	    横
	    int height;	    縦

関数

int InitVideo ( void )
ビデオキャプチャー周りの初期化

int EndVideo ( void )
ビデオキャプチャー周りの終了処理

int GetVidoe ( void )
実際の画像の取り込み

short *ReadVideo ( void )
取り込んだ画像が格納されているポインターを返す。

int SetGeomVideo ( GEOM )
画像サイズの指定。

EOM ReadGeomVideo ( void )
SetGeomVideoで設定した画像サイズを読み出す

y_servo.h

概要

サーボの動作に関するものが集められている。

注意

サーボの角度は、基準となる位置の決め方の違いで、次のAとBの2種類に 分けられる。
A
サーボを時計と反対方向に、いっぱいまで動かした位置を0と し、時計回りにいっぱいまで動かした位置を255とするもの。 サーボは180度しか動けないので、単位は128/256 度

B
ニュートラル位置を A の基準で設定し、その位置から時計回 りを正、反対周りを負とするもの。単位は A と同じで 128/256 度

図にあらわすと次のようになる。(ニュートラル位置 = 128 とする。)

	         時計回り→
	A  0 ---------- 128 ---------- 255
	B  -128--------- 0 ----------- 127

定義

サーボの数 #define SERVO_NUM 4

各サーボと出力コネクタの対応 #define CAM 0 #define FRONT 1 #define REAR 2 #define MOTOR 3

関数

int InitServo ()
サーボの初期化

int SetServo (int id, int angle)
サーボの角度を指定する。idにCAM, FRONT, REAR, MOTORを指定してangleに 角度を入れる。角度の基準は 注意にある A の方。

int SetServoState (int id, int min, int max, int center)
id のサーボの最大角度、最小角度、ニュートラル位置をセット 角度の基準は min, max は注意にある B の方、center は A の方 min は反時計回りに動くことのできる最小値、maxは時計回りに 動くことができる最大値。 返り値が -1 の時 物理的な限界値を越えたことを示す.

	   (使用例)
	      SetServoState(CAM, -40, 40, 130);

int ReadServo (int id)
id のサーボの角度を読み出す。この関数はSetServo関数で指定された角度を、 吐き出すだけで、実際のサーボの角度を計測しているわけではない。 角度の基準は 注意の B の方

int ReadServoMax (int id)
idのサーボが指定することのできる最大角度を読み出す。 角度の基準は 注意の B の方

int ReadServoMin (int id)
idのサーボが指定することのできる最大角度を読み出す。 角度の基準は 注意の B の方

int ReadServoCenter(int id)
id のサーボに設定された中心位置を読み出す。 角度の基準は 注意の A の方

int MoveServo (void)
この関数を呼び出すことで、実際にSetServoで指定した角度にサーボを 動かす。


next up previous contents
Next: 画像処理 Up: パソコンインターフェース及びソフト(低レベル部) Previous: モータ・サーボへの出力
Takao NAKAI
1999年1月18日