Scratch ベースで動かそう! 「かえるのうた」を リストにする GND A0 第9回 なつ ほん ばん あつ 冷蔵庫閉め忘れ防止オルゴール ひ つづ つめ 夏も本番! 暑い日が続くと冷たいもの ほ の もの だ が欲しくなるね。 でも飲 み物を出した あと れい ぞう こ し わす 後 に、うっかり冷 蔵 庫 のドアを閉 め忘 でん 次に、スタディーノ基板とパソコンをUSBケーブルでつなぎ、 パソコンでブロックプログラミング環境を起動しよう。起動したら、 [編集]メニューの[入出力設定…]を開き、右上の[ボタン]にある [A0]のチェックを外す。それから[センサー /LED/ブザー]にあ る[A0]にチェックを入れて、メニューから[ブザー]を選ぶ。終わっ たら、「OK」ボタンで入出力設定を閉じよう。 き れちゃうことってない? そうすると電気 だい なか いた 代もかかるし、 中 のものも傷 んでしま こん かい お う。 今 回 はそんなことが起こらないよ れい ぞう こ なか い ー ピーピ つか うに、 冷 蔵 庫 の中に入れて使える、ド ひら あいだ おと な アが開 いている間 だけ音 が鳴 るオル 監修・原案/青山学院大学客員教授 阿部和広 協力/NPO法人 CANVAS 文/塩野祐樹 圧電スピーカーのテスト www.kodomonokagaku.com/magazine/studuino/ Scratch は、 音符を入力して演奏したり、 録音した曲を再生 したりできる。でもスタディーノには、 そのようなシンセサイザー や MP3プレイヤー機能はないし、 そもそもスピーカーがないの で、 そのままでは演奏できない。 そこで、電子ブザーを使って、好きな音階の音が出せるように してみよう。 電子ブザーには、 Studuino 専用のブロックもある けど、 今回は一般的な圧電スピーカーを使ってみるぞ。 圧電スピーカーのしくみ 普通のダイナミック型スピーカーは、 固定した永久磁石の周り に、コーン紙を取りつけた電磁石を置き、 電磁石に交流の電流 を流して、コーン紙を振動させることで音を出す。これに対して、 圧電スピーカーは、ロッシェル塩などの結晶に電圧をかけると歪 む性質(圧電効果)を利用して、 直接音を出すんだ。 今回は、スタディーノの A0端子を出力にして、圧電スピーカー (PKM13EPYH4000-A0)をつなぎ、 そこにかかる直流電流 を高速でオンオフすることで、 その周期(周波数)の音を鳴らそ う。 68 2016.9 パーツ表 音楽を演奏する方法 スタディーノ ロボティスト用カバー台座付き…1 個 電池ボックス…1 個 圧電スピーカー(PKM13EPYH4000-A0)…1 個 フォトトランジスター(SFH309)…1 個 抵抗器 100kΩ(茶黒黄金)…1 個 ブレッドボード…1 個 ジャンパー線 オスーオス…3本 圧電スピーカーの配線と 入出力設定 PKM13EPYH4000-A0からは、 2本のリード線(針金)が 出ている。この片方をスタディーノの「A0」のソケット(穴が開い ているところ)、もう片方を「GND」のソケットに差し込もう。差 し込むソケットは、今までセンサーケーブルを差し込むのに使って いた「A0」のピン(3本が縦に並んだ金色の針)とは違うので気 をつけよう。向きはないので、どちらのリード線をどちらに差して も大丈夫だ。 ド レ ミ ファ ミ レ ド 休 60 62 64 65 64 62 60 0 ミ ファ ソ ラ ソ ファ ミ 休 64 65 67 69 67 65 64 0 これらをさっきのように「ブザー A0から~を出力する」のブロッ クに入力してもいいけど、ノート番号だけを楽譜データとして管理 することで、プログラム本体を簡単にすることもできる。そこで使 うのが「リスト」だ。 リストは、複数の変数をひとまとまりにして、名前をつけたよう なもの。学校の靴箱みたいに変数が順番に並んでいて、番号で 中身を出し入れできる。これは、ほかのプログラミング言語の「配 列」とほぼ同じものだ。 リストをつくるに は、 [変数]カテゴ リーの[リストを作 る]ボタンをクリッ ク す る。 名 前 は 「score」 (楽譜と いう意味) にしよう。 [OK]ボタンをク リックすると、リストを操作するためのブロックが追加される。 ゴールをつくろう! 「コカねっと!」の スペシャルページで復習しよう 「かえるのうた」の頭の部分を演奏してみよう。ドレミ譜と、それ に対応したノート番号は下の通りだ。休符は0で表したよ。 [実行]メニューから[テストモード開始]を選ぶ。モードが切り替 わったら[動き]カテゴリーにある[ブザー A0から60を出力する] のブロックをクリックしてみよう。音が鳴るかな?「60」という数字 は、電子楽器の国際規格 MIDIで使われている音階を表す数字で、 ノート番号という。60はC、つまり「ド」の音だ。数字が大きくな ると高い音、小さくなると低い音になるよ。音が鳴らないときは配 線を確認しよう。音を止めたいときは、「ブザー A0の出力を停止 する」のブロックをクリックしよう。 次に、下のプログラムを実行してみよう。「ドレミ」と鳴るはずだ。 ノート番号を覚えていなくても、「60▼」の「▼」をクリックすると 表示されるピアノの鍵盤で入力できるよ。また、似た組み合わせ がたくさんあるときは、ブロックを右クリックすると表示されるメ ニューにある「 複 製」を使うと便利 だ。 このプログラム では、出力と出力 の間で0.5秒 待っ ているので、1秒 間 に2回、1分 間 に120回、音が鳴 る。つまり、それ ぞれの音は、4/4 拍子で♩=120の ときの4分音符の 長さになっている よ。 リストにノート番号を入れるには、 [~をscoreに追加する]ブロッ クを使う。これを「かえるのうた」で必要な分だけ用意しよう。 また、 ノート番 号を追 加 する前 に、リスト「score」 の長さの回数だけ、 [1番目をscoreか ら削除する]を繰り 返している。リスト は、1番目を削 除 す ると、2番 目 以 降 が1つ 上に繰り 上がってくる。 だ から、「1番目を削 除」をリストの長さ 分繰り返すと、リ ストの中身を空っ ぽ に できるん だ。 もしリストを空にし ないと、実行する たびに「追加する」 ブロックによってリ ストが長くなってし まうよ。 リストにノート番 号を入れるプログ ラムはこんな感じ。 「initialize( 初 期 化)」関数として定 義したよ。 2016.9 69 「かえるのうた」を演奏する 光センサーの 配線と入出力設定 リスト通りに演奏するには、 scoreに入力されたノート番号を1 番目から順番にひとつずつ取り出して、[ブザー A0から~を出 力する]で鳴らせばいいね。休符のとき(ノート番号が0のとき)は、 [ブザー A0の出力を停止する]にしよう。次に演奏するリストの 番号を表すため、 変数「index」をつくっておこう。 演奏用プロ グラムは「play」関数として定義したよ。 ミニブレッドボードには、 穴がたくさんあいている。この穴に 部品のリード線や、 配線に使うジャンパーケーブルのピンを差し 込んで配線するんだ。 ミニブレッドボードを横向きにしたとき、 縦に並んでいる5つの 穴は中でつながってるよ。逆に、横に並んでいる穴はつながって いないんだ。上下の段もつながっていない。この性質をうまく使 うことで、 いろいろな回路を組み立てることができるんだ。 ······································································ ① 縦5つが つながって いる ······································································ ② ······································································ ③ ······································································ ④ 冷蔵庫閉め忘れ防止 オルゴールのプログラム テストモードに切り替えると、ス テージにある[センサー・ボード]の 「 [A4]光センサー」に、明るさの 値が表示されるはずだ。光センサー を明かりに近づけたり、手で覆った りして、数値がどのくらい変化する か確かめてみよう。真っ暗だと0近 くまで下がるはずだ(ノイズや個体 差で0にならない場合もある) 。 ということは、光センサーの値が0近くまで下がったとき(ドアが 閉まっているとき)にオルゴールを止め、そうではないとき(ドアが 開いているとき)に鳴らせば、ドアの閉め忘れがわかるね。 これを踏まえて、play 関数を改造しよう。 完成したら、緑の旗をクリックして、演奏が始まるかどうか確認 しよう。光センサーを手で覆って暗くすると音が止まるかな? うまく いかないときは、条件の数値を調整しよう。 うまくいったら、 [実行]メニューの[プログラム作成・転送]を選 んで、スタディーノにプログラムを転送しよう。 転送が終わったら、スタディーノからUSBケーブルを抜き、電 池ボックスのケーブルをPOWER 端子に差し込む。スイッチをオン にしたら、準備完了だ。冷蔵庫の中に入れて、ドアの開け閉めで 実際に動作するか確認しよう。このとき、水滴がつかないように注 意してね。また、何回も開け閉めすると、冷蔵庫内の温度が上が るので、本末転倒だよ。 今回のしくみを応用すれば、朝になって明るくなったら音楽が流 れる目覚ましや、懐中電灯の光が命中すると音が鳴る射撃ゲーム もつくれるかも。いろいろ試してみよう。 ······································································ ⑤ ······································································ ⑥ [プログラム解説] ①リストの先頭から演奏するので、変数「index」を「1」に セット ②楽譜(リスト「score」)の長さの回数分繰り返す ③楽譜のindex 番目が休符(値が0)なら ④音を止める ⑤休符でなければ、楽譜のindex 番目の音(ノート番号) を鳴らす ⑥音符の長さだけ待ってから、変数「index」を1つ増やし、 繰り返しの最初に戻る 最後に、これらの関数 を呼び出すメインプログ ラムをつくったら、 緑の 旗をクリックしよう。ちゃ んと曲 が 演 奏され たか な? これでオルゴール部 分は完成だ。 短 長 長 − さっそく、フォトトランジスター SFH309を差し込んでみよう。 SFH309は白色 LEDとソックリ だけど、上から見たときに薄い 黄色に見える方が白色 LEDだ。 SFH309のリード線は、長い方 (マイナス側)と短い方(プラス 側)があるので、短い方が右に なるように写真の穴に差し込も う(LEDとは逆なので気をつけ よう) 。 短 + 次に100kΩの抵抗器を取り つける。リード線をコの字型に 折り曲げて、 写真の穴に差そ う。 青 緑 続いて、オス-オスのジャン パーケーブル(両端にピンがつ いているもの)を取りつける。 写真の通り差し込もう。ケーブ ルの色はおまかせだけど、 全 部違う色だとわかりやすい。 赤 赤 光センサーのしくみ 冷蔵庫は、ドアを閉めると明かりが消えて、中は真っ暗になる。 ということは、ドアの閉め忘れを調べるには、 光センサーを使え ばよさそうだね。 Studuino の光センサーには、フォトトランジスターという部品 が使われている。フォトトランジスターは、 半導体に光を当てる と、伝導電子が増えて、電流が流れる光電効果を使った部品だ。 今回は、フォトトランジスターの SFH309と100kΩの抵抗を使っ て、ミニブレッドボードに配線するよ。 青 3V3 A4 ジャンパーケーブル の反対側はスタディー ノ基 板に差し込むよ。 差し込む端子は、緑は GND、 青 はA4、 赤 は3V3(3.3V のこと) だ。 2016.9 完成! ·····························································································································② [プログラム解説] ①1度だけ鳴らすのではなく、ずっと繰り返して鳴らす ②休符のときか、光センサーの値が1未満のときは、 音を止める(この値は実験して調整しよう) キットがリニューアル! KoKa Shopで販売中!! 本連載で紹介するロボットや便利ツールをつくることができるキットがリニューアルして 「KoKaShop」で発売中!2016年1月号〜12月号で紹介する連載内容が遊べるよ。 「KoKaスタディーノプログラミングセット」購入済みのキミは「新追加セット」を購入して引き続き楽しもう! 新KoKaスタディーノプログラミングセット1万2960円(税込) 新KoKaスタディーノ追加セット 1620円(税込) 回路をイラストで示すとこのとおり。 GND A4 3.3V 緑 100kΩ SFH309 GND 最後に、ブザーのときと同じように、入出力設定を開いて、A4 を「光センサー」に設定しよう。 70 ·····························································································································① 2016年1月号から12月号まで、本連載全12回のすべての 内容ができるセット。 《キット内容》 ・スタディーノ ロボティスト用 カバー台座付き x1 ・ロボット用LED 赤 x1 ・ロボット用LED 緑 x1 ・USBケーブル miniB x1 ・センサー接続ケーブル 3本 ・電池ボックス x1 ・アーテックブロック 四角赤4、 四角ペールオレンジ15、 四角黒2、 三角青2、 三角白4、 目2 ・サーボモーター x1 ・ロボット用DCモーター x1 ・ロボット用赤外線フォトリフレクタ専 用カバー付 x1 ・タイヤ 2個 ・タイヤゴム x2 ・ 「新KoKaスタディーノ追加セット」 の 電子部品一式 「KoKaスタディーノプログラミングセット」と合わせること で、9月号〜12月号で紹介する連載内容が遊べるよ。 ※すでに「KoKaスタディーノプログラミングセット」 をご購入された方のため のキットです。初めての方は左の商品をお買い求めください。 《キット内容》 ・フォトトランジスタ SFH309 x 1 ・抵抗器 100kΩ x 1、 100Ω x 1 ・圧電スピーカー (PKM13EPYH4000-A0) x1 ・白色LED x 1・タクトスイッチ x 4 ・スライドボリューム (B10kΩ) (SL4515N-B103L15CM) x 1 ・ミニブレッドボード x 1 ・ジャンパーケーブル(オス-オス) x 8 ・ジャンパーケーブル(オス-メス) x 3 ・ジャンパーケーブル(メス-メス) x 3 子供の科学の通販サイト「KoKa Shop」shop.kodomonokagaku.com 2016.9 71
© Copyright 2024 Paperzz