micro:bit 開発者コミュニティサイト
このサイトは、micro:bit のコミュニティ wiki と技術データシートの中間に位置することを目指しています。 コンテンツは Github で編集でき、Creative Commons を通じたオープンライセンスで提供されています。
このサイトは、micro:bit が現在のように動作する仕組みを支えるハードウェアとソフトウェアを文書化するために、Micro:bit Educational Foundation によって維持されています。
私たちは、これらのプロジェクトへの貢献を促進することで、エコシステムを広げ、人々が micro:bit で発明できるものの幅を広げたいと考えています。
Micro:bit Educational Foundation は、micro:bit の構築に使われている多くのオープンソース ソフトウェア プロジェクトに対して、「責任あるダウンストリーム」であることを目指しています。これは、優れた Linux ディストリビューションが多様なオープンソースパッケージの組み合わせを収集し、テストし、安定化し、リリースするのと同じように、Micro:bit Educational Foundation と micro:bit コミュニティが、魔法のような「エンドツーエンド」の micro:bit 体験を実現するために必要なあらゆるものについて、安定したテスト済みのリリースを micro:bit ユーザーに提供するということです。
最新ニュース
最新ニュースやコミュニティの更新情報を受け取るには、メーリングリストに参加してください。
構築にご協力ください
micro:bit をより良くするお手伝いをしたい場合は、参加する方法がいくつかあります。
コード
micro:bit が依存しているアップストリームプロジェクトのいずれかに、機能追加や修正で貢献してください:
ビルド
micro:bit を中心とした優れたハードウェアエコシステムの構築にご協力ください。派生ボード、魅力的なアクセサリやアドオン、あるいは micro:bit の将来バージョンに向けた提案も歓迎します。
- 独自のプロジェクトを作り始めるには、micro:bit 回路図 と リファレンスデザイン がよい出発点になります
- アクセサリガイド では、現在利用可能なものの概要を確認できます。
執筆
- ドキュメントとこのサイトを改善してください。問題の報告でも、ドキュメントの追加でも、大いに助けになります。
- micro:bit を中心としたコミュニティ作りにご協力ください。Email list に参加し、作ったものを twitter で共有したり、ブログで紹介したりしてください!
このページには、世界中の大学、研究室、クラブ、学校で BBC micro:bit に関して、またはそれを用いて行われた技術プロジェクト、研究、開発がまとめられています。これは micro:bit コミュニティによって作成されたものであり、プロジェクトテンプレートを送信することで、ご自身の成果を自由に追加できます。
micro:bit の影響に関する研究をご覧になりたい場合は、メインサイトをご覧ください。
{% for projects in site.projects %} {% if projects.post_filter contains ‘projects’ %}
{{ projects.title }}
{{ projects.description | markdownify }}
{% endif %} {% endfor %}
開発者とエコシステムのニュース
定期的に配信している Micro:bit Educational Foundation ニュースレター に加えて、開発者とエコシステム ニュースレターでは、micro:bit の技術的側面に関する配信頻度の低いダイジェストをお届けしています。ご提供いただいた情報は、財団の プライバシーポリシー に従って処理されます。
ニュースアーカイブ
micro:bit コミュニティは世界中に広がっており、micro:bit を使ってすばらしいものを作ったり、その上で動作するソフトウェアを書いたりしています。多くの micro:bit のハードウェアおよびソフトウェアのリソースはオープンライセンスで提供されており、私たちは誰からの貢献も歓迎し、支援しています。
世界規模の micro:bit 開発者コミュニティに参加したい場合は、まず以下から始めてください。
開発者・エコシステム向けニュースレターを購読する
通常の Micro:bit Educational Foundation ニュースレター に加えて、開発者・エコシステム向け ニュースレターでは、micro:bit の技術的な側面に関する情報を低頻度のダイジェストとしてお届けしています。ご提供いただいた情報は、財団の プライバシーポリシー に従って処理されます。
その他のチャネルとコミュニティ
財団独自のチャネルに加えて、サポートや議論のための他のコミュニティもあります:
- MakeCode micro:bit フォーラム micro:bit 拡張機能の開発や MakeCode エディターでの作業に関する、より技術的な詳細について MakeCode チームとつながれます。
- /r/microbit micro:bit に関する Reddit でのディスカッション
micro:bit V2
本日、私たちはBBC micro:bit の新バージョンを発表します。これにより、スピーカー、マイク、そして AI と機械学習のワークロードを実行できる CPU 性能が追加されます。これらの追加機能によって、初代 micro:bit の成功を支えたのと同じ協調的な設計とイノベーションを、AI と ML の世界にも広げていきます。
この記事は、microbit.org のニュース記事を、より技術的な観点から補足するものです。 micro:bit V2 の画像
最新の micro:bit はまだ購入できませんが、今この段階でこれについてお話ししているのは、micro:bit が一つの組織や公式エディター、さらには一つのデバイスだけのものではないからです。
micro:bit が他に類を見ない存在として際立っているのは、それが協調的な形で開発されたからです。それは、多様な学生が参加できるようにし、教室における教師と学習者のニーズに応えるために、分野横断的な組織連携によって丁寧に設計されたツールです。
この革新的なデバイスは、非常に利用しやすく、プログラミングしやすく、すぐにインタラクティブに使え、しかも美しさも備えています。これにより、教育テクノロジーにおけるイノベーションの波が始まりました。リリースから 5 年後の今、micro:bit は 8〜15 歳の子どもたちにコンピュテーショナルシンキングを教えるための最も愛されているツールの 1 つとなっており、現在では世界中で推定 2,500 万人の教師と生徒によって 500 万台の micro:bit が使われています。
手頃な価格で、開発者向け品質のハードウェアを提供し、生徒がそれを使うための洗練されたシンプルな方法を生み出すことで、AI や ML のような変革的技術が自分たちの周囲の世界をどのように形作っているのかを理解する世代の育成を後押しできます。
パートナーシップのもとで取り組む
micro:bit 体験を生み出すために結集した多くの声こそが、多様な人々が技術に関わり、積極的に受け入れるようになるうえでの成功の鍵となっています。
私たちは、その同じパートナーシップと協力の精神のもとでデバイスを進化させ、最新の micro:bit を作り上げてきました。これにより、世界中の人々がこのデバイスを教育の中核として頼りにしてこられた安定性と信頼性を維持しつつ、この先何年にもわたるデジタル探究の土台を築いています。
Micro:bit Educational Foundation では、Lancaster University、Microsoft、NXP、そして MicroPython と協力し、micro:bit の中核となる体験が、これまでと変わらず創造的で魅力的かつ一貫したものであるよう取り組んでいます。しかし、新しい micro:bit の展開は、エディター開発者、アクセサリ提供者、コンテンツ制作者、そして micro:bit の支援者たちからなる素晴らしいコミュニティの意見なしには成り立ちません。
私たちは単独ではなく、みんなでこれを築いています
micro:bit アクセサリの壁 BETT で展示されたアクセサリの壁
私たちは、より広い micro:bit エコシステムがコミュニティにもたらしている大きな貢献を認識し、それを支援しています。そのため、新しい micro:bit に関する主要な技術情報と、ユーザーがこのデバイスを入手できるようになる前から容易にサポートできるようにするためのオープンソースツールを公開しています。
これらの情報はすべて、更新版の tech.microbit.org にまとめてあり、何かをテストまたは開発するためにデバイスが必要な場合に、どのように先行アクセスを取得できるかの詳細も含まれています。
- 最新の micro:bit に関するすべての技術的詳細とその使い方
- 以下の方向けの、このデバイスのサポートに関するガイダンス:
最新の micro:bit 向けのコードを作成する
最新の micro:bit は初代バージョンのすべての機能をサポートしているため、多くの場合、ユーザーは両方のデバイスを区別する必要がありません。すでに存在するすべてのチュートリアルやプログラムは、最新のハードウェアでもサポートされています。しかし、2 つのデバイス上で動作するマシンコードは異なるため、最新の micro:bit では新しい種類の hex をサポートしています。私たちはこれを「universal hex」と呼んでいます。これは、両方のバージョンの micro:bit 用のマシンコードを含んでいます。micro:bit の USB インターフェイスを実現する Arm のプロジェクト DAPLink に取り組んできた NXP の素晴らしい支援のおかげで、最新の micro:bit は universal hex から使用すべきコードを選択できます。これらのファイルは、初代 micro:bit で利用する際に更新が不要になるよう設計されています。 universal hex の作成
これらの universal hex 向けにプログラムを開発する体験を可能な限りシームレスにするため、私たちは Arm、Lancaster University、そして Microsoft Research との連携をさらに深めました。これらはいずれも初代 micro:bit の共同開発者です。初代 microbit-dal を発展させたオープンソースの Lancaster の CODAL があったおかげで、私たちは最新の micro:bit を動かすためのすぐに使えるプラットフォームを手にしていました。さらに、既存のプロジェクトや環境が容易に再コンパイルされて最新のボードで動作するよう、microbit-dal 用の完全な互換レイヤーも含めています。こうした慎重な互換性対応に加えて、高度な SoundExpressions シンセサイザーやオーディオパイプラインアーキテクチャなど、最新のハードウェア向けに設計された魅力的な新機能も数多く用意されています。 CODAL を用いた micro:bit ソフトウェアアーキテクチャ MakeCode、MicroPython、Scratch は新しいデバイスのサポートに CODAL を使用しており、micro:bit 上で動作するソフトウェアを構築するすべての人にも、micro:bit エディター間で一貫した体験を確保するために同じ方法を採用することを推奨しています。これにより、新機能が追加されたときにも、それらを容易に取り込み、ユーザーに提供できるようになります(micro:bit の無線機能が初代 micro:bit のリリース時には搭載されていなかったことは、つい忘れがちです!)
天井を引き上げる
2015 年の登場時、初代 micro:bit の主要な目標のひとつは、高い能力を備えながらも、即座に反応し、すぐに触れられる使いやすさによって新しい層の人々を引き込めるものを作ることでした。私たちは常に「低い敷居と高い天井」を目指してきました。つまり、始めるのはとても簡単でありながら、プロジェクトが複雑になり、デバイスそのものを超えて広がっていっても、壁にぶつかることがないようにするということです。
これを実現するうえで重要だったのは、当時実際の開発者が使っていたのと同じハードウェアを学生たちの手に届けることでした。これによって、micro:bit のより驚くべき活用例が可能になりました。光学式マウスセンサーを使った手書き認識、BLE メッシュでの利用、プレゼンテーション用リモコン、あるいはカスタムの支援技術デバイスなどです。
Universal Hex の作成
最新の micro:bit では、私たちは再びこれを実現しようとしています。nRF52833 は Nordic が最近リリースした、現代的で魅力的な部品であり、業界全体で新しい設計に採用されています。これは機械学習のワークロードを実行できる能力を持っており、デバイスの応用において新たな可能性の領域を切り開くだけでなく、特に機械学習とは実際には何なのかを明らかにし、示す助けにもなります。つまり、それは魔法ではなく、十分に高度なテクノロジーの応用なのです。
初代 micro:bit は、スマートフォンの中にあるテクノロジー(画面、ボタン、無線通信、モーションセンサー、それらすべてを制御するプロセッサー)を巧みに示し、若い人たちがこうしたデバイスを理解し、自分で制御できるという自信を持つ助けとなりました。新しい BBC micro:bit は、音を出したり音に反応したりする機能をハードウェアに加えることでその能力を拡張し、AI スマートスピーカーやデジタルアシスタントを含む最新の消費者向けテクノロジーを、より身近で分かりやすいものにしています。
新しい創造の可能性
micro:bit 上の音楽とサウンドは、BBC micro:bit をめぐる当初のコミュニティ活動の一環として MicroPython で先駆的に実現されました。とりわけ 音声合成器 のようなものを導入してくれた Nicholas Tollervey と Mark Shannon の功績は大きなものでした。最新の micro:bit にスピーカーが追加されたことで、いままさにその真価が発揮されつつあります。ヘッドホンやアンプ付きスピーカーを接続すれば、さらに高音質なサウンドが得られます。micro:bit の 5x5 ディスプレイが入門には最適でありながら、カラー LCD がプロジェクトを拡張する歓迎すべき手段であるのと同じように、Lancaster University が書いたサウンドドライバーは、エッジコネクタ上で高品質なサウンドを再生できます。ヘッドホンジャックソケットにつながるワニ口クリップが消えてしまうのは、まだ少し先になりそうです!
micro:bit ギター
しかし、音の可能性は音楽だけにとどまりません。音は、私たちの多くにとってコミュニケーションの手段です。声やアクセントは、私たちのアイデンティティや個性の一部です。micro:bit に「音」を機能として追加するにあたり、私たちはそれに個性も持たせたいと考えました。2015 年に Technology Will Save Us が主導して micro:bit の視覚的・構造的要素に慎重に配慮したことで、デバイスのデザインに丁寧に注意を払うことが、その親しみやすさや、人々がハードウェアに感情的なつながりを持ちやすくなることに大きな影響を与えると示されました。micro:bit のサウンドはこの考え方を受け継ぎ、micro:bit の声を親しみやすく、近づきやすいものにするために用意されています。私たちは、このすばらしい音を作り出すためのシンセサイザーに取り組んでおり、サウンドデザイナーから多くの意見をもらいながら調整を重ね、実用的なものに仕上げています。
マイクは、スマートスピーカーやデジタルアシスタントのマイクと同じように、デバイスが音に反応し、micro:bit の周囲のノイズを感知できるようにします。新しい micro:bit の高い能力と組み合わせることで、これは音を使った AI や機械学習に関して非常に大きな可能性を開きつつあります。教育環境への配慮を象徴するように、マイク専用の「動作中」インジケーターは、オフのときには基板の視覚的デザインを損なわず、それでいてマイクがオンになって音を感知しているときには明確にそれと分かるようになっています。これにより、教師は生徒たちとプライバシーの問題や、聞き取りを行うデバイスの影響について話し合うことができます。
AI と ML を探る
Tensorflow ロゴ
デバイスを手にしてから数日のうちに、Espruino のリード開発者である Gordon Williams は、micro:bit を自社のオンラインプラットフォームでサポートしました。これにより、Espruino のジェスチャー認識ライブラリを含む JavaScript プログラムをデバイス上で動かせるようになりました。このライブラリはもともと bangle.js 向けに設計されており、Tensorflow Lite を使用しています。micro:bit で慣れ親しんでいるかもしれない「shake」のような「ジェスチャー」とは異なり、このデモでは、データを収集できるあらゆるジェスチャーを認識する機械学習モデルを訓練できます。ジェスチャーを実行している記録を取り、それを認識できるモデルを構築するのです。つまり、より複雑で繊細なジェスチャーを扱えるだけでなく、自分自身や micro:bit に取り付けたものに合わせてカスタマイズすることもできます。
同様に非常に素早く取り組んだ Edge Impulse は、micro:bit チームの各メンバーが「micro:bit」と 3 回言う様子を動画で記録し(毎週のチームミーティングの締めくくりとして、これ以上にふさわしい方法があるでしょうか?)、Edge Impulse のクラウドサービスを使って、「micro:bit」という言葉が発話されたことを認識できるモデルを作成しました。このデモについてはこちらで詳しく読めますが、micro:bit を訓練して固有の音を認識させられる可能性を、はっきりと示しています!
Edge Impulse の可視化
次は何でしょうか?
この新しいデバイスについては、まだ説明し掘り下げるべきことがたくさんあり、今後数日間で技術ドキュメントと公開コードの両方をさらに充実させていく予定です(きっと数週間、数か月、さらには数年にわたっても!)。micro:bit の魔法の多くは、すべての機能にシームレスにアクセスでき、しかも共存できることにあります。たとえば、静電容量式タッチ、マイク、エッジコネクタを使いながら、なおかつ低電力スリープにも入ることができます。そして、それがどのように実現されたのかについても、共有したいことがたくさんあります。micro:bit V2 向けの CODAL が成長していくにつれて、機械学習とサウンドの中核的な要素についても、同じように簡単に組み合わせられるようにしていきたいと考えています。
AI/ML の可能性、リスク、複雑さについては多くの憶測があり、しばしば誤解も見られますが、micro:bit デバイスは、フィジカルコンピューティングとコンピュテーショナル・シンキングにもたらしたのと同じ変革的なシンプルさを、これらの概念の教育にももたらせると私たちは信じています。とはいえ、これは一夜にして実現できることではありません。デバイスがリリースされた今、私たちは大学、産業界、学校、そしてメイカーと協力するプロセスを開始し、この変革的な体験を現実のものにしようとしています。現在公開しているデモは、新しいハードウェアでできることのほんの一部を示しているにすぎません。最新の micro:bit は、若い人たちが、自分たちの生活にますます大きな影響を及ぼすインテリジェントなシステムやアルゴリズムの内部の仕組みを理解し、やがてそれを作り変えていく力を与えると、私たちは確信しています。
今こそ、もう一度 micro:bit に関わり、私たちとともにこのプロジェクトの次の段階を築いていくときです。
概要
micro:bit のプロセッサーには、オンボードの Bluetooth トランシーバーが搭載されています。これは、PCB 上のパターンアンテナやその他の補助的な部品、さらにソフトウェアスタックと組み合わされており、micro:bit に認証済みで信頼性の高い Bluetooth 機能を提供します。
Bluetooth ソフトウェアスタック
V1 Nordic Semiconductor Soft Device S110.
V2 Nordic Semiconductor Soft Device S113.
SoftDevice は Nordic の Bluetooth ソフトウェアスタックであり、SoftDevice の異なるバージョンは、異なる Nordic チップ向けに異なる Bluetooth 機能を提供します。
Bluetooth を使用すると、他のデバイスに接続し、micro:bit との間でデータを送受信できます。
Bluetooth は、micro:bit 間の無線機能 とは異なります。この機能は、Lancaster University が Nordic の独自プロトコル ShockBurst を基盤として構築した ものです。
BBC micro:bit Bluetooth プロファイル
micro:bit は、独自開発された単一の BBC micro:bit プロファイルを介して Bluetooth をサポートしています。このプロファイルにより、他の BLE 対応デバイスと通信できます。
CODAL
V2 向けには、すべての Bluetooth サービスを有効にする事前コンパイル済み hex ファイルをダウンロードできます。
このソースは、microbit-v2-samples リポジトリにあります。
DAL
BBC micro:bit V1 の Bluetooth プロファイルは DAL で定義されています。
Bluetooth サービスを有効にする 2 つの事前コンパイル済み Hex ファイルのいずれかを、micro:bit V1 に書き込むことができます。Bluetooth はメモリを多く消費するため、これらは ‘Magnetometer Service なし’ または ‘DFU Service なし’ のいずれかとして提供されています:
DAL には、BLE サービスファイルの C++ ソース が含まれています。
また、microbit-samples リポジトリには、いくつかのサンプルプログラムもあります:
micro:bit は、Bluetooth Low Energy (BLE) を備えた V2Bluetooth 5.0/V1Bluetooth 4.1 スタックを搭載しており、DAL/CODAL ではデフォルトで GAP Peripheral Role をサポートしています。また、別の SoftDevice を使用するように DAL/CODAL を変更することで、GAP Peripheral および Central のデバイスロールもサポートできます。
すべての Bluetooth デバイスと同様に、ISM (Industrial Scientific Medical) 帯で動作します。これは 2.4GHz から始まり 2.41GHz で終わります。BLE はこの周波数帯を 50 個の 2MHz 帯域に分割し、そのうち 40 個が使用されます。これらは チャネル と呼ばれ、0 から 39 の番号が付けられています。37、38、39 のチャネルは「アドバタイジング」に使用されます。
デバイスが接続されると、適応周波数ホッピング と呼ばれる機能によって制御される特定のシーケンスで、他のチャネルを使用します。これは、他の無線利用者による混雑の影響を軽減するのに役立ちます。
データ転送速度は、よくても毎秒数百キロバイト程度にとどまり、スループットはアプリケーションが Bluetooth 機能をどのように使用するかに依存します。スループットは、システムプロトコルのオーバーヘッドがアプリケーションデータに対して占める割合に左右されます。たとえば温度データを含む小さなパケットを大量に送る場合、UART サービスを使用する場合よりもデータ転送速度は低くなります。
便利な micro:bit ランタイムコードの高度な設定オプション がいくつかあります。
課題
適切な知識があれば、誰でも他の Bluetooth プロファイルを定義して実装することが可能です。
私たちは、V2 の機能の一部を利用可能にする新しいプロファイル要素の定義を支援してくれる協力者を求めています。
さらに詳しい情報
-
Martin Woolley の Bluetooth Blog には、micro:bit で Bluetooth を使用するためのさまざまな情報があります
-
BittySoftware には、micro:bit 向けのさまざまな Bluetooth 対応ソフトウェアがあります
-
オリジナルの micro:bit 「Out of the Box」体験。Bluetooth プロファイル内の属性の一部も含まれています
-
ディスプレイ未使用の完全なプロファイル。Bluetooth 経由でディスプレイに書き込みたい場合は、ディスプレイを使用する ‘Out of the Box’ hex ではなく、このファイルを使用すべきです。
Bluetooth と micro:bit ソフトウェア
DAL/C++ リファレンスドキュメント には、プロファイル内で利用可能な標準機能およびカスタム機能が一覧表示されています。
このプロセッサーには、micro:bit の無線プロトコルの基盤となっている、Bluetooth ではない独自の動作モードもいくつかあります。このプロトコルは micro:bit 間でのみ動作し、DAL/CODAL では ‘Micro:bit Radio’、MakeCode と MicroPython では ‘radio’ として定義されています。
MakeCode での Bluetooth
Microsoft MakeCode には、micro:bit Bluetooth プロファイルから個々のサービスをインスタンス化できるほか、接続および切断のイベントも扱える “Bluetooth” extension があります。これは “Radio” extension と併用できません。
これらのサービスは、micro:bit web components などと組み合わせて使用することで、Bluetooth 経由で micro:bit とやり取りできます。
例として、ML Machine のツールは、MakeCode でこの拡張機能を使って構築されています。 注意: micro:bit V1 では、Bluetooth 拡張機能も使用すると、利用できるメモリが非常に限られます。
以下は、MakeCode で Bluetooth 拡張機能を追加して使用する方法の例です。 MakeCode の Bluetooth 拡張機能の追加
アプリ
- Android アプリ は、micro:bit とのペアリングやプログラムの書き込みを容易にします
- iOS アプリ は、micro:bit とのペアリングやプログラムの書き込みを容易にします
- Swift Playgrounds には、Swift アプリで利用できる Playground Book と、さらにリソースを開発するための micro:bit Swift API が含まれています
- Scratch は、Scratch Link ソフトウェアとカスタムビルドされたペアリング用 .hex を通じて、さまざまな micro:bit Bluetooth サービスの利用をサポートしています
概要
Bluetooth アプリケーションは、スマートフォンやタブレットをはじめ、さまざまなデバイスで実行できます。Raspberry Pi のようなデバイスでも、Bluetooth 対応アプリケーションを実行できます。
以下は、micro:bit で実際に読んだり試したりしてみるとよい Bluetooth アプリケーションの厳選リストです。ほかにもご存じのものがあれば、このリストへの追加にご協力ください。ここに掲載されているものの多くは、micro:bit Awesome list から採られています。
アプリケーション、ツール、例
-
Android アプリ は、micro:bit のペアリングとプログラムの書き込み を容易にします。このアプリはもともと Samsung によって開発され、現在は Micro:bit Educational Foundation によって保守されています。micro:bit Android アプリのソースコード は GitHub で確認できます。
-
iOS アプリ は、micro:bit のペアリングとプログラムの書き込み を容易にします
-
Swift Playgrounds には、Swift アプリで利用できる Playground Book と、さらにリソースを開発するための micro:bit Swift API が含まれています
-
Scratch は、micro:bit への接続を容易にし、ディスプレイ、ボタン、モーションセンサーの各サービスを使用します。
-
Kitronik Move - Bluetooth LE 経由で micro:bit を制御するための D-Pad インターフェースを提供する Android アプリ。
-
microBit.js - Web Bluetooth API を使用して BBC micro:bit とやり取りするための JavaScript ライブラリ。
-
microbit-web-bluetooth - micro:bit Bluetooth Profile を実装した Web Bluetooth ライブラリ。
-
microbit-web-components - BLE 経由で公開される micro:bit のすべての機能向けの Web Components。
-
Gobot - 現実世界のデバイスをプログラムするための Go プログラミング言語向けフレームワークです。Bluetooth LE 経由で micro:bit にアクセスできます。
-
micro:bit Slither - Bluetooth 経由で micro:bit を使って操作する、Android 向けのマルチプレイヤー・スネークゲーム。
-
Serial Bluetooth Terminal- micro:bit の Bluetooth UART データを送受信できる Android アプリ。
-
Bluetooth Low Energy Remote Control for Spotify - このプロジェクトでは、macOS 上で Spotify 用の Bluetooth Low Energy リモートコントロールとして動作するように micro:bit を設定できます。
-
Musical Instrument Controller - Bluetooth 経由で iPad 上の MIDI コントローラーアプリと通信し、GarageBand で音楽を演奏できる micro:bit 楽器。
概要
BBC micro:bit について
micro:bit は、さまざまなオンチップ周辺機能を備えたアプリケーションプロセッサを搭載する、容易にプログラム可能なシングルボードコンピュータ(SBC)です。その他の周辺機器はこのチップに接続されています。
インターフェイスプロセッサがアプリケーションプロセッサに接続されており、ドラッグアンドドロップによるコード書き込みプロセスを含む、USB インターフェイス経由の通信を管理します。インターフェイスプロセッサは、micro:bit の周辺機器にはいずれも接続されていません。
micro:bit の内部を理解するうえで役立つ重要な情報は、次の 2 つです。
-
デバイスの詳細な部品データと接続関係を示す 回路図
-
互換性のある micro:bit の完全なモジュール設計であり、micro:bit を理解したい人や独自のバリアントを設計したい人の出発点となるよう設計された リファレンスデザイン
ボード概要 2.2
ハードウェアブロック図
2.2 ブロック
ハードウェアの説明
nRF52 アプリケーションプロセッサ
nRF52 アプリケーションプロセッサは、ユーザープログラムが実行される場所です。 ユーザーコード、ランタイムコード、Bluetooth スタックを含む 1 つの完全なアプリケーションが、オンチップフラッシュメモリから直接ロードされて実行されます。 ユーザーが利用可能なすべての GPIO ピンは、このプロセッサによって提供されます。 オンボードの 2.4GHz 無線周辺機能があり、オフチップのアンテナを介して Bluetooth とカスタム無線機能を提供します。
| 項目 | 詳細 |
|---|---|
| モデル | Nordic nRF52833 |
| コアバリアント | Arm Cortex-M4 32 bit processor with FPU |
| フラッシュ ROM | 512KB |
| RAM | 128KB |
| 速度 | 64MHz |
| デバッグ | SWD |
| 詳細情報 | Software, nRF52 datasheet |
Bluetooth 無線通信
オンボードの 2.4GHz アンテナは、完全認証済みの Bluetooth Low Energy スタックを提供する Nordic S113 SoftDevice を介した Bluetooth 通信をサポートします。 これにより micro:bit は、スマートフォンやタブレットを含む幅広い Bluetooth デバイスと通信できます。
| 項目 | 詳細 |
|---|---|
| スタック | Bluetooth 5.1 with Bluetooth Low Energy(BLE) |
| 帯域 | 2.4GHz ISM(産業・科学・医療用)2.4GHz..2.41GHz |
| チャネル | 50 個の 2MHz チャネル、使用されるのは 40 個のみ(0 ~ 39)、アドバタイジングチャネルは 3 個(37,38,39) |
| 感度 | Bluetooth low energy モードで -93dBm |
| 送信出力 | -40dBm ~ 4dBm |
| 役割 | GAP Peripheral & GAP Central |
| 混雑回避 | Adaptive Frequency Hopping |
| プロファイル | BBC micro:bit profile |
| 詳細情報 | Bluetooth |
低レベル無線通信
オンボードの 2.4GHz トランシーバーは、その他の複数の無線通信規格をサポートしており、その上に microbit-radio プロトコルを構築しています。 このプロトコルは、他の micro:bit デバイスなど、対応するデバイス間で非常にシンプルな小パケットのブロードキャスト無線インターフェイスを提供します。 micro:bit 上の複数の言語に現れる ‘radio’ インターフェイスは、このプロトコルの上に構築されています。 さらに、micro:bit のランタイムソフトウェアは各データペイロードに ‘group code’ を追加し、ユーザーが簡単にデバイスのアドレッシングとフィルタリングを管理できるようにしています。
| 項目 | 詳細 |
|---|---|
| プロトコル | Micro:bit Radio |
| 周波数帯 | 2.4GHz |
| チャネルレート | 1Mbps または 2Mbps |
| 暗号化 | なし |
| チャネル | 80(0..80) |
| グループコード | 255 |
| 送信出力 | 0(-30dbm)から 7(+4dbm)までの 8 段階のユーザー設定可能な値 |
| ペイロードサイズ | 32(標準)255(再構成した場合) |
| 詳細情報 | Micro:bit Radio |
ボタン
micro:bit 前面の 2 つのボタンと背面の 1 つのボタンは、タクト式のモーメンタリ押しボタンです。背面のボタンは、システムリセットのためにインターフェイスプロセッサと nRF52 プロセッサの両方に接続されています。これは、USB 給電でもバッテリー給電でも、アプリケーションがリセットされることを意味します。
前面の A ボタンと B ボタンは、ユーザーアプリケーションで任意の目的に使用できるようプログラムできます。 A と B はソフトウェアでデバウンスされており、短押し、長押し、および ‘A+B 同時’ 押下の検出も含まれます。ボタンは一般的な反転電気モードで動作し、プルアップ抵抗により、ボタンが離されているときは論理 ‘1’、押されているときは論理 ‘0’ になります。 A ボタンと B ボタンの両方は、micro:bit のエッジコネクタからもアクセス可能な GPIO ピンに接続されています。
| 項目 | 詳細 |
|---|---|
| 種類 | タクト式ユーザーボタン 2 個、タクト式システムボタン 1 個 |
| デバウンス | (A & B)ソフトウェアでデバウンス、54ms 周期 |
| プルアップ | (A & B)外付け 4K7、(システム)10K |
ディスプレイ
ディスプレイは 5x5 配列の LED です。 これは 5x5 マトリクスとして micro:bit に接続されています。 ランタイムソフトウェアはこのマトリクスを高速で繰り返しリフレッシュするため、人間の残像効果の範囲内に収まり、ちらつきは知覚されません。 この LED マトリクスは周囲光の検出にも使われており、一部の LED 駆動ピンを繰り返し入力に切り替えて電圧減衰時間をサンプリングすることで、周囲光レベルにおおよそ比例する値を得ます。
| 項目 | 詳細 |
|---|---|
| 種類 | 小型表面実装赤色 LED |
| 物理構造 | 5x5 マトリクス |
| 電気的構造 | 5x5 |
| 輝度制御 | ソフトウェア制御、最大 255 段階 |
| センシング | ソフトウェアアルゴリズムによる周囲光推定 |
| センシング範囲 | 未定、消灯から全点灯まで 10 レベル |
| 色感度 | 赤中心、赤は 700nm |
モーションセンサー
micro:bit には、3 軸センシングと磁界強度センシングを提供する、加速度計と磁力計を組み合わせたチップがあります。 また、ハードウェアによるオンボードのジェスチャー検出(落下検出など)に加え、ソフトウェアアルゴリズムによる追加のジェスチャー検出(例: logo-up、logo-down、shake)も備えています。 標準ランタイムのソフトウェアアルゴリズムは、オンボード加速度計を使用して、読み取り値を基板の向きに依存しないコンパスの読み取り値に変換します。 コンパスは使用前に校正する必要があり、その校正プロセスはランタイムソフトウェアによって自動的に開始されます。 このデバイスは I2C バスを介してアプリケーションプロセッサに接続されています。 micro:bit には 2 種類の異なるモーションセンサー用の実装フットプリントがあります。1 つは ST 製(LSM303AGR)、もう 1 つは NXP 製(FXOS8700CQ)です。micro:bit DAL はこれら両方のセンサーをサポートしており、実行時に検出します。搭載されるセンサーは常に 1 つだけです。
| 項目 | 詳細 |
|---|---|
| モデル | LSM303AGR |
| 機能 | 3 軸磁界および 3 軸加速度、2/4/8/16g レンジ |
| 解像度 | 8/10/12 ビット |
| オンボードジェスチャ | ‘freefall’ |
| その他のジェスチャ | その他のジェスチャは、ランタイム内のソフトウェアアルゴリズムによって実装されます。 |
温度センシング
nRF52 アプリケーションプロセッサには、オンボードのコア温度センサーがあります。 これは標準のランタイムソフトウェア経由で公開されており、周囲 温度の推定値を提供します。
| 項目 | 詳細 |
|---|---|
| 種類 | オンコア nRF52 |
| 測定範囲 | -40C .. 105C |
| 解像度 | 0.25C 刻み |
| 精度 | +/-5C(未校正) |
| 詳細 | DAL Thermometer |
スピーカー
ピン上の PWM による音声出力に加えて、micro:bit には PCB 実装の磁気スピーカーがあり、音声出力はそちらにもミラーされます。
| 項目 | 詳細 |
|---|---|
| 種類 | JIANGSU HUANENG MLT-8530 |
| SPL | 80dB @ 5V, 10cm |
| 自己共振周波数 | 2700Hz |
| 詳細 | データシート |
マイクロフォン
オンボードの MEMs マイクロフォンが micro:bit に音声入力を提供し、ボード前面の内蔵 LED インジケーターが、マイクに電源が供給されているときにユーザーに知らせます。
このマイクロフォンには 33K:1K(電源対グランド)の外部バイアス回路があり、マイクロフォン入力ピンに AC 結合されています。
| 項目 | 詳細 |
|---|---|
| 種類 | Knowles SPU0410LR5H-QB-7 MEMS |
| 感度 | -38dB ±3dB @ 94dB SPL |
| SNR | 63dB |
| AOP | 118db SPL |
| 周波数範囲 | 100Hz ~ 80kHz |
| 指向特性 | 無指向性 |
| 詳細 | データシート |
汎用入出力ピン
エッジコネクタには、アプリケーションプロセッサの GPIO 回路の多くが引き出されています。これらの回路の一部は micro:bit の他の機能と共有されていますが、追加の回路の多くは、いくつかのソフトウェア機能をオフにすると汎用用途に再割り当てできます。
| 項目 | 詳細 |
|---|---|
| リング | 3 つの大型 IO リングと 2 つの大型電源リング、4mm プラグおよびワニ口クリップに対応 |
| GPIO の機能 | 19 本の割り当て可能な GPIO ピン |
| 2 本は外部 I2C インターフェイス専用 | |
| 6 本は表示または光センシング機能に使用 | |
| 2 本はオンボードボタンの検出に使用 | |
| 1 本はアクセシビリティインターフェイス用に予約 | |
| 19 本はデジタル入力またはデジタル出力として割り当て可能 | |
| 19 本は最大 3 本の同時 PWM チャネル用に割り当て可能 | |
| 19 本は 1 本のシリアル送信チャネルと 1 本のシリアル受信チャネル用に割り当て可能 | |
| 6 本はアナログ入力ピンとして割り当て可能 | |
| 3 本はオプションの SPI 通信インターフェイスに割り当て可能 | |
| 3 本は最大 3 つの同時タッチセンシング入力用に割り当て可能 | |
| ADC 解像度 | 10 ビット (0..1023) |
| エッジコネクタ | エッジコネクタ |
| ピッチ | 1.27mm、80 極両面 |
| パッド | 5 つのパッド、4mm の穴付き |
電源
micro:bit への電源は、USB コネクタの 5V、または JST コネクタに接続した 3V バッテリーから供給できます。注意して扱えば、エッジコネクタ上の 3V /GND リングから micro:bit に給電することも可能です。下部の 3V /GND リングは、外部回路への電源供給に使用できます。基板では最大 300mA まで仕様化された LDO を使用しており、短絡保護のためのサーマルカットアウトを備えています。
| 項目 | 詳細 |
|---|---|
| 動作範囲 | 1.8V .. 3.6V |
| 動作電流 (USB およびバッテリー) | 最大 300mA |
| オンボード周辺機器の電流予算 | 90mA |
| バッテリーコネクタ | JST S2B-PH-SM4-TB |
| エッジコネクタ経由で供給可能な最大電流 | 190mA |
| 詳細 | 電源 |
インターフェイス
インターフェイスチップは USB 接続を処理し、micro:bit に新しいコードを書き込んだり、メインコンピューターとの間でシリアルデータを送受信したりするために使用されます。
部品の入手性の都合により、V2.2X デバイスには異なるインターフェイスチップを搭載した 2 つのバリアントがあります。限定的なロットのデバイスは nRF52833-QDAA を使用して製造され、その後のデバイスは nRF52820-QDAA を使用して製造されています。
2 つのチップバリアントは同じファミリーに属するため、同じ DAPLink ファームウェアイメージが両方のチップで動作し、まったく同じ機能を提供します。
| 項目 | 詳細 |
|---|---|
| モデル | nRF52833-QDAA |
| コア種別: | 64 MHz Arm® Cortex®-M4F |
| フラッシュ ROM | 512KB(128kB はファームウェアに使用、128kB は不揮発性ストレージ用に予約、残りは未使用) |
| RAM | 128KB(32 KB のみ使用) |
| 速度 | 64MHz |
| デバッグ機能 | SWD |
| 詳細 | DAPLink, nRF52833 データシート |
| 項目 | 詳細 |
|---|---|
| モデル | nRF52820-QDAA |
| コア種別: | 64 MHz Arm® Cortex®-M4 |
| フラッシュ ROM | 256KB (128kB は不揮発性ストレージ用に予約) |
| RAM | 32KB |
| 速度 | 64MHz |
| デバッグ機能 | SWD |
| 詳細 | DAPLink, nRF52820 データシート |
USB 通信
micro:bit にはオンボードの USB 通信スタックがあり、これはインターフェイスチップのファームウェアに組み込まれています。このスタックにより、アプリケーションプロセッサにコードをロードするために、 MICROBIT ドライブへファイルをドラッグアンドドロップできます。また、外部ホストコンピューターとの USB 経由で micro:bit のアプリケーションプロセッサとの間でシリアルデータをストリーミングでき、アプリケーションプログラムのホストデバッグ向けに CMSIS-DAP 仕様もサポートしています。
| 項目 | 詳細 |
|---|---|
| コネクタ | USB micro, MCR-B-S-RA-SMT-CS5-TR |
| USB バージョン | 2.0 フルスピードデバイス |
| 速度 | 12Mbit/sec |
| 対応 USB クラス | Mass Storage Class (MSC) |
| Communications Device Class (CDC) | |
| CMSIS-DAP HID & WinUSB | |
| WebUSB CMSIS-DAP HID | |
| 詳細情報 | DAPLink |
デバッグ
インターフェイスプロセッサは、アプリケーションプロセッサ上で実行されているコードをデバッグするために、特別なホストツールとともに使用できます。これは、2 ピンの Serial Wire Debug (SWD) を介してアプリケーションプロセッサに接続します。インターフェイスプロセッサのコードは、その内部 SWD ソフトウェアデバッグインターフェイスを介してデバッグすることもできます。たとえば、製造時にこのプロセッサへ初期ブートローダーコードをロードしたり、失われたブートローダーを復旧したりするためです。
| 項目 | 詳細 |
|---|---|
| プロトコル | Serial Wire Debug (SWD) |
| オプション | DAPLink (CMSIS-DAP) |
機械的仕様
重要な寸法をすべて含む、micro:bit の優れた 2D および 3D CAD 図面とモデルを用意しています。これらのモデルは、micro:bit の非常に優れたマーケティング用画像やプロジェクト用画像を生成するための基礎として使用できます。また、たとえば 3D プリントによるアタッチメントを正確に製造するための基礎としても使用できます。
| 項目 | 詳細 |
|---|---|
| 寸法 | 51.60mm(w) 42.00mm(h) 11.65mm(d)、ボタンから基板までの深さ 4.55mm、スピーカーから基板までの深さ 3.00mm、JST コネクタから基板までの深さ 5.50mm |
| 重量 | TBC |
参考情報
Overview
1.3 図
ハードウェアブロック図
1.3 ブロック
micro:bit ハードウェアの利用を始める
micro:bit のハードウェアは Arm-Mbed プラットフォームをベースにしています。多数のオンチップ周辺機能を備えたアプリケーションプロセッサを搭載しています。いくつかのオフチップ周辺機能はこのチップに接続されています。 アプリケーションプロセッサにはインターフェイスプロセッサが接続されており、このインターフェイスプロセッサの役割は USB 経由の通信を管理し、ドラッグアンドドロップによるコード書き込みプロセスをサポートすることです。 インターフェイスプロセッサは、micro:bit のいずれの周辺機能にも接続されていません。
micro:bit の内部を理解するのに役立つ重要な情報は、次の 2 つです。
-
デバイスの詳細なコンポーネントデータと接続性を示す 回路図
-
リファレンスデザイン。これは互換性のある micro:bit の完全なモジュール設計であり、micro:bit の理解や独自バリアントの設計に関心のある人にとって出発点となるよう設計されています。
ハードウェアの説明
nRF51 アプリケーションプロセッサ
nRF51 アプリケーションプロセッサは、ユーザープログラムが実行される場所です。ユーザーコード、ランタイムコード、および Bluetooth スタックを含む単一の完全なアプリケーションが、オンチップフラッシュメモリから直接ロードされて実行されます。ユーザーがアクセス可能なすべての GPIO ピンは、このプロセッサによって提供されます。 オンボードの 2.4GHz 無線エンジンがあり、オフチップアンテナを介して Bluetooth 機能を提供するために使用されます。
| 項目 | 詳細 |
|---|---|
| モデル | Nordic nRF51822-QFAA-R rev 3 |
| コアバリアント | Arm Cortex-M0 32 bit processor |
| フラッシュ ROM | 256KB |
| RAM | 16KB |
| 速度 | 16MHz |
| デバッグ | SWD, jlink/OB |
| 詳細情報 | こちら |
Bluetooth ワイヤレス通信
オンボードの 2.4GHz トランシーバーは、完全認定済みの Bluetooth low energy スタックを提供する Nordic S110 SoftDevice を介して Bluetooth 通信をサポートします。 これにより、micro:bit はスマートフォンやタブレットを含む幅広い Bluetooth デバイスと通信できます。
| 項目 | 詳細 |
|---|---|
| スタック | Bluetooth 4.1 with Bluetooth low energy |
| 帯域 | 2.4GHz ISM (Industrial, Scientific and Medical) 2.4GHz..2.41GHz |
| チャネル | 50 個の 2MHz チャネル、使用されるのは 40 個のみ (0 から 39)、3 個のアドバタイジングチャネル (37,38,39) |
| 感度 | Bluetooth low energy モードで -93dBm |
| 送信電力 | -20dBM から 4dBm まで、4 dB 刻み |
| 役割 | GAP Peripheral |
| 混雑回避 | Adaptive Frequency Hopping |
| プロファイル | 1 つの BBC micro:bit profile |
| 詳細情報 | こちら |
低レベル無線通信
オンボードの 2.4GHz トランシーバーは、microbit-radio プロトコルを構築する基盤となる、いくつかの他の無線通信規格をサポートしています このプロトコルは、他の micro:bit デバイスのようにこれをサポートする他のデバイスとの間で、非常にシンプルな小容量パケットのブロードキャスト無線インターフェイスを提供します。 micro:bit 上のいくつかの言語に現れる ‘radio’ インターフェイスは、このプロトコルの上に構築されています。 さらに、micro:bit のランタイムソフトウェアは各データペイロードに ‘group code’ を追加し、シンプルなユーザー管理のデバイスアドレッシングとフィルタリングを可能にしています。
| 項目 | 詳細 |
|---|---|
| プロトコル | Micro:bit Radio |
| 周波数帯 | 2.4GHz |
| チャネルレート | 1Mbps または 2Mbps |
| 暗号化 | なし |
| チャネル | 101 (0..100) |
| グループコード | 255 |
| 送信電力 | 0(-30dbm) から 7 (+4dbm) までの、ユーザー設定可能な 8 段階 |
| ペイロードサイズ | 32 (標準) 255 (再設定時) |
| 詳細情報 | Micro:bit Radio |
ボタン
micro:bit 前面の 2 つのボタンと背面の 1 つのボタンは、タクト式モーメンタリプッシュトゥメイクボタンです。背面ボタンは KL26 インターフェイスプロセッサと nRF51 プロセッサに接続されており、システムリセットに使用されます。これは、USB から給電している場合でもバッテリーから給電している場合でも、アプリケーションがリセットされることを意味します。
前面の A ボタンと B ボタンは、ユーザーアプリケーション内で任意の目的のためにプログラムできます。 A ボタンと B ボタンはソフトウェアでデバウンスされており、短押し、長押し、および ‘A+B 同時押し’ の検出も含まれています。ボタンは一般的な反転電気モードで動作し、プルアップ抵抗によりボタンが離されているときは論理 ‘1’、ボタンが押されているときは論理 ‘0’ になります。 A ボタンと B ボタンはどちらも GPIO ピンに接続されており、これらのピンは micro:bit のエッジコネクタでもアクセス可能です。
| 項目 | 詳細 |
|---|---|
| 種類 | タクト式ユーザーボタン 2 個、タクト式システムボタン 1 個 |
| デバウンス | (A & B) ソフトウェアデバウンス、周期 54ms |
| プルアップ | (A & B) 外部 4K7、(System) 10K |
ディスプレイ
ディスプレイは 5x5 の LED アレイです。 これは 3x9 マトリクスとして micro:bit に接続されています。 ランタイムソフトウェアはこのマトリクスを高速で繰り返しリフレッシュするため、人間の残像視の範囲内となり、ちらつきは検出されません。 この LED マトリクスは周囲光の検知にも使用されます。いくつかの LED 駆動ピンを繰り返し入力に切り替え、電圧減衰時間をサンプリングすることで実現され、これは周囲光レベルにほぼ比例します。
| 項目 | 詳細 |
|---|---|
| 種類 | 小型表面実装赤色 LED |
| 物理構造 | 5x5 マトリクス |
| 電気的構造 | 3x9 |
| 輝度制御 | 10 段階 |
| 輝度範囲 | TBC |
| センシング | ソフトウェアアルゴリズムによる周囲光推定 |
| センシング範囲 | TBC、消灯から全点灯までの 10 段階 |
| 色感度 | 赤中心、赤は 700nm |
加速度センサー
加速度センサーは、3 軸センシングを提供する独立したチップです。 また、ハードウェアによるいくつかのオンボードジェスチャー検出(落下検出など)と、ソフトウェアアルゴリズムによる追加のジェスチャー検出(例: logo-up、logo-down、shake)も含まれています。 これは I2C バスを介してアプリケーションプロセッサに接続されています。
| 項目 | 詳細 |
|---|---|
| モデル | Freescale MMA8653FC |
| 機能 | 3 軸、2/4/8g 範囲 |
| 分解能 | 10 bits (0..1023) |
| 最大出力データレート | 800Hz |
| オンボードジェスチャー | ‘freefall’ |
| その他のジェスチャー | その他のジェスチャーはランタイム内のソフトウェアアルゴリズムによって実装されます。 |
磁力計
磁力計は、磁場強度のセンシングを提供する独立したチップです。 標準ランタイムのソフトウェアアルゴリズムは、オンボード加速度センサーを使用して、これらの読み取り値を基板の向きに依存しないコンパスの読み取り値に変換します。 コンパスは使用前にキャリブレーションする必要があり、キャリブレーション処理はランタイムソフトウェアによって自動的に開始されます。 このデバイスは、I2C バスを介してアプリケーションプロセッサに接続されています。
| 項目 | 詳細 |
|---|---|
| モデル | Freescale MAG3110 |
| 最大更新レート | 80Hz |
| フルスケール範囲 | 1000uT |
| 感度 | 0.10uT |
温度センシング
nRF51 アプリケーションプロセッサには、オンボードのコア温度センサーがあります。 これは標準ランタイムソフトウェアを通じて公開されており、周囲温度の推定値を提供します。
| 項目 | 詳細 |
|---|---|
| 種類 | on-core nRF51 |
| センシング範囲 | -25C .. 75C |
| 分解能 | 0.25C 刻み |
| 精度 | +/-4C(未校正) |
| 詳細情報 | こちら |
汎用入出力ピン
エッジコネクタには、アプリケーションプロセッサの GPIO 回路の多くが引き出されています。これらの回路の一部は micro:bit の他の機能と共有されていますが、追加されたこれらの回路の多くは、いくつかのソフトウェア機能をオフにすることで汎用用途に再割り当てできます。注: nRF51 データシートでは、GPIO ピンは std-drive(0.5mA)および high-drive(5mA)モードに設定でき、同時に high-drive モードにできるのは最大 3 ピンまでとされています。
| 項目 | 詳細 |
|---|---|
| リング | 3 つの大きな IO リングと 2 つの大きな電源リング、4mm プラグおよびワニ口クリップ対応 |
| GPIO 機能 | 割り当て可能な GPIO ピン 19 本 |
| 2 本はオンボード I2C インターフェイスに割り当て済み | |
| 6 本はディスプレイまたは光センシング機能に使用 | |
| 2 本はオンボードボタンの検出に使用 | |
| 1 本はアクセシビリティインターフェイス用に予約済み | |
| 19 本はデジタル入力またはデジタル出力として割り当て可能 | |
| 19 本は最大 3 本の同時 PWM チャネル用に割り当て可能 | |
| 19 本は 1 本のシリアル送信チャネルと 1 本のシリアル受信チャネル用に割り当て可能 | |
| 6 本はアナログ入力ピンとして割り当て可能 | |
| 3 本はオプションの SPI 通信インターフェイスに割り当て可能 | |
| 3 本は最大 3 つの同時タッチセンシング入力用に割り当て可能 | |
| ADC 分解能 | 10 ビット(0..1023) |
| エッジコネクタ | エッジコネクタ |
| ピッチ | 1.27mm、80 極両面。 |
| パッド | 5 つのパッド、4mm の穴付き |
| 詳細情報 | こちら |
電源
micro:bit への電源は、USB 接続、インターフェイスチップ(オンボードレギュレータを搭載)経由、または上部コネクタに接続したバッテリー経由で供給できます。また、(注意して扱えば)下部の 3V パッドから micro:bit に給電することも可能です。下部の 3V パッドは、外部回路に少量の電力を供給するためにも使用できます。
| 項目 | 詳細 |
|---|---|
| 動作範囲 | 1.8V .. 3.6V |
| USB 電流 | 最大 120mA |
| オンボード周辺機器の予算 | 30mA |
| バッテリーコネクタ | JST X2B-PH-SM4-TB |
| バッテリー電流 | 未定 |
| エッジコネクタ経由で供給可能な最大電流 | 90mA |
| 詳細情報 | こちら |
インターフェイス
インターフェイスチップは USB 接続を処理し、micro:bit に新しいコードを書き込んだり、メインコンピュータとの間でシリアルデータを送受信したりするために使用されます。
| 項目 | 詳細 |
|---|---|
| モデル | Freescale MKL26Z128VFM4 |
| コアバリアント: | Arm Cortex-M0+ |
| フラッシュ ROM | 128KB |
| RAM | 16KB |
| 速度 | 16MHz |
| デバッグ機能 | SWD |
| 詳細情報 | こちら |
USB 通信
micro:bit には、インターフェイスチップのファームウェアに組み込まれたオンボード USB 通信スタックがあります。このスタックにより、MICROBIT ドライブにファイルをドラッグ&ドロップしてアプリケーションプロセッサにコードを読み込めます。また、USB 経由で micro:bit アプリケーションプロセッサと外部ホストコンピュータの間でシリアルデータをストリーミングでき、アプリケーションプログラムのホストデバッグ用に CMSIS-DAP プロトコルもサポートしています。
| 項目 | 詳細 |
|---|---|
| コネクタ | Micro USB、MOLEX_47346-0001 |
| USB バージョン | 1.1 Full Speed デバイス |
| 速度 | 12Mbit/sec |
| サポートされる USB クラス | Mass Storage Class (MSC) |
| Communications Device Class (CDC) | |
| CMSIS-DAP HID & WinUSB | |
| WebUSB CMSIS-DAP HID | |
| 詳細情報 | こちら |
デバッグ
インターフェイスプロセッサは、アプリケーションプロセッサ上で実行中のコードをデバッグするために、専用のホストツールとともに使用できます。これは 2 ピンの Serial Wire Debug(SWD)を介してアプリケーションプロセッサに接続されます。KL26 インターフェイスプロセッサのコードも、その内部 SWD ソフトウェアデバッグインターフェイス経由でデバッグできます。たとえば、製造時にこのプロセッサへ初期ブートローダコードを読み込む場合や、失われたブートローダを復旧する場合などです。
| 項目 | 詳細 |
|---|---|
| プロトコル | Serial Wire Debug (SWD) |
| オプション | DAPLink (CMSIS-DAP) |
| JLink/OB(異なるファームウェア経由) | |
| 詳細情報 | こちら |
機械仕様
重要な寸法をすべて含む、micro:bit の優れた 2D および 3D CAD 図面とモデルを用意しています。これらのモデルは、micro:bit の非常に見栄えのよいマーケティング画像やプロジェクト画像を作成するための基礎として使用できるだけでなく、たとえば 3D プリントによるアタッチメントの正確な製造の基礎としても使用できます。
| 項目 | 詳細 |
|---|---|
| 寸法 | 5cm(w) 4cm(h) |
| 重量 | 5g |
追加情報
Overview
画像
micro:bit ハードウェア入門
micro:bit ハードウェアは Arm-Mbed プラットフォームに基づいています。 多数のオンチップ周辺機能を備えたアプリケーションプロセッサを搭載しています。 このチップにはいくつかのオフチップ周辺機器が接続されています。 アプリケーションプロセッサにはインターフェースプロセッサが接続されており、このインターフェースプロセッサの役割は、USB 経由の通信を管理し、ドラッグアンドドロップによるコード書き込みプロセスをサポートすることです。 インターフェースプロセッサは、micro:bit のどの周辺機器にも接続されていません。
micro:bit の内部構造を理解するうえで役立つ 2 つの重要な情報は次のとおりです。
-
デバイスの詳細なコンポーネントデータと接続性を示す 回路図。
-
互換性のある micro:bit の完全なモジュール設計であり、micro:bit を理解したい人や独自のバリアントを設計したい人の出発点となるよう設計された リファレンスデザイン。
ハードウェアの説明
nRF51 アプリケーションプロセッサ
nRF51 アプリケーションプロセッサは、ユーザープログラムが実行される場所です。 ユーザーコード、ランタイムコード、および Bluetooth スタックを含む単一の完全なアプリケーションが、オンチップのフラッシュメモリから直接読み込まれて実行されます。 ユーザーがアクセス可能なすべての GPIO ピンは、このプロセッサによって提供されます。 オンボードの 2.4GHz 無線エンジンがあり、オフチップの空中線を介して Bluetooth 機能を提供します。
| 項目 | 詳細 |
|---|---|
| モデル | Nordic nRF51822-QFAA-R rev 3 |
| コアバリアント | Arm Cortex-M0 32 bit processor |
| フラッシュ ROM | 256KB |
| RAM | 16KB |
| 速度 | 16MHz |
| デバッグ | SWD, jlink/OB |
| 詳細情報 | ソフトウェア, NRF51 データシート |
Bluetooth 無線通信
オンボードの 2.4GHz トランシーバーは、完全認証済みの Bluetooth Low Energy スタックを提供する Nordic S110 SoftDevice を介した Bluetooth 通信をサポートします。 これにより、micro:bit はスマートフォンやタブレットを含む幅広い Bluetooth デバイスと通信できます。
| 項目 | 詳細 |
|---|---|
| スタック | Bluetooth Low Energy 対応 Bluetooth 4.1 |
| 帯域 | 2.4GHz ISM(産業・科学・医療) 2.4GHz..2.41GHz |
| チャネル | 2MHz チャネル 50 個、使用されるのは 40 個のみ(0 ~ 39)、アドバタイジングチャネル 3 個(37,38,39) |
| 感度 | Bluetooth Low Energy モードで -93dBm |
| 送信電力 | -20dBM から 4dBm まで、4 dB 刻み |
| 役割 | GAP Peripheral |
| 混雑回避 | Adaptive Frequency Hopping |
| プロファイル | BBC micro:bit profile |
| 詳細情報 | Bluetooth |
低レベル無線通信
オンボードの 2.4GHz トランシーバーは、独自仕様の Nordic Gazell プロトコルを含む、他のいくつかの無線通信規格もサポートします。 このプロトコルは、他の micro:bit デバイスなど、この独自プロトコルをサポートする他のデバイスとの間で、非常にシンプルな小パケットのブロードキャスト無線インターフェイスを提供します。 micro:bit のいくつかの言語で利用できる ‘radio’ インターフェイスは、この Gazell プロトコルの上に構築されています。 さらに、micro:bit ランタイムソフトウェアは各データペイロードに ‘group code’ を追加し、ユーザーが簡単に管理できるデバイスのアドレッシングとフィルタリングを可能にしています。
| 項目 | 詳細 |
|---|---|
| プロトコル | Micro:bit Radio |
| 周波数帯 | 2.4GHz |
| チャネルレート | 1Mbps または 2Mbps |
| 暗号化 | なし |
| チャネル | 101(0..100) |
| グループコード | 255 |
| 送信電力 | 0(-30dbm) から 7 (+4dbm) までの、ユーザー設定可能な 8 段階 |
| ペイロードサイズ | 32(標準) 255(再構成した場合) |
| 詳細情報 | Micro:bit Radio |
ボタン
micro:bit の前面にある 2 つのボタンと背面にある 1 つのボタンは、押すと導通するタクト式のモーメンタリスイッチです。背面のボタンは、システムリセットのために KL26 インターフェースプロセッサと nRF51 プロセッサに接続されています。これは、USB 給電でもバッテリー給電でも、アプリケーションがリセットされることを意味します。
前面の A ボタンと B ボタンは、ユーザーアプリケーションで任意の目的にプログラムできます。 A と B のチャタリング除去はソフトウェアで行われ、短押し、長押し、および ‘A+B 同時押し’ の検出も含まれます。ボタンは一般的な反転論理の電気モードで動作し、プルアップ抵抗により、ボタンを離しているときは論理 ‘1’、ボタンを押しているときは論理 ‘0’ になります。 A ボタンと B ボタンはいずれも、micro:bit のエッジコネクタからもアクセスできる GPIO ピンに接続されています。
| 項目 | 詳細 |
|---|---|
| 種類 | タクト式ユーザーボタン 2 個、タクト式システムボタン 1 個 |
| チャタリング除去 | (A & B) ソフトウェアでチャタリング除去、54ms 周期 |
| プルアップ | (A & B) 外部 4K7、(システム) 10K |
ディスプレイ
ディスプレイは 5x5 の LED アレイです。 これは micro:bit に 3x9 マトリクスとして接続されています。 ランタイムソフトウェアはこのマトリクスを高速で繰り返しリフレッシュするため、人間の残像効果の範囲内に収まり、ちらつきは検出されません。 この LED マトリクスは周囲光の検出にも使用されます。いくつかの LED 駆動ピンを繰り返し入力に切り替えて電圧の減衰時間をサンプリングすることで行われ、この時間は周囲光レベルにおおむね比例します。
| 項目 | 詳細 |
|---|---|
| 種類 | 小型表面実装赤色 LED |
| 物理構造 | 5x5 マトリクス |
| 電気構造 | 3x9 |
| 輝度制御 | 10 段階 |
| 輝度範囲 | 未定 |
| センシング | ソフトウェアアルゴリズムによる周囲光推定 |
| センシング範囲 | 未定、消灯から全点灯までの 10 段階 |
| 色感度 | 赤中心、赤は 700nm |
モーションセンサー
micro:bit 1.5 バリアントには、3 軸センシングと磁界強度センシングを提供する加速度計・磁力計一体型チップが搭載されています。 また、ハードウェアによるオンボードのジェスチャー検出(落下検出など)も備えており、さらにソフトウェアアルゴリズムによって追加のジェスチャー検出(例: ロゴ上向き、ロゴ下向き、シェイク)も行います。 標準ランタイムのソフトウェアアルゴリズムは、オンボード加速度計を使用して、読み取り値を基板の向きに依存しないコンパスの読み取り値に変換します。 コンパスは使用前に較正する必要があり、その較正プロセスはランタイムソフトウェアによって自動的に開始されます。 このデバイスは I2C バスを介してアプリケーションプロセッサに接続されています。 V1.5 micro:bit には、2種類の異なるモーションセンサー用のフットプリントがあります。1つは ST 製(LSM303AGR)、もう1つは NXP 製(FXOS8700CQ)です。micro:bit DAL はこれら両方のセンサーをサポートしており、実行時に検出します。現在までに、すべての V1.5 ボードは LSM303AGR を搭載して製造されています。NXP 製の部品に移行する場合は、一連のテストが必要になり、DAL and Devices メーリングリストに通知します。
| 項目 | 詳細 |
|---|---|
| モデル | LSM303GR |
| 機能 | 3つの磁界軸と3つの加速度軸、2/4/8/16g レンジ |
| 分解能 | 8/10/12ビット |
| オンボードジェスチャー | ‘freefall’ |
| その他のジェスチャー | その他のジェスチャーは、ランタイム内のソフトウェアアルゴリズムによって実装されます。 |
温度センシング
nRF51 アプリケーションプロセッサーには、オンボードのコア温度センサーがあります。 これは標準ランタイムソフトウェアを通じて利用でき、周囲温度の推定値を提供します。
| 項目 | 詳細 |
|---|---|
| 種類 | コア内蔵 nRF51 |
| 測定範囲 | -25C .. 75C |
| 分解能 | 0.25C 刻み |
| 精度 | +/-4C(未校正) |
| 詳細情報 | DAL Thermometer |
汎用入出力ピン
エッジコネクタは、アプリケーションプロセッサーの GPIO 回路の多くを引き出しています。これらの回路の一部は micro:bit のほかの機能と共有されていますが、追加された回路の多くは、いくつかのソフトウェア機能をオフにすることで汎用用途に再割り当てできます。注: nRF51 データシートによると、GPIO ピンは std-drive(0.5mA)モードおよび high-drive(5mA)モードで使用でき、同時に high-drive モードにできるのは最大 3 ピンです。
| 項目 | 詳細 |
|---|---|
| リング | 大型 IO リング 3 個と大型電源リング 2 個、4mm プラグおよびワニ口クリップ対応 |
| GPIO 機能 | 割り当て可能な GPIO ピン 19 本 |
| 2 本はオンボード I2C インターフェイスに割り当て済み | |
| 6 本はディスプレイまたは光センシング機能に使用 | |
| 2 本はオンボードボタン検出に使用 | |
| 1 本はアクセシビリティインターフェイス用に予約 | |
| 19 本をデジタル入力またはデジタル出力として割り当て可能 | |
| 19 本を最大 3 つの同時 PWM チャネル用に割り当て可能 | |
| 19 本を 1 つのシリアル送信チャネルおよび 1 つのシリアル受信チャネル用に割り当て可能 | |
| 6 本をアナログ入力ピンとして割り当て可能 | |
| 3 本をオプションの SPI 通信インターフェイスに割り当て可能 | |
| 3 本を最大 3 つの同時タッチセンシング入力用に割り当て可能 | |
| ADC 分解能 | 10 ビット (0..1023) |
| エッジコネクタ | エッジコネクタ |
| ピッチ | 1.27mm、80 極両面 |
| パッド | 4mm 穴付きパッド 5 個 |
電源
micro:bit への電源は、USB 接続、インターフェイスチップ(オンボードレギュレーター搭載)、または上部コネクタに接続したバッテリーを介して供給できます。また、注意して扱えば、底部の 3V パッドから micro:bit に給電することも可能です。底部の 3V パッドは、外部回路に少量の電力を供給するためにも使用できます。
| 項目 | 詳細 |
|---|---|
| 動作範囲 | 1.8V .. 3.6V |
| USB 電流 | 最大 120mA |
| オンボード周辺機器の電流枠 | 30mA |
| バッテリーコネクタ | JST X2B-PH-SM4-TB |
| バッテリー電流 | TBC |
| エッジコネクタ経由で供給可能な最大電流 | 90mA |
| 詳細情報 | 電源 |
インターフェイス
インターフェイスチップは USB 接続を処理し、micro:bit に新しいコードを書き込むため、およびメインコンピューターとの間でシリアルデータを送受信するために使用されます。
| 項目 | 詳細 |
|---|---|
| モデル | Freescale MKL26Z128VFM4 |
| コア種別: | Arm Cortex-M0+ |
| フラッシュ ROM | 128KB |
| RAM | 16KB |
| 速度 | 16Mhz(クリスタル) 48MHz(最大) |
| デバッグ機能 | SWD |
| 詳細情報 | DAPLink, KL26 リファレンスマニュアル(要ログイン) KL26Z データシート |
USB 通信
micro:bit はオンボードの USB 通信スタックを備えており、これはインターフェイスチップのファームウェアに組み込まれています。このスタックにより、MICROBIT ドライブにファイルをドラッグアンドドロップしてアプリケーションプロセッサーにコードを読み込むことができます。また、USB 経由で外部ホストコンピューターと micro:bit アプリケーションプロセッサーの間でシリアルデータをストリーミング送受信でき、アプリケーションプログラムのホストデバッグ用に CMSIS-DAP プロトコルをサポートします。
| 項目 | 詳細 |
|---|---|
| コネクタ | USB micro, MOLEX_47346-0001 |
| USB バージョン | 1.1 Full Speed デバイス |
| 速度 | 12Mbit/sec |
| サポートされる USB クラス | マスストレージクラス (MSC) |
| 通信デバイスクラス (CDC) | |
| CMSIS-DAP HID & WinUSB | |
| WebUSB CMSIS-DAP HID | |
| 詳細情報 | DAPLink |
デバッグ
インターフェイスプロセッサーは、特殊なホストツールと組み合わせて、アプリケーションプロセッサー上で動作しているコードをデバッグするために使用できます。アプリケーションプロセッサーとは 2 ピンの Serial Wire Debug(SWD)経由で接続します。KL26 インターフェイスプロセッサーのコードも、その内部 SWD ソフトウェアデバッグインターフェイス経由でデバッグできます。たとえば、製造時にこのプロセッサーへ初期ブートローダーコードを書き込んだり、失われたブートローダーを復旧したりする場合です。
| 項目 | 詳細 |
|---|---|
| プロトコル | Serial Wire Debug (SWD) |
| オプション | DAPLink (CMSIS-DAP) |
| JLink/OB(別のファームウェア経由) | |
| 詳細情報 | Mbed による micro:bit のデバッグ |
機械仕様
重要な寸法をすべて含む、micro:bit の便利な 2D および 3D CAD 図面とモデルが用意されています。これらのモデルは、micro:bit の非常に見栄えのよいマーケティング用画像やプロジェクト画像を生成するための基礎として利用できるだけでなく、たとえば 3D プリンティングによるアタッチメントの正確な製作の基礎としても利用できます。
| 項目 | 詳細 |
|---|---|
| 寸法 | 5cm(幅) 4cm(高さ) |
| 重量 | 5g |
追加情報
Overview
ボード概要 2.0
ハードウェアブロック図
2.0 ブロック図
micro:bit ハードウェアを使い始める
micro:bit は、さまざまなオンチップ周辺機能を備えたアプリケーションプロセッサを含むシングルボードコンピュータ(SBC)です。その他の周辺機能はこのチップに接続されています。
インターフェイスプロセッサはアプリケーションプロセッサに接続されており、ドラッグ&ドロップによるコード書き込みプロセスを含む、USB インターフェイス経由の通信を管理します。インターフェイスプロセッサは、micro:bit のいずれの周辺機能にも接続されていません。
micro:bit の内部構造を理解するうえで役立つ重要な情報が 2 つあります。
-
デバイスの詳細なコンポーネントデータと接続性を示す 回路図。
-
リファレンスデザイン。これは互換性のある micro:bit の完全なモジュール設計であり、micro:bit の理解や独自のバリアントの設計に関心のある人にとっての出発点となるよう設計されています。
ハードウェアの説明
nRF52 アプリケーションプロセッサ
nRF52 アプリケーションプロセッサは、ユーザープログラムが実行される場所です。 ユーザーコード、ランタイムコード、Bluetooth スタックを含む単一の完全なアプリケーションが、オンチップのフラッシュメモリから直接ロードされ、実行されます。 ユーザーがアクセス可能な GPIO ピンはすべて、このプロセッサによって提供されます。 ボード上には 2.4GHz 無線周辺機能が搭載されており、オフチップのアンテナを介して Bluetooth とカスタム無線機能を提供します。
| 項目 | 詳細 |
|---|---|
| モデル | Nordic nRF52833 |
| コア種別 | FPU 搭載 Arm Cortex-M4 32 ビットプロセッサ |
| フラッシュ ROM | 512KB |
| RAM | 128KB |
| 速度 | 64MHz |
| デバッグ | SWD, J-Link/OB |
| 詳細情報 | ソフトウェア, nRF52 データシート |
Bluetooth 無線通信
ボード上の 2.4GHz は、完全認証済みの Bluetooth Low Energy スタックを提供する Nordic S113 SoftDevice を介した Bluetooth 通信をサポートしています。 これにより、micro:bit はスマートフォンやタブレットを含む幅広い Bluetooth デバイスと通信できます。
| 項目 | 詳細 |
|---|---|
| スタック | Bluetooth Low Energy(BLE)対応 Bluetooth 5.1 |
| 周波数帯 | 2.4GHz ISM(Industrial, Scientific and Medical) 2.4GHz..2.41GHz |
| チャネル | 2MHz チャネルが 50 個あり、そのうち使用されるのは 40 個のみ(0 から 39)、アドバタイジングチャネルは 3 個(37,38,39) |
| 感度 | Bluetooth Low Energy モードで -93dBm |
| 送信出力 | -40dBm から 4dBm |
| 役割 | GAP Peripheral & GAP Central |
| 混雑回避 | Adaptive Frequency Hopping |
| プロファイル | BBC micro:bit profile |
| 詳細情報 | Bluetooth |
低レベル無線通信
ボード上の 2.4GHz トランシーバーは、その他のさまざまな無線通信規格をサポートしており、その上に microbit-radio プロトコルを構築しています。 このプロトコルは、他の micro:bit デバイスなど、これをサポートする他のデバイス間で、非常にシンプルな小容量パケットのブロードキャスト無線インターフェイスを提供します。 micro:bit のいくつかの言語に現れる ‘radio’ インターフェイスは、このプロトコルの上に構築されています。 さらに、micro:bit ランタイムソフトウェアは各データペイロードに ‘group code’ を追加し、ユーザーが簡単にデバイスのアドレッシングとフィルタリングを管理できるようにしています。
| 項目 | 詳細 |
|---|---|
| プロトコル | Micro:bit Radio |
| 周波数帯 | 2.4GHz |
| チャネルレート | 1Mbps または 2Mbps |
| 暗号化 | なし |
| チャネル | 80 (0..80) |
| グループコード | 255 |
| 送信出力 | 0(-30dbm) から 7 (+4dbm) までの、ユーザーが設定可能な 8 段階 |
| ペイロードサイズ | 32(標準)255(再設定した場合) |
| 詳細情報 | Micro:bit Radio |
ボタン
micro:bit 前面の 2 つのボタンと背面の 1 つのボタンは、タクト式のモーメンタリ押しボタンです。背面ボタンは、システムリセットのために KL27 インターフェイスプロセッサおよび nRF52 プロセッサに接続されています。これは、USB 給電でもバッテリー給電でも、アプリケーションがリセットされることを意味します。
前面の A ボタンと B ボタンは、ユーザーアプリケーションで任意の目的に利用できるようプログラムできます。 A と B はソフトウェアでデバウンスされ、短押し、長押し、および ‘A+B 同時’ 押下の検出も含まれています。ボタンは一般的な反転電気モードで動作し、プルアップ抵抗により、ボタンが離されているときは論理 ‘1’、押されているときは論理 ‘0’ になります。 A ボタンと B ボタンはいずれも、micro:bit のエッジコネクタからもアクセス可能な GPIO ピンに接続されています。
| 項目 | 詳細 |
|---|---|
| 種類 | タクト式ユーザーボタン 2 個、タクト式システムボタン 1 個 |
| デバウンス | (A & B) ソフトウェアデバウンス、54ms 周期 |
| プルアップ | (A & B) 外部 4K7, (System) 10K |
ディスプレイ
ディスプレイは 5x5 の LED アレイです。 これは 5x5 マトリクスとして micro:bit に接続されています。 ランタイムソフトウェアはこのマトリクスを高速で繰り返しリフレッシュするため、人間の残像視の範囲内に収まり、ちらつきは検出されません。 この LED マトリクスは周囲光の検知にも使用され、一部の LED 駆動ピンを繰り返し入力に切り替えて電圧の減衰時間をサンプリングすることで、周囲光レベルにおおむね比例する値を取得します。
| 項目 | 詳細 |
|---|---|
| 種類 | 小型表面実装赤色 LED |
| 物理構造 | 5x5 マトリクス |
| 電気構造 | 5x5 |
| 輝度制御 | ソフトウェア制御、最大 255 段階 |
| センシング | ソフトウェアアルゴリズムによる周囲光推定 |
| センシング範囲 | TBC、消灯から最大点灯まで 10 段階 |
| 色感度 | 赤中心、赤は 700nm |
モーションセンサー
micro:bit には、3軸センシングと磁場強度センシングを提供する、加速度計/磁力計一体型チップがあります。 また、ハードウェアによるオンボードのジェスチャー検出(落下検出など)も備えており、さらにソフトウェアアルゴリズムにより追加のジェスチャーセンシング(例: logo-up、logo-down、shake)も行えます。 標準ランタイムのソフトウェアアルゴリズムは、オンボード加速度計を使用して測定値をボードの向きに依存しないコンパスの読み取り値に変換します。 コンパスは使用前に較正する必要があり、較正プロセスはランタイムソフトウェアによって自動的に開始されます。 このデバイスは I2C バスを介してアプリケーションプロセッサに接続されています。
micro:bit には、2種類の異なるモーションセンサー用のフットプリントがあります。1つは ST 製(LSM303AGR)、もう1つは NXP 製(FXOS8700CQ)です。micro:bit DAL はこれら両方のセンサーをサポートしており、実行時に検出します。実装されるセンサーは常にどちらか1つのみです。
| 項目 | 詳細 |
|---|---|
| モデル | LSM303AGR |
| 機能 | 3軸磁場、3軸加速度、2/4/8/16g レンジ |
| 分解能 | 8/10/12 ビット |
| オンボードジェスチャー | ‘freefall’ |
| その他のジェスチャー | その他のジェスチャーは、ランタイム内のソフトウェアアルゴリズムによって実装されます。 |
温度センシング
nRF52 アプリケーションプロセッサには、オンボードのコア温度センサーがあります。 これは標準ランタイムソフトウェアを介して利用でき、周囲温度の概算値を 提供します。
| 項目 | 詳細 |
|---|---|
| タイプ | nRF52 オンコア |
| 測定範囲 | -40C .. 105C |
| 分解能 | 0.25C 刻み |
| 精度 | +/-5C(未較正) |
| 詳細情報 | DAL Thermometer |
スピーカー
ピンで PWM により音声を出力できることに加え、micro:bit には PCB 実装の磁気スピーカーがあり、音声出力はこのスピーカーにも出力されます。
| 項目 | 詳細 |
|---|---|
| タイプ | JIANGSU HUANENG MLT-8530 |
| SPL | 80dB @ 5V, 10cm |
| 自己共振周波数 | 2700Hz |
| 詳細情報 | データシート |
マイクロフォン
オンボードの MEMS マイクロフォンが micro:bit に音声入力を提供し、ボード前面の内蔵 LED インジケーターは、このマイクに電源が供給されているときにユーザーへ知らせます。
このマイクロフォンには 33K:1K(電源対グラウンド)の外部バイアス回路があり、マイク入力ピンに AC 結合されています。
| 項目 | 詳細 |
|---|---|
| タイプ | Knowles SPU0410LR5H-QB-7 MEMS |
| 感度 | -38dB ±3dB @ 94dB SPL |
| SNR | 63dB |
| AOP | 118db SPL |
| 周波数範囲 | 100Hz ~ 80kHz |
| 指向特性 | 無指向性 |
| 詳細情報 | データシート |
汎用入力/出力ピン
エッジコネクタには、アプリケーションプロセッサの GPIO 回路の多くが引き出されています。これらの回路の一部は micro:bit のほかの機能と共有されていますが、一部のソフトウェア機能を無効にすれば、これらの追加回路の多くを汎用用途に再割り当てできます。
| 項目 | 詳細 |
|---|---|
| リング | 3つの大型 IO リングと2つの大型電源リング、4mm プラグおよびワニ口クリップに対応 |
| GPIO 機能 | 19 本の割り当て可能な GPIO ピン |
| 2本は外部 I2C インターフェイス専用です | |
| 6本はディスプレイまたは光センシング機能に使用されます | |
| 2本はオンボードボタン検出に使用されます | |
| 1本はアクセシビリティインターフェイス用に予約されています | |
| 19本はデジタル入力またはデジタル出力として割り当て可能です | |
| 19本は最大 3 つの同時 PWM チャネル用に割り当て可能です | |
| 19本は 1 つのシリアル送信チャネルと 1 つのシリアル受信チャネル用に割り当て可能です | |
| 6本はアナログ入力ピンとして割り当て可能です | |
| 3本はオプションの SPI 通信インターフェイスに割り当て可能です | |
| 3本は最大 3 つの同時タッチセンシング入力用に割り当て可能です | |
| ADC 分解能 | 10 ビット(0..1023) |
| エッジコネクタ | エッジコネクタ |
| ピッチ | 1.27mm、80 極両面 |
| Pads | 4mm の穴付き 5 つのパッド |
電源供給
micro:bit への電源は、USB コネクタの 5V、または JST コネクタに接続した 3V バッテリーから供給できます。注意すれば、エッジコネクタ上の 3V /GND リングから micro:bit に給電することも可能です。下部の 3V /GND リングは、外部回路への電源供給に使用できます。ボードは、短絡保護のためのサーマルカットアウトを備えた、最大 300mA 仕様の LDO を使用しています。
| 項目 | 詳細 |
|---|---|
| 動作範囲 | 1.8V .. 3.6V |
| 動作電流(USB およびバッテリー) | 最大 300mA |
| オンボード周辺機器の電流予算 | 90mA |
| バッテリーコネクタ | JST S2B-PH-SM4-TB |
| エッジコネクタ経由で供給可能な最大電流 | 190mA |
| 詳細情報 | 電源供給 |
インターフェイス
インターフェイスチップは USB 接続を処理し、micro:bit への新しいコードの書き込みや、メインコンピュータとの間でのシリアルデータの送受信に使用されます。
| 項目 | 詳細 |
|---|---|
| モデル | MKL27Z256VFM4 |
| コアバリアント: | Arm Cortex-M0+ |
| フラッシュ ROM | 256KB(128kB は不揮発性ストレージ用に予約) |
| RAM | 16KB |
| 速度 | 48MHz |
| デバッグ機能 | SWD |
| 詳細情報 | DAPLink, KL27 リファレンスマニュアル(ログイン後に閲覧可能) KL27 データシート |
USB 通信
micro:bit には、インターフェイスチップのファームウェアに組み込まれたオンボード USB 通信スタックがあります。このスタックにより、ファイルを MICROBIT ドライブへドラッグアンドドロップして、アプリケーションプロセッサにコードを読み込ませることができます。また、USB 経由で外部ホストコンピュータと micro:bit アプリケーションプロセッサの間でシリアルデータをストリーミングでき、アプリケーションプログラムのホストデバッグ向けに CMSIS-DAP 仕様もサポートしています。
| 項目 | 詳細 |
|---|---|
| コネクタ | USB micro, MCR-B-S-RA-SMT-CS5-TR |
| USB バージョン | 2.0 Full Speed device |
| 速度 | 12Mbit/sec |
| サポートされる USB クラス | Mass Storage Class (MSC) |
| Communications Device Class (CDC) | |
| CMSIS-DAP HID & WinUSB | |
| WebUSB CMSIS-DAP HID | |
| 詳細情報 | DAPLink |
デバッグ
インターフェースプロセッサは、専用のホストツールと組み合わせて使用することで、アプリケーションプロセッサ上で実行されているコードをデバッグできます。これは、2 ピンの Serial Wire Debug (SWD) を介してアプリケーションプロセッサに接続します。インターフェースプロセッサのコードは、その内部 SWD ソフトウェアデバッグインターフェース経由でもデバッグできます。これは、たとえば製造時にこのプロセッサへ初期ブートローダーコードをロードしたり、失われたブートローダーを復旧したりするために使用できます。
| 項目 | 詳細 |
|---|---|
| プロトコル | Serial Wire Debug (SWD) |
| オプション | DAPLink (CMSIS-DAP) |
| JLink/OB(異なるファームウェア経由) |
機械的仕様
重要な寸法をすべて含む、micro:bit の優れた 2D および 3D CAD 図面とモデルをいくつか用意しています。これらのモデルは、micro:bit の魅力的なマーケティング画像やプロジェクト画像を作成するためのベースとして使用できるほか、たとえば 3D プリントによるアタッチメントの正確な製造のベースとしても使用できます。
| 項目 | 詳細 |
|---|---|
| 寸法 | 51.60mm(w) 42.00mm(h) 11.65mm(d)、ボタンから基板までの奥行き 4.55mm、スピーカーから基板までの奥行き 3.00mm、JST コネクタから基板までの奥行き 5.50mm |
| 重量 | 未定 |
参考情報
概要
micro:bit のエッジコネクタは、外部回路やコンポーネントに接続するために使用されます。
4mm バナナプラグまたはワニ口クリップで使用するための 5 つのリングを含め、25 本のストリップ/ピンがあります。これらのリングのうち 3 つは汎用入出力(GPIO)用で、アナログ、PWM、タッチセンシングにも対応しており、残りの 2 つは micro:bit の電源に接続されています。
エッジコネクタ上で 1.27mm 間隔に配置された小さいストリップには追加の信号があり、その一部は micro:bit で使用され、他は自由に使用できます。 これらの追加ピンに簡単にアクセスするために使用できる、80w 1.27mm ピッチの外付け PCB コネクタがいくつか市販されています。
信号に接続されているのは前面のピンだけです。背面のリングは前面のリングに接続されていますが、背面の小さいストリップは未接続です。
エッジコネクタのピン
以下の図は、micro:bit の各ピンの割り当てを示しています。V2 の基板リビジョンでは、 Pin 9 は LED ディスプレイと共有されなくなりましたが、Pin 8 と Pin 9 は NFC 用に設定できます(ただし、これはデフォルトでは無効です)。
| V2 | V1 |
|---|---|
| エッジコネクタ V2 | エッジコネクタ v1 |
microbit.pinout.xyz
microbit.pinout.xyz は、micro:bit のピンや、いくつかの人気アクセサリでそれらがどのように使用されているかについて、さらに詳しい情報を得るための非常に優れたリソースです
ピンと信号
この表は、micro:bit のエッジコネクタ上の各ピンに関するさまざまなデータを示しています。
| m:b リング | mod | 回路図 | MCU | s/w | 機能 | 方向 | プル? |
| -------- | --- | ----- | --- | --- | --------- | --- | ----- |
| | 21 | COLR3 | P0.31/AIN7 | P3 | (GPIO), (ANALOG), **LEDCOL(3)**, (PWM), (UART) | O | -- |
| | | RING0 | | P0 | } | | |
| | | RING0 | | P0 | } | | |
| 0 | 18 | RING0 | P0.02/AIN0 | P0 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | RING0 | | P0 | } | | |
| | 22 | COLR1 | P0.28/AIN4 | P4 | (GPIO), (ANALOG), **LEDCOL(1)**, (PWM), (UART) | O | -- |
| | 37 | BTN_A | P0.14 | P5 | (GPIO), **BUTTON(A)**, (PWM), (UART) | I | e10Ku, i12Kd? |
| | 30 | COLR4 | P1.05 | P6 | (GPIO), **LEDCOL(4)**, (PWM), (UART) | O | -- |
| | 29 | COLR2 | P0.11/TRACEDATA2 | P7 | (GPIO), **LEDCOL(2)**, (PWM), (UART) | O | -- |
| | | RING1 | | P1 | } | | |
| | | RING1 | | P1 | } | | |
| 1 | 19 | RING1 | P0.03/AIN1 | P1 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | RING1 | | P1 | } | | |
| | 38 | GPIO1 | P0.10/NFC2 | P8 | **GPIO**, PWM, UART (NFC2) | I | i12Kd |
| | 28 | GPIO2 | P0.09/NFC1 | P9 | (GPIO), (PWM), (UART), (NFC1) | O | -- |
| | 23 | COL5R | P0.30/AIN6 | P10 | (GPIO), **LEDCOL(5)**, (ANALOG), (PWM), (UART) | O | -- |
| | 9 | BTN_B | P0.23 | P11 | (GPIO), **BUTTON(B)**, (PWM), (UART) | I | e10Ku, i12Kd? |
| | 40 | GPIO4 | P0.12/TRACEDATA1 | P12 | (GPIO),**ACCESSIBILITY**, (PWM), (UART) | I | i12Kd |
| | | RING2 | | P2 | } | | |
| | | RING2 | | P2 | } | | |
| 2 | 20 | RING2 | P0.04/AIN2 | P2 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | RING2 | | P2 | } | | |
| | 6 | SCK EXTERNAL | P0.17 | P13 | **GPIO**, SPI(SCLK), PWM, UART | I | i12Kd |
| | 5 | MISO EXTERNAL | P0.01/XL2 | P14 | **GPIO**, SPI(MISO), PWM, UART | I | i12Kd |
| | 4 | MOSI EXTERNAL | P0.13 | P15 | **GPIO**, SPI(MOSI), PWM, UART | I | i12Kd |
| | 34 | GPIO3 | P1.02 | P16 | **GPIO**, PWM, UART | I | i12Kd |
| | | +V_TGT | | | PSU(V_TGT) | | -- |
| | | +V_TGT | | | } | | -- |
| | | +V_TGT | | | } | | -- |
| 3V | | +V_TGT | | | } PSU(V_TGT) | | -- |
| | | +V_TGT | | | } | | -- |
| | | +V_TGT | | | PSU(V_TGT) | | -- |
| | 17 | I2C EXT SCL | P0.26 | P19 | (GPIO), **I2C(SCL)**, (PWM), (UART) | O | e4k7u |
| | 16 | I2C EXT SDA | P1.00/TRACEDATA0 | P20 | (GPIO), **I2C(SDA)**, (PWM), (UART) | I | e4k7u |
| | | GND | | | PSU(GND) | | -- |
| | | GND | | | } | | -- |
| | | GND | | | } | | -- |
| GND | | GND | | | } PSU(GND) | | -- |
| | | GND | | | } | | -- |
| | | GND | | | PSU(GND) | | -- |
| m:b ring | mod | schem | MCU | s/w | functions | dir | pull? |
| -------- | --- | ----- | --- | --- | --------- | --- | ----- |
| | 21 | COL1R | P0.04 | P3 | (GPIO), (ANALOG), **LEDCOL(1)**, (PWM), (UART) | O | -- |
| | | PAD1 | | P0 | } | | |
| | | PAD1 | | P0 | } | | |
| 0 | 18 | PAD1 | P0.03 | P0 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | PAD1 | | P0 | } | | |
| | 22 | COL2R | P0.05 | P4 | (GPIO), (ANALOG), **LEDCOL(2)**, (PWM), (UART) | O | -- |
| | 37 | BTN_A | P0.17 | P5 | (GPIO), **BUTTON(A)**, (PWM), (UART) | I | e10Ku, i12Kd? |
| | 30 | COL9R | P0.12 | P6 | (GPIO), **LEDCOL(9)**, (PWM), (UART) | O | -- |
| | 29 | COL8R | P0.11 | P7 | (GPIO), **LEDCOL(8)**, (PWM), (UART) | O | -- |
| | | PAD2 | | P1 | } | | |
| | | PAD2 | | P1 | } | | |
| 1 | 19 | PAD2 | P0.02 | P1 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | PAD2 | | P1 | } | | |
| | 38 | P0.18 | P0.18 | P8 | **GPIO**, PWM, UART | I | i12Kd |
| | 28 | COL7R | P0.10 | P9 | (GPIO), **LEDCOL(7)**, (PWM), (UART) | O | -- |
| | 23 | COL3R | P0.06 | P10 | (GPIO), **LEDCOL(3)**, (ANALOG), (PWM), (UART) | O | -- |
| | 9 | BTN_B | P0.26 | P11 | (GPIO), **BUTTON(B)**, (PWM), (UART) | I | e10Ku, i12Kd? |
| | 40 | P0.20 | P0.20 | P12 | (GPIO),**ACCESSIBILITY**, (PWM), (UART) | I | i12Kd |
| | | PAD3 | | P2 | } | | |
| | | PAD3 | | P2 | } | | |
| 2 | 20 | PAD3 | P0.01 | P2 | } **GPIO**, ANALOG, TOUCH, PWM, UART | I | e10Mu, i12Kd |
| | | PAD3 | | P2 | } | | |
| | 6 | SCK | P0.23 | P13 | **GPIO**, SPI(SCLK), PWM, UART | I | i12Kd |
| | 5 | MISO | P0.22 | P14 | **GPIO**, SPI(MISO), PWM, UART | I | i12Kd |
| | 4 | MOSI | P0.21 | P15 | **GPIO**, SPI(MOSI), PWM, UART | I | i12Kd |
| | 34 | P0.16 | P0.16 | P16 | **GPIO**, PWM, UART | I | i12Kd |
| | | +V_TGT | | | PSU(V_TGT) | | -- |
| | | +V_TGT | | | } | | -- |
| | | +V_TGT | | | } | | -- |
| 3V | | +V_TGT | | | } PSU(V_TGT) | | -- |
| | | +V_TGT | | | } | | -- |
| | | +V_TGT | | | PSU(V_TGT) | | -- |
| | 17 | SCL | P0.00 | P19 | (GPIO), **I2C(SCL)**, (PWM), (UART) | O | e4k7u |
| | 16 | SDA | P0.30 | P20 | (GPIO), **I2C(SDA)**, (PWM), (UART) | I | e4k7u |
| | | GND | | | PSU(GND) | | -- |
| | | GND | | | } | | -- |
| | | GND | | | } | | -- |
| GND | | GND | | | } PSU(GND) | | -- |
| | | GND | | | } | | -- |
| | | GND | | | PSU(GND) | | -- |
| column | purpose
| --- | ---
| m:b ring | micro:bitの基本インターフェース(前面の5つのリング)
| mod | module:bit上のピン番号
| schem | micro:bit回路図上のシンボル名
| MCU | Nordic MCUチップの実際のピン名
| s/w | DALランタイムソフトウェアで使用される名称
| functions | 利用可能なすべての機能。**太字**はデフォルト。括弧は注意して使用することを示す
| dir | micro:bit起動時の初期条件(方向):入力または出力
| pull? | プル抵抗:i12Kd = プロセッサ内部12KΩ設定可能プルアップ/プルダウン/なし、e10Mu = 外部10MΩ固定プルアップ
#### 注意
1. 0V、1V、2V、3V、およびGNDのリングは、エッジコネクタ上のそれぞれ対応する裏面のリングにも接続されています。
2. 3VおよびGNDのリングには、大きなリングの両側にガードストリップがあり、ワニ口クリップの接続によるデバイス性能の劣化を防いでいます。リング0、1、2については、隣接するピンにワニ口クリップがショートしないよう注意してください。これにより、LEDマトリクスに現在表示されているパターンに若干の干渉が発生したり、光センサーの読み取り値にわずかな不正確さが生じる可能性があります。
3. DAL DynamicPWMドライバー(および基盤となるNordicタイマーペリフェラル)により、PWMは同時に3ピンまでしか有効にできません。4つ目のピンをPWM用に割り当てようとすると、既存のPWMピンの1つが無効になります。
4. デジタル入力ピンの内部プル抵抗は、DAL/CODALによってデフォルトでプルダウンに設定されています。
5. 括弧内の機能は注意して使用してください。他のデバイス機能が、ソフトウェアで通常の使用を無効化しない限り、不安定になったり、性能が低下したり、動作しなくなる場合があります。
6. [ピン配置表](/docs/hardware/pinmap.csv)のソースファイルはCSV形式で保持されています。これをスプレッドシートに読み込んで、自由に並べ替えやフィルタリングが可能です。また、このフォルダには[圧縮されたPythonスクリプト](/docs/hardware/csv2md.zip)もあり、ダウンロードして.csvファイルからこのページで使用されているピンマップのMarkdownテーブル版を再生成できます。
7. 'ACCESSIBILITY'とマークされたピンは、オンボードのアクセシビリティモードの有効化/無効化に使用され、他の用途には使用しないでください(テスト目的でGPIOとして使用可能ですが)。将来の公式micro:bitエディターでは、このピンへの書き込み機能が削除される可能性があります。
## デフォルト機能の解除
機能名が括弧で囲まれているピンは、そのピンのデフォルト機能を無効化してから、他の機能を使用する必要があります。
### ピン: P3, P4, P6, P7, P9, P10
これらのピンはLEDマトリクスディスプレイおよび関連する周囲光センサーモードに接続されています。ディスプレイドライバ機能を無効化するには、DAL関数 `display.disable()` を呼び出してください(これにより光センサー機能も自動的に無効化されます)。後でディスプレイドライバ機能を再度有効化するには、DAL関数 `display.enable()` を呼び出します。
また、LED 3x9マトリクスは、これらのピンに関連する抵抗器とともにLEDが接続されているため、これらのピンを他の目的で使用する回路設計時には考慮してください。
### ピン: P5, P11
これらのピンは2つのオンボードボタンに割り当てられています。標準的な高水準言語のデフォルト設定では、グローバルなuBitインスタンスに `uBit.buttonA`、`uBit.buttonB`、`uBit.buttonAB` が含まれています。
ボタンは、コンストラクタでシステムタイマーにフックされ、定期的なデバウンス処理が行われます。ただし、この機能を完全に削除し、物理ピンを他の目的で使用したい場合は、`delete uBit.buttonA` を実行してください。これによりC++デストラクタが呼び出され、ボタンインスタンスがシステムタイマーから登録解除され、そのピンに対するDALのすべての動作が実質的に無効化されます。その後、物理ピン名を指定して `MicroBitPin` インスタンスを作成すれば、DALの干渉なしに直接制御できます。
ただし、micro:bitボードには10Kの外部プルアップ抵抗が装着されていることに注意してください。
### ピン: P19, P20
これらのピンはI2Cバスに割り当てられており、オンボードのモーションセンサーでも使用されています。これらのピンはI2C以外の用途には使用しないことを強く推奨します。
DALサービスでこれらのピンのI2Cバス利用を無効化することは可能ですが、モーションセンサーデバイスはバスに接続されたままで、信号をデータペイロードとして解釈しようとするため、SDAや割り込みピンに望ましくない副作用が発生する可能性があります。両ピンには4K7のプルアップ抵抗が基板上に装着されているため、これら2つの信号は他のI2Cデバイスを追加するのが最適です。
これらのピンを他の目的で使用する主な理由は、I2Cデバイスを搭載しない独自のmicro:bitバリアントを設計する場合であり、その場合は他の用途に2つのピンを追加で利用できます。
## 電源供給能力
GNDおよび3Vリングの使用方法については、[電源供給能力とパラメータ](powersupply.md)の専用ページで詳しく定義されています。
## GPIOの能力
### NRF51
これらの主要なGPIOパラメータは、[nRF51822 Datasheet](https://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.1.pdf)のセクション6、7、8から直接転記したもので、参考用に掲載しています。
| KEY | 説明 | section | Min | Max |
| --- | ------------------------------------------------- | ------- | ---- | ---- |
| VOL | 出力電圧 Low | 8.23 | VSS | 0.3V |
| VOH | 出力電圧 High | 8.23 | VDD-0.3 | VDD |
| VIL | ロジックLowの入力電圧 | 8.23 | VSS | 0.3*VDD |
| VIH | ロジックHighの入力電圧 | 8.23 | 0.7*VDD | VDD |
| xxx | IOピンからの最大ソース電流 | 8.23 | -- | 5mA |
| xxx | IOピンへの最大シンク電流 | 8.23 | -- | 5mA |
| VIO | IOピンで許容されるピン電圧 | 6 | -0.3V | VDD+0.3 |
| xxx | 入力時のピンインピーダンス | ? | TBC | |
| VDD(o) | 動作電圧範囲(LDO) | 9 | 1.8V | 3.6V |
| VDD(a) | 絶対電圧範囲 | 9 | -0.3V | +3.9V |
| VSS | グランド基準 | 6 | 0V | 0V |
| RPU | プルアップ抵抗 | 8.23 | 11K | 16K |
| RPD | プルダウン抵抗 | 8.23 | 11K | 16K |
注1: 同時にハイドライブ(5mA)に設定できるピンの最大数は3本です。
注2: 最大ピン電圧を超える一般的なケースは、スピーカー、モーター、ピエゾサウンダーなどの誘導性負荷をピンに直接接続することです。これらのデバイスは、通電時に大きな逆起電力(バックEMF)を発生し、GPIOピンの最大定格を超える電圧を生成することがあり、デバイスの早期故障を引き起こす可能性があります。
注3: 'ACCESSIBILITY'とマークされたピンは、オンボードのアクセシビリティモードの有効化/無効化に使用され、他の用途には使用しないでください(テスト目的でGPIOとして使用可能ですが)。将来の公式micro:bitエディターでは、このピンへの書き込み機能が削除される可能性があります。
注 4: BBC は安全ガイドの中で、エッジコネクタ全体から一度に取り出せる最大電流は V190mA であると示唆しています。これは、オンボード周辺機器向けの 30mA の予算と、USB から給電された場合の KL26 のオンボードレギュレータの最大定格が 120mA であるという事実に基づいて設定されています。最新の基板リビジョンでは最大電流は V2270mA ですが、オンボードのマイクとスピーカーがより大きな電流を消費する可能性があるため、この値は未定です。
### nRF52
これらの主要な GPIO パラメータは、[nRF52833 Datasheet](https://infocenter.nordicsemi.com/pdf/nRF52833_PS_v1.2.pdf) のセクション 6、7、8 から直接転記したもので、便利なリファレンスとしてここに掲載しています。
| KEY | 説明 | section | Min | Max |
| --- | ----------------------------------------------------------- | ------- | ---- | ---- |
| VOL,SD | 低レベル出力電圧、標準ドライブ、0.5 mA、VDD ≥ 1.7 | 6.8.3 | VSS | VSS +0.4 |
| VOL,HDH | 低レベル出力電圧、高ドライブ、5 mA、VDD ≥ 2.7 | 6.8.3 | VSS | VSS +0.4 |
| VOL,HDL | 低レベル出力電圧、高ドライブ、3mA、VDD ≥ 1.7 | 6.8.3 | VSS | VSS +0.4 |
| VOH,SD | 高レベル出力電圧、標準ドライブ、0.5 mA、VDD ≥ 1.7 | 6.8.3 | VDD -0.4 | VDD |
| VOL,HDH | 高レベル出力電圧、高ドライブ、5 mA、VDD ≥ 2.7 | 6.8.3 | VDD -0.4 | VDD |
| VOL,HDL | 高レベル出力電圧、高ドライブ、3mA、VDD ≥ 1.7 | 6.8.3 | VDD -0.4 | VDD |
| VIL | ロジック Low の入力電圧 | 6.8.3 | VSS | 0.3 * VDD |
| VIH | ロジック High の入力電圧 | 6.8.3 | 0.7 * VDD | VDD |
| IOL,SD | VSS+0.4V 時の電流、Low 出力、標準ドライブ、VDD ≥ 1.7 | 6.8.3 | 1mA | 4mA |
| IOL,HDH | VSS+0.4V 時の電流、Low 出力、高ドライブ、VDD ≥ 2.7 | 6.8.3 | 6mA | 15mA |
| IOL,HDL | VSS+0.4V 時の電流、Low 出力、高ドライブ、VDD ≥ 1.7 | 6.8.3 | 3mA | --- |
| IOH,SD | VDD-0.4V 時の電流、High 出力、標準ドライブ、VDD ≥ 1.7 | 6.8.3 | 1mA | 4mA |
| IOH,HDL | VDD-0.4V 時の電流、High に設定された出力、高ドライブ、VDD ≥ 2.7 | 6.8.3 | 6mA | 14mA |
| IOH,HDH | VDD-0.4V 時の電流、High に設定された出力、高ドライブ、VDD ≥ 1.7 | 6.8.3 | 3mA | --- |
| VIO≤3.6 | VDD ≤3.6 の IO ピンで許容されるピン電圧 | 9 | -0.3V | VDD+0.3 |
| VIO>3.6 | VDD >3.6 の IO ピンで許容されるピン電圧 | 9 | -0.3V | 3.9 |
| VDD | 動作電圧範囲 (LDO) | 7 | -0.3V | 3.9V |
| VDDH | 絶対電圧範囲 | 6 | -0.3V | 5.8V |
| VSS | グラウンド基準 | 9 | 0V | 0V |
| RPU | プルアップ抵抗 | 6.8.3 | 11K | 16K |
| RPD | プルダウン抵抗 | 6.8.3 | 11K | 16K |
## コネクタとブレークアウト
BBC micro:bit 用のエッジコネクタには、ライトアングルのスルーホール、立型スルーホール、立型表面実装など、さまざまな形態の製品を提供しているサプライヤがいくつかあります。
80 極 * 1.27mm ピッチの両面 PCB コネクタがあり、複数の供給元から購入できます。
いざというときには、ピッチが同じであるため、PC マザーボードの古い PCI エッジコネクタを使うことも可能です(ただし少し幅が広くなります)。
また、コミュニティでは、ちょうどよいサイズの皿ボルトやチーズ頭ボルト、あるいは 3D プリントされたインサートを使うといった、すばらしいアイデアもいくつか登場しています。
micro:bit のエッジコネクタ向けに、より優れた接続ソリューションを見つけたり設計したりするのを手伝っていただけますか? あなたの設計や発見をぜひ共有してください!
## BBC micro:bit 用エッジコネクタ
[コネクタをリストに追加する](http://github.com/microbit-foundation/dev-docs/edit/master/hardware/edgeconnector.md)
| Supplier | 製品
| -------- | -------
|4UCon| [4UCon connector](https://cdn.shopify.com/s/files/1/2311/3697/files/1944_Drawing.pdf?3325)
|[Cyclonn/Dongguan Yuliang](http://www.dgyuliang.net) | [micro:bit connectors](http://www.dgyuliang.net/Produtcs/Customized%20Connector/), [Alibaba store](https://dgyuliang.en.alibaba.com/productgrouplist-807517501/edge_connector_for_BBC_micro_bit.html?spm=a2700.shop_index.88.8) も参照してください |
## 詳細情報
- [micro:bit schematics](schematic.md)
- [micro:bit CAD resources (Kitronik)](https://www.kitronik.co.uk/blog/bbc-microbit-cad-resources/)
- [Eagle libraries for the micro:bit edge connector](https://github.com/proto-pic/micro-bit-eagle-libraries)
- [KiCad component and footprint library](https://github.com/anthonykirby/kicad_microbit_connector)
- [2D CAD drawing](https://www.kitronik.co.uk/pdf/bbc_microbit_mechanical_datasheet_V2.pdf) この図面には、micro:bit 基板上のエッジコネクタの各種ピンのピン間隔を含む、micro:bit の主要な寸法がすべて記載されています。
- [Kitronik BBC micro:bit CAD Resources](https://kitronik.co.uk/blogs/resources/bbc-microbit-cad-resources) このページには、オンラインリソースや 3D プリント設計の作成に使用できるさまざまなリソースが含まれています
このページは エッジコネクタと micro:bit のピン配置 に統合されました
I2C バスの使用
最新リビジョンの micro:bit の I2C バスでは、I2C 信号が内部用と外部用に分離されています。以前のリビジョンでは I2C バス をエッジコネクタおよびターゲット MCU と共有しています。
内部信号はターゲット Nordic チップに接続され、モーションセンサーおよびインターフェイスチップと通信します。
外部ラインはエッジコネクタに接続され、アクセサリで使用できます。
I2C ブロック図
I2C ブロック
使用されるアドレスの表
| 加速度センサー | 磁力計(コンパス) | インターフェイス管理 | インターフェイスストレージ | |
|---|---|---|---|---|
| モーションセンサー バリアント 1 (LSM303AGR) | 0x19 (0x32/0x33) | 0x1E (0x3C/0x3D) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) |
| モーションセンサー バリアント 2 (FXOS8700CQ) | 0x1F (0x3E/0x3F) | 0x1F (0x3E/0x3F) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) |
micro:bit V2 にはオンボード I2C 周辺機器専用のバスがありますが、micro:bit V1 ではオンボード I2C デバイスと外部 I2C デバイスで同じバスを共有します。予約済みの I2C アドレスについては、V1 共有バス のドキュメントを確認してください。
micro:bit アクセサリで使用されるアドレスの表(編集してください)
micro:bit 用のアクセサリを作成した場合は、以下の表を編集し、使用している I2C アドレスの詳細を共有してご協力ください。
| アクセサリ名 | 組織 | 使用している I2C アドレス |
|---|---|---|
| EDU:BIT | Cytron Technologies | 0x08 (0x10/0x11) |
I2C アクセサリで許容される容量
モーションセンサーの変更に関する最近の試験で、SCL-GND 間に接続した 10nF のコンデンサによって I2C バスは低速化しましたが、動作は継続することがわかりました。別途、SDA には動作しなくなるまで容量を追加しました。
- 100KHz では 1nF で動作を継続しましたが、2nF では動作しませんでした。
- 400kHz では 150pF で動作を継続しましたが、180pF では動作しませんでした。
リビジョン間で差は見られませんでした。
注意事項
V2 デバイスは、P0.25 上の統合センサー割り込みをアクティブ化することで(Low にプルすることで)ウェイクアップできます。このオープンドレイン信号は、ターゲット MCU、Interface MCU、およびモーションセンサーの間で接続されており、デバイスがスリープ中であっても、ターゲット MCU の内部プルアップを設定しておく必要があります。
共有 I2C バスの使用
ボード上のモーションセンサーは、エッジコネクタの I2C ピンと同じ I2C バス上にあります。つまり、このバス上で I2C を使用するアクセサリがある場合、搭載される可能性のあるオンボードセンサーのいずれとも競合しないことを確認する必要があります。最新のボードリビジョンでは I2C バスを共有していません。
V1.5 micro:bit には、2 種類の異なるモーションセンサー用のフットプリントがあります。1 つは ST 製(LSM303AGR)、もう 1 つは NXP 製(FXOS8700CQ)です。micro:bit DAL はこれら両方のセンサーをサポートしており、実行時に検出します。現在まで、すべての V1.5 ボードは LSM303AGR を搭載して製造されていますが、NXP の部品に切り替える可能性があります。その前に、一連のテストを実施し、DAL and Devices メーリングリスト。で通知します。
I2C ブロック図
I2C ブロック
使用されているアドレスの表
| 加速度センサー | 磁力計(コンパス) | |
|---|---|---|
| micro:bit V1.3 (MMA8653+MAG3110) | 0x1D (0x3A/0x3B) | 0x0E (0x1C/0x1D) |
| micro:bit V1.5 variant 1 (LSM303AGR) | 0x19 (0x32/0x33) | 0x1E (0x3C/0x3D) |
| micro:bit V1.5 variant 2 (FXOS8700CQ) | 0x1F (0x3E/0x3F) | 0x1F (0x3E/0x3F) |
全体として、これは 0x1D、0x0E(v1.3 のもの)、および 0x1F と 0x19(リビジョン用)がオンボード用途として予約されていることを意味します。
micro:bit アクセサリで使用されるアドレスの表(編集してください)
micro:bit 用のアクセサリを作成した場合は、以下の表を編集して、使用している I2C アドレスの詳細を共有し、私たちにご協力ください。
| アクセサリ名 | 組織 | 使用されている I2C アドレス |
|---|---|---|
| 例 banana-bit | 例 Banana enterprises | 例 0x76, 0x29 |
I2C アクセサリで許容される静電容量
モーションセンサーの変更に関する最近のテストでは、SCL-GND 間に接続された 10nF のコンデンサによって I2C バスが遅くなることがわかりましたが、それでも動作は継続しました。別途、動作しなくなるまで SDA に静電容量を追加しました。
- 100KHz は 1nF では動作を継続しましたが、2nF では動作しませんでした。
- 400kHz は 150pF では動作を継続しましたが、180pF では動作しませんでした。
リビジョン間で違いは見られませんでした。
概要
micro:bit への電源供給には、次の方法があります。
- インターフェイスチップ経由の USB 接続(オンボードレギュレータを搭載)
- JST コネクタに接続したバッテリー
- エッジコネクタ上の 3V ピンと GND ピン
- 基板裏面右側にある 2 つの角丸長方形パッド
micro:bit からの電源は、3V ピンと GND ピンを介して小規模な外部回路へ供給することもできます。
基板の設計パラメータ内に収めることが重要です。
-
USB から給電する場合、V1 のオンボードインターフェイスチップ(KL26)は内蔵レギュレータを使用して電力を供給し、このチップの定格は最大 120mA です。
-
オンボードで使用可能な電流予算は、ディスプレイ、Bluetooth、マイク、スピーカー、その他の周辺機器の使用状況によって変動します。すべてのオンボード周辺機器を使用する最悪条件を考慮して 30mA を見込み、エッジコネクタに接続する回路用には V1 で 90mA、V2 で 270mA を残すようにしてください。
-
バッテリーから給電する場合、KL チップには給電されず、USB インジケータ LED は点灯しません。
-
電源ソースの切り替えには低 Vf ダイオードが使用されています。このダイオードにより、ある電源ソースから別の電源ソースへの逆給電が防止され、USB ケーブルとバッテリーパックを同時に接続できます。
主要電圧
各チップのデータシートを見ると、デバイスごとに動作電圧範囲と絶対最大電圧がわずかに異なることがわかります。メーカーは、動作電圧範囲と、そのデバイスが耐えられる絶対最大値の両方を示しています。どのデバイスについても、動作電圧範囲を超えないようにしてください。
V1 リビジョン
| デバイス | 最小 | 最大 | 絶対最大 |
|---|---|---|---|
| NRF51 | 1.8V | 3.6V | 3.9Vabs |
| KL26 | 1.7V | 3.6V | 3.8Vabs |
| LSM303 | 1.71V | 3.6V | 3.6Vabs |
| MMA8653FC | 1.95V | 3.6V | 3.6Vabs |
| MAG3110 | 1.95V | 3.6V | 3.6Vabs |
この表は、micro:bit デバイス全体の動作電圧範囲が、最小 1.8V(1.5 系バリアントの場合)または最小 1.95V(モーションセンサーによって決まる 1.3* 系バリアントの場合)、最大 3.6V(すべてのデバイスによって規定)であることを示しています。
V2.00 リビジョン
| デバイス | 最小 | 最大 | 絶対最大 |
|---|---|---|---|
| nRF52 | 1.7V | 3.6V | 3.9Vabs |
| KL27 | 1.71V | 3.6V | 3.8Vabs |
| LSM303 | 1.71V | 3.6V | 3.6Vabs |
この表は、micro:bit デバイス全体の動作電圧範囲が最小 1.7V、最大 3.6V であることを示しています。
V2.2x リビジョン
| デバイス | 最小 | 最大 | 絶対最大 |
|---|---|---|---|
| nRF52 (target) | 1.7V | 3.6V | 3.9Vabs |
| nRF52 (interface) | 1.7V | 3.6V | 3.9Vabs |
| LSM303 | 1.71V | 3.6V | 3.6Vabs |
この表は、micro:bit デバイス全体の動作電圧範囲が最小 1.7V、最大 3.6V であることを示しています。
実用上の注意
USB 給電
USB から給電する場合、V1 ではインターフェイス MCU の内蔵レギュレータを使用して基板の残りの部分に 3.3V を供給します。最新リビジョンの V2 では、基板上に別個のレギュレータがあります。
KL26 datasheet の V1 セクション 3.8.2、Table 30. “USB VREG electrical specifications” には、レギュレートされた電源から取り出せる最大電流が 120mA であると記載されています。この電流の一部は、KL26 自体、nRF アプリケーションプロセッサ、モーションセンサー、LED ディスプレイなどのオンボードデバイスの動作に必要です。Bluetooth を有効にすると、nRF の消費電流はわずかに増加します。micro:bit V1 に接続するものについては、すべてのオンボード周辺機器を使用する最悪条件でも十分な安全マージンを確保できるよう、約 90mA を超えないように電流要件を見積もってください。
V2 には、300 mA を供給可能なオンボードレギュレータがあります。
これは、エッジコネクタから 90mA V1 / 190mA V2 を超える電流が必要な場合(たとえば多数の NeoPixels や小型モーターを駆動する場合)、それらには外部から電源を供給すべきであることを意味します。3V パッド経由で micro:bit に逆方向から給電することはできますが、以下で説明するように、micro:bit が常にすべてのオンボード周辺機器の動作範囲内の電源を得られ、かつ各電源同士が相互に給電できないようにするため、適切に安定化された電源と保護ダイオードを必ず使用してください。
USB バッテリーパックから micro:bit に給電しないことを推奨します。これは、USB バッテリーパックのメーカーや機種によっては、適切な負荷がない場合に許容範囲外の電圧を発生し、micro:bit を損傷する可能性があるためです(つまり、流れる電流が小さいとき)。 また、USB バッテリーパックによっては、消費電流が低すぎると自動的に電源が切れるものもあります。
バッテリー給電
上部のバッテリーコネクタに接続したバッテリーから給電する場合、V1 のインターフェイスチップには給電されず、System LED も点灯しません。コードがディスプレイに何も表示しない場合、micro:bit が動作していないように見えるかもしれませんが、実際には動作しています。 micro:bit V2 では、バッテリー電源はオンボードレギュレータを通過し、インターフェイスチップにも給電します。micro:bit 基板がスリープモードでない場合、赤色 LED(USB コネクタの左側)が点灯しているはずです。
V1 のターゲットチップにはほぼ直接給電されるため(電源とターゲット nRF51 電源レールの間には BAT60 ダイオードが 1 つあるだけです)、満充電で 4.2V に達する仕様の LiPoly battery は、nRF51 が耐えられる最大 3.6Vを超える電圧を与えることになります。
バッテリー接続と使用方法 についての詳細情報は、ナレッジベースにあります。
3V リング給電
micro:bit は、エッジコネクタ上の 3V/GND リングから給電できます。 また、PCB 裏面の右端には、電源供給に使用できる 2 つの角丸長方形パッドもあります(たとえば、一方の端にワイヤまたはピンが付いた 2xAAA ホルダー用のはんだ付け可能パッド)。
2 つの角丸長方形パッドの写真
上側のパッドは 0V または GND で、下側のパッドは 3V です。
3V リングまたは PCB 上の角丸長方形パッドから給電する場合は、適切なベストプラクティス上の予防措置を講じてください。
-
電源が逆接続された場合の損傷を防ぐため、外付け保護ダイオード(できれば低 Vf 定格のもの)を取り付けてください。
-
micro:bit の最大動作電圧を超える電圧を発生する可能性がある電源を使用する場合は、何らかの過電圧保護、または適切な電圧レギュレーションを設けてください。
電源アーキテクチャ V1
回路図 には、電源回路のアーキテクチャが示されています。 重要な点として、BAT60A ダイオードが 2 つあり、1 つは KL26/27 インターフェイスチップからの 3.3V 電源から、もう 1 つは外部バッテリーコネクタから接続されています。 エッジコネクタ上の 3V リングは V_TGT であり、これはすべてのオンボードチップに供給される生の電源です。そのため、3V リングまたは 3V の角丸長方形パッドに直接接続する際には、特に注意が必要です。
BAT60A デバイスは低 Vf 定格であり、これについては BAT60A datasheet で確認できます。
電源アーキテクチャ V2 TBC
リファレンスデザイン
回路図から micro:bit の設計について学べるだけでなく、micro:bit をベースにした独自のハードウェア製品やプロジェクトを作れるようにしたいと考えています。これは、micro:bit に接続しているすべてのハードウェアを 1 枚の回路基板にまとめることを意味します。
micro:bit プラントモニター
これらすべてのケーブルを 1 枚の基板にまとめましょう!
micro:bit には Bluetooth 無線が搭載されているため、micro:bit のような独自基板を作るのは複雑です。アンテナの調整、適切な共振回路の追加、さらに少数以上を製造したい場合は基板の認証も必要になります。そこで、micro:bit をベースにしたものをより簡単に作れるように、事前認証済みの nRF51 ベースモジュールを使用するこのバージョンの基板を用意しました(詳細は下記の モジュールの選択 を参照してください)。これにより、煩雑な RF の詳細を気にせず、自分のコンポーネントを基板に追加することに集中できます。
さらに、micro:bit には開発ボードとして重要な内蔵プログラマーおよびデバッガーがありますが、固定機能の製品を作るだけであれば、そのコストに見合わない可能性があります。リファレンスデザイン上のプログラマーは簡単に切り出して他の基板の書き込みに使用できるため、1 つのプログラマーで micro:bit ベースのすべての設計を書き込めます。
リファレンスデザインの特長
-
micro:bit と 100% バイナリ互換で、同じハードウェア機能をすべて含みます: 3 つのボタン、5x5 ディスプレイ、モーションセンサー)
-
SolderPad License 0.51 のもとで公開(Apache-2.0 ベースですが、Open Hardware 向けに調整されています)
-
使いやすさのために事前認証済みの nRF51822 モジュール をベースにしています
-
不要なものを削ぎ落とせるように、プログラマー回路とデバッガー回路を分離
-
標準 2.54mm ピッチコネクターを搭載
- すべての micro:bit エッジコネクターピン用
- KL26 および nRF51822 の書き込み用
-
より柔軟に使えるように電源回路を変更し、独立したレギュレーターを搭載
- 追加の電源なしでより多くのコンポーネントを駆動可能
- AAA に加えてリチウムイオンポリマーバッテリーも使用可能(micro:bit では推奨されません)
-
Eagle、Altium、KiCad 形式で設計を提供
-
コイン電池の接続およびホルダーのオプションあり(ただし、コイン電池が子どもに及ぼす危険には注意してください)
micro:bit 用に書いたコードは、変更なしでリファレンスデザイン上でも実行できます。
micro:bit リファレンスデザイン背面 micro:bit リファレンスデザイン前面
モジュール性
リファレンスデザインは非常にモジュール化された形でレイアウトされているため、これを使う人は必要な部分だけを含むように基板を簡単にカスタマイズできます。
リファレンスデザインはモジュール化されています.
たとえば、拡張機能や LED をすべて使わない非常に小さなものを作りたい場合は、基板の「最小構成サブセット」セクションを利用し、プログラマーを別にすることができます。
モジュールの選択
nRF51822 ベースの Bluetooth 事前認証済みモジュールを提供しているベンダーは複数あります。しかし、micro:bit は nRF51822 のすべてのピンを使用するため、チップの GPIO をすべて外部に引き出しているモジュールしか使用できません。私たちは最初に Raytac MDBT40-256V3 を選択しました。これは Seedstudio のような販売店から入手でき、Adafruit BLE ボードのような製品でも一般的に使われています。
この設計は完全なオープンソースであり、他のモジュールを使ったバリアントや改善に関する pull request を歓迎します。
独自プロジェクトでは、別のモジュールを使うことは正しいピンを配線するだけで済みます。ハードウェアページには詳細なピンマップがあります。同様に、他の一般的なモジュール向けのこのピンマップ文書へのコントリビューションも歓迎します。
Nordic Semiconductor が管理している nRF51822 モジュールの一覧があり、そこから 31 個すべての GPIO が引き出されている任意のモジュールを選べます。エッジコネクター上のすべてのピンを設計で使わず、独自設計向けにソフトウェアを再コンパイルできる場合(たとえば Mbed を使う場合)は、さらに広い範囲の別モジュールを選択できます。
ソフトウェアの立ち上げ
micro:bit とは異なり、あなたのデバイスにはあらかじめ書き込み済みのソフトウェアは入っていません。どちらの MCU にもソフトウェアは入っていないため、デバッガーを使うか、基板の製造業者に書き込みを依頼する必要があります。
KL26 ソフトウェア
インターフェイスファームウェアページで説明しているとおり、KL26 にはブートローダーとメインのインターフェイスプログラムを書き込む必要があります。
これらの両方を含む hex ファイル / イメージはここにあります: hex file
これは MKL26 prog とラベル付けされたヘッダーを使って KL26 に書き込んでください。
KL26 書き込みヘッダー
デバッガーがない場合は、nRF51-DK ボードを以下の構成で J-link デバッガーとして使用できます。
デバッガーとして nRF51-DK を使用する
詳細は このページ を参照してください。
nRF51 ソフトウェア
KL26 への書き込みが完了したら、リファレンスデザイン自体の USB インターフェイスを使って、任意の micro:bit hex ファイルをデバイスに書き込めます。
KL26 回路を含めない構成を選んだ場合は、外部プログラマーと nRF51prog ヘッダーを使用できます。
nRF51 prog ヘッダー
設計と BOM
リファレンスデザインのドキュメントは GitHub で公開されており、回路図、BOM、レイアウトがすべて含まれています。
micro:bit reference design GitHub ページ
リファレンスデザインは micro:bit 本体と同じ IC を使用しているため、ドキュメントの重複を避けるために、詳細は micro:bit ハードウェアページ を参照してください。
設計ソフトウェア
リファレンスデザインは、以下で読み込みおよび使用できる形式で提供されています。
現在、この設計は「Altium First」であり、KiCad および Eagle 形式への変換改善に関する支援や専門知識を歓迎します。
Eagle のインポートに経験があり、Altium / Protel のエクスポート版やライブラリが必要な方には提供可能です。詳しくは この GitHub issue を参照してください。
概要
このページでは、micro:bit の回路図と部品表(Bill of Materials)について説明します。これらには、micro:bit の電気的接続と使用されているコンポーネントが示されています。
micro:bit V1.3 および V1.5 の回路図は、BBC の micro:bit hardware repository から入手できます。
micro:bit V2 の回路図は、Micro:bit Educational Foundation の microbit-v2-hardware repository から入手できます。
micro:bit をベースに独自のものを作ろうとしている場合は、無線モジュールをベースにしており、独自のコンポーネントを追加するためのスペースがレイアウト上に用意されている ‘Reference Design’ を使用する方がよいかもしれません。
回路図と BOM
V2 ピンマップ
以下は nRF52833 のピンマップと割り当てです。詳細については、micro:bit V2 の schematic を参照してください。
| nRF52833 上の GPIO | 割り当て | インターフェイス (KL27 / nRF52) | エッジコネクター名 |
|---|---|---|---|
| P0.00 | SPEAKER | KL27_DAC / IF_SPEAKER | |
| P1.05 | COL4 | N | P6 |
| P0.02 | RING0 | N | P0 |
| P0.03 | RING1 | N | P1 |
| P0.04 | RING2 | N | P2 |
| P0.05 | MIC_IN | N | |
| P0.06 | UART_INT_RX* | PTA18 / P0.03 | |
| P1.08 | UART_INT_TX* | PTA19 / P0.02 | |
| P0.08 | I2C_INT_SCL | PTC1 / P0.29 | |
| P0.10 | GPIO1 | N | P8 |
| P0.09 | GPIO2 | N | P9 |
| P0.11 | COL2 | N | P7 |
| P1.02 | GPIO3 | N | P16 |
| P0.19 | ROW5 | N | |
| P0.14 | BTN_A | N | P5 |
| P0.23 | BTN_B | N | P11 |
| P1.04 | FACE_TOUCH | N | |
| P0.16 | I2C_INT_SDA | PTC2 / P0.28 | |
| P0.17 | SCK_EXTERNAL | N | P13 |
| P0.01 | MISO_EXTERNAL | N | P14 |
| P0.13 | MOSI_EXTERNAL | N | P15 |
| P0.20 | RUN_MIC | N | |
| P0.21 | ROW1 | N | |
| P0.22 | ROW2 | N | |
| P0.15 | ROW3 | N | |
| P0.24 | ROW4 | N | |
| P0.25 | COMBINED_SENSOR_INT | PTA1 / P0.09 | |
| P0.26 | I2C_EXT_SCL | N | P19 |
| P1.00 | I2C_EXT_SDA | N | P20 |
| P0.12 | GPIO4 | N | P12 |
| P0.28 | COL1 | N | P4 |
| P0.31 | COL3 | N | P3 |
| P0.30 | COL5 | N | P10 |
*: これらの名前は回路図の命名規則に従っており、対象 MCU ではなくインターフェイスの視点からラベル付けされています。したがって、UART_INT_TX は MCU の RX ピンに対応し、UART_INT_RX は MCU の TX ピンに対応します。
主な機能
以下では、micro:bit 向けのソフトウェアを実装する人、micro:bit とインターフェイスする人、または micro:bit 用の拡張ボードを設計する人にとって有用な、ハードウェアに関するいくつかの詳細を抜粋しています。
LEDS
LED マトリクスは物理的には 5x5 として配置されています。V2 ボードではこれは 5x5 のマトリクスとして実装されていますが、V1 では 9x3 のスキャンマトリクス(つまり 9 列 x 3 行)として実装されています。Row 2 Col 8 と Row 2 Col 9 は使用されていません。
LED マトリクスは、アプリケーションプロセッサのソフトウェアによって生成される高速マルチプレクスで駆動されます。 このソフトウェアは、光センサー機能を実装するために LED の Row ピンと Col ピンも使用するため、ボードのリビジョンによって感度に違いが見られる場合があります。 一部の Column はエッジコネクターに出ているため、追加の GPIO ピンを使用したい場合は、ソフトウェアでディスプレイを無効にする必要があります。
インターフェイス
Interface シートには、KL26V1 / KL27V2.0 / nRF52V2.2 プロセッサが示されています。これは Arm プロセッサを搭載した NXP または Nordic のマイクロコントローラーで、USB コネクター向けの USB プロトコルを実装します。これにより、ドラッグアンドドロップインターフェイスを使用して、アプリケーションプロセッサにコードをロードする方法が提供されます。
このプロセッサ上の USB プロトコルハンドラーは、ドラッグアンドドロップによるコード読み込みインターフェイスを提供するために、Mass Storage Class デバイスを実装しています。また、USB 経由でシリアルポートインターフェイスを使用できるようにする Connected Device Class も提供します。 インターフェイスプロセッサーは、micro:bit のエッジコネクタ上の GPIO ピンには一切接続されていません。
センサー
micro:bit には、加速度計と磁力計を内蔵した複合モーションセンサー IC が 1 つ搭載されています。加速度計は 3 軸の加速度を測定し、磁力計はコンパスとしても磁場検出器としても使用できます。
このデバイスはアプリケーションプロセッサーの I2C バス に接続されており、V1 リビジョンでは、この I2C バスは共有されており、エッジコネクタ上の 2 本のピンにも接続されています。I2C プルアップ抵抗は基板にあらかじめ実装されています。
V2 では、モーションセンサーと KL27 用に、アプリケーションプロセッサーへ向かう共通のオープンドレイン・アクティブローの割り込み信号(COMBINED_SENSOR_INT)があります。どのデバイスもこの信号をアサートできるため、アプリケーションプロセッサーは発生源を特定するために個々のデバイスを問い合わせる必要があります。
磁力計はアプリケーションプロセッサー向けに 1 つのプロセッサー割り込みを生成でき、加速度計は V1 では 2 種類の異なるプロセッサー割り込みを、V2 では 1 つだけ生成できます。
なお、この IC の物理的な向きは、計算において特定の物理的向きを前提としているアプリケーションプロセッサー内のドライバーコードとのバイナリ互換性にとって重要です。
電源
micro:bit への電源供給は、USB、バッテリーコネクタ、エッジコネクタ上の 3V パッドという 3 つの供給元から行えます。
V1 のみ、インターフェイスプロセッサーには、USB 電圧を micro:bit の他の部分へ給電するのに適した 3.3V に降圧するオンチップレギュレーターが内蔵されています。micro:bit V2 には専用のオンボードレギュレーターが搭載されています。
これらのレギュレーターの定格は 120mAV1 / 300mAV2 で、アクセサリーに利用できる電流は 90mAV1 / 190mAV2 です。
USB コネクタ上に現れる可能性のある ESD スパイクや規定範囲外の電圧を抑制するために、TVS デバイスが実装されています。
電源供給元の切り替えには、低 Vf ダイオード(この場合は最大約 0.23V)が使用されています。このダイオードにより、ある供給元から別の供給元への逆給電を防止します。
エッジコネクタ上の 3V パッドから micro:bit に給電する場合は注意が必要です。というのも、そのパッドからの配線は基板上の IC に直接接続されているためです。各 IC が許容できる最大電圧については、該当する IC のデータシートを確認してください。
アプリケーションプロセッサー
メインのアプリケーションプロセッサーは、ランタイムコードとユーザーコードの両方を、単一のバイナリイメージとして実行します。
コードはインターフェイスプロセッサー経由でこのプロセッサーにロードされます。
USB シリアル経由の通信はインターフェイスプロセッサーを介して行われます。
エッジコネクタ 上のすべての GPIO ピンは、このアプリケーションプロセッサーによって制御されます。
すべての Bluetooth 機能は、このプロセッサーにロードされた SoftDevice スタックによって提供されます。
nRF52V2 には、P0.09(NFC1) と P0.10(NFC2) 上に追加の NFC 機能があります。これはデフォルトでは無効ですが、nRF5SDK を使用して設定できます。
エッジコネクタ
エッジコネクタは、micro:bit に接続される外部コンポーネントへの主要なインターフェイスです。
このインターフェイスには、デジタル、アナログ、タッチ、PWM、およびシリアル通信の各種インターフェイスがあります。
P0 P1 P2 および logoV2 には 10MΩ の弱いプルアップ抵抗が実装されており、タッチセンシングモードで使用されます。このモードでは、これらの抵抗が電源への弱いプルアップを提供し、デフォルトで high 入力になります。ユーザーが GND パッドに触れると、ピンは 0V 側へ引き下げられ、low 入力になります。非タッチモードでは、これらのパッドにはソフトウェアでより強い内部プルダウンが有効化されるため、未接続時のデフォルト入力状態は ‘low’ です。
3V パッドと GND パッドの両側にはガードピンが設けられており、ワニ口クリップによる短絡が原因で誤入力が発生し、デバイスの機能が損なわれることを防ぎます。
5 つの丸いリングパッドは、それぞれ表面と裏面の両方が電気的に接続されています。
いくつかのピンには micro:bit で使用するための代替割り当て機能があり、その多くはソフトウェアで無効化して、より多くの汎用 IO ピンとして利用できます。
V2 の基板リビジョンでは、ワニ口クリップやワイヤーなどを接続しやすくするために、切り欠き付きのエッジコネクタを採用しています。これは、エッジコネクタソケットを持つ周辺機器との互換性には影響しません。
寸法
基板の具体的な寸法は次のとおりです:
- 51.60mm(幅) 42.00mm(高さ) 11.65mm(奥行き)
- JST コネクタの基板からの高さ 5.50mm
- ボタンの基板からの高さ 4.55mm
- V2 スピーカーの基板からの高さ 3.00mm
組立図
以下の V2 リビジョンの画像は、Avid が提供する micro:bit V2 組立図 から引用したものです。
micro:bit 組立図 前面
テストポイントマップ
デバイスの背面図は、テストポイントを強調表示し、その目的を説明するように加工されています。
micro:bit 組立図 背面
露出しているテストポイント
| テストポイント | 用途 |
|---|---|
| TP1 | U5 Bootmode - KL27Z の ROM ブートローダーに入るために使用 |
| TP7 | USB D+ |
| TP8 | USB D- |
| TP17 | バッテリーコネクタのピン 1 へのアクセス |
| TP19 | USB コネクタ上の VBUS ラインへのアクセス |
| TP20 | 内部 I2C バスのデバッグ用アクセス - SCL |
| TP21 | 内部 I2C バスのデバッグ用アクセス - SDA |
| TP9 | VREG - 実際には電源用の角丸長方形パッド |
| TP10 | GND - 実際には GND の角丸長方形パッド |
被覆されたテストポイント(テストポイントにアクセスするにはソルダーマスクを除去する必要があります)
| テストポイント | 用途 |
|---|---|
| TP11 | U2_SWDCLK - nRF52833 のデバッグに使用 |
| TP12 | U2_SWDIO - nRF52833 のデバッグに使用 |
| TP4 | U5_SWD_DIO - KL27Z のデバッグに使用 |
| TP3 | U5_SWD_TCLK - KL27Z のデバッグに使用 |
| TP2 | U5_IF_NRST - KL27Z のデバッグに使用 |
| TP6 | GND |
| TP18 | VBUS |
| TP5 | VREG - 追加の VREG。これは TP9 に接続されています |
詳細情報
概要
micro:bit 用のソフトウェアは、主に次の 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 は他の幅広いハードウェアプラットフォーム上でも動作します。
概要
- 目次
DAL/CODAL とも呼ばれる micro:bit ランタイムは、micro:bit 上で動作し、micro:bit の主要なプログラミング言語の大半を支えるソフトウェアです。これを理解することで、micro:bit がどのように動作しているかを理解できるだけでなく、さらに深く micro:bit を掘り下げたい場合や、自分独自の micro:bit ハードウェア拡張向けのサポートソフトウェアを書きたい場合、あるいは micro:bit 上の何かを調整または改善したい場合に、どこから始めればよいかも分かるようになります。
| V2 | V1 |
|---|---|
| ソフトウェアアーキテクチャ図 v1 | ソフトウェアアーキテクチャ図 v2 |
micro:bit 上では、Javascript のような使いやすい言語を利用できるようにするために、いくつもの重要なソフトウェアレイヤーが動作しています。これらの一部、たとえば Arm Mbed や MicroPython は BBC micro:bit プロジェクトが始まる前から存在しており、また micro:bit ランタイムのように、micro:bit のために特別に書かれたものもあります。
Arm Mbed は、Arm Cortex プロセッサを使用するチップ向けにハードウェア抽象化レイヤー (HAL) を提供します。この抽象化レイヤーは、開発者が Nordic チップを含むあらゆる Arm ベースのプロセッサ向けソフトウェアを書くために利用できる、統一されたレイヤーを提供します。これにより、より高水準の環境から利用するための SPI、I2C、serial などの周辺インターフェイスに簡単にアクセスできます。
micro:bit 向けに C/C++ コードを書く場合は、micro:bit ランタイムの使用を強く推奨します。これは C/C++ プログラム向けの使いやすい API を提供し、必要な部分だけを利用できるようにコンポーネント化された形で書かれています(たとえば、MicroBitDisplay だけを使うこともできます)。
micro:bit ランタイムのデバイス抽象化レイヤー (DAL) - V1
micro:bit ランタイムは、Arm Mbed を用いて構築された デバイス抽象化レイヤー (DAL) を提供します。Lancaster University は、学校におけるコンピューターサイエンスの導入を支援する継続的な取り組みの一環として、micro:bit V1 向けにこのランタイムを開発しました。これは高水準言語が利用できる有用な関数群を提供し、C または C++ での micro:bit のプログラミングを容易にします。MakeCode で使う ‘ブロック’ の多くは、DAL が提供する関数を直接呼び出しています。micro:bit ランタイム DAL は C/C++ で書かれており、Arm Mbed HAL を基盤としています。
micro:bit DAL の主要コンポーネントは次のとおりです:
- micro:bit が同時に複数のタスクを実行できるようにするスケジューラ。
- リアクティブなコードを書けるようにする、メッセージバスと呼ばれるイベントシステム。ボタンのクリックから無線でメッセージを受信することまで、micro:bit 上で何かが起きたときにプログラムへ通知できます。
- LED ディスプレイ、センサー、ファイルシステム、無線、Bluetooth プロファイルなど、micro:bit の主要なハードウェアブロックを表すデバイスドライバー。
- メモリ管理の複雑さからプログラムを安全に保つのに役立つマネージド型。もともとは高水準言語で活用するために実装されましたが、C/C++ プログラマにとっても非常に有用であることが分かっています。
より低レベルなハードウェアアクセスを求める開発者は、micro:bit V1 を Mbed HAL を直接使用してプログラムすることもできます。
コンポーネント指向デバイス抽象化レイヤー (CODAL)- V2
コンポーネント指向デバイス抽象化レイヤー (CODAL) は、micro:bit の各ハードウェアコンポーネントをソフトウェアコンポーネントとして抽象化する、DAL ランタイムの発展形です。CODAL は、micro:bit V2 デバイスを含む、さまざまなデバイスとプロセッサをサポートします。最新の micro:bit 向けには、専用の CODAL ターゲットが作成されています:
micro:bit CODAL の主要コンポーネントは次のとおりです:
- 非同期のハードウェアイベントおよびソフトウェアイベントをイベントハンドラに対応付ける仕組みを提供する、統一イベントサブシステム(すべてのコンポーネントに共通);
- リソースロックのプリミティブの必要性を最小限に抑えながら並行性を実現する、非プリエンプティブなファイバースケジューラ。
- マネージド型の基盤を提供する、参照カウントに基づくシンプルなメモリ管理システム。
- マイクロコントローラのハードウェアコンポーネントを高水準のソフトウェアコンポーネントに抽象化するドライバー群。各コンポーネントは C++ クラスで表現されます。
- 物理デバイスを表現する、これらのコンポーネントから構成されたパラメータ化オブジェクトモデル。
(出典: MakeCode and CODAL - 教育向けの直感的で効率的な組み込みシステムプログラミング)
CODAL のビルド
CODAL をビルドするための手順 は現在、micro:bit samples リポジトリにあります。このリポジトリを clone して、source フォルダからサンプルをビルドできます。最終的なリンクは未定であり、変更される可能性があります。
micro:bit ランタイムへの貢献
micro:bit ランタイムは MIT ライセンスのもとで配布されているオープンソースプロジェクトであり、micro:bit コミュニティからの貢献と協力を大いに歓迎しています。micro:bit ランタイムにマージできるものはまだ多くあり、また MakeCode が進化して新機能を追加していく中で、ランタイムに入るものがうまく機能し、教育におけるコーディングに役立つことが証明されれば、それらは高水準言語にも公開できます。
まず、micro:bit ランタイム DAL をビルドできる環境を整える必要があります。Mbed.org を通じて Web ブラウザ内で利用できるオンラインビルド環境、またはダウンロード可能なコンパイラのいずれかを選べます。入門ドキュメント がこの手順を案内します。
機能の要望とバグ報告
機能要望がある場合、または micro:bit ランタイム開発に参加したい場合は、未解決の issue の一覧 を確認し、まだ登録されていなければ新しい issue を作成してください。
DAL でバグを見つけたと思われる場合は、GitHub の DAL リポジトリに新しい issue を登録してください
DAL ソースコード
Arm Mbed (v1 のみ)
Arm Mbed に関する情報は V1 にのみ適用されます。
ハードウェアと低レベルソフトウェア
micro:bit のハードウェアは Mbed HDK をベースとしており、ソフトウェアは Mbed SDK をベースとしています。Mbed プラットフォーム上で動作するプログラムは、必要な周辺機器とメモリが備わっていれば、どれも micro:bit 上で動作します。これは、micro:bit を使用する開発者が、micro:bit で利用できる膨大な コンポーネントライブラリ にすでにアクセスできることを意味します。さらに、micro:bit 上で開発されたものを他の Mbed プラットフォームでも利用できることを意味します。 特に興味深いのは Mbed BLE プロジェクトで、その多くは micro:bit と非常によく似た nRF51 ベースのハードウェア上で開発されました。Mbed の Bluetooth Low Energy Team には、有用なリンクやサンプルが多数あります。
オンライン IDE
Mbed は、micro:bit をプログラムできるオンライン C/C++ IDE も提供しています。これを使い始めるには、Mbed サイトの micro:bit Platform Page を参照してください。そこには入門用の動画があります。
Mbed ソースコードと使用されているバージョン
micro:bit 用の Mbed リポジトリは https://github.com/lancaster-university/mbed-classic です。これは、micro:bit プロジェクトに必要な変更と修正を加えた Mbed OS 2 (classic) のフォークです。これは、オフライン DAL ツールチェーン、Mbed Online Compiler、および microbit.org のオンラインエディター で使用されている Mbed のバージョンです。
micro:bit は、Mbed 5 と互換性のある、十分に実績のある Mbed 2.0 SDK を基盤としていました。現在、micro:bit ランタイムを Mbed 5 に移行する 作業が進められています。
Nordic nRF5 SDK
Nordic チップ向けの Mbed 抽象化レイヤーは、Nordic nRF5 SDK https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK の上に構築されています
特に重要なのは、これに Nordic の Soft Device 110 V1 / Soft Device 113 V2 が含まれていることで、これは micro:bit 用のあらゆる hex ファイルに組み込まれるバイナリオブジェクトであり、無線の制御を管理して、micro:bit が業界標準の Bluetooth Low Energy プロトコルを使用できるようにします。
SoftDevice はユーザーコードと同じ MCU 上で動作し、Mbed BLE API(micro:bit ランタイムも使用しています)を使用すると、呼び出しは SoftDevice に対して行われます。SoftDevice は最優先の割り込みも占有するため、無線を正しく機能させるために必要な場合、ユーザーコードは SoftDevice によってプリエンプトされることがあります。
V1 のみ。micro:bit プログラムはデフォルトで SoftDevice S110 を使用します。これにより、デバイスは GAP Peripheral としてのみ動作できます。Mbed でオフラインコンパイルすることで micro:bit とともに Soft Device S130 を使用することも可能ですが、それはこのドキュメントの範囲外です。
ターゲット MCU とインターフェイス MCU
micro:bit は USB で接続すると USB ディスクとして認識され、ドライバーをインストールしなくてもこのドライブ経由でプログラムできます。これにより、初心者でも使いやすくなっています。さらに、micro:bit 上でどのようなコードを実行していても、あるいはどのようにデバイスをクラッシュさせてしまっても、USB 接続を使っていつでも新しいプログラムを書き込めます。これは、USB 接続、プログラミング、デバッグ専用の別個の「インターフェイスチップ」または「インターフェイス MCU」が micro:bit に搭載されていることで可能になっています。
Interface MCU は、Nordic nRF52833/nRF52820 V2.2x、Freescale KL27 V2.00、または Freescale KL26 V1 です。
開発者が書いたコードが動作し、すべての周辺機器が接続されているチップは「ターゲット MCU」と呼ばれます。これら 2 つのデバイスがどのように接続されているかの詳細については、ハードウェア ページと回路図を参照してください。
Target MCU は、Nordic Semiconductor nRF52833 V2 または Nordic Semiconductor nRF51822 V1 です。
v2 インターフェイス
ターゲット MCU とインターフェイス MCU は、次のインターフェイスで接続されています。
-
ターゲット MCU をプログラムするための Serial Wire Debug(SWD)。
-
2 つのデバイス間でメッセージを送るための UART。実際には、ターゲット MCU からの UART は USB 経由でそのまま PC に渡されます。
-
V2 では、カスタム プロトコル を使用する I2C。
リファレンスデザイン
リファレンスデザイン では、インターフェイス回路が micro:bit のメイン回路から明確に分離されているため、次のことができます。
-
インターフェイス回路なしのボードを構築し、別のデバッガーを使って SWD 経由でそれをプログラムする。
-
インターフェイス回路だけ を備えたボードを構築し、それを使って、自前のインターフェイスチップを搭載するには小さすぎる可能性がある、あなたが作成した他のハードウェアを書き込む。
DAPLink ソフトウェア
このインターフェイスチップでは、Arm Mbed の DAPLink というソフトウェアが動作しています。
このソフトウェアは、特定の用途を持つ 4 つの USB エンドポイントを提供します。
-
MSC - ターゲット MCU のフラッシュメモリをドラッグ&ドロップでプログラムするための USB マスストレージデバイス。
-
CDC - ターゲット MCU から PC へのシリアルパススルー。これは、あなたが書いたコードからのメッセージが PC に届く仕組みです。
-
HID - CMSIS-DAP 準拠のデバッグチャネル。これは、GDB や Keil のような高度なデバッガーを使って、micro:bit 上で何が起きているのか(あるいは起きていないのか!)を理解したい場合に便利です。
-
WebUSB - WebUSB 対応ブラウザー経由でデバイスと通信できるようにします。
DAPLink ソフトウェアとインターフェイスチップは、Arm Mbed HDK の一部です
この表は、デバイスのリビジョンと、出荷時に搭載されていた DAPLink ブートローダーおよびインターフェイスを示しています。
| ボード リビジョン | ブートローダー | インターフェイス | ダウンロード |
|---|---|---|---|
| 1.3 | 0234 | 0234 | 0234 |
| 1.3b | 0234 | 0241 | 0241 |
| 1.5 | 0243 | 0249 | 0249 |
| 2.00 | 0255 | 0255 | 0255 |
| 2.20 | 0256 | 0256 | 0256 |
| 2.21 | 0257 | 0257 | 0257 |
この表は、Foundation によって完全にテストされた、各ボード バージョン向けの最新 DAPLink リリースを示しています。
ベータリリース
DAPLink 0258-beta3
V2.00 および V2.2* 向けのこの DAPLink ベータリリースには、次の改善が含まれています。
- 🚀 書き込みが高速化されました。hex ファイルを
MICROBITドライブにドラッグ&ドロップすると、最大 25% 高速になる場合があります - 🚦 WebUSB 経由で micro:bit をプログラムするときに、USB コネクター横のオレンジ色の LED がときどき点滅しなかった問題を修正しました
- 📋 V2.00 では、データロギングの安定性も向上しています(この改善は V2.2* の工場出荷版リリースにはすでに含まれています)
| ボード リビジョン | インターフェイス | ダウンロード |
|---|---|---|
| 2.00 | 0258-beta3 | V2.00 用 0258-beta3 |
| 2.2* | 0258-beta3 | V2.2* 用 0258-beta3 |
micro:bit の識別方法および DAPLink ファームウェアの更新方法を示した手順は、microbit.org のファームウェアページ にあります。
ファームウェアを更新したら、DETAILS.TXT ファイルに次の行が含まれていれば、このベータバージョンが動作していることを確認できます。
Build ID: v0258-beta3-g0004198b (gcc)
このベータリリースで問題を見つけた場合は、サポート またはこの GitHub Issue トラッカー から報告してください。
そして、何よりも重要なのは、テストしていただきありがとうございます!
DAPLink ブートローダー
micro:bit 上で動作している DAPLink のバージョンは更新できます。これは DAPLink ブートローダーを使用して行います。つまり、実際には micro:bit 向けに DAPLink は 2 回ビルドされます。
bootloader modeは、インターフェース ファームウェアを更新するために使用されます。このモードでは、ドライブ名はMAINTENANCEで、ディスクにドロップされた hex ファイルはインターフェース MCU のフラッシュに書き込まれます。これらのファイルには、DAPLink または同等のイメージが含まれていなければなりません。interface modeは、ターゲット MCU をフラッシュするために使用されます。このモードでは、ドライブ名はMICROBITです。
micro:bit の Web サイトには、ファームウェア バージョンを更新する方法の詳細な手順があります。
信頼できない提供元のファームウェアで micro:bit を更新してはいけません。micro:bit が損傷したり、再フラッシュできなくなったりする可能性があります
MICROBIT ドライブ上のファイル
micro:bit ドライブ上に表示されるフラッシュ ファイル システムは、完全に仮想的なものです。実際のメモリに裏付けられているわけではないため、新しいファイルが書き込まれるとドライブは自動的に取り出されます。ファイルが MICROBIT ドライブにドロップされると、通常の USB メモリ スティックのように記憶メモリに書き込まれるのではなく、ターゲット MCU にストリーミングされます。
ファイル システムには、次の仮想ファイルがあります。
-
DETAILS.TXT: このファイルは、現在インターフェース チップにインストールされている DAPLink のビルドについて示します。DAPLink の後のバージョンでは、より多くの診断情報も含まれます。 -
MICROBIT.HTM: これは、使い始めるのに役立つ microbit.org へのリンクです。 -
MY_DATA.HTM: これは データ ロギング ファイルであり、MICROBIT ドライブに常に存在するとは限りません。
フラッシュ後には、失敗の原因を示す FAIL.TXT ファイルが現れることもあります。
DAPLink ソース内の error.c ファイルは、これらのエラーの意味を診断するのに役立ちます。
また、ナレッジベースには micro:bit のエラー コード の完全な一覧もあります。
ASSERT.TXT ファイルが現れることもあります。これは軽微なエラーが発生した可能性があることを示しますが、DAPLink は回復し、期待どおりに動作できたことを意味します。
UART 接続
Nordic Semiconductor チップのピン数の都合により、インターフェース MCU とターゲット MCU の間では UART の TX および RX ラインのみが接続されています。つまり、ハードウェア フロー制御はできません。そのため、より高いシリアル速度(ボー レート 9600 超)では、micro:bit は送信された文字を取りこぼすことがあります。
HID と CMSIS-DAP
HID エンドポイントは CMSIS-DAP チャネル用です。これは、CMSIS-DAP を使用して Arm Cortex-M マイクロコントローラーのプログラミングとデバッグを行うオープンソースの Python ライブラリである pyOCD を使うのが最も簡単です
WebUSB
WebUSB API は、ブラウザーから USB デバイスと通信できるようにします。
DAPLink ではバージョン 0247 以降でサポートされているため、古い micro:bit をお使いの場合は、DAPLink ファームウェアを更新する必要があります。
この API は現在、Chrome ベースのブラウザー(Android、Chrome OS、Linux、macOS、Windows)で利用可能で、MakeCode Editor と Python Editor でサポートされています。これにより、最初に .hex ファイルを保存する必要なくブラウザーから直接 micro:bit をフラッシュでき、micro:bit とエディターの間でシリアル通信を使用できます。
DAPLink 完全イメージの更新(V2.00 のみ)
これらの手順は、USB ブートローダーとコマンドライン ツールに慣れている場合にのみ使用してください。micro:bit を更新するために、これらを実行する必要が生じることは決してありません。
KL27 内部ブートローダーを使用して、V2 デバイスに完全な DAPLink イメージを書き込むこともできます。これにより、インターフェースとブートローダーの両方が更新されます。
NXP から Bootloader Host Application (blhost) に登録し、ダウンロードする必要があります。/bin フォルダーには、お使いのオペレーティング システム向けの実行ファイルがあります。
ブートローダー モードに入る
このモードに入るには、ボードの電源投入時に TP1 をグラウンドに落とす必要があります。これは KL27 の BOOTMODE ピンです。そのためには、USB ケーブルをデバイスに挿し込む際に、TP1(赤い丸)と任意のグラウンド ポイント(黒い四角のいずれか)をワイヤー(またはペーパー クリップのようなもの)で接続してください。
TP1
ブートローダー CLI ツール
お使いの OS でブートローダー ツールを実行します。これらの手順は CLI に関するものですが、GUI の設定もおおむね同様です。
使用方法:
blhost --help
DAPLink ソフトウェアはブートローダーのフラッシュ領域にフラッシュ保護を有効にしているため、フラッシュの保護解除も行う erase コマンドを使用する必要があります。
blhost -u 0x15a2,0x0073 flash-erase-all-unsecure
次に、micro:bit をコンピューターから取り外して再度接続すると、KL27 は自動的に kinetis ブートローダーに入るはずです。bin ファイルをフラッシュするには:
blhost -u 0x15a2,0x0073 write-memory 0x0 kl27_file.bin
KL27 フラッシュの内容を kl27_flash_dump.bin ファイルに読み出すには:
blhost -u 0x15a2,0x0073 read-memory 0x0 0x40000 kl27_flash_dump.bin
概要
Microsoft MakeCode for micro:bit は、BBC micro:bit でプロジェクトを作成するための、無料のオープンソースプラットフォームです。
ハードウェアの機能やコンピューターサイエンスの基礎に対応する色分けされたブロックをつなげ、ブロック、JavaScript、MakeCode Python の表示を切り替えることができます。デバイスシミュレーターにより、プログラムをダウンロードする前に、実機で何が起こるかを確認できます。
ソース
MakeCode for micro:bit ターゲットのソースコードは、github.com/Microsoft/pxt-microbit で確認できます。
このターゲットは、他のいくつかのリポジトリに依存しています。
- https://github.com/Microsoft/pxt PXT フレームワーク
- https://github.com/Microsoft/pxt-common-packages 各種 MakeCode エディターで共通の API
- https://github.com/lancaster-university/microbit DAL の基本的なラッパー
- https://github.com/lancaster-university/microbit-dal micro:bit DAL
コンパイラ
MakeCode は組み込みコンパイラを使用しており、Download を選択するとプロジェクトを .hex ファイルに変換します。
これには、micro:bit のコーディングにインターネット接続が不要であるという利点があります。makecode.microbit.org のブラウザーエディターは、一度読み込まれるとコンピューターにキャッシュされます。
MakeCode エディターには、ブロックおよび JavaScript API が参照する micro:bit ランタイムのコピーである the DAL/CODAL が含まれています。
Download を押すと、コンパイラがコードを機械可読な hex file format に変換します。
この .hex ファイルが MICROBIT ドライブに書き込まれると、micro:bit 上の KL26/7 インターフェイスプロセッサがそれを nRF アプリケーションプロセッサ内のフラッシュメモリにコピーし、コードが実行されます。
その他の機能
MakeCode はコードの双方向変換をサポートしているため、ブロックとしてコードを書いて、生成されたコードが JavaScript/MakeCode Python でどのように見えるかを確認できます。また、JavaScript/MakeCode Python のコードを書くこともでき、可能な場合は MakeCode がこれを自動的にブロックに変換します。
MakeCode では、独自のブロック型を作成 して、Extension として公開 することもできます。
オフライン
インターネット接続が制限されている、または利用できない環境で使用するために、MakeCode エディターのオフライン版 が提供されています。
ドキュメント
- MakeCode for micro:bit reference には、ブロックの使い方に関する情報と例が掲載されています
- 一般的な開発向けの MakeCode Technical Docs
Extension の作成
このエディターには、GitHub authoring のサポートが組み込まれています。リファレンスドキュメントには、Creating Extensions に関するガイドと、YouTube の動画チュートリアル があります。
チュートリアルの作成
ユーザーは、MakeCode の使い方をシンプルでガイド付きの手順として説明するために、独自のチュートリアルを公開 できます。チュートリアルはサードパーティの Extension もサポートしています。
コミュニティ
参加したり交流したりする方法はさまざまです。
- MakeCode の issue または機能要望 を作成する
- micro:bit 向け MakeCode forum で MakeCode 開発チームに質問する
- Translate MakeCode を手伝って、自分の言語に翻訳する。
概要
MicroPython は、micro:bit のようなデバイス向けに作られた、広く使われている Python プログラミング言語のバージョンです。これは自由ソフトウェアであり、MicroPython の開発、保守、文書化は、国際的なボランティアチームによって行われています。
micro:bit で MicroPython を使う方法はたくさんあります。次のものを利用できます。
- ブラウザベースの Python Editor。
- オフラインの Mu editor
- 普段使っているエディターで Python ファイルを作成し、コマンドラインツール群を使ってデバイスとやり取りする方法(上級ユーザー向けのみ)。
- Web サイトに掲載されている サードパーティのエディター のいずれか。
MicroPython ツール
- uFlash BBC micro:bit に Python スクリプトと MicroPython ランタイムを書き込むためのユーティリティです。このユーティリティ名は「micro-flash」と発音します。 ;-)
これには 2 つの機能があります。
- hex ファイルをプログラムから作成し、それを BBC micro:bit に書き込むための関数ライブラリ。
- Python スクリプトを BBC micro:bit に書き込む uflash というコマンドラインユーティリティ。
- microFS BBC micro:bit 上の MicroPython が提供する制限付きファイルシステムを操作するための、シンプルなコマンドラインツールおよびモジュールです。
最後に、micro:bit での MicroPython の優れたチュートリアル もあります。
MicroPython とは何ですか?
MicroPython は他のプログラミング言語と同じくらい学びやすい一方で、いくつかの重要な点でそれらとは異なります。
-
MicroPython は Python 3 の完全な再実装です。これには、他のどの言語にも見られない高度な機能が含まれています。基本的なデータ型(文字列、整数、浮動小数点数、ブール値)、データ構造(リスト、辞書、集合)、クラス、例外処理、ジェネレーター、リスト内包表記などです。
-
MicroPython は完全に micro:bit 自体の上で動作します。コンパイラーは不要です。
-
MicroPython は(Python と同様に)動的言語であるため、デバイスを対話的に扱うことができます。Python コードを入力すると、REPL 機能を使ったライブコーディングセッションで、デバイスが即座に応答します。
-
MicroPython には多くの独自機能があります。強力な音楽プログラミング言語、音声合成機能、組み込みの画像と音楽、ローカルファイルシステム、さらに接続されたデバイスとつながるための幅広い方法(I2C、NeoPixel、SPI、UART)があります。
V1 Bluetooth スタックは、メモリ制約のため MicroPython 内では有効になっていません。ただし MicroPython は、独自のシンプルでありながら強力な radio モジュールで Bluetooth 無線ハードウェアを利用します。radio モジュールのプロトコルは Bluetooth よりもはるかに初心者にやさしく、それでいて効率的かつ効果的な micro:bit デバイスの無線ネットワークをユーザーが作成できるようにします。概念的には、トランシーバーと同じように動作します。あるチャンネルで送信している人の内容は、同じチャンネルで受信している人なら誰でも聞くことができます(しかも選べるチャンネルはたくさんあります)。それだけです!
最後に、そしておそらく最も重要な点として、MicroPython を学ぶことは、Python の使い方を学ぶことでもあります。Python は世界で最も人気のあるプロ向けプログラミング言語の 1 つです。YouTube、Google、Facebook、Instagram、DropBox、そしてその他多数のオンラインサービスを使うとき、あなたは気づかないうちに 毎日 Python を利用しています。 こうしたスキルには価値があります。Python プログラマーには需要があります。
MicroPython ソフトウェア
MicroPython 自体は C++ で書かれています。MicroPython の「ランタイム」は、一連のオフラインツールを使ってビルドされます。このビルドプロセスの出力は、完全な MicroPython 言語を含む .hex ファイルです。上で説明したエディターは、このファイルとあなたのコードを組み合わせて、デバイスにコピーするファイルを生成します。
エディターベースのコードを空にしておくだけで、ランタイムの .hex ファイルだけを任意の micro:bit に書き込めます。
この方法で MicroPython が micro:bit に読み込まれると、当然ながら、それに関連付けられたユーザープログラムはありません。しかし、ターミナルプログラムを使って USB シリアルポート経由で micro:bit に接続できます(または Mu editor 内で REPL ボタンを押して同じことを行えます)。すると MicroPython とライブで対話できます。たとえば display.show("Hello") と入力すると、RETURN を押した瞬間に "hello" というメッセージが画面上をスクロールします。
さらに興味深いことに、デバイスにコピーした .hex ファイルにあなたのコードが含まれている場合でも、REPL で接続してプログラムと対話することは可能です。これはデバッグ目的で非常に便利です。
MicroPython へのユーザーアプリケーションの追加
Web ホスト版エディターとオフラインエディター(Mu)は、どちらもこの MicroPython .hex ファイルのコピーをプレーンテキストファイルとして内部に持っています。
Python アプリケーションを書くと、Web ホスト版エディターとオフラインエディター Mu は、micro:bit にコピーするための変更済み .hex ファイルを作成します。 この変更済みファイルには 3 つのものが含まれています
- ベースとなる MicroPython .hex コードファイルの同一コピー。
- ある領域を MicroPython スクリプトとして示す小さなヘッダー(その後にスクリプト長がバイト単位で続きます)。
- コメントやあらゆる空白を含めた、あなたの Python プログラムの完全なコピー。
その結果、Mu と uflash コマンドは、.hex ファイルからあなたの Python コードを取り出すことができます(ソースコードの保存を忘れていた場合でも)。
.micro:bit に .hex ファイルを書き込む(つまりコピーする)と、micro:bit は再起動します。 MicroPython は特別なメモリアドレスであなたのスクリプトを探します。スクリプトが見つかると、それを実行しようとします。あなたのプログラムは、何かすることがある間は実行され続けるため、プログラムがループしている間は動き続けるか、エラーが発生するまで動作します(その時点でプログラムは停止し、デバイス上に役立つエラーメッセージをスクロール表示します)。
MicroPython はコンパイル型ですか、それともインタープリタ型ですか? 両方です!
コンパイルとは、コードをコンピューターが理解できる命令へ変換することです。 その結果、これらの命令は非常に高速に評価されます。インタープリテーションとは、コードがコンピューター上で直接実行されるのではなく、別の(解釈する)プログラムによって実行されることです。インタープリテーションの利点は柔軟性にあります。プログラムの実行中にインタープリターと対話し、内容を変更できます。 実際、REPL を使ってライブコーディングしているときにあなたが行っているのはまさにこれです。ただし、解釈のプロセスがあるため、インタープリタ型コードはコンパイル済みコードより遅くなります。
MicroPython は、あなたのプログラムを実行するために、コンパイルとインタープリテーションの技法を組み合わせて使います。仕組みは次のとおりです。
MicroPython がスクリプトを見ると、スクリプトの各行を解析します。最終的に得られるのは、あなたのプログラムがどのように動作するかを表すようにグループ化された、メモリ内のトークンの集合です。これは 抽象構文木(AST) と呼ばれます。
AST は、Python バイトコード と呼ばれる簡潔な命令集合にコンパイルされます。バイトコード命令は CPU のアセンブリ言語命令に似ていますが、実際のコンピューターハードウェアではなく、仮想マシン を対象としています。
Python バイトコードは Python 仮想マシンに渡されて実行され、こうしてあなたのプログラムが動作します。
以上のことはすべて、一瞬のうちに起こります。 MicroPython に組み込まれている Python 仮想マシン自体も、C++ コードからコンパイルされています。これは Python バイトコードを読み取り、1 つずつ解釈し、それぞれが固有の目的を果たすように、より低レベルの C++ 関数を呼び出します。バイトコードインタープリターを使用することで、MicroPython は独自の仮想命令セットを持つ仮想マシンを実装しています。 これが仮想であるのは、これらの命令がハードウェアに「組み込まれている」のではなく、ソフトウェアで実装されているためです。これにより、MicroPython は異なるプロセッサを持つさまざまなコンピューターシステムへ容易に「移植」できます。
コードエディターとツール
Python in Education のウェブサイトには、多数の micro:bit 関連リソース とオンラインエディターに加え、教育における Python に関する一般的なリソースも掲載されています。
ウェブサイトから Mu をダウンロード でき、その開発に参加 することもできます。さらに、ブラウザベースのエディターは オープンソースで、コミュニティによってメンテナンスされています。
2 つの Python モジュールが、micro:bit への書き込み と ファイルシステムとのやり取り のためのコードおよびコマンドラインコマンドを提供します。
コミュニティの貢献
国際的な Python コミュニティの多くの人々が、MicroPython / BBC micro:bit World Tour を通じて自由に利用できるリソースを提供しています。
教育リソース
microbit.org では、さまざまな Python 関連カリキュラムを提供しています。
NCCE key-stage 3 Physical computing には、micro:bit を使って Python を教えるための KS3 レベルのカリキュラムが含まれています。
Grok Learning は、オンラインの MicroPython コードエディター、Blockly ビジュアルプログラミング、完全な micro:bit シミュレーター、カリキュラムに沿った教材、自動採点される問題を提供しています。
ドキュメント
開発者向けのチュートリアルと API ドキュメントは、こちら で参照できます。
開発チームへの issue の登録
ソースコード
その他のリンク
-
すべての開発活動は、Python Software Foundation の 行動規範 の対象です。
-
Python Software Foundation は、より広い Python コミュニティを代表し、支援し、調整しています。
-
Python スクリプトに アセンブリ言語を埋め込む方法 を学びましょう(この機能は micro:bit 上の MicroPython で有効になっています)。
-
Pycomic の micro:bit image maker を使うと、ドキュメントで使用する画像を作成できます。
-
多数の MicroPython / BBC micro:bit の動画は、この YouTube プレイリスト で見つけることができます。
-
このプロジェクトへの関与に関する Python Software Foundation の説明は、このブログ記事 で読むことができます。
-
このプロジェクトの貢献者の 1 人が、2016 年の欧州 Python プログラミングカンファレンス(EuroPython)で 基調講演を行いました。
-
micro:bit と MicroPython に関する CAS Chat は、より大きなプロジェクトについての興味深い視点を提供します。
-
CAS.TV MicroPython デモ メディアオフセット 23:53
概要
Python Editor は、BBC micro:bit 向けの MicroPython プロジェクトを作成するための、無料のオープンソースのブラウザベースのコーディング環境です。
ドキュメント
エディターを使用するには:
- エディター自体の リファレンス、アイデア、および API タブ
- ユーザーガイド
- MicroPython リファレンス では、API の使用に関する情報と例を提供しています
エディターを開発する場合、またはその仕組みを理解するには:
再利用可能なソフトウェアコンポーネント
micro:bit MicroPython simulator は、ご自身のソフトウェアプロジェクトに組み込める独立したコンポーネントです。
micro:bit connection npm パッケージは、WebUSB 経由で micro:bit に接続し、書き込むために使用されます。
ユーザーの Python コードを保存する MicroPython ファイルシステムは、microbit-fs npm パッケージで操作できます。
以前のバージョン
micro:bit Python Editor (V2) は、https://python.microbit.org/v/2 で引き続き利用でき、ソースコードは https://github.com/bbcmicrobit/PythonEditor にあります。
コミュニティ
- Python Editor の issue または機能リクエストを作成する
- ご自身の言語への Python Editor の翻訳 にご協力ください。
概要
bitio(「bitty-o」と発音)は、Python 用の micro:bit I/O ライブラリです。これにより、PC/Mac/Linux/Raspberry Pi 上で Python のコードを実行し、micro:bit と直接やり取りできます。Mac、PC、Raspberry Pi、Linux 上の Python 2 と Python 3 の両方で動作します。
なぜ bitio を使うのですか?
このライブラリは、micro:bit を他のプログラムの入力デバイスまたは出力デバイスとして使いたい場合に便利です。たとえば、Minecraft で使えます。micro:bit を傾けると、Minecraft の世界で何かが起こります。ただし、用途はそれだけに限りません。より大きなコンピューター上で動作する Python プログラムの中で、micro:bit の入出力デバイスを使いたいあらゆる場面で利用できます。
はじめに
プロジェクトの README.md にある手順に従ってください
プロジェクト
README にはさまざまなプロジェクトへのリンクがありますが、より技術的なものをいくつか挙げると、次のようなものがあります。
-
Sean M. Tracey は、bitio 用の Node Red ラッパー を作成しています
-
Giles Booth は、micro:bit で操作するインターネットラジオ を作成しました
ヘルプ
問題がある場合やアドバイスが必要な場合は、bitio Github Repo を参照してください
Hex ファイル
.hex ファイルは intel-hex 形式 です。Intel hex はデータのレコードで構成されており、各レコードの先頭にはそのデータを格納するメモリ上のアドレスが含まれます。すべてのデータは hex-ascii でエンコードされています。すべての行は : 文字で始まります。すべての行は、データの整合性を検証するために使用できるチェックサムバイトで終わります。
micro:bit の .hex ファイルは通常、メモリ内の同じ固定位置へのデータ書き込みから始まるため、ツールチェーンによっては、ファイルの最初の行が次のように始まることが予想されます。
:020000040000FA
Universal Hex ファイル
最新のボードリビジョンでは、プロセッサバリアント間の互換性を実現する、Intel-Hex 形式のスーパーセットが導入されています。Universal Hex は、micro:bit V1 と micro:bit V2 の両方のバイナリデータを含むファイルであり、DAPLink が処理して、その micro:bit ボードに関連するデータのみをメモリに書き込める形式になっています。
Universal Hex の hex ファイルは、V1 または V2 のボードで動作します。 この形式を扱っていることを示す明確な目安は、コンパイル済みの .hex ファイルのサイズが約 700Kb ではなく約 1.8Mb になることです。
この形式と、それに関連する詳細な Universal Hex 形式の仕様 を実装するために、Universal Hex JavaScript Library が作成されています。
Universal Hex Creator
すべての micro:bit バリアントをサポートする .hex ファイルを簡単に作成できるように、Universal Hex Creator ツールを作成しました。
このツールは、Universal Hex JavaScript Library をベースにしています。
デバイス間の互換性
Universal Hex 形式は、ボードバリアント間をまたいで利用する際に、ユーザーにとって最良の体験を確保できるように開発されています。V2 ボード上で V1 専用の .hex が検出されるとエラーになりますが、V1 上では V2 専用の hex は何も通知せずに失敗します。これはユーザーにとって非常にわかりにくいため、避けるべきです。
両方のボードをサポートできない場合もあります。たとえば、V2 ボードバリアントのみを対象に設計されたアクセサリなどです。このような場合、どのボードバリアントに hex ファイルを書き込む際にも最良のユーザー体験を確保するために、そのファイルにはボード非互換であることをユーザーに示すエラーメッセージを常に含めるべきです。
V2 専用の hex と組み合わせることで、V2 ボードでは動作する一方、V1 で使用した場合はエラーになる Hex を生成できる スタンドアロンエラー hex を作成しました。
この例は、ユーザーにとって最悪、最良、および許容可能な(V1 のサポートが不可能な場合の)ケースを示しています。最良のケースは、すべてのボードバリアントをサポートする Universal Hex を提供することです。 Universal Hex エラー 1
これらの例は、Universal Hex を作成するプロセスを示しています。V1 の hex と V2 の hex を組み合わせて Universal Hex を生成できます。V2 ボードしかサポートできない場合は、スタンドアロンエラーを V2 の hex と組み合わせることで、V1 ボード上でサイレントに失敗するのではなく、エラーを出して失敗する hex を生成できます。
| Universal Hex 形式 | V2 専用 Hex 形式 |
|---|---|
| Universal Hex エラー 2 | Universal Hex エラー 3 |
両方のボードバリアント向けの .hex ファイルをビルドする場合は、DALV1 と CODALV2 に対応するそれぞれのツールチェーンを使用する必要があります。詳しくは micro:bit runtime を参照してください。
Micropython
最新情報については、Micropython Hex ファイルリファレンス を参照してください。
MicroPython のビルドでは、firmware.hex イメージ(MicroPython の事前コンパイル済みイメージ)を使用し、その末尾に、既知のアドレスにある固定の 8K 領域としてユーザーのスクリプトを追加します。MicroPython が micro:bit 上で実行を開始すると、この固定位置にあるシグネチャを探し、それを使ってスクリプトを実行するか、直接 REPL プロンプトに入るかを判断します。
Microsoft MakeCode Editor
MakeCode Editor によって生成された Hex ファイルには、.hex ファイル内に埋め込みメタデータが含まれています。これは、スクリプトに関するさまざまなデータとソースコードプログラムを含む JSON エンコードされた blob です。これは圧縮されている場合があり、micro:bit のフラッシュメモリ内に格納されます(ただし、フラッシュメモリに空きがある場合に限ります)。ただし、常に .hex ファイル内には含まれています。この埋め込まれたソースコードプログラムにより、生成元のエディターに .hex ファイルをドラッグアンドドロップすると、そのソースプログラムを再び復元できます。
Hex ファイルの読み出し
現在 micro:bit 上にある .hex ファイルを読み出したい 場合は、uBitTool を使用できます。
Universal Hex Creator を使用すると、micro:bit V1 デバイス用に作成された hex ファイルと V2 デバイス用に作成された hex ファイルを結合し、micro:bit のすべてのリビジョンと互換性のある Universal Hex ファイルを生成できます。
DAPLink は Universal Hex を処理し、該当するボードリビジョン、つまり V1 または V2 にのみデータを書き込みます。詳細については、Hex 形式、Universal Hex Creator ツールのベースとなっている Javascript/Typescript ライブラリ、および関連する Universal Hex 仕様 をご覧ください。
この補助的なオンラインツールを使用すると、Universal Hex ファイルを個々の Intel Hex コンポーネントに分割できます: Universal Hex Splitter
クロスデバイス互換性 をサポートするため、このツールで V2 専用 hex と組み合わせて使用できる スタンドアロンのエラー hex を作成しました。これにより、V2 ボードで動作し、V1 で使用した場合には "not compatible" エラーを表示する Universal Hex を生成できます。
概要
公式にサポートされているエディターである MakeCode および Python 以外にも、micro:bit をサポートするさまざまなプログラミング言語があります。
このリソースは、それらのプログラミング言語の一覧とドキュメントへのリンク、およびサンプルプログラムをまとめることを目的としています。
投稿方法
新しい言語をこのページに追加するには、Github でページを編集してください。言語が掲載されるためには、実装がディスプレイにハートを表示できる程度に十分である必要があります。
追加する際は、以下のテンプレートを使用してください。
言語名
micro:bit ハート
ディスプレイにハートを表示するサンプルコード
その他の言語
Ada
micro:bit ハート
with MicroBit.Display;
procedure Main is
begin
loop
MicroBit.Display.Display ("<3");
end loop;
end Main;
Rust
プロジェクトホームページ: Discover Microcontrollers Using Rust
サンプル:
micro:bit ハート
#![deny(unsafe_code)] #![no_main] #![no_std] use cortex_m_rt::entry; use rtt_target::rtt_init_print; use panic_rtt_target as _; use microbit::{ board::Board, display::blocking::Display, hal::{prelude::*, Timer}, }; #[entry] fn main() -> ! { rtt_init_print!(); let board = Board::take().unwrap(); let mut timer = Timer::new(board.TIMER0); let mut display = Display::new(board.display_pins); let heart = [ [0, 1, 0, 1, 0], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 0], [0, 0, 1, 0, 0], ]; loop { // 1000ms ハートを表示 display.show(&mut timer, heart, 1000); display.clear(); timer.delay_ms(1000_u32); } }
アクセサリ一覧
利用可能なアクセサリの一覧は、micro:bit のWebサイトで管理されています。
エッジコネクタの使用
micro:bit のカードエッジコネクタは、一般に「エッジコネクタ」または「ピン」と呼ばれ、標準的な 1.27mm、2x40 のエッジコネクタソケットに対応しています。
可能であれば、アクセサリの設計ではこのソケットを採用し、ユーザーが micro:bit ボードを簡単に差し込み、取り外せるようにするべきです。
micro:bit から取り出せる電流には制限があります。アクセサリは、micro:bit を損傷しないこと、また micro:bit によって損傷を受けないことを確実にするよう、慎重に設計しなければなりません。
V2 リビジョン
V2 ボードリビジョンのエッジコネクタは、V1 のエッジコネクタと後方互換性がありますが、追加の専用ピンを備えています。
バッテリーパッド
micro:bit の背面には、2 つの角丸長方形パッドがあります。これにより、JST コネクタ以外の機構でバッテリーホルダーを接続できます。
2 つの角丸長方形パッドの画像
上側のパッドは 0V または GND で、下側のパッドは 3V です。
V2 リビジョン
V2 ボードリビジョンでは、3V の角丸長方形パッドはエッジコネクタ上の 3V リングに接続されています。
- 角丸長方形パッドを使用するアクセサリを作る場合、ボードが USB、バッテリー、またはエッジコネクタから給電されているときの逆充電から保護しなければなりません。
- アクセサリを作る場合、これらはエッジコネクタの電源アーキテクチャと整合しているため、角丸長方形パッドから電源を取得できるようになりました。
スピーカーが追加されたため、角丸長方形パッドを使って micro:bit に電源を供給する既存のアクセサリは、装着できなくなります。
クリエイティブ・コモンズ 表示-非営利-継承 4.0 国際
Creative Commons Corporation(以下「Creative Commons」)は法律事務所ではなく、法的サービスまたは法的助言を提供しません。Creative Commons のパブリック・ライセンスの頒布は、弁護士・依頼者関係その他の関係を成立させるものではありません。Creative Commons は、そのライセンスおよび関連情報を「現状有姿」で提供します。Creative Commons は、そのライセンス、その条項に基づいてライセンスされるいかなる資料、または関連情報についても、いかなる保証も行いません。Creative Commons は、その使用に起因する損害について、可能な限り最大限に、いかなる責任も負いません。
クリエイティブ・コモンズのパブリック・ライセンスの利用
Creative Commons のパブリック・ライセンスは、作者その他の権利者が、著作権および以下のパブリック・ライセンスで特定される一定のその他の権利の対象となる原著作物その他の資料を共有するために使用できる、標準的な条項の一式を提供します。以下の留意事項は、情報提供のみを目的とするものであり、網羅的ではなく、当社のライセンスの一部を構成するものではありません。
-
許諾者のための留意事項: 当社のパブリック・ライセンスは、著作権および一定のその他の権利によって制限される方法で資料を利用する許可を公衆に与える権限を有する者による利用を意図しています。当社のライセンスは撤回不能です。許諾者は、選択したライセンスを適用する前に、そのライセンスの条項を読み、理解すべきです。また、当社のライセンスを適用する前に、公衆が期待どおりにその資料を再利用できるように、必要なすべての権利を確保すべきです。許諾者は、ライセンスの対象とならない資料を明確に表示すべきです。これには、他の CC ライセンスの資料、または著作権の例外もしくは制限の下で使用される資料が含まれます。許諾者に関するその他の留意事項。
-
公衆のための留意事項: 当社のパブリック・ライセンスのいずれかを利用することにより、許諾者は、特定の条項に基づいてライセンス対象物を利用する許可を公衆に与えます。何らかの理由で許諾者の許可が不要である場合(たとえば、著作権に適用される例外または制限がある場合)、その利用はライセンスによって規律されません。当社のライセンスは、許諾者が付与する権限を有する著作権および一定のその他の権利に基づく許可のみを与えます。ライセンス対象物の利用は、他者がその資料について著作権その他の権利を有していることを含め、他の理由により依然として制限される場合があります。許諾者は、すべての変更に印を付すことまたは記述することを求めるなど、特別な要請を行うことがあります。当社のライセンスで要求されるものではありませんが、合理的な範囲でそれらの要請を尊重することが推奨されます。公衆に関するその他の留意事項。
クリエイティブ・コモンズ 表示-非営利-継承 4.0 国際 パブリック・ライセンス
ライセンスされた権利(以下に定義)を行使することにより、あなたは、このクリエイティブ・コモンズ 表示-非営利-継承 4.0 国際 パブリック・ライセンス(以下「パブリック・ライセンス」)の条項に同意し、これに拘束されることを承諾します。このパブリック・ライセンスが契約として解釈され得る限りにおいて、あなたには、これらの条項を受諾することの対価としてライセンスされた権利が付与され、また、許諾者は、これらの条項に基づいてライセンス対象物を利用可能にすることによって許諾者が受ける利益の対価として、あなたにそのような権利を付与します。
第1節 – 定義。
a. 翻案物 とは、著作権およびこれに類似する権利の対象となる資料であって、ライセンス対象物から派生し、またはこれに基づくものであり、かつ、許諾者が保有する著作権およびこれに類似する権利に基づく許可を要する方法で、ライセンス対象物が翻訳、改変、編曲、変形、またはその他の変更をされたものを意味します。本パブリック・ライセンスの目的上、ライセンス対象物が音楽作品、実演、または録音物である場合、ライセンス対象物が動く映像と時間的に同期された関係に置かれるときは、常に翻案物が生成されます。
b. 翻案者のライセンス とは、あなたが、本パブリック・ライセンスの条項に従って、翻案物に対するあなたの寄与について有する著作権およびこれに類似する権利に適用するライセンスを意味します。
c. BY-NC-SA 互換ライセンス とは、creativecommons.org/compatiblelicenses に掲載され、Creative Commons により本パブリック・ライセンスと本質的に同等であるとして承認されたライセンスを意味します。
d. 著作権およびこれに類似する権利 とは、これらの権利がどのように表示または分類されるかにかかわらず、実演、放送、録音物、および独自のデータベース権を含む、著作権と密接に関連する著作権および/または類似の権利を意味します。本パブリック・ライセンスの目的上、第2節(b)(1)-(2) に定める権利は、著作権およびこれに類似する権利には含まれません。
e. 効果的な技術的保護手段 とは、適切な権限がない限り、1996年12月20日に採択された WIPO 著作権条約第11条に基づく義務および/または類似の国際協定に基づく義務を履行する法律の下では回避してはならない措置を意味します。
f. 例外および制限 とは、フェアユース、フェアディーリング、および/または、ライセンス対象物のあなたの利用に適用される、著作権およびこれに類似する権利に対するその他の例外または制限を意味します。
g. ライセンスの要素 とは、Creative Commons パブリック・ライセンスの名称に列挙されるライセンス属性を意味します。本パブリック・ライセンスのライセンスの要素は、表示、非営利、および継承です。
h. ライセンス対象物 とは、許諾者が本パブリック・ライセンスを適用した芸術作品もしくは文学作品、データベース、またはその他の資料を意味します。
i. ライセンスされた権利 とは、本パブリック・ライセンスの条項に従ってあなたに付与される権利であって、ライセンス対象物のあなたの利用に適用され、かつ、許諾者が許諾する権限を有する、すべての著作権およびこれに類似する権利に限定されるものを意味します。
j. 許諾者 とは、本パブリック・ライセンスに基づいて権利を付与する個人または法人等を意味します。
k. 非営利 とは、主として商業的利益または金銭的報酬を得ることを目的とせず、またそれを志向しないことを意味します。本パブリック・ライセンスの目的上、著作権およびこれに類似する権利の対象となる他の資料とライセンス対象物とを、デジタル・ファイル共有またはこれに類似する手段により交換することは、その交換に関連して金銭的報酬の支払いがない限り、非営利です。
l. 共有 とは、複製、公衆への展示、公の実演、頒布、普及、伝達、または輸入など、ライセンスされた権利に基づく許可を必要とするあらゆる手段または過程によって資料を公衆に提供すること、および、公衆の構成員が各自の選択する場所および時にその資料にアクセスできる方法を含め、資料を公衆が利用可能な状態にすることを意味します。 m. 独自のデータベース権 とは、1996年3月11日の欧州議会および理事会のデータベースの法的保護に関する指令96/9/EC(改正および/または後継を含む)に由来する著作権以外の権利、ならびに世界のいかなる場所におけるこれと実質的に同等のその他の権利をいう。
n. あなた とは、このパブリック・ライセンスのもとで許諾された権利を行使する個人または団体をいう。 あなたの はこれに対応する意味を有する。
第2条 – 範囲。
a. ライセンスの付与。
-
このパブリック・ライセンスの条項に従うことを条件として、許諾者はここに、あなたに対し、許諾対象についての許諾された権利を行使するための、全世界的で、ロイヤルティ無料、サブライセンス不可、非独占的、取消不能なライセンスを付与する。許諾対象について、以下を行うことができる。
A. 許諾対象の全部または一部を、非営利目的に限り、複製し、共有すること。ならびに
B. 非営利目的に限り、翻案物を作成し、複製し、共有すること。
-
例外規定および制限。 疑義を避けるために、例外規定および制限があなたの利用に適用される場合、このパブリック・ライセンスは適用されず、あなたはその条項に従う必要はない。
-
期間。 このパブリック・ライセンスの期間は、第6条(a)に定める。
-
媒体およびフォーマット、認められる技術的改変。 許諾者は、現在知られているか、今後作成されるかを問わず、あらゆる媒体およびフォーマットにおいて許諾された権利を行使すること、ならびにそのために必要な技術的改変を行うことを、あなたに許諾する。許諾者は、許諾された権利を行使するために必要な技術的改変をあなたが行うことを禁ずるためのいかなる権利または権限も放棄し、および/またはこれを行使しないことに同意する。これには、効果的な技術的保護手段を回避するために必要な技術的改変を含む。このパブリック・ライセンスの目的上、第2条(a)(4)により許諾された改変を単に行うことのみによっては、翻案物は生じない。
-
下流の受領者。
A. 許諾者からの申出 – 許諾対象。 許諾対象の各受領者は、このパブリック・ライセンスの条項のもとで許諾された権利を行使するための申出を、許諾者から自動的に受ける。
B. 許諾者からの追加の申出 – 翻案物。 あなたから翻案物を受領する各受領者は、あなたが適用する翻案者のライセンスの条件のもとで、翻案物についての許諾された権利を行使するための申出を、許諾者から自動的に受ける。
C. 下流への制限の禁止。 そうすることにより許諾対象のいずれかの受領者による許諾された権利の行使が制限される場合、あなたは、許諾対象に追加的または異なる条項もしくは条件を提示しもしくは課し、または効果的な技術的保護手段を適用してはならない。
-
承認等の不存在。 このパブリック・ライセンスのいかなる規定も、あなた、またはあなたによる許諾対象の利用が、第3条(a)(1)(A)(i)に定めるところにより表示を受けるものとして指定された許諾者またはその他の者と関係があること、またはこれらの者によって後援され、推奨され、もしくは公式の地位を付与されていることを、主張または示唆することを許可するものではなく、そのように解釈されてはならない。
b. その他の権利。
-
同一性保持権などの著作者人格権は、このパブリック・ライセンスのもとでは許諾されない。また、パブリシティ権、プライバシー権、および/またはその他の類似する人格権も許諾されない。ただし、可能な範囲で、許諾者は、あなたが許諾された権利を行使できるようにするために必要な限定的な範囲に限り、許諾者が有するそのような権利を放棄し、および/またはこれを行使しないことに同意するが、それ以外には及ばない。
-
特許権および商標権は、このパブリック・ライセンスのもとでは許諾されない。
-
可能な範囲で、許諾者は、任意の、または放棄可能な法定もしくは強制のライセンス制度のもとで、直接または集中管理団体を通じて、あなたによる許諾された権利の行使についてロイヤルティを徴収するいかなる権利も放棄する。その他すべての場合において、許諾者は、そのようなロイヤルティを徴収するいかなる権利も明示的に留保する。これには、許諾対象が非営利目的以外で使用される場合を含む。
第3条 – ライセンス条件。
あなたによる許諾された権利の行使は、以下の条件に明示的に従うものとする。
a. 表示。
-
あなたが許諾対象を共有する場合(改変された形態を含む)、あなたは以下を行わなければならない。
A. 許諾者が許諾対象とともに以下を提供している場合、これらを保持すること。
i. 許諾者が要求する合理的な方法による(指定されている場合は仮名を含む)、許諾対象の作成者および表示を受けるものとして指定されたその他の者の識別情報。
ii. 著作権表示。
iii. このパブリック・ライセンスに言及する表示。
iv. 保証の否認に言及する表示。
v. 合理的に実行可能な範囲で、許諾対象へのURIまたはハイパーリンク。
B. あなたが許諾対象を改変したかどうかを示し、以前の改変についての表示を保持すること。ならびに
C. 許諾対象がこのパブリック・ライセンスのもとで許諾されていることを示し、このパブリック・ライセンスの本文、またはそのURIもしくはハイパーリンクを含めること。
-
あなたは、第3条(a)(1)の条件を、許諾対象を共有する媒体、手段、および文脈に応じた合理的ないかなる方法によっても満たすことができる。たとえば、必要な情報を含むリソースへのURIまたはハイパーリンクを提供することにより、条件を満たすことが合理的であり得る。
-
許諾者から求められた場合、あなたは、合理的に実行可能な範囲で、第3条(a)(1)(A)により要求される情報のいずれかを削除しなければならない。
b. 継承。
第3条(a)の条件に加え、あなたが作成した翻案物を共有する場合、以下の条件も適用される。
-
あなたが適用する翻案者のライセンスは、同一のライセンス要素を持つ、このバージョンまたはそれ以降のバージョンのCreative Commonsライセンス、またはBY-NC-SA互換ライセンスでなければならない。
-
あなたは、あなたが適用する翻案者のライセンスの本文、またはそのURIもしくはハイパーリンクを含めなければならない。あなたは、この条件を、翻案物を共有する媒体、手段、および文脈に応じた合理的ないかなる方法によっても満たすことができる。
-
あなたは、あなたが適用する翻案者のライセンスのもとで付与された権利の行使を制限するような、追加的または異なる条項もしくは条件を翻案物に提示しもしくは課し、または効果的な技術的保護手段を翻案物に適用してはならない。
第4条 – 独自のデータベース権。
許諾された権利に、あなたによる許諾対象の利用に適用される独自のデータベース権が含まれる場合:
a. 疑義を避けるために、第2条(a)(1)は、非営利目的に限り、データベースの内容の全部または実質的な一部を抽出し、再利用し、複製し、共有する権利をあなたに付与する。
b. あなたが、独自のデータベース権を有するデータベースに、そのデータベース内容の全部または実質的な一部を含める場合、あなたが独自のデータベース権を有するそのデータベース(ただし、その個々の内容物は含まない。)は、第3条(b)の目的上も含め、翻案物となる。ならびに
c. あなたがデータベースの内容の全部または実質的な一部を共有する場合、あなたは第3条(a)の条件に従わなければならない。 疑義を避けるために明記すると、本第4節は、許諾された権利にその他の著作権およびこれに類する権利が含まれる場合における、本パブリック・ライセンスに基づくあなたの義務を補足するものであり、これに置き換わるものではありません。
第5節 ― 保証の否認および責任の制限。
a. 許諾者が別途個別に引き受けている場合を除き、可能な限り、許諾者は許諾対象物を現状有姿かつ提供可能な状態で提供し、明示、黙示、法定その他を問わず、許諾対象物に関していかなる種類の表明または保証も行いません。これには、権原、市場性、特定目的適合性、非侵害、潜在的その他の瑕疵の不存在、正確性、または誤りの有無(それらが既知であるか、発見可能であるかを問いません)に関する保証が含まれますが、これらに限定されません。保証の否認が全部または一部について認められない場合、この否認はあなたに適用されないことがあります。
b. 可能な限り、いかなる場合も、許諾者は、いかなる法理論に基づく場合であっても(過失を含みますが、これに限定されません)、またはその他のいかなる場合であっても、本パブリック・ライセンスまたは許諾対象物の使用から生じる直接的、特別、間接的、付随的、結果的、懲罰的、典型的その他の損失、費用、経費または損害について、たとえ許諾者がそのような損失、費用、経費または損害の可能性について知らされていたとしても、あなたに対して責任を負いません。責任の制限が全部または一部について認められない場合、この制限はあなたに適用されないことがあります。
c. 上記の保証の否認および責任の制限は、可能な限り、すべての責任の完全な否認および放棄に最も近くなるように解釈されるものとします。
第6節 ― 期間および終了。
a. 本パブリック・ライセンスは、ここで許諾される著作権およびこれに類する権利の存続期間中、適用されます。ただし、あなたが本パブリック・ライセンスを遵守しない場合、本パブリック・ライセンスに基づくあなたの権利は自動的に終了します。
b. 第6節(a)に基づいて許諾対象物を使用するあなたの権利が終了した場合、当該権利は次のとおり回復します。
-
違反をあなたが発見してから30日以内に是正したことを条件として、違反が是正された日をもって自動的に回復する場合。あるいは
-
許諾者による明示の復活による場合。
疑義を避けるために明記すると、本第6節(b)は、本パブリック・ライセンスに対するあなたの違反について、許諾者が救済を求めることができる権利に影響を及ぼすものではありません。
c. 疑義を避けるために明記すると、許諾者は、許諾対象物を別個の条件の下で提供することも、またいつでも許諾対象物の配布を停止することもできます。ただし、そのことによって本パブリック・ライセンスは終了しません。
d. 第1節、第5節、第6節、第7節、および第8節は、本パブリック・ライセンスの終了後も存続します。
第7節 ― その他の条件。
a. 許諾者は、あなたから伝達された追加または異なる条件について、明示的に合意しない限り、拘束されません。
b. 許諾対象物に関する取り決め、了解、または合意であって、ここに記載されていないものは、本パブリック・ライセンスの条件とは別個であり、かつ独立したものです。
第8節 ― 解釈。
a. 疑義を避けるために明記すると、本パブリック・ライセンスは、本パブリック・ライセンスに基づく許諾なしに適法に行うことができる許諾対象物の利用を、減少させ、制限し、制約し、または条件を課すものではなく、そのように解釈されてはなりません。
b. 可能な限り、本パブリック・ライセンスのいずれかの規定が執行不能とみなされた場合、その規定は、執行可能にするために必要な最小限度で自動的に修正されるものとします。当該規定を修正できない場合、残りの条件の執行可能性に影響を与えることなく、その規定は本パブリック・ライセンスから分離されるものとします。
c. 本パブリック・ライセンスのいかなる条件も、許諾者が明示的に合意しない限り、放棄されたものとはならず、また、いかなる不遵守についても同意されたものとはなりません。
d. 本パブリック・ライセンスのいかなる内容も、許諾者またはあなたに適用される特権および免除(いずれの法域または当局の法的手続からのものを含みます)を制限するもの、または放棄するものを構成せず、またそのように解釈されるものでもありません。
Creative Commons は、そのパブリック・ライセンスの当事者ではありません。にもかかわらず、Creative Commons は、自らが公開する資料にそのパブリック・ライセンスのいずれかを適用することを選択することができ、その場合には「許諾者」とみなされます。資料が Creative Commons のパブリック・ライセンスの下で共有されていることを示すという限定的な目的、または creativecommons.org/policies で公表されている Creative Commons のポリシーにより別途認められている場合を除き、Creative Commons は、事前の書面による同意なく、「Creative Commons」という商標、または Creative Commons のその他の商標もしくはロゴの使用を許諾しません。これには、そのパブリック・ライセンスの無許可の改変、または許諾対象物の利用に関するその他の取り決め、了解、もしくは合意に関連する使用が含まれますが、これらに限定されません。疑義を避けるために明記すると、この段落はパブリック・ライセンスの一部を構成しません。
Creative Commons への連絡先は creativecommons.org です。