
2026/05/15 3:01
RP2040/ RP2350 を用いたオープンソースの超音波診断装置の自作
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
pic0rickボードは、un0rickファミリーの最新進化モデルであり、高価なFPGA設計をアクセス容易なRP2040マイクロコントローラーアーキテクチャに置き換えることで、超音波 acquisitions(アキュイジション)のための新しい推奨ソリューションを提供しています。この移行は、性能を損なうことなく、安価さと単純化を優先しています。
二核搭載のRP2040(Cortex-M0+チップ)と60 Msps ADC を採用することで、板は高精度な信号捕捉に必要なサブマイクロ秒オーダーのタイミング精度を実現し、複雑なハードウェア記述言語ではなく標準的なC/C++コードによりすべてを管理しています。un0rick や lit3rick といった以前のモデルが iCE40 FPGA に依存したのに対し、pic0rick はメインボード、パルス発生ボード、HV ボードからなるモジュラー3ボード構成により、ハードウェアの複雑性とコストを大幅に削減しています。その信号チェーンはエレガントに PIOユニットを用いてパルスをトリガーし、増幅(AD8331 TGC)後の戻りエコーを捉え、USB を介してデータを送信します。
開発には容易に対応できる二重PMODコネクタを備えおり、リアルタイムVGAディスプレイ表示やMUXボードを用いた高度なアレイイメージング機能などの拡張が可能になります。ユーザーはTindie で組立済みユニットを購入するか、GitHub にホストされたオープンソースドキュメント(ハードウェア:KiCad; ファームウェア:C/C++)を活用して自作することもできます。究極的には、この設計は教育およびプロトタイピングへの参入障壁を下げることで、開発者が超音波分野に参入する際に信頼性のあるサプライチェーンを維持しつつ、オープンライセンス(CC BY-SA 3.0)の下でコミュニティ協力を促進します。
本文
ピコリッック (pic0rick)
ピコリッックは、現在の「ユニオリック」シリーズで推奨されているボードです。これにより、FPGA を使用したこれまでの設計から、RP2040 および RP2350 マイクロコントローラーを用いた新しい設計へと移行しています。同等の超音波データ取得性能を維持しつつ、コストと複雑性は大幅に削減されています。さらに、FPGA の開発環境や専門的なハードウェア知識が一切不要です。
プロジェクトにご興味あり? 箱を開けたところから初めてのエコー信号を取得するまでの手順が分かりやすく解説された入門ガイドをご覧ください。
スペック
| パラメータ | 内容 |
|---|---|
| マイクコントローラー | RP2040(デュアルコア Cortex-M0+、133MHz)。RP2350 も対応可能。 |
| ADC | サンプリングレート 60 Msps、解像度 10 ビット。 |
| TGC アンプ | AD8331 を採用(7.5dB から 55.5dB の可変ゲイン)。 |
| TGC コントロール | MCP4812 SPI DAC。 |
| パルス発振 | MD1210 と TC6320 を使用した 3 レベルパルスジェネレーター(パルサー用 PMOD ボード搭載)。 |
| パルス電圧 | ±25V(高電圧発生ボード経由)。 |
| 入力保護 | レシーブ経路に HV クリッピング機能付き。 |
| PMOD コネクタ | 単一ピンヘッダ×1(パルサー用)、デュアルピンヘッダ×1(VGA、MUX、PSRAM、またはカスタム拡張用)。 |
| データインターフェース | USB シリアル。 |
| PIO 活用 | PIO0:取得タイミング制御、PIO1:VGA オプトアウト時のリアルタイム表示出力。 |
| 電源 | USB バス給電(バッテリー内蔵なし)。 |
| 設計ファイル | KiCad(オープンソース)。 |
| ファームウェア | RP2040 向け C/C++、Arduino 風開発環境で動作。 |
| 認証 | OSHWA オープンハードウェア認定(FR000023)。 |
システムアーキテクチャ
ピコリッックはモジュール化された 3 ボードシステムで構成されています:
-
メインボード
- システムの核心部分です。
- RP2040 マイクロコントローラー、60 Msps・10 ビット ADC、SPI で制御可能なゲイン曲線を有する AD8331 TGC アンプ、およびレシーブ経路の高電圧入力保護機能を搭載しています。
- 両方の PMOD コネクタと USB インターフェースを本ボードに配置しています。
-
パルサーボード(単一 PMOD)
- メインボードからの指令を受けて、送信パルスを発生させます。
- MD1210 と TC6320 のペアを使用して、3 レベルのパルスを生成します。
- 高電圧供給には HV ボードが必要です。
-
HV ボード
- パルサーボードに挿入する単純な±25V 発生ボードです。
- パルス生成に必要な高電圧レールを提供します。
シグナルチェーン
信号の流れは以下の通りです: RP2040 → PIO によるパルストリガー送信 → パルサーボード → 探触子(トランスデューサ)→ 反射エコー受信 → HV クリッピング(保護機能)→ AD8331 TGC アンプ → 60 Msps ADC → RP2040 → USB → コンピュータ
RP2040 の 2 基の PIO ヌニットは、高精度なタイミング制御のために使用されます:
- 1 基目は、取得シーケンス全体をドライブ(パルストリガーおよび ADC サンプルリング)。
- もう 1 基目は、VGA 出力を介してリアルタイム表示を行う場合などに使用可能。 これにより、2 つの Cortex-M0+ コアはアプリケーションコードの処理に自由に利用できるとなっています。
FPGA をどのように代替しているか
以前のボード(un0rick および lit3rick)では、パルス・エコーシーケンスの高精度なタイミング制御には Lattice iCE40 FPGA が使用されていました。ピコリッックでは、RP2040 のプログラム可能入力/出力 (PIO) 状態機械を活用することで、同等のタイミング精度を実現しています。
- PIO プログラムはシステムクロック周波数で決定論的に動作し、超音波取得に必要なサブマイクロ秒レベルのタイミングを提供します。
- この実現にはHDL(記述言語)の知識や FPGA シンセシスツールが一切不要です。
- Verilog や VHDL を記述してシンセシストルチェーンを回すのではなく、標準的な Arduino 風環境で C コードを編集するだけで、取得タイミング、パルスパターン、サンプリングパラメータの変更が可能になります。
PMOD 拡張機能
デュアル PMOD コネクタにはいくつかの拡張ボードに対応しています:
| 拡張機能 | 機能説明 |
|---|---|
| VGA アウトプット | ピオ1を使用し、取得データを VGA モニター上でリアルタイム表示。 |
| MUX ボード | 複数のトランスデューサを駆動するためのマルチプレクサー。アレイイメージングやシンセティックアパチャー処理を可能にします。 |
| PSRAM | より長いブーファ用の追加メモリを搭載します。 |
| カスタム拡張 | PMOD ピンアウトは公開済みであり、ご自身で独自の拡張ボードを設計することも可能です。 |
注記: PMOD ヘッダーには、標準的な信号に加え 5V レールも含まれており、厳密な意味での PMOD 準拠とは異なりますが、これにより電力要求の多い拡張ボードを直接動作させることができます。詳細については拡張機能ページをご覧ください。
ボード比較
ピコリッックは、以前のユニオリックファミリーのボードと比較してどのように優れているのでしょうか?
| 特徴 | ピコリッック | un0rick | lit3rick | lit3-32 |
|---|---|---|---|---|
| ステータス | 最新(アクティブ) | 旧型(レガシー) | 旧型(レガシー) | 旧型(レガシー) |
| 製作年次 | 2024 - 現在 | 2018 - 2025 | 2020 - 2024 | 2021 - 2024 |
| コントローラー | RP2040 / RP2350 | iCE40 HX4K/HX8K | iCE40 UP5K | iCE40 UP5K |
| タイプ | マイクロコントローラー | FPGA | FPGA | FPGA |
| ADC スピード | 60 Msps | 最大 64 Msps | 最大 64 Msps | 最大 64 Msps |
| ADC 解像度 | 10 ビット | 10 ビット | 10 ビット | 10 ビット |
| TGC アンプ | AD8331(ゲイン幅 48dB) | AD8331(ゲイン幅 48dB) | AD8331(ゲイン幅 48dB) | AD8332(ゲイン幅 92dB) |
| オンボード HV | なし(別ボード使用) | あり | なし | なし |
| 外形サイズ | コンパクト + PMOD モジュール | 大型単一基板 | RPi pHAT | RPi pHAT |
| プログラミング | C/C++ (Arduino 風) | Verilog + Python | Verilog + Python | Verilog + Python |
| FGA 必須 | 不要 | 必須 | 必須 | 必須 |
| 拡張性 | PMOD コネクタ経由 | RPi GPIO 経由 | RPi GPIO 経由 | RPi GPIO 経由 |
| コスト | 最低価格帯 | 中価格帯 | 低価格帯 | 中〜高価格帯 |
| 最適用途 | 新規プロジェクト、教育、素早いプロトタイピング。 | FPGA の完全な柔軟性が必要なユーザー向け。 | RPi 統合型セットアップ向け。 | 微弱信号検出(高ゲイン必要時)。 |
推奨事項: 新規プロジェクトにおいてはピコリッックをおすすめしますが、FPGA レベルのタイミング制御を具体的に必要とされる場合や、lit3-32 の 92dB ゲイン範囲が必要な場合は例外となります。
取得事例
通常の取得動作は以下のようになります — 左側の大きなスパイクが送信パルスであり、その右側の小さなピークがターゲットからの反射信号です:
[画像プレースホルダー:ピコリッックと以前のボードの比較]
ソースファイル
すべての設計ファイルはオープンソースで公開されています:
- ハードウェア (KiCad): メインボード、パルサーボード、HV ボード — pic0rick リポジトリ 内にあります。
- ファームウェア: RP2040 用の C/C++ ソースコード —
ディレクトリ内にあります。software/ - ドキュメンテーション: CC BY-SA 3.0 ライセンスの下で公開されています。
購入・入手方法
- 組み立て済み品購入: Tindie で購入可能です。
- 自作: すべての KiCad ファイルと BOM(部品リスト)は GitHub リポジトリに公開されています。
ご質問は? Slack または電子メール orders@un0rick.cc でお問い合わせください。
Abdelrahman Lap 様へのご感謝
ライセンス
本プロジェクトは、以下の TAPR プロジェクトを基にしています:echOmods プロジェクト、un0rick プロジェクト、および lit3rick プロジェクト — これらのボードはオープンハードウェアかつオープンソフトウェアであり、できるだけオープンソース要素を採用して開発されています。
- 著作権: Luc Jonveaux (kelu124@gmail.com) 2024
- ハードウェアライセンス: TAPR オープンハードウェア ライセンス (www.tapr.org/OHL)
- ソフトウェアライセンス: フリースoftware;フリーソフトウェア財団が公布する GNU ガルベンド・パブリックライセンス(GPL)の第 3 版、あるいはその後、利用者が選択する場合のどの後期バージョンでも redistribution および/または modification のため自由に使用できます。
- ドキュメンテーションライセンス: クリエイティブコモンズ アトリティション - セアライク 3.0 非調整型ライセンス。
免責事項
本プロジェクトは、特に明示的、あるいは黙示的ないかなる保証(販売の適法性、品質の満足度、特定の目的への適合性等)も付与されず提供されます。
目次