micro:bitの使い方|初心者向けプログラミング入門を徹底解説
micro:bitは、イギリス生まれの小さなコンピュータです。プログラミング学習のために設計されました。パソコンさえあれば、特別なソフトのインストールなしに始められます。本記事では、MakeCodeでの最初の一歩から解説します。ボタン入力、内蔵センサー、無線通信まで、多彩な角度で紹介します。MicroPythonへのステップアップや、Arduinoとの違いまで、初心者の方に向けて段階を踏んでまとめました。
01micro:bitとは|イギリス生まれの教育用コンピュータ
誕生の背景
micro:bitは、イギリスのBBCが中心となって開発した、小型のプログラマブルコンピュータです。micro:bit公式サイトによると、もともとはイギリスの中学生に無償配布する目的で作られました。今では、非営利団体のmicro:bit教育財団のもとで、世界中の教育現場に広がっています。手のひらに収まるサイズながら、多くのセンサーと機能を内蔵しています。
本体でできること

micro:bit本体には、最初から多くの部品が組み込まれています。5×5のLEDマトリックスがあります。文字やアイコンを表示できます。2つの物理ボタン(AボタンとBボタン)があります。加速度センサーと方位センサー(コンパス)もあります。無線通信用のアンテナも内蔵しています。つまり、外部の部品を1つも買わなくても、かなり多くのことを試せる設計になっています。
Arduinoで電子工作を学んできたMさんは、姪のプログラミング学習用にmicro:bitを購入した。届いてすぐ驚いたという。抵抗やジャンパーワイヤを一切使わずに、LEDが光る様子をブラウザ上のブロックだけで再現できたのだ。部品を集める手間がない分、「考え方を学ぶ」ことに集中できる。これがmicro:bitの設計思想なのだと感じたそうだ。
02始め方|インストール不要のMakeCode

ブラウザだけで開発できる
micro:bitの大きな特徴があります。専用ソフトのインストールが、基本的に不要な点です。MakeCodeエディタは、Webブラウザ上で動作します。ブロックを組み合わせる、視覚的なプログラミング環境です。Scratchに触れたことがある方であれば、操作の感覚はすぐに馴染むはずです。
書き込みの流れ
プログラムをmicro:bitに転送する手順も、シンプルです。USBケーブルでパソコンとつなぎます。MakeCode上でプログラムを組みます。「ダウンロード」ボタンを押すと、専用のファイルが作成されます。そのファイルを、micro:bitがパソコン上に表示するドライブへドラッグ&ドロップします。これだけで書き込みが完了します。ドライバーのインストールも、複雑な設定も必要ありません。
03最初のプログラム|LEDに文字を表示する
ブロックを組み立てる
MakeCodeを開くと、最初から簡単なテンプレートが用意されています。「最初だけ」というブロックと、「ずっと」というブロックです。「最初だけ」には、起動時に1回だけ行う処理を入れます。「ずっと」には、繰り返し行う処理を入れます。この考え方は、他の多くのプログラミング環境にも共通しています。
文字を表示するブロック
「基本」カテゴリの中に、「文字列を表示」というブロックがあります。これを「最初だけ」の中に置きます。表示したい文字を入力するだけで完成です。プログラムを実行すると、5×5のLEDが1文字ずつ流れるように光り、文字を表現します。もっとも簡単な「Hello, World」に近い、最初の一歩です。
Pythonで書くとどうなるか
同じ処理を、MicroPythonで書くと次のようになります。7章で詳しく扱いますが、先に雰囲気を見ておきましょう。
from microbit import *
display.scroll("Hello!")
たった2行です。ブロックで組んだ処理が、実はこれだけのコードに対応していることが分かります。
04ボタン入力を使う|AボタンとBボタン

