dashなblog

※鉄腕DASHとは無関係です。

micro:bitでLチカしてみた

多くのプログラミング言語の習得においては、まずこの世界に向けて挨拶をするのが定番となっている。電子工作の世界では、言葉の代わりにLEDを点滅させる、いわゆる「Lチカ」が世界への挨拶らしい。

micro:bitには最初から5×5のLEDがついている。であれば、まずはこのLEDを点滅させるのが流儀であろう。

開発ツール

micro:bitの開発にはマイクロソフト社のMakecodeを使うのが基本のようなので、Webブラウザを立ち上げMakecodeにアクセスする。

f:id:cubicworld535:20180624232119p:plain

画面中央に縦に並んでいるのがコードブロックが格納されているエリア。例えば、基本というメニューをクリックすると、基本にカテゴライズされたコードブロックが表示される。

f:id:cubicworld535:20180624232428p:plain

この中のコードブロックをクリックするか、もしくは右側のエディタのエリアにドラッグ&ドロップすることで該当の処理をエディタに配置することができる。これがプログラムの記述になる。

新しくプログラム作成を始めるときはプロジェクトを作成する。この辺りは何らかのIDEを使ってプログラムを開発したことがある方であればなじみのある概念だ。新しくプロジェクトを作成したら、エディタ部分には「最初だけ」と「ずっと」という部品が最初から配置されている。いずれの部品も食パンの袋の口を締めるクリップ(バッグ・クロージャーというらしい)のような形をしている。このへこんだところに実行したい処理に対応するコードブロックをカチッと当てはめていく。

処理の記述

今回は処理が実行されたらすぐにLEDを光らせたいので「ずっと」の方を使う。「最初だけ」の方は使わないので削除してしまって構わない。

この「ずっと」のへこんだところに、基本カテゴリにある「show leds」という部品を配置する。これがmicro:bitのボードに直付けされているLEDを光らせる処理となっている。

f:id:cubicworld535:20180624233445p:plain

「show leds」ブロックにも5×5の白い点が用意されている。ここがボードのLEDと対応しており、ブロック上の点をクリックすると赤く色が変わる。この赤くしたところのLEDが光る。

画面左側にmicro:bitのイメージが表示されているが、右側のエディタ部分で指示した箇所のLEDが光っている。これは右側のエディタ部分に配置した処理がどのように動くのか、この左側のところでリアルタイムにシミュレートされていて、つまりプログラムを実際にmicro:bitに持っていかなくても、この開発環境の中でどのように動くのかがすぐに確認できるようになっているのだ。

このままだとずっとLEDが光ったままになるので、一定時間が経ったら表示を消し、また一定時間が経ったら表示する、を繰り返すようにする。

f:id:cubicworld535:20180624234250p:plain

繰り返す、となるとループ処理が必要な気がするが、今回は「ずっと」の中に処理を配置しているので1度処理が終わるとまた最初から処理が実行されるため点滅を繰り返すことになる。

ちなみに、画面上部に「ブロック」「Javascript」というボタンがあるが、これを「JavaScript」に切り替えるとブロック配置で記述した処理がJavaScriptコードで表示される。

f:id:cubicworld535:20180624234846p:plain

今回は最初から用意されている「ずっと」ブロックなど、すべて基本カテゴリに含まれるブロックを使った。コードに直してみると、このカテゴリがメソッドの含まれているオブジェクトを表していたことがわかる(といいながら、私はJavaScriptにそれほど詳しくないので、表現としてこの言い方が正しいのかどうか自信がないが)。

micro:bitで動かしてみる

実際にこの処理をmicro:bitで実行するには、処理をコンパイルしてmicro:bitに保存する必要がある。

そのためには、画面下部にある「題名未設定」という欄に任意のプログラム名を入力し、ダウンロードボタンをクリックする。するとコンパイルが行われ拡張子.hexのファイルが生成、PCのローカルフォルダにダウンロードされる。

micro:bitをMicroUSBケーブルでPCにつないでいるとこのmicro:bitはリモートストレージとしてマウントされているので、エクスプローラなどからダウンロードした.hexファイルをこのマウントされたmicro:bitのストレージエリアの直下にコピーしてやればよい。