2017年5月10日
- C
- EV3技術情報
- ソフトウェア
IRセンサーの利用方法①-Distance(接近度)モード
EV3RTパッケージ β7ではEV3のIRセンサーとビーコンが制御できるようになりました。
(2017/04/27現在、EV3RTパッケージはβ7が最新です。)
EV3RTパッケージのダウンロードはこちら
http://dev.toppers.jp/trac_user/ev3pf/wiki/Download#ダウンロード
ここではDistance(接近度)モードの利用方法を紹介します。
Seek(ビーコン)モードの利用方法はこちらを、
Remote(遠隔)モードの利用方法はこちらをご覧ください。
Distance(接近度)モードでは、IRセンサーの正面にある物体との距離を測定します。
IRセンサーで距離を測定する関数は以下のとおりです。
関数 | int8_t ev3_infrared_sensor_get_distance ( sensor_port_t port ) |
引数 | port:センサーポート |
解説 | IRセンサーで距離を測定します。(0~100) 不正なセンサーポートを指定した場合0を返します。 |
以下のプログラムは距離を測定してEV3の画面に表示します。
#include "ev3api.h"
#include "app.h"
#if defined(BUILD_MODULE)
#include "module_cfg.h"
#else
#include "kernel_cfg.h"
#endif
// センサーのポートを設定
#define ir_sensor EV3_PORT_4
// 待機時間の設定 [msec]
const uint32_t WAIT_TIME_MS = 100;
void run_task(intptr_t unused)
{
char str[20];
// IRセンサーで測定した距離をLCDに表示する。
while (!ev3_button_is_pressed(ENTER_BUTTON)) {
sprintf(str, "distance:%d ", ev3_infrared_sensor_get_distance(ir_sensor));
ev3_lcd_draw_string( str , 0 ,0 );
tslp_tsk(WAIT_TIME_MS);
}
}
void main_task(intptr_t unused) {
// センサーの設定
ev3_sensor_config( ir_sensor , INFRARED_SENSOR );
// run_taskを開始する
act_tsk(RUN_TASK);
}
※サンプルプログラムは一例として紹介しています。誤り等が含まれていた場合はご了承ください。
(2017/04/27現在)