
Raspberry Pi Picoは、1000円台から手に入る小型のマイコンボードだ。電子工作の新たな入門機として知られているが、その魅力は低価格や小型であることだけにとどまらない。ArduinoやESP32がそうであるように、Raspberry Piという巨大なエコシステムの資産を活用できることも大きな利点だ。
ただし、ここにはひとつの断絶がある。これまでRaspberry Pi向けに開発されてきたHAT(拡張基板)の多くはLinux OS上での動作を前提としており、Raspberry Pi Picoから直接扱うことには適していなかった。シングルボードコンピュータとマイコンボードという設計思想の違いが、あと一歩の距離を生んでいたのだ。

ビット・トレード・ワンの「AD2040RSH ラズベリーパイ ホストファンクションテスター Pico(以下、AD2040RSH)」は、その断絶を埋めるための変換基板だ。Raspberry Pi Picoの配線を40ピンGPIOへと拡張することで、Raspberry Pi互換のインターフェースを実現し、既存のHATを直接制御できるようになる。
Raspberry Piを取り巻く豊富なリソースと、Raspberry Pi Picoの軽快さを両立できるAD2040RSHは、ラズパイベースの開発をラフで自由なものへと引き寄せてくれる。自作HATのデバッグや、OSを介さない高速プロトタイピングにも役立つ製品の手触りを確かめてみよう。

Raspberry Pi Pico用変換基板「AD2040RSH」

AD2040RSHの役割はシンプルだ。Raspberry Pi Picoに40ピンGPIOを付与し、ラズパイ互換のHATをそのまま接続できるようにする。Raspberry Pi Picoに搭載されたマイクロコントローラ「RP2040」をホストとして動作させることで、従来はLinux OSの管理下で扱われていたHATを、マイコンから直接、かつ低遅延で制御可能になる。
開発環境や言語は、Arduino IDE、C/C++、MicroPythonなど、Raspberry Pi Picoが対応するものをそのまま利用できる。PCと接続してコードの書き込みと実行を行う際にも、OSの起動を待つ必要がなく、センサーの挙動確認やデバイス制御の試行錯誤を軽快に進められる。
主な用途としては、既存のHAT活用のほか、自作HATのテストやプロトタイピングも想定されている。OSを介さない構成のため、安定性重視の組み込み開発にも適しているだろう。なお、公式GitHubでサンプルコードが公開されているのはビット・トレード・ワン自社製品のみで、サードパーティ製HATとの互換性は個別に確認が必要だ。

ラインアップは「基板単体」と「Raspberry Pi Pico実装済み」の2種類。2026年4月現在の販売価格は、それぞれ2178円と3608円だ。今回は基板単体モデルを用意し、Raspberry Pi Pico WHをはんだ付けして構築した。
なお、PCとの通信やプログラムの書き込みはRaspberry Pi Pico側のmicroUSB経由で行うが、AD2040RSH本体には給電用のUSB Type-Cコネクタも備わっている。用途に応じて電源系統を使い分けられる点も扱いやすい。
Raspberry Pi用Sense HATをPico+MicroPythonで制御する
AD2040RSHに接続した後も、Raspberry Pi Picoは通常通り利用できる。PCとmicroUSBで接続すれば、ThonnyやArduino IDEからすぐにプログラミングを開始でき、Lチカなどでの動作確認もいつも通りだ。
基板にはRaspberry Pi準拠の40ピンGPIOが実装されており、ラズパイ用のHATをそのままスタックできる。まずは、教育用途や宇宙開発でも採用されており、7〜8千円台で購入できる定番の「Raspberry Pi Sense HAT rev.2(以下、Sense HAT)」を装着してみよう。

一般にSense HATは、Raspberry Pi上のPython環境での利用を前提にライブラリが提供されている。AD2040RSHの公式サポート外の製品だが、今回はMicroPython向けにプログラムを書き換えることで動作を確認した。

今回は、Sense HATの8×8 LEDマトリクスをMicroPythonから制御した。参考にしたのは、hoihu氏が公開しているリポジトリで、Sense HATの機能をMicroPython向けに再実装したものだ。
まずは最小構成として、LEDマトリクスの左上を点滅させるコードを実行してみる。

from machine import I2C, Pin
import time
i2c = I2C(1, sda=Pin(2), scl=Pin(3))
on = bytearray(192); on[0] = 31
off = bytearray(192)
while True:
i2c.writeto_mem(0x46, 0, on)
time.sleep(0.5)
i2c.writeto_mem(0x46, 0, off)
time.sleep(0.5)
Sense HAT LEDをライブラリなしで最低限制御する実験コード
書き込みから反映まで、数秒で動作が確認できた。OSを介さず、HATを直接制御していく感覚は新鮮で、試行錯誤のテンポも非常に良い。
続いて、LEDを蛇行させる簡単なアニメーションも試してみた。

