Easyelectronics.ru

Электроника для всех
Текущее время: 14 ноя 2019, 09:59

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 25 ] 
Автор Сообщение
 Заголовок сообщения: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 05 июн 2010, 15:02 
Старожил
Аватара пользователя

Зарегистрирован: 03 июн 2010, 01:24
Сообщения: 232
Откуда: Культурный центр Европы.
У знакомых Никон, у других - Кэнон. Появилося желание сделать пультик управление. Был найден алгоритм:
Цитата:
Canon, пульт RC-1. Несущая частота 33 кГц:
команда "Спуск": посылка 480 мкс, пауза 7324 мкс, посылка 480 мкс
команда "Спуск с 2 сек. задержкой": посылка 480 мкс, пауза 5371 мкс, посылка 480 мкс

Никон. Несущая частота 40 кГц:
команда "Спуск": посылка 2250 мкс, пауза 27600 мкс, посылка 650 мкс, пауза 1375 мкс, посылка 575 мкс, пауза 3350 мкс, посылка 650 мкс. Потом пауза в 63 мс (милли- не микро-!!!) и повтор всей последовательности еще один раз

Рекомендуются светодиоды с длиной волны 940nm

Вот что получилось для кэнона (я сейчас вдали от радиомагазинов, поэтому пришлось всё собирать из сподручных материалов):
Изображение
Для никона (там тока одна кнопка) собрал в корпусе от дисташки для машины.
Вот моя схемка для кэнона:
Вложение:
Комментарий к файлу: Схема пульта ДУ для фотоаппарата
IR remote.png
IR remote.png [ 12.17 Кб | Просмотров: 12197 ]


К сожалению, не все фотоаппараты Кэнона да Никона имеют инфракрасный приёмник. :(


Последний раз редактировалось Maksoff 07 июн 2010, 23:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 07 июн 2010, 04:11 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
Тут интересный феномен заметил, повторяя сей прибор :)
Если посылки слать постоянно, а не останавливаться после второй, то фотоаппарат Canon EOS300D вешается иногда. Помогает только выемка батареи. :) У вас такого не было случаем?
А когда сделал посылку только первых двух пачек импульсов - то фотик перестал вешаться, Срабатывает, правда, не всегда. где то на 7 нажатий, один раз пропустит.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 07 июн 2010, 23:17 
Старожил
Аватара пользователя

Зарегистрирован: 03 июн 2010, 01:24
Сообщения: 232
Откуда: Культурный центр Европы.
Не, я сразу программу написал, чтобы по кнопке включился, отработал две посылки, и баинкать. Вообще принимает стабильно, пока пропусков я не обнаружил. Фотоаппарат EOS 350. Когда баловался, сделал чтобы каждую секунду команда отправлялась - щёлкал как миленький.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 02:36 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6274
Откуда: Челябинск
Нет желания вынести это на народное обсуждение в виде статьи на главную?

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 02:41 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
DI HALT писал(а):
Нет желания вынести это на народное обсуждение в виде статьи на главную?

Я не автор этого топика, но у себя я статейку накатаю. Платку уже нарисовал. Жду контроллер, должен на неделе подойти.
Упдт.: Правда у меня только Canon.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 12:22 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6274
Откуда: Челябинск
Цитата:
Жду контроллер, должен на неделе подойти


Атмега128? ;))))

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 13:14 
Старожил
Аватара пользователя

Зарегистрирован: 03 июн 2010, 01:24
Сообщения: 232
Откуда: Культурный центр Европы.
Ок, постораюсь оформить в виде "как за два часа создать с нуля три таких пульта" :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 13:24 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
DI HALT писал(а):
Цитата:
Жду контроллер, должен на неделе подойти


Атмега128? ;))))

Эти я не заказываю ;-) Эти я выпаиваю ;-)

А под этот проект я заказал тини 25 ю. Хотя можно было и 13ю взять, но там у них не было в мелком корпусе, а платка должна быть мелкой - 47 х 30 мм.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 19:04 
Старожил
Аватара пользователя

Зарегистрирован: 30 апр 2010, 16:19
Сообщения: 1073
Откуда: Новосибирск
А для самсунга можно где-то найти инфу о протоколе ик-связи? У него родной пульт навороченный, с джойстиком и ещё около 4 доп. кнопок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 08 июн 2010, 19:19 
Старожил
Аватара пользователя

Зарегистрирован: 03 июн 2010, 01:24
Сообщения: 232
Откуда: Культурный центр Европы.
Kasym писал(а):
А для самсунга можно где-то найти инфу о протоколе ик-связи? У него родной пульт навороченный, с джойстиком и ещё около 4 доп. кнопок.

