どういうわけか最近、私は一眼レフのシャッターをリモートで制御する必要がありました。 有線バージョンは破棄され、不快でした。 ショップを検索した後、私はML-L3リモートを見つけました。 しかし、私はそれのために1000ルーブルを与えたくありませんでした。 私は自分でやることに決めました。 そして、ここで、ところで、週末が来て、仕事が沸騰し始めました...
理論または仕組み
最初は、ネットワーク上ですべてのコードとIRリモートの仕組みの説明を見つけることができることが望まれていました。 しかし、最終的には、シャッターをトリガーするために生成する必要があるシーケンスの説明のみを見つけることができました。 Nikonカメラ用のこのようなパッケージの写真を次に示します。
どうやら、複雑なことは何もない。 充填周波数は38.4 kHzです。
キヤノンのカメラの場合、シーケンスはさらに簡単です。
フィル周波数は33 kHzです。
回路、回路基板、部品
リモートコントロールを繰り返すだけでなく、追加の機能を提供したかったのです。 最後に、タイムラプスビデオを撮影するためのタイマーと、ニコンとキヤノンのカメラを制御する機能を追加することにしました。 在庫のある部品に基づいて、次のスキームが作成されました。
DD1-PIC12F629
HL1-ARL2-5013IRAB-940NM
R1-150オーム
SB1-時計ボタンFSM4JH
A0-DIPスイッチDS1040-03RN
C1-タンタルコンデンサ、47μFx 10 V、タイプB
+バッテリーコンパートメントBH-624(1xAAA)
すべての部品の合計費用は240ルーブルです(2015年4月の価格で、市内で最も安い店で)。
選択されたマイクロコントローラには高出力の入出力ポートがあり、追加のキーなしで赤外線LEDを切り替えることができます。 ボタンSB1は、選択されたシーケンスを生成します。 電源スイッチはありません。 マイクロコントローラーは常にスリープモードであり、70ナノアンペアを消費し、信号生成の間のみ「ウェイクアップ」します。 ジャンパーX1は、カメラのタイプを切り替えます。インストール済み-キヤノン、ショット-ニコン。 スイッチA0 ... A2は、タイムラプスビデオを撮影するためのタイマー期間を設定します。
A2 | A1 | A0 | 期間 |
---|---|---|---|
0 | 0 | 0 | いや |
0 | 0 | 1 | 2秒 |
0 | 1 | 0 | 4秒 |
0 | 1 | 1 | 8秒 |
1 | 0 | 0 | 15秒 |
1 | 0 | 1 | 30秒 |
1 | 1 | 0 | 1分 |
1 | 1 | 1 | 2分 |
設計された回路基板と回路は非常にシンプルです:
標準のLUT方式で製造され、組み立てられたプリント基板:
マイクロコントローラーのソースコード
エラーレベル0、-207、-205、-302、-203
#include <P12F629.INC>
__CONFIG _CPD_OFF&_CP_OFF&_BODEN_OFF&_MCLRE_ON&_PWRTE_ON&_WDT_OFF&_INTRC_OSC_NOCLKOUT
LED equ 5; IR LED
CFG equ 4; ニコン(1)/キャノン(0)
; ================================================= ================================
; 変数
; ================================================= ================================
CBLOCK 0x020
DEL
DEL_MS
IMP
COUNT
ENDC
; ================================================= ================================
; リセットする
; ================================================= ================================
ORG 0
後藤スタート
; ================================================= ================================
; 中断
; ================================================= ================================
ORG 4
レトフィー
; ================================================= ================================
; ルーチン
; ================================================= ================================
; 遅延サブルーチン(マイクロ秒単位、最大770μs)
;(呼び出す前に、遅延値をWに入れます)
DEL_MK MOVWF DEL
M1 DECFSZ DEL、F
後藤m1
Retlw 0
; 遅延ルーチン(ミリ秒単位、最大256 ms)
;(呼び出す前に、遅延値をWに入れます)
DEL_M MOVWF DEL_MS
MOVLW 0xA5
M2 CALL DEL_MK
CALL DEL_MK
DECFSZ DEL_MS、F
後藤m2
Retlw 0
; Nikonのパルス出力ルーチン(38.4 kHzフィル)
;(呼び出す前に、パルス幅をWに入れます)
NIK MOVWF IMP
M3 BCF GPIO、LED
MOVLW 0x02
CALL DEL_MK
いや
BSF GPIO、LED
MOVLW 0x01
CALL DEL_MK
いや
DECFSZ IMP、F
後藤m3
Retlw 0
; ニコンの信号出力ルーチン
NIKON MOVLW 0x4D
CALL NIK; パルス2 ms
MOVLW 0x12
CALL DEL_M; 一時停止27.8ミリ秒
MOVLW 0x47
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
MOVLW 0x01
CALL DEL_M; 1.6ミリ秒休止
MOVLW 0x69
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
MOVLW 0x02
CALL DEL_M; 3.6ミリ秒休止
MOVLW 0xFF
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
Retlw 0
; Canonのパルス出力ルーチン(33 kHzフィル)
;(呼び出す前に、パルス幅をWに入れます)
CAN MOVWF IMP
M4 BCF GPIO、LED
MOVLW 0x02
CALL DEL_MK
いや
いや
いや
BSF GPIO、LED
MOVLW 0x01
CALL DEL_MK
いや
いや
いや
DECFSZ IMP、F
後藤m3
Retlw 0
; キヤノン信号出力ルーチン
キヤノンMOVLW 0x13
CALL CAN; 0.5 msパルス
MOVLW 0x05
CALL DEL_M; 7.3ミリ秒の一時停止
MOVLW 0x13
CALL CAN; 0.5 msパルス
Retlw 0
; 1秒の遅延ルーチン0xA1
DEL_1S MOVLW 0xFF
CALL DEL_M
MOVLW 0xFF
CALL DEL_M
MOVLW 0x88
CALL DEL_M
Retlw 0
; ================================================= ================================
; 主なプログラム
; ================================================= ================================
START BCF STATUS、RP0; バンク0を選択
MOVLW B'00000000 '
MOVWF INTCON
MOVLW B'00000111 '
MOVWF CMCON; 組み込みコンパレーターを無効にする
BSFステータス、RP0; 銀行1を選択
MOVLW B'00000111 '
MOVWF OPTION_REG
CALL 3FFh; 発電機校正定数のダウンロード
MOVWF OSCCAL
MOVLW B'00011111 '; ポート(方向)
MOVWF TRISIO
MOVLW B'00010111 '; プルアップ抵抗
MOVWF WPU
BCFステータス、RP0; バンク0を選択
MOVLW B'00100000 '; ポート
MOVWF GPIO
; --------------------------
MOVLW 0x12
CALL DEL_M
LP1 BTFSS GPIO、CFG
通話キヤノン
BTFSS GPIO、CFG
後藤LP2
コールニコン
LP2 MOVF GPIO、W; ジャンパーステータスの読み取り
ANDLW B'00000111 '
ADDLW B'11111000 '
MOVWF COUNT
COMF COUNT、F
BTFSCステータス、Z; シャットダウンしない場合
睡眠
MOVF COUNT、W
XORLW 0x01; 1つのタイミングが有効
BTFSCステータス、Z
後藤set2
MOVF COUNT、W
XORLW 0x02; 2つのタイミングが含まれています
BTFSCステータス、Z
後藤set4
MOVF COUNT、W
XORLW 0x03; 3つのタイミングが含まれています
BTFSCステータス、Z
後藤セット8
MOVF COUNT、W
XORLW 0x04; 4タイミングが有効
BTFSCステータス、Z
後藤セット15
MOVF COUNT、W
XORLW 0x05; 5タイミング有効
BTFSCステータス、Z
後藤セット30
MOVF COUNT、W
XORLW 0x06; 6つのタイミングが含まれています
BTFSCステータス、Z
後藤set1m
GOTO SET2M; 7タイミングが有効
SET2 MOVLW 0x02
後藤時間
SET4 MOVLW 0x04
後藤時間
SET8 MOVLW 0x08
後藤時間
SET15 MOVLW 0x0F
後藤時間
SET30 MOVLW 0x1E
後藤時間
SET1M MOVLW 0x3C
後藤時間
SET2M MOVLW 0x78
後藤時間
TIME MOVWF COUNT
LP3 CALL DEL_1S
DECFSZ COUNT、F
後藤LP3
後藤lp1
終了
#include <P12F629.INC>
__CONFIG _CPD_OFF&_CP_OFF&_BODEN_OFF&_MCLRE_ON&_PWRTE_ON&_WDT_OFF&_INTRC_OSC_NOCLKOUT
LED equ 5; IR LED
CFG equ 4; ニコン(1)/キャノン(0)
; ================================================= ================================
; 変数
; ================================================= ================================
CBLOCK 0x020
DEL
DEL_MS
IMP
COUNT
ENDC
; ================================================= ================================
; リセットする
; ================================================= ================================
ORG 0
後藤スタート
; ================================================= ================================
; 中断
; ================================================= ================================
ORG 4
レトフィー
; ================================================= ================================
; ルーチン
; ================================================= ================================
; 遅延サブルーチン(マイクロ秒単位、最大770μs)
;(呼び出す前に、遅延値をWに入れます)
DEL_MK MOVWF DEL
M1 DECFSZ DEL、F
後藤m1
Retlw 0
; 遅延ルーチン(ミリ秒単位、最大256 ms)
;(呼び出す前に、遅延値をWに入れます)
DEL_M MOVWF DEL_MS
MOVLW 0xA5
M2 CALL DEL_MK
CALL DEL_MK
DECFSZ DEL_MS、F
後藤m2
Retlw 0
; Nikonのパルス出力ルーチン(38.4 kHzフィル)
;(呼び出す前に、パルス幅をWに入れます)
NIK MOVWF IMP
M3 BCF GPIO、LED
MOVLW 0x02
CALL DEL_MK
いや
BSF GPIO、LED
MOVLW 0x01
CALL DEL_MK
いや
DECFSZ IMP、F
後藤m3
Retlw 0
; ニコンの信号出力ルーチン
NIKON MOVLW 0x4D
CALL NIK; パルス2 ms
MOVLW 0x12
CALL DEL_M; 一時停止27.8ミリ秒
MOVLW 0x47
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
MOVLW 0x01
CALL DEL_M; 1.6ミリ秒休止
MOVLW 0x69
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
MOVLW 0x02
CALL DEL_M; 3.6ミリ秒休止
MOVLW 0xFF
CALL DEL_MK
MOVLW 0x0F
CALL NIK; パルス0.4 ms
Retlw 0
; Canonのパルス出力ルーチン(33 kHzフィル)
;(呼び出す前に、パルス幅をWに入れます)
CAN MOVWF IMP
M4 BCF GPIO、LED
MOVLW 0x02
CALL DEL_MK
いや
いや
いや
BSF GPIO、LED
MOVLW 0x01
CALL DEL_MK
いや
いや
いや
DECFSZ IMP、F
後藤m3
Retlw 0
; キヤノン信号出力ルーチン
キヤノンMOVLW 0x13
CALL CAN; 0.5 msパルス
MOVLW 0x05
CALL DEL_M; 7.3ミリ秒の一時停止
MOVLW 0x13
CALL CAN; 0.5 msパルス
Retlw 0
; 1秒の遅延ルーチン0xA1
DEL_1S MOVLW 0xFF
CALL DEL_M
MOVLW 0xFF
CALL DEL_M
MOVLW 0x88
CALL DEL_M
Retlw 0
; ================================================= ================================
; 主なプログラム
; ================================================= ================================
START BCF STATUS、RP0; バンク0を選択
MOVLW B'00000000 '
MOVWF INTCON
MOVLW B'00000111 '
MOVWF CMCON; 組み込みコンパレーターを無効にする
BSFステータス、RP0; 銀行1を選択
MOVLW B'00000111 '
MOVWF OPTION_REG
CALL 3FFh; 発電機校正定数のダウンロード
MOVWF OSCCAL
MOVLW B'00011111 '; ポート(方向)
MOVWF TRISIO
MOVLW B'00010111 '; プルアップ抵抗
MOVWF WPU
BCFステータス、RP0; バンク0を選択
MOVLW B'00100000 '; ポート
MOVWF GPIO
; --------------------------
MOVLW 0x12
CALL DEL_M
LP1 BTFSS GPIO、CFG
通話キヤノン
BTFSS GPIO、CFG
後藤LP2
コールニコン
LP2 MOVF GPIO、W; ジャンパーステータスの読み取り
ANDLW B'00000111 '
ADDLW B'11111000 '
MOVWF COUNT
COMF COUNT、F
BTFSCステータス、Z; シャットダウンしない場合
睡眠
MOVF COUNT、W
XORLW 0x01; 1つのタイミングが有効
BTFSCステータス、Z
後藤set2
MOVF COUNT、W
XORLW 0x02; 2つのタイミングが含まれています
BTFSCステータス、Z
後藤set4
MOVF COUNT、W
XORLW 0x03; 3つのタイミングが含まれています
BTFSCステータス、Z
後藤セット8
MOVF COUNT、W
XORLW 0x04; 4タイミングが有効
BTFSCステータス、Z
後藤セット15
MOVF COUNT、W
XORLW 0x05; 5タイミング有効
BTFSCステータス、Z
後藤セット30
MOVF COUNT、W
XORLW 0x06; 6つのタイミングが含まれています
BTFSCステータス、Z
後藤set1m
GOTO SET2M; 7タイミングが有効
SET2 MOVLW 0x02
後藤時間
SET4 MOVLW 0x04
後藤時間
SET8 MOVLW 0x08
後藤時間
SET15 MOVLW 0x0F
後藤時間
SET30 MOVLW 0x1E
後藤時間
SET1M MOVLW 0x3C
後藤時間
SET2M MOVLW 0x78
後藤時間
TIME MOVWF COUNT
LP3 CALL DEL_1S
DECFSZ COUNT、F
後藤LP3
後藤lp1
終了
住宅設計
現代の3D印刷技術は、長年の自家製製品の問題を解決しました-不器用でお世辞のケースに置き換えられ、工業デザインに決して劣らない品質のデザインがあります。
このパネルのケースはSolidWorksで開発されており、3Dプリンターでの印刷が期待されています。 それは中国のデザインの最高の伝統で作られています-単一のネジではなく、すべてがラッチされています。
結果として生じる寸法は、主に電源の選択によるものです。 いくつかの審議の後、リチウム電池を使用しないことが決定されました。これはそのような場合に伝統的です。 前提を一定に生成するタイムラプスモードでは、弱い要素を非常に迅速に放電できます。 したがって、2つのAAAバッテリーが使用されます。
3Dプリントエンクロージャ:
エンクロージャーを印刷するための回路、回路基板、ソースコード、およびファイルは、ここからダウンロードできます 。
組立
組み立てを開始する前に、ナイフでバッテリーホルダーの接点で平らな部品を慎重に切断する必要があります。
結果の接点をハウジングに接着し、極性を観察します:
次に、ボタンを配置してカードを奥まで挿入し、ラッチがかかっていることを確認します。 バッテリーからボードにワイヤをはんだ付けし、デバイスの準備ができています:
組み立てられた赤外線リモコンは次のとおりです。
カメラのセットアップ
リモートコントロールを使用する前に、カメラの簡単なセットアップを実行して、IRリモートコントロールを介してカメラを制御する必要があります。 モデルごとに異なります。NikonD7000のアルゴリズムを使用します。1)左の写真のように、左のリングをリモコンアイコンに回します。2)「リモートコントロールモード」メニューで必要な操作を設定します。