未来を創る「子どもとプログラミング教育」
レビュー
» 2018年06月16日 07時00分 公開

教育向けマイコン「micro:bit」で温度計を作ってみた ビジュアルプログラミングは簡単? (2/2)

[井上輝一,ITmedia]
前のページへ 1|2       

物理ボタンで表示をオンオフしたい

 さて、物理ボタンAで表示が始まり、物理ボタンBで表示を終了するようにしたい。表示中だけループしたいので、「ループ」内の「もし[真]ならくりかえし」を使用して条件式でループを判断できるようにする。

ボタンAが押されたとき、変数isLoopを真にする。そしてもしisLoopなら(=isLoopが真なら)以下の動作を繰り返す――という処理

 「もし[真]ならくりかえし」の[真]部分を真偽切り替えられるようにしたいので、2つ目の変数“isLoop”を用意する。ボタンAが押された時にisLoopを真にすれば表示のループが回り、ボタンBが押された時にisLoopを偽にすることでループを止めるという考え方だ。

ボタンBが押されたときにはisLoopを偽にする

 後はループ内で表示する文字列の設定だけ。「基本」内に「文字列を表示」ブロックがあるので、ここにtemperatureをつなげてみるのだが、実はこれでは動かない。温度は数値であり、文字列ではないためだ。

エラーが英語で出るのはちょっとハードルが高いかもしれない

 「基本」の中に「数を表示」ブロックもあるのでこちらを使ってもいいが、せっかく温度なので「24C」という風に表示したい(℃は文字として登録されていないのか、micro:bit上で表示できなかった)。

 数値を文字列に変換するのは、テキストでのプログラミングに親しんでいる人なら簡単なことで、(数値).toString()関数を使えばいいだけだ。という発想の元、筆者はここだけコーディングをJavaScriptに切り替えて書くことにした。

JavaScriptでも編集できる

 ブロックからテキストに切り替えるには、上部の「{}JavaScript」をクリックするだけ。ここまでブロックでプログラミングした内容をテキストで眺めてみると、変数宣言、イベント処理関数、そしてbasic.forever()というバックグラウンド処理関数の3つの大きな要素でできていることが分かる。

ブロックをコードとして見るとこのようになっている

 バックグラウンド処理ができたり、ボタンクリックのイベント処理ができたり、変数宣言にletを使っていたり、アロー関数を使っていたりする辺りにモダンさが感じられる。このようにブロックが意味するコードを随時確認できるのもMakeCodeの良いところである。

 さて、文字列の表示に当たる現在のコードがbasic.showString(temperature)なので、temperature.toString()として文字列に変換する。これだけだと温度の数字しか表示しないので、temperature.toString() + "C"として文字列を結合する。

toString()で文字列へ変換し、“C”と結合する

 以上でプログラムは完成だ。もう一度ブロック側に戻ってみると、「文字列を表示」ブロックに「文字列をつなげる」ブロックがつながり、さらにその中に「temperature.toString()」ブロックと「“C”」ブロックが内包される構造になっていた。

完成したブロック構造

 「temperature.toString()」はカラー的にどのブロックにも属していない。これは既存のブロックに変換できなかったということのようだ。もしブロックのみでプログラミングするとしたら、数値から文字列への変換にはもしかしたらてこずるのかもしれない(他にやり方があるかもしれないが)。

 この状態で左側にあるシミュレーターを動かしてみると、確かにボタンAを押すと温度表示のループが始まり、ボタンBを押すと表示が終了する。

1文字ずつ流れていく。「C」の文字をキャプチャーした

 シミュレーターでうまく動いたら、左下のダウンロードでプログラムファイルをダウンロードし、micro:bit直下のフォルダに配置する。これだけでインストールは終了し、実機でボタンを押せば温度表示のオンオフができるようになっているのが分かる。

 ブロックを組み始めてから完成までかかった時間は30分ほど。その程度の時間で自分が考えたプログラムがmicro:bit上で動くのは、プログラミング体験としてはなかなか楽しいと感じた。

 温度センサーの他にも、光センサー、加速度センサー、コンパス、Bluetoothモジュール、外部接続コネクターなど拡張性は高い。これらを使ってどんなプログラムを作るかはユーザーの発想次第だ。

 micro:bitの価格は約2000円(税込)。遊べる幅を考えると安いといえるのではないだろうか。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう