micro:bitでコインの数をカウントする貯金箱を作ろう!
前回、コインを入れたら「チャリーン」という音(プログラムでは「ピコーン」という名前の音だけど、チャリーンと聞こえるw)が鳴り、ハートのアイコンが表示される貯金箱を作りました。
今回はプログラムを少しアレンジして、入れたコインの枚数をカウントしてくれる貯金箱にチャレンジしてみましょう!使用する部材は前回と同じく、micro:bitをはじめようキットとフォトインタラプターです。
- micro:bit(マイクロビット)をはじめようキット
- micro:bit本体 1個
- USBケーブル 1本
- 電池ボックス 1個
- 透明ケース 1個
- (参考商品)フォトインタラプター 1個
- (参考商品)コネクターベース 1個
プログラミング
今回の貯金箱はこのような命令で動かします。
- micro:bitがコインの通過を検知したら、変数「カウント」を1増やす
- 数を表示する
- 1と同時に「ピコーン」と音を鳴らす
前回プロジェクトと同じように、micro:bitにフォトインタラプターという赤外線センサーを接続して、貯金箱に「コインが入ったかどうか」を調べます。そしてLEDに「指定した条件の数字を表示」させ、さらに「指定したメロディを鳴らす」プログラムを作っていきます。
フォトインタラプターの仕組みについては前回記事を参考にしてください。
ではプログラミングです。
- まず最初に、コインの枚数を0に設定しましょう。変数ブロックを使います。ツールボックスの「変数」をクリックして、変数を新しく追加します。名前は自由に決められますが、ここでは「カウント」としておきます。「最初だけ」ブロックの中に「変数カウントを0にする」ブロックを入れます。
- 次は、フォトインタラプターからコインの通過を知らせる信号を読み取るプログラムです。高度なブロックの「入出力端子」の中にある「デジタルで読み取る」のブロックを使います。コインが通過していない時のセンサーの値は1、通過している時の値は0なので、「もし読み取った値が0だったら~」という条件にすれば良いのです。論理のブロックを組み合わせてこのようになります。端子は、フォトインタラプターを接続しているピンを指定してください。今回はP1を指定します。
- 次に、「ピコーン」の音を鳴らすブロックです。音楽ブロックの中にある「メロディを開始する」ブロックを使います。メロディは「ピコーン」に変更し、繰り返しはしないでおきます。
- 続いて、コインの数をカウントするためのブロックを入れましょう。変数ブロックを使います。
- 最後に、4で命令した数を表示させるブロックを入れます。これで完成です!
- シュミレーターでプログラムの動作を確認しましょう。数字が1,2,3と追加されて、ピコーンと音が鳴ったらOKです!
- シュミレーター上で問題なく動いていたら、micro:bitにプログラムをダウンロードし、動かしてみましょう。プログラムのダウンロードの仕方についてはこちらを参考にしてください。
完成したプログラム
工作
今回も紙パックを使って作ります。プログラムが違うだけで、前回の貯金箱と仕組みは全く同じです。前回の貯金箱の記事はこちら
-
micro:bitにコネクターベースを取り付けます。ネジの裏から手でナットを回して締めてから、最後にドライバーを使ってしっかり締めてください。
- 次に、コインが確実にフォトインタラプターのコの字部分を通過するように仕掛けを用意しましょう。写真のように、厚紙でコインの通り道を作って、コイン投入口から傾斜をつけて、滑り台のようにするとフォトインタラプターまでうまく転がってくると思います。滑り台の型データはこちらに用意しています。
- 貯金箱本体にいきましょう。500mlの紙パックの形を活かして三角屋根のお家型にしてみます。紙パック上部にコイン投入口を作ります。500円玉の直径26.5mmを目安に、若干余裕をもってカットしてください。そして、内側にフォトインタラプターの滑り台を設置します。
- 紙パック下部に開けた穴からフォトインタラプターのコードを外に出して、micro:bitに繋げます。
- あとは外側のデコレーションです!色画用紙を貼ったり絵を描いて可愛く仕上げていきましょう。
- micro:bitを透明ケースに入れて、貯金箱本体に貼り付けます。そして電池ボックスを繋いで、micro:bitの真裏の位置に貼り付けます。
- 電池ボックスのスイッチをオンにして、貯金箱にコインを入れてみましょう。音が鳴って、micro:bitに数字が表示されたら成功です!
最後までご覧くださりありがとうございます!
LEDやサーボモーターなどの拡張パーツを使うと、もっとおもしろい仕掛けができると思います。ぜひチャレンジしてみてください!