Arduinoを使ったシンプルな回路を紹介します。 これはLEDを点灯させるだけの単純な回路ですが、それだけでもいくつかの知識が必要です。
まず、Arduinoの5Vをブレットボードの+にGNDを-に接続します。LEDは極性があり、長いほうが+、短いほうがGNDです。 そのままつけると電流が流れすぎてLEDに負荷をかけてしまい壊れるので、電圧を下げるために回路に抵抗を接続します。 抵抗は色(カラーコード)で抵抗値がわかります。 左の二つが数値を表し、左から3つめが乗数を表し、一番右側が許容差を表しています。
サーボモーターは角度を指定するとその角度にモーターを回転してくれるものです。 回転角度はモーターによって異なり、今回使ったサーボモータは180度までしか回転しないものです。
サーボモーターのピンは、GND(-)/Vcc(+)/V0(信号出力)の3つで構成され、どれがどのピンになっているかはデータシートを見て確認する必要があります。 写真の回路は可変抵抗器の値をアナログ入力として、一定閾値を超えるとサーボモータを動かすものです。
実際の作品ではこのサイズのサーボモーターでは回転する力が弱かったため、もっと強力なサーボモーターを使いました。 ただ、強力なサーボモータはUSB-TypeCの給電では電力が足りないようで、別途ACアダプタが必要だったりとトラブルが起きました。
上の写真の回路はセンサーに一定距離近づくとサーボモータが動くものです。 赤外線距離センサーは、測定距離が3-40cm程度、超音波センサーは測定距離は3-4mほどありますが、指向性が弱いため前後左右40cm程度ずれていても反応します。 超音波距離センサーはデジタル入力がとれなかったので、適当な閾値で判定することにしました。
ちなみに、赤外線距離センサーは受光部と発光部があり、発光部から出た光が反射して受光部に届くまでの量を計測しています。 障害物までの距離が短いほど、反射により多くの光を受け取るのでより大きい値を返すようになっています。
「太陽を向く花」も「だるまさんがころんだ」もセンサーの入力を元にサーボモーターを回転させるので、機能は同じです。 両方作って見て手応えが良い方を採用しようとことになりました。花の方は光センサー、だるまさんがころんだは超音波距離センサーを使うことにしました。
- 光センサーを植木鉢に4つ搭載し、光を当てた方向に花が向きます。
- サーボモータが最大180度の回転になるため、前方に4つつけています。(箱に穴が当ている部分がそれです)
- 見学した人が、花の正面に光を当てがちだったので、実際あまり動かない事がわかりました。光を向けた方に動くという動作を体験してもらうために、どう誘導するデザインにするのかが課題ということが分かりました。
- 顔の下部分と机の下2箇所にしこんだ超音波距離センサーで誰かが近づくと、ゾンビマスクをかぶった発泡スチロール製のマネキンがこっちを振り向くものです。
- 机の下のセンサーはちょっと向く、正面のセンサーは一気に振り向くようになっています。プログラム制御はArduinoで行っています。
- 3Dプリンターを使いたかったので、目玉は3Dプリンターで作ってLEDライトを仕込みました。
- 回転のたびに土台がずれて振り向いた感が弱くなるのが問題がありました。
- 人が多すぎるとセンサーが干渉しあってまともに動作がしませんでした。距離の調整不足のためで、もっとセンサー同士を離してもよかったです。
電子工作は久しぶりでした。 ハードウェアはさっきまでは動いていたのに場所移動しただけで動かなくなることもざらに起きるので、ソフトウェアよりも細かい単位で動作確認が必要であり、 細かくステップを刻んでいく物事を進めていく必要があると実感しました。
後、動作の安定のためにはネジ止めがかなり大きな役割を果たすことが実感しました、壊れにくくなります。
また、人に見てもらう展示を考えると、見学した人がどう動くか、どう触るか、どういう印象を持つかも含めて考える必要があります。 特に体験型の場合は、体験者と、それを見る見学者の両方の位置取りを考えないといけません。
とにかく丁寧にやっていくことが大事ですね。