from machine import I2C, Pin
import time
class SenseLED:
def __init__(self, i2c, addr=0x46):
self.i2c = i2c
self.addr = addr
self.buf = bytearray(192)
def show(self):
self.i2c.writeto_mem(self.addr, 0x00, self.buf)
def clear(self):
for i in range(192):
self.buf[i] = 0
def set_pixel(self, x, y, v):
base = 24 * y
self.buf[base + x] = v # 赤だけ
i2c = I2C(1, sda=Pin(2), scl=Pin(3))
led = SenseLED(i2c)
# 蛇行パス
path = [(x, y) if y % 2 == 0 else (7 - x, y) for y in range(8) for x in range(8)]
tail = 6
while True:
for i in range(len(path)):
led.clear()
for t in range(tail):
if i - t < 0:
continue
x, y = path[i - t]
led.set_pixel(x, y, int(31 * (tail - t) / tail))
led.show()
time.sleep(0.08)
LEDを蛇行させるMicroPythonコード
今回はLEDマトリクスの制御に絞り、加速度センサーやジョイスティックなどの機能はオミットしている。その分、環境設定や依存ライブラリも最小限で済み、シンプルで扱いやすい構成となった。
もちろん、Sense HATの公式ライブラリが提供するような高機能はそのままでは使えない。必要な機能を自分で切り出し、MicroPython向けに組み替えていく必要がある。ただ、この仕組みさえ押さえれば、同様の手順でフルサイズのRaspberry Pi用HATもPicoから直接制御できそうだ。
このあたりが、Raspberry Pi PicoからHATを扱う面白さであり、同時に難しさでもある。多少の手間はかかるものの、OSを介さずにセンサーやアクチュエーターを手早く動かせるため、用途特化の開発やデバッグ用途には十分実用的だと感じられた。
Raspberry Pi Zero用の小型HATもガシガシ試せる
AD2040RSHはフルサイズのRaspberry Piだけでなく、Raspberry Pi Zeroシリーズ向けの小型HATも同様に扱える。今回は、ビット・トレード・ワンがRaspberry Pi Zero向けに展開している「ゼロワン」シリーズを試してみた。

ゼロワンシリーズは、Raspberry Pi Zeroに機能をひとつだけ追加する拡張基板群で、用途ごとに機能が整理されたシンプルな構成が特徴だ。単一機能に絞られているため扱いやすく、制御の学習やプロトタイピングにも適している。
サイズ感はAD2040RSHに対してちょうど半分ほど、横長の形状もコンパクトで取り回しやすいサイズだ。このサイズとプロポーションが、どこかゲームのカセットを思わせる。

せっかくなので、雰囲気に合わせた外装を3Dプリントで製作した。機能には直接関係しない部分ではあるが、こうした見た目から入る遊びも個人開発の醍醐味だ。
Arduinoでの開発環境準備
今回扱う2つのHAT「ADRSZBM ゼロワン 温湿度・気圧センサ拡張基板」と「ADRSZLD ゼロワン OLED拡張基板」は、AD2040RSH経由で制御する際のArduino用サンプルコードが公開されている。
まずはArduino IDEのボードマネージャーから「Raspberry Pi Pico / RP2040 / RP2350」をインストールし、書き込みボードには「Raspberry Pi Pico W」などを選択しておこう。

温湿度・気圧センサー搭載HAT

温湿度・気圧センサーを搭載したHAT「ADRSZBM」では、AdafruitのBME280を利用するため、ライブラリマネージャーから「Adafruit_BME280」とその前提ライブラリをインストールしておこう。

その後、HATをAD2040RSHに差し込み、サンプルコードを書き込むと、Arduino IDEのシリアルモニタに温度や湿度などの情報が表示された。

OLED搭載HAT──ジャンパの位置に要注意

続いて、OLEDを搭載したHAT「ADRSZLD」を利用する。「Adafruit_SSD1306」と依存ライブラリをインストールし、サンプルコードを実行すると、コンパイルは通るが画面には何も表示されなかった。


原因は、AD2040RSH側のジャンパピン設定にあった。
デフォルトでは、Raspberry Pi PicoのGP0/GP1がそれぞれ0番ピンと1番ピンに接続されている。このHATを利用する場合、GP0を23番ピン、GP1を24番ピンへと接続する必要があった。HATの動作がうまくいかない場合は、このジャンパ設定を確認するようにしよう。


ジャンパピンの位置を変更して再度書き込むと、無事にサンプルコードでのOLED描画が確認できた。筐体に対して表示が上下逆になっていたため、コード側で反転設定を追加して調整している。
まとめ
AD2040RSHを使い、Raspberry Pi用HATをRaspberry Pi Picoから制御する一連の動作を試してみた。ジャンパピン設定には注意が必要な場面もあったが、フルサイズのHATから小型の小型HATまで、MicroPythonやArduino IDEを用いて問題なく動作させることができた。

Raspberry PiとRaspberry Pi Picoは、名前こそ似ているものの、その設計思想は大きく異なる。OS上で高い拡張性を発揮するRaspberry Piと、マイコンとして直感的にIOを制御できるRaspberry Pi Pico。AD2040RSHは、その間にある距離を埋める存在だ。
プログラムを調整する手間は生じるが、その過程で両者の違いを改めて実感できるのも面白いポイント。それぞれの長所を活かしたものづくりや、お気に入りのHATを使って開発したいユーザーにとっては、手元に置いて損はない一枚と言えるだろう。
ビット・トレード・ワン × FabScene コラボ記念クーポンのご案内
ビット・トレード・ワンとのタイアップ記念として、同社公式サイトの商品が全品10%OFFになるクーポンのご紹介です。
決済画面からクーポンコード欄にfabsceneと入力してください。
こちらのリンクから公式ストアにアクセスしても、全品10%OFFの割引が適応されます。
もちろん、今回紹介した製品も割引対象です。ぜひご利用下さい!
本記事はSponsored記事です。
提供:株式会社ビット・トレード・ワン

