今回の課題は「micro bit によるプログラミング」ということですが、
①ネットで面白そうなプログラムを見つけ、それを再現する。
②ハロウィン感を演出するプログラムを考える。
の二本立てとなっております!
(本日のどうでもいい話:私のマウスの脇には、ブラウザのページ移動ができるボタンが付いています。そして私は先ほど、この記事の60%程を書き上げたところで、誤ってそのボタンを押してしまい、一つ前のページに戻ってしまうという事故が起こりました。・・・おわかりいただけたでしょうか。そう、私がそれまで書いていたデータは全て消滅し、今この文章を書いている時点ではもう2週目です。いつもなら黙って書き直すのですが、現在の疲労度によりもう心が折れたため、今回の記事ではいつものような詳しい背景は省かせていただきます・・・気が向いたら追記します・・・)
さて、まず①ですが、私は「エレキギター」と題されたプログラムを見つけました!
「micro:bitでギターとは・・・?」と思わされますが、音階を鳴らせる電子楽器のようなものでした。
それを再現したものがこちらになります!
音すっくな・・・5音しかない・・・
見てみると、端子p1を触るとド、p2でレ、p1とp2の同時押しでミ、Aボタンでファ、Bボタンでソの音が鳴るプログラムだということが分かります。
再現していて、ただ音を鳴らすだけなら、AボタンとBボタンによる音の出力に関しては、論理ブロックに組み込む必要はないのではないかと思いました。
寧ろこのプログラムだと、AボタンとBボタンの同時押しによる音の出力ができず、出せる音の幅が狭まってしまいますね・・・また、データを実際にmicro:bitに突っ込んで使ってみたところ、端子の同時押しは難しく、必ず先にレの音が鳴っていました。
ということで、自分なりに改造したのがこちら!
このプログラムでは、Aボタンでド、Bボタンでレ、AボタンとBボタンの同時押しでミ、端子p0でファ、p1でソ、p2でラ、ロゴでシ、本体を下に向けるとドの音が鳴るようになっています。
このプログラムの方が出せる音の幅が広く、音の出力条件も明確に分かれているため、実際に使ってみても楽器としてちゃんと機能しました。(端子の接触がよくないとスムーズに音が出ませんが・・・)
次に②ですが、単刀直入に言うと、「micro:bitにTrick or Treatされる」プログラムです。
・・・何を言っているかわかりませんよね。かいつまみ過ぎました。
とりあえずプログラムをご覧ください。
・・・はい、ちょっと長めのプログラムになってしまいましたが、これが「micro:bitにTrick or Treatされる」プログラムです。
具体的に説明すると、まず初期状態では「TRICK OR TREAT!!」という文字を表示しながら、少し不気味なメロディーを奏でています。
そこでAボタンを押すと、micro:bitの「TRICK OR TREAT!!」という問いかけに対して「TRICK」を選んだことになり、「!!!」という表示の点滅と同時に、micro:bitが壊れてしまったかのような音が鳴り続けます。これはmicro:bitによる「いたずら」で、しばらく音が鳴り続けます。そして「TRICK!!」という表示の後、micro:bitがいたずらっぽい笑みを浮かべ、初期状態に戻ります。
一方Bボタンを押すと、micro:bitに対して「TREAT」を選んだことになり、「TREAT!!」という表示の後、micro:bitが喜びながら口をパクパクさせます。そして満足したmicro:bitは「THANK YOU!!」という言葉とハートを残し、初期状態に戻ります。
なぜこんなに長いプログラムになってしまったのかというと、ハロウィン感を演出するために作った不気味なメロディーのせいです。このメロディーはAボタンかBボタンが押されたときに止まらなければならないため、一音一音の出力に条件判断のブロックをつけています。
今回であれば、変数「音波発生中」は基本的に0になるように設定してあります。そして、ボタンが押されたときに「音波発生中=1」に、一通りのアクションが終わった時に「音波発生中=0」になるようにしてあります。そのため、メロディーの一音一音の出力条件を「音波発生中=1のとき」にすれば、ボタンを押してからアクションが終わるまではメロディーが止まります。
このようなプログラムであるがゆえに、要約すると先述のようなよくわからない表現になってしまうのです。micro:bitとハロウィンを楽しめるプログラムともいえるかも知れませんね。
ハロウィンを楽しみたいけど忙しい方、友達と都合が合わない方、ちょっとしたハロウィン気分を楽しみたい方は、ぜひこのプログラムで、micro:bitとハロウィンを楽しんでください!Happy Halloween!
[感想・気づいたこと]
〇1年生の時にものづくり入門で作っていたものは、直接日常生活に役立つものが多かったため、今回 のような気分・雰囲気づくりに役立つものを考えるのは新鮮で面白かった。
〇今回自分でプログラムを考えてみて、やはり変数は非常に便利だと思った。とにかく使い勝手が良い一方、扱いには慣れが必要であるように感じた。
〇プログラムの改良もやってみたが、改良する際には悪いところを直すだけではなく、良いところを残す、ないし活用することも大切であることに気が付いた。
〇作るプログラムが決まると、そこからつい夢中になり、長時間ぶっ続けで問題解決の方法を探してしまう。それほどプログラミングは楽しいと感じている。
〇今回のプログラムは、LED表示のちょっとしたポイントまでこだわりをもって作った。表示が消えるまでの時間や、表示に加える動きなどに工夫をしたが、納得がいくものが出来上がった時の達成感はとても大きかった。
〇自分がプログラムでやりたいこと同士がぶつかってしまい、思い通りにいかない箇所もあったが、その解決策をいかに見つけるか、いかにやりたいことを両立させるかを考えるのは非常に難しいと思った。
[参考文献]
Microsoft, "エレキギター", Microsoft MakeCode for micro:bit, エレキギター (microbit.org)
[アーカイブ]
後日追記します・・・
はい。ブラウザで編集するとそういう悲劇があるので,ワードやメモ帳で書き上げてからコピーすることをおすすめします。。。 マイクロビットを楽器にする!そうか!その手があった。ぼっちざろっくというアニメの影響でバンドをやりたかったので。そうですね。マイクロビットでバンドを組もう。 変数ができるようになることでいっきに可能性が広がりますよね。 プログラミングしていると時間が溶けますよね・・・苦笑