光センサーを自作して、Scratch 2.0で光の変化を捉えよう!Scratch 2.0で体験! お手軽フィジカルコンピューティング(7)(1/3 ページ)

Webブラウザだけでプログラム開発から実行まで行える「Scratch 2.0」を用い、センサーの接続や外部デバイスのコントロールに挑戦! 今回は、LEDを使った光センサーを自作し、光変化をScratchで捉える実験に挑みます。

» 2014年08月05日 11時00分 公開
[今岡通博MONOist]
photo

 本連載は、Webブラウザ上でプログラム開発から実行までを行える「Scratch 2.0(以下、Scratch)」を用いた“フィジカルコンピューティング”入門です。電子回路があまり得意でない人でも取り組みやすい、センサーや外部デバイスと接続した作例を紹介しています。

 前回までの記事では、外部の振動をPCのマイク端子を介して圧電スピーカで検出し、Scratchのプログラムで可視化する方法を紹介しました。

 これまではセンサー出力が音声帯域内でしたので、そのままマイク端子に入力して振れ幅の変化をPCで捉えることができました。しかし、もっと変化が緩慢な温度や日照の変化などは、どのように入力すればよいのでしょうか。また音声帯域より高い周波数で変化するセンサーの場合はどうでしょう。いずれにせよ入力手段はマイク端子となりますので、PC上のScratchにデータを伝えるためには「音声帯域の音量変化」に変換する必要があります。

 今回は光センサーを接続し、音声帯域より緩慢に変化する屋内や野外の照度変化を捉える実験に挑戦します。光センサーについてはLED(発光ダイオード)を用い、光の強さの変化を、音量変化に変換する回路を作ります。それを以前に作成したオシロスコープ(Scratchで「簡易オシロスコープ」を作ろう!)を接続して、光の強さの変化を確認してみましょう。

ロングセラーIC「IC555」について

 ここで始めて登場する部品のひとつ、「IC555」について少しお話しておきます。タイマーICとして有名なこのIC555は1971年から製造されており、現在でも年間10億個が出荷されています。開発当時のバイポーラトランジスタの集積回路から、製造プロセスの進化に伴い現在ではCMOSタイプのものも出荷されています。

 集積回路の黎明(れいめい)期に開発された回路でありながら、いまだにその地位は揺るぎのないものとなっており、最も成功したファンクションICの1つといえるでしょう。20世紀は半導体技術が最も進展した世紀ですが、その渦中にありながら40年以上も使い続けられているICは他になく、優れた回路は時代を超えて使い続けられるということなんでしょう。

 今回はこのIC555を用います(今後の連載でも登場するかもしれません)。IC555の回路はコンパレータ2個とフリップフロップで構成されています。詳しくは次回以降に譲るとして、このICは遅延、ラッチ、タイマー、パルスジェネレーター、発振器、PWM(Pulse Width Modulation)生成回路など、さまざまな用途に利用されています。

 さて図1をご覧ください。音声帯域に振幅数が達しない電圧系センサーからの入力を、音量に変換する仕組みを示しています。この装置は発振器とアナログスイッチで構成されます。

photo この装置は発信器とアナログスイッチで構成されており、音声帯域に振幅数が達しない電圧系センサーからの入力を、音量に変換します(図1)

 発振器は20〜20000Hzの間の発振信号を作り、アナログスイッチは電圧系センサーからの信号出力を発振器の信号で切り替えます。電圧系アナログセンサーの信号変化が20Hz以下の直流電圧信号だとしても、音声帯域の発振信号で切り替えることにより、音声帯域の音量変化として取り出すことができるのです。

 図2が回路図です。今回はIC555を使って発振信号を作ります。アナログスイッチはダイオード1本で代用します。とても簡易的な変換装置ですが、原理を学ぶにはかえって都合がよいかもしれません。

photo 今回はIC「IC555」(図版中は「IC1」、品番は「NE555」)を使います。「C1」と「C2」はコンデンサー、「R1」と「R2」は抵抗、「D3」はダイオード(品番は「1N4004」)、「JP1」「JP2」はジャンパピンです。 「GND」と書かれている短詩は全て電源の負極に、「VCC]と書かれている端子は正の電極に接続します。また、IC1の各数字はピンの番号を表します

 まずIC555で構成する発振器から見ていきましょう。「GND」と書いている端子は全て電源の負極に接続します。「VCC」と書かれている端子は正の電極に接続します。IC555は製造プロセスの違いにより何種類かありますが、LMCタイプであれば1.5〜15Vで動作します。筆者はLMCタイプのIC555を乾電池2本(3V)で動作させています。JP1にセンサーを接続し、JP2にPCのマイク端子からのケーブルを接続します(Scratch 2.0で体験! お手軽フィジカルコンピューティング(3):圧電スピーカを利用した即席「ドラムパッド」を作ろう )。

 IC555は本来タイマーICですが、自動的にトリガーがかかるように回路を組むと電気的な振動を起こすため、発振器としてもよく用いられます。発振周波数は抵抗「R1」「R2」とコンデンサ「C1」の値により決定します。以下の式で出力周波数を算出できます。

周波数=1.44/((R2+2*R1)*C1)

 筆者の場合はR1が2.4KΩ、R2が1.2KΩ、そしてC1が0.1μFでしたので、計算値としては2400Hzとなりましたが、実測値は2200Hzでした。これはコンデンサの値には通常10%程度の誤差がありますので想定の範囲内です。出力は3番ピンに出てきます。

 次にアナログスイッチの回路を見てみましょう。アナログスイッチはダイオード1本で構成します。回路図においてダイオードは三角の頂点に線を引いた図形で表します。ダイオードにはそれぞれの端子に名前が付いており、三角形の底辺から出ている端子が「アノード」、三角形の頂点側を「カソード」と呼びます。ダイオードの特性としてアノードからカソードには電流が流れますが、その逆には電流は流れません。アナログスイッチの役目を果たすダイオードのカソード側をIC555の出力ピンに接続します。またアナログセンサーをアノード側に接続します。

 IC555は発振することで、3番の出力端子が一定の周期ごとにVCC側に接続したりGND側に接続したりします。今回は2200Hzで発振しているわけですから、3番ピンは1秒間に2200回、VCCとGNDを切り替えているというわけです。

 アナログセンサーの出力がVCCの電圧以上にならない前提であれば、アナログセンサーはダイオードのアノード側に接続されているわけですから、IC555の出力がVCCに接続したときは、アナログセンサーの出力はコンデンサC2を通じてJP2の1に届きますが、GNDに接続したときはアナログセンサーの出力はGND側に流れてしまい、JP2の1まで届かないのです。このようにしてアナログセンサーの出力が、2200Hzの発振音の音量変化となって取り出せるわけです(図1)。

 JP2の端子はPCのマイク端子に接続されますが、マイク端子にはエレクトリックコンデンサマイク用の電圧が供給されているので、このコンデンサC2でその電流をカットしています。C2の容量の決め方ですが、今回は取りあえずまとめ買いしたC1と同じコンデンサーを用いましたが、接続PCとの相性などで不具合がある場合は上限100μFくらいまでの容量のものに変更してみてください。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.