ボタンが押されたときの処理
micro:bitの本体には、AとBという2つのボタンがあります。「入力」カテゴリには、「ボタンAが押されたとき」というブロックがあります。この中に処理を入れれば、ボタンを押すたびに反応するプログラムが作れます。
2つのボタンを組み合わせる
「ボタンA+Bが押されたとき」という、特別なブロックも用意されています。両方同時に押されたときだけ反応する処理です。これを使えば、簡単なメニュー選択のような仕組みも作れます。Aボタンで選択肢を送り、A+Bボタンで決定する、といった操作パターンです。
05内蔵センサーを使う|加速度・コンパス・タッチ
加速度センサーで動きを検知する
micro:bitには、加速度センサーが内蔵されています。本体を振ったり、傾けたりする動きを検知できます。「入力」カテゴリの「振られたとき」というブロックを使いましょう。Arduino記事で紹介したMPU6050に近い動作検知が、配線なしで試せます。
コンパスで方角を調べる
方位センサー(コンパス)も内蔵されています。使用前には、簡単なキャリブレーション(本体を傾けて円を描く操作)が必要です。キャリブレーションが済むと、現在向いている方角を数値で取得できます。簡易的な方位磁針のようなプログラムが作れます。
新しいモデルで増えた機能
比較的新しいモデルのmicro:bitには、機能が追加されています。マイクとスピーカーです。ロゴ部分に触れたことを検知する、タッチセンサーもあります。音に反応するプログラムや、タッチ操作を使ったプログラムも作れるようになりました。お手元のモデルによって使える機能が異なるため、購入時に確認しておくと安心です。
06無線(ラジオ)通信で複数台をつなぐ

ラジオ機能とは
micro:bitには、無線通信用のアンテナが内蔵されています。「ラジオ」というカテゴリのブロックを使うと、複数のmicro:bit同士で、簡単にデータをやり取りできます。難しい通信の設定を、意識する必要はありません。
簡単なメッセージ送受信
「ラジオで数を送信」というブロックがあります。これを1台のmicro:bitに組み込みます。もう1台には、「ラジオで受信したとき」というブロックを組み込みます。送信側でAボタンを押すと、受信側のLEDが光る。そんな簡易的な「無線トランシーバー」を、驚くほど短いコードで作れます。
応用の広がり
この仕組みは、2人用の対戦ゲームや、簡易的なリモコン操作にも応用できます。Arduinoで無線通信を行う場合、Bluetoothモジュールなどを別途用意する必要があります。しかし、micro:bitでは、この機能が最初から本体に組み込まれています。
07MicroPythonでコードを書く
ブロックからコードへ
ブロックでの操作に慣れてきたら、次のステップに進んでみましょう。MicroPythonという、Pythonの軽量版を使う方法です。Python Editor for micro:bitも、ブラウザ上で動作します。特別なインストールは必要ありません。
ボタン入力をPythonで書く
4章で紹介したボタン入力の処理を、MicroPythonで書いてみましょう。
from microbit import *
while True:
if button_a.was_pressed():
display.show(Image.HAPPY)
if button_b.was_pressed():
display.show(Image.SAD)
sleep(100)
while True:という書き方があります。これは、MakeCodeの「ずっと」ブロックに対応しています。if文による条件分岐も登場します。これは、Arduinoのif文とまったく同じ考え方です。すでにC++を学んだ方であれば、驚くほどスムーズに理解できるはずです。
08Arduinoとの違い|どちらを選ぶべきか

設計思想の違い
当サイトでは、これまで多くのArduino記事を紹介してきました。micro:bitとArduinoは、どう違うのでしょうか。もっとも大きな違いがあります。設計の思想です。Arduinoには前提があります。外部の部品と組み合わせることです。拡張性重視の設計と言えます。micro:bitには別の前提があります。本体だけで多くのことを完結できることです。学習重視の設計と言えるでしょう。
| 項目 | micro:bit | Arduino |
|---|---|---|
| 内蔵センサー | 加速度・コンパス・マイクなど豊富 | 基本的になし(外部接続が前提) |
| プログラミング環境 | ブラウザのみで完結(インストール不要) | Arduino IDEのインストールが必要 |
| 無線通信 | 標準で内蔵 | モジュールを別途追加 |
| 外部部品の拡張性 | 限定的(エッジコネクタ経由) | 非常に高い |
| 向いている場面 | プログラミングの考え方を学ぶ第一歩 | 本格的な電子工作・作品作り |
どちらが優れている、というものではありません。プログラミングの楽しさをすぐに体感したいなら、micro:bitです。センサーやモーターを組み合わせた、本格的な作品を作りたいなら、Arduinoが向いています。両方を経験しておくと、それぞれの良さがより深く理解できます。
09実践例:振るとおみくじが出るプログラム

