micro:bitはご存じの方多いと思いますが、イギリスのBBC(英国放送協会)が主体となって作った教育向けのシングルボードコンピュータです。
micro:bitは教育向けに作られ、Makecodeというオープンソースのプログラミング学習プラットフォームを使いブロックを使ったビジュアルでのプログラミングが可能となっています。
子供向けのマイコン学習用としても最適です!
またMakecodeを使ったブロックプログラミング以外にもArduinoやMicroPythonでプログラミングする事も出来ます。
Arduinoではその開発環境にArduino IDEを使うことが多いと思いますが、micro:bitもArduino IDEを使って開発を行うことができます。
micro:bitは公式が推奨するMakecodeエディターはブロックを並べることにより手軽にプログラミングできるのは便利なのですが、慣れてきて細かなことをやろうと考えるとやはりArduinoやMicroPythonでプログラムする方が便利な場面は多いと思います。
これまでマイコンを使った電子工作でArduinoやESP(ESP32/ESP8266)、Raspberry Pi Picoなどのマイコンボードを使ってきましたが、micro:bitは最近始めたばかりです。
普段Arduinoを使うことが多く当ブログではArduinoに関することを書くことが多いことから、私は完全にArduino化してmicro:bitを使っています。
micro:bitの開発環境にArduino IDEを使いたい場合、nRF5用のボードパッケージをインストールする事により簡単に扱うことが出来ます。
Arduino IDEでの開発環境では普段よく使っているArduinoスケッチによる開発が出来るのはもちろんですが、Arduinoで用意されている多くのライブラリを使うことも出来るのでやはり便利ですね!
目次
Arduino IDEにnRF5用ボードパッケージをインストールしmicro:bitを使えるようにする
それではArduino IDEでmicro:bitを使う開発環境を作っていきます。
Arduino IDEのインストールがまだの方は、こちらの記事を参考にまずArduino IDEをPCにインストールして下さい。
nRF5用ボードパッケージをインストール
micro:bitは現在(2022.12)、V2バージョンが最新のボードとなります。
micro:bit V2にはノルディック・セミコンダクター社(Nordic Semiconductor)のnRF52833というマイコンチップが使われています。
またV1バージョンではnRF51822が使われているようですが、Arduino IDEにNordic nRF5というボードパッケージが用意されているのでこれをインストールする事によりmicro:bitをArduino IDEで扱えるようになります。
nRF5 ボードパッケージのインストール
それではArduino IDEにnRF5ボードパッケージをインストールしmicro:bitの開発環境にArduino IDEを使えるようにしていきます。
手順は非常に簡単です!
Arduino IDEの[環境設定(Preferences…)]から[追加のボードマネージャのURL]に以下URLを追加します。
https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json
他のボードマネージャのURLが記載されている場合は新たな行に追加して下さい!
次に[ツール]→[ボード]→[ボードマネージャ…]に進みます。
[nordic]で検索すると目的の[Nordic Semiconductor nRF5 Boards by Sandeep Mistry]というボードパッケージが見つかります。これをインストールして完了です!
これでArduino IDEを使いスケッチのコンパイルおよびmicro:bitへの書き込みが行えるようになります。
micro:bitのボード設定
micro:bitへのスケッチのコンパイル&書き込みの際のボード設定です。
[ツール]→[ボード]へと進むと、先程はなかった[Nordic Semiconductor nRF5 Boards]という項目が追加されています。この中にある[BBC micro:bit V2]を選択すれば、スケッチのコンパイルおよびmicro:bitに書き込みが行えます。
動作確認
それでは簡単なスケッチを書き込み動作確認をしてみます。
シリアルモニタを使いmicro:bitの[Aボタン][Bボタン]の判定を行う簡単なスケッチを作ってみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | void setup() { Serial.begin(115200); pinMode(PIN_BUTTON_A, INPUT); pinMode(PIN_BUTTON_B, INPUT); } void loop() { if (digitalRead(PIN_BUTTON_A) == LOW && digitalRead(PIN_BUTTON_B) == LOW) { Serial.println("A&B Button ON"); delay(300); } else if (digitalRead(PIN_BUTTON_A) == LOW) { Serial.println("A Button ON"); delay(300); } else if (digitalRead(PIN_BUTTON_B) == LOW) { Serial.println("B Button ON"); delay(300); } } |
上記スケッチをmicro:bitに書き込みます。
シリアルポートは[BBC micro:bit]になっているものを選択します。
ボード設定はこのようになります。
あとは通常の手順で書き込み出来ます。
アップロードボタンを押しmicro:bitにスケッチを書き込めば完了です。
シリアルモニタを立ち上げ、[Aボタン]が押されると”A Button ON”、[Bボタン]が押されると”B Button ON”、また[Aボタン]と[Bボタン]が同時に押されていると[A&B Button ON]と表示されれば成功です!
上記スケッチではA/Bボタンに定義された[PIN_BUTTON_A][PIN_BUTTON_B]という定数を使いました。
micro:bit本体に付いているAボタンは実際にはP5端子、BボタンはP11端子にプルアップ抵抗とともに接続されています。
上記スケッチの[PIN_BUTTON_A]は[5]、[PIN_BUTTON_B]は[11]に置き換えることも出来ます。
またA/Bボタンにはプルアップ抵抗が接続されているので、ボタンが押されていない時はHIGHとして判定され、ボタンが押されるとLOWとなります。
最後に!
micro:bitはArduino IDEを使った開発環境でも使うことが出来るので、私のように普段Arduinoをよく使われている方はこちらの方が扱いやすく便利に使えるかもしれませんね!
Arduinoで用意されている多くのライブラリを使うことも出来るので便利だと思います。
この投稿をInstagramで見る
またmicro:bitの各I/O端子はエッジコネクターから引き出す形状になっているので、Arduinoで使う場合に限らずこのようなブレイクアウトボードを1台持っておくと便利です。
一通りmicro:bitを使ってみて各I/O端子のピンアウトなども分かってきました。
これまでmicro:bitは子供向けの教育用マイコンボードというイメージしか持っていませんでしたが、実際に使ってみるとかなり優秀なボードで非常に面白くなってきました。
micro:bit関連の製品はこれから手元にどんどん増えていく予感がしています。
この投稿をInstagramで見る
またいろいろとご紹介できればと思います。
コメントを残す