Я информацию нашел вот здесь: http://sappa.livejournal.com/13006.html
Кстати, про пультик на главной уже появилась статья: http://easyelectronics.ru/pult-distancionnogo-upravleniya-dlya-fotoapparatov-canon-i-nikon.html
Но про Самсунг там нет... Самый простой вариант: найти обладателя такого пульта да посмотреть осцилограмму сигнала :)

UPD: Спасибо DI HALT'у за предоставленную возможность публикации статьи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 09 июн 2010, 02:01 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 17:00
Сообщения: 72
Откуда: Украина. Бровары
Эх, на пару бы месяцев раньше я увидел статейку, не покупал бы для Кенон 450Д вот этот
Изображение
хотя этим можно и цифровиком управлять 3-мя кнопками что снизу (спуск мгновенный и фокусировка)
цена 16 у.е., это так на заметку и это тоже не оригинал :)

_________________
Учиться, учиться и еще раз учиться!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 12 июн 2010, 15:42 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
А вот мое рукоделие:

Изображение

Изображение

Правда только для Canon'а

Подробнее у меня тут

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 12 июн 2010, 15:52 
Старожил
Аватара пользователя

Зарегистрирован: 03 июн 2010, 01:24
Сообщения: 232
Откуда: Культурный центр Европы.
Красиво получилось :)
А я все никак ЛУТ не могу освоить, у друга прошу платки (если посерьезнее), а так на макетках собираю.
Да и лазернюка нету :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 31 июл 2010, 07:55 
Заглядывает иногда

Зарегистрирован: 07 фев 2010, 14:58
Сообщения: 63
Откуда: Новосибирск
Добрый всем день. Сделал пульт для никона практический такой же как и у Maksoff, только вместо tiny2313 поставил tiny13. Т.к. у данных тинек различные внутренние тактовые генераторы с разными частотами, то появилась необходимость править программу. Программу использую от Maksoff, единственное что в ней поменял, так это порт и ногу на которой весит транзистор. Помогите разобраться с временными задержками в программе, ибо в С я не очень понимаю. Тинька тактируется от внутреннего генератора с частотой 9.6 МГц + 4 мс задержка, также установлен фьюз CKDIV8, соответственно частота получается 1.2 МГц.


Вложения:
Комментарий к файлу: Исходник
NikonPult.c [1.6 Кб]
Скачиваний: 417
Комментарий к файлу: Принципиальная схема
схема.PNG
схема.PNG [ 29.06 Кб | Просмотров: 11555 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 31 июл 2010, 14:19 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Всмысле задержки сбились?
Нужно в самом начале файла, перед include'ами определить макрос F_CPU со значением тактовой частоты, для 1.2МГц:
#define F_CPU 1200000UL
А в макросе two_pulses просто добавить/убрать nop'ов до нужной задерки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 31 июл 2010, 16:17 
Заглядывает иногда

Зарегистрирован: 07 фев 2010, 14:58
Сообщения: 63
Откуда: Новосибирск
F_CPU я сразу выставил, а вот с макросом разобраться не могу. Как я понял при частоте 1 МГц, сначала идет импульс длительностью 11 мкс (nop выполняется за один же цикл?), далее пауза 10мкс и снова импульс 11 мкс, потом пауза 6 мкс. Теперь не понятно откуда берутся и что это за 50 мкс у Maksoff?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 01:48 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Что бы задержки не пересчитывать, сделать вместо макроса что-нибудь типа:
Код:
inline void two_pulses() {
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(10);
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(6);
}

#define two_pulses two_pulses() // чтобы в коде скобочки не подставлять:)

Странно почему 50 мкс, вобще получается по 8 на sbi/cbi(4 по два) и 38 на задержки, итого 46. В конце четырех nop'ов видать не хватает:) Ну, это учитывая что частота 1МГц, 1 такт == 1мкс.
Вобщем так попробовать, и с 10 секундной задержкой тоже. Как-нибудь точно получится.
Только не забыть ключ -Os при компиляции поставить! Иначе задержки собьются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 01:55 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
извините меня, ламера, но ИМХО делать на си код "рассчитанный по тактам" - полный бред. если нужен потактовый расчет - только асм (асм-вставка). это избавит вас от подгонок, от необходимости игры с оптимизацией и прочего барахла. в конце-концов, оно будет работать везде и всегда одинаково.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 02:04 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Зато частоту сменил - заново все пересчитывать:) Если на время компиляции задержки известны и включена оптимизация, то _delay_** в те же самые ассемблерные циклы раскрываются. Только компилятор сам за тебя такты посчитает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 03:29 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
зато никогда достоверно не знаешь, сколько тактов занимает другой сишный код (типа вывода в порт, изменения бита и т.п.). это чем-то похоже на применение магических чисел - тебе понятно сейчас, а другим будет не понятно, да и тебе же потом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 13:01 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Если мучает паранойя, всегда можно посмотреть сгенерированный код и, если оптимизация компилятора не устраивает, сделать ассемблерную вставку.
Код:
int main() {
  PORTD |= 1;
}

