この記事ははJLCPCBの提供でお送りします。
JLCPCBとは
jlcpcb.com (↑こちらは日本語版のログインページで、お得なクーポンも配布されています。)
JLCPCBとは、プリント基板製造などで有名な香港の企業です。
日本からでもWebページでポチポチするだけでKiCADなどで作成した基板データの製造を依頼できます。
値段もかなりお手頃で、ホビー電子工作ユーザーの間では広く利用されています。
この記事の作例もJLCPCBに基板を発注して実現しました。
どういうもの?
Arduino NanoはArduino UNOと同じATMega328を搭載した、小型の開発ボードです。 小型ゆえそのまま製品に組み込みやすく、例えば私の作っている電子楽器のRakuChordでも、このボードをそのまま組み込んでいます。
Arduino Nanoの電源はUSBコネクタを経由して供給するのが普通ですが、携帯できるガジェットを作る場合は電池で動かせると便利です。
電池で動かす場合は、USBと同じ5Vを作る必要があるので、例えば単四電池を4本の電池で6Vを作り、レギュレータで降圧するような構成が必要です。
しかし、携帯できるガジェットとなると大きさの制約などもあり単四電池4本だとかさばってしまうこともあり、もう少しコンパクトな電源が利用できると便利です。
ということで、単4電池1本1.5Vを昇圧して5Vを作り出すような開発ボードが欲しくなりました。
機能紹介
- 単4電池x1ホルダー
- I2C接続のOLED
- Arduino Nano
- 電源用スライドスイッチ
- 5V昇圧
細かくそれぞれの機能について紹介します。
単4電池x1ホルダー
単4電池を1つ固定するための電池ホルダーを利用します。 単4電池2本にするか、1本にするかは動作時間に影響するので、迷ったのですが、今回は省スペースを意識して1本にしました。
この電池ホルダーは、AliExpressで出回っているものですが、ほかの種類のものはあまり見当たりません。 安いのは良いのですが、以下のような問題点もあるので注意です
- 電池を取り外すのが大変
- 電池を取り出さないようにするためのガードがきつすぎて、逆に外すのが大変
- ピンが太すぎて、ニッパーで切るのが大変
以上の問題はありますが、比較的安価($0.3くらい)で基板に直接固定できるため、コンパクトな開発ボードを作るのにはかなり適した部品であると思い、今回はこれを使いました。
I2C接続のOLED
開発ボードには何かしらの表示機がついていると便利だと思い定番の128x64のOLEDを搭載することにしました。
(手元には2種類のOLEDボードがありました、ピン配置、コントローラICは同じですが、若干ボードのサイズが違います)
I2C接続のもの、SPI接続の物、I2C接続の中でもピンの並びが違うもの、などいろいろなバリエーションがあるので注意が必要ですが、今回はI2C接続でピンがGND, VCC, SCL, SDAの並びのものを選びました。
Arduino Nano
Arduino UNOと同じATMega328を搭載した開発ボードです。家にあったのはこれの互換品で、USB端子がMicro-Aのものです。 純正のものと機能は変わらず、ボードの大きさやピンの配列も同じです。
電源用スライドスイッチ
これも我が家の定番部品。基板の端に取り付ける基板表面に対して垂直な向きのスライドスイッチです。
5V昇圧
5V昇圧については2種類の回路を用意しました。
1つは5V昇圧用の3ピンのモジュールを取り付ける方法、もう一つはHT7750という昇圧用のICとその周辺部品を取り付ける方法です。
今まで5Vに昇圧するときはHT7750というICを使っていたのですが、AliExpressで3ピンの5V昇圧用モジュールをみつけ、便利そうだと思ったので、今回はどちらか1つを実装できるように基板を設計しました。
これで、仮に3ピンの5V昇圧モジュールに問題があった場合は、実績のあるHT7750を使うこともできます。このように基板上に複数の同じ役割のパターンを作るのは「こんなこともあろうかと」という感じで、有用なのですが、あまりやりすぎると複雑になりすぎて、設計を間違えてしまい、結果としてどちらも動かない役立たずの基板になったりすることもあるので注意が必要です。
デザイン、発注
今回の基板は、なるべくコンパクトにしたかったので、部品の配置に気を遣いました。 また、開発ボードということで、自由に部品を配置できるようなユニバーサル基板的なゾーンも用意しました。
Arduino Nanoのピンはすべて引き出して、Arduino Nanoの機能はそのまま利用できるようにしました。
また、ADCポートでバッテリーの残量も確認できるようにしました。
大きさは名刺サイズ程度にし、JLCPCBの最安料金で発注できるようにしました。 (1注文当たり5枚の基板が1つだけ割引になるため、1注文なら5枚で$2+送料)
組み立てと今回の設計ミス
ICを直接マウントしていないため、このボードの組み立ては比較的簡単です。 電池ケース、Arduino Nano、5V昇圧モジュール、スライドスイッチ、OLEDをはんだするだけです。
なのですが、、
今回も設計をミスってしまいました・・、とても初歩的な間違いで恥ずかしいのですが、まぁこれも誰かの役に立つかもしれないので、紹介します。
Arduino Nanoから引き出したピンの順番がおかしい
今回の動作テストではあまり関係なかったですが、Arduino Nanoのピンをそのまま引き出したつもりが、一部のピンの配置が入れ替わっており、紛らわしい仕様となっていました。 まぁ、これはこれらのピンを利用する際に気を付ければ問題は起きないのですが、不可解な仕様となってしまいました。
Arduino NanoのGNDが未結線
Arduino NanoのGNDの端子をバッテリーのGNDの端子がつながっていませんでした。そのため、組み立てて電源を入れてもArduino Nanoが起動しない問題が発生しました。
これは単純に回路図上のArduino NanoのGNDのピンが未結線だったためで、デザインルールチェックを実行するとエラーが出るのですが、未結線のまま発注してしまいました。
ワークアラウンドとして、Arduino NanoのGNDのピンと近くのGNDが来ているパッドを導線ではんだ付けしました。
5V昇圧モジュールのVINが未結線
こちらも凡ミスです。電源のラインに「BAT」というラベルを付けていたのですが、「BAT+」という表記と混ざってしまい、意図した結線が行われていませんでした。
こちらもワークアラウンドとして電源の来ているピンと5V昇圧モジュールのVINを導線ではんだ付けしました。
動作確認
OLEDのライブラリであるu8g2ライブラリのデモプログラムを書き込んで動作を確認しました。 電池駆動でOLEDを制御できることを確認しました。
まとめと感想
Arduino Nanoを単四電池1本で動作させるためのOLED付きの開発ボードを設計しました。 Arduinoを使ったモバイルゲーム機や、電子楽器などのプロトタイピングに役立ちそうだと感じました。
また5V昇圧モジュールも初めて使い、問題なく1.5Vを5Vに昇圧できることを確認しました。
開発ボードを設計してみて、開発ボードに乗せる機能の選別について、かなりのデザインセンスが必要だということを感じました。あれもこれも機能を乗せたいという気持ちもありつつ、色々乗せれば乗せるほど基板が大きくなったり、部品点数が増えてしまったりとトレードオフがあります。
また、開発ボードの設計は1つの世界を作るような楽しさがあり、うまくコンセプトにあったボードを設計できると何とも言えない達成感がありました。
皆さんも、自分の考える最強の開発ボード、作ってみませんか?