MIRSMG4 管理台帳へ戻る

名称 Raspberry Pi関数一覧
番号 MIRSMG4D-SOFT-0005
版数 最終更新日 作成 承認 改訂記事
A01 2017.04.19 牛丸真司 牛丸真司 初版
A02 2021.05.25 牛丸真司 牛丸真司 管理台帳フォーマットへの変更

Raspberry Pi関数レファレンス


io.c

GPIO読み取りモジュール

int io_open()

GPIOをオープンし、各種デバイスに使用するピンの設定を行う
戻り値0(成功) or それ以外(失敗)

void io_get_sw(int *sw_f, int *sw_l, int *sw_r)

タッチスイッチの状態を取得する
sw_f前スイッチの測定値(LOW or HIGH)
sw_l左スイッチの測定値(LOW or HIGH)
sw_r右スイッチの測定値(LOW or HIGH)

uss.c

超音波センサ読み取りモジュール

int uss_open_l()

左の超音波センサをオープンする
戻り値0(成功) or それ以外(失敗)

int uss_open_r()

右の超音波センサをオープンする
戻り値0(成功) or それ以外(失敗)

long uss_get_l()

左の超音波センサの測定値を取得する
戻り値測定値[cm] (不正な値を得た場合は-1)

long uss_get_r()

右の超音波センサの測定値を取得する
戻り値測定値[cm] (不正な値を得た場合は-1)

arduino.c

Arduinoとシリアル通信を行うモジュール

int arduino_open()

シリアル通信を開始する
戻り値0(成功) or それ以外(失敗)

void arduino_close()

シリアル通信を終了する

void arduino_clear()

Arduinoからの受信バッファをクリアする

int arduino_read(serial_data_t *serial_data)

シリアル通信で受信したデータをserial_data_t型で取得する
serial_data受信データ
戻り値0(成功) or それ以外(失敗)

void arduino_write(serial_data_t serial_data)

serial_data_t型のデータをシリアル通信で送信する
serial_data送信データ

int arduino_receive(command_data_t *command_data)

シリアル通信で受信したデータをcommand_data_t型で取得する
command_data受信データ
戻り値0(成功) or それ以外(失敗)

void arduino_send(command_data_t command_data)

serial_data_t型のデータをシリアル通信で送信する
command_data送信データ

middle_data_t arduino_decode1(serial_data_t serial_data)

serial_data_t型のデータをmiddle_data_t型に変換する
serial_data入力データ
戻り値出力データ

command_data_t arduino_decode2(middle_data_t middle_data)

middle_data_t型のデータをcommand_data_t型に変換する
middle_data入力データ
戻り値出力データ

serial_data_t arduino_encode1(middle_data_t middle_data)

middle_data_t型のデータをserial_data_t型に変換する
middle_data入力データ
戻り値出力データ

middle_data_t arduino_encode2(command_data_t command_data)

command_data_t型のデータをmiddle_data_t型に変換する
command_data入力データ
戻り値出力データ

request.c

Arduinoへ命令を送るモジュール

void request_set_runmode(run_state_t state, int speed, int dist)

Arduinoへ走行モードと速度・距離指令値を与える
state走行モード
speed直進速度[cm/s] or 回転速度[deg/s]
dist直進距離[cm] or 回転角度[deg]

int request_get_runmode(run_state_t *state, int *speed, int *dist)

Arduinoから現在の走行モードと速度・距離を取得する
state走行モード
speed直進速度[cm/s] or 回転速度[deg/s]
dist直進距離[cm] or 回転角度[deg]
戻り値0(成功) or それ以外(失敗)

int request_get_dist(int *dist_l, int *dist_r)

Arduinoから左右のタイヤの走行距離を取得する
dist_l左タイヤ走行距離[cm]
dist_r右タイヤ走行距離[cm]
戻り値0(成功) or それ以外(失敗)

int request_get_batt(double *volt)

Arduinoからバッテリ電圧を取得する
volt電圧[V]
戻り値0(成功) or それ以外(失敗)

direction.c

正対補正モジュール

int dirrection_correct(int dist)

正対補正を実行する
dist正対補正距離[cm]
戻り値0(成功) or それ以外(失敗)

get_img.c

画像撮影モジュール

int get_img(const char *filename, int device, int width, int height)

uvccaptureにてカメラの画像撮影を行う
filenameファイル名
deviceデバイス番号
width幅[pixel]
height高さ[pixel]
戻り値0(成功) or それ以外(失敗)

number_detect.c

数字認識モジュール

void number_set_device(int device)

数字認識で使用するカメラのデバイス番号を設定する
deviceデバイス番号

void number_get(int *ans)

認識した数字を取得する
ans数字 (取得する要素数はnumber.h内のNUM_LENにて設定)

int number_detect(int dist)

数字認識を実行する
dist撮影距離[cm]
戻り値認識した数字の個数 (エラー発生時は-1)

circle_detect.c

風船認識モジュール

int circle_create()

風船認識スレッドを開始する
戻り値0(成功) or それ以外(失敗)

void circle_cancel()

風船認識スレッドを終了する

void circle_set_device(int device)

風船認識で使用するカメラのデバイス番号を設定する
deviceデバイス番号

void circle_get_cg(int *x_g, int *y_g, int *ratio_g)

赤色エリアの割合と重心座標を取得する
x_gx座標[pixel]
y_gy座標[pixel]
ratio_g赤色エリアの割合[%]

void circle_get_cir(int *x_g, int *y_g, int *radius_g)

認識した円の半径と中心座標を取得する
x_gx座標[pixel]
y_gy座標[pixel]
radius_g半径[pixel]

int circle_detect()

風船認識を実行する
戻り値認識した円の個数 (エラー発生時は-1)

server.c

サーバ通信モジュール

int server_info_number(int num)

数字データをサーバに送信する
num数字データ
戻り値0(成功) or それ以外(失敗)

position.c

自己位置認識モジュール

void position_set_coord(double x_s, double y_s, double dir_s)

車体の座標と向きをセットする
x_sx座標[cm]
y_sy座標[cm]
dir_s向き[deg]

void position_staraight(double dist)

直進距離を与え、座標データを修正する
dist直進距離[cm]

void position_rotate(double angle)

回転角度を与え、座標データを修正する
angle回転角度[deg]

void position_correct(double dist)

正対補正距離を与え、座標データを修正する
dist正対補正距離[cm]

void position_get_coord(double *x_g, double *y_g, double *dir_g)

車体の座標と向きを取得する
x_gx座標[cm]
y_gy座標[cm]
dir_g向き[deg]

char position_get_area()

現在の座標データをもとに機体の存在するエリアを推定する
戻り値エリア名(1文字の英数でエリア名を与える)