未来を創る「子どもとプログラミング教育」

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

» 2018年06月16日 07時00分 公開
[井上輝一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.

アクセストップ10

2024年04月25日 更新
  1. ワコムが有機ELペンタブレットをついに投入! 「Wacom Movink 13」は約420gの軽量モデルだ (2024年04月24日)
  2. 16.3型の折りたたみノートPC「Thinkpad X1 Fold」は“大画面タブレット”として大きな価値あり (2024年04月24日)
  3. 「社長室と役員室はなくしました」 価値共創領域に挑戦する日本IBM 山口社長のこだわり (2024年04月24日)
  4. 「IBMはテクノロジーカンパニーだ」 日本IBMが5つの「価値共創領域」にこだわるワケ (2024年04月23日)
  5. わずか237gとスマホ並みに軽いモバイルディスプレイ! ユニークの10.5型「UQ-PM10FHDNT-GL」を試す (2024年04月25日)
  6. Googleが「Google for Education GIGA スクールパッケージ」を発表 GIGAスクール用Chromebookの「新規採用」と「継続」を両にらみ (2024年04月23日)
  7. バッファロー開発陣に聞く「Wi-Fi 7」にいち早く対応したメリット 決め手は異なる周波数を束ねる「MLO」【前編】 (2024年04月22日)
  8. 「Surface Go」が“タフブック”みたいになる耐衝撃ケース サンワサプライから登場 (2024年04月24日)
  9. ロジクール、“プロ仕様”をうたった60%レイアウト採用ワイヤレスゲーミングキーボード (2024年04月24日)
  10. あなたのPCのWindows 10/11の「ライセンス」はどうなっている? 調べる方法をチェック! (2023年10月20日)
最新トピックスPR

過去記事カレンダー