11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】Raspberry Pi PicoやPico2をArduinoスタイルで使う。Arduino Uno互換ベースボード『PicoDuino』の製作!

Raspberry Pi PicoやPico 2は、とても便利なマイコンボードです!
安価でありながら豊富なGPIOピンを備えており、ちょっとした試作やプロトタイプ製作に重宝しています。

私自身、自作基板を製作する際にも、RP2040やRP2350を使う機会が以前よりも増えてきました。

そんなPicoくんですが、実際に使い込んでいくと「もう少しこうだったらいいのに」と感じる場面も出てきます。

例えば、本家PicoやPico 2ボードではGPIOラベルが背面にプリントされているため、配線時にその確認作業が面倒な場面が出てきます。

またUSB端子についても、今では古さを感じるmicroUSBコネクタが採用されていて、ケーブルの用意や取り回しの面で面倒になることもあります。

そのようなことから、これまでRP2040やRP2350を使った自作ボードをいくつか製作してきました。
使いにくさを感じる部分を自分の環境で便利に使えるように工夫したボードたちで、これらを製作して以降、本家ボードを使う機会はあまりなくなりました。

【自作基板 / JLCPCB】バッテリー駆動対応、自作RP2350ボードの製作!
【自作基板 / 電子工作】RP2350を使った初めての基板設計。最小構成で組むRP2350A/RP2354Aブレークアウトボードの製作![その① 基板設計・発注]
【電子工作 / PCB】初めてのRP2040を使った基板設計。テスト回路を組む際に使える最小構成で組んだRP2040ブレークアウトボードの製作!

とはいえ、本家PicoやPico 2は未使用のボードも含め手元にいくつか在庫があります。

これらを有効活用しつつ、より使いやすいボードに出来ないか?
と考え、Arduino Uno互換となるベースボード『PicoDuino』を製作してみることにしました。

Arduino Uno互換ベースボード『PicoDuino』の製作

Arduino Uno形状のベースボードとして作るだけであれば、GPIOピンの割り振りは自由に配置することもできます。

しかし、せっかくUno形状で製作するのであれば、見た目だけでなく実際に使う場面においても、できる限りArduino Unoとの互換性を持たせたいと考えました。

本ボードは、PicoまたはPico2のGPIOピンをArduino Unoのピン配置に合わせて引き出しているだけのシンプルな構成ですが、実際のところ、このArduinoとの互換性をどこまで持たせるかという点に、最も時間を費やしました。

PicoのGPIOは非常に柔軟に使える一方で、SPIやI2C、UARTといった各種機能ピンの割り当てをArduino側の慣習に合わせようとすると、意外と制約が多くなります。

どのピンを優先するか、どこまで互換性を確保するかといった点を検討しながら、最終的なピンアウトを決めていきました。

極力Arduinoとの互換性を保てるようピン配置を行ったことで、3.3V動作のArduinoシールドであれば、そのまま使用出来るものも多いのではないかと思います。

Arduino Uno互換ピンアウトを考える

本ボードの核心となるのが、ピンアウトの配置です。
Arduino UnoのようにIOピンが順番に並びつつ分かりやすく、I2CやSPIといった各種機能ピンも無理なく使えるようピン配置を検討しました。

最終的にこのような配置で製作しています。

I2Cピンの配置

Arduino Unoでは、ハードウェアI2Cは1系統のみで、アナログピンのA4(SDA) / A5(SCL)と兼用されています。
そのため、I2Cピンはアナログピン側と、R3以降で追加された専用I2Cピンの2か所が直結されています。

一方、Pico(またはPico 2)ではI2C 0とI2C 1を含め、柔軟に複数のI2Cピンを扱うことが出来ます。

本ボードでは、I2C 0(GP20 / GP21)I2C 1(GP14 / GP15)をそれぞれArduino UnoのI2Cピンの位置に割り当てました。

SPIピンの配置

PicoではSPIも複数系統が用意されていますが、Arduino UnoではハードウェアSPIは1系統のみで、D10〜D13がSPIピンとして割り当てられています。

本ボードでは、このArduinoの慣習に合わせる形でPicoのデフォルトSPIピンである、GP17(CS) / GP19(MOSI) / GP16(MISO) / GP18(SCK)をD10〜D13に対応する位置へ配置しました。

ADCピン

Arduino Unoでは、A0〜A5の計6本のアナログ入力(ADC)ピンが使用出来ます。

一方、RP2040(またはRP2350)では、GP26〜GP29の4本がADCピンとして用意されていますが、Picoでは内部的にGP29がVSYS電圧の監視に使用されているため、実際に使えるADCピンは3本のみとなります。

ADCピンの本数はArduino Unoより少なくなってしまいますが、それらをArduinoのアナログピンの位置に合わせて配置しました。

