「ロボットが壁にぶつかる手前でピタッと止まったり、床の黒い線をたどって走ったりする仕組みってどうなっているの?」
「マイコンとモーターだけだと、ただ真っ直ぐ走るだけの人形になっちゃう……どうすればロボットを『賢く』できる?」
ロボット開発において、モーターが「筋肉」なら、センサーは人間でいう「五感(目・耳・皮膚など)」です。
センサーがないロボットは、目隠しをして部屋の中を歩き回るようなもので、すぐに障害物に激突してしまいます。逆に、適切なセンサーを組み合わせてあげることで、ロボットは周囲の環境を自分で察知し、まるで生き物のように自律して動き出すようになります。
この記事では、ロボット開発の初心者でもすぐに扱えて大活躍する代表的な3つのセンサー「超音波センサー」「赤外線センサー」「光センサー」の仕組みと、マイコン(Arduino等)での使い方を徹底解説します!
1. ロボットになぜ「センサー」が必要なのか?
人間は、目で障害物を見て、耳で音を聞き、皮膚で温度や障害物を感じ取って避けています。ロボットも同じです。
【人間の自律行動】
目や耳で感じる(入力) ──► 脳で考える ──► 筋肉を動かして避ける(出力)
【ロボットの自律行動】
センサーで感じる(入力) ──► マイコンで判断 ──► モーターで動く(出力)
センサーから送られてくる電気信号(データの値)をマイコンが読み取り、「もし前方に壁があったらバックする」「もし暗くなったらLEDを光らせる」という条件分岐(If文)をプログラムすることで、ロボットに「賢い行動」をさせることができます。
2. 超音波センサー:コウモリのように「壁までの距離」を測る目
ロボットが障害物を避けるための「目」として最もよく使われるのが、超音波センサー(代表例:HC-SR04)です。
【超音波センサーの仕組み(コウモリと同じ!)】
1. センサーの送信部から「ピーッ」と人間の耳に聞こえない超音波を発射する
2. 前方の壁に当たって「跳ね返ってきた音(エコー)」を受信部でキャッチする
3. 「音が跳ね返ってくるまでの時間」を測定し、マイコンが距離(cm)に換算する!
(音が空気中を伝わるスピードは一定なので、時間が長いほど遠いとわかる)
① 特徴とメリット
-
価格が超安価: 1個200円〜400円程度で手に入ります。
-
広い範囲の障害物を検知: 数センチから数メートル先までの障害物との正確な距離をリアルタイムで測ることができます。
② Arduinoでのプログラム例(距離を測る)
超音波センサー(HC-SR04)を使うには、主に4本のピン(VCC, Trig, Echo, GND)を接続します。
C++
