PD実践2021:超音波センサの使い方

超音波センサの使い方を学びます。

  • API
    • ポート3の超音波センサを初期化する。
      •  ev3_sensor_config(EV3_PORT_3, ULTRASONIC_SENSOR);
        ポート3が超音波センサであることを設定
    •  ポート3の超音波センサから距離[cm]を取得する。
      •  int16_t color  distance =
        ev3_ultrasonic_sensor_get_distance(EV3_PORT_3);

        • 戻り値の距離は3cmから250cmの値が返る。250cmは測定できない時の値なので超音波センサからの距離が250cmではない。
    • 超音波センサで超音波信号を検出する。シミュレータでは未実装。
      • ev3_ultrasonic_sensor_listen(EV3_PORT_3);
        • 戻り値は、超音波信号を検出したらtrue、検出しなかったらfalseとなる。
  • サンプルプログラム
    •  /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”を表示するプログラムを作成してください。
  • 参考

終わり

コメント

タイトルとURLをコピーしました