見出し画像

RP2040+ESP32実験ボード

始まり

RP2040にESP32を追加して、Raspberry Pi Pico Wのように動作させる方法を知りたくありませんか?

2つのマイコン間の通信方法を知りたいのですか?

そして、「Raspberry Pi Pico W」を自作するための基板設計の方法を知りたいですか?

今回のnoteでは、これらの疑問に対するすべての答えを見つけることができます!(値段が300円ですが、最後まで読めます。よかったら投げ銭の気持ちとして購入してください。)

また、自分で作りたい!という方のために、回路図とガーバーファイルをGitHubに共有しましたので、自由に遊んでください。お役に立てばうれしいです!
https://github.com/kawashimaken/rp2040-esp32-experiment-board

忙しい人はまず動画をご覧ください!

物語の始まり


ご存知の通り、Raspberry Pi Picoは2021年1月にRaspberry Pi Foundationから発売されたマイクロコントローラーボードです。 安価でパワフル、そしてC、C++、Python、MicroPythonなど様々な言語でプログラミングが可能です。現在、メイカーの間で人気が高まっています。

Raspberry Pi Pico

あまりに安いので、発売当初に5個ほど買ったのですが、すぐに手を出す暇がありませんでした。

2021年1月に初代Raspberry Pi Picoボードが発売されてから数ヶ月、Raspberry Pi Pico Wも発売されました。

Raspberry Pi Pico Wは、ワイヤレス機能を内蔵したPicoのバリエーションモデルです。

残念ながら、日本では、長い間Raspberry Pi Pico Wは法的規制のため、現在ホビイストが購入することができません。(3月27日発売開始しました!)

そこで、「自分のオリジナルRaspberry Pi Pico W」を作ってみました!

発想はとてもシンプルです!
Raspberry Pi PicoとRaspberry Pi Pico Wの違いは無線接続だけなので、Wifiモジュールを追加することでRP2040に無線接続機能を追加することはそれほど難しいことではないでしょう!

RP2040+ESP32=my Pico

PCBと回路図


まず、最初に、
回路図が欲しい~回路図がないと始まらないですね。

今回は、RP2040側の回路とESP32側の回路を組み合わせるというのが基本的な考え方です。

以前の動画でわかるように、ESP32の開発ボードを作っているので、ESP32の部分の回路はなんとか用意できるのです。

幸いにも、RP2040側の正式な回路図も公開されています。しかも、回路構成についての詳しい解説もあります。
どこに資料があるかわからない方のために、リンクを貼っておきます!

https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf

この資料の第2章では、「ミニマルデザイン例」を紹介しています。これは、まさに私が欲しかったものです! この章に書かれている例に従うだけで、RP2040関連の回路図が描けるようになりました。

この資料の説明はとても丁寧でわかりやすく、プリント基板をレイアウトする際の注意点まで詳しく解説しています。

RP2040を使ってオリジナルPCBを設計したい人には必読です。ぜひ一度手にとって、じっくりと読んでみることをおすすめします。

第3章では、VGA、オーディオ、SDカード関連の回路について解説しています。
今回は、SDカードを基板に載せたいので、SDカードのところだけ参照して、ここに書かれているような回路を描きました。

RP2040側の回路が完成したので、次はESP32側の回路を作ります。
ESP32側は、前回のプロジェクトの回路図をそのまま使っただけなので、こちらも深刻な苦労はありませんでした。

マイコン間の通信には、I2C、SPI、UARTなど、いくつかの方法があります。しかし、今回は、2つのチップ間でシリアルデータを伝送する方法として、シンプルで信頼性の高いUARTプロトコルを使用することにしました。

このプロジェクトにUARTを選んだ主な理由の1つは、通信に必要な配線が2本(データ送信用とデータ受信用の2本)だけだからです。そのため、実装が簡単で、接続に必要な配線の本数を最小限に抑えることができます。そのため、2つのチップ間の配線が容易になります。

UARTのもう一つの利点は、そのシンプルさです。他のプロトコルとは異なり、UARTは複雑なアドレス指定スキームやメッセージ検証プロトコルを必要としません。

その代わり、データは単にバイトの連続したストリームで転送されるので、実装やデバッグが容易です。

そこで、2つのマイコン間の通信方法を学び、実験するのに適した方法だと想定したのですが、予想通りの結果となりました。

PCBデザイン

回路図が完成したら、次はPCBを設計します。

PCBのレンダリング


このPCB設計は、実は今までやった中で一番複雑なものです。
チェックと再チェックの繰り返しで、2カ月ほどかかりました。永遠にかかりそうな感じでしたね。


PCBのデザイン

特にRP2040の周りの配線は、スペースがあまりないので大変でした。オリジナルのRaspberry Pi Picoとは異なり、手でハンダ付けできる大きさの表面実装部品を使用することにしました。

Raspberry Pi Picoでは、パッケージサイズが0201と小さい部品も使われていますが、同じコンデンサや抵抗でもパッケージサイズが0603のものを選びました。これは、私がハンダ付けできるギリギリのサイズです。


プリント基板を注文する


いつものように、このビデオのスポンサーであるjlcpcbにPCBを注文しました!今回は黒いPCBを試してみました、黒いPCBはしぶくて、かっこういいですね!

Black PCB

ハンダ付け


次のステップは、楽しい部分です!はんだ付けです!
いつものように、下のパーツや小さいパーツから始めてみました。

RP2040は、このプロジェクトの鍵であり、ハンダ付けが最も難しいコンポーネントでもあります。
主役であるだけに、はんだ付けには正確さと慎重さが求められます。
RP2040がしっかりと固定されれば、あとは完璧なはんだ付けができるという確信を持って、次のステップに進むことができます。

はんだ付けが終わった2040

楽しくもあり腰が引けるようなハンダ付けを数時間続けた後、ようやく形になり始め、とても期待できそうです!

しかし、残念なことに、PCB設計に誤りを発見してしまいました。正確には、回路図に誤りがあったのです。

RP2040とESP32の間のRXとTXの接続を間違えていたことがわかりました、
何度も何度も回路図を確認しても、やはりヒューマンエラーはすり抜けてしまうのです。

RxとTxをやってしまいました!

幸いなことに、大したことはなく、比較的簡単に直すことができました。動画の冒頭からもわかるように、基板上の間違った接続を切り、正しいピンを2本のワイヤーで接続し直したのです。

テスト

バグが修正されたら、いよいよテストです!

ここでは、テストのプロセスについてあまり詳しく説明すると、かなり長くなってしまうので、割愛します。

ただ、今後、別の動画でテスト工程をまとめるかもしれません。とりあえず、ESP32側、RP2040側ともに問題なく動作したことをお知らせします。
また、2つのマイコン間の通信が正常に動作することも確認しました!

実験的なボードとはいえ、意図したとおりに動作しているのを見るのは素晴らしいことです。設計とハンダ付けの両方が成功した証しです。私は自信を持って、このプロジェクトは成功だと言えます!このプロジェクトは成功だと自信を持って言えます!

最後に

さて、みなさん、今日はこれで終わりです!
ご興味のある方は、GitHubのリポジトリで詳細や今後のアップデートをご確認の上、ぜひお気軽に遊んでみてください!

もし、何か間違ったことや改善できることがあれば、遠慮なく下にコメントを残してください。

このようなnoteや、うえのような動画をもっと見たいと思われた方は、このnoteをお友達とシェアしてください。

それでは、また次回お会いしましょう!

ここから先は

0字

¥ 300

株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world