UART(TX / RX)ピンの配置

Arduino Unoでは、ハードウェアUARTは1系統のみで、D0(RX) / D1(TX)に割り当てられています。
USB-シリアル変換チップとも直結されているため、書き込みやシリアルモニタでもこのピンが使用されるのが一般的です。

Pico(またはPico 2)ではUARTも複数系統が用意されており、GPIOの割り当ても柔軟に行えます。

本ボードでは、Arduino Unoの使い方に合わせるため、UART 0のTX / RXをD1 / D0の位置に割り当てました。
Arduino Unoと同位置でUARTを扱うことが出来ます。

電源関連のピン配置

電源関係のピン配置や基本的な使い方についても、できる限りArduino Unoに合わせた構成としています。

Picoでは、外部電源からの駆動はVSYSピンを使用し、入力電圧は最大5.5Vまでとなっています。
一方、本ボードではArduino Unoと同様に、VINピンおよびDCジャックからの外部電源入力に対応させ、最大5V~12Vまでの入力によるボード駆動が可能な構成としました。

MEMO
5Vピンから5Vを出力させたい場合は、LDOのドロップアウト電圧により外部電源は6.5V以上必要となります!

また、IOREFピンについてもArduino Unoの考え方に沿った形で実装しています。
Arduino Unoでは、IOREFピンは基本的に5Vピンに直結されており、シールド側に駆動電圧(デジタルピンの動作電圧)を知らせるために使われます。

本ボードではPicoを使用しているため、IOREFピンの電圧は3.3Vとしています。

全てのArduinoシールドがIOREFピンの電圧を参照して動作電圧を切り替えているわけではないため、完全な互換性があるわけではありませんが、シールド側で3.3V動作に切り替え可能なものや、もともと3.3V対応のシールドであれば、問題なく使用できるケースが多いと考えています。

既存のArduinoシールドや周辺環境を有効活用出来る構成を目指しました。

Type-C端子から使用出来るように

冒頭でも触れましたが、本家Picoで採用されているmicroUSBコネクタでは使い勝手が悪いので、Type-Cコネクタを取り付けました。

USBのデータライン(D+ / D−)については、Picoボード背面から引き出し、本ボード側のType-Cコネクタへ接続しています。
これにより、Type-Cケーブルを使った開発が可能となっています。

また、Picoを本ボード上に実装する構成としたことで、GPIOラベルを大きく取り配線時の視認性も大きく向上しました。
Type-C対応と合わせて、日常的な開発や検証作業における使い勝手は、かなり良くなったのではないかと思います。

その他のピン配置について

ここまで紹介してきたとおり、本ボードではArduino Unoとの互換性を意識してピンアウトを決めつつ、余っているPicoのGPIOピンについても全て引き出しています。

また、Picoの3V3ENピンを利用し、スライドスイッチによる電源のON / OFFが行えるようにもしています。
USBケーブルを接続したままでも手元で電源操作が出来るため、実験や検証時に意外と便利なポイントです。

以上が、本ボードのピンアウトおよび全体構成となります。

Arduino Unoの使い勝手をベースにしつつ、Picoならではの柔軟さも活かした設計を目指しました。

JLCPCBに基板を発注

基板の製造は、JLCPCBを利用しました。

本ボード(PicoDuino V1.0)の基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。
何かの参考になればと思います。

JLCPCBへの発注方法も少し見ておきます。
ガーバーファイルをサイトにアップロード後、製造項目を選択していきます。

特記すべきところはありませんが、PCBカラーなどはお好みで選択して下さい!

MEMO
本ボードは、[表面仕上げ]に金メッキ(ENIG)加工を選択しています!(オプション料金がかかります)

PicoやPico 2の実装は、Arduinoシールドも使えることを考慮してスルーホールは付けていません!
端面スルーホールを使った実装になりますが、他のパーツを含め実装が難しくなるパーツは使っていないので、ある程度はんだ作業に慣れた方なら実装はそれほど難しいものではないと思います。

今回は自宅環境でホットプレートを使ったリフローでの実装を想定していたので、ステンシルも一緒に発注しました。

ステンシルはサイズをカスタムしないと結構大きなサイズで届いてしまうので、100mm×100mmに指定して発注しました。
サイズが小さくなることで、ステンシル料金&送料もお安くなるのでお得です!

以上項目を選択し、JLCPCBに基板&ステンシルを発注しました。

JLCPCBの基本的な基板発注方法に関しては、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)

基板の到着

配送方法にOCS Expressを選択し、発注から8日で基板が手元に届きました。

黒のベタハッチングパターンとENIGとの組み合わせは、ほんと綺麗で気に入っています!

パーツの実装

