【開発ノート】スマートホームコントロール基板

# 1 概要
スマートホームを実現するためのユニット（基板）試作したので、その内容を記しておきます。試作なので回路図や部品リストについては詳しく載せていませんが皆さんの基板設計に貢献できるような情報を掲載しています。

# 2 仕様
基板には処理を行うマイコン、マイコンに書き込むためのUSB端子とUSBドライバ（USB→UART変換IC）、スマートフォンと連携するためのBluetooth送受信機を搭載しました。
基板を作るにあたり、基板CADの[DesignSpark PCB](https://www.rs-online.com/designspark/pcb-software-jp)（以下DSPCB）を使用しました。


## 2.1 機能詳細

|部品、機能|内容|
|---|---|
|赤外線LED|赤外線で動作している家電を操作するためのLED|
|マイコン|ユニットの演算処理、動作命令を行うため|
|USBシリアル変換|USBケーブルでPCと接続し、マイコンにプログラムを書き込む・シリアルモニタを見るため|
|マイクロSDカードリーダ|動作状況や環境情報などを記録するため|
|Bluetooth送受信機|スマートフォンやPCと相互に情報をやり取りするため|
|ジャイロセンサー|ユニットの角度情報や温度情報を取得するため|
|外部端子|外付けセンサやアクチュエータを接続し、機能を拡張させるため|



# 3 結論
下図のように作成した。
↓生板表面
![生板外観表.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/f6562046-0f8c-3138-930c-abb892c21865.jpeg)
↓実装状態表面
![実装表面.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/914bd64e-1f5a-9764-926c-3c972bfc0fab.jpeg)
はんだ付けがへたくそなのは許してください。

# 4 回路図
基板の回路図について説明します。
![回路図全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/21978726-470d-ebb8-abf5-db894c9d3515.png)
回路図では機能別に9つのブロックに分けています。
次に各ブロックの説明をしていきます。
## USB端子＋電源保護
電源供給部分から見ていきます。

電源はUSBのみから行います。当初の構想ではバッテリーからの給電も考えていましたが、電源回路が複雑になるのと、ここがうまく動作しないと他の回路も試すことができない事態を避けたかったからです。
USB端子から入ってきた電流は最初にヒューズを通過します。ここで短絡等の異常による過電流を保護しています。その後に、電源ノイズ対策用と負荷変動に対策するためのコンデンサを挿入しています。また、電源が入ってきているか確認するためのLEDを搭載しています。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/8ea1a6ed-33be-c855-66bf-07d475eb2305.png)

