第19回 IoT×プログラミング教育
スマホの普及で一気に身近になったタッチセンサー。
その仕組みを子供といっしょに勉強したいと思います。
ESP32でタッチセンサー実験
タッチセンサーの認識方式はいくつかあるようですが、今回はお手軽に実験できる、ESP32のタッチセンサー「静電容量方式」について学びます。
静電容量方式とは?
「静電容量方式」・・・文字から察するに、静電気を帯びている量によって、タッチしたか判断する方式のようです。
金属ほどではないですが、人にも電気が流れます。
電気が流れるということは、静電気(静止した電気)じゃなくなるので、静電気の容量が減ります。それを感知してタッチしたと判断する仕組みなのでしょう。
検証に回路不要
ESP32開発者ボードをPCに繋ぎ、ESP32のサンプルスケッチ「TouchRead 」を書き込むだけで検証できます。
IO4(T0)ピンを触れば、シリアルモニタの値が下がります。
通常は50くらい、触ると10くらいまで下がります。
50あった静電気が、10しかなくなりました。40は体の中に流れています。(感覚的にそんなイメージ?)
タッチしたらLEDが光るように
見た目でタッチの反応が分かるよう、タッチしたらLEDが光る回路を作ります。
IO23ピンにLEDをつなぎました。
また、触りやすいように、IO4(T0)ピンをジャンパーワイヤーで延しています。
プログラムは以下です。
#define TOUCH_PIN T0 //タッチ入力 4番ピン #define LED_PIN 23 int val; void setup(){ Serial.begin(115200); pinMode(LED_PIN,OUTPUT); } void loop(){ val = touchRead(TOUCH_PIN); Serial.println(val); if(val < 25){ digitalWrite(LED_PIN,HIGH); }else{ digitalWrite(LED_PIN,LOW); } delay(100); }
静電気の値は25を基準にして、タッチしたか判断します。
時々、値が安定せず、タッチしなくても光ることがあります。
・・・まあ、現段階では見逃しましょう。
これで、準備が整いました。
子供に伝えられるか?
ピンにタッチしたら、LEDが光る仕組みを例として、ここからは6歳の長男に、図解を交えて説明します。
多少強引な説明もあるかもしれませんが、マイコンのこと、静電気のこと、人に微弱な電気が流れることを、楽しく理解してもらえれば良いです。
ちなみに冒頭の絵を見せたら、マネしておなかにピンを挿すようになってしまいました・・・。
静電気がピンに溜まる
まず、マイコン(EPS32)は、電池をつなぐと、ピンに静電気を溜めます。
静電気は、動いていない電気のことですが、本当は動きたくてうずうずしています。
静電気は触れると移動する
静電気が溜まったピンに人が触れると・・・電気が人に移動します。
とても弱い電気なので、バチッとはなりません。大丈夫です。
この時、マイコンは電気が動いたことに気が付きます。
電気が動いたら何をする?
マイコンにプログラムを書いておけば、静電気が動いたとき、何かをさせることができます。
今回は、静電気が動いたとき・・・つまり、タッチしたときに、電球を光らせるプログラム(命令)を書き込んでいます。
プログラムを変えれば、他のこともできます。
例えばタッチしたら開くドアとか、タッチしたら音が鳴る楽器とか・・・アイデアと部品があれば、いろいろなことができます。
以上。
しきりに、「マイコンはしゃべらないよ。」と、子供に言われましたが、静電容量方式タッチセンサーの仕組みは、理解しているようです。
電気を自分の中に流すことを、楽しんでいました。