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

【電子工作】オリジナルの自作Arduinoを作りたい。ボード製作の構想!

Arduinoとの出会いで電子工作という趣味を始めて2年ほどが経ちました。
マイコンを使った電子工作はESPやRaspberry Piなどいろいろとありますが、その中でもArduinoは私のようにマイコン初心者の方でも比較的簡単に扱えるように非常に良く考えられて作られた開発ボードです。

Arduinoの基本が理解出来てくると他のマイコンボードでも仕様の違いなどがあるものの根本的な部分は同じなので自然と扱えるようになってくると思います。

昨年は、これからArduinoを使った電子工作を始めてみようとお考えの方に難しいことは抜きにしてArduinoに実際に触れながら作って動かし楽しむことから始められるようにこのような書籍も出させて頂きました。
非常にありがたいことです。

これからArduinoを使った電子工作を始められる方に読んでもらいたい!2022年11月25日発売『Arduinoと3Dプリンタでロボットを作ろう』という書籍を出させて頂きました

Arduinoは登場以来もう10年ほどが経っていますが、いまだに世界中の多くの方に使われている非常に人気があるマイコンボードです。
そしてArduinoを使った電子工作を進めていくとオリジナルのArduinoボードなんかも作りたくなってくると思います。

以前オリジナルArduinoボード製作に関してこのような記事を書きました。
本家Arduinoボードは今となっては古くなったUSB端子が使われていることが多いためオリジナルのArduinoボードを作るならType-C端子、またArduinoボードの多くは無線機能が搭載されていないのでWi-FiやBluetoothといった無線モジュールを接続できるポートを用意したりと本家ボードにはない付加機能も標準で搭載したいといったオリジナルArduinoボードの構想を書いています。

【電子工作/Arduino】オリジナルの自作Arduinoを作りたい!どんな機能を追加する?ボード構成を考えてみる

最近KiCadを使った基板設計を始めたことから、まずは小規模な回路のものから基板をテスト的にいろいろと作っています。
そしてある程度基板製作の回数も増えてきたことからヒートガンを導入し表面実装パーツ(SMD)を使った基板設計も行うようになりました。

【電子工作】初めてのヒートガン(リワークステーション)を買ってみました!1台持っているとはんだ作業で大変重宝します!【RF4 RF-H2】

この時点でようやく上記記事で書いたオリジナルArduinoボード製作の構想が現実味を帯びてきました。

オリジナルArduino Unoを作る構想

Arduinoを使った電子工作をやっていると、「世界に一つだけのオリジナルArduinoボードを作ってみたい!」なんてことを考えるのは私だけではないと思います。

冒頭でお話したようにArduinoは良く出来たマイコンボードで初心者の方でも比較的扱いやすいように考えられて作られています。
そしてArduinoはオープンソースハードウェアとなり各種ボードの回路図や基板データなどの詳細な情報が公式サイトに公開されています。

例えば以下サイトはArduino公式サイトのArduino Unoボードページとなります。

参考 Arduino Uno Rev3Arduino Store

詳細な回路図や基板データなどボードに関する全ての情報が公開されています。
仕様を確認したり、ファイルをダウンロードして独自のボード作製などで利用することも出来ます。

基板設計データとなるEAGLEファイルもダウンロードする事が出来るので、本家ボードと全く同じ回路構成で作るだけならEAGLEファイルを使い基板発注を行い、指定された電子パーツを用意して実装するだけなので比較的簡単?に自作Arduinoボードを作ることが出来ると思います。

ライセンスの問題で「Arduino」という名称は使えないようですが、オリジナルボードとして「◯◯Uno」といった名称でシルクを変更すればそれだけでもオリジナルArduino製作としては楽しいと思います。

しかし自作Arduinoボードを作るなら古くなったUSB端子をType-C端子に変更したり、ArduinoにはESPのようにWi-FiやBluetoothといった無線機能が標準では搭載されていないのでこれらモジュールを簡単に接続できるポートを用意するなどの付加機能も付けたいところです!

以前書いたこちらの記事では、海外の方のオリジナルArduino Uno製作記事を参考に以下5つの項目について考えています。