## USB UART変換IC
USBからマイコンが認識できるUARTに変換し、PCとマイコンボードのコミュニケーションを実現するための回路です。ここら辺の詳しい説明はこちらの[「自作Arduino　CH340Eを使用したUSBシリアル変換の失敗・改善レポート」](https://qiita.com/Antareskkudo/items/9654e2de2b920f497e00)でしていますので参照してください。
こちらのブロックでは[CH340E](https://akizukidenshi.com/catalog/g/gI-13543/)をベースとして外部素子を付ける形となっています。こちらのブロックではUSB端子から送られてきたUSB情報（D+、D-）を変換して、UART（RX、TX）に変換してマイコンに送ります。
![USBドライバ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/9eb945ff-a283-2411-89a6-6622ef497c19.png)
ここでの重要部分は下部の抵抗、コンデンサの定数です。
![USB定数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/3d84e3ae-1deb-4eb5-bac5-2713da732815.png)
[参照記事](https://qiita.com/Antareskkudo/items/9654e2de2b920f497e00)ではRTS#ピンとマイコンのリセットピンの間にはハイパスフィルタの役目を担う、0.1uFのコンデンサを挿入しています。
しかし、ご存じの通り配線にはLとR成分、配線を並行する場合などはC成分が出てきます。その為回路パターンによってはこの定数ではうまく信号を伝達できない可能性が出てきます。
そこで直並列に1005サイズの抵抗（コンデンサ）を置けるようにしています。動作がうまくいかない場合は直並列にコンデンサや抵抗を付けることで時定数の変更を行えます。

## マイコン
ボードのメイン部のマイコンのブロックです。
このブロックの電源、GND、リセットボタンの各部はArduino UNOの構成と同じです。一部構成を変更したところだけ次に紹介します。
![マイコン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/bc6c9a1f-e11b-b53a-10f2-c045fe6ccf45.png)

### リセットピン
こちらでは10kΩのプルアップ抵抗とダイオードを並列接続しています。こちらの構成は先ほどUSB UART変換ICのブロックの説明で参照した[こちらの記事](https://qiita.com/Antareskkudo/items/9654e2de2b920f497e00)に書いたものと同じです。意味としてはハイパスフィルタがチャージポンプ回路として動作してしまうのを防ぐためにダイオードを接続しています。その役割のため、順方向電圧が小さい「ショットキーバリアダイオード」を使用しています。
![リセットピン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/9305371c-6a69-e336-66be-0000a67d6185.png)

### 赤外線LED
AtmegaのI/Oポート7、8ピンに赤外線LEDを接続しています。これによって7と8ピンから信号を出すことで家電や赤外線リモコンで動かせるものを操作できます。回路構成は可視光LEDと同じです。電流制限抵抗も通常のLEDと同様に決めています。
![IRLED.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/779b4900-f79b-027c-2009-e89785bd900a.png)

## マイクロSDカードリーダ
マイクロSDカードリーダの回路図としては特に特別な設計箇所はありませんが、電源線からのノイズを除去するために0.1uFのコンデンサを接続しています。また、リーダーとAtmegaはSPIを用いて通信しています。このインターフェースでは４本の信号線を用います。しかし、High電圧がリーダーでは3.3V、Atmegaでは5Vとなっているため直接接続できません。後に説明するレベルシフト回路によって電圧レベルを変換しています。
![SDカード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/50091f59-56c8-14a7-23a6-78a7e014f6cc.png)

## Bluetooth送受信機（RN-42）
前述したように本ボードではスマートフォンとの連携も踏まえて、Bluetooth送受信機を搭載しています。
アンテナモジュールは秋月で販売している[RN-42](https://akizukidenshi.com/catalog/g/gM-07612/)を使用しました。SPP（Serial Port Profile）で他のデバイスと通信できます。
下記の回路図では大きく分けて三つのブロックがあります。回路図は秋月電子で販売しているRN-42の[DIP基板の回路図](https://akizukidenshi.com/download/ds/akizuki/AE-RN42_manual_r1.1.pdf)をベースに作成しました。
右のメインユニット部分ではUARTのTX、RXをそれぞれAtmegaのI/Oピンの2、3ピンに接続しています。UART RXとAtmegaの3ピンについてはHighレベルの違いのため途中にレベルシフト回路を接続しています。また、UART CTSとUART RTSは0Ω抵抗で短絡させています。この理由については[私が以前書いた記事](https://qiita.com/Antareskkudo/items/f80b74151e56759d6c67#arduino%E3%82%BB%E3%83%B3%E3%82%B5rn-42%E3%81%AE%E9%85%8D%E7%B7%9A)を参照してください。
左部上部はBluetoothの状態を示すLEDです。
左部下部はBluetooth送信機のモード変更スイッチです。モードについては秋月電子のRN-42販売サイトか、マイクロチップ公式の情報を参照してください。
![rn-42v2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/abf40ff5-a795-8e95-691e-6f1948cdf79f.png)

## レベル変換（レベルシフト回路）
一般的なロジックレベルシフト回路です。左部が3.3V系で右部が5V系となっています。ここではマイクロSDカードリーダからAtmegaの間の通信と、BluetoothからAtmegaの間の通信の電圧変換を行っています。
プルアップ抵抗は10kΩを選択しました。抵抗値はAtmegaのIOポートの入力電流を超えない値であれば問題ないと思います。
![レベルシフト回路.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/b4d3c749-701d-0e60-b147-ddcb5837bd24.png)

## その他
その他のMPU-6050、３端子レギュレータ、端子類のブロックについては特に記述事項がないので割愛します。詳細は回路図を見てください。

# 5 外観特徴
ここでは外観（レイアウト）での特徴について触れていきます。尚説明に際し、申し訳ありませんが試作機で耐久試験の実施中なのでCADのレイアウト図と裏面は見せられません。おもて面の外観写真で説明していきます。

## USB端子周り
まずはUSB周りについて見ていきます。下図はUSBコネクタからレギュレータ付近を拡大した写真です。
少しわかりづらいかもしれませんが、右写真のヒューズの下部の端子から２本の赤線が引かれている間が5Vのパターンです。できるだけ配線による抵抗を低くするために配線はなるべく太くしました。また、電源ノイズ対策としてヒューズを越えた後すぐに複数の容量のコンデンサを入れています。配置については3つのコンデンサをできるだけusb端子側（供給側）にし、残り一つのコンデンサをレギュレータ側に設置することで役割をノイズの対策と発振防止でその役割を分けています。
![コンデンサ写真.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/33551967-d98c-6722-46e8-b455d175100a.png)

## USB UART変換IC周り
下にUSB UART変換IC付近の拡大写真を載せています。
毎度ですがはんだ付けが汚くてすいません。手はんだだと難しいですね...
こちらでは10と7ピンにコンデンサを入れています。この位置はできるだけ近くしています。また、Atmegaへの伝送線路となる9、8ピンからの配線はできるだけ配線長を同じにしています。一方で4ピンのリセット信号の配線はバイアホールを取って裏面のレイヤで配線しました。ここはもう少し直線距離で引きたかったのですがレイアウトの都合上やむを得ずこのような配線の仕方をしました。裏面でRC定数を選択できます。
![IC周り.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/b73a3820-624c-559c-fc4c-c012e31d5ceb.png)

## レベルシフト回路周り
下にSDカードリーダとAtmegaの間のレベルシフト回路を載せています。写真右にAtmega（ハイレベル系統）で写真左にSDカードリーダ（ローレベル系統）があります。抵抗の位置とFETの向きをそろえることで実装にかける負担を低減させています。
![レベル周り.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/e31d3cd1-52e9-b11d-40a1-34fa08f8c402.png)

# 6 終わりに
いかがでしたでしょうか？本記事はモノやシステムの紹介というよりは、作ったことを記録した感じに仕上げました。回路の説明で利用できる箇所があれば幸いです。
今後も基板を作りましたら本記事のように記録を残しておきます。