M5Stackで距離センサーを使う
M5Stackで、距離センサーを試してみました。入門書そのままです。
距離センサー
書籍で使用されていたセンサーはこれ。
あれ?この電子部品、なんか見覚えがあるぞ。と思ってジャンクパーツをごそごそしてみると。。。あったあった。
これこれ、目玉みたいでかわいいデザインのセンサー。以前Arduinoを使って衝突回避機能付きの車のおもちゃを作ったときのやつ。
Grove
これそのまま使えるんじゃと思ったら、入門書には「Groveセンサー」って書いてある。何?「Grove」って??
なるほど。ArduinoやRaspberry Piは、外部のセンサなどをつなぐ際、ジャンパワイヤをマイコンの所定の位置に差し、ブレッドボードを使って、電子部品(LEDや各センサ)の回路を組むのが普通。
M5Stackも、もちろんそういう使い方は可能。それに加えて、「Groveポート」というのがあって、もっと簡単に接続可能ってことか。
で、これが、M5Stackの「Groveポート」。
で、どんなものか買ってみました。
電子部品って、お店でばら売りされてるのが普通だけど、これ、ちゃんと個包装されてる。しかもケーブル付きだし。
コーデイング
部品はそろったのであとは書籍通り入力。まずは超短波距離センサーモジュールのライブラリをダウンロードして組み込み(zip直リンク)。
https://github.com/Seeed-Studio/Grove_Ultrasonic_Ranger/archive/master.zip
コーディングは非常に短い。実際センサーから値取得してるのは、
RangeInCentimeters = ultrasonic.MeasureInCentimeters();
の、1行っぽい。
え?1行?以前Arduinoのときには、そんな簡単じゃなかった記憶があるけど。。
うん。サンプルソースみたいに、たしかセンサーの距離を計算で出したような気がします(はっきり覚えていませんが^^;)。ここを「ultrasonicライブラリ」で、cm変換までやってくれてるのかな。すごいな。
で、Arduino IDEでオブジェクトを書き込むと。。
完成!!
おおっ!!動いた!!
自分で入力したコードは大したことなくても、ライブラリ他環境がやってくれてるのだな。ありがたい。
折角なので、距離に応じて、背景色を、白→青→黄→赤、と変えるようにしてみました。
実践テスト
手近にあったプラモを使って、それっぽい感じで実践テスト。接近戦になると赤くなって警告します。DANGER!!DANGER!!DANGER!!
面白かった!
ブレッドボードやジャンパワイヤを使ったり、実際にはんだ付けするのも電子工作の醍醐味ではあるけれど、手軽につないで、ここまでサクッとできる手段もあるに越したことはない。やっぱりすごいな!!