2016年4月14日木曜日

ラズパイのGPIOを使ってカメラのレリーズをコントロールしよう

ひとまずはGPIOで2.5ミニピンジャックを制御していけばOK

目標はこんなの
https://www.zugyuuun.com/examples/io_relay.php

ひとまずはもっと簡便な構成にします。GPIOを使ったLED点灯がすべての基本。LEDで遊ぶ場合は必ず電流制限抵抗を入れるように!(うっかり忘れて1つ燃やした!!!)

手動でGPIOの動作チェック
https://tool-lab.com/2013/12/raspi-gpio-controlling-command-2/
http://mas-home.hatenablog.com/entry/2013/01/06/204616
 gpio -g mode 18 out
これで出力モードになるので、続けて
 gpio -g write 18 1
LED点灯するはず。そして
gpio -g write 18 0
で消灯。

次にC言語でちゃんとしたプログラムを書く(wiringPiをインストールする。gitとgccは入ってなかったらインストール)

http://mas-home.hatenablog.com/entry/2013/01/06/204616
http://make.bcde.jp/raspberry-pi/gpio%e3%81%a7led%e3%81%ae%e7%82%b9%e6%bb%85c%e8%a8%80%e8%aa%9e/
 gcc -o sample wiringpi_sample.c -lwiringPi
これで
sudo ./sample
でLED明滅が完成(sudo不要にする方法は次回)。wiringPiSetup()を使ったときに必要になる物理端子番号(左上が1で右下が40)とwiringPiにおける番号とGPIOの端子の番号の対応は、ここに掲載されている
http://blog.negativemind.com/2015/04/14/raspberry-pi-2-gpio-pin/
http://usicolog.nomaki.jp/engineering/raspberryPi/raspberryPi2_GPIO.html

このままだと端子の制御に使えないので、トランジスタで電子スイッチにする。
http://startelc.com/elc/elc_3_7Tr2sw.html

アイディアとしては、GPIOの出力を10 kΩ通してトランジスタのベースに入れる。このときGPIOがhighならトランジスタがONでlowならトランジスタがOFFになる。
http://www.onsemi.com/pub_link/Collateral/BC546-D.PDF

カメラの制御は一番の根元がGNDで真ん中が「半押し」でチップ(先端)が「全押し」になっているから、トランジスタのエミッタはラズパイのGNDかつカメラの「根元」にする。コレクタには真ん中 or チップを接続する。そうすればベースの電位が高いときにコレクタ→エミッタの電流が流れてショート状態になるからシャッターが切れる。

注意点は、全押しと半押しの両方がONじゃないとシャッターが切れないこと。手元のD810Aで見た限りだと全押しだけGNDに落としてもシャッターは切れなくて、半押しもGNDに落とさないといけない。ひとつの手法はコレクタに半押しと全押しの両方を同時に接続することで、もう一つの手法は、半押しに対応するトランジスタをONにしてから、そのまま続けて全押しに対応するトランジスタをONにする。

ここまでできれば制御そのものは完成したので、前に述べたようにしてAPを設置し、別の端末からSSHを通して接続し、コマンドを実行すればいいということになる。

次回に続く

0 件のコメント: