電子工作といえば、専門的な技術や道具が必要になりそうですが、「Arduino(アルデュイーノ)」を使えば、初心者でも簡単に電子工作を楽しむことができます。最近ではArduinoを用い、アーティストやデザイナーによって、数多くの芸術作品が生み出されています。今回は「Arduino」を用い、センサーを使って明るさを測定し、簡単なプロダクトを作ってみたいと思います。
編集・執筆 /OSARAGI, AYUPY GOTO
目次
- 1.前回のおさらい
- 2.様々なセンサー
- 3.センサーを使ってみよう
- 4.最後に
1.前回のおさらい
Arduino(アルデュイーノ)とは、電子工作初心者でも簡単に扱うことができる、イタリア生まれのマイコンボード(マイクロ・コンピュータボード)です。
Arduinoを用いれば、身の回りの簡単な家電はもちろん、一風変わったアートな作品までつくることができます。これまで電子工作やプログラミングが未経験の方でもすぐに使えるようになっているので、これを機に挑戦してみましょう。
「ん?Arduinoって何?」という方はぜひ、前回の記事をご覧ください!
【前回までのおさらい】
Vol.1を振り返る
2.様々なセンサー
Arduinoでは様々な「センサー」を使って電子工作をすることができます。一体どんなセンサーがあるのでしょうか。実際の製品などに使われている例も挙げながらご紹介します。
Cdsセル
Cdsセルとは「光」を検知するセンサーです。
赤外線や可視光線や紫外線など、広範囲の波長の光に反応してくれます。
「街灯を自動的にオン・オフさせるスイッチ」、「時計付きラジオ」、「カメラの露出計」などに多く使用されています。
温度測定専用IC
温度測定専用ICとは「温度」を検知するセンサーです。温度センサーの種類は数多く存在しますが、Arduinoの入門本でよく出てくるのは「LM35」という温度センサーです。摂氏(℃)に比例した電圧を出力してくれます。つまり、20℃なら200mVとなるわけです。
「パソコンが熱くなってしまった時、その熱を感知し、冷却ファンを動かす装置」、「エアコン」、「デジタル温度計」などに多く使用されています。
距離センサー
▲これは超音波タイプの距離センサー
距離センサーとはその名の通り、「距離」を検知するセンサーです。
赤外線で距離を測るものや超音波を発して距離をとるものなどがあります。赤外線は屋外では使いづらく、超音波は反射音が起こりやすい空間では正確に距離が図れないことがあります。測れる距離もセンサーのタイプによってそれぞれ特徴が異なります。
「自動開閉ドア」「自動水栓(蛇口)」「自動車の衝突防止装置」に多く使用されています。
加速度センサー
加速度センサーとは「動いている物の速さ」を検知するセンサーです。単刀直入に言うと、「センサーがどんな状態」にあるのかということを検知し、値を出すことができます。
「自動車のエアバッグ」、「スマートフォンの縦か横かを検知する機能」、「携帯ゲーム機(任天堂株式会社のWii U、Switchなど)」に多く使用されています。
このように、身近な製品を見てみると、センサーは私たちの生活に欠かせない存在であることが分かります。よって、これらのセンサーを用いれば面白い仕掛けが制作できるのです!
3.センサーを使ってみよう
さて、実際にセンサーを使って電子工作をしていきましょう!ここでは「Cdsセル」を用いて、「明るさ」を扱ったプロダクトを制作します。前回はLEDを光らせるところまで行いましたが、センサーも取り込んでインタラクションするところまで実践しましょう。
明るさを測定しよう
ArduinoとCdsセルを用いて「室内の明かり」を測定します。こんな小さなセンサーで室内の明かりを検知できるなんて信じられませんが、まずはやってみましょう。
▼Arduinoの他に必要なもの
・Cdsセル 1個
・抵抗 10kΩ 1個
・ジャンパワイヤー 3本
・ブレッドボード 1個
▼電子回路を組み立てよう
下の図のように組み立てて見ましょう。抵抗器の足が長いようならペンチで切るなどしましょう。Cdsセルはプラスマイナスがないのでどっちの足を差しても大丈夫です。
実物はこのようになります。
▼スケッチを書こう
では次にスケッチを書いていきましょう。「//」と入れるとプログラムに反映されず、メモとして残すことができます。「どういうプログラムだったっけ?」とならないためにもメモを活用していきましょう。
//初期化 void setup() { Serial.begin(9600); //モニターに出力するための設定 } //繰り返し void loop() { int i; //入力された値を格納する為の変数 i = analogRead(0); //アナログ入力を受ける関数 Serial.print(i,DEC); //読み取った値をディスプレイに表示 Serial.print("/n"); delay(1000);//1000ミリ秒遅延 }
▼ 動作確認
マイコンボードにスケッチを書き込んだら、実際に数値が変化しているのを見たいですよね?では、Arduinoの「ツール」から「シリアルモニタ」を選択してください。
そうすると下記のように表示されます。
「シリアルモニタ」を押すと下記のようなウィンドウが現れます「n310/n310/……」と明るさが記録されていきます。
Cdsセルに手をかざすと数値が変化するので試してみてください。なお、この数値は環境によって値が変わります。筆者は屋内で室内照明をつけた状態で明るさを測定しました。
このように変化をシリアルモニタで確認することができれば、成功です!それでは次にセンサーに反応するLEDの装置を作ってみましょう!
暗くなったらLEDを点灯させる装置を作ろう
センサーに反応して「LEDが光る」装置を作りたいと思います。暗くなったら明かりをつけてくれるライト製品は、よくあります。ちょっと難しく思うかもしれませんが、特別難しいことはないので記事を読んで真似してみてください。
▼Arduinoの他に必要なもの
・Cdsセル 1個
・LED 1個
・抵抗 10kΩ 1個
・抵抗 510kΩ 1個
・ジャンパワイヤー 4本
・ブレッドボード 1個
▼電子回路を組み立てよう
先ほどの電子回路にLEDと抵抗器を付け足しましょう。先ほどと変わらず「アナログINピン」側にはセンサーの回路を差し、「デジタルI/0ピン」側にはLEDの回路を差し込みましょう。
▼スケッチを書こう
もし310という値以下の場合は「LEDを点灯する」というプログラムになっています。室内の明るさによって数値に変動があるので、シリアルモニタで確認をしてから数値をいじってみてください。
//LEDの定義 #define BLUE_PIN 10 //10番に差す青いLED //初期化 void setup() { pinMode(BLUE_PIN,OUTPUT); //LEDのピンを出力に } //繰り返し void loop() { int i; //入力された値を格納する為の変数 i = analogRead(0); //アナログ入力を受ける関数 if(i<310){ //310より小さければLEDを点灯 digitalWrite(BLUE_PIN,HIGH); } else{ //そうでなければLEDを消灯 digitalWrite(BLUE_PIN,LOW); } }
▼ 動作確認
成功すると上の動画のようになります。Cdsセルの上に手をかざすときちんとLEDに明かりが灯ります!普段は当たり前のようにこの機能を使っているとは思いますが、自分の手でこのような仕掛けができるのは楽しいですよね!ちょっと電子工作っぽくなってきてワクワクしませんか?
最後に
今回は実際にセンサーを用いて電子工作を行いました。今回紹介したセンサーのほとんどが普段使っている製品に利用されています。日常生活の中で「何かを検知して、検知した何かに対して反応を返す」ということを自動で行ってくれているプロダクトのありがたみを感じたのではないでしょうか。
実際作るとなると「複雑そうで難しそう」と思うかもしれませんが、ご覧の通り、Arduinoでは簡単に組み立ててプロダクトを作ることができます!ぜひ、この機会に「Arduino」を利用してみましょう。次回はセンサーを利用した応用プロダクトについて記事にする予定です。お楽しみに。
(2017.8.7)
著者
はたらくビビビット
ポートフォリオとデザインのリファレンスメディア