Skip to content

アクティビティ

拍手でライト

初級 | MakeCode, Python | LED表示, マイク | センサー, ブール論理, 抽出

ステップ1: 作る

説明

micro:bit を、大きな音や拍手でオンとオフが切り替えられるライトに変えましょう。

はじめに

プログラミングガイド

学ぶこと

  • センサー入力に反応して出力を切り替える方法
  • ブール論理(真偽)を使用して、同じイベントでトリガーされたときにオンとオフを切り替えるスイッチを作る方法

動作の仕組み

  • このプログラムはlightsOnという変数をつかってあかりの状態がオンなのかオフなのかを記録し続けます。 ブール変数という特別な種類の変数を使います。 真偽値の変数は2つの値だけをとります: 真(on)または偽(off)です。
  • マイクセンサーが大きな音を検出したとき、コードは lightsOn の値を
    not lightsOn に切り替えます。
  • これは、拍手をしたときにもしlightsOnが偽(ライトがついていない)だったら値を真に変えてプログラムでLEDのライトをつけるという意味です。
  • もしligjtsOnが真(ライトがついている)だったら値を偽にしてコードはLEDを消し、画面には何も映らなくなります。

必要なもの

  • micro:bit
  • MakeCodeまたはPythonエディター
  • バッテリーパック(オプション)

ステップ2: プログラムする

1from microbit import *
2lightsOn = False
3
4while True:
5    if microphone.was_event(SoundEvent.LOUD):
6        lightsOn = not lightsOn
7        if lightsOn:
8            display.show(Image('99999:'
9                               '99999:'
10                               '99999:'
11                               '99999:'
12                               '99999'))
13        else:
14            display.clear()
15    sleep(100)

ステップ3: 改善する

  • 「うるさいかどうか のしきい値を設定する」ブロックを「最初だけ」ブロックに追加すると、「まわりの音が うるさくなった とき」ブロックの感度を上げたり下げたりできます。 静かな音には小さな数値を、大きな音には大きな値を使います。 上記のコーディングビデオで、やり方を説明しています。
  • Pythonでは、大きな音のしきい値を変えるにはmicrophone.set_threshold(SoundEvent.LOUD, 128)を使います。数字の128を、0から255までの好きな値に変えてみましょう。
  • ライトがつくときに、曲も演奏するようにしてみましょう。
  • サウンドを使って、 LED を点灯させる、 micro:bit のピンにつないだサーボモーターを作動させるなど、他のプロジェクトの制御をしてみましょう。