2000円台の変換基板でラズパイ資産を活用──Raspberry Pi PicoからHATを動かす「AD2040RSH」

Assorted microcontroller boards (Raspberry Pi, BitTradeOne) on a white surface with a red-outlined Japanese headline in the top-right reading “from Pico” and “HATを動かす” .

Raspberry Pi Picoは、1000円台から手に入る小型のマイコンボードだ。電子工作の新たな入門機として知られているが、その魅力は低価格や小型であることだけにとどまらない。ArduinoやESP32がそうであるように、Raspberry Piという巨大なエコシステムの資産を活用できることも大きな利点だ。

ただし、ここにはひとつの断絶がある。これまでRaspberry Pi向けに開発されてきたHAT(拡張基板)の多くはLinux OS上での動作を前提としており、Raspberry Pi Picoから直接扱うことには適していなかった。シングルボードコンピュータとマイコンボードという設計思想の違いが、あと一歩の距離を生んでいたのだ。

Promotional banner about converting Pico to Raspberry Pi, with two green Pico boards on the right and large Japanese text announcing the concept and use as a HAT tester/propotyping aid.
製品ページより引用

ビット・トレード・ワンの「AD2040RSH ラズベリーパイ ホストファンクションテスター Pico(以下、AD2040RSH)」は、その断絶を埋めるための変換基板だ。Raspberry Pi Picoの配線を40ピンGPIOへと拡張することで、Raspberry Pi互換のインターフェースを実現し、既存のHATを直接制御できるようになる。

Raspberry Piを取り巻く豊富なリソースと、Raspberry Pi Picoの軽快さを両立できるAD2040RSHは、ラズパイベースの開発をラフで自由なものへと引き寄せてくれる。自作HATのデバッグや、OSを介さない高速プロトタイピングにも役立つ製品の手触りを確かめてみよう。

BitTradeOne microcontroller board mounted in a white plastic enclosure with red accents and a USB port visible atop the module.
本記事での使用例。3Dプリント製の自作ケースに収め、AD2040RSHからRaspberry Pi Zero用の小型HATを制御している。詳しくは後述。
目次

Raspberry Pi Pico用変換基板「AD2040RSH」

BitTradeOne AD2040RSH Ver 1.3 development board with long 40-pin header beside a Raspberry Pi Pico–style microcontroller board on a wooden surface
AD2040RSH(左)と、Raspberry Pi Pico WH(右)

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との互換性は個別に確認が必要だ。

Close-up of a green Raspberry Pi Pico-style microcontroller board with USB connector plugged in and two rows of header pins along the edge

ラインアップは「基板単体」と「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)」を装着してみよう。

Two green development boards with many surface-mount chips; left board shows a dense grid of components, right board stacked with white header pins and held in a hand; BitTradeOne labels visible.
Sense HATを装着したところ。40ピンをそのまま差し込むだけだ。

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

Close-up of a Raspberry Pi board with a stacked HAT/PyBoard adapter (green PCB with many white header blocks) and a purple adapter underneath
hoihu氏のGitHubリポジトリより引用

今回は、Sense HATの8×8 LEDマトリクスをMicroPythonから制御した。参考にしたのは、hoihu氏が公開しているリポジトリで、Sense HATの機能をMicroPython向けに再実装したものだ。

まずは最小構成として、LEDマトリクスの左上を点滅させるコードを実行してみる。

Green development PCB with a dense grid of white header blocks on top, USB-C port on the side, labeled BitTradeOne AD2040RSH.
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を蛇行させる簡単なアニメーションも試してみた。

Green development board with a dense grid of white square push buttons mounted on top, connected to a larger base board via a stacked shield.
マトリクス上で光を蛇行させる
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向けに展開している「ゼロワン」シリーズを試してみた。

Banner advertising Raspberry Pi Zero expansion boards with multiple add-on modules and blue logo area (Japanese text). You can see three boards and a prominent 'Zero' branding.
製品ページより引用

ゼロワンシリーズは、Raspberry Pi Zeroに機能をひとつだけ追加する拡張基板群で、用途ごとに機能が整理されたシンプルな構成が特徴だ。単一機能に絞られているため扱いやすく、制御の学習やプロトタイピングにも適している。

サイズ感はAD2040RSHに対してちょうど半分ほど、横長の形状もコンパクトで取り回しやすいサイズだ。このサイズとプロポーションが、どこかゲームのカセットを思わせる。

Close-up of a green PCB with many header pins inside a white plastic case with red trim on the edges.
コンピューターの先輩に敬意を表したデザインとした。

せっかくなので、雰囲気に合わせた外装を3Dプリントで製作した。機能には直接関係しない部分ではあるが、こうした見た目から入る遊びも個人開発の醍醐味だ。

Arduinoでの開発環境準備

