大学で実験指導している人から「Arduino を大学等の教育現場で使う場合,ブレッドボードと一緒に使うことが多く,例えば電源とグラウンドをジャンパー線で Arduino のソケットからブレッドボードに挿す時に,慣れない学生はうまく接続できなかったり間違えて接続したりすることがある.また Arduino をUSB接続すると基板が軽いためフラついて危ない.」ということを聞いた.であれば Arduino とブレッドボードが一体になっているようなのがあれば良いかも,ということでブレッドボードに挿して使う Arduino 互換基板を作ってみました.
いやいや,Arduino Nano や,Arduino Micro をブレッドボードに挿して,ブレッドボードの +- ラインに電源とグラウンドを接続しておけばいいじゃないって言われるとその通りなので身も蓋もありませんが.まぁ Arduino 互換基板を作ってみたかっただけということで.ちなみに Brduino はブレッドゥイーノと発音することにします.
使用するマイコン
さて,設計する際にマイコンを何にするかです.部品点数などを考慮すると Arduino Micro で使われているATmega32U4 を使いたかったのですが,ATmega32U4などUSB機能付きマイコンのブートローダに含まれるVID(ベンターID)を使用することはUSBフォーラムやArduino製造者が許可していないとのことで,そのまま使用するには問題があります.これはArduino UNOなどの ATmega16UのようにUSBシリアル変換のためにUSB機能付きマイコンに書き込むファームウェアに含まれるVIDも同様です.(Arduino互換機の作り方参照)
これらのことからマイコンはちょっと古いですが Arduino Nano で使われている ATmega328P-AU にして,別途 USB シリアル変換 IC を使うことにしました.USBシリアル変換 IC は SILICON LABS の CP2102にしました.Arduino Nano Every で使われている ATmega4809 も考えましたがこちらは別の機会ということで.
基板の概要
出来上がった基板です.黒のジャンパー線はご愛嬌.
Arduino Unoと同じようにUSBとDCジャックを用意しています.USBコネクタはマイクロUSB Type-Bコネクタとしました.ICSP(In-Circuit Serial Programming) 端子は色々と使えるのでピンヘッダーを用意しています.シールド基板との接続用のソケットはありません.ので当然ですがシールド基板は使えません.
ブレッドボードに直接挿入するピンは+5V,+3.3V,GND,RESET,AREFそして20本のI/Oピンです.I/Oピンの内訳は14本のデジタルI/Oピン(うち6本はPWM出力可能),6本のアナログ入力ピン(デジタルI/Oピンとしても利用可能)となっています.VINを外部から供給できるようにはなっていません.
ブレッドボードに挿入した状態です.ハーフサイズだと使える穴の数が少なくなってしまうのでフルサイズのブレッドボードを使うようにしています.このように挿した場合,上の赤は +5V,下のオレンジは +3.3V,そして黒のラインが GND となります.
Arduino IDE の設定
Arduino ブートローダーは書き込み済みなので Arduino IDE をそのまま使えます.Arduino IDE のボードマネージャで Arduino/Genuino Uno を選択すれば良いです.
USB シリアル変換に SILICON LABS の CP2102を使っているので,PCにドライバがインストールされていない場合は,VCPドライバのダウンロードとインストールからダウンロードしてインストールして下さい.
正しくインストールされている場合はデバイスマネージャーのポートに追加されているデバイス名(Silicon Labs CP210x USB to UART Bridge)とシリアルポート番号(COM4)が確認できます.
7 セグメント LED シリアルドライバキットを点灯
使用例として秋月で購入した7 セグメントシリアルドライバキットをブレッドボードに実装してみました.Brduino の IO10とキットのCN2の2ピン(LATCH),Brduino の IO11 とキットのCN1の4ピン(SDI),Brduino の IO13とキットのCN1の3ピン(SCK)そしてキットのVDDとGNDをブレッドボードの+5VとGNDラインに接続します.スケッチは秋月のサイトにあるサンプルスケッチ(AE_7SEG.ino)を使いました.
資料
回路は Arduino Uno R3 を参考に,USBインターフェースの部分を Atmega16U2-MU から CP2102 に変更したものになっています.