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

教育向けマイコン「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

2026年07月31日 更新
  1. 13万円切りでCore Ultra 9 185H搭載! 片手で持てるミニPC「GEEKOM IT13 Max」のコスパと実力を検証する (2026年07月30日)
  2. キーボードの中にPCが丸ごとイン! HPが切り開く新ジャンル「キーボード内蔵PC」の使い勝手を徹底検証 (2026年07月28日)
  3. ゲーミングPCをリビングに持ち込むとどうなるか? 話題の「Steam Machine」をSteam Deckユーザーが買ってみた (2026年07月29日)
  4. アイオー、10GbE接続に対応した5ポート/8ポート搭載アンマネージスイッチングハブ (2026年07月29日)
  5. 苦労して手に入れた「Steam Controller」をPC/スマホ/ARグラスにつないでみた ゲーム体験や実用性は? (2026年07月30日)
  6. フルHDより広く4Kより見やすい! 31.5型ディスプレイ「ProLite XUB3297QSNP-B1J」がテレワークにピッタリな理由 (2026年07月29日)
  7. 手首を動かさず静かなクリック音で作業に集中できる「ロジクール M575SPd」がセールで33%オフの5280円に (2026年07月30日)
  8. ポタ電と組み合わせて使える「Soraiori ポータブルエアコン」がセールで16%オフの2万9980円に (2026年07月27日)
  9. NECPCが直販限定のスタンダードAndroidタブレット「LAVIE Tab T12」を発売 軽量設計で約6.5万円 (2026年07月30日)
  10. ナカバヤシ、Type-C接続も利用できるポータブルカセットプレーヤー (2026年07月30日)
最新トピックスPR

過去記事カレンダー