これまでの知識を組み合わせる
ここまで学んだ、LED表示とセンサーの知識を組み合わせてみましょう。本体を振ると、ランダムな絵文字が表示される、簡易的な「おみくじ」プログラムです。
from microbit import *
import random
while True:
if accelerometer.was_gesture("shake"):
result = random.randint(1, 3)
if result == 1:
display.show(Image.HAPPY) # 大吉
elif result == 2:
display.show(Image.MEH) # 中吉
else:
display.show(Image.SAD) # 凶
sleep(1000)
display.clear()
sleep(100)
発展のヒント
このコードに、6章で紹介したラジオ機能を組み合わせてみましょう。友人のmicro:bitに結果を送信する、対戦型のおみくじゲームに発展させられます。1つのアイデアに、別の章で学んだ知識を重ねていく。この積み重ねこそが、プログラミング上達の近道です。
10独自アイデア集|段階別10プロジェクト
ここからは、10個のアイデアを1つずつ、じっくり作り込んでいきます。難易度の低いものから順に並べました。前半は表示とボタンだけで作れます。後半はセンサーや無線機能を使います。それぞれに「仕組みの説明」「実際のコード」「発展のヒント」を添えました。読んで終わりにせず、ぜひ実機に書き込んで動かしてみてください。
1名前が流れる電子名札
どんなものか:自分の名前を、LEDに繰り返し表示する電子名札です。3章で学んだ表示機能だけで作れる、もっとも取り組みやすいプロジェクトです。
仕組み:display.scroll()という命令を使います。文字列を渡すと、1文字ずつ横に流れるように表示してくれます。while True:の中に入れておけば、電源が入っている間、ずっと繰り返し表示され続けます。
from microbit import *
while True:
display.scroll("YOFUKASI")
sleep(500)
発展のヒント:名前のあとに、好きな絵文字を続けて表示してみましょう。display.show(Image.HEART)を追加すれば、名前のあとにハートマークが光ります。学校のクラスや、職場での自己紹介グッズとしても使えます。
2じゃんけんメーカー
どんなものか:Aボタンを押すたびに、グー・チョキ・パーのいずれかがランダムに表示される装置です。4章のボタン入力と、乱数の考え方を組み合わせます。
仕組み:button_a.was_pressed()で、ボタンが押されたかどうかを判定します。押されていたら、random.choice()を使い、3つの選択肢からランダムに1つを選びます。選ばれた結果に応じて、対応する絵や文字を表示します。
from microbit import *
import random
hands = ["G", "C", "P"] # グー・チョキ・パー
while True:
if button_a.was_pressed():
result = random.choice(hands)
display.show(result)
sleep(50)
発展のヒント:アルファベットの代わりに、自作のドット絵を表示してみましょう。グー・チョキ・パーの絵柄なら、より雰囲気が出ます。6章のラジオ機能と組み合わせれば、離れた場所にいる友達と対戦もできます。
3振って出す簡易サイコロ
どんなものか:micro:bitを振ると、1〜6のランダムな数字が表示される、電子サイコロです。ボードゲームで実際のサイコロの代わりとしても使えます。
仕組み:5章で紹介した「振られたとき」の判定を使います。MicroPythonには専用の命令があります。accelerometer.was_gesture("shake")です。これで振る動作を検知できます。振られたタイミングで、1〜6の乱数を生成し、その数字を表示します。
from microbit import *
import random
while True:
if accelerometer.was_gesture("shake"):
number = random.randint(1, 6)
display.show(str(number))
sleep(1000)
sleep(50)
発展のヒント:数字の代わりに、サイコロの目のパターンを自作してみましょう。ドットの配置をImageで作れば、本物のサイコロに近い見た目になります。2個のmicro:bitで、合計値を競うゲームにも発展できます。
4方角ナビゲーター
どんなものか:コンパス機能を使い、北を向いたときだけ矢印が表示される、簡易的な方位ナビです。ハイキングや野外活動のお供にもなります。
仕組み:使用前にcompass.calibrate()でキャリブレーションを行います。画面の指示にしたがって、本体を傾けながら円を描く操作です。キャリブレーションが済むと、方角を取得できます。compass.heading()を使えば、0〜360度の数値で分かります。北(0度)に近いかどうかを判定し、矢印を表示します。
from microbit import *
compass.calibrate()
while True:
heading = compass.heading()
if heading < 20 or heading > 340:
display.show(Image.ARROW_N) # ほぼ北を向いている
else:
display.show(Image.ARROW_E) # それ以外の方角
sleep(200)
発展のヒント:方角の範囲を8方向に細かく分ければ、本格的な電子コンパスになります。目的地の方角をあらかじめ決めておき、その方角を向いたときだけ光る「宝探しゲーム」にも応用できます。
5簡易万歩計
どんなものか:体に取り付けて歩くと、振動を検知して歩数を数える、簡易的な万歩計です。加速度センサーの数値を、直接活用する応用編です。
仕組み:3章のサイコロでは「振られたとき」という完成された判定を使いました。ここでは、一歩踏み出す動きに合わせた変化を、加速度の数値から直接読み取ります。accelerometer.get_strength()で、3軸を合成した加速度の大きさを取得できます。この値が、あらかじめ決めたしきい値を超えたタイミングだけをカウントします。
from microbit import *
steps = 0
threshold = 1300 # 実際に歩いて調整する値
was_over = False
while True:
strength = accelerometer.get_strength()
if strength > threshold and not was_over:
steps += 1
was_over = True
elif strength < threshold:
was_over = False
if button_a.was_pressed():
display.scroll(str(steps))
sleep(50)
発展のヒント:しきい値(threshold)は、体格や歩き方によって最適な値が異なります。実際に身につけて歩きながら、数値を調整していきましょう。この「実測して調整する」という考え方は、Arduinoのセンサー記事でも繰り返し登場した重要な視点です。
62人対戦のリアクションゲーム
どんなものか:2台のmicro:bitを使う対戦ゲームです。ランダムな時間が経過したあと、両方の画面が同時に光ります。早くAボタンを押した方が勝ちです。
仕組み:6章で紹介したラジオ機能を使います。片方のmicro:bitが「親」となり、ランダムな待ち時間のあとに、両方へ「スタート」の合図を無線で送ります。両方が合図を受け取ったら、ボタン入力の待機を始めます。先に押した方が、無線でその結果を伝えます。
from microbit import *
import radio
import random
radio.config(group=42)
radio.on()
# このコードは、2台のmicro:bit両方に書き込む
waiting = False
while True:
if button_a.was_pressed() and not waiting:
display.show(Image.ARROW_E)
sleep(random.randint(1000, 4000))
display.show(Image.YES)
radio.send("go")
waiting = True
message = radio.receive()
if message == "go":
display.show(Image.YES)
waiting = True
if waiting and button_a.was_pressed():
display.scroll("WIN")
radio.send("win")
waiting = False
message2 = radio.receive()
if message2 == "win":
display.scroll("LOSE")
waiting = False
sleep(20)
発展のヒント:このコードは、まず動く最小構成です。慣れてきたら、勝敗を記録する得点機能や、3本先取のルールなどを追加してみましょう。友人と一緒に遊びながら改良していくと、モチベーションも続きやすくなります。
7ボタンで設定できるキッチンタイマー
どんなものか:Aボタンを押すたびに設定時間が増え、Bボタンでカウントダウンを開始する、簡易キッチンタイマーです。
仕組み:micro:bitには、起動してからの経過時間をミリ秒で返すrunning_time()という命令があります。カウントダウン開始時の時刻を記録しておき、現在の経過時間との差を計算すれば、残り時間を割り出せます。時間が来たら、音を鳴らして知らせます。
from microbit import *
import music
minutes = 1
while True:
if button_a.was_pressed():
minutes += 1
display.scroll(str(minutes))
if button_b.was_pressed():
start_time = running_time()
target = minutes * 60 * 1000 # ミリ秒に変換
while running_time() - start_time < target:
display.show(Image.CLOCK1)
sleep(500)
music.play(music.BA_DING)
display.scroll("DONE")
minutes = 1
sleep(50)
発展のヒント:分単位ではなく、10秒単位で細かく調整できるようにすると、より実用的なタイマーになります。時計の絵柄を1秒ごとに切り替えれば、カウントダウン中のアニメーションも作れます。
8置き忘れ防止の簡易警報デバイス
どんなものか:カバンなどに入れておき、本体が大きく動かされると警告音が鳴る、簡易的な防犯・置き忘れ防止アラームです。
仕組み:Bボタンで「警戒モード」を開始します。開始時点の姿勢を基準として記録しておき、そこから一定以上の変化(振動や向きの変化)を検知したら、アラームを鳴らします。Aボタンで警戒モードを解除できるようにしておくと、誤作動時にも安心です。
from microbit import *
import music
armed = False
while True:
if button_b.was_pressed():
armed = True
display.show(Image.YES)
if button_a.was_pressed():
armed = False
display.clear()
if armed:
strength = accelerometer.get_strength()
if strength > 1500: # 実際に動かして調整する値
music.play(music.WAWAWAWAA)
display.show(Image.SKULL)
sleep(50)
発展のヒント:5章の万歩計と同じく、しきい値の調整が肝心です。バッグの中に入れる場合と、机の上に置く場合とでは、適切な数値が変わってきます。電池ボックスをつなげば、パソコンから離れた場所でも動かせます。
92台間のモールス信号通信機
どんなものか:Aボタンの「短押し」と「長押し」を検知する通信機です。モールス信号の「トン」「ツー」のように、もう1台のmicro:bitへ無線で伝えます。
仕組み:ボタンが押された瞬間の時刻と、離された瞬間の時刻を記録します。その差が短ければ「短押し」、長ければ「長押し」と判定します。判定結果を、6章のラジオ機能でもう1台に送信します。受け取った側は、届いた内容に応じて、短い点滅か長い点滅かを表示します。
from microbit import *
import radio
radio.config(group=7)
radio.on()
pressed_time = 0
while True:
if button_a.is_pressed() and pressed_time == 0:
pressed_time = running_time()
if button_a.was_pressed() == False and pressed_time != 0:
duration = running_time() - pressed_time
if duration < 300:
radio.send("short")
else:
radio.send("long")
pressed_time = 0
message = radio.receive()
if message == "short":
display.show(Image.SQUARE_SMALL)
sleep(200)
display.clear()
if message == "long":
display.show(Image.SQUARE)
sleep(500)
display.clear()
sleep(20)
発展のヒント:「短押し・長押し」の組み合わせに、あらかじめ意味を割り当てておけば、簡単な符号によるメッセージ交換ができます。実際のモールス信号表を参考に、SOS(短短短・長長長・短短短)を送る練習をしてみるのもおすすめです。
10ロゴタッチ式のあいこ判定機
どんなものか:本体前面のロゴ部分に触れた回数を競う、タッチ操作を使ったミニゲームです。マイク・スピーカー・タッチロゴが搭載された、比較的新しいモデルで動作します。
仕組み:pin_logo.is_touched()という命令で、ロゴに触れているかどうかを判定できます。Bボタンでゲームを開始し、一定時間内に何回タッチできたかを数えます。制限時間が来たら、その回数を表示します。
from microbit import *
while True:
if button_b.was_pressed():
count = 0
start_time = running_time()
was_touched = False
while running_time() - start_time < 5000: # 5秒間の挑戦
touched = pin_logo.is_touched()
if touched and not was_touched:
count += 1
was_touched = touched
display.show(Image.HEART if touched else Image.HEART_SMALL)
display.scroll(str(count))
sleep(50)
発展のヒント:2台のmicro:bitで同時にスタートし、5秒間のタッチ回数を競えば、簡単な対戦ゲームになります。お手元のモデルにタッチロゴがない場合もあるでしょう。その場合は、エッジコネクタのピン(0番など)を使ってみてください。ワニ口クリップで挟めば、同じ仕組みを試せます。
11教育・リハビリ分野での応用視点
当サイトならではの視点も紹介します。micro:bitの加速度センサーは、簡易的な動作解析にも応用できます。振る動作の回数や強さを記録すれば、上肢運動の反復回数を数える、簡易的なリハビリ補助ツールになり得ます。教育現場では、プログラミング的思考を育てる教材として、すでに世界中で活用されています。「考え方を体で覚える」というmicro:bitの設計思想は、リハビリの反復練習とも、実は近い性質を持っています。実際の臨床応用には、専門家による検証が欠かせない点は、他の電子工作と変わりません。
12よくあるトラブルと対処法
症状別の対処早見表
| 症状 | 主な原因 | 対処法 |
|---|---|---|
| パソコンにmicro:bitが認識されない | USBケーブルの不良、データ通信非対応のケーブル | データ通信対応のUSBケーブルに交換する |
| プログラムを転送してもLEDが光らない | ダウンロードしたファイルの転送先の誤り | MICROBITという名前のドライブに転送できているか確認する |
| コンパスの方角がずれている | キャリブレーション未実施 | 本体を傾けて円を描く操作を行う(5章参照) |
| ラジオ通信がうまくいかない | グループ番号の不一致 | 送信側・受信側で同じグループ番号を設定する |
| 電池での動作時にすぐ止まる | 電池残量の低下 | 新しい単4電池に交換する |
まずはシミュレーターで確認する
Hさんはラジオ通信のプログラムを組んだが、2台のmicro:bitがうまく反応しなかった。配線もない単純な仕組みのはずなのに、原因が分からなかった。そこで、MakeCode上のシミュレーターで、1台ずつ動作を確認してみた。すると、片方のグループ番号だけ初期値のまま変更し忘れていたことに気づいた。番号を揃えると、無事に通信できるようになった。実機を何度も試す前に、シミュレーターで論理的な誤りを潰しておくと、効率よく原因を絞り込めます。
13よくある質問
基本のQ&A
応用のQ&A
関連記事・参考資料
基礎を学べる記事
- YOFUKASI LAB「電子工作入門|初心者が最初に覚える基本と始め方」2026年, https://yofukasi-lab-wp.com/2026/09/04/electronics-beginner-guide/
- YOFUKASI LAB「Arduinoは何言語?C言語・C++との違いを初心者向けに解説」2026年, https://yofukasi-lab-wp.com/2026/09/04/arduino-language-c-cpp/
- YOFUKASI LAB「Arduinoのfor文・while文の使い方」2026年, https://yofukasi-lab-wp.com/2026/08/13/arduino-for-while/
応用・比較記事
- YOFUKASI LAB「ESP32とArduinoの違いを徹底比較」2026年, https://yofukasi-lab-wp.com/2026/08/19/esp32-vs-arduino-guide/
- YOFUKASI LAB「ArduinoとPythonとセンサーを用いたリハビリテーションへの応用」2026年, https://yofukasi-lab-wp.com/2026/07/11/rehabilitation/
- YOFUKASI LAB「Pyxelの使い方|ゲーム制作をゼロから解説」2026年, https://yofukasi-lab-wp.com/2026/07/11/pyxel/
参考資料(外部・一次情報)
- micro:bit Educational Foundation「micro:bit official website」, https://microbit.org/
- Microsoft MakeCode「micro:bit Editor」, https://makecode.microbit.org/
- Python Editor for micro:bit, https://python.microbit.org/
※本記事は個人の学習・教育用途を対象にしています。リハビリ・医療分野での実運用を検討する場合は、有効性の検証や専門家への相談を必ず行ってください。
コメント