それではパーツの実装です。
ステンシルを使いはんだペーストを塗布します。

ピッチの狭いチップやパーツは今回使っていないので、それほどシビアな実装ではありませんが、これだけ綺麗に塗布出来ていれば問題ないでしょう!

ちなみに、はんだペーストの塗布は、いつもこれを使っています。

パーツの実装は、MHP50というミニリフロー装置を使いました。
自作基板製作で、いつも愛用している非常に便利なホットプレートです。

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

また、MHP50用に作ったこのようなスタンドがあると作業しやすいのでオススメです!

【電子工作 / PCB】Miniware MHP50で使えるスタンドの製作。大きな基板やいろんなリフロー方法に対応出来るので便利ですよ!

綺麗に実装出来ました!

今回リフローでパーツの実装を行いましたが、ある程度はんだ作業に慣れた方なら、手はんだでの実装も十分可能だと思います。

今回の実装で少し難しくなってくるパーツは、Type-C端子くらいだと思います。
リフローで行っても、よくブリッジが発生し手はんだでの修正を行うことがあります。

現在製作中のType-C短絡チェッカーにかけてみましたが・・・
ブリッジもなく実装は完璧でした!

残りのピンソケットとスイッチを取り付けてボードの完成です!

動作確認

本ボードは、基本的にPicoのGPIOをArduino Uno互換の配置で引き出しているだけの構成なので、特別な機能テストというよりも実際にいろいろと接続してみて、動作確認を兼ねて遊んでみました。

Arduinoとの出会いをきっかけに電子工作を始めた身としては、Unoと同じ感覚で配線できるというのは、どこか懐かしさを感じます!

Picoを使っていながら、Arduinoを触っていた頃の感覚で実験や検証が出来る点は、このボードの一番の狙いどころかもしれません。

また、3.3Vでも動作可能な手持ちのArduinoシールドをいくつか使ったテストも行いました。

5V動作専用のシールドは当然ながら対応出来ない場合がありますが、シールド側で3.3V動作に切り替え可能なものや、もともと3.3V対応のシールドであれば、基本的に使用可能だと思います。

Arduino好きとしては、手元にある多くのシールドも活かせるのはなかなか面白いポイントです。!

MEMO
本バージョンのボードでは、パーツ数が増えてしまうことから、各I/Oピンにレベルシフタ等の回路は入れていません。
ボード単体で使用する場合は問題ありませんが、5V動作のシールドを接続する際は注意が必要です!

使用パーツ一覧

本ボードで使用したパーツの一覧です。

パーツ定数入手先
コンデンサ
(0805)
C1 10μF
C2 4.7μF
AliExpress
ダイオード
(SOT-123)
D1/D2/D3 1N5819WAliExpress
端子J7 Type-Cコネクタ(16P)AliExpress / 秋月電子
J8 DCジャック(5.5mm/2.1mm)AliExpress / 秋月電子
MOSFET
(SOT23)
Q1 AO3401AAliExpress / 秋月電子
抵抗
(0805)
R1/R2 5.1kΩ
R3 100kΩ
AliExpress
スイッチSW1 RESET
3mm×4mm(4P SMD)
AliExpress
SW2 PWRAliExpress / 秋月電子
5V LDOU2 AMS1117-5.0(SOT223-3)AliExpress
Raspberry Pi PicoU1 Raspberry Pi PicoAmazon / 秋月電子
U1 Raspberry Pi Pico 2AliExpress / 秋月電子
ピンソケット6P×1 / 8P×2 / 10P×1 / 4P×1
(デバッグポート4P×1 / 3V3EN 2P×1)
ーーー

最後に!

今回、Raspberry Pi PicoやPico 2をArduino Uno互換の形で使えるベースボード『PicoDuino』を製作してみました。

Arduino Unoの使い慣れたピン配置やシールド資産を活かしつつ、Picoならではの高性能さや柔軟性も取り入れられるボードを目指した結果、個人的にはかなり扱いやすい一枚に仕上がったと感じています。

完全なArduino Uno互換ではありませんが、3.3V動作に対応したシールドや自作回路であれば、これまでと同じ感覚で使える場面も多く、試作や検証用途では十分に実用的です。

特に、Arduinoから電子工作を始めた方にとっては、懐かしさと新しさを同時に感じられるボードになっているのではないでしょうか。

また、手元に余っているPicoやPico 2を有効活用できる点も、このボードのメリットのひとつです。

Uno形状という共通フォーマットをベースにすることで、過去に作った回路やシールドを再利用しながら、より高性能なマイコンへ移行出来るのは、なかなか面白い体験です。

PicoやPico 2を「もう一歩使いやすくしたい」と感じている方や、Arduino資産を活かしつつ次のステップへ進みたい方の参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。