【電子工作/Arduino】オリジナルの自作Arduinoを作りたい!どんな機能を追加する?ボード構成を考えてみる
オリジナルArduinoボードの構成
  • 古いタイプのUSB端子をType-C端子に変更
  • 無線モジュールを接続出来る端子を追加
  • 3.3V電源ラインを強化
  • ICSP端子を排除
  • 過剰な回路構成を簡略化

これら項目を盛り込み現在考えているオリジナルArduino Unoの回路構成はこのようなものを考えています。

①Type-C端子を採用

本家Arduinoボードは、UnoではType-B端子、NanoではMiniUSB端子が使われるなど今となっては古い規格となるUSB端子が使われています。

最近販売されているArduino互換ボードではType-C端子に変更されたものも多く出回っています。
今風なオリジナルArduinoボードを作るならUSB端子はType-Cに変更したいところですね!

②USB-シリアル変換チップ(CH340C)

本家Arduino UnoにはUSB-シリアル変換チップにATmega16U2が使われています。

CH340シリーズのチップは安価でチップまわりのパーツもクリスタルが必要なく(CH340Gは必要です)、データシートにある電源まわりの最低限のパイパスコンデンサを繋げるだけで機能してくれます。

回路構成を簡略化するためにCH340Cで現在製作を考えています。

③無線モジュール用端子を用意

Arduinoボードは標準でWi-FiやBluetoothといった無線モジュールが搭載されていないので、それら機能を使いたい場合対応した無線モジュールを外部接続する必要があります。

無線機能が標準で使えるESPなどのマイコンボードと比べ接続等面倒となることから、無線モジュール接続用の端子があると便利です。

Arduinoと接続して使いやすいBluetoothモジュールではHC-05(HC-06)あたりでしょうか。

Arduinoを使いBluetooth通信をやってみる!HC-05/HC-06 Bluetoothモジュールの使い方!

またWi-FiモジュールではESP-01(ESP8266)も使いやすいと思います。

【Arduino】小型Wi-FiモジュールESP8266(ESP-01)の基本的な使い方!スケッチの書き込み&モジュール単体で動かす基本的な方法!

これらを接続できるポート(端子)がボードにあれば接続が簡単で便利となります。

上記無線モジュールはArduinoとはUARTシリアルでの接続で使えるので回路構成は簡単に出来るのですが、ハードウェアシリアルで使うD0-RX/D1-TX端子に接続した状態だと書き込みエラーが出ることから毎回スケッチ書き込みの際に取り外すのは面倒となります。

こちらの記事で紹介した海外の方のオリジナルUnoでは無線モジュールへの電源ON/OFFを切り替えできるような構成にされていますが、モジュールに通電されていない状態でもTX/RX端子に接続された状態ではスケッチを書き込む際にエラーとなり面倒です!

TX/RXラインの接続をON/OFF出来るスライドスイッチを付けることを考えています。
折角なのでこのスライドスイッチでハードウェアシリアルシリアル or ソフトウェアシリアルでの接続に切り替えられる構成にもしています。

またICSP端子は使うことがほぼないので(SPI端子で代用できる)、nRF24L01などの無線モジュールを接続できる端子に割り振っています。
このモジュールはArduinoで私はよく使っていますが、非常に便利な無線モジュールです。

【電子工作】無線モジュールnRF24L01を使いArduino間で無線通信をやってみる!

④電源ラインの回路構成

電源ラインの回路構成はこのようにシンプルな構成で考えています。

本家Arduino UnoにはLP2985という3.3V電圧レギュレーターが使われていますが、ESP8266など比較的消費電力の高い無線モジュールと接続すると電流不足により不安定になることがよくあります。
5V/3.3VラインともにAMS1117レギュレーターを使う構成にしています。

DCジャックからの外部電源はカットしようかとも考えましたが、USB端子からの給電のみでは安定しない場合外部電源を使うことはよくあるので生かしています。(DCジャック or ターミナルブロック or PHなどのコネクタ?)

