今回は、4月上旬にスイッチサイエンスから発売された、enviro:bitモジュールを使って、気温や湿度などをマイクロビットに表示してみます。なお、enviro:bitモジュールの開発元はPimoroniです。
・enviro:bit
https://www.switch-science.com/catalog/6232/
・Pimoroni
https://shop.pimoroni.com/pages/about-us
enviro:bitはマイクロビット用のモジュールなので、差し込むだけです。面倒な配線や設定は不要です。マイクロビットとモジュールを装着したら、パソコンとケーブルで接続します。これでプログラムを作る準備は完了です。
次に、ブロックエディタを使って、気温をLEDに表示してみます。最初にモジュールを使うための、拡張機能を読み込ませる必要があります。ブロックエディタのカテゴリリストの「高度なブロック」の中にある、「拡張機能」をクリックします。
すると、検索ボックスとともに様々なモジュール一覧が表示されます。都合良くモジュール一覧に表示されると便利ですが、残念ながら今回使用するモジュールは出てきません。
そこで、検索ボックスに enviro:bit と入力します。次にリターンキーを押すか、検索ボックス内にある虫眼鏡ボタンをクリックします。すると該当するモジュールが表示されます。
envirobitと書かれたモジュールのボックスをクリックすると、拡張機能が読み込まれ、カテゴリリストに「Enviro:Bit」という項目が追加されます。これをクリックすると、以下の4種類のカテゴリが表示されます。
Sound
Colour & Light
Expert
Air & Weather
Colourはスペルミスではありません。英国では、カラーはこのスペルです。この中で気温、湿度、気圧を取得するブロックは、「Air & Weather」のカテゴリ内にあります。以下の、3つのブロックがあります。
(Get temperature)気温の値
(Get pressure)気圧の値
(Get humidity)湿度の値
いずれの値も整数値のみです。より詳細な値を取得する場合は、「Expert」カテゴリ内にあるブロックを使います。(1/100の精度です)
マイクロビットのLEDに気温を表示するには、「基本」のカテゴリにある「数を表示(0)」ブロックを使います。このブロックを「ずっと」のブロック内にはめこみます。
数を表示の(0)の部分に(Get temperature)のブロックをはめこみます。これでできあがりです。あとは、画面左下にあるダウンロードボタンをクリックします。マイクロビットに転送するプログラムファイルが作成されます。
作成されたファイルをマイクロビットにコピーします。プログラムが転送されると、気温がマイクロビットのLEDにずっと表示されます。気温はリアルタイムに反映されます。単なる温度計として使うなら、これで完成です。
ブロックエディタではなく、JavaScriptプログラムの場合は、以下のようになります。
basic.forever(function () {
basic.showNumber(envirobit.getTemperature())
})
Pimoroniのサイトにはなぜか説明がありませんが、このモジュールには白色のLEDが2つあり、プログラムから点灯させることができます。個別に制御することはできないので、同時に2つ点灯するか、消灯するだけの処理になります。
気温が25℃以上になったら、LEDを点灯させるプログラムは以下のようになります。このコードはブロックエディタで生成したものを、JavaScriptコードとして変換したものになります。ブロックエディタの場合は、「もし〜でなければ」ブロックと「Colour & Light」カテゴリの「Set LEDs to Off」ブロックを組み合わせます。
basic.forever(function () {
basic.showNumber(envirobit.getTemperature())
if (envirobit.getTemperature() >= 25) {
envirobit.setLEDs(envirobit.OnOff.On)
} else {
envirobit.setLEDs(envirobit.OnOff.Off)
}
})
なお、この環境センサーモジュールは、音の大きさや環境光の強さと色を取得することもできます。人感センサーもついていると、さらに応用ができていいのですが。
今回のようなセンサーは、もうひとつマイクロビットを用意して、ブルートゥース経由で、気温や環境光の情報を渡すのがよいのではないかなと思います。外の気温を計測して、部屋の中で確認するといった用途です。センサーを複数用意すれば、複数の場所の情報を取得することができます(最大255まで)。
こういうのはアイデア次第で、いろいろな用途に利用できるんじゃないかと思います。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
そろそろマイクロビットのモジュールも、ひとつで全部まかなえるようなのが出てもいいんじゃないかと思います。でも、お値段結構いっちゃいそうです。それでも、一式まとまったセンサーがあると便利なはずなんですが。
長野県知事がテレビなどで「信州の観光はお休み中です」と流してたけど、これ長野県内に一生懸命流しても仕方ないのでは。だって観光に来るのは県外の人なので。では、実際に県外から来たのかなと思って区内の山に行くと、家族連れの登山客や、夫婦・恋人と思われる登山客がそれなりに。
でも、地元の人が地元の横にある山に来てるだけなので、県外からはまったく来てませんでした。GW中に一番混んでたのはホームセンター。豊かな田園都市なので、農作業のために苗を買ったりとかで混雑。
さらに飲食店がテイクアウト弁当などをホームセンターで売り始めたので、さらに混雑。といっても、田舎の混雑と東京の混雑は全然違っていて、10人ほどが歩いている渋谷の映像でさえ、こっちでは相当な混雑に見えます。
・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram
・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/