46回目 PC苦手な人にこそmicro:bitのススメ
最近頭文字Dのアニメ見ながら作業しています。
micro:bit(マイクロビット)とは、イギリスのあのBBCが主体となって作った教育向けのマイコンボードになります。
僕がここで「あのBBC」とかほざいてますが、まずBBCというのは英国にある英国放送協会になります。
たぶん日本でいうNHK?みたいなところです。実のところ僕もよく知りません。
このBBC micro:bitは主に教育用やIoT機器として使われる場合が多いみたいですね、イギリスではこのBBC micro:bitを11歳~12歳の小学生に教材用として配布したらしいです。
ちなみに約4年くらい前に日本でも同じように教材として無償配布したことがあるとかないとか。
↓詳しくはこのリンク先に書いてあります。
僕は2年前にこの「BBC micro:bit」を秋葉原の路地裏の某電子部品専門店で発見して購入しました。
たぶん英世×2枚程度で購入したような気がします。
そしてマイコンボードというのは、以前僕が別の記事で紹介したラズベリーパイという「よくわからない基盤みたいなもの」というイメージがあればいいと思います。
↓詳しくはこちらの記事で説明しています。そこまで詳しくは説明していませんが…。
はてさて、今回も「小さめの基盤のようなもの」について書いていこうかと思います。
某アルディーn(ryについてもいずれ書くことがあるかもしれません。(?)
〇micro:bitとはなんぞや?
この「マイクロビット」というものは、ラズベリーパイのようなOSを搭載せずとも動くシロモノになります。
縦:約4㎝ × 横:約5㎝になります
他のマイコンボードと比べると結構小さいサイズになっています。
しかし使い方はラズベリーパイのようなものとは少し違い、専用のWebブラウザサイトで環境構築され、そこで作成したプログラムをmicro:bit本体にダウンロード&インストールすることにより動作します。
つまり、micro:bitにただスクリプトファイルを突っ込むだけで動作させることができます。
「お前は何を言っているんだ」という人がいるかもしれませんが、操作は簡単でまさに小学生でも扱えるような代物になっています。
詳しく見ていきましょう。
●特徴について
まずマイクロビットには様々なセンサーが取り付けられています。
表面
裏面
-表面
表面には中心に5×5のマス目のような粒みたいなものが付いています、さらに左右にはA,Bとポッチのようなボタンが搭載されています。
真ん中の粒はLEDマトリクスという部分であり、ここがPCでいうところの「ディスプレイ」の役割をします。
よく電光掲示板なんかありますよね、あれと同じような感じで文字などを表示できたりします。
そしてボタンは各プログラムの動作に対していろいろな設定ができるところです。
たとえば「Aボタンが押されたらこのプログラムを実行する」みたいな動作をすることが可能になるということです。
本体下部の「デジタル/アナログ入出力」という箇所は電極入出力ができたりする場所です。僕はそこらへんはまだうまく使っていないので理解していません。
-裏面
裏面にはまさに電子回路のような感じになっており、ここには4種類ほどのセンサーが取り付けられています。
・【温度センサー】
micro:bit本体の周囲の温度を測定できるセンサーになります。このセンサーで周囲の温度の測定値を拾って、LEDマトリクスに数値を表示させることができます。
・【加速度センサー】
スマートフォンにも搭載されている加速度センサー、機器本体をシェイクしたりフリフリして揺さぶられることでセンサーが反応します。
・【コンパス】
その名の通りコンパス機能が使えます。micro:bit本体(リセットボタンあたりを頭として)が向いている方角を調べることができます。
北を0度として右に90度ずつ角度が変わることで、角度の値を取得する的な感じです。
(北:0度、東:90度、南:180度、西:270度)
・【無線通信機能】
無線機能を使うことで、ほかのmicro:bitと通信することができます。僕は1つしかmicro:bitを持っていないでこの機能はほぼ無意味です。
おそらくメッセージのやり取りして表示させる的なことができるのかもしれません。
〇実際にはどうやって使うんだい?
まず、このmicro:bitとパソコンをmicro USB type Bケーブルを使って接続します。
普通にUSB ハブなど使ってケーブルで接続します。
するとPC側に認識されたmicro:bitは↓以下の画像のようにエクスプローラーウィンドウに表示されると思います。
僕のPCの場合ではD:ドライブとして認識されたみたいです。
このD:ドライブを開いてもしょうがないので、ここに以下のサイトで作ったスクリプトファイル(.hex拡張子のファイル)をダウンロード&インストールします。
ちなみに、このサイトはマイクロソフト社が作ったらしいです。
micro:bitとMicrosoft社は何か関係があるのだろうか?名前くらいしかつながりがなさそうだけど。。。
基本的にはリンク先のサイトでのプログラム作成画面は↓こんな感じです。
ブロック型のビジュアルプログラミングでのエディタ画面で、ここではいろいろな操作ができるブロックが用意されています。
この画面で、マウスカーソルでブロックを連結させたりしてプログラムのコードを作っていきます。
プログラムの作成方法は直感的にクリックしてブロックを並べていけばいいだけなので、小学生でもできてしまうでしょう。
今回はmicro:bit本体を揺さぶったことをトリガーとした、5×5LEDマトリクスに0~6の数字がランダム表記されるだけの「さいころ」プログラムのスクリプトファイルを作ってみました。
そしてこのブラウザ画面の下部にある[ダウンロード]でこのブロック状のプログラムを「〇〇.hex」ファイルとしてダウンロードできます。そしてその保存先をD:ドライブのMICROBITに指定してあげればいいと思います。
以下はこのプログラムを実行したmicro:bitを撮影した GIF画像です。
☟おそらくこっちのほうが動作確認がしやすいと思います。
これにより、「micro:bit本体を揺さぶった時に0~6の数値がランダム表示される」といった疑似的なサイコロをmicro:bitを使って作り出すことができました。
〇もうちょっと面白いプログラムを作ってみたい
プログラミングに自信がない人も、micro:bitでは簡単にプログラムを作成して実際にそのプログラムの実行結果を確認することができます。
また、micro:bit本体にはさまざまなセンサーが取り付けられているので、アイデア次第では面白いプログラムを作って遊ぶことができるのです。
とりあえず僕は「"周囲の温度計測"のプログラムができないか」と思い実際に作ってみようと思いました。
▼まず最初に作ったのはこんなプログラムです。
これを実際にmicro:bitのシミュレーター画面でプログラムを実行してみると次のようになります。
さらに今度はmicro:bit本体にスクリプトファイルを保存して実行していきます。
さらに次は、このプログラムを少し改良して以下のような場合に合わせたプログラムにしていくことにしました。☟
~~
僕は毎朝自分の部屋に差す朝日がまぶしいので、
「朝の太陽光の照度をトリガーにした、温度測定とその日の気温の状態を表示させるプログラム」を作ってみます。
~~
なんか大げさな感じの言い方のプログラムですが、ブロックプログラミングのエディタを使って作ったプログラムなので別に大したものではありません。
ちょっと長ったらしい内容のプログラムなのですが、まずこれは5×5LEDマトリクスが一定の光を受けたときにプログラムが開始します。
ここでは照度が2ルクス以上当たれば、プログラムが開始します。
ルクス(単位:lx)というのは光の照度のことを言い、太陽光や光源からの光線がアスファルトの地面や壁に当たって照らされている部分の光線の強さの度合いのことを言います。
なお、micro:bitでは本体の5×5LEDマトリクスの部分に照度センサーが取り付けられており、最高255ルクスの値を取得します。(懐中電灯をmicro:bitへ至近距離から光を照射した場合255ルクスになります。)
ここで、micro:bitが取得する周囲の温度の観測値は本体に搭載されている温度センサー程度では取得する値が正確な値とは呼べないため、わざと「取得した観測値-2℃」で大体の温度を表示するようにしています。
その表示される温度が「温度 > 28℃」であればHot Day(暑い日)という表示をして、
「温度 < 15℃」であればCold Day(寒い日)という表示をします。
さらに、ここで「温度 < 25℃」であればCool Day(すずしい日)という表示をして、
そうでない場合の温度が15℃より上かつ、25℃〜28℃以下の温度帯であればNice Day(過ごしやすい日)という表示をするようにしています。
つまり、温度によってその日の気候状態の様子を表示させるようなプログラムになっています。
そして最後には次のループのためlight変数(照度:ルクス値)を0クリア(リセット)しています。
そして、これを実際にmicro:bit本体にプログラムのhexファイルを取り込んで実行したGIF画像が↓こちらです。
このようにブロックプログラミングでのコード作成でも、以上のような動作をするオリジナルなプログラムを自分で作成することができます。
またブロックを使ったプログラミングではコードを概念的に扱ってビジュアル的に操作しながら作成していけます。
プログラミング初心者の人でもそこまで敷居が高いことや技術が求められていないので、プログラミングの学習に使えるでしょう。
〇大人でも子供でも「"遊んで"学ぶこと」ができるBBC micro:bit
micro:bitは電子工作やプログラミングの一環であるといえます。
対象は小学生高学年くらいらしく、僕は最早ただのこどおじなのでギリギリ対象としていけるかもしれません(なにいってんだコイツ)
某フェイスブックなどではmicro:bitで遊ばれているギークでナードなフリークの方々もいらっしゃるので、そういったコミュニティに参加してオンライン上にて共通の趣味の知り合いを増やしていくのも楽しいかもしれません。
僕はどちらかというとそういったものには属さないタイプの人間ですので、ただロンリーに黙々と作業をしてこのブログのネタに使えそうだと思えたら、こうして書いていくだけです。
まぁ社交性が無いような人たちには、micro:bitで遊ぶためのノウハウが書いてある書籍が書店にいくつか置いてあると思うので、それらを手にして1人で黙々と暗い部屋で楽しむのも良いかもしれません。
○micro:bit関連のおすすめ書籍・技術本
↑僕はこれらの書籍は買っていません。
でもオライリージャパンさんや技術評論社さんあたりは、結構良い技術本を出版しているところなので信用できます。そのためこれらの本もハズレではないと思います。
僕のように適当にいじって遊んでみるのもいいと思いますし、書籍に書いてある内容を実際に自分でやってみるのも勉強になると思います。
今の時代はこういったプログラミングなどのIT関連に知見がある人のほうが何かと活躍できる場も増えていると思うので、もし「面白そうだな」と思ったら手にしてみるのもいいかもしれませんよ。
それでは今回はこんな感じで終わります。
また次回で。
バイナラ。