センサー
Sensorセンサーとは、人の目や耳などの代わりに、機械が周りの状況を取得するために使われる部品です。
音量を取得するものや明るさを取得するものなどその種類は多種多様で、人が感じられるものはもちろん、 人の感知することのできない微弱な信号も取得することができます。
どんなセンサーがあるのか
先ほど例に挙げた音量や明るさを取得するものに加えて、手のジェスチャーを取得するものやモノの色を取得するものなど様々です。
センサーによっては簡単に入手できないものもあるので、今回はネットや秋葉原で電子部品を販売している秋月電子通商さんで扱っているものを基準にリストにまとめてみました。
- 距離センサ
- 方位センサ
- アルコールセンサ
- 角度センサ
- 圧力センサ
- 放射線センサ
- 加速度センサ
- カラーセンサ
- 明るさセンサ
- 温度センサ
- 湿度センサ
- ジェスチャセンサ
秋月電子通商さんで扱っているセンサーはまだまだありますが、目立ったセンサーだけでもこれだけあります。
一般的には、これらのセンサーからの「入力」を使って他のモノを制御します。
センサーの選び方
次にセンサーの選び方について簡単に説明します。
まずは「どのようなことを取得したいか」をはっきりとさせ、目的の種類のセンサーを探します。
目的を明確にする
例として、『大体100cm以内に人やモノが来たことを発見したい』というケースを想定して説明します。
距離を測る目的のため、今回は距離センサのページを開きます。
距離センサと一口に言っても、80cmまでしかはかれないものや、5.5mまではかれるものなど様々です。
この中から今回の目的に向いたものを選んでみましょう。
適切な性能のセンサーを見つける
ページを開いた時に見るのが「データシート」と呼ばれるセンサーの性能が記載されている書類です。
データが詳細に書いてありこれを読むのが一番よいのですが、内容を理解するのはなかなか難しいです。
データシートを読めるようになることは大切ですが、初心者の方は以下の方法を試してみてください。
先例を見つける
まず秋月電子通商さんのセンサーごとのページに書かれている概要を読み、実現出来そうなセンサーにだいたいの目星を付け、「センサーの名前(例えばGP2Y0A02YK) + 使いたいボード(例えばArduino)」で検索をかけてみてください。
同様の実装をしたサンプルプログラムや回路図が記載されているブログなどのサイトが見つかると思うので、その内容を読み問題なく使えそうであればよいと思います。
全く見つからない場合はプログラムを1から作らなくてはいけないので、扱えるようにするまでがなかなか大変ですので最初のうちはオススメできません。
自力で実装する
どうしても実現したい場合は、先ほどのデータシートをよく読み、プログラムや回路を作成することで扱えるようになります。
少し難易度は上がるので、興味があれば試してみるのも面白いと思います。
要件やコストを確認する
上記の選び方で、秋月電子通商で扱っている距離センサーの中から、シャープ製の「GP2Y0A02YK」という型番のセンサをえらんでみました。
距離も0.2mから1.5mまで読めますし、検索すると複数のサイトが見つかりますので問題なく作成出来るでしょう。
他にも同様のセンサーはありますが、このセンサーは距離の精度やお値段も安いのでこれでいいでしょう。
距離に精度が必要であれば別のセンサーを使うとよいと思います。
センサーとマイコンボードのつなぎ方
センサーを選んだあとは、通常センサーとマイコンボード(センサーのデータを処理するところ)を繋げてプログラムを書き、他のモノと連携させていきます。
どのように繋げることができるのか、簡単に紹介していきます。
マイコンボードの役割
なぜマイコンボードが必要かと言うと、様々なセンサーで取得した値は電気信号のため、何らかの形で私たちが分かるようにしないと扱うことができません。
オススメはArduinoとよばれるマイコンボードです。比較的単機能で扱いやすく、本やインターネット上の情報が多いので困ったときにも調べやすいです。
センサーからは電気信号が出ているといいましたが、アナログの値で出力されているものや、ある規則に沿って通信するものもあるので、順に説明していきます。
アナログ
シンプルな圧力センサや明るさセンサでよくみられるものです。
電圧が徐々に変化するため、この情報を取得するためには指定されたアナログ入力ピンに接続することが前提になります。
デジタル
HIGH or LOWの2つの状態を持つセンサです。
スイッチや人感センサなどで見られます。この情報はデジタル入力ピンで取得することができます。
I2C, SPIなど
特定の規格で通信できるセンサーで、規格によっては複数のセンサーを少ない制御線で制御出来たり、アナログのセンサーに比べて明確な数値で値を入力出来たりなどのメリットがあります。
プログラムが少し複雑になるため、センサーごとにライブラリーが出回っていることが多いです。