- PVSM.RU - https://www.pvsm.ru -

Делаем ИК-пульт ДУ для фотоаппарата

Делаем ИК-пульт ДУ для фотоаппарата - 1

Как-то недавно мне понадобилось дистанционно управлять затвором зеркалки. Проводной вариант был отброшен, неудобно. Поискав по магазинам, нашел пульт ML-L3. Но отдавать за него тысячу рублей не хотелось, тем более что выполняемая функция на первый взгляд элементарная. Решил сделать сам. А тут, кстати, подоспели выходные и работа закипела…

Теория или как это работает

Вначале была надежда, что в сети можно найти все коды и описание того, как ИК пульт работает. Но в итоге удалось отыскать лишь описание последовательности, которую нужно сгенерировать для срабатывания затвора. Вот рисунок такой посылки для фотоаппаратов Nikon:

Делаем ИК-пульт ДУ для фотоаппарата - 2

Как видно, ничего сложного. Частота заполнения 38,4 кГц.

Для фотоаппаратов Canon последовательность еще проще:

Делаем ИК-пульт ДУ для фотоаппарата - 3

У них частота заполнения – 33 кГц.

Схема, печатная плата и детали

Хотелось не просто повторить пульт, но и снабдить его дополнительным функционалом. В итоге решил добавить таймер для съемки Timelapse видео и возможность управления фотоаппаратами Nikon и Canon. Исходя из имеющихся в запасе деталей, была создана следующая схема:

Делаем ИК-пульт ДУ для фотоаппарата - 4

DD1 – PIC12F629
HL1 – ARL2-5013IRAB-940NM
R1 – 150 Ом
SB1 – Кнопка тактовая FSM4JH
A0 – DIP переключатель DS1040-03RN
C1 – Конденсатор танталовый, 47 мкФ х 10 В, тип B
+ Батарейный отсек BH-624 (1xAAA)

Итоговая стоимость всех деталей – 240 рублей (по ценам на апрель 2015, в не самом дешевом магазине города).

Делаем ИК-пульт ДУ для фотоаппарата - 5

Выбранный микроконтроллер имеет порты ввода-вывода повышенной мощности, что позволяет коммутировать инфракрасный светодиод без дополнительного ключа. Кнопка SB1 генерирует выбранную последовательность. Выключателя питания нет, т.к. микроконтроллер постоянно находится в спящем режиме и потребляет 70 наноампер, «просыпаясь» лишь на время генерации сигнала. Джампер X1 переключает тип фотоаппарата: установлен – Canon, снят – Nikon. Переключатели А0…А2 задают период срабатывания таймера для съемки Timelapse видео:

А2 А1 А0 Период
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 минуты

Спроектированная печатная плата, также как и схема, очень проста:

Делаем ИК-пульт ДУ для фотоаппарата - 6

Изготовленная печатная плата стандартным методом ЛУТ и собранная:

Делаем ИК-пульт ДУ для фотоаппарата - 7

Исходный код микроконтроллера

errorlevel 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; ИК-светодиод
CFG equ 4; Nikon (1) / Canon (0)

;===============================================================================
; Переменные
;===============================================================================

CBLOCK 0x020
DEL
DEL_MS
IMP
COUNT
ENDC

;===============================================================================
; Сброс
;===============================================================================

ORG 0
GOTO START

;===============================================================================
; Прерывания
;===============================================================================

ORG 4
RETFIE

;===============================================================================
; Подпрограммы
;===============================================================================

; Подпрограмма задержки (в микросекундах, 770 мкс max)
;(Перед вызовом поместить величину задержки в W)
DEL_MK MOVWF DEL
M1 DECFSZ DEL, F
GOTO M1
RETLW 0

; Подпрограмма задержки (в миллисекундах, 256 мс max)
;(Перед вызовом поместить величину задержки в W)
DEL_M MOVWF DEL_MS
MOVLW 0xA5
M2 CALL DEL_MK
CALL DEL_MK
DECFSZ DEL_MS, F
GOTO M2
RETLW 0

; Подпрограмма вывода импульса для Nikon (заполнение 38,4 кГц)
;(Перед вызовом поместить длительность импульса в W)
NIK MOVWF IMP
M3 BCF GPIO, LED
MOVLW 0x02
CALL DEL_MK
NOP
BSF GPIO, LED
MOVLW 0x01
CALL DEL_MK
NOP
DECFSZ IMP, F
GOTO M3
RETLW 0

; Подпрограмма вывода сигнала для Nikon
NIKON MOVLW 0x4D
CALL NIK; импульс 2 мс
MOVLW 0x12
CALL DEL_M; пауза 27,8 мс
MOVLW 0x47
CALL DEL_MK
MOVLW 0x0F
CALL NIK; импульс 0,4 мс
MOVLW 0x01
CALL DEL_M; пауза 1,6 мс
MOVLW 0x69
CALL DEL_MK
MOVLW 0x0F
CALL NIK; импульс 0,4 мс
MOVLW 0x02
CALL DEL_M; пауза 3,6 мс
MOVLW 0xFF
CALL DEL_MK
MOVLW 0x0F
CALL NIK; импульс 0,4 мс
RETLW 0

