です。しかし次のような問題もあります。
ただ見える必要のないデータの流れはReadなんちゃら関数をモジュール 内で呼出し、見えた方が良いデータの流れはモジュール外でReadナン チャラ関数を呼び出すといった使いわけをすればいいのかもしれない...
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にリセットする。
int width; 横 int height; 縦
int InitVideo ( void )
ビデオキャプチャー周りの初期化
int EndVideo ( void )
ビデオキャプチャー周りの終了処理
int GetVidoe ( void )
実際の画像の取り込み
short *ReadVideo ( void )
取り込んだ画像が格納されているポインターを返す。
int SetGeomVideo ( GEOM )
画像サイズの指定。
EOM ReadGeomVideo ( void )
SetGeomVideoで設定した画像サイズを読み出す
図にあらわすと次のようになる。(ニュートラル位置 = 128 とする。)
時計回り→ A 0 ---------- 128 ---------- 255 B -128--------- 0 ----------- 127
各サーボと出力コネクタの対応 #define CAM 0 #define FRONT 1 #define REAR 2 #define MOTOR 3
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で指定した角度にサーボを
動かす。