Scratch 2.0でLチカに挑戦!:Scratch 2.0で体験! お手軽フィジカルコンピューティング(10)(1/3 ページ)
Webブラウザだけでプログラム開発から実行まで行える「Scratch 2.0」を用い、センサーの接続や外部デバイスのコントロールに挑戦!今回はScratchから外部機器をコントロールします。第一弾はLチカです。
本連載は、Webブラウザ上でプログラム開発から実行までを行える「Scratch 2.0(以下、Scratch)」を用いた“フィジカルコンピューティング”入門です。電子回路があまり得意でない人でも取り組みやすい、センサーや外部デバイスと接続した作例を紹介しています。
これまでの連載ではさまざまセンサーをマイク端子に接続してScratchのプログラムと連動させる実験を行ってきました。今回からはScratchから外部機器に対して出力する手段について考えて行きたいと思います。まずはScratchのスクリプトで生成したオーディオ信号をPCのイヤフォンジャックから取り出し、ブレッドボードに組んだ回路でLEDを点滅させる実験に挑戦します(図1)。
コラム「オーディオ信号に情報を乗せるということ」
Scratch2.0で外部機器を制御しようとすると、一番手っ取り早いのがオーディオ信号を使うことになるでしょう。そして、そのオーディオ信号にはさまざまな情報を乗せることができます。例えば音量の強弱、周波数の高低、位相差などですね。
インターネットの黎明(れいめい)期、まだ常時接続が高根の花だった時代。ほとんどの人は電話回線を使ったダイアルアップ接続でインターネットに接続していました。当時の電話回線はまだアナログ回線ですので、インターネットのプロトコルをオーディオ信号に変換し、電話回線を通してやりとりしていました。
アナログ電話回線の帯域幅は3.4KHzでしたので、普通に考えればこの回線には3.4Kbpsのデジタル信号を載せるのが精一杯です。ところが音量の強弱、周波数の高低、位相差などを総動員することで、56kbpsの信号を載せられるまでになりました。これってある意味マジックですよね。
という具合に、オーディオ信号でテータ通信を行うことに可能性を感じていただけるでしょう。現代のオーディオ信号にデータを載せる技術はさらに高度化していますが、今回は最も単純な方法で、オーディオ信号でLEDを点滅させる実験を行ってみます。
オーディオ信号の有無でLEDを点滅させる回路
今回はオーディオ信号の有無でLEDの点滅をしてみます。図2が今回作製する回路図で、トランジスタ1個使ったシンプルな回路です。最も一般的なシリコン製のNPNタイプのトランジスタを、LED点滅させるスイッチとして使います。スイッチをON/OFFをさせるのはオーディオ信号の有無です。
では回路図を見ていきましょう。PCのイヤフォンジャックからオーディオ信号を取り出します(これには以前に作製したマイク端子入力ケーブルが利用できます)。入力したオーディオ信号はコンデンサを介して、トランジスタのベース(B)に接続します。このベースには抵抗と可変抵抗がつながっています。抵抗の一端はプラス電源、可変抵抗の一端はマイナス電源(グランド)につながっています。可変抵抗はノブを回すことによって抵抗値を変えられる部品です。この可変抵抗によりベースにかかる電圧を調整します。
トランジスタはベースからエミッタ(E)にわずかな電流を流すと、コレクタ(C)からエミッタにより多くの電流が流れるという特性をもっています。この特性を利用してトランジスタが増幅器やスイッチとして利用できるわけです。しかしベースからエミッタに電流を流すためにはある一定以上の電圧をかける必要があります。これをバイアス電圧といいます。この電圧はトランジスタを製造する物質の組み合わせで決まり、シリコン製のトランジスタであれば0.6Vから0.7V程度です。このベースにかけるバイアス電圧を調整するのがこの可変抵抗の役割です。
トランジスタの残りの足のエミッタはグランドに接続します。またコレクタには抵抗R2を介してプラス電源に接続します。発光ダイオードのアノードをトランジスタのコレクタ、カソードをグランドに接続します。
ベースからエミッタに電流が流れていない状態では、コレクタからエミッタへも電流が流れないので、この場合、抵抗R2からの電流は発光ダイオード側を通ります。よって発光ダイオードは点灯します。一方、ベースからエミッタに電流を流した場合は、R2からの電流はコレクタからエミッタ側を通りますので、発光ダイオード側を通りません。従って発光ダイオードは消灯の状態となります。
厳密に言えば、発光ダイオードもトランジスタと同様に一定以上の電圧をかけないと電流が流れないしきい値を持っています。赤色など比較的色温度の低い発光色の場合、2.1V程度です。抵抗R2に対してベースに電流を流したときのコレクタとエミッタ間の抵抗が十分小さければ、コレクタの電圧がLEDのしきい値に達しないのでLEDへは電流が流れず、結果として発光しないわけです。
Copyright © ITmedia, Inc. All Rights Reserved.