そしてこの外部電源ですが、本家Arduino Unoの電源部分の回路構成は非常に良く考えられています。
こちらが本家Unoの電源部分の回路ですが、オペアンプとMOS-FETを使いUSB端子からの給電と外部電源からの給電を電圧降下がないように上手く切り替え出来るようにしています。

そしてこちらは本家Arduino Nanoの電源部分。
外部電源端子となるVIN端子と接続されたレギュレーターの出力部分(5V)とUSB端子からのVBUS(5V)との接続はショットキーバリアダイオードを通して接続するシンプルな構成になっています。
これはPro Miniなど小型なArduinoボードではこのような構成になっているようです。

この接続ではUSB端子からの5Vがダイオードの順方向電圧VF分だけ電圧が下がってしまいます。
ショットキーバリアダイオード(SS1P3L)はデータシート上0.3Vほどとドロップ電圧は低く、Nanoの実測では0.1V程しか電圧低下はないようなので上記のように簡略化しています。

⑤I/O端子

Arduino UnoのI/O端子はピンソケットが取り付けられています。
ブレッドボードを使いテスト回路を組む場合、オス型のジャンパーケーブルを差し込む形で使います。
またシールドとの接続でも使われます。

このI/O端子ですが、本来のピンソケットに加えピンヘッダーも付いていると開発ボードとしては便利な場合があります。

各I/O端子と5V/GNDラインも取り出せるこのようなピンヘッダーを取り付けるのも良さそうです。
互換Arduinoボードではこのような端子が取り付けられたボードも多数あります。

ここまで欲張っちゃうと他の機能を乗っける面積が足りなくなりそう・・・Arduino UnoではPWMで使える端子が6本ありますが、この端子だけこのような端子形状にするのもいいかもしれません。

またICSP端子はブートローダーの書き込みなど特定の用途でしか使うことがなく、Arduinoではほぼ使うことがないと思います。
ICSP端子はArduino(ATmega328P)のSPI端子およびリセット端子に直接接続されているだけの端子なので、必要ならそれら端子で代用できます。

ICSP端子をカットすれば、nRF24L01などの無線モジュール接続用端子を設置する面積も確保できそうです!

⑥その他

その他付加機能としてI2C接続のOLEDディスプレイも差し込むだけで使えればテスト環境で便利に使えそうです。
またテスト用のタクトスイッチとブザーを1つ搭載する予定です。

便利なArduino互換ボードは多数ありますが、例えばRGBDuinoでは各I/O端子の状態が分かるLEDが付けられていたり、テストで使えるタクトスイッチやスピーカーが1台取り付けられています。

【RGBDuino Uno】LEDやブザー搭載のArduino Uno互換ボード『RGBDuino Uno Jenny』。かなり派手な痛Duinoですがちょっと便利に使えます!

Arduinoを使ったプロジェクトの開発段階でテストスケッチを動かす際にボード上にテストで使える物理スイッチがあると便利な場面も多いと思います。

ボードをイメージしてみる!

このようにこれまでArduinoを使ってきてあると便利だなと思っていた付加機能を考えArduino Unoのボード上に配置していくとかなりの面積を取ってしまいます。

Arduinoはこのような付加機能はシールドを接続して実現するというのが基本だと思いますが・・・ちょっと欲張りすぎでしょうかね?

主要パーツ(サイズの大きなもの)だけをイメージしやすいようにCADで配置してみましたがDIP形状のATmega328Pでは結構大変そう、シルクプリントも見にくくなりそうです。
表面実装タイプのATmega328P-AUを使えば上手く配置できそうなイメージではあります。

付加機能を付けすぎて逆に使い勝手が悪くなってしまうと本末転倒感もあり・・・
なかなか全体構成が決まらない感じです!

最後に!

全体構成が決まれば回路構成も決まり基板設計に移れるのですが・・・なかなか決まらなくて停滞しております。
とは言っても、あれやこれやと考えている時間も楽しいわけですが・・・。

世界に一つだけのオリジナルArduino Uno、じっくり考えて製作できればと思っています。

何か面白いアイデア等あればコメント頂ければありがたいです。

コメントを残す