дает:
Код:
main:
/* prologue: function */
/* frame size = 0 */
   sbi 50-32,0
/* epilogue start */
   ret

А магические числа - это как раз в ассемблере:
Код:
ldi tmp_reg, magic_number ; высчитано под конкретную частоту
delay_l:
  dec tmp_reg
  brne delay_l
; еще n nop'ов:)

против _delay_us(some_delay).
Тут как бы двояко.
Сишный код в данном случае проще переносимый, поддерживаемый и более понятный, но, неоднозначный в плане сгенерированного кода, этакий черный ящик.
Ассемблер же однозначен в данных конкретных условиях, но, все что в сишном когде плюсы - тут минусы:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 19:14 
Заглядывает иногда

Зарегистрирован: 07 фев 2010, 14:58
Сообщения: 63
Откуда: Новосибирск
Добавление нужного количества нопов в исходную программу привело к тому что программа перестала помещаться в тиньку. Решил сделать как сказал iv_s, теперь с размером программы все нормально, но возник глупый вопрос правильно ли я вставил функцию в текст программы?


Вложения:
NikonPult.c [1.37 Кб]
Скачиваний: 408
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 01 авг 2010, 21:38 
Старожил
Аватара пользователя

Зарегистрирован: 22 мар 2010, 21:38
Сообщения: 1623
Откуда: Нижний Тагил
Хм, а дроби то там зачем? Почему нельзя вместо ms использовать us?
Вот пример как можно реализовать задержку с помощью таймера. Достаточно точное решение.
Код:
void delay_us(uint8_t x)
{
   TIFR2 = 0x01; //Clear any interrupt flags on Timer2
   
    TCNT2 = 256 - x; //256 - 125 = 131 : Preload timer 2 for x clicks. Should be 1us per click

   while( (TIFR2 & (1<<TOV2)) == 0);
}

_________________
Электроника для модельных железных дорог. DCC и разные чудеса с ним.
XpressNet не так уж и страшно, как казалось на первый взгляд...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 02 авг 2010, 06:15 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Flagman писал(а):
Добавление нужного количества нопов в исходную программу привело к тому что программа перестала помещаться в тиньку. Решил сделать как сказал iv_s, теперь с размером программы все нормально, но возник глупый вопрос правильно ли я вставил функцию в текст программы?

Мимо!:)
Вместо:
Код:
void program (void)

{
  inline void two_pulses() {
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(10);
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(6);
}

#define two_pulses two_pulses()

   unsigned char i;
...

нужно так:
Код:
  inline void two_pulses() {
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(10);
  led_port |= led_pin;
  _delay_us(11);
  led_port &= ~led_pin;
  _delay_us(6);
}

#define two_pulses two_pulses()
void program (void)
{
   unsigned char i;

На всякий, комментарии о том, что эти строчки значат.
inline void two_pulses() - определяет функцию с именем two_pulses, void - значит ничего не возвращает функция, inline - означает, что код функции будет скопирован в место обращения к этой функции вместо непосредственного ее вызова(RCALL).
Код сверху был в неправильном месте, так как функцию в функции объявлять нельзя.
А define - это для удобства, т.к. в оригинальном исходнике использовался макрос, то он вызывался просто как two_pulses; А так как теперь мы определили функцию, то при вызове нужно ставить скобки - two_pulses(); Так вот чтобы код не менять, этот макрос и нужен:)
Ну и F_CPU не определен.
Также проверить, есть ли ключ -Os у gcc, иначе и задержки нормально работать не будут и прошивка будет большая и в тиньку не влезет:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пульт ДУ для фотоаппарата.
СообщениеДобавлено: 02 авг 2010, 06:28 
Заглядывает иногда

Зарегистрирован: 07 фев 2010, 14:58
Сообщения: 63
Откуда: Новосибирск
iv_s, огромное спасибо за развернутый ответ.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB