プログラミングで作れるのは、画面の中だけではありません。このシリーズでは Raspberry Pi Pico(ラズベリーパイ・ピコ)というマイコンボードを使い、LED を光らせたり、センサーで値を測ったり、モーターを動かしたりします。
難しい電子工作の予備知識は必要ありません。PycoBlocks(MicroPythonモード) のブロックを組み合わせるだけで、MicroPython コードが自動生成され、配線図もリアルタイムで表示されます。まずは Pico の基本と PycoBlocks の起動方法を確認しましょう。

Raspberry Pi Pico / Pico W とは
Raspberry Pi Pico は マイコンボード と呼ばれる小型コンピューターです。「マイコン」は マイクロコントローラ(microcontroller) の略で、CPU・メモリ・入出力ピンを 1 つのチップにまとめた小さなコンピューターを指します。
PC やスマートフォンは OS(Windows や Android)の上でたくさんのアプリを同時に動かしますが、Pico は OS を持たず、書き込んだ 1 つのプログラムだけを電源が入っている間ずっと繰り返し実行します。そのぶん起動が一瞬で、LED やモーターなど現実の部品を 正確なタイミングで直接制御できるのが特徴です。値段も数百円〜千円台と手ごろで、電子工作の入門にぴったりです。
下の図は Pico 基板のおもな部品の名前です。これから何度も出てくる「BOOTSEL ボタン」「GPIO ピン」「オンボード LED」の位置を、ここで一度確認しておきましょう。

| 項目 | Pico(無印) | Pico W |
|---|---|---|
| チップ | RP2040(デュアルコア ARM Cortex-M0+、133 MHz) | |
| メモリ | 264 KB RAM・2 MB フラッシュ | |
| GPIO ピン | GP0〜GP28(うち 26 本が利用可能) | |
| 無線 | なし | WiFi 2.4 GHz・Bluetooth 5.2 |
| オンボード LED | Pin(25) | Pin('LED') |
| 電源 | USB(5 V)または VSYS(1.8〜5.5 V) | |
| 言語 | MicroPython / C/C++ | |
このシリーズでは MicroPython を使います。通常の Python とほぼ同じ書き方で Pico のピンを制御できます。Pico と Pico W は GPIO の配置・使い方はほぼ同じです。違いが出る箇所(オンボード LED・WiFi)は記事内でその都度説明します。
MicroPython を Pico に書き込もう
Pico を買ったばかりの状態では MicroPython が入っていません。最初に .uf2 ファームウェア を書き込む必要があります。一度書き込めば、次からは書き込み不要です。
💡 PycoBlocks が書き込み手順を案内してくれます
この記事では何が起きているのかが分かるように、手作業の手順もそのまま残しています。どちらか片方だけやれば大丈夫です。
ステップ1:.uf2 ファームウェアをダウンロード
以下の公式サイトから使っているボードに合わせてファイルをダウンロードしてください。
- Pico(無印):micropython.org/download/RPI_PICO/ → 最新の
.uf2をダウンロード - Pico W:micropython.org/download/RPI_PICO_W/ → 最新の
.uf2をダウンロード
ステップ2:BOOTSEL モードで接続
- Pico の基板上にある白いボタン(BOOTSEL)を押しながら、USB ケーブルを PC に差し込む
- ボタンを離す。PC に RPI-RP2 という名前のドライブが表示される
- ダウンロードした
.uf2ファイルを RPI-RP2 ドライブにコピー(ドラッグ&ドロップ)する - Pico が自動的に再起動し、RPI-RP2 ドライブが消える。書き込み完了。
⚠️ RPI-RP2 ドライブが出てこないときは
💡 書き込みは最初の一度だけ
あとから MicroPython を入れ直したくなったときは、BOOTSEL ボタンを押す必要はありません。PycoBlocks で Pico につないだ状態で [MicroPython導入] を開き、[BOOTSEL に入れる] を押せば切り替わります。
ブレッドボードの使い方
ブレッドボードは半田付けなしで電子部品を接続するための板です。表面の穴(ホール)に部品の足やジャンパーワイヤーを挿すだけで回路が組めます。
内部配線のルールは次の 2 点です。
- センター部:縦に並んだ
a〜eの 5 穴が 1 グループとして電気的につながっている(横方向はつながらない)。f〜j側も同じく縦 5 穴で 1 グループ。 - 電源レール(赤+・青-):横一列がずっとつながっている。+を赤、-(GND)を青に決めて使うのが定番。
たとえば a1・b1・c1・d1・e1(列 1 の縦 5 穴)は同じグループなのでつながっています。一方、中央には溝があり、これを境に a〜e 側と f〜j 側は分かれています。そのため同じ列 1 でも e1 と f1 はつながっていません。Pico をブレッドボードに挿すとき、左右のピンが中央の溝をまたぐように置くのは、左右のピンが別グループになるようにするためです。

Pico のピン配置を読もう
Pico には 40 本のピンがあります。ピン番号には 物理ピン番号 と GP 番号 の 2 種類があります。
| 種類 | 番号の振り方 | 使う場面 |
|---|---|---|
| 物理ピン番号 | 基板の左上から時計回りに 1〜40 | 部品のデータシートなど |
| GP 番号 | GP0〜GP28(GPIO 機能を持つピン) | MicroPython・PycoBlocks |
下の図は PycoBlocks の配線図ビューアを空の状態で表示したものです。Pico ボードの左右にピン名(GP 番号・GND・電源)が並んで表示され、実際の基板と同じ並びでピンの位置を確認できます。黄色が GPIO ピン(GP0〜GP28)、青灰色が GND、赤が電源(3V3 / VSYS / VBUS)です。ブロックを配置すると、ピンから部品へ配線が自動で引かれます。

電源まわりのピンも押さえておきましょう。3V3 は Pico が作り出す 3.3 V の出力で、LED やセンサーなど多くの部品はここから電気をもらいます。VBUS は USB から来る 5 V、VSYS は本体を動かすための入力電源です。そして GND(複数あり)は電気の戻り道(0 V の基準)で、回路を組むときは必ず部品の GND と Pico の GND をつなぎます。
🚫 3.3 V を超える電圧をピンに入れないこと
PycoBlocks のブロックでは GP 番号 でピンを指定します。たとえば「ピン:GP2 を HIGH にする」と指定すると、MicroPython コードに Pin(2, Pin.OUT).value(1) が自動生成されます。
PycoBlocks を MicroPython モードで開こう
PycoBlocks(MicroPythonモード) を開くと、左のカテゴリに「Pico 電子工作」が表示されます。ブロックをワークスペースに置くと、コードと配線図がリアルタイムで更新されます。
URL に ?mode=micropython が付いていることを確認してください。このパラメータがない場合は Python 入門モード(PC で動くコード)になります。
配線図を表示するには、ブロックを置いた後に画面左下の「配線図」ボタンをクリックします。ブロックのピン設定を変えると配線図も即座に更新されます。
💡 ここで一度 PycoBlocks を開いてみよう
演習課題
課題3-1-1:GP15 は Pico のどの位置にあるか調べよう
上の配線図ビューアで GP15 を探し、基板の左右どちら側にあるか答えよう。また、物理ピン番号(左上から時計回りに 1〜40)で数えると何番になるか答えよう。
▶ 模範解答と解説を見る
# GP15 = 左側・いちばん下 = 物理ピン番号 20
解説: 配線図ビューアの左列はいちばん上が GP0(物理 1 番)で、下へ向かって順に並びます。GP15 は左列のいちばん下なので、上から数えて 20 番目 = 物理ピン 20 です。PycoBlocks のブロックで「ピン:GP15」と選択すると、このピンが使われます。
課題3-1-2:ブレッドボードの e3 と f3 はつながっているか?
ブレッドボードの内部配線を思い出して、e3 と f3 が電気的につながっているかどうか答えよう。
▶ 模範解答と解説を見る
# e3 と f3 はつながっていない(中央の溝で分かれている)
解説: センター部は a〜e(上ブロック)と f〜j(下ブロック)が中央の溝を境に分かれています。同じ列 3 でも、e3 は上グループ・f3 は下グループなので別グループです。Pico をブレッドボードに挿すとき中央の溝をまたぐのは、この仕組みを利用しています。
課題3-1-3:Pico と Pico W でオンボード LED の制御方法はどう違うか?
Pico(無印)と Pico W では、オンボード LED を点灯させる MicroPython コードが異なる。それぞれどのように書くか調べてみよう。
▶ 模範解答と解説を見る
# Pico(無印)
from machine import Pin
led = Pin(25, Pin.OUT) # GP25 がオンボード LED に直結
led.on()
# Pico W
from machine import Pin
led = Pin('LED', Pin.OUT) # 'LED' という名前で WiFi チップ経由で制御
led.on()
解説: Pico W のオンボード LED は WiFi チップ(CYW43439)に接続されているため、GP25 では制御できません。代わりに Pin('LED') という特殊な名前を使います。この違いを知らないと Pico W で LED が点灯しないので要注意です。
課題3-1-4:オンボード LED を点滅させてみよう(実践)
ここまでの準備ができたら、実際に手を動かしてみよう。上の PycoBlocks(MicroPython モード)で、Pico に最初から付いているオンボード LED(GP25)を 1 秒ごとに点滅させるプログラムを作ってみよう。ヒント:「ずっとくり返す」の中に「LED を ON」「1 秒待つ」「LED を OFF」「1 秒待つ」を並べる。
▶ 模範解答と解説を見る
from machine import Pin
import time
led = Pin(25, Pin.OUT) # Pico 無印のオンボード LED は GP25
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
解説: PycoBlocks でブロックを組むと、上のような MicroPython コードが自動生成されます。Pico W を使っている場合は Pin(25) を Pin('LED') に変えてください。コードを Pico に転送して LED が 1 秒ごとに点滅すれば成功です。点滅の間隔(time.sleep の数字)を変えて、速さが変わることも確かめてみよう。
まとめ
- Pico / Pico W はマイコンボード。MicroPython を書き込むことで GPIO ピンを制御できる。
- MicroPython 書き込みは BOOTSEL ボタン+USB 接続 → RPI-RP2 ドライブに .uf2 をコピーする。一度だけ必要。PycoBlocks の[MicroPython導入]ボタンから同じ手順を案内させることもできる。
- ブレッドボードは縦 5 穴(a〜e)が 1 グループでつながり、電源レールは横一列。中央の溝で上下(e と f)が分かれる。
- PycoBlocks の配線図ビューアで Pico のピン名(GP番号・GND・電源)を確認できる。
- PycoBlocks MicroPython モードでは GP 番号でピンを指定する。ブロックを置くと配線図がリアルタイムで更新される。
次の記事では実際に LED を光らせます。電流制限抵抗の計算方法と外付け LED の配線を一緒に確認しましょう。