; Подпрограмма вывода импульса для Canon (заполнение 33 кГц)
;(Перед вызовом поместить длительность импульса в W)
CAN MOVWF IMP
M4 BCF GPIO, LED
MOVLW 0x02
CALL DEL_MK
NOP
NOP
NOP
BSF GPIO, LED
MOVLW 0x01
CALL DEL_MK
NOP
NOP
NOP
DECFSZ IMP, F
GOTO M3
RETLW 0

; Подпрограмма вывода сигнала для Canon
CANON MOVLW 0x13
CALL CAN; импульс 0,5 мс
MOVLW 0x05
CALL DEL_M; пауза 7,3 мс
MOVLW 0x13
CALL CAN; импульс 0,5 мс
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 STATUS, RP0; Выбран банк 1
MOVLW B'00000111'
MOVWF OPTION_REG
CALL 3FFh; Загрузить константу калибровки генератора
MOVWF OSCCAL
MOVLW B'00011111'; Порты (направление)
MOVWF TRISIO
MOVLW B'00010111'; Подтягивающие резисторы
MOVWF WPU

BCF STATUS, RP0; Выбран банк 0

MOVLW B'00100000'; Порты
MOVWF GPIO

;--------------------------

MOVLW 0x12
CALL DEL_M

LP1 BTFSS GPIO, CFG
CALL CANON
BTFSS GPIO, CFG
GOTO LP2
CALL NIKON

LP2 MOVF GPIO, W; Считать состояние перемычек
ANDLW B'00000111'
ADDLW B'11111000'
MOVWF COUNT
COMF COUNT, F

BTFSC STATUS, Z; Выключение, если нет
SLEEP

MOVF COUNT, W
XORLW 0x01; Включен 1 тайминг
BTFSC STATUS, Z
GOTO SET2

MOVF COUNT, W
XORLW 0x02; Включен 2 тайминг
BTFSC STATUS, Z
GOTO SET4

MOVF COUNT, W
XORLW 0x03; Включен 3 тайминг
BTFSC STATUS, Z
GOTO SET8

MOVF COUNT, W
XORLW 0x04; Включен 4 тайминг
BTFSC STATUS, Z
GOTO SET15

MOVF COUNT, W
XORLW 0x05; Включен 5 тайминг
BTFSC STATUS, Z
GOTO SET30

MOVF COUNT, W
XORLW 0x06; Включен 6 тайминг
BTFSC STATUS, Z
GOTO SET1M

GOTO SET2M; Включен 7 тайминг

SET2 MOVLW 0x02
GOTO TIME

SET4 MOVLW 0x04
GOTO TIME

SET8 MOVLW 0x08
GOTO TIME

SET15 MOVLW 0x0F
GOTO TIME

SET30 MOVLW 0x1E
GOTO TIME

SET1M MOVLW 0x3C
GOTO TIME

SET2M MOVLW 0x78
GOTO TIME

TIME MOVWF COUNT
LP3 CALL DEL_1S

DECFSZ COUNT, F
GOTO LP3

GOTO LP1

END

Проектирование корпуса

Современные технологии 3D печати решили давнюю проблему самоделок – на смену корявым и нелицеприятным корпусам пришли качественно выглядящие конструкции, ничем не уступающие промышленным образцам.

Корпус этого пульта разработан в SolidWorks, с расчетом последующей печати на 3D принтере. Выполнен он в лучших традициях китайского проектирования – ни одного винта, все на защелках.

Получившиеся габариты в большей степени обусловлены выбором источника питания. После непродолжительных раздумий было решено не использовать традиционный в подобных случаях литиевый элемент. Ибо режим Timelapse с постоянной генерацией посылки способен разрядить слабенький элемент довольно быстро. Поэтому используются 2 батарейки типа ААА.

Делаем ИК-пульт ДУ для фотоаппарата - 8

Распечатанный на 3D принтере корпус:

Делаем ИК-пульт ДУ для фотоаппарата - 9

Схему, печатную плату, исходный код и файлы для печати корпуса можно скачать отсюда [1].

Сборка

Перед началом сборки необходимо аккуратно отрезать ножом от держателей батареек плоские части с контактами:

Делаем ИК-пульт ДУ для фотоаппарата - 10

Получившиеся контакты приклеить к корпусу, соблюдая полярность:

Делаем ИК-пульт ДУ для фотоаппарата - 11

Затем поместить кнопку и вставить плату до упора, проследив, чтобы она зафиксировалась защелками. Осталось подпаять провода от батареек к плате и устройство готово:

Делаем ИК-пульт ДУ для фотоаппарата - 12

Вот так выглядит собранный ИК пульт ДУ:

Делаем ИК-пульт ДУ для фотоаппарата - 13

Настройка фотоаппарата

Перед использованием пульта нужно выполнить несложную настройку фотоаппарата для управления им через ИК пульт. Для каждой модели он разный, привожу алгоритм для своего Nikon D7000: 1) повернуть левое кольцо на иконку пульта, как на фото слева 2) настроить в меню «режим пульта дистанционного управления» необходимое срабатывание.

Делаем ИК-пульт ДУ для фотоаппарата - 14

Автор: GoldSerg

Источник [2]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/88773

Ссылки в тексте:

[1] отсюда: https://yadi.sk/d/dNjKSkROfxdXa

[2] Источник: http://habrahabr.ru/post/255667/