micro:bitで遊んでみる

#はじめに
　BBC Micro:bit（以下マイクロビット）を初めて手に取ったので、基本的な機能をいくつか試していきます。
　始めるにあたって、「BBCマイクロビット公式ユーザーガイド」という書籍をもとに話を進めます。そのままだと丸写しになってしまいそうなので、ハードウェアの細かい仕様や、プログラミングの難しい話はかみ砕いて書いていこうと思います。
#micro:bitとは
　マイクロビットは使い方によって様々な目的で使われます。ボタンを押すと笑顔が表示されるといったシンプルな遊びから、プログラミングや電子回路を学ぶといった教育にも使うことができます。複雑なロボットやホーム・オートメーションの頭脳として使うなどの実用的な使い方もできるので、マイクロビット一つで遊びから新しい装置の開発までが可能になっています。
　マイクロビットにはさまざまな電子部品が搭載されています。表面には5×5のLEDディスプレイと2つのボタン、裏面にはマイクロUSBコネクタや無線などの電子部品が並んでいます。

![DSC_0318.JPG](https://qiita-image-store.s3.amazonaws.com/0/372816/a8554f55-0c8c-60c1-9d32-da8763c7b0da.jpeg)
マイクロビットの表面
![DSC_0317.JPG](https://qiita-image-store.s3.amazonaws.com/0/372816/e0b7f88b-f763-e6a3-764b-38b4095f9caa.jpeg)
マイクロビットの裏面

　対応しているプログラミングとして、JavaScriptブロック、JavaScript、Pythonの代表的な３つのプログラミング言語があり、ニーズにあわせて選択できます。今回は、わかりやすさを重視してビジュアルプログラミング言語である、JavaScriptブロックを使って話を進めていきたいと思います。
#準備するもの
- BBC Micro:bit
- USBケーブル Type-B
- USB Type-A のコネクタのあるパソコン

#基本のHello World
　プログラムにおいての登竜門である”Hello World”をマイクロビットでもやってみましょう。
##マイクロビットの準備
　準備といってもとても簡単です。用意したマイクロビットとパソコンをUSBケーブルでつなぐだけです。
　そうすると、初めて箱から出したマイクロビットなら、ディスプレイに何かが表示されるはずです。それはデフォルトで入っているマイクロビットのデモプログラムです。マイクロビットのすべての機能を使うようにプログラムされているので、一通り遊べばどんなことができるのかだいたいわかるはずです。ですが、今回はHello Worldを表示させたいので次に行きましょう。
##プログラミングの準備
　マイクロビットのプログラミングは専用のブラウザを使います。ブラウザを開いて、makecode.microbit.orgと入力しましょう。すると、以下のような画面になるはずです。ここの新しいプロジェクトをクリックして準備は終わりです。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/372816/e2656f53-f2ca-1af3-109e-0f2dc8c0e1f2.png)
##プログラムを始める
　新しいプロジェクトを立ち上げたら、初めに以下のような画面になっているはずです。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/372816/7a3f5689-9620-f5c7-47ec-84479fdd27ae.png)
　画面の右半分がプログラミングをするワークスペースとなっており、ここでブロックをつなげてプログラミングをします。そして真ん中より少し左に寄っているところにあるのがブロックをまとめたブロック・ツールボックスになっています。ここから各種ブロックを参照していきます。そして画面の左端にあるマイクロビットは右側で作ったプログラムのシミュレーションをしてくれます。なので、毎回プログラムを改善するたびに本体に書き込まなくてもある程度のプログラムであればこのブラウザ上で動作確認ができます。
　それではプログラムを始めていきましょう。プロジェクトを始めたときからワークスペースにはプログラム起動時にだけ読み込まれる「最初だけ」と、プログラムが起動している間繰り返し読み込まれる「ずっと」のJavaScriptブロックが配置されています。これらの中にパズルのように、対応したブロックをはめていってプログラミングをします。
##Hello World
　さて、ようやくHello Worldをマイクロビットで表示させていきましょう。
　まずはブロック・ツールボックスの基本をクリックしてその中から[文字列を表示["Hello!"]]を選択して、ワークスペースに置きましょう。そうすると、新しく置いた[文字列を表示["Hello!"]]のブロックの表面が斜め格子模様になっていると思います。これは、このブロックがまだコントロール・ブロックに組み込まれていないからです。なのでこのプログラムはまだ実行できません。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/372816/3374ea3b-480f-bbed-a06c-dac66b5e7712.png)
　コントロール・ブロックとは、初めからワークスペースに配置されている「コ」の字を反転させたような形のものです。先ほど追加した[文字列を表示["Hello!"]]のブロックをマウスでドラッグして「ずっと」の中にもっていってあげましょう。すると、自動的にブロック同士が繋がって、斜め格子模様になっていたブロックが青いブロックに変わるはずです。これでプログラムは正しく動作するようになりました。ですが、このままでは”Hello!”と表示されます。表示を変えるためには”Hello!”の上にマウスを合わせて、”Hello World”と変更しましょう。すると、気づいている人もいると思いますが、画面左端のシミュレーターのディスプレイにHello Worldと表示されているはずなので確認してみましょう。
　ここで、今回は「ずっと」のブロックの中に組み込みましたが、「最初だけ」のブロックの中に組み込むとどうなるでしょう？ご自身でいろいろと試してみてください。この時点ではまだシミュレーターなので壊れることはないので、恐れずにいろんなことを試していきましょう。
##プログラムの書き込み
　これでプログラムは完成しました。あとはマイクロビット本体に書き込むだけです。
　まずは作ったプログラムをダウンロードする必要があります。その前にこのプロジェクトに名前を付けましょう。このままでは題名未設定でどれが何のプログラムだったかがすぐにはわかりません。名前の変更は画面下にあるテキストボックスから行います。ここでは「HelloWorld」にしましょう。そして、ダウンロードのボタンをクリックしてプログラムをダウンロードしましょう。マイクロビットが読み込むファイルはヘキサデシマルコードという形式で、拡張子は.hexです。なので、ヘックスファイルと呼ばれたりもします。あとは本体に書き込むだけです。
　マイクロビットはUSBメモリやSDカードと同じようにUSBマスストレージ・デバイスとして認識されます。なのでエクスプローラを開いてプログラムをドラッグ・アンド・ドロップするだけです。従来の開発ボードであれば、専用のソフトを使って書き込む必要があったりと少し面倒であったのに対し、ドラッグ・アンド・ドロップするだけですのでとても簡単です。書き込みが完了すると本体でプログラムが実行されます。これでプログラムの基本であるHello Worldができました。
#まとめ
　これでプログラムの基本中の基本、Hello Worldができました。プログラム自体はとてもシンプルでほとんどがマウスのドラッグ・アンド・ドロップでできるので子供でも少し練習すれば簡単にできるようになると思います。
　今回はHello Worldを表示するためにディスプレイを使いましたが、マイクロビットの機能はこれだけではありません。加速度センサーや温度センサー、物理スイッチや入出力のピンなどがあります。これらの機能を使っていけばもっといろいろなことができます。次回からは、マイクロビットの各種機能を使いながらマイクロビットの面白さに触れていきたいと思います。