【マイクロビット×MakeCode】クラップライト(チュートリアル:Clap Lights)

この記事では、MakeCode for micro:bitのチュートリアル「クラップライト(Clap Lights)」解説かいせつします。

Clapは英語えいごで「たたく、うつ」という意味。

今回は、マイクロビットについているマイクを使って、手をたたいた音でLEDを点灯てんとう消灯しょうとうさせるプログラムを作ります。

新しいバージョン(V2.0~)用のチュートリアルです。

 

スポンサーリンク

チュートリアルを開始する

MakeCode for micro:bitのホーム画面を開きます。

チュートリアル「Clap Lights」選択せんたくし、ブロックの「チュートリアルを開始」をクリックしましょう。

Clap Lightsを開始する

 

不要なブロックを消す

最初さいしょだけ」ブロックは今回使わないので消しましょう。

最初だけブロックを消す

 

まわりの音がうるさくなったとき

手をたたいて、マイクが音を感知したときの処理しょりを作りましょう。

入力カテゴリにある「まわりの音がうるさくなったとき」ブロックを配置はいちします。

まわりの音がうるさくなったとき

「まわりの音がうるさくなったとき」ブロック
「うるさいかどうか」のしきい以上いじょう音量おんりょうを感知したとき、中にあるプログラムを実行します。

 

変数「lightsOn」を作成する

変数へんすうカテゴリをえらんで変数へんすう追加ついかする…」をクリックし、lightsOnという名前の変数へんすうを作りましょう。

変数「lightsOn」を作成

変数へんすうとは、プログラムで使う数字や文字のようなデータを一時的いちじてき保存ほぞんするための場所のことです。よく数字や文字を入れておく箱と言われたりします。

変数へんすうについて「変数へんすうとは?スクラッチ(Scratch)を使って解説かいせつ」でくわしく解説かいせつしています。

 

「lightsOn」はLEDが点灯しているか記録する変数

変数へんすう「lightsOn」は、LEDが「点灯てんとうしているか」または「消灯しょうとうしているか」記録きろくする役割やくわりがあります。

  • 点灯てんとうしている場合は「真(しん)」
  • 消灯しょうとうしている場合は「偽(ぎ)」

真なら点灯、偽なら消灯

そもそもしんって何?ってことですが、カンタンに言うと

  • しんはそうだよ
  • はちがうよ

という意味です。英語えいごで、しんはtrue、にせはfalseと表現ひょうげんされます。

