Arduinoベースの自作基板のススメ②-1

注意：「Arduinoベースの自作基板のススメ」では、eagleを使って書いた回路を出力し、基板メーカに発注することをゴールにしています．
## 目次
書いたらリンクつけます．

1. [準備](https://qiita.com/conel_fg/items/f5091302145d757da7ea)
2. eagleライブラリ「.lbr」の編集方法 その①(今回) / [その②](https://qiita.com/conel_fg/items/999c157d72b91619010c)
3. eagleでの「.sch」「.brd」の編集方法
4. ブートローダーについて
5. 部品の選び方
6. 基板の発注



# はじめに

　Arduinoなどのマイコンボードを使ってスケッチ書いてDIYを楽しんでいる人，最近増えてる気がします．でも，せっかく完成したデバイスのジャンプワイヤが抜けたり断線したことはありませんか？ブレッドボードに挿した抵抗やコンデンサが何かの拍子にショートしたりしたことはありませんか？ジャンプワイヤが多すぎてイライラしたことはありませんか？同じデバイスをたくさん作りたいけど，いちいちジャンプワイヤつなぐのを面倒に思ったことはありませんか？

**それ全部基板化して解消できます**

## この記事の対象
* Arduinoを活用したハードウェア開発に興味があるひと
* eagleやKiCADなどの電子回路CADに興味がある人

## 概要
* eagleで編集する「.lbr」形式のファイルの編集方法について説明します．
* 記事が長くなってしまったので2つに分けました．→[次項](https://qiita.com/conel_fg/items/999c157d72b91619010c)
* 今回は回路記号とフットプリントを作成します．

# eagleを使おう
さて，前回はeagleのインストールとArduino UNOの基板データを見ましたが，料理に例えると，これは調理器具と出来上がった料理にあたります．
調理器具(eagle)は前回用意したので，今回からは料理をしていくわけですが，まずは食材が必要ということで，今回は食材(=回路図で使う記号とフットプリント)を用意できるようになりましょう．

## ライブラリファイル「.lbr」の新規作成
ライブラリファイルとは，eagleで開発する際，
* 回路図で使用するディスクリート部品やIC部品の回路記号の管理
* 部品を基板に実装する際のフットプリント(=はんだ付けするためのパターン)の管理
* 回路記号とフットプリントについて、対応するピン同士の紐付け
* Fusionなどで基板の3Dモデルを出力する際の3Dモデル(なくても良い)と部品の紐付け

を行うファイルです．
まずは，下図のように「File -> New -> Library」からライブラリファイルを新規作成します．
<div align="center"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/eb156828-4c1f-c54d-ef7e-303ed4c35a2a.png" width="50%"></div>

新規作成すると，以下の画面が表示されます．
![スクリーンショット 2022-02-28 15.46.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/19848cae-d407-fc15-9f24-7215571bd341.png)

Symbolは回路図で使用する記号，Footprintはフットプリント，3D Packageは3Dモデル，DeviceはSymbol・Footprint・3D Packageの紐付けを行います．
なお、基板を製造するために、部品の3Dモデルは必須ではないため、説明は省きます．
したがって，Symbol・Footprintを先に作成し，Deviceで紐付けするという流れで作業します．
**今回の例ではAVRマイコン「ATTiny85」を作成していきます．**

## Symbolの作成
### Symbolの新規作成
まずは，Symbol(=回路記号)の作成をやってみましょう(後述するFootprintを先に作成するでも問題有りません)．
ATTiny85([データシート](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf))はSOIC-8という4本x2のGPIOを持つパッケージなので，以下のような記号を作成していきます．
各GPIOの名前はデータシートP.2にあったのでそのようにします．
<div align="center"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/6726368b-6e92-aa2e-b8a0-0c39304e839f.png" width="50%"></div>

ライブラリファイルの図の「Add Symbol...」をクリックし，以下の画面で作成する部品の名前を入力してOKで作成できます．

<div align="center"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/ac490895-c0f5-6a97-2be0-c6e0d82dd720.png" width="50%"></div>

以下の画像がSymbolを作成していく画面です．

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/aebe9621-aa52-4a28-4c74-4d0322cf93bf.png" width="80%">

### ツールの説明
画面左側に以下のようなツールがあります．ここではこれらのうち必ず使うもの・よく使うものを紹介します．
![スクリーンショット 2022-02-28 16.15.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/32c25672-4847-b66e-f3db-c74f209d6cd1.png)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/af7afff9-e891-98b6-0cde-e12969524250.png" width="4%">Pinツール：信号線やGPIOを表すピンを追加できます．同名のピンは存在できないことには注意が必要です．あるピンをコピー&ペーストすると，同名ピン回避のためにナンバリングされる仕様になっています．また，以下に示す画面上部のオプションでピンの形状を変更することができます．いろいろ試して好きなのを選ぶと良いです．
　　　　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/585f8a8d-547f-1e77-b8ae-88cee06e4c0d.png" width="60%">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/559587f6-0fe8-f0e3-47cb-d21f153f80e3.png" width="4%">Textツール：テキストを作成します．部品名などを記号のそばに書くことで，回路図がわかりやすくなります．「>NAME」，「>VALUE」は予約語で，>NAMEは配置番号，>VALUEは抵抗値や静電容量などあとから変更した番号や数値が代入されます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/522aebf2-7ac8-20c3-1c02-109060cdea33.png" width="4%">Lineツール：線を引きます．部品の形状などを模して記号を自由に書くことができます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/e98b44ad-14ec-2226-9202-a528ed0f9577.png" width="4%">Nameツール：Pinツールで作成したGPIOの名前などを変更できます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/fbe40512-9310-2d4a-5b10-7c354490b346.png" width="4%">Groupツール：範囲内のPin・Text・Lineなどを選択し，移動・回転などを行うことができる．移動は．選択中のPin・Text・Lineなどをドラッグ&ドロップ，回転は，Pin・Text・Lineなどを移動(ドラッグ)中に右クリックで回転できます．

>eagleにはレイヤーという概念があります．TextやLineは選択中のレイヤーに配置されます．Symbol(=回路記号編集画面)ではあまり意識しなくても良いですが，TextやLineをどのレイヤーに入れるかは個人の好みによります．

### ATTiny85の回路記号を作ってみよう
上記で説明したツールのみで，初めに示したATTiny85の回路記号を作成することができます．
以下に手順を示すので，やってみましょう．

1. Pinツールでひとつピンを作成します．
1. Nameツールで先ほど作成したピンの名前を「PB0」にします．
1. GroupツールでPB0ピンを選択し，6個コピー&ペーストし，「PB5」まで作成します．
1. 1・2と同様の手順で「GND」「VCC」ピンを作成します．
1. 上記で作成したピンを下図のように配置します．
1. Symbolsレイヤーを選択し，Lineツールで作成したピンを囲います．
1. SymbolsレイヤーまたはNamesレイヤーを選択し，Textツールで「ATTINY85」「>NAME」を作成します．

<div align="center"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/6726368b-6e92-aa2e-b8a0-0c39304e839f.png" width="50%"></div>

一通り作成できたら，ライブラリファイルを名前を付けて保存しましょう．

## Footprintの作成
### Footprintの新規作成
次は，Footprintを作成しましょう．
Footprintを作成するに当たり，eagleを使う前にパターンの寸法図を確認する必要があります．
今回は表面実装タイプの「ATTiny85-20SUR([データシート](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf))のパターンを作成します．
データシートのP206を確認すると，ATTiny85-20SURは「8S2」というパッケージのようです．
すなわち「8S2」を実装するパターンを作ればよいということです．
また，「8S2」の寸法図はP208にあります．
部品によっては，このように同じICでも複数のパッケージ形状が存在するものもあるため，**必ずデータシートで寸法図を確認するようにしましょう．**

さて，寸法図が確認できたので，いよいよFootprintを作成しましょう．
ライブラリファイルの図の「Add Footprint...」をクリックし，以下の画面で作成する部品の名前を入力してOKで作成できます．
また，Symbol編集画面から直接移動したい場合は，画面左上の以下のようなアイコンの真ん中の「Footprint」から移動できます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/85a219b7-9c34-a3e1-197a-f7b0d56770fb.png" width="15%">
以下がFootprintを編集する画面です．Symbolの画面と同様の配置になっています．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/24495bc7-f938-4f87-5cb4-09a0659fe821.png" width="80%">

まず，画面左上のGridとLayer(以下のアイコン)について説明します．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/f3934698-179b-d706-2176-8b97f39f8cec.png" width="15%">
Gridとは，編集画面の格子のことで，eagleでは通常，格子点上に はんだパターンやシルクに印字するテキストや図形を配置することができます．
Gridアイコンをクリックすると以下のような画面が出てきます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/428c6334-ef21-c004-2f91-0327b49ed576.png" width="40%">
Displayは格子の表示の有無，Styleは点表示か直線表示かをそれぞれ選択できます．
Sizeでは，数値と単位を変えることで格子の間隔を変えられます．
Multipleでは，格子を表示する間隔を変えられます(例：Size：1mm，Multiple：10のとき，10mmごとに格子が表示されます)．
なお，最近は部品の配置や間隔を50mil(=1.27mm)単位にする場合が多いので，表面実装部品のはんだパターンなど以外は可能な限り1.27mmで揃えると良いでしょう．

次にLayerですが，[こちらのサイト](https://www.technoveins.co.jp/develop/eagle/layer.htm)に各レイヤーの意味について詳しく書かれていました．
各オブジェクトは存在するレイヤーによって意味合いが変わることに注意が必要です．
例えば，Topレイヤーは配線と表面実装部品のはんだパターンの中でも，表面(画面手前を向いている面)として認識されます．

### ツールの説明
Symbolの時と同様によく使うツールの説明をします(Symbolのツールと同じ名前のアイコンもありますが，少し内容が違う場合もあります)．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/7d7c1209-5089-5c61-3c74-a67146e7c3a8.png" width="4%">Padツール：スルーホールを作成します．画面上部のオプションでホールの穴径，直径，および形状を決められます．**なお，ツール全般に言えることとして，単位は，Gridで決めた単位に自動的に合わせられるので，Gridは長さをイメージしやすい単位に変えておくと良いでしょう．**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/b0f833e7-d5b4-9bf0-ab1f-1430c9b6bccd.png" width="4%">Smdツール：表面実装用のはんだパターンを作成します．画面上部のオプションでパターンの縦横比や頂点の曲率などを変更できます．縦横比は，「数値 x(小文字のエックス) 数値」の形式で書くと適用されます．特に理由がなければ，ライブラリファイル内の表面実装用はんだパターンはBottomではなく**Topに配置する**と良いでしょう．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/b843da68-ce39-20f1-a5b8-8b6f6ce82bff.png" width="4%">Holeツール：基板に丸穴を開けます．オプションで穴径を設定できます．スルーホールとは異なり，ただの穴です．実装したい部品の形状に合わせて使用しましょう．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/4bbfede3-e94e-f610-caa1-9ef75b2347d8.png" width="4%">Infoツール：クリックしたオブジェクトの情報を一覧できるツールです．以下はSmdツールで作成したパターンにInfoツールを適用した一例ですが，パターンの名前やサイズなどをすべて手動で変更できます．座標(Position)はパターンの中心座標を表しており，ここで直接入力した場合，Gridの格子上にない座標も指定できます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/912a5e5f-36cf-4ba3-c36b-42198915ce04.png" width="50%">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/559587f6-0fe8-f0e3-47cb-d21f153f80e3.png" width="4%">Textツール：テキストを作成します．一般にtPlace，tName，tValue，tDocuなどのレイヤーに配置する場合が多く，筆者はシルクに印字するかどうかで使い分ける場合が多いです．
Symbol同様，「>NAME」，「>VALUE」は予約語で，>NAMEは配置番号，>VALUEは抵抗値や静電容量などをあとから編集可能にできます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/522aebf2-7ac8-20c3-1c02-109060cdea33.png" width="4%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/4cc81cb4-e107-bd80-96e0-ee4fea8278d8.png" width="4%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/2bf65170-dd4e-bde5-8ef8-6037b20fa292.png" width="4%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/0664408b-849a-1060-6144-5349b5dad5de.png" width="4%">
　　Line・Circle・Arc・Rectツール：線や図形を書きます．部品の形状などを模して記号を自由に書くことができます．Circle・ArcツールのオプションのWidthは線の太さを表しますが，0にすると塗りつぶしになります．Polygonについては別の用途で使用するので今回は省略します．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/e98b44ad-14ec-2226-9202-a528ed0f9577.png" width="4%">Nameツール：PadツールやSmdツールで作成したはんだパターンの名前などを変更できます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/fbe40512-9310-2d4a-5b10-7c354490b346.png" width="4%">Groupツール：範囲内のPad・Smd・Text・Lineなどを選択し，移動・回転などを行うことができる．移動は．選択中のPad・Smd・Text・Lineなどをドラッグ&ドロップ，回転は，Pad・Smd・Text・Lineなどを移動(ドラッグ)中に右クリックで回転できます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/f0a241c1-62ef-9c05-8c0e-fc787b0e7a72.png" width="4%">Mirrorツール：クリックしたオブジェクトの配置を表裏反転させます．Padなど表裏のないものをクリックしても何も起きません．

### ATTiny85-20SURのフットプリントを作ってみよう
上記で説明したツールでATTiny85-20SURのフットプリントを作成することができます．
以下に手順の例を示すので，やってみましょう．

1. GridのSizeを1.27mmにします．
1. Lineツールで適当な四角形を描きます(このとき，中心を原点にすると対称性から座標を求めやすいのでおすすめです)．
1. [データシート](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf)の寸法図を見ながらInfoツールで四角形の座標をICパッケージの外形に合わせます．　　　　　　　　　　　　　　　　　　　　　　　　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/d061c059-f4d1-da51-f6e4-88ccf5f992fb.png" width="40%">
1. LineツールやRectツールでATTiny85-20SURのリード線部分の寸法を表現します．<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/8669e9b4-540b-c122-b863-e2613d71b75e.png" width="40%">
1. Smd・NameツールでPB0~PB5とVCC，GNDのパターンを作成します．パターンの寸法ははんだ付けしやすい大きさに変えても良いでしょう(データシートに推奨図面があったり，パターン間の距離が小さい場合は別ですが...)．　　　　　　　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/ee2ff977-5f60-5371-d02b-820d09005897.png" width="40%">
1. Circleツールで1番ピンにしるしを付けたり，Textツールで「>NAME」を作成し，配置番号を印字したりすることで，実装誤りを防ぐようにします． 
       <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373248/ec88ac65-0ca1-5071-35ed-c0710923a60b.png" width="40%">

今回はできるだけ簡単に説明できるように最低限の手順を説明しましたが，これはあまりきれいには見えないと思います．パターンやシルクへの印字は好みがあるので，自分の好きなように変えるのもアリですが，実装時に迷わないようにすることが一番大切ということを念頭に置くときれいなものになると思います．

# 本記事のまとめ
今回は.lbrファイルを新規作成し、回路記号とフットプリントを作成しました．
できるだけ詳しく書こうと思ったところ、文章が長くなってしまい、大変申し訳ないです．
ここで紹介したツールは、.schファイルや.brdファイルでも同様に使うものもありますので、ぜひ理解していただきたい部分でもあります．それでは、また[次項](https://qiita.com/conel_fg/items/999c157d72b91619010c)でお会いしましょう．