タッチセンサの使い方を学びます。
- API
- タッチセンサの状態を検出する。引数はセンサのポート番号。戻り値はタッチセンサが押された状態ならtrue、押されていない状態ならfalseを返す。
- bool_t isPressed = ev3_touch_sensor_is_pressed(EV3_PORT_1);
- タッチセンサの状態を検出する。引数はセンサのポート番号。戻り値はタッチセンサが押された状態ならtrue、押されていない状態ならfalseを返す。
- サンプルプログラム
- /touch/app.c: タッチセンサを押すと”Pressed!”と表示する。
#include "ev3api.h" #include "app.h" #define TOUCH_PORT EV3_PORT_1 void main_task(intptr_t exinf) { ev3_sensor_config(TOUCH_PORT, TOUCH_SENSOR); /* タッチセンサを設定 */ ev3_lcd_draw_string("Waiting...", 0, 30); while(!ev3_touch_sensor_is_pressed(TOUCH_PORT)){ /* タッチセンサの状態を確認 */ tslp_tsk(10000); /* 10,000us刻みで実行 */ } ev3_lcd_draw_string("Pressed!", 0, 30); /* タッチセンサが押されたことを表示 */ ext_tsk(); /* タスク終了処理 */ }
- /touch/app.c: タッチセンサを押すと”Pressed!”と表示する。
- 演習3
- タッチセンサをEV3(ポート1)に接続した後、サンプルプログラムをEV3にアップロードし、動作を確認してください。
- サンプルプログラムを改造し、以下の機能を実現してください。
タッチセンサが押されたら「かえるの歌」が流れ終了するプログラムを作成しよう!
まず、下記のタッチセンサの組立例のうち、どれか好きなものを1つ組立ててください。次に、タッチセンサが押されたらLCDに「Pressed!」と表示し、「かえるの歌」が流れ終了するプログラムを作成し、動作を確認してください。なお、3Dモデルは以下のリンクからダウンロードしてください。西川教授から提供されたものです。
- LEGO組立図
- 24-1_touchsensor.lxf:てこの原理のタッチセンサ。
- 24-2_touchsensor.lxf:90度方向を変えるタッチセンサ。
- 25_touchsensor.lxf:前後センサ。前も後ろも感知する。
- 26-1_touchsensor.lxf:スライドスイッチ。灰色のホイールをスライドすることで、タッチセンサのオン/オフを切り替える。
- 27-1_touchsensor.lxf:往復型回転スイッチ。回転するとオン/オフが切り替わる。回しすぎを防ぐストッパー付き。
- 27-2_touchsensor.lxf:連続型回転スイッチ。90度回す毎に連続してオン/オフが切り替わる.
- 28-1_touchsensor.lxf:差し込み式スイッチ。シャフトを差し込むとオンになる。
- 24-1_touchsensor.lxf:てこの原理のタッチセンサ。
以上
コメント