真偽しんぎについては「論理ろんり演算えんざん(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説かいせつ」でくわしく解説かいせつしています。

 

点灯している?消灯している?

変数へんすう「lightsOn」あたいが真かかで処理しょりが分かれます。

  • 変数へんすう「lightsOn」あたい → LEDを点灯てんとう
  • 変数へんすう「lightsOn」あたい → LEDを消灯しょうとう

論理ろんりカテゴリの「もし<真>なら/でなければ」ブロックを出し、「まわりの音がうるさくなったとき」ブロックの中に配置はいちします。

変数へんすうカテゴリの変数へんすう「lightsOn」を出し、「もし<真>なら/でなければ」ブロックの<真>の部分に配置はいちします。

変数「lightsOn」が真なら

「もし lightsOn なら」という条件じょうけんにピンとこないかもしれません。

これは変数へんすう「lightsOn」が真なら」と同じ意味です。

「もし<真>なら/でなければ」ブロックは、もし条件じょうけんが真の場合は「なら」の下にある命令めいれいを実行し、の場合は「でなければ」の下にある命令めいれいを実行します。

なので、変数へんすう「lightsOn」あたいの場合、「なら」の下にある命令めいれいが実行されます。

 

変数「lightsOn」が真なら

変数へんすう「lightsOn」なら、LEDを点灯てんとうします。

基本きほんカテゴリから「LED画面に表示ひょうじブロックを出し、「もし lightsOn なら/でなければ」ブロックの「もし lightsOn なら」の下に配置はいちします。

LEDは自由にデザインしましょう!

lightsOnが真なら、LEDを点灯

 

変数「lightsOn」が真でなければ

変数へんすう「lightsOn」なら、LEDを消灯しょうとうします。

基本きほんカテゴリから表示ひょうじを消す」ブロックを出し、「もし lightsOn なら/でなければ」ブロックの「でなければ」の下に配置はいちします。

lightsOnが偽なら、LEDを消灯

 

変数「lightsOn」の値を逆にする

手をたたいてマイクが音を感知するたびに、変数へんすう「lightsOn」ぎゃくあたい(真⇔)にします。

変数へんすうカテゴリから変数へんすう lightOn を 0 にする」ブロック出し、「もし lightsOn なら/でなければ」ブロックの上に配置はいちします。

論理ろんりカテゴリから「ではない」ブロックを出し、変数へんすう lightOn を 0 にする」ブロックの 0 の部分に配置はいちしましょう。

変数へんすうカテゴリから変数へんすう「lightsOn」ブロックを出し、「ではない」ブロックの空いている部分に配置はいちします。

lightsOnを逆の値にする

「~ではない」ブロック
入力が真ならなら真を返します。

 

シミュレーターで確認する

シミュレーターで作ったプログラムをためしてみましょう。

シミュレーターで確認する

LEDの右に出てきた音量おんりょうのコントローラーを上下にドラッグすることで、音量おんりょうを上げ下げできます。

音量おんりょうを上げてみてください。あるあたい以上いじょうになると、LEDがついたり消えたりするはずです。

チュートリアルの説明せつめいでは128以上いじょうとなっていますが、165以上いじょうにするとLEDが点灯てんとう消灯しょうとうします。

 

マイクロビットにプログラムを転送する

シミュレーターで正しく動くことを確認かくにんできたら、マイクロビットに転送して動かしてみましょう。

マイクロビットにプログラムを転送する方法ほうほうは「【マイクロビット】パソコンとのつなぎ方・外し方、プログラムの転送方法ほうほう」でくわしく紹介しょうかいしています。

 

しきい値を調整する

マイクロビットに転送して動かしてみてると、手をたたいてないのにマイクが音を感知してしまったり、反対に手をたたいても音を感知してくれなかったりするかもしれません。

そんな時は、音のしきいを調整しましょう。

入力の下にあるその他カテゴリにある「うるさいかどうかのしきいを128に設定せっていする」ブロックは、「うるさいかどうか」のしきい設定せっていするブロックです。

しきい値を設定する

しきいとは、さかい目になるあたいのこと。まわりの音の大きさがしきい以上いじょうの場合は「うるさい」と判断はんだんします。

何も設定せっていしなかった場合、しきいは165になっています。

しきいを小さくすると、小さな音でも感知するようになり、しきいを大きくすると、大きな音をたてないと感知しないようになります。

試行錯誤しこうさくごしながら、ちょうどいいあたいをさがしてみてくださいね。

 

変数「lightsOn」には、最初何の値が入っている?

プログラムはこれで完成かんせいですが、ここで問題です。

変数へんすう「lightsOn」には、最初さいしょ何のあたいが入っているでしょう?

一番最初さいしょに音を感知した時変数へんすう lightsOn を lightsOn ではない にする」ブロックで、変数へんすう「lightsOn」が何から何にわっているのか気になりませんか?

 

「エディターえ」ボタンで、プログラムの表示ひょうじをブロックからJavaScriptに切りかえてみてください。

そうすると、ブロックで作ったプログラムがJavaScriptというプログラミング言語で表示ひょうじされます。

変数「lightsOn」には、最初何の値が入っている?

その中に、

let lightsOn = false

という命令めいれいがあります。

これは、lightsOn という変数へんすうを作って false()を設定せっていしなさいという命令めいれいです。

よって、変数へんすう「lightsOn」には最初さいしょ」が設定せっていされていることが分かります。

 

変数へんすう最初さいしょ何が入っているか分かりません。使用する前にあたいを入れて初期化しょきかする必要ひつようがあります。

ブロックでプログラミングしていると変数へんすう最初さいしょ何が入っているのか分かりにくいです。

変数へんすうにどんなあたいが入っているのか意識いしきするようにしましょう。

 

まとめ

チュートリアル「クラップライト(Clap Lights)」について紹介しょうかいしました。

今回使用したブロック

  • 「まわりの音がうるさくなったとき」ブロック
    「うるさいかどうか」のしきい以上いじょう音量おんりょうを感知したとき、中にあるプログラムを実行します。
     
  • 「~ではない」ブロック
    入力が真ならなら真を返します。
     
  • 「うるさいかどうかのしきいを128に設定せっていする」ブロック
    「うるさいかどうか」判断はんだんするしきい設定せっていする。

 

下の記事で、マイクの機能きのうについてくわしく解説かいせつしています。興味きょうみがあったら読んでみてください。

 

タイトルとURLをコピーしました