超音波センサの使い方を学びます。
- API
- ポート3の超音波センサを初期化する。
- ev3_sensor_config(EV3_PORT_3, ULTRASONIC_SENSOR);
ポート3が超音波センサであることを設定
- ev3_sensor_config(EV3_PORT_3, ULTRASONIC_SENSOR);
- ポート3の超音波センサから距離[cm]を取得する。
- int16_t color distance =
ev3_ultrasonic_sensor_get_distance(EV3_PORT_3);- 戻り値の距離は3cmから250cmの値が返る。250cmは測定できない時の値なので超音波センサからの距離が250cmではない。
- int16_t color distance =
- 超音波センサで超音波信号を検出する。シミュレータでは未実装。
- ev3_ultrasonic_sensor_listen(EV3_PORT_3);
- 戻り値は、超音波信号を検出したらtrue、検出しなかったらfalseとなる。
- ev3_ultrasonic_sensor_listen(EV3_PORT_3);
- ポート3の超音波センサを初期化する。
- サンプルプログラム
- /sonar/app.c:超音波センサの計測値(距離)をLCDに表示する。
-
#include "ev3api.h" #include "app.h" #define SONAR_PORT EV3_PORT_3 void main_task(intptr_t exinf) { int16_t distance; /* 距離の値[cm] */ char distance_str[32]; /* 距離を表示するための文字列 */ ev3_sensor_config(SONAR_PORT, ULTRASONIC_SENSOR); /* ポートに超音波センサを設定 */ ev3_lcd_set_font(EV3_FONT_MEDIUM); /* LCDフォント設定 */ while(1){ distance = ev3_ultrasonic_sensor_get_distance(SONAR_PORT); /* 距離の値を取得 */ sprintf(distance_str, "DISTANCE: %3d [cm]", distance); ev3_lcd_draw_string(distance_str, 0, 10); /* 距離を表示 */ tslp_tsk(100000); /* 100000us刻みで実行 */ } ext_tsk(); /* タスク終了処理 */ }
- 演習
- /sonar/app.cをビルドして動作を確認しよう!
- レポート1
- 計測値が25cm未満なら”Red”、25cmから50cm未満なら”Yellow”、それ以上なら”Blue”を表示するプログラムを作成してください。
- 参考
終わり
コメント