クリエイター手抜きプロジェクト[632]IoT マイクロビット編 LEDディスプレイモジュールを使う
── 古籏一浩 ──

投稿:  著者:



今回は、スイッチサイエンスから発売されている、scroll:bitモジュールを使い、数値や文字列を表示してみます。なお、scroll:bitモジュールの開発元は、enviro:bitモジュールと同じ、Pimoroniです。

・scroll:bit
https://www.switch-science.com/catalog/6124/

・Pimoroni
https://shop.pimoroni.com/pages/about-us

詳しい説明は英語ですが、以下のGitHubに用意されています。

https://github.com/pimoroni/pxt-scrollbit

scroll:bitはマイクロビット用のモジュールなので、差し込むだけです。マイクロビットとモジュールを装着したら、パソコンとケーブルで接続します。





なお、間違って充電専用のケーブルを使わないように注意してください。充電用ケーブルでは、プログラムをマイクロビットに転送できません。USBケーブルとマイクロビットを接続できたら、プログラムを作る準備は完了です。

それではブロックエディタを使って、scroll:bitのLEDに文字(メッセージ)を表示してみましょう。最初に、モジュールを使うための拡張機能を読み込ませる必要があります。ブロックエディタのカテゴリリストの、「高度なブロック」の中にある「拡張機能」をクリックします。

すると検索ボックスとともに、様々なモジュール一覧が表示されますから、検索ボックスにscroll:bitと入力します。リターンキーを押すか、検索ボックス内にある虫眼鏡ボタンをクリックします。

すると、該当するモジュールが表示されます。scrollbitと書かれたモジュールのボックスをクリックすると、拡張機能が読み込まれます。カテゴリリストに「Scroll:Bit」という項目が追加されます。

scroll:bitのLEDに気温を表示するには、「Scroll:Bit」のカテゴリにある「scroll(" ") at brightness(128) with delay (ms)(50)」ブロックを使います。このブロックを無限に繰り返し処理を行う「ずっと」と書かれたブロック内にはめこみます。

ブロックの (" ") となっている空白部分に、表示したい文字列を入力します。Digital Creatorsと入力するだけで、自動的に文字がLEDに表示されます。なお、文字列が長い場合は、自動的に右から左にスクロールして表示されます。

スクロールの速さは「scroll(" ") at brightness(128) with delay (ms)(50)」ブロックの50の値で調整できます。値を大きくすると、ゆっくりとした表示速度になります。

あとはダウンロードボタンをクリックして、作成されたプログラムをマイクロビットに転送します。scroll:bit上のLEDに指定した文字列が表示されます。

ブロックエディタではなくJavaScriptプログラムの場合は、以下のようになります。

basic.forever(function () {
scrollbit.scrollText("Digital Creators", 128, 50)
})

それでは次に、LEDを個別にランダムな位置と明るさで点灯させてみます。

特定の位置にあるLEDを点灯させるには
「set pixel at col (0) row (0) to (128)」ブロックを使います。

colの後には0〜16までの値を指定します。X座標になります。rowの後には0〜6までの値を指定します。これはY座標になります。

toの後には0〜255までの値を指定します。これは輝度になります。数値が大きいほど明るくなります。0なら消灯したことになります。

この「set pixel at col (0) row (0) to (128)」ブロックと乱数を発生するブロックを組み合わせれば、LED上のランダムな位置に、ランダムな輝度で点灯させることができます。

ただし、このままではLEDモジュール上には反映されません。このブロックで設定するのは、マイクロビット内にあるメモリしか変更されないためです。

実際にLEDモジュールに反映させるには、「display your changes」ブロックを組み合わせます。特定のLEDの位置や輝度をすべて変更した後に、この「display your changes」ブロックを連結します。

ブロックエディタではなく、JavaScriptプログラムの場合は、以下のようになります。

basic.forever(function () {
scrollbit.setPixel(Math.trunc(Math.randomRange(0, 16)), Math.trunc(Math.randomRange(0, 6)), Math.trunc(Math.randomRange(0, 255)))
scrollbit.show()
})

作ったプログラムをマイクロビットに転送すると、ランダムにLEDが点灯します。このscroll:bitモジュールは案外と処理速度が速いので、他のマイクロビットのセンサーと組み合わせると、いろいろ面白いことができるのではないかと思います。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

このモジュールは4月下旬に発売されていて、その直後に原稿は書いてあったのですが、ストックしたまま忘却されていたというオチで、半年遅れくらいで掲載ということに。

マイクロビット系は流行り廃りとは関係ないので、原稿をストックしておいても大丈夫という安心感はあります。作ったのがイギリスだから、という理由もあります。これがM5Stackとか中国系だと大変です。翌月にはなくなっていたり、初回ロットのみとか、その場限りで続かないことが多いからです。

教育用となると、安くて安定供給されていて壊れないという条件を満たす、マイクロビットは悪くないけど、その先に進むためのちょっとリッチなマイクロビットがあってもいいんじゃないか、そう思ったりすることもあります。

先週の吉田さんの回覧板ネタにちょいと便乗。うちの地域では回覧板は途中で止まってしまうことがあり、それを回避するために回覧板は複数分散して回しています。返ってこないこともあるので、返ってこない家を最後になるように回します。

ITは前提としてパソコンを持っているか、スマホを持っている、もしくは携帯を持っているという条件で、さらにそれらの経費を支払えるという条件も付きます。

携帯電話自体を持っていない一人暮らしもいるので、実際、ITは使い物になりません。パソコンやスマホを持っている人しかいないコミュニティにいると、持っているのが当たり前になりますが、地域社会ではそうでないことがあります。また、光回線もなく電波もなかなか届かない地域もあります。

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram

・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/