今回扱う2つのHAT「ADRSZBM ゼロワン 温湿度・気圧センサ拡張基板」と「ADRSZLD ゼロワン OLED拡張基板」は、AD2040RSH経由で制御する際のArduino用サンプルコードが公開されている。

まずはArduino IDEのボードマネージャーから「Raspberry Pi Pico / RP2040 / RP2350」をインストールし、書き込みボードには「Raspberry Pi Pico W」などを選択しておこう。

Arduino IDE Board Manager panel showing the earlephilhower package for Raspberry Pi Pico RP2040/RP2350, with 5.5.0 installed and an Update button visible along with a version dropdown.
ボードマネージャから検索してインストール。筆者はバージョン5.5.1を使用。

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

Hand inserting a small PCB module onto a BitTradeOne microcontroller trainer board; USB port visible nearby.
Sense HATと同様に、40ピンの位置を確認して差し込む。

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

ライブラリの依存関係をインストールするダイアログ。Adafruit BME280 Library 2.3.0に必要なBusIOとAdafruit Unified Sensorをインストールします。「依存関係なしにインストール」と「全てをインストール」を選択。
依存関係にあるライブラリも全てインストールする。

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

Close-up of a BitTradeOne development board mounted in a white case with red endcaps; a green status LED is lit and multiple connectors are visible.
複数の環境データを同時に取得できるのは、HATならではの手軽さだ。

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

Close-up of a black module with a grid of pins mounted on a green development board inside a white/red plastic enclosure, showing exposed headers and connectors.

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

Diagram of a breakout board showing a short-pin selector J2; choosing Pico GP1 via pins 1 or 24 and Pico GP0 via pins 0 or 23.
AD2040RSHの製品ページより引用
Close-up of a green PCB showing a long row of header pins at the top and a small black jumper switch in the center, with silkscreen labels GP1/GP0 and BOOTSEL nearby.
ボード上のジャンパ設定部分。デフォルトでは左寄せになっている。

原因は、AD2040RSH側のジャンパピン設定にあった。

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

Screenshot of the code editor in an IDE showing Adafruit splash screen setup: // Show initial display buffer contents... display.setRotation(2); display.display(); delay(2000); // Pause for 2 seconds
画面の表示を上下反転するコードを追記。
Microcontroller development board on a white plastic chassis with red rails; a green BitTrade breakout board is connected via USB-C.
サンプルコードを実行。スムーズな描画が行われた。

ジャンパピンの位置を変更して再度書き込むと、無事にサンプルコードでのOLED描画が確認できた。筐体に対して表示が上下逆になっていたため、コード側で反転設定を追加して調整している。

まとめ

AD2040RSHを使い、Raspberry Pi用HATをRaspberry Pi Picoから制御する一連の動作を試してみた。ジャンパピン設定には注意が必要な場面もあったが、フルサイズのHATから小型の小型HATまで、MicroPythonやArduino IDEを用いて問題なく動作させることができた。

Assorted microcontroller boards arranged on a white surface, including a green Raspberry Pi board and a black BitTradeOne board with a small LCD display showing 'from PIC0!'

Raspberry PiとRaspberry Pi Picoは、名前こそ似ているものの、その設計思想は大きく異なる。OS上で高い拡張性を発揮するRaspberry Piと、マイコンとして直感的にIOを制御できるRaspberry Pi Pico。AD2040RSHは、その間にある距離を埋める存在だ。

プログラムを調整する手間は生じるが、その過程で両者の違いを改めて実感できるのも面白いポイント。それぞれの長所を活かしたものづくりや、お気に入りのHATを使って開発したいユーザーにとっては、手元に置いて損はない一枚と言えるだろう。

ビット・トレード・ワン × FabScene コラボ記念クーポンのご案内

ビット・トレード・ワンとのタイアップ記念として、同社公式サイトの商品が全品10%OFFになるクーポンのご紹介です。

決済画面からクーポンコード欄にfabsceneと入力してください。
こちらのリンクから公式ストアにアクセスしても、全品10%OFFの割引が適応されます。

もちろん、今回紹介した製品も割引対象です。ぜひご利用下さい!

本記事はSponsored記事です。
提供:株式会社ビット・トレード・ワン

Assorted microcontroller boards (Raspberry Pi, BitTradeOne) on a white surface with a red-outlined Japanese headline in the top-right reading “from Pico” and “HATを動かす” .

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

ライター/編集者。大学で3Dプリンターと出会いものづくりの面白さに目覚め、デジタルファブリケーションの世界へ。卒業後、研究員として2年半ほど従事したのち、ものづくりを中心としたライターとして独立。
2023年には墨田区でファブ施設「京島共同凸工所」の運営をスタート。文章と場づくりを行き来しながら、街での生活を満喫している。工房での日々を綴った自主制作本「京島の十月」が販売中。

目次