ガジェットとアプリ開発〜インターバルカメラ(制作中)〜
野生生物の見ている世界を知りたいということで
動物に取り付けたカメラで特定の時間だけ撮影できるガジェットを作って欲しい.
撮影しっぱなしでよくない?とも思ったんだけど,全体の大きさとか使いたいカメラ性能の関係で,特定時間のみ撮影の方がいいらしい.まぁ寝てる時間撮影してもしょうがないし.あとは電力の問題かな.
今回作ったのは毎日,ある時間帯に撮影するガジェットとそのインタフェースアプリ(WindowsFormアプリ).
現在,レンタル中なので動画は今後アップします.
ガジェットの開発
使用したカメラ
Mobius ActionCamっていうアクションカメラ.
ドライブレコーダー機能があって外部電源を感知すると撮影を開始して,外部電源が落ちると撮影をとめることができる.これを使って,外部電源のON-OFFを時間で制御すれば特定時間だけロギングができそう(というかこの機能をハックしました).ちなみに外部電源との接続はUSBミニBメス.
使用した部品
- マイコン(LPC810M021FN8)
- ボルテージレギュレータ(S-812C33AY-B-G)
- トランジスタ(2SC2655L-Y)
- 抵抗(1K)
- USBケーブルAオスーミニBメス
- USB-シリアル変換器
ARMワンチップマイコン(8P-DIP) LPC810M021FN8+129の通販ならマルツオンライン
マイコンは秋月じゃなくてマルツパーツで買った方が安い.レギュレータとトランジスタは秋月とかで良い
回路図とか
回路図
要はマイコンを使ってトランジスタに電流を送り,USBのGNDをON-OFF制御しているだけ.
一部の電流をレギュレータを介してマイコンに使用している.後はアプリとの通信用にシリアルコネクタ.
配線基板
upverterっていう回路CAD系webアプリを使い始めてんだけど,そっちからだとリンク張るだけで回路の紹介ができるのでは?ということで練習中.毎回画像をsnipping toolで撮ってくるのは面倒なので.
Your hardware team lives here. - Upverter
回路設計
設計というほど計算していないけど,主に設計したところはトランジスタです.
データシート
http://akizukidenshi.com/download/ds/unisonic/2SC2655.pdf
モバイルバッテリを繋ぐと動くとのことだったので,コレクタ電流は次の通りにしておく.
$$I_{C}=500\,[mA]$$
使用したカメラは,内部バッテリが主電源なので恐らく大きな電流は流れない.多分電位差で動作するんじゃないかなと思うけど,モータとか電流を制御したい場合はちゃんと設定するところ.
これは絶対最大規格のコレクタ電流2 Aを下回っているので大丈夫.
増幅率vsコレクタ電流グラフから増幅率を求めたいけど,コレクタエミッタ間電圧が2 Vということで,,,
これが意味しているのはコレクタ電流に対し,十分なベース電流を流さなかった場合の増幅率(コレクタエミッタ間電圧vsコレクタ電流からあるコレクタ電流を流すときベース電流が小さいほどコレクタエミッタ間電圧が大きい)はこれくらいになるってこと.
なので,ちゃんとしたベース電流を流せば増幅率は
$$h_{FE}=150\,[-]$$
くらいになると考えて,ベース電流は
$$I_{B}=\frac{I_{C}}{h_{FE}}=3.3\,[mA]$$
なのでマイコンの最大出力電流20 mA(LPC81XM 2.Features and benefits)を下回る.
このベース電流とコレクタ電流の時,コレクタエミッタ間電圧vsコレクタ電流より
$$V_{CE}=0.5\,[V]$$
コレクタ電流vsベースエミッタ間電圧から
$$V_{BE}=0.7\,[V]$$
これからベースに使用する抵抗値が選定できて
$$R_{B}=\frac{V_{DD}-V_{BE}}{I_{B}}=790\,[\Omega]$$
なので
$$R_{B}=1\,[k\Omega]$$
くらいにして実際に動いたからOKっぽい
プログラム
LPC8xxシリーズなのでLPCxpressoで開発.使ったのはGPIO,UART_ROM,SystickTimerくらいかな.
HirokiTitechは大学の講義用だったのでアカウントを作り直しました.
マイコン側のプログラムはGadget/LPC810Missionの方.
外装
Fusion360で良さげな大きさで描いてみてBS01+でプリント.最近は3dプリンタが3万円程度で買えると聞いて驚き,,,
PCとUSBシリアル変換器で接続している様子.
バッテリー
最近のモバイルバッテリーは流れる電流が少ないと勝手にOFFになるのが多くって,,, Iot用を謳っているバッテリーもあったんだけど電気容量が少なかったので却下
今回はニッケル水素電池を4本直列して使用する予定.
撮影時間設定アプリの開発
UI とUser guide
プログラム
さっきのGithubのApplicationの方.
開発環境はVisual Studio(Windows).言語はC#.初めてWinアプリを作ってみたけど,かなり楽に作れたと思う.関数の名前とコンポーネントの名前が自由に変えれないというか,簡単にした結果分かりにくくなっているところもあったかな(Android app開発に慣れているからってものあると思うけど,,,).