連載
» 2014年10月10日 11時00分 公開

Scratch 2.0でLチカに挑戦!Scratch 2.0で体験! お手軽フィジカルコンピューティング(10)(3/3 ページ)

[今岡通博,MONOist]
前のページへ 1|2|3       

Scratchでプログラミング

 Scratchは幸い、オーディオ信号を発生するさまざまな機能を備えています。1つは音声ファイルの再生。もう1つはMIDI音源を使ったものです。今回は最も基本的な例として、MIDI音源を鳴らしてLEDを一秒間隔で点滅させるプログラムを作ります。

 ここからはScratchのプロジェクトエディタでの作業になります。それらの使い方や説明はこれまでの連載をご参照ください。それでは早速スクリプトを見ていきましょう。

photo 0.5秒オルガンの音を発声し、0.5秒無音の状態を繰り返すスクリプト(図8)

 図8が今回紹介するスクリプトです。開始合図の緑フラグのボタンを押すとこのスクリプトが起動します。今回はMIDI音源を使いますので、次の紫のブロックで鳴らす楽器の種類を選択します。紫のブロックは音にかかわるブロック群ですので、ブロックパレットから紫のカテゴリーを選択してください。ここではオルガンの音を選択しました。

 次のブロックから永久ループに突入します。このループの中では69の音符を0.5秒間鳴らしています。69は880Hzの音が0.5秒間出てきます。別に880Hzにこだわっている訳ではありませんが、周波数カウンタなどで確認するときにキリがよいので特定しやすいでしょう。次に1秒待ちます。結果として0.5秒オルガンの音を発声し、0.5秒無音の状態を繰り返すプログラムとなります。

試してみよう

 それではScratchで生成したオーディオ信号を、ブレッドボードに入力してみましょう。まずScratchのスクリプトを起動し、PCのスピーカーで1秒間間隔の音が出ていることを確認してください。イヤフォンジャックにケーブルを接続し、もう一方をブレッドボードの所定の位置に接続します。ブレッドボード側に電源を供給し、可変抵抗のノブを徐々に回すと、1秒間隔でLEDが点滅する箇所が見つかりますか? うまくいかない場合はPCの音量も調節してみてください。

 筆者のPCではオーディオ信号がない(何も鳴っていない)状態だとLEDは消えており、オーディオ信号がある(音が出ている)状態だとLEDは点灯します。皆さんのPCではいかがでしょうか。この逆になっている場合もあるかもしれませんが、PC側のオーディオ出力回路との兼ね合いもあるかと思います。

まとめ

 今回はScratchのプログラムで生成したオーディオ信号で、LEDを点滅させてみました。一見すると1秒間隔でLEDが点滅しているように見えますが、実は点灯している0.5秒間の間にLEDは細かく瞬いているのです。今回880Hzの音源を用いましたので、0.5秒間に440回の点滅を繰り返しています。人間の目にはこの点滅は見えませんのでLEDは1秒間隔で点滅しているように見えますが、この信号を用いて他の外部機器を制御する場合はなんらかの配慮が必要です。そのような場合も考慮し、次回はLEDの代わりにリレーを駆動する実験に挑戦してみます。 (次回へ続く

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.