Eagle Tips
Eagleのtipsです
versionは6.6.0で確認しています
よく使うlibrary
ベタGND(Polygon)
Polygonを選択してLayerを選択(通常TopかBottom)して基板を囲む
ratnestを選択すると実際の塗りパターンが確認できる
戻したいときはRipupで先ほどひいたPolygonを選択すれば戻せる
変なところに塗られていやな場合はtRestrict/bRestrict LayerでPolygonを配置してやるとそこをさけて塗るようになる
- 自分が使ってる設定
- Width: 0.4064mm
- cap: round
- Polygon Pour : solid
- Spacing: 1.27
- Isolate: 0.3048
- Orphans: no
- Thermals: yes
配線確認(Show)
Showで配線上を選択すると、つながっている線が全てハイライトされる
回路図の方でも対応した線がハイライトされる
Layer選択(Layer)
Layersを選択
デフォルトでは以下のようになっている
青く選択されているlayerが現在ボードの画面に表示されている
マスク部分を確認したいときはtStop, bStopを選択してApply
p版.comなどではvalueは印刷されないのでボードから外して確認するにはtvalue, bvalueを外してApply
パーツ移動(Move/Group)
1つずつ移動したいときはMove
まとめて移動したいときはgroupで対象を囲ってから右クリックでMoveを選択
パーツコピー(copy)
パーツのコピーはcopy
1度コピーすれば他の回路図(ファイル)へのコピーも可能
パーツ反転(Mirror)
パーツを裏側に移動させたいときはMirror
パーツ追加(Add)
addしてライブラリからパーツを選択して配置
このとき表示されるライブラリはEagleを開いたときに最初に表示されるControl PanelのLibraryの項目で緑丸がついているものだけなので注意
パーツ変更(Replace)
少し大きいパーツに変更したい時とかReplaceを使うとわざわざ配線しなおさなくてすむ
NameとValueの位置を変更したい(Smash)
パーツの位置はそのままでNameとValueの位置だけ変更したい場合はSmash
Smashを選択してパーツ中心の十字マークを選択すると、NameとValueの右上にも十字マークが表示される
Moveでそのマークを選択するとNameのみ, Valueのみ移動することが出来る
配線(Route/Ripup)
配線する際にはRoute
このとき配線は直角に曲げるのはよくないとされ、45度ずつ曲げるようにする
うまくパーツの中心にこないときは、一度途中で配線を止めてもう一つのパーツからひいて繋げるとうまくいくことが多い
一度配線したものを取り消すのはRipup
Deleteではできないので注意
表面(Top)から裏面(Bottom)への配線をする場合は途中でviaをうつ必要があるが、Routeコマンドで配線している途中でlayerを変更することで自動でviaをうってくれる
回路図ではシングルクリックではどこまでも線が続くが、ダブルクリックで終了となる
Wire
こちらも線を引くツールだが、こちらでは回路図の方で指定していない線も自由にボードに引くことができる
線をひいた後にNameをGNDと変更することでベタGNDで塗られていない部位も追加することができる
テキストボックス(Text)
文字を入力することが出来る
通常p版.comではパーツのvalueは印刷されないが、それを個別に入力することで印刷したり、ボードの名前や簡単な説明を入力することができる
Grid
ボードに表示されるGridを指定できる
- 自分が使ってる設定
- Size: 1.27mm
- Multiple: 1
- Alt: 0.0125inch
パッド間レジスト開口クリアランス
以下の画像のtStop(緑の斜線エリア)を広くしたい or せまくしたい場合
DRCから以下のMasksのパラメータで調整
今回は2milから5milに広げてみた
SANs対応済みでワイルドカードオレオレ証明書の作り方
過去の投稿はこちら
portaltan.hatenablog.com
portaltan.hatenablog.com
### 1. setting $ export name=server ### 2. create private key $ openssl genrsa 2048 > ${name}.key ### 3. create csr $ openssl req -new -key ${name}.key > ${name}.csr . . Common Name (eg, your name or your servers hostname) []:*.domain.com # 適宜修正 . . ### 4. create crt ## create extension file $ echo subjectAltName=DNS:*.domain.com > san.ext #適宜修正 ## generate crt $ openssl x509 -days 3650 -req -signkey ${name}.key < ${name}.csr > ${name}.crt -extfile san.ext ### 5. confirm ### confirm(csrファイル) $ openssl req -text -noout -in ${name}.csr ### confirm(crtファイル) $ openssl x509 -text -noout -in ${name}.crt (### convert der file) $ openssl x509 -in ${name}.crt -outform DER -out ${name}.der
秋月のコイル(SMD Power Inductor) NR10050T100Mのライブラリを作った
以下の秋月のコイルのEagleのライブラリが見つからなかったので作成しました
akizukidenshi.com
データシート
http://akizukidenshi.com/download/ds/taiyouyuden/NR10050T100M.pdf
ライブラリ作成の開始
File > New > Libraryを選択すると新規ライブラリ作成画面が表示される
まずはこの時点でライブラリ名を決めて保存してしまう
今回は『smd-power-inductor.lbr』とした
基本的にライブラリ名は英小文字と数字とハイフンで作られているので、それに従ったほうがよさそう
次から実際のライブラリ作成を進めていく。大きな流れは以下のようになる
1. Packageの作成 : パターン図に表示される
2. Symbolの作成 : 回路図に表示される
3. Deviceの作成 : 作成したPackageとSymbolを連携させる
Packageの作成
Packageアイコンを選択して、名前を決める
(今回はNR10050とした)
以下のようなパターン図作成のような画面が表示される
Gridの設定
まずはGridの設定を行う
今回は部品が小さいので、Sizeを0.1mm、Altを0.05mmにした
Smdの設置
次にSmdの設置を行う
smdは表面実装用のpadで、pinはその名の通りピン用のホールを作成する
今回のコイルは表面実装コイルなのでsmdを選択する
まずボード上に配置したら、Propertiesから調整をする
- Name:1へ変更
- position: 0,0へ変更
- Smd Size: 2.6 x 4.5
Smd SizeはデータシートのRecommeded Land Patterns通りにした
つぎに見やすいようにスケーラをつける
スケーラ自体もデフォルトは太すぎて見にくいので細く小さくする
- Size: 0.3048へ変更
- Layer: 47 Measuresに変更
- Line Width: 0.01へ変更
もしMeasuresのLayerを非表示にしている場合は見えなくなってしまうので、その場合はLayer Settingから47番を表示にする
同じく高さ(データシートのC)もスケーラをつけた
次に作成したsmdをコピーしてもう一つ作成する
smd間の距離はデータシートの通り5.4mmにする
外形の作成
今回はコイルが丸型なので外形として円を書きます
大きさ等はデータシートを参考にします。ちょっと楕円になっていますが、ほぼ変わらないので半径は5mmとします。
Circleを選んで適当に配置したら、Propertiesで調整します
- Position: 4,0へ変更
- Layer: 21 tPlaceへ変更
- Radius: 5へ変更
Descriptionの追加
下部のDescriptionというリンクをクリックして説明文を追加します
Packageの完成
以上でPackageの完成です、保存をして次のSymbolの作成に移ります
Symbolの作成
まずはSymbolアイコンをクリックして名前をつけます
そうすると回路図の画面が表示されます
ここで実際に回路図に表示される記号を作成していきます
コイル記号の作成
Arcアイコンを利用してコイルの記号を作成します
pinのアタッチ
pinアイコンを選択して、以下のように配置します
これもPropertiesで調整します
- Length: shortへ変更
- Visible: offへ変更
Symbolの完成
以上でSymbolの作成は完了です。保存してDeviceの作成にすすみます
Deviceの作成
Deviceアイコンをクリックして名前をつけます
以下のような画面が表示されます
Symbolの追加
Addアイコンから今作ったNR10050 Symbolをaddします
Packageの追加
次に右下のNewボタンからNR10050 Packageをaddします
Connect
まだPackageとSymbolは別のものとして関係がないので、Packageのsmdとsymbolのpinをconnectします
右下のConnectボタンを選択し、接続したいpinとpadを選択してConnectをクリックします
Prefixの追加
右下のPrefixを選択し、Lと1文字いれてOKを押します
これで、同じ部品が呼び出されたときにL1, L2・・・と名前が自動で付加されていきます
(PackageとSymbolで名前を付け忘れていたのでつけています)
Desciptionの追加
左下のDescriptionアイコンをクリックして説明文を入力します
Deviceの完成
以上でDevideの完成です。これが最後の工程なのでライブラリの完成となります。
確認
実際にライブラリを呼び出して確認してみましょう
Libraries一覧で確認をして、
新規プロジェクトで呼び出すと以下のように先ほど作成したコイルが表示されるのが確認できます
メモ
今回はやっていないんですが、パッケージ作成時の最後に中心点をパーツの真ん中にしておくと、実際にライブラリを使う際に便利です
(中心じゃないとrotate時に位置がずれてしまうので)
gitで親ブランチのない空ブランチを作成する
gitで親ブランチの空ブランチを作成する方法です
私はgit利用開始時に色々なversionのソースがあって、それらをgit上でmergeしていきたいときになど使います
--orphanオプション
# 親のないブランチの作成 $ git checkout --orphan <new_branch> # 管理対象ファイルの指定 $ git add <file you want to add> # commit $ git commit # push $ git push origin <new_branch>
これでネットワークグラフなどで、どのブランチともつながっていないブランチが作成されます
ちなみにすでにmasterブランチなどで開発を開始してcommitをしている場合、git addの履歴は残っているのでaddしなおさなくて大丈夫です
git commit はしないといけません
Gitメモ
大昔に書いたgitのメモ
Install Git
環境設定
vi ~/.gitconfig [user] name = nouziru # username email = foo@bar.com # mail address [core] editor = vim # gitで利用するeditorの指定 $ git config --list # 現在の設定の表示
clone repository
clone other brach
$ git branch -a # (リモート上の全てのブランチを表示) * master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/test remotes/origin/master ### CUIから作成する場合 # 1. 今いるブランチの状態がbaseとする場合 $ git branch [つけたいbranch名] $ git branch master * develop # 2. 現在の HEAD (デフォルト)以外の場所から始まるブランチを作成するには $ git branch new test # "test" ブランチのHEADから開始するブランチ "new" を作成 $ git branch new v1.2.3 # タグ v1.2.3 から開始するブランチ "new" を作成 $ git branch new HEAD^ # 最新のコミットの1つ前の位置から分岐するブランチを作成 $ git branch new HEAD^^ # 最新のコミットの2つ前の位置から分岐するブランチを作成 $ git branch new test~10 # ブランチ "test" の10個前の位置から分岐するブランチを作成 ### 既にGUIでdevelopブランチを作成している場合 $ git checkout -b develop remotes/origin/develop $ git branch master * develop
Merge
自リポジトリ内の場合
### masterからmerge用(確認用)ブランチを作成 git branch merge master ### merge処理(確認) git checkout merge # merge(受け入れ側)ブランチに移動 git merge --no-ff dev #merge(差出側)ブランチを指定してmerge git push http://github.com/xxxxxxxxx/xxxxxxx.git merge:merge ### merge(リリース) git checkout master git merge --no-ff merge git push http://github.com/xxxxxxxxx/xxxxxxx.git merge:merge
Forkしてきた場合
###Fork元の最新ver.のコードからremoteブランチを作成する git remote add fork_master http://github.com/xxx/xxx.git #ブランチ確認 git branch -a develop * release remotes/fork_master/master remotes/origin/HEAD -> origin/master remotes/origin/develop # remotes/fork_master/masterをbaseにrelease用ブランチに作成 git checkout -b release remotes/fork_master/master ### 開発してきたブランチをmerge git checkout release git merge --no-ff remotes/origin/develop # merge(差出側)ブランチを指定してmerge git push http://github.com/xxx/xxx.git merge:merge ### merge(リリース) git checkout master git merge --no-ff merge git push http://github.com/xxx/xxx.git master:master ### このままではWEB上で表示されて、かつローカルにもブランチはあるが、remoteにはない(remotes/origin/****がない)という状態になるはずなので以下を実行 # pull(fetch + merge)してもよい git remote -v git fetch origin
焦電人感センサーSB612Aをラズベリーパイで使ってみた
以下の秋月で販売している焦電型赤外線センサーをラズベリーパイで使ってみました(¥600)
akizukidenshi.com
仕様
- 電源電圧:3.3V~12V(3.3VのLDOによりモジュール内部で安定化されています)
- 最大検知距離:8m(気温等の環境条件によります)
- 検知角度:120度
- 検知出力保持時間:2秒~80分
ハードウェアサイド
SB612A側
画像のようにメスメスケーブルをさしていきます。
色はあわせなくていいですが、右から赤(VCC), 緑(信号出力). 黒(GND)です
ソフトウェアサイド
確認
まずはちゃんと動いているか確認をします
## GPIO設定 sudo echo 18 > /sys/class/gpio/export sudo echo in > /sys/class/gpio/gpio18/direction ### 確認 ## 検知していない時 cat /sys/class/gpio/gpio18/value 0 ## 検知中 cat /sys/class/gpio/gpio18/value 1
LED連携
センサーが動体を検知すると31番ピン(GPIO6)にさしたLEDが光るようにします
#!/usr/bin/env python import RPi.GPIO as GPIO ### setup GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.IN) # GPIO 18 : human detect sensor GPIO.setup(6, GPIO.OUT) # GPIO 6: LED # initialize if GPIO.input(18): GPIO.output(6, 1) else: GPIO.output(6, 0) while True: GPIO.wait_for_edge(18, GPIO.BOTH) if GPIO.input(18): print "detected!" GPIO.output(6, 1) else: GPIO.output(6, 0) time.sleep(1) GPIO.cleanup()
GPIO.wait_for_edgeは電圧がLOWからHIGH、またはその逆を検知します
引数にはピン番号とGPIO.RAISING or GPIO.FALLINGを渡すことで電圧の動きをチェックします
両方取得したいときはGPIO.BOTHでとれます
単純にLoopで毎秒チェックとかにするよりは低負荷になります
その他設定
感度
SENSと書かれたつまみを右に回すほど感度が高くなります
検知出力保持時間
DELAYと書かれたつまみを左にまわすほど保持時間が長くなります
保持時間とは、一度動体を検知した際に何秒間検知状態のままにするかという設定です
Windows7でVagrant2.0を使ってVirtualBoxにUbuntu16.04の仮想環境をつくってteratermでアクセスする
環境
- Windows7(64btit)
- VirtualBox 5.2.6
- Ubuntu 14.04
- Vagrant 2.0.2
手順
1. VirtualBoxのダウンロード
Virtual Boxのインストール
http://www.virtualbox.org/
Imageの配置場所の変更
- 自分はD:\VirtualBoxServersという名前のディレクトリにしました
2. Vagrantのダウンロードします
Vagrantのインストール
http://downloads.vagrantup.com/
vagrantの確認
> vagrant -v Vagrant 2.0.2 > vagrant -h . . .
box(osのイメージ)の配置場所の指定
> SETX VAGRANT_HOME D:\Vagrant\.vagrant.d > echo "%VAGRANT_HOME%"
3. PC再起動
4. 仮想環境を構築準備
ディレクトリの作成
今から構築するubuntu16.04用のディレクトリを作成します
### 仮想環境用のディレクトリを作成 > cd /d d:/Vagrant > mkdir "servers/ubuntu1604_1" > cd servers/ubuntu1604_1
boxを検索
VagrantCloudから欲しいパッケージを検索します
- app.vagrantup.com
- 今回はVagrant box ubuntu/xenial64 - Vagrant Cloudを利用します
- VagrantCloudにあるboxであれば前もってboxをインストールしなくても、init時に指定するだけで初回起動時にboxもまとめてダウンロードしてくれます
> vagrant init ubuntu/xenial64
Vagrantfileの編集
> notepad Vagrantfile ################################ # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network "private_network", ip: "192.168.33.10" config.ssh.insert_key = false config.vm.provider "virtualbox" do |vb| vb.name = "ubuntu1604_1" end end ################################
6. 確認
Host OSから確認(via コマンドプロンプト)
### boxがちゃんとdownloadされているか確認 > vagrant box list ubuntu/xenial64 (virtualbox, 20180228.1.0) ### ステータス確認 > vagrant status Current machine states: default runnning (virtualbox) ........
VMの管理画面でも以下のように仮想環境が作成されているのを確認できます
Guest OSから確認(via teraterm)
teratermからVagrantfileで指定したprivate ipへsshでアクセスします
ユーザ名はvagrant
秘密鍵は先ほど上書きせずにinsecure_keyを利用する設定をしたので、私と同じ環境で作った方は「D:\Vagrant\.vagrant.d\insecure_private_key」にあります
あとはログインできることを確認します
マウントされているかの確認
GuestOS
vagrant@ubuntu-xenial:/$ ls -la /vagrant/ total 72 drwxrwxrwx 1 vagrant vagrant 0 Mar 2 09:53 . drwxr-xr-x 24 root root 4096 Mar 2 09:59 .. -rwxrwxrwx 1 vagrant vagrant 44317 Mar 2 09:57 ubuntu-xenial-16.04-cloudimg-console.log drwxrwxrwx 1 vagrant vagrant 0 Mar 2 09:52 .vagrant -rwxrwxrwx 1 vagrant vagrant 296 Mar 2 09:57 Vagrantfile
HostOS
以上で構築完了です