Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

概要

micro:bit 用のソフトウェアは、主に次の 2 つのグループで構成されます。

  1. コンピューター(ホスト)上で動作するソフトウェア。たとえばブラウザーエディター

  2. micro:bit(ターゲット)上で動作するソフトウェア

通常、プログラムはホストコンピューター上で作成され、その後 USB 経由で micro:bit に転送されます。

実際には micro:bit には 2 つのチップがあり、1 つは書き込みを容易にするために DAPlink ソフトウェア全体を実行しており(KL26V1/KL27V2)、もう 1 つが実際にユーザーのコードを実行します(nRF51V1/nRF52V2)。

Software flow

高水準プログラミング言語

micro:bit 向けの「高水準」プログラミング言語は、大きく 2 つのカテゴリに分けられます。

  • コンパイル言語: あなたのプログラムは、micro:bit にコピーされる前に Arm アセンブラーまたは何らかのバイトコードにコンパイルされます。

  • インタープリター言語: スクリプト本体と、そのスクリプト用のインタープリターの両方が micro:bit にコピーされます。インタープリターが micro:bit 自身に存在するため、これらの言語では通常、コマンドを入力することで USB 経由で micro:bit を「ライブ」でプログラムすることもできます。

コンパイル言語

C/C++ は確かにコンパイルされますが、この文脈では高水準言語とは見なされません

micro:bit のオンラインコードエディターが何百万台もの展開済みボードをサポートできるようにするために、Microsoft は TypeScript で書かれたブラウザー内コンパイラーである MakeCode を構築しました。

このプロセスについては、MakeCode ソフトウェアページでさらに詳しく説明しています。

ブラウザー内コンパイラーはソフトウェアスタック全体をコンパイルするのではなく、ユーザーのスクリプトだけをコンパイルします。関数呼び出しや低水準の関数は、micro:bit ランタイムによって処理されます。事前にコンパイルされたランタイムイメージがブラウザーに含まれており、ダウンロード用に提示される前に、コンパイル済みスクリプトと連結されます。

インタープリター言語

公式 micro:bit エディターでは、インタープリター方式なのは Python のみです。これは MicroPython インタープリターを使用して実現されています。

この詳細は、MicroPython のページに記載されています。

また、micro:bit 上で動作する JavaScript インタープリター Espruino の移植版 もあります。

コーディング環境と IDE

micro:bit をプログラムするために使用できるコーディング環境は、非常に数多く存在します。

特に人気があるのは、https://microbit.org/code に掲載されている公式のものや、オフラインの Mu エディターです。

以下は、micro:bit で使用できるコードエディターの完全ではない一覧です。ここにないものをご存じであれば、ぜひ追加してください

コーディング環境から micro:bit へ

各コーディング環境は、.hex ファイルと呼ばれる特別なファイルを生成します。これは、micro:bit が理解できる形式で書かれた、micro:bit 用のコードを含むファイルです。

micro:bit のコードは、micro:bit を接続したときにコンピューター上に表示される MICROBIT ドライブに .hex ファイルをドラッグすることで更新されます。これはコンピューターからは USB メモリスティックのように見えます(このフラッシュドライブは実際には DAPLink ソフトウェアによってエミュレートされています)

モバイルアプリを使用し、携帯電話から Bluetooth 通信インターフェイスを使って、micro:bit にコードを「書き込む」ことも可能です。

詳細は bluetooth アプリ をご覧ください。

micro:bit の低水準(C/C++)ソフトウェアスタック

micro:bit 用のアプリケーションを書くとき、最終的に書き込まれる .hex ファイルを構成するために、あなたのアプリケーションには他のソフトウェア部品も組み合わされます。このコードは、次のようなさまざまな低水準ソフトウェアコンポーネントで構成されています。

  • DAL/CODAL(ランタイムと呼ばれることもあります)。Lancaster University によって C++ で書かれています。DAL は、micro:bit の機能を、すべてのコーディング言語から利用できる共通の関数セットに抽象化します。MakeCode の高水準ブロック関数は、ランタイム内の同等の C/C++ 呼び出しにほぼ直接対応しています。MicroPython では DAL の使用はより少なくなります。

  • Arm Mbed Arm Mbed SDK は、MCU 周辺機器用の標準化されたドライバーを提供し、異なる MCU の低水準ハードウェアの詳細の大部分を抽象化するため、micro:bit ソフトウェアを他のハードウェア上でも容易に動作させることができます。これには、Mbed BLE API である BLE の抽象化も含まれます。

  • Nordic nRF5 SDK Mbed 自体は Nordic nRF5 SDK の上に構築されており、これはプログラマーが自社ハードウェアを使用するのを支援するために Nordic が提供しているコンポーネントです。

  • MicroPython interpreter Python を使用している場合、MicroPython 言語インタープリター全体がアプリケーションに結合されて .hex ファイルを構成します。micro:bit 上の MicroPython は基盤として Mbed を使用していますが、MicroPython は他の幅広いハードウェアプラットフォーム上でも動作します。