tag:blogger.com,1999:blog-39074069650519698002024-03-09T18:46:38.569-08:00Circuit for the Photos.“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-3907406965051969800.post-45685687751169611922014-02-09T09:11:00.001-08:002014-02-09T09:11:00.224-08:00Holder for Umbrella 180 cm.<p><img src="http://farm8.staticflickr.com/7318/12412002173_42bb70b3d5_z.jpg"></p> <p> </p> <p><font size="3">На этой неделе купил зонтик 180 см. Проснулась хотелка, жабу долго уговаривать не пришлось. Стоит такая радость не дорого. Заказал, и к выходным зонтик был у меня. Была идея использовать зонтик на свадьбе в помещении. Спонтанно организовал на выходных фото сессию. Откликнулись две девушки. Сессия прошла успешно. Но. После первых проб стало понятно, что применять зонтик такого размера на свадьбе без ассистента трудно.</font> <p><font size="3">По порядку, какие трудности возникают с зонтиком 180 см.</font> <p><font size="3">Трудность: как закрепить.</font> <p><font size="3">Зонтик большой и очень длинный. Обычное крепление его не держит и заваливается. Я пробовал китайские держатели из пластика и Manfrotto 026. С металлическим креплением лучше, но очень всё ненадёжно. Если вам удастся найти крепление, где поворотный механизм 40 мм и более, должно держать. Не забудьте написать где купили. Использовать крепление с поворотным механикой до 25мм не советую. Побьёте не только зонтик но и вспышки.</font> <p><font size="3">Студийные блоки и генераторные головы!</font> <p><font size="3">У зонтика средняя штанга 8 мм в диаметре. С таким диаметром закрепить зонтик в Elinchrom невозможно. Зонтик просто не заходит в крепёжное отверстие. Если вам вдруг взбредёт такая блажь, как и мне, поиграться с большим китайским зонтиком, будьте готовы что- то сделать руками или купить приличное крепление. Искать и покупать хорошее крепление у меня не было времени. Крепление мне надо было на этих выходных. Сделал из того, что было дома. </font> <p><font size="3">Вариант крепления номер один.</font> <p><font size="3">Идея: сместить центр тяжести и разгрузить поворотный узел. Для этого нужно небольшая стойка 35..45 см.</font> <p><img src="http://farm4.staticflickr.com/3743/12412003563_eac43a9a87_n.jpg"> <p><font size="3">Выглядит это так.</font> <p><img src="http://farm4.staticflickr.com/3831/12412329454_7db71262bd_n.jpg"> <p><font size="3">Конструкция не внушает доверия, так как поворотные механизмы остались старыми, но держит. Если верхнее плечо заменить на цанговый зажим, устойчивость выше. </font> <p><img src="http://farm8.staticflickr.com/7409/12412328464_88370eacd9_n.jpg"> <p><font size="3">А если заменить нижнее колено на более массивное, будет вообще хорошо. Недостаток такой конструкции - нужно все время искать равновесие. Работать с таким креплением не рискнул.</font> <p><font size="3">Для уверенной работы сделал более надёжную конструкцию.</font> <p><font size="3"><a href="http://karu2003.blogspot.de/2012/09/indirect-zoom-lightholder.html">Поворотное колено</a> взял от студийного блока, на него поставил «П» образный профиль с двумя отверстиями. Понадобилось два винта ¼ , взял со штативных площадок.</font> <p><font size="3"><img src="http://farm8.staticflickr.com/7413/12412326894_cf0bbc595f_n.jpg"></font> <p><font size="3">Закрепил мой <a href="http://karu2003.blogspot.de/2012/10/my-precious-eng.html">цанговый держатель</a>. Можно установить две системные вспышки. Теперь можно работать.</font><font size="3"> Если света мало, на другое отверстие крепим кольцевую вспышку.</font> <p><img src="http://farm8.staticflickr.com/7289/12412325984_518ff4a8e2_n.jpg"> <p><img src="http://farm8.staticflickr.com/7392/12412000693_01429d1723_n.jpg"> <p>Спасибо Вике и Тане за время и терпение. <p><img src="http://farm4.staticflickr.com/3680/12411852145_b8d341e5f2_o.jpg"> <p> <p><font size="3">Работать с таким большим зонтиком не очень просто.</font> <p><font size="3">Светом управлять сложнее чем софт боксом.</font> <p><font size="3">Успешных вам Кадров.</font><font size="3"><br>© Andrew Buckin.</font></p> <p> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br><br><span style="font-size: small; font-family: georgia"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631753280144/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-82070119018593387132013-10-06T03:23:00.001-07:002013-10-06T03:23:59.713-07:00Nikon Power Connector.<p> </p> <p><img src="http://farm4.staticflickr.com/3671/10113687176_0d06de76c8_n.jpg"></p> <p><font size="3">В последнее время, работая в студии с предметкой, стало не хватать батарейки. Не то чтоб батарейка стала плохой, нет, очень часто использую связь с компьютером, когда фотографии сразу передаются в компьютер. В таком режиме камера потребляет больше, и на полный рабочий день питания не хватает. Посмотрел в сети, какие есть решения и что можно купить . Как оказалось - ничего что бы мне подошло. :) Сам разъем купить нельзя, внешнюю дополнительную батарейку никто не делает. Единственное, что можно купить, это блок питания от сети. Но такой вариант мне не очень нравиться, так как за камерой нужно тянуть провод. Можно, конечно, использовать бат ручку, но координально это не помогает. У меня есть в наличии лёгкие АКБ блоки в 200Вт/ч. И кроме питания самой камеры мне бы хотелось иметь +5В для питания модуля связи. Аппетит растёт во время еды. Остаётся сделать всё самому. Но единственная загвоздка - это специфический разъем питания Никон. После небольших поисков я нашёл похожий разъем MOLEX- Micro-Fit 430250400. Но использовать его долгосрочно опасно. Разъем квадратный и его можно вставить неправильно и спалить камеру. Для лабораторных исследований достаточно, а вот для студии - нет. Решил попробовать напечатать разъем на 3D принтере.</font> </p> <div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a292ec9e-8e5e-4a6b-a918-7d124418e968" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/XQJxgpaWlbw?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/XQJxgpaWlbw?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div><div style="width:448px;clear:both;font-size:.8em">Printing Nikon Power Connector</div></div> <p><font size="3">С первой попытки модель разъёма получилась не очень пригодной для печати (красная на фотографии). Я сделал очень точную модель разъема без учета технологических допусков. Зато вторая модель (синяя на фотографии) встала без проблем.</font> <p><img src="http://farm6.staticflickr.com/5520/10113742133_85552d78e6_n.jpg"> <p> <font size="3">После печати установил два контакта, и разъем готов.</font> <p><img src="http://farm4.staticflickr.com/3758/10113687456_9d299224d4_n.jpg"> <p><font size="3">Успешных вам Кадров.<br>© Andrew Buckin.</font></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-51090584331536440142013-01-27T11:17:00.001-08:002013-01-27T11:31:18.589-08:00Nikon iTTL protocol: Who Master, who Slave?<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<span style="font-size: small;">Цель этих исследований - создать эмулятор системной вспышки SB-900. Эмулятор мне нужен для работы со студийным светом в режиме HSS без участия системной вспышки. Пока все в рабочих тезисах. У меня есть предположение, что для корректной работы камеры с системной вспышкой в режиме HSS, вспышка сообщает камере о своих физических возможностях, камера учитывает их и подстраивает работу затвора. В прошлой статье я немного затронул особенности работы, но только для сигнала данных. Написал тест программу для Arduino. Но после первых проб выяснилось, что SPI контроллер Arduino очень часто сбивается. Заветное число х85 в начале пакета Arduino не ловит. У процессора Atmel нет аппаратного контроля выборки. Так что я расширил схему, добавил ещё два датчика тока на линии CLK и Direction и пересел с Arduino на <a href="http://www.ti.com/ww/en/launchpad/stellaris_head.html?DCMP=stellaris-launchpad&HQS=stellaris-launchpad" target="_blank">Stellaris</a>. Пару подарочных плат у меня с прошлой выставки валяется. В конечном устройстве планирую использовать <a href="http://www.ti.com/ww/de/msp430.html" target="_blank">MSP430</a>.</span> <br />
<span style="font-size: small;">Для начала надо было определить распределение ролей в обмене: кто в протоколе Master, а кто Slave. Для простоты понимания кто и куда, свёл все в таблицу истинности. </span> <br />
<img src="http://farm9.staticflickr.com/8378/8419785857_c0bb14d649.jpg" /> <br />
<span style="font-size: small;">Стрелочкой показано направление тока. Pin3, Pin4 выводы <a href="http://farm9.staticflickr.com/8079/8377136007_7d88156d06_b.jpg" target="_blank">INA193</a>. </span><span style="font-size: small;">Зная уровень сигнала на линиях CLK или DATA или SS и Direction, можно определить кто Master, а кто Slave. Для примера: на линии “1” и направлении “1” Master подключён в выводу “pin 3”. </span> <br />
<span style="color: #222222; font-size: small;"><b>И так, по порядку, что происходит.</b></span> <br />
<span style="font-size: small;">Я пока не буду рассматривать момент включения камеры и вспышки. Считаем, что камера и вспышка уже включены. Я пока не планирую изучать весь протокол, поэтому не буду изменять параметры вспышки. Эмулятор будет без кнопок. Все что мне нужно - записать кодограмму потока и потом проиграть её.</span><span style="font-size: small;"> Так выглядят сигналы когда нет обмена.</span> <br />
<img src="http://farm9.staticflickr.com/8464/8419667283_764646fd49.jpg" /> <br />
<span style="font-size: small;"><a href="http://farm9.staticflickr.com/8464/8419667283_764646fd49_b.jpg" target="_blank">800х480</a></span> <br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8356/8419667361_489394a8bd.jpg" /></span><br />
<span style="font-size: small;"><a href="http://farm9.staticflickr.com/8356/8419667361_489394a8bd_b.jpg" target="_blank">800х480</a></span><br />
<span style="font-size: small;">На линии CLK виден цикличный сигнал с периодом 128мс и длительностью в 8мс. Интересно, что сигнал не просаживается до «0», а всего до 1,4V. Думаю так, вспышка определяет, что камера подключена. Сигнал CKL всегда идет от в</span><span style="font-size: small;">спышки. </span> <br />
<span style="font-size: small;"><b>Flash - MASTER.</b></span> <br />
<img src="http://farm9.staticflickr.com/8188/8419667199_79aced2679.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8188/8419667199_79aced2679_b.jpg" target="_blank">800х480</a> <br />
<img src="http://farm9.staticflickr.com/8097/8420764032_f4f1faef3e.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8097/8420764032_f4f1faef3e_b.jpg" target="_blank">800х480</a> <br />
<img src="http://farm9.staticflickr.com/8091/8419667037_911f8f639b.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8091/8419667037_911f8f639b_b.jpg" target="_blank">800х480</a> <br />
<span style="font-size: small;"><b>Сигнал Handshake (SS).</b></span> <br />
<span style="font-size: small;">С сигналом SS я пока полностью не определился. По логике работы этот сигнал должен генерировать Мастер. Но, если учесть направление тока в линии, то получается, что сигналом управляет камера. В состоянии сканирования сигнал установлен в “0”, после нажатия на спуск сигнал поднимается в “1”. </span><br />
<span style="font-size: small;">Датчик тока в сигнале CLK.</span><br />
<img src="http://farm9.staticflickr.com/8328/8419666953_60bac8e139.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8328/8419666953_60bac8e139_b.jpg" target="_blank">800х480</a> <br />
<span style="font-size: small;">Датчик тока в сигнале SS.</span><span style="font-size: small;"> </span> <br />
<img src="http://farm9.staticflickr.com/8473/8420763802_9539134357.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8473/8420763802_9539134357_b.jpg" target="_blank">800х480</a> <br />
<span style="font-size: small;">Датчик тока в сигнале SS.</span><span style="font-size: small;"> </span> <br />
<img src="http://farm9.staticflickr.com/8374/8420764402_5a08511724.jpg" /> <br />
<a href="http://farm9.staticflickr.com/8374/8420764402_5a08511724_b.jpg" target="_blank">800х480</a> <br />
<span style="font-size: small;">С сигналами пока все.</span> <br />
<span style="font-size: small;">Если с сигналами и ролями в протоколе что-то проясняется, то с содержанием сплошные вопросы. Какая очередность битов в байте, LSB or MSB? Какая кодировка информации.</span> <br />
<span style="font-size: small;">Пример протокола общения между D700 и SB-900 данные в формате LSB.</span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;">(Camera)a1,
(Flash)1,1,5,2,8,7,81,78,b4,64,a,4e,ff,3e,90,3e,90,1d,
(Camera)b1,1,1,12,5,3,1,9,1c,0,f4,b0,5,0,40,24,30,24,50,0,3,53,11,24,24,24,91,a0,
(Flash)6,6,b6,6,0,2a,88,54,30,23,0,ff,ff,0,ff,0,0,0,0,0,0,1f,
(Camera)a2,
(Flash)3,6d,9b,90,86,80,7a,72,6a,65,5e,6,75,9e,8a,80,77,6f,66,60,58,6,74,9e,95,8b,80,76,66,60,59,4,5f,96,8a,82,80,7e,71,6e,6a,fc,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,b6,4,0,2a,88,54,30,23,0,ff,ff,0,6,0,0,0,0,0,0,25,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c7,4,0,2a,99,65,30,c8,0,ff,ff,0,6,0,0,0,0,0,0,fd,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c7,4,0,2a,99,65,30,c3,0,ff,ff,0,6,0,0,0,0,0,0,f8,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c6,4,0,2a,98,64,30,b4,0,ff,ff,0,6,0,0,0,0,0,0,e6,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c5,4,0,2a,97,63,30,9b,0,ff,ff,0,6,0,0,0,0,0,0,ca,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c4,4,0,2a,96,62,30,82,0,ff,ff,0,6,0,0,0,0,0,0,ae,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c3,4,0,2a,95,61,30,6e,0,ff,ff,0,6,0,0,0,0,0,0,97,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c2,4,0,2a,94,60,30,5c,0,ff,ff,0,6,0,0,0,0,0,0,82,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,c0,4,0,2a,92,5e,30,50,0,ff,ff,0,6,0,0,0,0,0,0,70,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bf,4,0,2a,91,5d,30,46,0,ff,ff,0,6,0,0,0,0,0,0,63,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bd,4,0,2a,8f,5b,30,3e,0,ff,ff,0,6,0,0,0,0,0,0,55,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bc,4,0,2a,8e,5a,30,38,0,ff,ff,0,6,0,0,0,0,0,0,4c,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,34,0,ff,ff,0,6,0,0,0,0,0,0,45,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,6,0,0,0,0,0,0,43,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,6,0,0,0,0,0,0,43,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,5,0,0,0,0,0,0,42,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,4,0,0,0,0,0,0,41,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,3,0,0,0,0,0,0,40,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)b0,5,24,40,24,2f,24,50,0,3,53,11,24,24,24,b4,a0,
(Flash)7,6,bb,4,0,2a,8d,59,30,32,0,ff,ff,0,2,0,0,0,0,0,0,3f,
(Camera)e0,0,</pre>
<br /></div>
<br />
<span style="font-size: small;">Требуется помощь клуба.</span><br />
<span style="font-size: small;">Понять какую кодировку использует Никон.</span><br />
<span style="font-size: small;">Начать можно с фрейма “B0”.</span><br />
<span style="font-family: Courier New; font-size: x-small;">1/250 F8 <br />(Camera 50mm) b0,5,20,40,24,2f,24,50,0,3,43,11,24,24,24,a0,a0,<br />(Camera 85mm) b0,5,24,40,24,2f,24,62,0,3,7a,03,24,24,24,df,a0,<br />(Camera105mm) b0,5,24,40,24,2f,24,6a,0,3,41,11,24,24,24,bc,a0,</span><br />
<br />
<span style="font-family: Courier New; font-size: x-small;">1/250 F8 2m<br />(Camera 50mm) b0,5,20,40,24,2f,24,50,0,3,47,11,24,24,24,a4,a0,<br />(Camera 85mm) b0,5,20,40,24,2f,24,62,0,3,5e,11,24,24,24,cd,a0,<br />(Camera105mm) b0,5,20,40,24,2f,24,6a,0,3,40,11,24,24,24,b7,a0,</span><br />
<br />
<span style="font-family: Courier New; font-size: x-small;">1/250 F8 4m<br />(Camera 50mm) b0,5,20,40,24,2f,24,50,0,3,53,11,24,24,24,b0,a0,<br />1/500 F8 4m<br />(Camera 50mm) b0,5,30,40,24,36,24,50,0,3,53,11,24,24,24,c7,a0,<br />1/250 F11 4m<br />(Camera 50mm) b0,5,24,40,24,2f,2a,50,0,3,53,11,2a,24,24,c0,a0,<br />1/250 F1.4 4m<br />(Camera 50mm) b0,5,24,40,24,2f,06,50,0,3,53,11,06,24,24,78,a0,</span><br />
<br />
<span style="font-size: small;">Восьмой байт в фрейме явно определяет фокусное объектива.</span><br />
<br />
<span style="font-size: small;">Но перевести х50 в 50мм, х62 в 85мм, х6а в 105мм однозначно не получается. Я не думаю, что это табличные значения. Вспышка должна иметь таблицу на все фокусные от 8 до 600 с шагом в 1 мм. Не верю. <img alt="Smiley" class="wlEmoticon wlEmoticon-smile" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6LZ_fo_KJwRJhrUxV6_Fc5Fw0Qp1C35HwdOxxydaJTGh1jDbYpYOET__8WNVtslGfYeynZZh0XttCKE5EYmWpzzAe7bF3bGssGl_hZ1ob0o5So0pY37v71-PaZuVaru8JS_VgvLEVQdB/?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /> </span><br />
<br />
<span style="font-size: small;">Буду признателен за любые бредовые и небредовые идеи. </span><br />
<br />
<span style="font-size: small;">Успешных вам Кадров.</span><br />
<br />
<span style="font-size: small;">© Andrew Buckin.</span></div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com1tag:blogger.com,1999:blog-3907406965051969800.post-39810819143220921512013-01-13T13:42:00.001-08:002013-01-14T01:01:52.833-08:00Nikon iTTL protocol Analysis: Hardware.<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<img src="http://farm9.staticflickr.com/8359/8378204864_7ce55cf3ea.jpg" /><br />
<span style="font-size: small;">В этой статье хочу изложить рабочие тезисы для взлома протокола iTTL. Перед тем как начать изучение, я посмотрел что <a href="http://cms.diodenring.de/electronic/microcontroller/110-ittlanalysis#resource_SB800_service" target="_blank">есть</a> в сети. В сети не очень много достоверной информации по протоколу iTTL. Любители уже многого <a href="http://dptnt.com/2010/04/nikon-flash-interface/" target="_blank">достигли</a>. Я хочу добавить немного своих знаний. И так.</span> <br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8495/8377128763_6ac05643c2_n.jpg" /></span> <br />
<span style="font-size: small;">На горячем башмаке находятся 5 контактов DATA, CLK, Query , HOT, GND. </span> <br />
<span style="font-size: small;">Интерфейс похож на SPI. Частота работы ~ 62,5КГц. Сигнал DATA двунаправленный. Сигнал Query очень похож на сигнал выбора, активный уровень «0», но, по всей видимости, тоже двунаправленный, так как переходит в активное состоянии при изменении на камере и на вспышке. Для анализа я планирую использовать Arduino. Чтобы различать направление данных пришлось модернизировать кабель SC-17. </span><span style="font-size: small;">Выбросил ненужные мне подключения и добавил датчик тока в разрыв линии данных.</span> <br />
<span style="font-size: small;"></span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8087/8378204554_be4da4655a_n.jpg" /></span> <br />
<span style="font-size: small;"> Думаю, что эта маленькая особенность (датчик тока) поможет мне больше. <img alt="Smiley" class="wlEmoticon wlEmoticon-smile" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp6jMk2Rup-DEtvKMmoK_ulI5RLAVg455IYZ3TtD5UG6AfWiatmVTi8aKY5AhyXD1pWcs-NKpc7sZS5C9b3YQ0q1FPDBPQXHVvfjD7D4b9Kr_7u_hLnLvjKcheSkjhiHiRqTHhrsy9AYGo/?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /></span> <br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8079/8377136007_7d88156d06.jpg" /></span> <br />
<span style="font-size: small;"><a href="http://farm9.staticflickr.com/8079/8377136007_7d88156d06_b.jpg" target="_blank">1024 x 442</a> </span><br />
<span style="font-size: small;">Жаль, что датчик тока можно поставить только в одну сторону. Я пробовал два усилителя, но увы. Падение напряжения можно измерить только в одну сторону. Если увеличить шунт до 100 ом, связь между камерой и вспышкой прекращается. <img alt="Trauriges Smiley" class="wlEmoticon wlEmoticon-sadsmile" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx0xyjLxDc33jETQP3Fh8zBsgI_BNjZ2IL91v37ChAz2aE3aQK2Qo39aXnfCLQvxSgcH0KsK7bAy7id-Tosx-On2WHdGrSaRk4kP6BEpHm2q7aONyZKCZQl5ep1LMUBaVYSF96nPAAT1tI/?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /></span> <br />
<img src="http://farm9.staticflickr.com/8195/8376523960_0f764a23be_n.jpg" /> <br />
<span style="font-size: small;">Ch 1 — CLK, Ch 2 – DATA, Ch 3 – Current, Ch 4 - Query.</span> <br />
<span style="font-size: small;"><a href="http://farm9.staticflickr.com/8195/8376523960_0f764a23be_b.jpg" target="_blank">800 x 480</a> </span><br />
<span style="font-size: small;">Видно что SPI работает в MODE3. Какой порядок битов (LSB or MSB ) пока определить трудно.</span> <br />
<span style="font-size: small;">Пока все.</span> <br />
<a href="http://www.flickr.com/photos/13931361@N08/sets/72157632506911911/" target="_blank"><span style="font-size: small;">Fotostream</span></a> <br />
<span style="font-size: small;">© Andrew Buckin.</span> <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-48038177316485959012013-01-13T11:42:00.001-08:002013-01-14T06:20:50.499-08:00Time machine: Price.<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;">С момента выхода первого релиза я получил немало вопросов. Спасибо. </span><br />
<span style="font-size: small;">Одни из них связаны с ценой на прибор, могу ли я помочь платами или продать готовое устройство. Дело обстоит так. Я не обладаю сейчас производственными мощностями и не готов поставить «Машину времени.» Но это не означает, что вы сами не можете повторить устройство. Схемы и платы распространяются по General Public License. Стоимость я свёл в таблицу. В этой таблице не учтена стоимость работы и печатные платы. От страны к стране цены могут изменяться. </span><br />
<a href="https://docs.google.com/spreadsheet/ccc?key=0Ajk8S9VI1rscdElWOVlLcUFUa2VuN05TMGs0YVp3eVE" target="_blank"><span style="font-size: small;">Price</span></a><span style="font-size: small;"> </span> <br />
<span style="font-size: small;">Успехов в сборке. </span> <br />
<span style="font-size: small;">© Andrew Buckin.</span> <br />
<br />
</div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-90238265703268510572013-01-05T08:52:00.001-08:002013-01-05T09:25:41.341-08:00Time machine: Release One.<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8372/8349034027_8e57f3b195.jpg" /></span><br />
<br />
<a href="http://karu2003.blogspot.de/2011/12/camera-control-with-arduino.html" target="_blank"><span style="font-size: small;">Camera Control with Arduino.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/10/myths-and-realities-sync-with-studio.html" target="_blank"><span style="font-size: small;">Myths and realities Х-sync with studio light.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/10/time-machine-display.html" target="_blank"><span style="font-size: small;">Time machine: Display.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/10/time-machine-power.html" target="_blank"><span style="font-size: small;">Time machine: Power.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/11/time-machine-microphone.html" target="_blank"><span style="font-size: small;">Time machine: Microphone.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/12/time-machine-analog.html" target="_blank"><span style="font-size: small;">Time machine: Analog.</span></a> <br />
<a href="http://karu2003.blogspot.de/2012/12/time-machine-encoder.html" target="_blank"><span style="font-size: small;">Time machine: Encoder.</span></a> <br />
<br />
<span style="font-size: small;">Шаг за шагом я добрался до готового устройства. Схема закончена, платы заказаны, базовый код написан, ошибки найдены и исправлены. Вспоминая закон «Мерфи» в это поверить трудно. Но пока так и останется. Если ошибки и есть, то это будут не ошибки, а скрытые возможности. </span> <br />
<br />
<span style="font-size: small;"><b>Подведём итоги:</b> </span> <br />
<br />
<span style="font-size: small;">Питается всё от батарейки 9В. Аккумулятора 200мАч должно хватить на 7 часов работы, щелочной батарейки на 23 часа работы, с литий-тионил батарейкой можно работать 44 часа непрерывно. Максимальное входное напряжение 40В. Это на тот случай, если нет под рукой подходящей батарейки. Из органов управления есть всего один энкодер, пока неудобства не испытывал. Вся информация отображается на OLED дисплее. В устройстве есть два входа: логический и для микрофона. Все входы разведены на стандартный аудио штекер 3,5мм. К логическому входу кроме камеры можно подключить фототранзистор или фотодиод. Есть три гальванически развязанных выхода. Выходы «1» и «2» совмещены и разведены на штекер 2,5мм, сюда можно подсоединить дистанционный кабель камеры. Выход «3» разведён на штекер 3,5мм и «горячий башмак», можно установить вспышку или радио - триггер непосредственно на «МВ». К выходу «3» можно подключать высоковольтные устройства до 300В. Из железа пока ничего больше не планируется. Есть пару идей в будущем добавить bluetooth и организовать сеть между приборами и управлять всем через с<span style="font-size: small;">м</span>арт телефон.</span><br />
<span style="font-size: small;"> </span> <br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8325/8349032251_a7db03feb3_n.jpg" /> </span><br />
<img src="http://farm9.staticflickr.com/8075/8350094250_af01806a09_n.jpg" /><br />
<br />
<span style="font-size: small;"><b>О программе.</b></span> <br />
<br />
<span style="font-size: small;">В первую очередь в этом релизе делался упор на совместную работу «МВ» и студийного света. </span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: green;">/*</span>
<span style="color: green;"> * @name Time machine.</span>
<span style="color: green;"> * @version 1.0</span>
<span style="color: green;"> * @web http://karu2003.blogspot.de/</span>
<span style="color: green;"> * @author Andrew Buckin, Eugene Glushko.</span>
<span style="color: green;"> *</span>
<span style="color: green;"> *</span>
<span style="color: green;"> * "Time machine" is free software: you can redistribute it and/or modify</span>
<span style="color: green;"> * it under the terms of the GNU General Public License as published by</span>
<span style="color: green;"> * the Free Software Foundation, either version 3 of the License, or</span>
<span style="color: green;"> * (at your option) any later version.</span>
<span style="color: green;"> *</span>
<span style="color: green;"> * "Time machine" is distributed in the hope that it will be useful,</span>
<span style="color: green;"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span style="color: green;"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<span style="color: green;"> * GNU General Public License for more details.</span>
<span style="color: green;"> *</span>
<span style="color: green;"> * You should have received a copy of the GNU General Public License</span>
<span style="color: green;"> * along with "Time machine". If not, see <http://www.gnu.org/licenses/>.</span>
<span style="color: green;"> * Questions? Send mail to ka_ru2003@msn.com</span>
<span style="color: green;"> */</span>
<span style="color: #cc6633;">#include</span> <Wire.h>
<span style="color: #cc6633;">#include</span> <math.h>
<span style="color: #cc6633;">#include</span> <Adafruit_GFX.h>
<span style="color: #cc6633;">#include</span> <Adafruit_SSD1306.h>
<span style="color: #cc6633;">#define</span> NO_PORTD_PINCHANGES
<span style="color: #cc6633;">#define</span> NO_PORTB_PINCHANGES
<span style="color: #cc6633;">#include</span> <PinChangeInt.h>
<span style="color: #cc6633;">#include</span> <SPI.h>
<span style="color: #cc6633;">#include</span> <EEPROM.h>
<span style="color: #cc6633;">#define</span> OLED_RESET_PIN 10
<span style="color: blue;">struct</span> delay_entry_t {
uint16_t exposure;
uint16_t delay;
uint8_t dirty;
};
<span style="color: blue;">enum</span> ui_mode_e {
BROWSING,
EDITING
};
<span style="color: blue;">enum</span> gen_mode_e {
IDLE,
DELAY,
PULSE
};
<span style="color: blue;">struct</span> status_t {
ui_mode_e ui_mode;
gen_mode_e gen_mode;
int8_t index;
int8_t digit;
};
delay_entry_t entries[] = {
<span style="color: green;">// { 60, 1001, 0 },</span>
<span style="color: green;">// { 80, 1002, 0 },</span>
<span style="color: green;">// { 100, 1003, 0 },</span>
<span style="color: green;">// { 125, 1004, 0 },</span>
<span style="color: green;">// { 160, 1005, 0 },</span>
<span style="color: green;">// { 200, 1006, 0 },</span>
{ 250, 1007, 0 },
<span style="color: green;">// { 320, 1008, 0 },</span>
<span style="color: green;">// { 400, 1009, 0 },</span>
{ 500, 1010, 0 },
<span style="color: green;">// { 640, 1011, 0 },</span>
<span style="color: green;">// { 800, 1012, 0 },</span>
{ 1000, 1013, 0 },
<span style="color: green;">// { 1250, 1014, 0 },</span>
<span style="color: green;">// { 1600, 1015, 0 },</span>
{ 2000, 1016, 0 },
<span style="color: green;">// { 2500, 1017, 0 },</span>
<span style="color: green;">// { 3200, 1018, 0 },</span>
{ 4000, 1019, 0 },
<span style="color: green;">// { 5000, 1020, 0 },</span>
<span style="color: green;">// { 6400, 1021, 0 },</span>
{ 8000, 1022, 0 }
};
<span style="color: #cc6633;">#define</span> SAVE_EVENT 1
<span style="color: #cc6633;">#define</span> SHDN_EVENT 2
<span style="color: #cc6633;">#define</span> DEBOUNCING_INTERVAL 20
<span style="color: #cc6633;">#define</span> SAVE_INTERVAL 2000
<span style="color: #cc6633;">#define</span> SHDN_INTERVAL 5000
<span style="color: #cc6633;">#define</span> DEFAULT_INVERSE_MASK 0
<span style="color: #cc6633;">#define</span> PULSE_DELAY 500
<span style="color: #cc6633;">#define</span> A_EN_PIN A3
<span style="color: #cc6633;">#define</span> B_EN_PIN A2
<span style="color: #cc6633;">#define</span> INT_PIN A1
<span style="color: #cc6633;">#define</span> KILL_PIN A0
<span style="color: #cc6633;">#define</span> FLASH_IN 2
<span style="color: #cc6633;">#define</span> OUT1_PIN 4
<span style="color: #cc6633;">#define</span> OUT2_PIN 5
<span style="color: #cc6633;">#define</span> OUT3_PIN 8
<span style="color: #cc6633;">#define</span> VREF 6
<span style="color: #cc6633;">#define</span> TPL0501_CS1 7 <span style="color: green;">// Vref</span>
<span style="color: #cc6633;">#define</span> TPL0501_CS2 9 <span style="color: green;">// Gain</span>
<span style="color: #cc6633;">#define</span> AIN_PIN A6
<span style="color: #cc6633;">#define</span> ARRAY_SIZE(arr) (<span style="color: blue;">sizeof</span>(arr) / <span style="color: blue;">sizeof</span>((arr)[0]))
<span style="color: #cc6633;">#define</span> TEXT_SIZE 2
Adafruit_SSD1306 display(OLED_RESET_PIN);
<span style="color: blue;">volatile</span> status_t status = { BROWSING, IDLE, 0, 0 };
<span style="color: blue;">char</span> screen_buf[9] = { 0 };
uint8_t inverse_mask = DEFAULT_INVERSE_MASK;
<span style="color: blue;">static</span> <span style="color: blue;">volatile</span> uint8_t button_clicks = 0;
<span style="color: blue;">static</span> <span style="color: blue;">volatile</span> uint8_t events = 0;
<span style="color: blue;">static</span> <span style="color: blue;">volatile</span> uint8_t need_reinit_display = 0;
<span style="color: blue;">static</span> <span style="color: blue;">volatile</span> uint8_t need_redraw = 0;
<span style="color: green;">// interrupt service routine vars</span>
<span style="color: blue;">volatile</span> boolean ABc = false;
<span style="color: blue;">volatile</span> boolean BBc = false;
<span style="color: blue;">volatile</span> boolean AAc = false;
<span style="color: blue;">volatile</span> boolean BAc = false;
<span style="color: blue;">volatile</span> int8_t clicks = 0; <span style="color: green;">// Counter to indicate cumulative clicks in either direction</span>
<span style="color: blue;">volatile</span> int8_t direction = NULL; <span style="color: green;">// indicator</span>
<span style="color: blue;">volatile</span> int8_t enc = NULL; <span style="color: green;">// indicator</span>
<span style="color: blue;">void</span> setup()
{
display.begin(SSD1306_SWITCHCAPVCC);
display.setTextSize(TEXT_SIZE);
displayPrint(<span style="color: #006080;">"READING"</span>, DEFAULT_INVERSE_MASK);
readDelays();
delay(500);
renderScreen();
displayPrint(screen_buf, inverse_mask);
pinMode(INT_PIN, INPUT);
pinMode(A_EN_PIN, INPUT);
pinMode(B_EN_PIN, INPUT);
pinMode(FLASH_IN, INPUT);
digitalWrite(FLASH_IN, HIGH);
pinMode(OUT1_PIN, OUTPUT);
pinMode(OUT2_PIN, OUTPUT);
pinMode(OUT3_PIN, OUTPUT);
TCCR1A = 0x00;
TCCR1C = 0x00;
TIMSK1 &= ~_BV(TOIE1);
attachInterrupt(0, int0_isr, FALLING);
PCintPort::attachInterrupt(A_EN_PIN, &doEncoderA, CHANGE);
PCintPort::attachInterrupt(B_EN_PIN, &doEncoderB, CHANGE);
<span style="color: green;">//----------SPI init </span>
pinMode (TPL0501_CS1, OUTPUT);
pinMode (TPL0501_CS2, OUTPUT);
digitalWrite(TPL0501_CS1,HIGH);
digitalWrite(TPL0501_CS2,HIGH);
SPI.begin();
Serial.begin(9600);
}
<span style="color: blue;">void</span> loop()
{
int8_t clicks = 0;
<span style="color: blue;">for</span> (;;) {
handle_button();
handle_events();
<span style="color: blue;">if</span> (direction != NULL){
enc = !NULL;
<span style="color: blue;">if</span> (direction > 0) clicks=+1;
<span style="color: blue;">else</span> clicks=-1;
direction = NULL;
}
<span style="color: blue;">if</span> (enc != NULL) {
need_redraw = 1;
<span style="color: blue;">if</span> (status.ui_mode == BROWSING) {
status.index =
wrap(status.index + clicks, ARRAY_SIZE(entries));
} <span style="color: blue;">else</span> {
edit_digit(clicks);
}
enc = NULL;
}
<span style="color: blue;">if</span> (get_button_clicks()) {
need_redraw = 1;
<span style="color: blue;">if</span> (status.ui_mode == BROWSING) {
status.ui_mode = EDITING;
status.digit = 0;
} <span style="color: blue;">else</span> {
status.digit++;
<span style="color: blue;">if</span> (status.digit == 4) {
status.ui_mode = BROWSING;
}
}
}
<span style="color: blue;">if</span> (need_redraw || need_reinit_display) {
need_redraw = 0;
renderScreen();
displayPrint(screen_buf, inverse_mask);
}
}
}
<span style="color: blue;">void</span> edit_digit(int8_t delta)
{
uint8_t digits[4];
uint16_t number = entries[status.index].delay;
<span style="color: blue;">switch</span> (status.digit) {
<span style="color: blue;">case</span> 0:
number = number + (delta *1000);
<span style="color: blue;">if</span> (number >= 10000){number = number - (delta *1000);}
<span style="color: blue;">break</span>;
<span style="color: blue;">case</span> 1:
number = number + (delta *100);
<span style="color: blue;">if</span> (number >= 10000) {number = number - (delta *100);}
<span style="color: blue;">break</span>;
<span style="color: blue;">case</span> 2:
number = number + (delta *10);
<span style="color: blue;">if</span> (number >= 10000) {number = number - (delta *10);}
<span style="color: blue;">break</span>;
<span style="color: blue;">case</span> 3:
number = number + (delta *1);
<span style="color: blue;">if</span> (number >= 10000) {number = number - (delta *1);}
<span style="color: blue;">break</span>;
}
Serial.println(number, DEC);
entries[status.index].delay = number;
entries[status.index].dirty = 1;
}
uint8_t handle_events()
{
<span style="color: blue;">if</span> (events & _BV(SAVE_EVENT)) {
displayPrint(<span style="color: #006080;">"SAVING"</span>, 0);
writeDelays();
delay(500);
events &= ~(_BV(SAVE_EVENT));
status.ui_mode = BROWSING;
need_redraw = 1;
<span style="color: blue;">return</span> 1;
} <span style="color: blue;">else</span> <span style="color: blue;">if</span> (events & _BV(SHDN_EVENT)) {
displayPrint(<span style="color: #006080;">"SHUTDOWN"</span>, 0);
delay(500);
digitalWrite(KILL_PIN, 0);
<span style="color: blue;">for</span> (;;)
;
<span style="color: blue;">return</span> 0;
}
}
int8_t wrap(int8_t value, int8_t limit)
{
<span style="color: blue;">return</span> (value >= 0) ? value % limit
: limit - (-value % limit);
}
<span style="color: blue;">void</span> readDelays()
{
<span style="color: blue;">for</span> (uint16_t i = 0; i < ARRAY_SIZE(entries); i++) {
uint8_t lo = EEPROM.read(i * 2);
uint8_t hi = EEPROM.read(i * 2 + 1);
uint16_t dly = (hi << 8) + lo;
entries[i].delay = dly >= 10000 ? 9999 : dly;
}
}
<span style="color: blue;">void</span> writeDelays()
{
<span style="color: blue;">for</span> (uint16_t i = 0; i < ARRAY_SIZE(entries); i++) {
<span style="color: blue;">if</span> (entries[i].dirty) {
EEPROM.write(i * 2, entries[i].delay & 0xFF);
EEPROM.write(i * 2 + 1, entries[i].delay >> 8);
}
}
}
<span style="color: blue;">void</span> renderScreen()
{
<span style="color: blue;">if</span> (status.ui_mode == BROWSING) {
inverse_mask = 0x00;
} <span style="color: blue;">else</span> {
inverse_mask = _BV(4 + status.digit);
}
strcpy(screen_buf, format_exposure(entries[status.index].exposure));
<span style="color: blue;">if</span> (status.ui_mode == BROWSING){
strcat(screen_buf, <span style="color: #006080;">">"</span>);
}
<span style="color: blue;">if</span> (status.ui_mode == EDITING){
strcat(screen_buf, <span style="color: #006080;">"<"</span>);
}
strcat(screen_buf, i2a(entries[status.index].delay, DEC, 4));
}
<span style="color: blue;">void</span> displayPrint(<span style="color: blue;">char</span> *s, uint8_t inverse_mask)
{
uint16_t len = strlen(s);
<span style="color: blue;">if</span> (len > 8) {
len = 8;
}
<span style="color: blue;">if</span> (need_reinit_display) {
display.begin(SSD1306_SWITCHCAPVCC);
display.setTextSize(TEXT_SIZE);
need_reinit_display = 0;
}
display.setCursor(0, 1);
display.clearDisplay();
display.fillRect(0, 0, display.width(), display.height(), BLACK);
<span style="color: blue;">for</span> (uint8_t i = 0; i < len; i++) {
<span style="color: blue;">if</span> (((inverse_mask >> i) & 0x01) == 1) {
display.setTextColor(BLACK, WHITE);
} <span style="color: blue;">else</span> {
display.setTextColor(WHITE, BLACK);
}
display.print(s[i]);
}
display.setTextColor(WHITE, BLACK);
display.display();
}
<span style="color: blue;">char</span> *format_exposure(uint16_t exposure)
{
<span style="color: #cc6633;">#define</span> MAX_EXPOSURE_STRING_LENGTH 4
<span style="color: #cc6633;">#define</span> THOUSANDS_POS 0
<span style="color: #cc6633;">#define</span> HUNDREDS_POS 2
<span style="color: blue;">static</span> <span style="color: blue;">char</span> exposure_str[MAX_EXPOSURE_STRING_LENGTH] = <span style="color: #006080;">"0K0"</span>;
<span style="color: #cc6633;">#define</span> DEC 10
<span style="color: blue;">if</span> (exposure < 1000) {
<span style="color: blue;">return</span> i2a(exposure, DEC, 3);
}
<span style="color: #cc6633;">#define</span> ERROR_STR <span style="color: #006080;">"???"</span>
<span style="color: blue;">if</span> (exposure >= 10000) {
<span style="color: blue;">return</span> ERROR_STR;
}
uint8_t thousands = (exposure / 1000);
uint8_t hundreds = (exposure - thousands * 1000) / 100;
exposure_str[THOUSANDS_POS] = thousands + <span style="color: #006080;">'0'</span>;
exposure_str[HUNDREDS_POS] = hundreds + <span style="color: #006080;">'0'</span>;
<span style="color: blue;">return</span> exposure_str;
}
<span style="color: blue;">char</span> *i2a(int32_t i, uint8_t base, int8_t positions)
{
<span style="color: blue;">enum</span> { PLUS, MINUS };
<span style="color: #cc6633;">#define</span> I2A_BUF_LEN 12
<span style="color: blue;">static</span> <span style="color: blue;">char</span> buf[I2A_BUF_LEN] = { 0 };
uint8_t j = I2A_BUF_LEN - 2;
uint8_t sign = PLUS;
int8_t positions_left = 0;
<span style="color: blue;">if</span> (i == 0) {
<span style="color: blue;">if</span> (positions == 0) {
buf[j--] = <span style="color: #006080;">'0'</span>;
} <span style="color: blue;">else</span> {
<span style="color: blue;">while</span> (j && positions--) {
buf[j--] = <span style="color: #006080;">'0'</span>;
}
}
<span style="color: blue;">return</span> &buf[j + 1];
} <span style="color: blue;">else</span> <span style="color: blue;">if</span> (i < 0) {
i = -i;
sign = MINUS;
}
base = base < BIN ? BIN : base;
base = base > HEX ? HEX : base;
<span style="color: blue;">for</span>(; i && j; j--, i /= base) {
buf[j] = <span style="color: #006080;">"0123456789ABCDEF"</span>[i % base];
}
<span style="color: blue;">if</span> (sign == MINUS) {
buf[j--] = <span style="color: #006080;">'-'</span>;
} <span style="color: blue;">else</span> {
positions_left = positions - (I2A_BUF_LEN - (int8_t) j) + 2;
<span style="color: blue;">while</span> (j && positions_left > 0) {
buf[j--] = <span style="color: #006080;">'0'</span>;
positions_left--;
}
}
<span style="color: blue;">return</span> &buf[j + 1];
}
uint8_t get_button_clicks()
{
uint8_t i = button_clicks;
button_clicks = 0;
<span style="color: blue;">return</span> i;
}
<span style="color: blue;">void</span> handle_button()
{
<span style="color: blue;">static</span> uint32_t timestamp = 0;
<span style="color: blue;">static</span> uint8_t debouncing = 0;
<span style="color: blue;">static</span> uint8_t holding = 0;
<span style="color: blue;">static</span> uint8_t saved = 0;
uint8_t button_state;
button_state = digitalRead(INT_PIN);
<span style="color: blue;">if</span> (debouncing) {
<span style="color: blue;">if</span> (millis() - timestamp > DEBOUNCING_INTERVAL) {
debouncing = 0;
<span style="color: blue;">if</span> (button_state == LOW) {
holding = 1;
button_clicks++;
} <span style="color: blue;">else</span> {
timestamp = 0;
}
}
<span style="color: blue;">return</span>;
}
<span style="color: blue;">if</span> (button_state == HIGH) {
timestamp = 0;
holding = 0;
saved = 0;
<span style="color: blue;">return</span>;
}
<span style="color: blue;">if</span> (!holding) {
timestamp = millis();
debouncing = 1;
<span style="color: blue;">return</span>;
}
<span style="color: blue;">if</span> (millis() - timestamp > SAVE_INTERVAL && !saved) {
events |= _BV(SAVE_EVENT);
saved = 1;
<span style="color: blue;">return</span>;
}
<span style="color: blue;">if</span> (millis() - timestamp > SHDN_INTERVAL) {
events |= _BV(SHDN_EVENT);
<span style="color: blue;">return</span>;
}
}
<span style="color: #cc6633;">#define</span> TCNT1_PULSE (65536 - (50 << 1))
ISR(TIMER1_OVF_vect)
{
noInterrupts();
TIMSK1 &= ~(_BV(TOIE1));
<span style="color: blue;">if</span> (status.gen_mode == DELAY) {
status.gen_mode = PULSE;
TCNT1H = (TCNT1_PULSE >> 8);
TCNT1L = (TCNT1_PULSE & 0xFF);
digitalWrite(OUT1_PIN, HIGH);
digitalWrite(OUT2_PIN, HIGH);
digitalWrite(OUT3_PIN, HIGH);
TIMSK1 |= (1 << TOIE1); <span style="color: green;">// enable timer overflow interrupt</span>
<span style="color: green;">//interrupts();</span>
} <span style="color: green;">//else {</span>
<span style="color: blue;">if</span> (status.gen_mode == PULSE) {
status.gen_mode = IDLE;
digitalWrite(OUT1_PIN, LOW);
digitalWrite(OUT2_PIN, LOW);
digitalWrite(OUT3_PIN, LOW);
TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
need_reinit_display = 1;
<span style="color: green;">//interrupts();</span>
}
interrupts();
}
<span style="color: blue;">void</span> int0_isr()
{
noInterrupts();
<span style="color: blue;">if</span> (status.gen_mode == IDLE) {
status.gen_mode = DELAY;
uint16_t counter = entries[status.index].delay << 1;
<span style="color: blue;">if</span> (counter == 0) counter = 1;
counter = 65536-counter;
TCNT1H = (counter >> 8);
TCNT1L = (counter & 0xFF);
<span style="color: green;">// 16MHz / 8 -> 0.5 us / tick</span>
TCCR1B |= (1 << CS11); <span style="color: green;">// 8 prescaler </span>
TIMSK1 |= (1 << TOIE1); <span style="color: green;">// enable timer overflow interrupt</span>
}
interrupts();
}
<span style="color: blue;">int</span> Pot_value_SET(<span style="color: blue;">int</span> Chip, <span style="color: blue;">int</span> value) {
<span style="color: green;">// take the SS pin low to select the chip:</span>
digitalWrite(Chip,LOW);
<span style="color: green;">// send in the value via SPI:</span>
SPI.transfer(value);
<span style="color: green;">// take the SS pin high to de-select the chip:</span>
digitalWrite(Chip,HIGH);
}
<span style="color: green;">// Interrupt on A changing state</span>
<span style="color: blue;">void</span> doEncoderA(){
AAc = digitalRead(A_EN_PIN);
BAc = digitalRead(B_EN_PIN);
<span style="color: blue;">if</span> (!ABc && AAc && !BBc && !BAc){direction=1 ;}
<span style="color: blue;">if</span> (ABc && !AAc && BBc && BAc){direction=1;}
<span style="color: blue;">if</span> (!ABc && AAc && BBc && BAc){direction=-1;}
<span style="color: blue;">if</span> (ABc && !AAc && !BBc && !BAc){direction=-1;}
}
<span style="color: green;">// Interrupt on B changing state</span>
<span style="color: blue;">void</span> doEncoderB(){
ABc = digitalRead(A_EN_PIN);
BBc = digitalRead(B_EN_PIN);
}</pre>
<br /></div>
<br />
<span style="font-size: small;">В одной из своих ранних <a href="http://karu2003.blogspot.de/2012/10/myths-and-realities-sync-with-studio.html" target="_blank">статей</a> я описывал возможность работы студийного света на выдержках до 1/8000. Этот релиз заточен под скоростную съёмку в студии. </span><span style="font-size: small;">Всё управление осуществляется энкодером и кнопкой.</span><br />
<br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8516/8350095442_8732b73333_n.jpg" /></span><br />
<br />
<span style="font-size: small;">Кнопкой меняются режимы работы, а вращая энкодер можно изменить значения задержек.</span><br />
<br />
<span style="font-size: small;"><b>Навигация.</b></span><br />
<br />
<span style="font-size: small;">Коротким нажатием прибор включается. После включения, на дисплее появиться сообщение «READING». Инициализируется прибор, читаются данные из постоянной памяти в оперативную, и прибор переходит в рабочей режим - <b>BROWSING</b>. </span><span style="font-size: small;">Дисплей разбит на три области, первые три цифры показывают выдержку, символ «<b><span style="font-size: medium;">></span></b>» указывает что прибор в режиме «<b>BROWSING</b>», символ «<b><span style="font-size: medium;"><</span></b>» указывает что прибор находиться в режиме «<b>EDITING</b>». Оставшиеся четыре знака показывают значение задержи в микросекундах, минимальная задержка 1мкС, максимальная задержка 9999мкС. </span><span style="font-size: small;">В режиме «<b>BROWSING</b>» вращая энкодер можно выбрать выдержки. </span><span style="font-size: small;">Я остановился на целых значения выдержек 1/250,1/500,1/1000,1/2000,1/4000,1/8000. Для любителей дробных величин «EV» можно убрать комментарии в программе. На дисплее выдержки показываются как 250,500,1К0,2К0,4К0,8К0 соответственно. :) </span><span style="font-size: small;">Коротким нажатием на кнопку прибор переходит в режим <b>EDITING</b>. Редактируемый разряд показывается с инверсией. Вращая энкодер изменяем значения разряда +<span style="font-family: georgia;"><span style="font-size: small;">/</span></span>-1000, +/-100, +/-10, +/-1. Перейти к следующему разряду можно коротким нажатием на кнопку. После редактирования последнего разряда прибор переходит в режим BROWSING. </span><span style="font-size: small;">Всю последовательность я постарался показать в схеме. :)</span><br />
<br />
<img src="http://farm9.staticflickr.com/8098/8350095594_b4eb011c64_n.jpg" /><br />
<br />
<span style="font-size: small;">Удерживая кнопку нажатой 2 секунды можно сохранить значения задержек в постоянную память. При включении не надо настраивать «МВ» по новой. Если удерживать кнопку нажатой более 5 секунд, «МВ» выключиться. Это базовый набор команд. С дальнейшим развитием проекта функций будет больше.</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;"> </span><br />
<span style="font-size: small;"><b>Работа с «MB» на коротких выдержках.</b></span><br />
<br />
<span style="font-size: small;">В первую очередь хочу отметить, что работать можно с любым студийным светом. </span><span style="font-size: small;">Сейчас выпускается свет по технологии с IGBT транзисторами, и без IGBT. Студийный свет с IGBT транзисторами более новая технология. Основное отличие между старой и новой технологией - это длительность импульса и количество света при этом. У блоков на IGBT самая большая длительность импульса на максимальной мощности. У старых приборов все наоборот - на максимальной мощности самая маленькая длительность. В добавок ко всему этому для генераторов существуют быстрые и медленные головы. Чтобы не запутывать вас больше, и не грузить вас электроникой, напишу коротко — для лучших результатов нужен длинный (широкий) импульс. Так сложилось что у меня самый широкий импульс с кольцевой вспышкой на максимальной мощности, и все особенности настройки я опишу для этого света. Можно порадоваться за владельцев старых систем, у них самый длинный импульс. :) Они могут снимать на меньшей мощности и на самых коротких выдержках.</span><br />
<span style="font-size: small;"> </span><br />
<span style="font-size: small;"><b>Всё по порядку.</b></span><br />
<br />
<span style="font-size: small;">Нужна системная вспышка. В моём случае это SB-900. Вспышку нужно установить на камеру, переключить в режим M + FP на мощности 1/128. Подключить логический вход «Машины Времени» к PC разъёму камеры. Выход «3» подключить к моно-блоку.</span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8361/8349033909_339f24f426_n.jpg" /></span><br />
<br />
<span style="font-size: small;">На моно-блоке или генераторе нужно выключить светоловушку. Теперь нужно настроить задержки в «МВ» и повторить настройку для каждой выдержки. Выдержку на камере и «МВ» нужно синхронизовать самому. После настройки не забудьте сохранить значения в постоянную память. Для подбора задержек нужно сделать от 5 до 10 кадров. Я фотографирую белую стену.</span><br />
<span style="font-size: small;">Для примера: На камере выдержка 1/500. </span><span style="font-size: small;">На «МВ» нужно установить 500, перейти в режим EDITING, установить 9000 и сделать пробный кард. Полученный кард нужно оценивать по наличию градиенты. Изменяя задержку в минус, нужно добиться, чтобы градиенты не было или она равномерно расходилась от центра кадра вверх и вниз. Для моего моно блока самая оптимальная задержка для выдержки 1/500 получилась 2000мкС. Такую процедуру нужно повторить для каждой выдержки.</span><br />
<br />
<img src="http://farm9.staticflickr.com/8502/8350095358_a2bd125952_n.jpg" /><br />
<img src="http://farm9.staticflickr.com/8077/8350095272_29cb220cac_n.jpg" /><br />
<img src="http://farm9.staticflickr.com/8375/8350095182_a337d5a800_n.jpg" /><br />
<img src="http://farm9.staticflickr.com/8376/8350095078_c922f0af03_n.jpg" /><br />
<br />
<span style="font-size: small;">После настройки у меня получились такие цифры.</span><br />
<span style="font-size: small;">1/500 — 2000uS.</span><br />
<span style="font-size: small;">1/1000 – 1500uS.</span><br />
<span style="font-size: small;">1/2000 – 1100uS.</span><br />
<span style="font-size: small;">1/8000 – 600uS.</span><br />
<br />
<span style="font-size: small;">С уменьшением выдержки нужно добавлять мощность на блоке. В моём генераторе на выдержке 1/8000 мне пришлось добавить 2 стопа относительно к 1/500, чтобы получить кадр с контролируемой градиентой. Увы электроника не всемогуща. Существуют блоки, с которыми нормально работать можно только до выдержки 1/2000.</span><br />
<br />
<span style="font-size: small;"><b>Пару сравнительных примеров с «МВ» и без.</b></span><br />
<br />
<span style="font-size: small;">Это снимок работающего винчестера, скорость вращения 5400 оборотов в минуту. Виден смаз. </span><br />
<img src="http://farm9.staticflickr.com/8088/8350094998_4547ea7e39_n.jpg" /><br />
<span style="font-size: small;">С выдержкой 1/8000 всё замёрзло.</span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8043/8349032925_8463d3a2b4_n.jpg" /></span><br />
<br />
<span style="font-size: small;">У меня есть старый серверный винчестер с 10000 rmp. Я сделал пару кадров и с ним. Тут видно, что камера уже не успевает. Смаз есть даже на 1/8000.</span><br />
<br />
<img src="http://farm9.staticflickr.com/8193/8349032727_aab5d00c27_n.jpg" /><br />
<img src="http://farm9.staticflickr.com/8229/8349032811_4d8132fa54_n.jpg" /><br />
<br />
<span style="font-size: small;">Пару кадров с водой.</span><br />
<br />
<img src="http://farm9.staticflickr.com/8475/8349032467_e80db1104f_n.jpg" /><br />
<img src="http://farm9.staticflickr.com/8082/8349032637_6932c3d656_n.jpg" /><br />
<br />
<span style="font-size: small;">В этих снимках я сделал маленькую ошибку установил фокус на душ, а надо было на воду. </span><span style="font-size: small;">Но даже так хорошо видно, как, на выдержке 1/8000, вода разлетелась на отдельные капли, и кадр получился более эффектным и динамичным.</span><br />
<br />
<span style="font-size: small;">Удачных вам кадров.</span><br />
<br />
<span style="font-size: small;">© Andrew Buckin.</span><br />
<br />
<span style="font-size: small;">PS: </span><span style="font-size: small;">Большое спасибо Жене в подготовке первого релиза. Все фотографии в большом разрешении есть у меня на Flickr. </span><br />
<br />
<span style="font-size: small;">TODO:</span><span data-mce-style="font-size: small;" style="font-size: x-small;"> </span><br />
<span style="font-size: small;"><span data-mce-style="font-size: small;">- добавить режим сохранения энергии ( выключить дисплей)</span><span data-mce-style="font-size: small;"> </span></span><br />
<span style="font-size: small;"><span data-mce-style="font-size: small;">- После 10 минут неиспользования самовыключение.</span><span data-mce-style="font-size: small;"> </span></span><br />
<span style="font-size: small;"><span data-mce-style="font-size: small;">- Добавить работу с микрофоном.</span><span data-mce-style="font-size: small;"> </span></span><br />
<span style="font-size: small;"><span data-mce-style="font-size: small;">- Добавить независимые выдержки для каждого выхода. (работа по сценарию.)</span><span data-mce-style="font-size: small;"> </span></span><br />
<span style="font-size: small;"><span data-mce-style="font-size: small;">- Добавить измерение длительности импульса света.</span></span><br />
<br />
<br />
<span style="font-size: small;"><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia;">Dreamstime</span></a> <br /><span style="font-family: georgia;"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157632439206073/" target="_blank">Fotostream http://www.flickr.com</a></span></span></div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com3tag:blogger.com,1999:blog-3907406965051969800.post-53422705189063891692012-12-26T05:05:00.001-08:002012-12-26T05:06:44.736-08:00Time machine: Encoder.<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<span style="font-size: small;">Всем привет. Я не планировал описывать каждую деталь статьёй. Но энкодер стоит отдельного внимания. Для «Машины времени» я планировал купить самый доступный энкодер и использовать готовую библиотеку, коих на сайте Arduino много. Энкодер от Panasonic понравился наличием массивной ручки, в документации написано, что он long-life, что очень хорошо, размеры как раз подходят под мой корпус, очень привлекательная цена. Я купил пару штук </span><a href="http://www.pollin.de/shop/dt/Njg2OTU3OTk-/Bauelemente_Bauteile/Passive_Bauelemente/Potis_Trimmer_Encoder/Encoder_PANASONIC_EVEQDBRL416B.html" target="_blank"><span style="font-size: small;">EVEQDBRL416B</span></a><span style="font-size: small;"> и сделал под них платы. Когда я добрался до написания кода, оказалось, что ни одна библиотека на Arduino не работает с этим энкодером хорошо. У этого энкодера всего два состояния между переключениями. Фронт в канале «B» очень близко находится к месту фиксации, что добавляет проблемы при переключении. От небольшого нажима на ручку энкодера происходят ложные срабатывания. После небольших проб с готовыми библиотеками у меня возникло желание заменить этот энкодер на другой.</span><br />
<span style="font-size: small;">Но мысль о том, что надо переделывать уже готовые платы питания и интерфейса, останавливала открыть окно и выбросить энкодер. На написание библиотеки я потратил целый день. После третьего подхода получился очень простой обработчик энкодера.</span> <br />
<span style="font-size: small;">Надеюсь эта библиотека будет полезной не только мне!!!</span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: green;">/*</span>
<span style="color: green;"> Pan_Encoder_ABC.cpp - A library for reading Encoder PANASONIC EVEQDBRL416B.</span>
<span style="color: green;"></span>
<span style="color: green;"> Copyright 2012 Andrew Buckin(aka, "ka_ru"), except for the code at the end marked</span>
<span style="color: green;"> "The following was taken from the Arduino's code." That portion is copyright by</span>
<span style="color: green;"> Andrew Buckin and is distributed under the GNU Lesser General Public License 2.1</span>
<span style="color: green;"> or any subsequent version.</span>
<span style="color: green;"></span>
<span style="color: green;"> For those portions Copyright by Andrew Buckin, the following license applies.</span>
<span style="color: green;"></span>
<span style="color: green;"> This program is free software: you can redistribute it and/or modify</span>
<span style="color: green;"> it under the terms of the GNU General Public License as published by</span>
<span style="color: green;"> the Free Software Foundation, either version 3 of the License, or</span>
<span style="color: green;"> (at your option) any later version.</span>
<span style="color: green;"></span>
<span style="color: green;"> This program is distributed in the hope that it will be useful,</span>
<span style="color: green;"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span style="color: green;"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<span style="color: green;"> GNU General Public License for more details.</span>
<span style="color: green;"></span>
<span style="color: green;"> You should have received a copy of the GNU General Public License</span>
<span style="color: green;"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
<span style="color: green;"></span>
<span style="color: green;"> Questions? Send mail to ka_ru2003@msn.com</span>
<span style="color: green;">*/</span>
<span style="color: #cc6633;">#include</span> <PinChangeInt.h>
<span style="color: blue;">enum</span> PinAssignments {
encoderPinA = A2, <span style="color: green;">// rigth</span>
encoderPinB = A3, <span style="color: green;">// left</span>
clearButton = 8 <span style="color: green;">// another two pins</span>
};
<span style="color: blue;">volatile</span> <span style="color: blue;">unsigned</span> <span style="color: blue;">int</span> encoderPos = 100; <span style="color: green;">// a counter for the dial</span>
<span style="color: blue;">unsigned</span> <span style="color: blue;">int</span> lastReportedPos = 1; <span style="color: green;">// change management</span>
<span style="color: blue;">static</span> boolean rotating=false; <span style="color: green;">// debounce management</span>
<span style="color: green;">// interrupt service routine vars</span>
<span style="color: blue;">volatile</span> boolean ABc = false;
<span style="color: blue;">volatile</span> boolean BBc = false;
<span style="color: blue;">volatile</span> boolean AAc = false;
<span style="color: blue;">volatile</span> boolean BAc = false;
int8_t clicks = 0; <span style="color: green;">// Counter to indicate cumulative clicks in either direction</span>
int8_t direction = NULL; <span style="color: green;">// indicator</span>
int8_t enc = NULL; <span style="color: green;">// indicator</span>
<span style="color: blue;">void</span> setup() {
pinMode(encoderPinA, INPUT);
pinMode(encoderPinB, INPUT);
pinMode(clearButton, INPUT);
<span style="color: green;">// turn on pullup resistors</span>
digitalWrite(encoderPinA, HIGH);
digitalWrite(encoderPinB, HIGH);
digitalWrite(clearButton, HIGH);
PCintPort::attachInterrupt(encoderPinA, &doEncoderA, CHANGE);
PCintPort::attachInterrupt(encoderPinB, &doEncoderB, CHANGE);
Serial.begin(9600); <span style="color: green;">// output</span>
}
<span style="color: green;">// main loop, work is done by interrupt service routines, this one only prints stuff</span>
<span style="color: blue;">void</span> loop() {
rotating = true; <span style="color: green;">// reset the debouncer</span>
<span style="color: blue;">if</span> (direction != NULL){
enc = !NULL;
<span style="color: blue;">if</span> (direction > 0) clicks++;
<span style="color: blue;">else</span> clicks--;
direction = NULL;
}
<span style="color: blue;">if</span> (enc != NULL) {
Serial.print(<span style="color: #006080;">"Index:"</span>);
Serial.println(encoderPos + clicks, DEC);
enc = NULL;
}
<span style="color: blue;">if</span> (digitalRead(clearButton) == LOW ) {
encoderPos = 0;
}
}
<span style="color: green;">// Interrupt on A changing state</span>
<span style="color: blue;">void</span> doEncoderA(){
delayMicroseconds(50);
AAc = digitalRead(encoderPinA);
BAc = digitalRead(encoderPinB);
<span style="color: blue;">if</span> (!ABc && AAc && !BBc && !BAc){direction=1;}
<span style="color: blue;">if</span> (ABc && !AAc && BBc && BAc){direction=1;}
<span style="color: blue;">if</span> (!ABc && AAc && BBc && BAc){direction=-1;}
<span style="color: blue;">if</span> (ABc && !AAc && !BBc && !BAc){direction=-1;}
}
<span style="color: green;">// Interrupt on B changing state</span>
<span style="color: blue;">void</span> doEncoderB(){
delayMicroseconds(50);
ABc = digitalRead(encoderPinA);
BBc = digitalRead(encoderPinB);
}</pre>
<br /></div>
<br /><span style="font-size: small;">Успешных вам кадров.</span><br />
<span style="font-size: small;"><span style="color: black; font-family: georgia; font-size: small;">© Andrew Buckin.</span> </span><br />
<span style="font-size: small;"></span><br />
<img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia;">Dreamstime</span></a> <br /><span style="font-family: georgia; font-size: small;"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631753280144/" target="_blank">Fotostream http://www.flickr.com</a></span><br />
</div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-74885167582821429762012-12-26T02:46:00.001-08:002012-12-26T03:06:56.701-08:00Time machine: Analog.<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8357/8306617209_1efb8fda24.jpg" /></span><br />
<span style="font-size: small;">Этот модуль попал в «Машину времени» по необходимости. Статья будет небольшой. Как я уже писал ранее, после проб с микрофоном, усиления 20дБ оказалось мало. Микрофон я купил не самый лучший, но это не означает, что его нельзя использовать. Пришлось поставить ещё один каскад усиления. Чтобы в будущем не испытывать неудобств в регулировании и не зависить от качества микрофона, поставил схему усилителя с программированным уровнем усиления на цифровом потенциометре с SPI интерфейсом(<a href="http://www.ti.com/product/tpl0501-100" target="_blank">TPL0501</a>). SPI у меня пока не занят. :) Так как я не собираюсь заниматься в «Машине времени» обработкой сигналов, отказался от использования АЦП и применил аналоговый компаратор с последующей обработкой по прерыванию, что позволит сократить код и уменьшить время реакции на событие. Для регулирования порога срабатывания компаратора установил ещё один цифровой потенциометр. </span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8356/8307664994_b33c8cf3fa_n.jpg" /></span><br />
<span style="font-size: small;">Плата аналогового усилителя сделана для макетирования, схема немного избыточна, в конечном устройстве будет стоять только то, что нужно.</span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8360/8307665156_a5f5ba04fb.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8492/8307665078_57333fd1a7_n.jpg" /></span><br />
<span style="font-size: small;">Для тестирования написал маленькую программу. </span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-color: silver; border-style: solid; border-width: 1px; cursor: text; direction: ltr; font-family: 'Courier New',courier,monospace; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-style: none; color: black; direction: ltr; font-family: 'Courier New',courier,monospace; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"><span style="font-size: small;">
<span style="color: #cc6633;">#include</span> <PCD8544.h>
<span style="color: blue;">volatile</span> <span style="color: blue;">long</span> newPosition = 0;
<span style="color: blue;">volatile</span> <span style="color: blue;">long</span> oldPosition = 0;
<span style="color: #cc6633;">#include</span> <SPI.h>
<span style="color: green;">//#include <WProgram.h> // This include should go first, otherwise does not compile.</span>
<span style="color: #cc6633;">#include</span> <Button.h>
<span style="color: #cc6633;">#include</span> <TicksPerSecond.h>
<span style="color: #cc6633;">#include</span> <RotaryEncoderAcelleration.h>
<span style="color: green;">//static const byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 };</span>
<span style="color: blue;">static</span> PCD8544 lcd;
<span style="color: blue;">static</span> RotaryEncoderAcelleration rotor;
<span style="color: blue;">static</span> <span style="color: blue;">const</span> byte LCD_WIDTH = 84;
<span style="color: blue;">static</span> <span style="color: blue;">const</span> byte LCD_HEIGHT = 48;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> analogInPin = A7;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> TPL0501_CS1 = A0;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> TPL0501_CS2 = A1;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> rotorPinA = A2; <span style="color: green;">// One quadrature pin</span>
<span style="color: blue;">const</span> <span style="color: blue;">int</span> rotorPinB = A3; <span style="color: green;">// the other quadrature pin</span>
<span style="color: blue;">int</span> sensorValue = 0; <span style="color: green;">// value read from the Microphon</span>
<span style="color: blue;">int</span> sensorMAX = 0;
<span style="color: blue;">unsigned</span> <span style="color: blue;">long</span> time =0;
<span style="color: blue;">void</span> setup() {
lcd.begin(84, 48);
<span style="color: green;">//lcd.createChar(0, glyph);</span>
lcd.setCursor(0, 0);
lcd.print(<span style="color: #006080;">"Value"</span>);
lcd.setCursor(0, 2);
lcd.print(<span style="color: #006080;">"MAX Value"</span>);
lcd.setCursor(0, 4);
lcd.print(<span style="color: #006080;">"Encoder"</span>);
pinMode (TPL0501_CS1, OUTPUT);
pinMode (TPL0501_CS2, OUTPUT);
digitalWrite(TPL0501_CS1,HIGH);
digitalWrite(TPL0501_CS2,HIGH);
SPI.begin();
Pot_value_SET(TPL0501_CS1, 0);
rotor.initialize(rotorPinA, rotorPinB);
rotor.setMinMax(0, 255);
rotor.setPosition(0);
}
<span style="color: blue;">long</span> lastRotor = 0;
<span style="color: blue;">void</span> loop() {
rotor.update();
<span style="color: blue;">long</span> pos = rotor.getPosition();
sensorValue = analogRead(analogInPin);
<span style="color: green;">//Serial.print("analogInPin"); </span>
<span style="color: blue;">if</span> (sensorValue > sensorMAX) sensorMAX = sensorValue;
<span style="color: blue;">if</span> (millis() > time){
sensorMAX = 0;
time = millis() + 3000;
}
lcd.setCursor(0, 1);
lcd.clearLine();
lcd.print(sensorValue, DEC);
lcd.setCursor(0, 3);
lcd.clearLine();
lcd.print(sensorMAX, DEC);
lcd.setCursor(0, 5);
lcd.clearLine();
lcd.print(pos, DEC);
<span style="color: green;">//lcd.setCursor(80, 0);</span>
<span style="color: green;">//lcd.drawColumn(84, map(sensorValue, 0, 1023, 0, LCD_HEIGHT)); </span>
delay(10);
}
<span style="color: blue;">int</span> Pot_value_SET(<span style="color: blue;">int</span> Chip, <span style="color: blue;">int</span> value) {
<span style="color: green;">// take the SS pin low to select the chip:</span>
digitalWrite(Chip,LOW);
<span style="color: green;">// send in the value via SPI:</span>
SPI.transfer(value);
<span style="color: green;">// take the SS pin high to de-select the chip:</span>
digitalWrite(Chip,HIGH);
}</span></pre>
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"><br /></span></div>
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">Описание «железа» на этом можно закончить. В будущем планирую оснастить «Машину времени» Bluetooth и сделать Android APPs и Shell для PC, но этим я займусь, когда будут реализованы основные функции. Теперь я отвлекусь от «железа» и займусь подготовкой кода.</span><br />
<span style="font-size: small;">PS:</span><br />
<span style="font-size: small;">Конечно можно было не затевать схему с программированным усилителем, а поставить усилитель- ограничитель. Но. Поживем - попробуем. :)</span><br />
<span style="font-size: small;">PPS:</span><br />
<span style="font-size: small;">К проекту подключился мой коллега программист Евгений Глушко. Пока я буду заниматься сведением общей схемы. Женя обещал подготовить первый релиз программы.</span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">Успешных вам кадров.</span><br />
<br />
<span style="color: black; font-family: georgia; font-size: small;">© Andrew Buckin.</span> <br />
<span style="font-size: small;"><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia;">Dreamstime</span></a> <br /><span style="font-family: georgia;"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157632339198044/" target="_blank">Fotostream http://www.flickr.com</a></span></span></div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-3771626935798875722012-11-04T01:42:00.000-07:002012-12-26T03:06:19.274-08:00Time machine: Microphone.<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7124/8153190065_eb0f3cae9b.jpg" /></span><br />
<span style="font-size: small;">Зачем фотографу микрофон? Чтобы сфотографировать бурные авиации. :) Если без шуток, то очень нужная возможность при съёмке воды, взрывов и всего того что создаёт звуковые волны. Примеры снимков я покажу в самой последней статье про «Машину Времени» - МВ.</span><br />
<span style="font-size: small;">В сети можно найти с десяток различных примеров как подключить микрофон к Arduino. Большинство из них - усилитель на одном транзисторе с парой конденсаторов и резисторов. Как для фотографии этого было бы достаточно. Ведь для фотографии не нужен супер усилитель High Fidelify(HiFi) или High-end качества. Я отказался от «простой» схемы. Выбор схемы определила не цена, а микрофон. Зачем нужен усилитель «с лучшими параметрами»? У меня дома три различных электретных микрофона и для МВ я купил ещё один китайский(2$) у всех разная чувствительность. Опыт мой враг. Пару лет назад я разрабатывал индустриальный микшер для фирмы Thales. Микрофонов было всего 4 типа, микрофоны были от правильных производителей с высокой чувствительностью. Даже у них разброс чувствительности отличался на порядок. Чтобы как то удовлетворить китайские микрофоны я потратил один доллар на интегрированный усилитель с постоянным усилением в 20дБ, меньшего размера чем транзистор. :) После небольших поисков выбор пал на усилитель фирмы Maxim <a href="http://www.maximintegrated.com/datasheet/index.mvp/id/3859?utm_expid=50713806-2&utm_referrer=http%3A%2F%2Fwww.google.de%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D1%26ved%3D0CDYQFjAA%26url%3Dhttp%253A%252F%252Fwww.maximintegrated.com%252Fdatasheet%252Findex.mvp%252Fid%252F3859%26ei%3Dr9naUMHdOIjKtAbhs4CIBw%26usg%3DAFQjCNGEt1_r63P57No0uKBgtaHzenLl_A%26bvm%3Dbv.1355534169%2Cd.Yms" target="_blank">MAX9812</a>. В пробной схеме я поставил вариант с питанием 3.3V. В заключительной схеме будет стоять чип на 5V. Вся схема занимает очень мало места на плате и при желании усилитель можно выключить. </span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8481/8153216972_963e4792af_n.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8207/8153190167_9122ab784c_n.jpg" /></span><br />
<span style="font-size: small;">Пока плата сделана для удобства с выводами. Можно всё попробовать в Breadboard.</span><br />
<span style="font-size: small;"><img src="http://farm9.staticflickr.com/8347/8153216876_a88e3a4bb6_n.jpg" /></span><br />
<span style="font-size: small;">Маленькая тестовая программа проверки работы усилителя. </span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-color: silver; border-style: solid; border-width: 1px; cursor: text; direction: ltr; font-family: 'Courier New',courier,monospace; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-style: none; color: black; direction: ltr; font-family: 'Courier New',courier,monospace; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"><span style="font-size: small;">
<span style="color: #cc6633;">#include</span> <PCD8544.h>
<span style="color: #cc6633;">#include</span> <Encoder.h>
Encoder myEnc(3, 4);
<span style="color: blue;">volatile</span> <span style="color: blue;">long</span> newPosition = 0;
<span style="color: blue;">volatile</span> <span style="color: blue;">long</span> oldPosition = 0;
<span style="color: green;">// A custom glyph (a smiley)...</span>
<span style="color: blue;">static</span> <span style="color: blue;">const</span> byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 };
<span style="color: blue;">static</span> PCD8544 lcd;
<span style="color: blue;">static</span> <span style="color: blue;">const</span> byte LCD_WIDTH = 84;
<span style="color: blue;">static</span> <span style="color: blue;">const</span> byte LCD_HEIGHT = 48;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> analogInPin = A7;
<span style="color: blue;">int</span> sensorValue = 0; <span style="color: green;">// value read from the pot</span>
<span style="color: blue;">int</span> outputValue = 0; <span style="color: green;">// value output to the PWM (analog out)</span>
<span style="color: blue;">int</span> sensorMAX = 0;
<span style="color: blue;">unsigned</span> <span style="color: blue;">long</span> time =0;
<span style="color: blue;">void</span> setup() {
<span style="color: green;">// PCD8544-compatible displays may have a different resolution...</span>
lcd.begin(84, 48);
<span style="color: green;">// Add the smiley to position "0" of the ASCII table...</span>
lcd.createChar(0, glyph);
<span style="color: green;">//Serial.begin(9600); </span>
}
<span style="color: blue;">void</span> loop() {
newPosition = myEnc.read();
sensorValue = analogRead(analogInPin);
<span style="color: blue;">if</span> (sensorValue > sensorMAX) sensorMAX = sensorValue;
<span style="color: blue;">if</span> (millis() > time){
sensorMAX = 0;
time = millis() + 3000;
}
lcd.setCursor(0, 2);
lcd.clearLine();
lcd.print(sensorValue, DEC);
lcd.setCursor(0, 3);
lcd.clearLine();
lcd.print(sensorMAX, DEC);
lcd.setCursor(30, 0);
<span style="color: green;">//lcd.clearLine();</span>
lcd.drawColumn(84, map(sensorValue, 0, 1023, 0, LCD_HEIGHT));
<span style="color: green;">//delay(10); // wait 100ms for next reading</span>
<span style="color: blue;">if</span> (newPosition != oldPosition) {
oldPosition = newPosition;
lcd.setCursor(0, 0);
lcd.print(<span style="color: #006080;">"Encoder"</span>);
lcd.setCursor(0, 1);
lcd.clearLine();
<span style="color: green;">//Serial.println(newPosition);</span>
lcd.print(newPosition, DEC);
}
}</span></pre>
<span style="font-size: small;"><br /></span></div>
<span style="font-size: small;">После некоторых проб выяснилось что усиления в 20дБ не достаточно. Китайский микрофон не очень хорош. :( Для комфортной работы нужен ещё один каскад усиления, но об этом в другой раз.</span><br />
<br />
<span style="font-size: small;">Успешных вам кадров.</span><br />
<br />
<span style="color: black; font-family: georgia; font-size: small;">© Andrew Buckin.</span> <br />
<span style="font-size: small;"><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia;">Dreamstime</span></a>
<br /><span style="font-family: georgia;"><a href="http://www.flickr.com/" target="_blank">Fotostream http://www.flickr.com</a></span></span></div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-77705910594267850962012-10-31T13:51:00.001-07:002012-10-31T13:51:56.887-07:00Time machine: Power.<p><img src="http://farm9.staticflickr.com/8336/8142518765_b2e434ef3a.jpg" /></p> <p><font size="3">Питание для мобильного устройства очень ответственный модуль. Как по мне, даже системный. Почему? При покупки любого электронного устройства всегда надо учитывать, чем устройство будет питаться. Если батарейки, то какие, это определяет размер устройства. Для своей «машины времени — МВ» я выбрал самый маленький покупной корпус из пластмассы с встроенным отсеком для 9V батарейки. Прибор я планирую повесить на ремень. Эргономика и удобства в работе очень важно для маленького прибора. Где какие кнопки и сколько их, надо определить сразу, а не добавлять в процессе разработки. Важно как включать/выключать. Я не механик, и припаять электронную блоху 2х2 мм мне проще, чем просверлить лишнее отверстие. :) От отдельного механического выключателя питания отказался. У механического выключатель есть как минимум два недостатка: размер, вес и эргономичность. Если с размером все понятно, то с эргономичностью не все очевидно - где установить, можно ли выключить электронно?  Я стараюсь свести механические работы к минимуму. Все управление МВ будет состоять из <a href="http://www.pollin.de/shop/dt/Njg2OTU3OTk-/Bauelemente_Bauteile/Passive_Bauelemente/Potis_Trimmer_Encoder/Encoder_PANASONIC_EVEQDBRL416B.html" target="_blank">энкодера с кнопкой</a>. Кнопкой будет включаться и всё выбираться в меню, а энкодером осуществляться навигация по меню. Выключаться прибор будет из меню или по таймеру. Для МВ я выбрал открытую систему <a href="http://www.arduino.cc/en/Main/ArduinoBoardMini" target="_blank">Arduino Mini</a> (12€) с прицелом, что к моему проекту подключатся такие же энтузиасты, как и я. И разработка пойдёт живее.  Современные устройства, как правило, не питаются от 9V.  У Arduino  рабочее напряжение 5V, так что все периферийные модули в МВ будут 5V совместимые. На плате Arduino уже есть линейный преобразователь, но я не стал его использовать, так как им нельзя управлять, а курочить плату Arduino не хотелось. При выборе типа регулятора напряжения 5V я перебрал под полсотни datasheets, выбирая между <a href="http://en.wikipedia.org/wiki/Low-dropout_regulator" target="_blank">LDO</a> и <a href="http://en.wikipedia.org/wiki/DC-to-DC_converter#Switched-mode_conversion" target="_blank">DC/DC</a>. От LDO отказался в пользу DC/DC. так как у DC/DC выше КПД под 80..95% и им легче управлять. Нашёл у <a href="http://www.linear.com/" target="_blank">Linear</a> преобразователь <a href="http://www.linear.com/product/LT3470" target="_blank">LT3470</a> с очень широким диапазоном входного напряжения, и это, пожалуй, один из немногих DC/DC с очень низким током в Shutdown Mode 0.1мкА. МВ можно питать от 7 до 40V. В выключенном режиме МВ потребляет менее 1мкА, обычной Alkaline батарейки хватит более, чем на 200000h. Для включения поставил Pushbutton On/Off Controller <a href="http://www.linear.com/product/LTC2955" target="_blank">LTC2955-1</a>. Он включает преобразователь, убирает дребезг контакта кнопки и транслирует нажатие к контроллеру. При нажатии на кнопку более чем на 5 секунд, прибор выключится. При желании конденсатор С6 можно заменить на сопротивление ноль ом. Тогда выключить можно только из меню или вытащив батарейку. :) После выбора всех компонентов за час была готова схема и разведена плата,</font></p> <p><font size="3"><img src="http://farm9.staticflickr.com/8333/8142518607_57d0841848_n.jpg" /></font></p> <p><img src="http://farm9.staticflickr.com/8327/8142548022_4cde439cc5_n.jpg" /></p> <p><font size="3"> а ещё через час плата была готова к пайке. После монтажа осталась проверить, что все работает как запланировано. </font></p> <p><font size="3"><img src="http://farm9.staticflickr.com/8046/8142548200_c3b0cc0cbd_n.jpg" /></font></p> <p><font size="3">Если вы захотите повторить схему, то после изготовления не забудьте хорошо помыть плату от канифоли. У меня грязная плата потребляла 3мкА, а после помывки 0.5мкА. :) Схема в большом разрешении есть у меня на Flickr, ссылка внизу. На самом верхнем снимке сборка модуля питания дисплея и Arduino. </font><font size="3">  </font></p> <p><font size="3">Успешных вам кадров.</font></p> <p><font size="3"><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> </font></p> <p><font size="3"></font></p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631897762890/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-49004941082910357142012-10-27T11:06:00.001-07:002012-10-27T12:03:36.623-07:00Time machine: Display.<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"></span> <br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<img src="http://farm9.staticflickr.com/8466/8127137798_0ea0a019aa.jpg" /> <br />
Этой статьёй хочу открыть цикл статей — проектов о «Машине времени». Если описывать все возможности прибора, то статья получиться очень большой. Да и единого устройства пока нет. Есть маленькие проекты для Arduino, которые можно комбинировать. Для тех, кто не знает, что такое «Машина времени», далее МВ . В фото кругах «Машина времени» - это жаргонное выражение для прибора, позволяющего синхронизировать события в студии. Незаменимая вещь при съёмке воды, огня и быстро протекающих событий. Обычно такие приборы имеют вход для микрофона, датчиков света, магнитного поля, датчика вибрации, можно управлять мотором и так далее. С помощью МВ можно регулировать задержки между событиями, измерять длительности импульсов света студийных блоков. В этой статье пойдёт речь о <a href="http://en.wikipedia.org/wiki/OLED" target="_blank">OLED</a> дисплее. <br />
Дисплей сделан в формате <a href="http://www.arduino.cc/en/Main/ArduinoBoardMini" target="_blank">Arduino Mini</a> и может быть установлен прямо на Arduino Mini. <br />
<img src="http://farm9.staticflickr.com/8323/8127137822_790e1f75a6_n.jpg" /> <br />
Для соединения нужно всего 5 контактов. Сам дисплей небольшой с маленьким потреблением и не требует подсветки. так как сам светиться. Рабочая область 96х16 точек с <a href="http://en.wikipedia.org/wiki/I2c" target="_blank">I2C</a> интерфейсом. Чтобы использовать дисплей на прямую с Arduino mini на модуль, есть свой <a href="http://en.wikipedia.org/wiki/Low-dropout_regulator" target="_blank">LDO</a> регулятор 3.3V, а так же <a href="http://www.nxp.com/documents/data_sheet/PCA9306.pdf" target="_blank">преобразователь уровня для I2C шины</a>. <br />
<img src="http://farm9.staticflickr.com/8470/8127110867_be8ee143b5_n.jpg" /> <br />
Схема с большим разрешением есть у меня в стриме, ссылка внизу статьи. В схеме есть пару лишних сопротивлений ноль ом, чтобы плата была односторонней. <br />
<img src="http://farm9.staticflickr.com/8469/8127110829_75008c1a8a_n.jpg" /> <br />
Когда все детали в наличии, на монтаж ушло минут 15. <br />
<img src="http://farm9.staticflickr.com/8190/8127110997_95f1bd8028_n.jpg" /> <br />
Для управления использую библиотеку Adafruit. <br />
<a href="https://github.com/adafruit/Adafruit-GFX-Library" target="_blank">https://github.com/adafruit/Adafruit-GFX-Library</a> <br />
<a href="https://github.com/adafruit/Adafruit_SSD1306" target="_blank">https://github.com/adafruit/Adafruit_SSD1306</a> <br />
<a href="http://learn.adafruit.com/adafruit-gfx-graphics-library" target="_blank">http://learn.adafruit.com/adafruit-gfx-graphics-library</a> <br />
После того как вы установите библиотеки в директорию Arduino, <br />
останется написать маленький скетч для проверки, <br />
и придумать, что выводить на экран. :)</div>
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;">
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: #cc6633;">#define</span> OLED_RESET 10 <span style="color: green;">//Pin # the OLED module's RST pin is connected to.</span>
<span style="color: #cc6633;">#include</span> <Wire.h>
<span style="color: #cc6633;">#include</span> <Adafruit_GFX.h>
<span style="color: #cc6633;">#include</span> <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(OLED_RESET);
<span style="color: blue;">void</span> setup() {
<span style="color: green;">// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)</span>
display.begin(SSD1306_SWITCHCAPVCC);
<span style="color: green;">// init done</span>
<span style="color: green;">//display.display(); // show splashscreen</span>
<span style="color: green;">//delay(2000);</span>
display.clearDisplay(); <span style="color: green;">// clears the screen and buffer</span>
<span style="color: green;">// draw a single pixel</span>
display.fillRect(0, 0, display.width()-1, display.height()-1, WHITE);
display.display();
delay(2000);
display.clearDisplay();
}
<span style="color: blue;">void</span> loop() {
<span style="color: green;">// text display tests</span>
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(12345678);
display.display();
delay(500);
<span style="color: green;">//display.clearDisplay();</span>
display.fillRect(36,0,12, 16, BLACK);
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(36,0);
display.println(<span style="color: #006080;">">"</span>);
display.display();
delay(500);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(<span style="color: #006080;">"Circuit for the Photos."</span>);
display.display();
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(BLACK, WHITE); <span style="color: green;">// 'inverted' text</span>
display.setCursor(0,0);
display.println(12345678);
display.display();
delay(500);
<span style="color: green;">//display.clearDisplay();</span>
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,9);
display.println(12345678);
display.display();
delay(500);
<span style="color: green;">//display.clearDisplay();</span>
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(49,0);
display.println(1234567);
display.display();
delay(500);
display.clearDisplay();
}</pre>
<br />
<br />
<br /></div>
<br />
<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;">Успешных вам кадров.</span></span></div>
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;">PS:</span></span></div>
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;">продолжение следует.</span></span><br />
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: black;">© Andrew Buckin.</span></span></span> <br />
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595" target="_blank">Shutterstock</a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images" target="_blank">Dreamstime</a></span></span> <br />
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: Georgia,"Times New Roman",serif;"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631862585855/" target="_blank">Fotostream http://www.flickr.com</a></span></span></div>
</div>
“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com2tag:blogger.com,1999:blog-3907406965051969800.post-37589527924710989012012-10-13T00:34:00.001-07:002012-10-13T00:34:20.970-07:0050° Grid for Softbox Deep Octa 100 cm.<p><img src="http://farm9.staticflickr.com/8334/8080354903_70442bfefe.jpg" /></p> <p>Пару лет назад я купил себе Softbox Deep Octa 100 cm. Очень хороший свет. Как, впрочeм, и все оборудование у Elinchrom. Но. Не знаю почему производитель не производит соты к этой окте. Сами не делают и видно другим не дают. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Trauriges Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiazRzxdl6dusieOPvk-I_8cZiqtvu2kGq4oSLiHGYbK-qzsyAGtAoqcgDDKEfwBlZdqebblJvDLt4zNP30ldX2OOKtF-q5pHCrzRz1eZX-tQ6V2lgNCTlS7HcqoafKCp3lGsM7GorXxSzb/?imgmax=800" /> Купить у китайцев, корейцев нельзя.</p> <p>Есть всего одна фирма, выпускающая под них соты. Отсутствие конкуренции поднимает цены на эти соты до небес. Не то чтобы мне было жалко заплатить или я не смог бы договорится с жабой. Была бы вещь уникальная! Нет, тут дело в другом. Можете мне поверить, что соты с одинаковых шагом за 50€ и 500€ будут обеспечивать одинаковый световой рисунок. Не буду долго описывать причины, почему я не купил за 500€. Я решил сделать подходящие соты под эту окту. Делать соты с нуля было бы очень долго. Да и швейной машинкой я не сильно владею. Я рискнул и купил на ebay соты для 120 см окты фирмы Quantuum в надежде что после хирургическиx вмешательств, размер будет 100 см. За пару дней соты были у меня в почтовом ящике. А через 15 минут после открытия посылки и готовые соты. Для самоделки нужны ножницы, скоросшиватель и два десятка прищепок. Ещё полоски прорезиненной ткани, на которых соты будут крепиться к окте. Первым делом нужно развернуть окту и распределить Quantuum соты на окте. Закрепить соты прищепками к краям окты. По возможности так, чтобы совпадали углы сот с углами окты и не было натяжения. К этому нужно подойти очень внимательно, чтобы не обрезать лишнего. Шаг в 120 см сотах совпадает с углами окты. У меня все совпало, думаю и у вас всё получится. Отрезаем лишнее. :) Теперь нужно отрезать длинную полоску из прорезиненной ткани шириной 7 см и длиной по периметру окты. Прикладываем плотную ткань по периметру сот и сшиваем степлером ткань и соты. </p> <p><img src="http://farm9.staticflickr.com/8331/8080355527_7a0a3f0e9c_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8475/8080349456_6c68e7dd91_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8326/8080355301_52b9b869b1_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8327/8080349248_50f967d7f9_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8054/8080349032_b33e2b3b4c_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8053/8080354995_5ac1c22653_n.jpg" /></p> <p>Соты почти готовы. Для того чтобы обеспечить лучшее крепление сот на окте, на гранях степлером делаем складки. </p> <p><img src="http://farm9.staticflickr.com/8325/8080355147_a94337a7af_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8331/8080355367_9f3cf66356_n.jpg" /></p> <p>Вот теперь всё. </p> <p><img src="http://farm9.staticflickr.com/8184/8080348800_ff0f27afe9_n.jpg" /></p> <p>Осталось всё проверить, найти модель и сделать пару портретов. Что я регулярно и делаю. И вам того же желаю.  Этот портрет снят с этими сотами.</p> <p><font size="3"><img src="http://farm9.staticflickr.com/8325/8080358444_61f9afebe7.jpg" /></font></p> <p><font size="3">Успешных вам кадров.</font></p> <p><font size="3"><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> </font></p> <p><font size="3"></font></p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631753280144/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-7549744288361025352012-10-10T11:08:00.001-07:002012-10-10T11:08:58.222-07:00Myths and realities Х-sync with studio light. (eng)<p> </p> <p>In this article I will try to explain whether it is possible to work with studio light while using short exposition time. From the moment of appearance of new “Pockets” on the market, on various forums very often appear topics about usage of studio light for short exposition times. Rapturous owners of “Pockets” describe how excellently everything works, but when you ask them to send a few pictures, nobody sends anything. I decided to investigate this. I have the drafts of the article lying around for over half a year already. Now autumn has come, and forced me into the warm house, a good reason to describe the work done. So far there will not be any talk about any working device, but small helpers were still required – Arduino and a Breadboard.</p> <p>So here is the list of all the myths.</p> <p>Myth one: “On the synchronizer, the “Pocket” generates a number of short impulses. That way it causes the generator to create a number of short flashes.”</p> <p>Wow! “Pocket” is great. Sounds almost like a flash system in FP mode. I would like to believe in this. I would be so happy if the developers of Elinchrom would permit a design flaw, and allowed such a possibility. Then I would be one of the first who would make TTL for a studio. However marketers do not allow engineers to implement many of the useful innovations. But this is all just talk. In reality everything is simple. It does not work. But it has to be tested. I began by measuring the duration of the signal on the central contact of the camera. For Nikon it is 7,6 uSec. I connected the generator to Arduino, and while changing the duration and the number of flash signals for the generator, I measured the light for all durations with a flashmeter. No wonder happened. The light always stays the same, and corresponds to the set value on the generator. Lets hope that engineers defeat the marketers, and the firms will supply photographers with advanced technologies, instead of feeding us from a teaspoon. Nowadays I do not see a reason, technically or technologically, to not make X-synch with TTL in a studio.</p> <p>Myth two: “By controlling the delay between the camera and the flashlight one can use X-synch with system flashlights.”</p> <p>Sounds tempting. But it does not work. In my camera the minimal exposition time with flashlight is 1/250, and with 1/320 a black line appears on the picture. I connected Arduino to the camera and the generator. By increasing the delay, the black line became only bigger. But therefor I could measure the LAG of the shutter. I set the exposition time to 1/250 and by increasing the delay, I achieved that the picture became completely black. In D700 the LAG of the shutter is approximately 100 uSec.</p> <p>What does “Pocket” use?</p> <p>To answer this question I had to go a bit deeper into the protocol of communication between the camera (D700) and the flashlight (SB-900). About the protocol itself I will write another time. Up to this moment the behavior of the camera and the flashlight was predictable and understandable. The shutter is triggered, and when the frame is completely open, the signal is sent to the flashlights. But after connecting a flashlight with an FP mode to the camera, everything changes. It practically works like this: the camera triggers the flash, the flash lights up, the camera triggers the shutter. I assume that the delay time can be changed, and that it depends on the model of the flashlights and other things. Turns out, the camera adjusts the triggering of the shutter to the flashlight. There is no limit to the happiness. What use does this knowledge have to us? Very simple. By attaching SB-900 to the camera in the “M-FP mode 1/128” and by attaching the generator to the camera via PC port, one can photograph with short exposition times without a “Pocket”. This solution has a problem though. Depending on the exposition time, a gradient appears on the pictures. “Pocket” has the same problem, by the way. But it can be dealt with too. For that, one has to program Arduino a bit. The program is very simple. The signal comes, a little delay, signal goes. My Arduino is connected to an LCD display of a mobile phone, and an encoder to change the values for the delay. This circuit is put into the cable between the camera and the generator.</p> <p>With what light does it all work?</p> <p>I repeated the work on three different blocks, and two generators. With an additional delay circuit with Arduino, everything works with a precision of up to 1/8000. With such an initiation of blocks, a dependency can be observed: the worse the block, the better the light. The gradient is less noticeable. The cheaper block's duration of the light impulse is longer, and it is easier to choose a delay with which the gradient on the picture is minimal. With the fastest head Quadra A Head Action, one can easily make pictures with up to 1/1000. The delays on Arduino turned out as following.</p> <h3>shutter speed      delay uS</h3> <h3>320                          3000</h3> <h3>400                          2900</h3> <h3>500                          2540</h3> <h3>1000                        1440</h3> <p>I connected to the PC port a radio trigger RF-602 and EL-Skyport Transmitter SPEED. Everything works without complications. If you do not need TTL, why should you buy “Pocket”?</p> <p>Conclusions and perspectives?</p> <p>Knowing the specifics about how the camera works in the FP mode, one can make pictures with any studio light and with short exposition times. The light can be synchronized via cable or via radio. With inexpensive light, pictures can be made with even shorter exposition times.</p> <p>What I plan.</p> <p>I intend to thoroughly learn the Nikon protocol between the camera and the flashlight. Then I intend to put the SB-900 emulator and the delay circuit inside of RF-602. And afterward I want to make a hot shoe with the delay for comfortable work with EL-Skyport Transmitter SPEED.</p> <p>Successful shots to you.</p> <p>P.S.:</p> <p>I would not call this approach ideal, but it can be used.</p> <p><span style="font-family: georgia; color: black; font-size: small"></span></p> <p><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> <br /> <br /><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628654559461/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-50787449504320750892012-10-07T02:25:00.001-07:002012-10-07T02:25:07.128-07:00Myths and realities Х-sync with studio light.<p> </p> <p>В этой статье я постараюсь рассказать реально ли работать со студийным светом на коротких выдержках. С момента появления на рынке новых «Покетов» на различных форумах очень часто поднимается тема о работе студийного света на коротких выдержках. Восторженные обладатели «Покетов» описывают, как все замечательно работает, но, когда просишь прислать пару кадров, никто ничего не присылает. Я решил с этим разобраться. Наброски статьи лежат у меня уже полгода, настала осень и загнала меня в тёплый дом, хорошая причина описать проделанное. Пока не о каком законченном устройстве речи не будет, но маленькие помощники все же понадобились – Arduino и макетная плата.</p> <p>И так все мифы по порядку.</p> <p>Миф первый.</p> <p>На синхроконтакте «Покет» генерирует последовательность коротких импульсов. Тем самым вынуждает генератор делать последовательность коротких вспышек. Вау! «Покет» молодец. Звучит почти как системная вспышка в FP режиме. Хотелось бы в это верить. Как бы я радовался, если бы разработчики Elinchrom допустили ошибку в дизайне и оставили такую возможность. Я бы тогда был одним из первых, кто сделал ТТЛ для студии. Увы маркетологи не позволяют инженерам сделать многих полезных инноваций. Но это все слова. На деле обстоит все просто. Не работает. Но проверить нужно. Для начала я измерил длительность сигнала на центральном контакте камеры. У Nikon это 7,6 микросекунд. Подключил генератор к Arduino и, изменяя длительность и количество сигналов поджига для генератора, измерил свет флешметром на всех длительностях. Чуда не произошло. Свет всегда остаётся постоянным и соответствует выставленному значению на генераторе. Будем надеяться, что инженеры победят маркетологов, и фирмы будут снабжать фотографов передовыми технологиями, а не кормить нас по чайной ложке. Так как сегодня технически и технологически я не вижу причин почему не сделать Х-sync и ТТЛ в студии.</p> <p>Миф второй.</p> <p>Регулируя задержку между камерой и вспышкой можно использовать Х-sync со студийными вспышками. Звучит заманчиво. Но не работает. В моей камере минимальная выдержка работы камеры со вспышкой 1/250, и при 1/320 на фотографии появляется чёрная полоса. Я подключил Arduino между камерой и генератором. При добавлении задержки чёрная полоса только увеличивается. Зато я смог измерить ЛАГ затвора. Установил выдержку 1/250 и, добавляя задержку, добился того, что кадр стал полностью чёрным. В D700 ЛАГ затвора составляет около 100 микросекунд. </p> <p>Что использует «Покет»? </p> <p>Для того чтобы ответить на этот вопрос пришлось немного углубится в протокол общения между камерой (D700) и вспышкой (SB-900). О самом протоколе я напишу в другой раз. До этого момента поведение камеры и вспышки было предсказуемо и понятно. Срабатывает затвор и, когда кард полностью открыт, приходит сигнал на вспышку. Но, после того, как на камеру устанавливается вспышка, умеющая работать в FP моде, все меняется. На деле это выглядит так: камера поджигает вспышку, вспышка начинает светит, в камере срабатывает затвор. У меня есть предположение, что время задержки можно изменять, и зависит задержка от модели вспышки и др. Получается, что камера подстраивает срабатывание затвора под вспышку. Радости нет предела. Какая польза нам от таких знаний? Да очень прямая. Установив SB-900 на камеру в «M-FP mode 1/128» и подсоединив к камере генератор через PC разъём можно снимать на коротких выдержках без «Покета». Правда у такого решения есть проблема. В зависимости от выдержки на снимках появляется градиента. Кстати, у «Покет» та же проблема. Но и с этим можно бороться. :) Для этого нужно немного запрограммировать Arduino. Программа очень проста. Сигнал пришёл, маленькая задержка, сигнал ушёл. У меня к Arduino подключён LCD от телефона и энкодер для изменения значений задержки. Эта схема устанавливается в разрыв кабеля между камерой и генератором. </p> <p>С каким светом всё работает?</p> <p>Я проверил работу на трёх различных блоках и двух генераторах. С дополнительной схемой задержки на Arduino всё работает до 1/8000. :) При таком запуске блоков наблюдается зависимость: чем хуже блок - тем лучше свет. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ9j55jP5LJe3IR7GULFmteCqQEVk1qCAgxb6CZ9NVywh0T4raiERHFcY0LrQhgPIqeJ1gLjr6CmzRYDC6yQ6VPQTgYwf_Qa8dHBt9ztqgNTAxvOEBKPdqlkbS93cBy-hE0nHtiw58f23_/?imgmax=800" /> Меньше заметна градиента. У более дешёвых блоков длительность импульса света больше и легче подобрать задержку, при которой на снимке градиента минимальна. Для примера, с самой быстрой головой Quadra A Head Action, можно спокойно снимать до 1/1000. Задержки на Arduino получились такие.</p> <h2> </h2> <h1><font size="5">shutter speed      delay uS</font></h1> <h1><font size="5">320                          3000</font></h1> <h1><font size="5">400                          2900</font></h1> <h1><font size="5">500                          2540</font></h1> <h1><font size="5">1000                        1440</font></h1> <p>Я подключал к PC разъём радио триггер RF-602 и EL-Skyport Transmitter SPEED. Всё работает без замечаний. Если вам не нужен ТТЛ, то зачем покупать «Покет»? <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ9j55jP5LJe3IR7GULFmteCqQEVk1qCAgxb6CZ9NVywh0T4raiERHFcY0LrQhgPIqeJ1gLjr6CmzRYDC6yQ6VPQTgYwf_Qa8dHBt9ztqgNTAxvOEBKPdqlkbS93cBy-hE0nHtiw58f23_/?imgmax=800" /></p> <p>Выводы и перспективы? </p> <p>Зная особенности работы камеры в FP режиме, можно снимать с любым студийным светом на коротких выдержках. Синхронизировать свет можно по кабелю или по радио. С недорогим светом можно снимать на более коротких выдержках. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ9j55jP5LJe3IR7GULFmteCqQEVk1qCAgxb6CZ9NVywh0T4raiERHFcY0LrQhgPIqeJ1gLjr6CmzRYDC6yQ6VPQTgYwf_Qa8dHBt9ztqgNTAxvOEBKPdqlkbS93cBy-hE0nHtiw58f23_/?imgmax=800" /> Что я планирую. Более досконально изучить Nikon протокол между камерой и вспышкой. Разместить эмулятор SB-900 и схему задержки внутри RF-602. Сделать горячий башмак с задержкой для удобной работы с EL-Skyport Transmitter SPEED. </p> <p>Удачных вам кадров.</p> <p>PS:</p> <p>Я бы не назвал такой подход идеальным, но использовать его можно.</p> <p> </p> <span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> <br /> <br /><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628654559461/" target="_blank">Fotostream http://www.flickr.com</a></span> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-27416161355315455372012-10-06T01:05:00.001-07:002012-10-06T01:05:17.854-07:00My Precious. (eng)<p><img src="http://farm9.staticflickr.com/8177/8038975447_77ef9d1199.jpg" /></p> <p>Why did I call an article about a photo holder like that? Well, probably because when I made the first prototype, “The Lord of the Rings”  was  on TV. A very simple thing – a holder for an umbrella. Why is the market filled with all kinds of crap (shit)?</p> <p>But all in the right order.</p> <p>When somebody buys the first reflex camera, the second thing he takes, is a flash system. And it does not matter, what he will do next, a strobist or a family album, the next acquisition is in the most cases a flash system. Many people stop there, and “others” start thinking about light, buy umbrellas, holders, Light Stand and so on. This list is very long, and I will not write it all here. I was unlucky, and I was infected with the disease called “photography”. Just like everyone else in the minority. I bought a flashlight, a rack, a holder for the umbrella, and started to actively try out how all this light works. I tried out many kinds of holders, I will not describe all the shortcomings of all the systems on the market. I rather describe how cool mine is. Most holders fix the umbrella with a bolt, which leads to the deformation of the umbrella's tubule. Where the tubule is being held, it is being deformed by the bolt. It becomes hard to close the umbrella. As a result the tubule breaks, and if your umbrellas are like mine, from a brand, then you can not replace it straight away, because a true brand used a tubule with a nonstandard diameter, 7mm. So I did not buy a new umbrella, and instead found where to buy 2 meters of a brass tube, and replaced the original one with the brass one. After that the umbrella gained 30 grams weight. Did you ever ask yourself, why the light on the umbrella is always on the top, and not on the axis? You can get accustomed to it and use it, but it surely can be simpler and more understandable. Did you try to use pilot light with flash systems? Such pleasure is not available for all the systems, and not for all the flashlights. For me this problem is constructively solved and there is a  space to attach pilot light. When the light becomes too little for you, you either buy studio lights, or a second flashlight. With studio lights everything is clear, they have their own cappings and attachments, but what to do about a bracing for a second flashlight? The merits could be described with delight for a long time. Hence allow me to introduce my holder for the umbrella.</p> <p><img src="http://farm9.staticflickr.com/8038/8038979030_b85e99a5e7_n.jpg" /></p> <p>My precious is an aluminum bar with a collet chuck for fixing umbrellas or studio attachments. The surface of the bar is covered with densely rubbered cloth, to not scratch the flashlights, the sizes are calculated for use with the flashlight SB900 or smaller ones. The holder has notches for the fastening belts, two landing carvings, two mounting holes for LED pilot light and an additional mounting pad. So far nothing else was required.</p> <p><img src="http://farm9.staticflickr.com/8180/8038975253_a032185f57_n.jpg" /></p> <p>How it all works.</p> <p>You can attach flashlights from both sides. The flashlights are put on the rubbered surface and are fastened by belts with velcros, or attached to the additional pad. I prefer the belts.</p> <p><img src="http://farm9.staticflickr.com/8458/8038975329_bd4d899fdb_n.jpg" /></p> <p>You can attach anything, and as much as you want. One flashlight with pilot, two flashlights with one pilot, one flashlight and two pilots. So far the space was enough for everything, and satisfying my “EGO”, all the light is on the axis of the umbrella.</p> <p><img src="http://farm9.staticflickr.com/8029/8038975017_dc8434a227_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8462/8038978618_8200eecbc7_n.jpg" /></p> <p>While using parabolic reflectors, it's very important. What else is this mounting capable of? For example you can attach it in the center of Ring Flash and use Ring Flash with an umbrella or an octa.</p> <p><img src="http://farm9.staticflickr.com/8314/8038974737_9f1f1fcdc3_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8456/8038974449_1e9d59d87d_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8037/8038978154_f632ec5471_n.jpg" /></p> <p>For not too heavy soft boxes I made an adapter for studio attachments and use flash systems in the studio. The holder can easily be attached to a tripod or a Light Stand.</p> <p><img src="http://farm9.staticflickr.com/8182/8038977782_190fab4ba1_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8033/8038974201_9594dfd78e_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8041/8038979106_6d2e5fe7c3_n.jpg" /></p> <p>In one word, it has become a good universal solution. The holder reminds me of a LEGO piece and does not cease to amaze me with the diversity of its usability. You can attach the sources in any way, one turned to the ceiling, another for translucent umbrella, even at a degree of 180°. Various nuts and bolts can of course not be avoided. One can think up very many unusual attachment patterns, and not only for flashlights.</p> <p>You may ask, why anyone needs that? A very correct question. In photography the deciding thing is light and the control over it. Compare the light spot of a normal holder and that of mine.</p> <p>On this picture the translucent umbrella set a normal holder not on the axis.</p> <p><img src="http://farm9.staticflickr.com/8311/8038974797_a66a8c3ca9_n.jpg" /></p> <p>What is bad about this light, is a bright white hotspot from the lamp, a non-symmetric gradient of light from top to bottom, and the shadow of the tube of the umbrella.</p> <p>As you can see on the second picture, there are no such shortcomings with axial positioning of the flashlight.</p> <p><img src="http://farm9.staticflickr.com/8450/8038978410_0dba9e2039_n.jpg" /></p> <p>On this picture is an example of the spot of Ring Flash with the translucent umbrella. </p> <p><img src="http://farm9.staticflickr.com/8040/8038974361_69c46ba388_n.jpg" /></p> <p>The badly criticized Ring Flash has turned with an umbrella into a source of soft controllable light. As for me, this is a very useful ability. After making a “trash” session, everything can be set up for a portrait or NUDE very fast, and you do not have to take a second light source with you.</p> <p>Successful shots to you.</p> <p>© Andrew Buckin</p> <p>P.S.:</p> <p>Currently I do not have the ability for mass production of this holder. So if anyone has the wish to acquire one, I have to disappoint you with a high price. Everything is made manually.</p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-85131608989474090662012-10-03T01:15:00.001-07:002012-10-03T01:15:31.776-07:00My Precious.<p> </p> <p><img src="http://farm9.staticflickr.com/8177/8038975447_77ef9d1199.jpg" /></p> <p>Почему я так назвал статью о фото держателе? Ну наверное потому, что, когда я сделал первый образец, показывали «Властелин колец». Очень простая вещь — держатель для зонтика. Почему рынок наполнен всяким г.? </p> <p>Ну всё по порядку.</p> <p>Когда человек покупает первую зеркальную камеру, второе, что он берет - это системная вспышка. И не важно, чем он будет заниматься дальше стробизмом или семейным альбомом, вторая покупка в большинстве случаев - системная вспышка. Многие на этом останавливаются, вот «другие» начинают задумываться о свете, покупают зонтики, держатели , стойки и т.д. Список этот очень длинный и перечислять всё я не буду. Мне не повезло и меня засосала болезнь «фотография». Я, как и все, из меньшинства. Купил вспышку, стойку, держатель для зонтика и начал активно пробовать как это все светит. Попробовал я много всяких держателей, описывать все недостатки всех систем на рынке я не буду. Лучше опишу как все классно у меня. :) В большинстве держателей зонтик фиксируется винтом, что приводит к деформации трубочки зонта, в местах крепления трубочка деформируется от винта. Зонтик начинает плохо закрываться. В итоге трубочка ломается, а если у вас зонтики, как у меня, от бренда, то заменить ее с ходу вы не можете, так как истинный бренд применил не стандартный диаметр трубочки 7мм. Новый зонтик покупать я не стал, нашёл где заказать два метра латунной трубы и поменял оригинальную на латунную. После этого зонтик прибавил в весе на 30гр. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8Vh6NoK4zqhFqN1bMjnDYdCbkzlHk0xIe7iGJETo_keAH3TsFcd4eSH1-6WTX1yd677Q4avHQRBZUyuwI65O7S30jwIv5QoFDTvT5PuyrvLCeiimZL9BwzAEoKBNwmJumvK96zwduk9rX/?imgmax=800" />  Вы никогда не спрашивали, почему вспышка в зонтике светит не по оси, а сверху? К этому можно привыкнуть и использовать, но можно ведь лучше и понятней. Пробовали использовать пилотный свет с системными вспышками? Такое удовольствие доступно не во всех системах, и не во всех вспышках. У меня эта проблема решена конструктивно и есть место для крепления пилотного света. Когда вам станет мало света вы или купите студийный свет, или вторую вспышку. Со студийным светом все понятно, там свои насадки, крепления, а как быть с креплением для второй вспышки? Описывать достоинства можно долго и с упоением. Поэтому разрешите представить мой вариант держателя для зонтика.</p> <p><img src="http://farm9.staticflickr.com/8038/8038979030_b85e99a5e7_n.jpg" /></p> <p>My precious — это алюминиевый брусок с цанговым зажимом для фиксации зонтика или студийных насадок. Поверхность бруска покрыта плотной прорезиненной тканью, чтобы не поцарапать вспышки, размеры рассчитаны на применение со вспышкой SB900 или вспышек меньшего размера. В держателе есть пазы для фиксирующих ремней, две посадочные резьбы ¼ дюйма, два крепёжных отверстия для крепления пилотного светодиодного света или дополнительной крепёжной площадки. Больше ничего пока не понадобилось.</p> <p><img src="http://farm9.staticflickr.com/8180/8038975253_a032185f57_n.jpg" /></p> <p>Как это все работает.</p> <p>Крепить вспышки можно с двух сторон. Вспышки прикладываются к резиновой поверхности и прижимаются ремнями с липучками или закреплять вспышки к дополнительной площадке. Я предпочитаю ремнями.</p> <p><img src="http://farm9.staticflickr.com/8458/8038975329_bd4d899fdb_n.jpg" /></p> <p>Крепить можно что угодно, и сколько угодно. Одну вспышку с пилотом, две вспышки с один пилот. Одна вспышка два пилота. Мне пока места хватало для всего и что радует моё «ЭГО» весь свет по оси зонта. </p> <p><img src="http://farm9.staticflickr.com/8029/8038975017_dc8434a227_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8462/8038978618_8200eecbc7_n.jpg" /></p> <p>При использовании параболических отражателей это очень важно. На что способно ещё крепление? Для примера вы можете закрепить его в центре Ring Flash и использовать Ring Flash с зонтом или октой. </p> <p><img src="http://farm9.staticflickr.com/8314/8038974737_9f1f1fcdc3_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8456/8038974449_1e9d59d87d_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8037/8038978154_f632ec5471_n.jpg" /></p> <p>Для нетяжёлых софтов я сделал переходник на студийные насадки и использую системные вспышки в студии. Держатель очень легко крепится на штатив и студийную стойку.</p> <p><img src="http://farm9.staticflickr.com/8182/8038977782_190fab4ba1_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8033/8038974201_9594dfd78e_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8041/8038979106_6d2e5fe7c3_n.jpg" /></p> <p>Одним словом, получился хороший универсал. Держатель напоминает мне LEGO камень и не перестаёт удивлять многосторонним применением. Источники можно закрепить и так и сяк: один в потолок другой на просвет, хоть под 180°. :) Конечно не обойтись без всяких мелких гаек и винтов. Придумать можно очень много необычных схем крепления не только для вспышек.</p> <p>У вас может возникнуть вопрос зачем это нужно? Очень правильный вопрос. В фотографии определяющее - свет и контроль над ним. Сравнить световое пятно с обычным держателем и моим. </p> <p>На этой фотографии зонтик на просвет с обычным держателем не по оси. </p> <p><img src="http://farm9.staticflickr.com/8311/8038974797_a66a8c3ca9_n.jpg" /></p> <p>Что плохого в этом свете яркий белый блик от лампы, не симметричная градиента сверху вниз, тень от штанги зонта. </p> <p>Как видно из второй фотографии всех этих недостатков при осевом расположении вспышки нет. </p> <p><img src="http://farm9.staticflickr.com/8450/8038978410_0dba9e2039_n.jpg" /></p> <p>На этой фотографии пример пятна Ring Flash с зонтом на просвет. </p> <p><img src="http://farm9.staticflickr.com/8040/8038974361_69c46ba388_n.jpg" /></p> <p>Сильно критикуемый Ring Flash с зонтиком преобразился в источник мягкого контролируемого света. Как для меня, это очень полезная возможность. Сняв трешь сессию можно быстро все перестроить на портрет или НЮ и не надо брать с собой дополнительный источник света. </p> <p><font size="3">Успешных вам кадров.</font></p> <p><font size="3"><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> </font></p> <p><font size="3"></font></p> <p>PS:</p> <p>Пока у меня нет возможности производить держатель серийно. Так что, если у кого возникнет желание приобрести,  хочу огорчить высокой ценой. Все делается в ручную. </p> <p> <br /><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631656893246/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-4551044823403478112012-10-02T10:39:00.001-07:002012-10-02T10:39:23.506-07:00Indirect & Zoom lightholder. (eng)<p><img src="http://farm9.staticflickr.com/8462/8036337608_e27171ae7e.jpg" /></p> <p>Hello everybody.</p> <p>I did not write anything for a long time. Even though there is something to write about. Allow me to introduce to you my summer's work (development).</p> <p>I'll start with the budget attachments for reflected light with zoom. If you follow the novelties of brands, then you probably noticed, that practically all of them have parabolic reflectors, and some even with Indirect, and the coolest brands, of course, offer zoom too. What should an advanced amateur do here? The answer is obvious. Do it himself, especially since the workshop is nearby anyways. One can't pay 500€ for every novelty after all. That way one could find himself without pants. But the desire to do photography stays, and I'm accustomed to using good light. I made some drafts on paper, took a few attachments and went to an acquainted turner for help. So here everything started. He looked at the drafts and the attachments, and asked a very simple question:</p> <p>- Do you even know what you want yourself?</p> <p>- I want this part to this one, and this to another one.</p> <p>The turner listened to my wishes and asked me to bring proper blueprints, and STEP models with them. That's how I was politely (nicely) sent **to hell**. No, nobody sent me **to hell** of course, they said they would help, but blueprints are required. After arming myself with tutorials about SolidWorks on Youtube in the evenings, I mastered this wonderful piece of software. Now I actively use it for 3D photography. All my constructions are made for the use with any kind of softboxes, strips and octa softboxes from Elinchrom, monolights BXRi can be used, Style RX, Ranger Quadra RX, and system flashlights, what could be very useful outdoors (on nature).</p> <p>So lets start. All the construction consists of the holder for the attachments, three axes for zoom and three holders for the light.</p> <p><img src="http://farm9.staticflickr.com/8040/8036333987_5ecbda42f1_n.jpg" /></p> <p>I didn't want to make the holder more complicated, so instead of a lock like Elinchrom, I use bolts to fixate the attachments on the holder. To fixate the axes, I use a collet. I tried to copy the holder for Ranger Quadra RX precisely, good that in SolidWorks one can make a model from a picture.</p> <p><img src="http://farm9.staticflickr.com/8035/8036336760_bb5c71216d_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8174/8036336664_4cf6525963_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8315/8036333669_be7166d03c_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8178/8036336506_ebe6bd9d52_n.jpg" /></p> <p>Everything but the axes is made of a light and hard (dense) plastic. The reflecting surfaces are covered with aluminum foil. To one of the axes I attached a lock washer, to not accidentally break the lamp while fixating.</p> <p>To limit the movement of the axes on the ends I installed blind nuts. When it's all put together, it looks like a spaceship, and with the rack, like a telescope. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj27oNRlDF2sYs3R87gpYTxJgeGUhe_KawxMm8oNaJ1_aRcnu32l7JkwclE2C_zPqDGY2mPO4W7z8-j10JFtIyD0zi7PaGbCqJPxfoYsdYskcPuMN-0vz1g5Ud0pYaEHIk9EyXOyonc99U2/?imgmax=800" /></p> <p><img src="http://farm9.staticflickr.com/8309/8036333901_8d2ebf3b1e_n.jpg" /></p> <p>The only thing I miss in all constructions, is a counter weight when I work with studio blocks, but in the near future I'll try to fix this. On these two pictures you can see how the spot of light changes when the depth of the light source is changed in the octa.</p> <p><img src="http://farm9.staticflickr.com/8452/8036334547_2770cfbb18_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8457/8036334375_fff693b424_n.jpg" /></p> <p>But with light everything is relative. I made this light for my taste. I like making portraits in renaissance style with one, or maximum two light sources. Indirect with Zoom guarantees soft light, but with good micro contrast.</p> <p><img src="http://farm9.staticflickr.com/8456/8036477127_0865a4bc0a.jpg" /></p> <p>Successful shots to you.</p> <p>© Andrew Buckin.</p> <p>P.S.:</p> <p>Many thanks to the mechanics Robin and Andrey for the support and the hands. I would have done something on the turning rack myself, but German safety rules prohibit an electronics engineer to work on a turning rack.</p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-71696969896520720912012-09-29T12:03:00.001-07:002012-09-29T12:03:25.521-07:00Indirect & Zoom lightholder.<p> </p> <p><img src="http://farm9.staticflickr.com/8462/8036337608_e27171ae7e.jpg" /></p> <p>Всем привет.</p> <p>Давно я ничего не писал. Хотя есть о чем. Разрешите представить мои летние наработки.</p> <p>Начну с бюджетной насадки для отражённого света с zoom. Если вы следите за новинками брендов, то наверное заметили, что практически у всех в ассортименте появились параболические отражатели, а у некоторых даже с Indirect, ну и самые крутые бренды предлагают и zoom. Куда податься продвинутому любителю? Ответ очевиден. Сделать самому, да и мастерская под боком. Ну не выкладывать же за каждую новинку по 500€. Так можно и без штанов остаться, а фотографировать хочется, да и привык уже хорошим светом пользоваться. Сделал я наброски на бумаге, взял пару насадок и обратился к знакомому токарю за помощью. Вот тут все и началось. Человек посмотрел на наброски и насадки и задал очень простой вопрос</p> <ul> <li> <p>Ты хоть сам то понял, что хочешь?</p> </li> <li> <p>Я хочу эту часть к этой, а ту - к другой.</p> </li> </ul> <p>Токарь послушал мои пожелания и попросил принести нормальные чертежи и к ним STEP модели. Вот так вот красиво меня послали. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1aY56Q2kRhmMp3sUMwgaSfohHtMJBLNS2m15YIE8uzzRkt_yrHsprn750NjycOMadrWRsJfazbBgKmStn_Z7VXm9GJhZ1IgGFnbABrzXH3i1CZBrDCkYBhk9eZ293LObuD5z_j3zXr2VX/?imgmax=800" /> Нет конечно никто меня не посылал, сказали, что помогут, но чертежи нужны. Вооружившись учебниками на Youtube по SolidWorks по вечерам за неделю освоил эту чудную программу. Сейчас активно использую для 3D фотографии. Вся моя конструкция рассчитана на использование с любыми софт боксами, стрипами и октами от Elinchrom можно применять блоки BXRi, Style RX, Ranger Quadra RX и системные вспышки, что очень удобно на природе.</p> <p>И так. Вся конструкция состоит из держателя для насадок, трёх осей для зума и трёх держателей для света. </p> <p><img src="http://farm9.staticflickr.com/8040/8036333987_5ecbda42f1_n.jpg" /></p> <p>Я не стал усложнять держатель для насадок и вместо замка, как у Elinchrom фиксирую насадки к держателю винтами. Для фиксации осей использую цанговый зажим. Держатель для Ranger Quadra RX постарался повторить один в один, благо в SolidWorks можно сделать модель по фотографии. </p> <p><img src="http://farm9.staticflickr.com/8035/8036336760_bb5c71216d_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8174/8036336664_4cf6525963_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8315/8036333669_be7166d03c_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8178/8036336506_ebe6bd9d52_n.jpg" /></p> <p>Всё, кроме осей, сделано из лёгкого и прочного пластика. Светоотражающие поверхности покрыл алюминиевой фольгой. На одной из осей разместил стопорную шайбу, чтоб при фокусировании случайно не разбить лампу. </p> <p>Для ограничения движения осей на торце установил глухую гайку. Когда все в сборе похоже на космический корабль, а вместе с октой на телескоп.</p> <p> <img src="http://farm9.staticflickr.com/8309/8036333901_8d2ebf3b1e_n.jpg" /></p> <p>Единственное, чего пока мне во всех конструкции не хватает, это противовеса при работе со студийными блоками, но я в ближайшее время постараюсь это исправить. На этих двух снимках видно как меняется пятно света при изменении глубины источника света в окте .</p> <p><img src="http://farm9.staticflickr.com/8452/8036334547_2770cfbb18_n.jpg" /></p> <p><img src="http://farm9.staticflickr.com/8457/8036334375_fff693b424_n.jpg" /></p> <p>В свете все относительно. Этот свет я делал под свои вкусы. Люблю я снимать портреты в стиле ренессанса с одним, максимум двумя источниками света. Indirect с Zoom обеспечивает мягкий свет, но с хорошим микро контрастом.</p> <p><img src="http://farm9.staticflickr.com/8456/8036477127_0865a4bc0a.jpg" /></p> <p><font size="3">Успешных вам кадров.</font></p> <p><font size="3"><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> </font></p> <p><font size="3"></font></p> <p>PS: </p> <p>Громадное спасибо механикам Робину и Андрею за поддержку и руки. Я бы и сам что- то на токарном станке сделал, но немецкие правила техники безопасности не позволяют инженеру- электронщику работать на токарном станке. </p> <p> <br /><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157631651143570/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-39595905905489717982012-04-09T10:02:00.001-07:002012-04-09T10:02:08.733-07:00Mobile WUSB.<p><img src="http://farm8.staticflickr.com/7182/6915071948_4aa181a8cc.jpg" /></p> <p>Всем привет,</p> <p>Сегодня я хочу коротко рассказать как использовать <a href="http://de.wikipedia.org/wiki/Wireless_USB">Wireless USB</a> – WUSB в студии для управления камерой. Я не знаю почему, но, как оказалось, не многие фотографы знают что такое WUSB. WUSB — это безпроводный USB. По интерфейсу WUSB вы можете подключить к компьютеру любое USB устройство — это может быть камера, сканер, принтер, внешний диск, планшет и т. д. Обычно базовый комплект состоит из двух устройств Device и Device PC.</p> <p><img src="http://farm8.staticflickr.com/7078/7061154027_89619e9e51_n.jpg" /> </p> <p>Не надо путать WLAN и WUSB. У WUSB другой частотный диапазон, небольшая дальность работы, устойчивая работа только в прямой видимости, поддерживается полная скорость USB устройства и, как по мне, это главное достоинство данного стандарта. Скорость передачи 480Мбит. После того, как вы купили и распаковали комплект, у вас будет диск с драйверами, два USB устройства и адаптер для подключения других USB устройств. Я попробовал установить родные драйверы, но у меня ничего не получилось. Под W7 x64 работало все криво. Так что я рекомендую поискать в сети драйверы от похожего устройства фирмы HAMA и драйверы поставить более новые. <a href="http://www.hama.de/webresources/drivers/00053/00053140_wxpvista_32_64.exe">http://www.hama.de/</a> После инсталляции драйверов и авторизации устройств вы можете подключить камеру к переходнику и попробовать управлять камерой. Программ для управления камерой сейчас много, полный обзор можно найти здесь <a href="http://thephotogeek.com/choosing-nikon-dslr-camera-tethered-shooting-software/">shooting software</a> .Я использую DcamCapture — бесплатная, есть LV и запись видео, работает на NetBook. Теперь о том, как это все сделать мобильным. Для этого вам понадобиться старая мама, из которой нужно выпаять USB штекер на два гнезда, держатель для аккумуляторов и пружинный контакт. На USB штекере соединить парные контакты. </p> <p><img src="http://farm8.staticflickr.com/7237/6915069904_d0bc399bba_n.jpg" /></p> <p>К контакту +5V подсоединить плюс блока батарей. К контакту GND подсоединить минус блока батарей и экран разъема. </p> <p><img src="http://farm6.staticflickr.com/5448/7061152327_6292d2038f_n.jpg" /></p> <p>Обязательно убедитесь, что плюс с минусом не перепутали. Во избежания драм подключения лучше пару раз проверить <a href="http://de.wikipedia.org/wiki/Universal_Serial_Bus">USB</a>. Применять рекомендую аккумуляторы или немного подсевшие батарейки. :) У свежих батареек напряжение на одном элементе может быть до 1.6V. Можно спалить или камеру или WUSB адаптер.  Или купите готовый Power Bank с двумя USB разъемами. После этого нужно припаять пружинный контакт как показано на фотографии. </p> <p><img src="http://farm8.staticflickr.com/7186/7061152451_80c80efe54_n.jpg" /></p> <p>Для этого нужно установить WUSB Device в наш разъём, соединить пружинный контакт с маленьким контактом на WUSB и экраном разъёма и запаять. </p> <p><img src="http://farm8.staticflickr.com/7179/6915070256_01bea1e190_n.jpg" /></p> <p>Для удобства работы я поместил все в чехол от старого мобильного телефона. </p> <p><img src="http://farm8.staticflickr.com/7093/7061154325_fca92ac4f1_n.jpg" /></p> <p>Ну вот вроде и все. Подключаем устройства и работаем. О практической стороне использования. По началу я применял WUSB на всех сессиях, но со временем понял, что бегаю я к компу меньше, но все же бегаю. Так что сейчас использую я этот девайс все реже и реже. Есть очень весомый аргумент почему использовать WUSB с камерами Nikon неудобно. Очень быстро садятся аккумуляторы в камере, нужен внешний источник питания или бат - блок. Использовать камеру в портретном режиме неудобно — мешает USB разъём. Так что мой выбор такой. WUSB самый быстрый и самый удобный вариант управления камерой и загрузки снятого материала на компьютер. Для каких видов съемки удобно применять - съемка для каталогов, когда камера на штативе, использовать LV для макро фотографии. Наводить фокус можно более аккуратно и точно, так как есть возможность наводить фокус по увеличенной LV картинке, не трогая камеру на расстоянии до 10 метров. Если кому что не понятно пишите. </p> <p><font size="3">Успешных вам кадров.</font></p> <p><font size="3"><span style="font-family: georgia; color: black; font-size: small">© Andrew Buckin.</span> </font></p> <p><font size="3"></font></p> <p><font size="3">PS:</font></p> <p>Для Автопортрета Must have. <br /> <br /><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia">Dreamstime</span></a> <br /> <br /><span style="font-family: georgia; font-size: small"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157629412961778/" target="_blank">Fotostream http://www.flickr.com</a></span></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com5tag:blogger.com,1999:blog-3907406965051969800.post-9151480312213964382012-03-10T05:09:00.003-08:002012-03-13T00:10:21.089-07:00The lithium battery for Elinchrom Ranger RX Quadra<div dir="ltr" style="text-align: left;" trbidi="on"><img src="http://farm8.staticflickr.com/7207/6822992270_74f465e69d.jpg" /><br />
<span style="font-size: small;">Всем привет,</span><br />
<span style="font-size: small;">Если вы как и я подсели на Elinchrom, эта статья как раз для вас.</span><br />
<span style="font-size: small;">Не хочу распевать дифирамбы этой марке. В двух словах, качество света у Elinchrom очень хорошее. Некоторым продуктам просто нет аналогов у других брендов. Вот об модернизации одного из них я и хочу рассказать. В прошлом году приобрёл себе для выездных сессий аккумуляторный генератор Ranger RX Quadra. Маленький, компактный, радио управление, 400 Дж, в целом - замечательный прибор. Но по складу своего характера мне всегда чего- то не хватает. Так и у этого прибора сразу нашлось два недостатка. Большой вес аккумуляторов 1.6кг и малая емкость 3.6Ач, нет возможности подключить к сети в студии. Честно сказать не понимаю, почему фирма поставила в этот малыш свинцовый аккумулятор. Технология старая, энергетическая плотность маленькая. Единственный плюс - свинцовые более безопасны чем литиевые АКБ. У вас не будет проблем при посадке в самолет со свинцовым АКБ, свинцовые АКБ меньше боятся глубокой разрядки. До покупки прибора пытался найти в сети полную спецификацию Ranger RX Quadra. Этого не получилось. Одним словом, рискнул и заказал. Когда достал генератор из коробки и увидел пределы входного напряжения от 10 до 18 вольт понял, что решение купить только один аккумуляторный блок более чем правильное, так как платить 190€ за свинцовый АКБ в наше время не позволительная роскошь. Если бы я знал все что знаю сейчас, то АКБ не покупал бы и вовсе. Но за знания надо платить - так устроена жить. <img alt="Trauriges Smiley" class="wlEmoticon wlEmoticon-sadsmile" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvKtQG2_xE-PvUfCTsXHixcUUJHtalNuvCHjpIj8kcqKWXG4WqPdKOLBJ7Hitm28eebb0XHNESwFIUYoHgzUWJ-EXnNxZknkTZDpCRgqLxTesN5BrlhqlosGCdZWGKggluwHsuLeXAGzAT/?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /></span><br />
<span style="font-size: small;">И так для очумелых ручек. Вооружаемся линейкой и делаем чертеж контура платы.</span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7203/6969115089_cc3300f6c4_m.jpg" /> </span><br />
<span style="font-size: small;">Схему мне даже стыдно публиковать - она очень проста, штекер для внешнего АКБ, предохранитель на 20А и диод для защиты от неправильного подключения. Печатаем контуры платы на прозрачной пленке на лазерном принтере и вытравливаем плату на двухстороннем текстолите. После этого вспоминаем уроки труда и лобзиком выпиливаем плату. Последовательность процесса изготовления платы у каждого радиолюбителя своя, можно просто заказать плату с сети. Готовая плата выгладит вот так. </span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7057/6969115201_a53ea0bc02_m.jpg" /></span><br />
<span style="font-size: small;">А это после монтажа. </span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7059/6822992016_1bb3b51c07_m.jpg" /></span><br />
<span style="font-size: small;">Теперь осталось изготовить крепление для платы к генератору в виде щеколды. Для этого понадобится брусок пластмассы толщиной 5..10мм, напильник и немного терпения. Через 10 минут работы напильником, получиться вот такой вот странной формы предмет. </span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7191/6969115217_e915ffccd3_m.jpg" /></span><br />
<span style="font-size: small;">Зубья с одной стороны длиннее чем с другой. Все механические и электрические части готовы. Теперь всё подключаем и снимаем.</span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7189/6969115361_86cd0deab5_m.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7185/6822991960_da4f3b8eb9_m.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7036/6822992116_49d40c0ab2_m.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7044/6969115461_ed149c5935_m.jpg" /></span><br />
<span style="font-size: small;"><img src="http://farm8.staticflickr.com/7038/6822992208_b3cb125666_m.jpg" /></span><br />
<span style="font-size: small;"></span><br />
<span style="color: #4bacc6; font-size: small;"><b>Литиевые АКБ.</b></span><br />
<span style="font-size: small;">Я использую различные АКБ 4Ач, 5Ач и 10Ач. </span><br />
<img src="http://farm8.staticflickr.com/7050/6822991856_d9fab9e34c.jpg" /><br />
<span style="font-size: small;"></span><br />
<span style="font-size: small;">Теперь не падайте со стула. Сейчас вы поймете почему производитель не поставил современные аккумуляторы. Родная батарея имеет ёмкостью 3.6Ач на 12В что составляет 43.2Втч и вся эта радость весит 1.6кг. 4Ач литиевая батарея на 14.8В (59.2Втч) весит всего 466г. Что белее чем на треть легче. 5Ач литиевая батарея на 14.8В (74Втч) весит 506г. 10Ач литиевая батарея на 14.8В (148Втч) весит 812г это в два раза легче родной но более чем в три раза больше по ёмкости. Это мелочи, но приятно, если свет носишь на плечах. Но это не единственное, чем интересен переходник на внешний АКБ. Вместо литиевой батареи можно подключить автомобильный АКБ на 12В. Работая в студии можно подключить блок питания на 120вт</span>, в момент заряда конденсаторов генератор потребляет 7А.<br />
<span style="font-size: small;"></span><br />
<br />
<span style="color: #4bacc6; font-size: small;"><b>О безопасности литиевых АКБ.</b></span><br />
<br />
<span style="font-size: small;">Так как генератор не знает о том, что его питают от батарей с другой химией, за состоянием батарей должен следить сам фотограф. Это очень важно, так как литиевые АКБ не любят глубокого разряда, если напряжение на ячейке падает до 1V то ячейку можно выбросить. Производители не рекомендуют опускаться ниже 2.7V. Для своих батарей я не опускаюсь ниже 3в на элемент. Для 4S не ниже 12V. Покупаю АКБ со встроенным тестером и звуковым сигналом. За год эксплуатации на выезде мне обычно хватает двух батарей по 4Ач или одной 10Ач. Не забудьте, что для зарядки литиевых АКБ нужно купить другую зарядку. Ну и последняя страшилка при работе в литиевыми АКБ. Не допускайте механических повреждений. В лучшем случае батарея выдохнется, в худшем - может возгореться. Температура горения у лития 2000°. </span><br />
<span style="font-size: small;">Вся конструкция в сборе похожа на бомбу. Весит 1.8кг и занимает меньше места. </span><br />
<span style="font-size: small;">Успешных вам кадров.</span><br />
<span style="font-size: small;"><span style="color: black; font-family: georgia; font-size: small;">© Andrew Buckin.</span> </span><br />
<span style="font-size: small;"></span><br />
<span style="font-size: small;">PS:</span><br />
<span style="font-size: small;">плату можно вырезать прямоугольную и не упражняться с лобзиком и напильником.</span> <img alt="Smiley" class="wlEmoticon wlEmoticon-smile" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhegm5Gtd3adjQzCN_ivSyQuXuXMMHvYmu4EW286cvO_DtmmCSRkT4aUYakwGmv5GgGs0e3WfRxEZmAaZWHKc2W8xrZY2T_VBE9J5QdzjjlY3-FU4XPvss8K2yVJrDjSgSy8szfCsb8auan/?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /> Чертежи в статье не указаны специально. Черт их знает какие законы авторства в Швейцарии. <br />
<br />
<img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: georgia;">Dreamstime</span></a> <br />
<br />
<span style="font-family: georgia; font-size: small;"><a href="http://www.flickr.com/photos/13931361@N08/6822992270/in/set-72157629552517479/" target="_blank">Fotostream http://www.flickr.com</a></span></div>“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com4tag:blogger.com,1999:blog-3907406965051969800.post-50191697506149114502012-01-01T01:36:00.001-08:002012-01-01T02:08:58.935-08:00Triangle control Arduino, PC, Camera.<div dir="ltr" style="text-align: left;" trbidi="on"><img src="http://farm8.staticflickr.com/7012/6608626471_7643cba884.jpg" /><br />
<span style="color: black; font-family: Georgia; font-size: small;">В советские времена нас учили, что кадры решают все. Может быть. Довелось мне поработать и там и тут и могу с уверенностью сказать, что кадры это только ступеньки к успеху. Все решает управление. В этой статье постараюсь рассказать как шаг за шагом сделать универсальный пульт дистанционного управления для камеры, позволяющий менять настройки камеры. </span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;"><b><span style="color: #4bacc6;">Шаг первый - ИК пульт.</span></b></span><br />
<span style="color: black; font-family: Georgia; font-size: small;"><b><span style="color: #4bacc6;"> </span></b> </span><br />
<span style="color: black; font-family: Georgia; font-size: small;">Вы случайно под новый год не решили поменять телевизор или выбросить старый DVD проигрыватель. Если нет, то жаль, так бы вам очень пригодился дистанционный пульт. У меня таких накопилось штук восемь. Но это не все, чем полезна старая электроника. Вооружившись отверткой можно вытащить ИК приемник. Приемник обычно размещаются под передней крышкой прибора. </span><br />
<img src="http://farm8.staticflickr.com/7031/6608626625_15280e1ac1_m.jpg" /><br />
<span style="color: black; font-family: Georgia; font-size: small;">Подойдет любой IR приемник <span style="color: #4bacc6;">TSOP17, TSOP13, SM3374, TK19</span> и им подобные. После того, как приемник найден, собираем маленькую схему на Arduino и приступаем к изучению пульта управления.</span><br />
<img src="http://farm8.staticflickr.com/7150/6608626817_8b4969fcd1_m.jpg" /><br />
<span style="color: black; font-family: Georgia; font-size: small;">Пульт желательно использовать не самый новый, но и не самый старый, чтоб было максимум рабочих кодов. Для сканирования нужно загрузить библиотеку </span><a href="http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html"><span style="font-family: Georgia; font-size: small;">IRremote</span></a><span style="color: black;"></span><span style="font-size: small;"><span style="font-family: Georgia;">. </span></span><span style="font-size: small;"><span style="font-family: Georgia;"><span style="color: black;">Создать Sketch для Arduino </span></span></span><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">IR_code_to_232.pde</a><span style="font-size: small;"></span><br />
<span style="color: black; font-size: small;"></span><br />
<span style="color: black; font-family: Georgia; font-size: small;"></span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: #cc6633;">#include</span> <IRremote.h>
<span style="color: blue;">int</span> RECV_PIN = 2;
<span style="color: blue;">int</span> STATUS_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
<span style="color: blue;">void</span> setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); <span style="color: green;">// Start the receiver</span>
}
<span style="color: blue;">int</span> codeType = -1; <span style="color: green;">// The type of code</span>
<span style="color: blue;">void</span> loop() {
<span style="color: blue;">if</span> (irrecv.decode(&results)) {
codeType = results.decode_type;
<span style="color: blue;">if</span> (codeType != UNKNOWN) {
<span style="color: blue;">if</span> (results.value != REPEAT) {
Serial.println(results.value, HEX);
}
}
irrecv.resume();
}
}</pre></div><span style="font-size: small;"><span style="font-family: Georgia;"><span style="color: black;">и загрузить код в Arduino. Открыть терминал и, нажимая кнопки на пульте управления, записать код для каждой кнопки. Для ленивых как я. :) открываем командное окно</span></span></span><br />
<br />
<img src="http://farm8.staticflickr.com/7148/6608626321_82317c95ee.jpg" /><br />
<br />
<span style="font-family: Georgia;"><span style="color: black;"><span style="font-size: small;">Start > «cmd», перейти в рабочую директорию, туда же скопировать программу </span><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!"><span style="font-size: small;">RS232read.7z</span></a></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Georgia;"><span style="color: black;">> <b>RS232read.exe 7 115200 > rs232.txt.</b> </span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Georgia;"><span style="color: black;">Где 7 - номер COM порта, 115200 - скорость, rs232.txt файл куда сохраняются принимаемые данные. После этого открыть <span style="color: black;">rs232.txt</span> и скопировать коды в Sketch должно получиться вот так.</span></span></span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: #cc6633;">#define</span> button1 0xFF906F
<span style="color: #cc6633;">#define</span> button2 0xFFB847
<span style="color: #cc6633;">#define</span> button3 0xFFF807
<span style="color: #cc6633;">#define</span> button4 0xFFB04F
<span style="color: #cc6633;">#define</span> button5 0xFF9867
<span style="color: #cc6633;">#define</span> button6 0xFFD827
<span style="color: #cc6633;">#define</span> button7 0xFF8877
<span style="color: #cc6633;">#define</span> button8 0xFFA857
<span style="color: #cc6633;">#define</span> button9 0xFFE817</pre></div><span style="color: black; font-family: Georgia; font-size: small;">Теперь можно запрограммировать кнопку «1» на спуск камеры. </span><br />
<br />
<span style="font-size: small;"><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">IR_Shutter.pde</a></span><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: #cc6633;">#include</span> <IRremote.h>
<span style="color: #cc6633;">#define</span> button1 0xFF906F
<span style="color: #cc6633;">#define</span> button2 0xFFB847
<span style="color: #cc6633;">#define</span> button3 0xFFF807
<span style="color: #cc6633;">#define</span> button4 0xFFB04F
<span style="color: #cc6633;">#define</span> button5 0xFF9867
<span style="color: #cc6633;">#define</span> button6 0xFFD827
<span style="color: #cc6633;">#define</span> button7 0xFF8877
<span style="color: #cc6633;">#define</span> button8 0xFFA857
<span style="color: #cc6633;">#define</span> button9 0xFFE817
<span style="color: blue;">const</span> <span style="color: blue;">int</span> Shot = 11;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> Focus = 12;
<span style="color: blue;">int</span> RECV_PIN = 2;
<span style="color: blue;">int</span> STATUS_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
<span style="color: blue;">void</span> setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); <span style="color: green;">// Start the receiver</span>
pinMode(STATUS_PIN, OUTPUT);
pinMode(Shot, OUTPUT);
pinMode(Focus, OUTPUT);
}
<span style="color: blue;">int</span> codeType = -1; <span style="color: green;">// The type of code</span>
<span style="color: blue;">void</span> loop() {
digitalWrite(STATUS_PIN, LOW );
<span style="color: blue;">if</span> (irrecv.decode(&results)) {
codeType = results.decode_type;
<span style="color: blue;">if</span> (codeType != UNKNOWN) {
<span style="color: blue;">if</span> (results.value != REPEAT) {
<span style="color: blue;">if</span> (results.value == button1) {
digitalWrite(Focus, HIGH);
digitalWrite(Shot, HIGH);
delay(1000); <span style="color: green;">// waits for a second</span>
digitalWrite(Focus, LOW);
digitalWrite(Shot, LOW);
}
<span style="color: blue;">if</span> (results.value == button2) {
Serial.println(<span style="color: #006080;">"Button 2"</span>);
}
<span style="color: blue;">if</span> (results.value == button3) {
Serial.println(<span style="color: #006080;">"Button 3"</span>);
}
<span style="color: blue;">if</span> (results.value == button4) {
Serial.println(<span style="color: #006080;">"Button 4"</span>);
}
<span style="color: blue;">if</span> (results.value == button5) {
Serial.println(<span style="color: #006080;">"Button 5"</span>);
}
<span style="color: blue;">if</span> (results.value == button6) {
Serial.println(<span style="color: #006080;">"Button 6"</span>);
}
<span style="color: blue;">if</span> (results.value == button7) {
Serial.println(<span style="color: #006080;">"Button 7"</span>);
}
<span style="color: blue;">if</span> (results.value == button8) {
Serial.println(<span style="color: #006080;">"Button 8"</span>);
}
<span style="color: blue;">if</span> (results.value == button9) {
Serial.println(<span style="color: #006080;">"Shutter"</span>);
}
<span style="color: green;">//Serial.println(results.value, HEX);</span>
<span style="color: green;">//irrecv.resume(); // Receive the next value</span>
}
}
digitalWrite(STATUS_PIN, HIGH);
irrecv.resume();
}
}</pre></div><br />
<span style="color: black; font-family: Georgia; font-size: small;"><b><span style="color: #4bacc6;">Шаг второй</span></b> - <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms630827%28v=VS.85%29.aspx">Windows Image Acquisition (WIA).</a> </span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">Почему WIA? Потому что позволяет управлять камерой, не углубляясь в Nikon SKD или Canon SDK. Свободно распространяется Microsoft, управлять можно из VBScript. Чтобы лучше понять, что может WIA, запустите пару скриптов из командной строки. </span><span style="font-size: small;"><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">Camera_Properties.wsf</a></span><br />
<span style="font-family: Georgia; font-size: small;"></span><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; height: 143px; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100.38%;"><span style="color: green;">' before!!!! run cmd as Administrator and "cscript.exe //H:cscript" </span>
<job>
<reference <span style="color: blue;">object</span>=<span style="color: #006080;">"wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"DevMan"</span> progid=<span style="color: #006080;">"Wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"dlg"</span> progid=<span style="color: #006080;">"WIA.CommonDialog"</span> />
<script language=<span style="color: #006080;">"VBScript"</span>>
<span style="color: green;">' Copyright 2011 All Rights Reserved</span>
<span style="color: green;">' Use and distribution for non-commercial purposes permitted</span>
<span style="color: green;">' http://karu2003.blogspot.com/</span>
<span style="color: blue;">Option</span> Explicit
<span style="color: blue;">Dim</span> WiaDev <span style="color: green;">'As wia.Device</span>
<span style="color: blue;">Dim</span> WiaItm <span style="color: green;">'As wia.Item</span>
<span style="color: blue;">Dim</span> dev <span style="color: green;">'As Device</span>
<span style="color: blue;">Dim</span> i <span style="color: green;">'As Integer</span>
<span style="color: blue;">Dim</span> s <span style="color: green;">'As String</span>
<span style="color: blue;">Dim</span> p <span style="color: green;">'As Property</span>
<span style="color: blue;">Set</span> dev = dlg.ShowSelectDevice
<span style="color: blue;">For</span> <span style="color: blue;">Each</span> p <span style="color: blue;">In</span> dev.Properties
s = p.Name <span style="color: green;">'& "(" & p.PropertyID & ")"</span>
<span style="color: green;">'MsgBox s</span>
WScript.echo s
<span style="color: blue;">Next</span>
</script>
</job></pre><br />
</div><br />
<span style="font-family: Georgia; font-size: small;">получим список всех Properties (</span><a href="http://lingvopro.abbyyonline.com/en/Search/LingvoArticlesAndExtraInfo?text=properties&translation=%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0&srcLang=en&destLang=ru&dictionaries=Medical%20%28Ru-En%29&dictionaries=Physics%20%28Ru-En%29&author="><span style="color: black; font-family: Georgia; font-size: small;">свойства</span></a><span style="color: black; font-family: Georgia; font-size: small;">) камеры.</span><br />
<span style="color: black; font-family: Georgia; font-size: small;"><span style="font-size: small;"><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">Display_Detailed_Property.wsf</a></span> </span><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; height: 144px; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100.57%;"><span style="color: green;">' before!!!! run cmd as Administrator and "cscript.exe //H:cscript" </span>
<job>
<reference <span style="color: blue;">object</span>=<span style="color: #006080;">"wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"DevMan"</span> progid=<span style="color: #006080;">"Wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"dlg"</span> progid=<span style="color: #006080;">"WIA.CommonDialog"</span> />
<script language=<span style="color: #006080;">"VBScript"</span>>
<span style="color: green;">' Copyright 2011 All Rights Reserved</span>
<span style="color: green;">' Use and distribution for non-commercial purposes permitted</span>
<span style="color: green;">' http://karu2003.blogspot.com/</span>
<span style="color: blue;">Option</span> Explicit
<span style="color: blue;">Dim</span> WiaDev <span style="color: green;">'As wia.Device</span>
<span style="color: blue;">Dim</span> WiaItm <span style="color: green;">'As wia.Item</span>
<span style="color: blue;">Dim</span> dev <span style="color: green;">'As Device</span>
<span style="color: blue;">Dim</span> p <span style="color: green;">'As Property</span>
<span style="color: blue;">Dim</span> s <span style="color: green;">'As String</span>
<span style="color: blue;">Dim</span> i <span style="color: green;">'As Integer</span>
<span style="color: blue;">Set</span> dev = dlg.ShowSelectDevice
<span style="color: blue;">For</span> <span style="color: blue;">Each</span> p <span style="color: blue;">In</span> dev.Properties
s = p.Name & <span style="color: #006080;">"("</span> & p.PropertyID & <span style="color: #006080;">") = "</span>
<span style="color: blue;">If</span> p.IsVector <span style="color: blue;">Then</span>
s = s & <span style="color: #006080;">"[vector of data]"</span>
<span style="color: blue;">Else</span>
s = s & p.Value
<span style="color: blue;">If</span> p.SubType <> UnspecifiedSubType <span style="color: blue;">Then</span>
<span style="color: blue;">If</span> p.Value <> p.SubTypeDefault <span style="color: blue;">Then</span>
s = s & <span style="color: #006080;">"(Default = "</span> & p.SubTypeDefault & <span style="color: #006080;">")"</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> p.IsReadOnly <span style="color: blue;">then</span>
s= s & <span style="color: #006080;">" [READ ONLY]"</span>
<span style="color: blue;">else</span>
<span style="color: blue;">Select</span> <span style="color: blue;">Case</span> p.SubType
<span style="color: blue;">Case</span> FlagSubType
s = s & <span style="color: #006080;">" [ valid flags include:"</span>
<span style="color: blue;">For</span> i = 1 <span style="color: blue;">To</span> p.SubTypeValues.Count
s = s & p.SubTypeValues(i)
<span style="color: blue;">If</span> i <> p.SubTypeValues.Count <span style="color: blue;">Then</span>
s = s & <span style="color: #006080;">", "</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">Next</span>
s = s & <span style="color: #006080;">" ]"</span>
<span style="color: blue;">Case</span> ListSubType
s = s & <span style="color: #006080;">" [ valid values include:"</span>
<span style="color: blue;">For</span> i = 1 <span style="color: blue;">To</span> p.SubTypeValues.Count
s = s & p.SubTypeValues(i)
<span style="color: blue;">If</span> i <> p.SubTypeValues.Count <span style="color: blue;">Then</span>
s = s & <span style="color: #006080;">", "</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">Next</span>
s = s & <span style="color: #006080;">" ]"</span>
<span style="color: blue;">Case</span> RangeSubType
s = s & <span style="color: #006080;">" [ valid values in the range from "</span> & _
p.SubTypeMin & <span style="color: #006080;">" to "</span> & p.SubTypeMax & _
<span style="color: #006080;">" in increments of "</span> & p.SubTypeStep & <span style="color: #006080;">" ]"</span>
<span style="color: blue;">Case</span> <span style="color: blue;">Else</span> <span style="color: green;">'UnspecifiedSubType</span>
<span style="color: blue;">End</span> <span style="color: blue;">Select</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: green;">'MsgBox s</span>
WScript.echo s
<span style="color: blue;">Next</span>
</script>
</job>
</pre><br />
</div><br />
<span style="font-family: Georgia; font-size: small;">получим список всех Properties и все возможные value (</span><a href="http://lingvopro.abbyyonline.com/en/Search/GlossaryItemExtraInfo?text=value&translation=%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5&srcLang=en&destLang=ru"><span style="color: black; font-family: Georgia; font-size: small;">значение</span></a><span style="color: black; font-family: Georgia; font-size: small;">). </span><span style="color: black; font-family: Georgia; font-size: small;">Обратите внимание на два свойства "F Number" - диафрагма и "Exposure Time" — выдержка, значения этих свойств отличаются от привычных фотографу. Чтобы установить выдержку в 1 секунду нужно отправить в камеру значение 10000, для диафрагмы F8 нужно отправить значение 800. Диафрагму нужно умножить на 100. С выдержкой искомое значение получается несколько сложнее. Чтобы установить выдержку 1/160 нужно 10000/160 и отбросить дробную часть. Получим 62. </span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; height: 101px; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; height: 810px; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100.16%;">(1,<span style="color: #006080;">"6400"</span>);
(2,<span style="color: #006080;">"4000"</span>);
(3,<span style="color: #006080;">"3200"</span>);
(4,<span style="color: #006080;">"2500"</span>);
(5,<span style="color: #006080;">"2000"</span>);
(6,<span style="color: #006080;">"1600"</span>);
(8,<span style="color: #006080;">"1250"</span>);
(10,<span style="color: #006080;">"1000"</span>);
(12,<span style="color: #006080;">"800"</span>);
(13,<span style="color: #006080;">"750"</span>);
(15,<span style="color: #006080;">"640"</span>);
(20,<span style="color: #006080;">"500"</span>);
(25,<span style="color: #006080;">"400"</span>);
(28,<span style="color: #006080;">"350"</span>);
(31,<span style="color: #006080;">"320"</span>);
(40,<span style="color: #006080;">"250"</span>);
(50,<span style="color: #006080;">"200"</span>);
(55,<span style="color: #006080;">"180"</span>);
(62,<span style="color: #006080;">"160"</span>);
(80,<span style="color: #006080;">"125"</span>);
(100,<span style="color: #006080;">"100"</span>);
(111,<span style="color: #006080;">"90"</span>);
(125,<span style="color: #006080;">"80"</span>);
(166,<span style="color: #006080;">"60"</span>);
(200,<span style="color: #006080;">"50"</span>);
(222,<span style="color: #006080;">"45"</span>);
(250,<span style="color: #006080;">"40"</span>);
(333,<span style="color: #006080;">"30"</span>);
(400,<span style="color: #006080;">"25"</span>);
(500,<span style="color: #006080;">"20"</span>);
(666,<span style="color: #006080;">"15"</span>);
(769,<span style="color: #006080;">"13"</span>);
(1000,<span style="color: #006080;">"10"</span>);
(1250,<span style="color: #006080;">"8"</span>);
(1666,<span style="color: #006080;">"6"</span>);
(2000,<span style="color: #006080;">"5"</span>);
(2500,<span style="color: #006080;">"4"</span>);
(3333,<span style="color: #006080;">"3"</span>);
(4000,<span style="color: #006080;">"2.5"</span>);
(5000,<span style="color: #006080;">"2"</span>);
(6250,<span style="color: #006080;">"1.6"</span>);
(6666,<span style="color: #006080;">"1.5"</span>);
(7692,<span style="color: #006080;">"1.3"</span>);
(10000,<span style="color: #006080;">"1\""</span>);
(13000,<span style="color: #006080;">"1.3\""</span>);
(15000,<span style="color: #006080;">"1.5\""</span>);
(16000,<span style="color: #006080;">"1.6\""</span>);
(20000,<span style="color: #006080;">"2\""</span>);
(25000,<span style="color: #006080;">"2.5\""</span>);
(30000,<span style="color: #006080;">"3\""</span>);
(40000,<span style="color: #006080;">"4\""</span>);
(50000,<span style="color: #006080;">"5\""</span>);
(60000,<span style="color: #006080;">"6\""</span>);
(80000,<span style="color: #006080;">"8\""</span>);
(100000,<span style="color: #006080;">"10\""</span>);
(130000,<span style="color: #006080;">"13\""</span>);
(150000,<span style="color: #006080;">"15\""</span>);
(200000,<span style="color: #006080;">"20\""</span>);
(250000,<span style="color: #006080;">"25\""</span>);
(300000,<span style="color: #006080;">"30\""</span>);</pre></div><span style="color: black; font-family: Georgia;"><span style="font-size: small;">Для примера из командной строки запустите скрипт </span><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!"><span style="font-size: small;">160f8.wsf</span></a></span><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; height: 148px; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100.19%;"><span style="color: green;">' before!!!! run cmd as Administrator and "cscript.exe //H:cscript" </span>
<job>
<reference <span style="color: blue;">object</span>=<span style="color: #006080;">"wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"DevMan"</span> progid=<span style="color: #006080;">"Wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"dlg"</span> progid=<span style="color: #006080;">"WIA.CommonDialog"</span> />
<script language=<span style="color: #006080;">"VBScript"</span>>
<span style="color: green;">' Copyright 2011 All Rights Reserved</span>
<span style="color: green;">' Use and distribution for non-commercial purposes permitted</span>
<span style="color: green;">' http://karu2003.blogspot.com/</span>
<span style="color: blue;">Option</span> Explicit
<span style="color: blue;">Dim</span> WiaDev <span style="color: green;">'As wia.Device</span>
<span style="color: blue;">Set</span> WiaDev = dlg.ShowSelectDevice
WiaDev.properties(<span style="color: #006080;">"Exposure Time"</span>).value = 62
WiaDev.properties(<span style="color: #006080;">"F Number"</span>).value = 800
</script>
</job></pre><br />
</div><br />
<span style="font-size: small;">и камера поменяет экспозицию на 1/160 F8. Очень важный момент: количество свойств и их значения могут меняться от камеры к камере и они могут быть только для чтения. Так что, перед тем, как изменять какие-либо свойства, убедитесь, что они доступны для записи.</span> <br />
<br />
<span style="color: #4bacc6; font-family: Georgia; font-size: small;"><b>Шаг три</b> — Arduino > WIA > Camera.</span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">Первым делом организуем срабатывание затвора по пути Arduino > PC > Camera. </span><span style="color: black; font-family: Georgia; font-size: small;">Для этого загрузим Sketch IR_Shutter.pde где на код кнопки «1» камера срабатывать на прямую от Arduino, а на код кнопки «9» Arduino будет отсылать в компьютер «Shutter». </span><span style="color: black; font-family: Georgia; font-size: small;">Со стороны компьютера из командной строки запустим скрипт <a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">Shutter.wsf</a><span style="font-size: small;"></span></span><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: green;">' before!!!! run cmd as Administrator and "cscript.exe //H:cscript" </span>
<job>
<reference <span style="color: blue;">object</span>=<span style="color: #006080;">"wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"DevMan"</span> progid=<span style="color: #006080;">"Wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"dlg"</span> progid=<span style="color: #006080;">"WIA.CommonDialog"</span> />
<script language=<span style="color: #006080;">"VBScript"</span>>
<span style="color: green;">' Copyright 2011 All Rights Reserved</span>
<span style="color: green;">' Use and distribution for non-commercial purposes permitted</span>
<span style="color: green;">' http://karu2003.blogspot.com/</span>
<span style="color: blue;">Option</span> Explicit
<span style="color: blue;">Dim</span> WiaDev <span style="color: green;">'As wia.Device</span>
<span style="color: blue;">Const</span> ForReading = 1
<span style="color: blue;">dim</span> fso
<span style="color: blue;">dim</span> com
<span style="color: blue;">dim</span> s
<span style="color: blue;">Dim</span> strPortName<span style="color: green;">' As String</span>
strPortName = GetComPort
<span style="color: blue;">Set</span> fso = CreateObject(<span style="color: #006080;">"Scripting.FileSystemObject"</span>)
<span style="color: blue;">Set</span> com = fso.OpenTextFile(strPortName & <span style="color: #006080;">":115200,N,8,1"</span>, ForReading)
<span style="color: blue;">Set</span> WiaDev = dlg.ShowSelectDevice
WScript.echo <span style="color: #006080;">"Shutter Camera Control with Arduino Script 1.0 "</span>
WScript.echo <span style="color: #006080;">"Copyright 2011 All Rights Reserved"</span>
WScript.echo <span style="color: #006080;">"Use and distribution for non-commercial purposes permitted"</span>
WScript.echo <span style="color: #006080;">"http://karu2003.blogspot.com/"</span>
Wscript.echo <span style="color: #006080;">"Controlling "</span> & WiaDev.Properties(<span style="color: #006080;">"Description"</span>).Value
<span style="color: green;">' set raw</span>
WiaDev.Properties(<span style="color: #006080;">"Format"</span>).Value = <span style="color: #006080;">"{B96B3CA9-0728-11D3-9D7B-0000F81EF32E}"</span>
Wscript.echo <span style="color: #006080;">"Shooting in RAW Format"</span>
<span style="color: green;">' set jpg</span>
<span style="color: green;">'WiaDev.Properties("Format").Value = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"</span>
<span style="color: green;">'Wscript.echo "Shooting in JPG Format"</span>
WScript.echo <span style="color: #006080;">"Start to read data from "</span> & strPortName
WScript.echo <span style="color: #006080;">"Press Ctrl-Break to exit"</span>
<span style="color: blue;">Do</span> <span style="color: blue;">While</span> 1
<span style="color: blue;">Do</span> <span style="color: blue;">While</span> com.AtEndOfStream <> <span style="color: blue;">True</span>
WScript.Sleep(100)
s = com.ReadLine
<span style="color: green;">'WScript.echo (s)</span>
<span style="color: blue;">If</span> s = <span style="color: #006080;">"Shutter"</span> <span style="color: blue;">Then</span>
WiaDev.ExecuteCommand (wiaCommandTakePicture)
WScript.echo (s)
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">Loop</span>
<span style="color: blue;">Loop</span>
com.Close()
<span style="color: green;">'************************************************************************</span>
<span style="color: blue;">Function</span> GetComPort()
<span style="color: blue;">Dim</span> strComputer
<span style="color: blue;">Dim</span> objWMIService
<span style="color: blue;">Dim</span> colItems
<span style="color: blue;">Dim</span> objItem
<span style="color: blue;">Dim</span> objRgx <span style="color: green;">'As RegExp</span>
<span style="color: blue;">Dim</span> objRegMatches <span style="color: green;">'As MatchCollection</span>
<span style="color: blue;">Dim</span> strDevName
GetComPort = <span style="color: #006080;">""</span>
strComputer = <span style="color: #006080;">"."</span>
<span style="color: blue;">Set</span> objWMIService = GetObject( _
<span style="color: #006080;">"winmgmts:\\"</span> & strComputer & <span style="color: #006080;">"\root\cimv2"</span>)
<span style="color: blue;">Set</span> colItems = objWMIService.ExecQuery _
(<span style="color: #006080;">"Select * from Win32_PnPEntity"</span>)
<span style="color: blue;">For</span> <span style="color: blue;">Each</span> objItem <span style="color: blue;">In</span> colItems
<span style="color: blue;">If</span> (<span style="color: #006080;">"FTSER2K"</span> = objItem.Service) <span style="color: blue;">And</span> (<span style="color: #006080;">"FTDI"</span> = objItem.Manufacturer) <span style="color: blue;">Then</span>
<span style="color: blue;">set</span> objRgx = CreateObject(<span style="color: #006080;">"vbScript.RegExp"</span>)
strDevName = objItem.Name
objRgx.Pattern = <span style="color: #006080;">"COM[0-9]+"</span>
<span style="color: blue;">Set</span> objRegMatches = objRgx.Execute(strDevName)
<span style="color: blue;">If</span> objRegMatches.Count = 1 <span style="color: blue;">Then</span>
GetComPort = objRegMatches.Item(0).Value
<span style="color: blue;">Else</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">Next</span>
<span style="color: blue;">End</span> <span style="color: blue;">Function</span>
<span style="color: green;">' ********************************************************************</span>
</script>
</job></pre></div><span style="color: black; font-family: Georgia; font-size: small;">Теперь у нас есть две возможности электорального спуска затвора и все с одного пульта управления. Немного изменив код, можно добавить сохранение снятого кадра прямо на компьютер. Но об этом в другой раз. Информацию, как это сделать, можно найти на <a href="http://www.diyphotobits.com/">DIYPhotoBits.com</a>. Теперь осталось изменить пару строчек исходного кода в скрипте и Arduino и получится универсальный командный пульт. Но перед этим стоит разобраться, какие свойства камеры можно изменять. Для своих фото экспериментов - макро, HDRi, предметки мне хватает шести основных:</span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">("White Balance").value</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">("F Number").value</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">("Exposure Time").value</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">("Exposure Mode").value</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">("Exposure Index").value</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">("Exposure Compensation").value</span><br />
<br />
<a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!"><span style="font-size: small;">IR_WIAComander.wsf</span></a><br />
<br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><br />
<pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: green;">' before!!!! run cmd as Administrator and "cscript.exe //H:cscript" </span>
<job>
<reference <span style="color: blue;">object</span>=<span style="color: #006080;">"wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"DevMan"</span> progid=<span style="color: #006080;">"Wia.DeviceManager"</span> />
<<span style="color: blue;">object</span> id=<span style="color: #006080;">"dlg"</span> progid=<span style="color: #006080;">"WIA.CommonDialog"</span> />
<script language=<span style="color: #006080;">"VBScript"</span>>
<span style="color: green;">' Copyright 2011 All Rights Reserved</span>
<span style="color: green;">' Use and distribution for non-commercial purposes permitted</span>
<span style="color: green;">' http://karu2003.blogspot.com/</span>
<span style="color: blue;">Option</span> Explicit
<span style="color: blue;">Dim</span> WiaDev <span style="color: green;">'As wia.Device</span>
<span style="color: blue;">Const</span> ForReading = 1
<span style="color: blue;">dim</span> fso
<span style="color: blue;">dim</span> com
<span style="color: blue;">dim</span> s
<span style="color: blue;">Dim</span> strPortName<span style="color: green;">' As String</span>
<span style="color: blue;">Dim</span> k
strPortName = GetComPort
<span style="color: blue;">Set</span> fso = CreateObject(<span style="color: #006080;">"Scripting.FileSystemObject"</span>)
<span style="color: blue;">Set</span> com = fso.OpenTextFile(strPortName & <span style="color: #006080;">":115200,N,8,1"</span>, ForReading)
<span style="color: blue;">Set</span> WiaDev = dlg.ShowSelectDevice
WScript.echo <span style="color: #006080;">"Shutter Camera Control with Arduino Script 1.0 "</span>
WScript.echo <span style="color: #006080;">"Copyright 2011 All Rights Reserved"</span>
WScript.echo <span style="color: #006080;">"Use and distribution for non-commercial purposes permitted"</span>
WScript.echo <span style="color: #006080;">"http://karu2003.blogspot.com/"</span>
Wscript.echo <span style="color: #006080;">"Controlling "</span> & WiaDev.Properties(<span style="color: #006080;">"Description"</span>).Value
<span style="color: green;">' set raw</span>
WiaDev.Properties(<span style="color: #006080;">"Format"</span>).Value = <span style="color: #006080;">"{B96B3CA9-0728-11D3-9D7B-0000F81EF32E}"</span>
Wscript.echo <span style="color: #006080;">"Shooting in RAW Format"</span>
<span style="color: green;">' set jpg</span>
<span style="color: green;">'WiaDev.Properties("Format").Value = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"</span>
<span style="color: green;">'Wscript.echo "Shooting in JPG Format"</span>
WScript.echo <span style="color: #006080;">"Start to read data from "</span> & strPortName
WScript.echo <span style="color: #006080;">"Press Ctrl-Break to exit"</span>
<span style="color: blue;">Do</span> <span style="color: blue;">While</span> 1
<span style="color: blue;">Do</span> <span style="color: blue;">While</span> com.AtEndOfStream <> <span style="color: blue;">True</span>
s = com.ReadLine
k = Len(s)
<span style="color: green;">'WScript.echo (s)</span>
<span style="color: blue;">If</span> s = <span style="color: #006080;">"Shutter"</span> <span style="color: blue;">Then</span>
WiaDev.ExecuteCommand (wiaCommandTakePicture)
WScript.echo (s)
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"WB"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"White Balance"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"FN"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"F Number"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"ET"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"Exposure Time"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"EM"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"Exposure Mode"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"EI"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"Exposure Index"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">If</span> Left(s,2) = <span style="color: #006080;">"EC"</span> <span style="color: blue;">Then</span>
WiaDev.properties(<span style="color: #006080;">"Exposure Compensation"</span>).value = <span style="color: blue;">CDbl</span>(Mid(s,3,k-2))
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
WScript.Sleep(100)
<span style="color: blue;">Loop</span>
<span style="color: blue;">Loop</span>
com.Close()
<span style="color: green;">'************************************************************************</span>
<span style="color: blue;">Function</span> GetComPort()
<span style="color: blue;">Dim</span> strComputer
<span style="color: blue;">Dim</span> objWMIService
<span style="color: blue;">Dim</span> colItems
<span style="color: blue;">Dim</span> objItem
<span style="color: blue;">Dim</span> objRgx <span style="color: green;">'As RegExp</span>
<span style="color: blue;">Dim</span> objRegMatches <span style="color: green;">'As MatchCollection</span>
<span style="color: blue;">Dim</span> strDevName
GetComPort = <span style="color: #006080;">""</span>
strComputer = <span style="color: #006080;">"."</span>
<span style="color: blue;">Set</span> objWMIService = GetObject( _
<span style="color: #006080;">"winmgmts:\\"</span> & strComputer & <span style="color: #006080;">"\root\cimv2"</span>)
<span style="color: blue;">Set</span> colItems = objWMIService.ExecQuery _
(<span style="color: #006080;">"Select * from Win32_PnPEntity"</span>)
<span style="color: blue;">For</span> <span style="color: blue;">Each</span> objItem <span style="color: blue;">In</span> colItems
<span style="color: blue;">If</span> (<span style="color: #006080;">"FTSER2K"</span> = objItem.Service) <span style="color: blue;">And</span> (<span style="color: #006080;">"FTDI"</span> = objItem.Manufacturer) <span style="color: blue;">Then</span>
<span style="color: blue;">set</span> objRgx = CreateObject(<span style="color: #006080;">"vbScript.RegExp"</span>)
strDevName = objItem.Name
objRgx.Pattern = <span style="color: #006080;">"COM[0-9]+"</span>
<span style="color: blue;">Set</span> objRegMatches = objRgx.Execute(strDevName)
<span style="color: blue;">If</span> objRegMatches.Count = 1 <span style="color: blue;">Then</span>
GetComPort = objRegMatches.Item(0).Value
<span style="color: blue;">Else</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">End</span> <span style="color: blue;">If</span>
<span style="color: blue;">Next</span>
<span style="color: blue;">End</span> <span style="color: blue;">Function</span>
<span style="color: green;">' ********************************************************************</span>
</script>
</job></pre></div><span style="font-size: small;"><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">IR_WIAComander.pde</a></span><br />
<div id="codeSnippetWrapper" style="background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"><pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"><span style="color: #cc6633;">#include</span> <IRremote.h>
<span style="color: green;">//WIA Format</span>
<span style="color: green;">//("White Balance").value =</span>
<span style="color: green;">//("F Number").value = </span>
<span style="color: green;">//("Exposure Time").value =</span>
<span style="color: green;">//("Exposure Mode").value =</span>
<span style="color: green;">//("Exposure Index").value =</span>
<span style="color: green;">//("Exposure Compensation").value =</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* WB = <span style="color: #006080;">"WB"</span>; <span style="color: green;">//"White Balance";</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* FN = <span style="color: #006080;">"FN"</span>; <span style="color: green;">//"F Number";</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* ET = <span style="color: #006080;">"ET"</span>; <span style="color: green;">//"Exposure Time";</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* EM = <span style="color: #006080;">"EM"</span>; <span style="color: green;">//"Exposure Mode";</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* EI = <span style="color: #006080;">"EI"</span>; <span style="color: green;">//"Exposure Index";</span>
<span style="color: blue;">const</span> <span style="color: blue;">char</span>* EC = <span style="color: #006080;">"EC"</span>; <span style="color: green;">//"Exposure Compensation";</span>
<span style="color: #cc6633;">#define</span> button1 0xFF906F
<span style="color: #cc6633;">#define</span> button2 0xFFB847
<span style="color: #cc6633;">#define</span> button3 0xFFF807
<span style="color: #cc6633;">#define</span> button4 0xFFB04F
<span style="color: #cc6633;">#define</span> button5 0xFF9867
<span style="color: #cc6633;">#define</span> button6 0xFFD827
<span style="color: #cc6633;">#define</span> button7 0xFF8877
<span style="color: #cc6633;">#define</span> button8 0xFFA857
<span style="color: #cc6633;">#define</span> button9 0xFFE817
<span style="color: blue;">const</span> <span style="color: blue;">int</span> Shot = 11;
<span style="color: blue;">const</span> <span style="color: blue;">int</span> Focus = 12;
<span style="color: blue;">int</span> RECV_PIN = 2;
<span style="color: blue;">int</span> STATUS_PIN = 13;
String sProperties;
IRrecv irrecv(RECV_PIN);
decode_results results;
<span style="color: blue;">void</span> setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); <span style="color: green;">// Start the receiver</span>
pinMode(STATUS_PIN, OUTPUT);
pinMode(Shot, OUTPUT);
pinMode(Focus, OUTPUT);
}
<span style="color: blue;">int</span> codeType = -1; <span style="color: green;">// The type of code</span>
<span style="color: blue;">void</span> loop() {
digitalWrite(STATUS_PIN, LOW );
<span style="color: blue;">if</span> (irrecv.decode(&results)) {
codeType = results.decode_type;
<span style="color: blue;">if</span> (codeType != UNKNOWN) {
<span style="color: blue;">if</span> (results.value != REPEAT) {
<span style="color: blue;">if</span> (results.value == button1) {
digitalWrite(Focus, HIGH);
digitalWrite(Shot, HIGH);
delay(1000); <span style="color: green;">// waits for a second</span>
digitalWrite(Focus, LOW);
digitalWrite(Shot, LOW);
}
<span style="color: blue;">if</span> (results.value == button2) {
sProperties = FN;
sProperties = sProperties + <span style="color: #006080;">"800"</span>;
Serial.println(sProperties);
delay(100);
sProperties = ET;
sProperties = sProperties + <span style="color: #006080;">"62"</span>;
Serial.println(sProperties);
}
<span style="color: blue;">if</span> (results.value == button3) {
sProperties = FN;
sProperties = sProperties + <span style="color: #006080;">"400"</span>;
Serial.println(sProperties);
delay(100);
sProperties = ET;
sProperties = sProperties + <span style="color: #006080;">"166"</span>;
Serial.println(sProperties);
}
<span style="color: blue;">if</span> (results.value == button4) {
Serial.println(<span style="color: #006080;">"Button 4"</span>);
}
<span style="color: blue;">if</span> (results.value == button5) {
Serial.println(<span style="color: #006080;">"Button 5"</span>);
}
<span style="color: blue;">if</span> (results.value == button6) {
Serial.println(<span style="color: #006080;">"Button 6"</span>);
}
<span style="color: blue;">if</span> (results.value == button7) {
Serial.println(<span style="color: #006080;">"Button 7"</span>);
}
<span style="color: blue;">if</span> (results.value == button8) {
Serial.println(<span style="color: #006080;">"Button 8"</span>);
}
<span style="color: blue;">if</span> (results.value == button9) {
Serial.println(<span style="color: #006080;">"Shutter"</span>);
}
<span style="color: green;">//Serial.println(results.value, HEX);</span>
<span style="color: green;">//irrecv.resume(); // Receive the next value</span>
}
}
digitalWrite(STATUS_PIN, HIGH);
irrecv.resume();
}
}</pre></div><span style="color: black; font-family: Georgia; font-size: small;">Вот и все, что нужно. Дальше каждый расширяет код под Arduino под свои потребности. </span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">Чтобы не работать постоянно, из командной строки написал программу <span style="font-size: small;"><a href="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB%21163&parid=81E5F7478B50E8EB%21127&authkey" title="https://skydrive.live.com/redir.aspx?cid=81e5f7478b50e8eb&resid=81E5F7478B50E8EB!163&parid=81E5F7478B50E8EB!127&authkey=!">IR_WIAComander.7z</a> . </span></span><span style="color: black; font-family: Georgia; font-size: small;">По логике работы программа ничем не отличается от скрипта , добавлено несколько проверок на подключение камеры и Arduino.</span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">Но, чтобы программа работала, в системе нужно зарегистрировать библиотеку работы с COM Port. </span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">1. загрузить </span><a href="http://www.yes-tele.com/mscomm.html"><span style="font-size: small;">MSCOMM32.ocx</span></a><span style="color: black; font-family: Georgia;"></span><br />
<span style="color: black; font-family: Georgia; font-size: small;">2. copy MSCOMM32.ocx в C:\Windows\System32\</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">3. открыть cmd как администратор </span><br />
<span style="color: black; font-family: Georgia; font-size: small;">4. > <b>regsvr32 </b>C:\Windows\System32\MSCOMM32.ocx </span><br />
<span style="color: black; font-family: Georgia; font-size: small;">5. загрузить <b><a href="http://www.autoitscript.com/forum/index.php?app=core&module=attach&section=attach&attach_id=3561">vbctrls.zip</a></b> </span><br />
<span style="color: black; font-family: Georgia; font-size: small;">6. добавить лицензию в регистер.</span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">Надеюсь, что описал не очень запутано.</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">Удачи в эксперементах.</span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: small;">© Andrew Buckin.</span><br />
<br />
<img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><span style="font-family: Georgia;">Shutterstock</span></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><span style="font-family: Georgia;">Dreamstime</span></a> <br />
<br />
<span style="font-family: Georgia; font-size: small;"><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628654559461/" target="_blank">Fotostream http://www.flickr.com</a></span><br />
<br />
<span style="color: black; font-family: Georgia; font-size: x-small;">TODO:</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">Multiple FTDI Chip.</span><br />
<span style="color: black; font-family: Georgia; font-size: small;">Detect Arduino Bootloader</span><br />
<span style="color: black;"><span style="font-family: Georgia; font-size: small;">Send Properties to Arduino.</span> </span></div>“geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-65387914447151142132011-12-10T06:53:00.001-08:002011-12-10T06:53:23.205-08:00Light Small Striplight.<p><img src="http://farm8.staticflickr.com/7169/6486504841_a5f9fab90c.jpg" /></p> <p><font size="4" face="Georgia">История этой фотографии.</font> </p> <p><font size="3" face="Georgia">Под конкретную задачу - конкретный свет. Как-то раз перед новым годом попросили снять новогоднюю открытку. Отправился я в подвал за новогодними шарами и серпантином. Вернулся ни с чем. Ничего не вдохновило. Дело новогоднее, одна надежда на чудо и Деда Мороза. Блуждая в потемках моей памяти, вспомнил очень забавную новогоднюю историю с моими друзьями Олей и Олегом. Дело было в далекие перестроечные времена. Под новый год, разумеется. Друзья жили недалеко от базара Троещина. Тогда все правдой и неправдой пытались что-то купить и продать. У некоторых с этим все получается, но только не у моих друзей. Купили они пару ящиков Киевского шампанского, чтоб перед новым годом продать с наваром. Блага надежда, если бы знать, что именно в этом году это шампанское будет на каждом углу и продавать его будут все. Видно, на заводе народу зарплату выплатили шампанским. В те времена это было принято. Для примера, за мою работу со мной расплачивались гречкой и сахаром в мешках. Уж не помню, сколько бутылок шампанского им удалось продать, если удалось, так как под новый год цены упали ниже некуда. Дешевле было купить ещё. Зато помню хорошо -  шампанского мы выпили много. :) После таких воспоминаний решение было очевидно: сминать буду бокал шампанского. Бокал - на стекло, шампанское - в бокал, стрип - сбоку, снуп - в бокал, немного света на задний план. Но вот незадача, у меня стрипы большие и не обеспечивают желаемого рисунка. За время проб бутылка шампанского была выпита, а решения так и не было. А всего-то хотелось два узких стрипа. Посмотрев еще раз мои световые запасы, обнаружил две старые накамерные вспышки. Осталось сделать к ним стрипы из того, что было. Когда идея уже родилась, то на реализацию нужно всего 5 минут, главное, чтоб всё было под рукой. </font></p> <p><font size="3" face="Georgia">Для изготовления одного стрипа нужен один лист бумаги А3 (каркас, диффузор), алюминиевая фольга( рефлектирующая поверхность), клей ПВА, две скрепки, резинка, пара булавок и немного поролона. </font></p> <p><font size="3" face="Georgia"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP05lWtbCgPDYA2H2zal8uV7iXb_qSutimEBi5dogyQnC9JdHSeVs0nfp2A1sg3ih9IfKbwSV2t9u4spE-MJSrdwJJRlkwrwXjQq573Qe6pMXhrDyw7yHYIoeHEXrCUk6Erfw9E02ygMKx/s1600-h/LR-3824%25255B3%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3824" border="0" alt="LR-3824" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNWumOCLW2MUJqAha6MH-8gp13l86J-8ow8Pc8GzM8SETpX5vM0WONlGaBUG-a5iI0qAaSqD7ChU38YyfZC0kSEbdCJuxz9iXvdZ25-sKlXIz0L9vr9oiwt1jtttxNvni3jJk8-X_M8YJT/?imgmax=800" width="244" height="164" /></a></font></p> <p><font size="3" face="Georgia">По короткой стороне листа, в середине листа, </font><font size="3" face="Georgia">симметрично отмечаем длину лампы и проводим две параллельные линии. Это будет область диффузора. От области диффузора в правую и левую сторону промазываем тонким слоем клея и наклеиваем алюминиевую фольгу. В местах сгиба тупой стороной ножа отмечаем линию сгиба. Оборачиваем получившийся лист вокруг головы вспышки и фиксируем скрепками. Открытый торец закрываем черным поролоном и фиксируем булавками. Все крепится к головке вспышки канцелярской резинкой. После всех приготовлений Шампанское заменяем яблочным соком, а пузырьки газа делаем, добавляя сахара в сок. </font></p> <p><font size="3" face="Georgia">Всё в картинках.</font> </p> <p><font size="3" face="Georgia"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7PN5HFF78g0d2FNLhpOFgtvNjGfrQg7VcBrlvUHKdfhiHWyqzIl32HJ49g8uuE1wO6gwaXJKEn8_jMw8Zb-EV23lVNk-86b777DrwEnNmVcY4U6PWg7xyfgXbbL4dnXadE_pOV_iE90F/s1600-h/LR-3770%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3770" border="0" alt="LR-3770" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb-H5jxGwYJiYkw3e5eGO86uzxwoPbhfioAzHREVCOaVnZ1OGVzz8fwizFRdcUZkejDBzn1mm4gyz2W3bS1n9lE7qPCFi9fsGKr8xk0vd8OPwDfSxtPrgh1vjSOvBFLhIdj3mJf7deBUED/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik2cFEzyYOjeaTZqLsNGex5HihC2uVzW2xQFyoWWPx-3w-I2WJQaNKft13yXOFrpmzvAjrQhDDIOH8DCGnScjlfHhDvBsLYzigVvbTzZJEqv6k22bsq90TdjGTd5m0XcO60ZuNmJ3aZELR/s1600-h/LR-3771%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3771" border="0" alt="LR-3771" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxQp4YDVkrwnGNn9qxFo9k63xTpu6v6Kze3Bxt_GvtrlbQKcTl7BpH5h31daNjRE9UYNkJm46br18wlqtd6Dca9pLEvU7n3IN7QFx1sm5BgseVo3phCEahWPg7kPmH_a56f4-tOI_8ABQ/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFnWbKMacehEIIvHKcn-MOtMjM2MoL2qMn-lLrM85thm818DzbSFSGQaUFywEt4tD1bgZlO1Eg04m6c_5vnrJBpfqmqyhkiB6hyRKFBmKTP9enkmq2K3AHGgb2THFV0NZb2lz7m_lBWUVE/s1600-h/LR-3772%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3772" border="0" alt="LR-3772" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinqhXX_HPEC0ULjMr3q8KP6CB9_606vqybDGsXpV3N72DU64Fz16_rosyj8x2r9Z0cjXpBXhvRQn6_WhUizteBLuuyLl6gardUW6i1BGzfECxw_m8fpgetrzlhpgldnzhVw3Dwfp5l1R0X/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggNjlD1fMtBPa9Fq43rcELadDmiIA6UY00RTZeWYVGdgvlhzLrHMA8hWjCmQ-i6Zd9ojEhIxI7bo8ZwtTPD60K9gNyE9LrKx-1wSezPZzO46dHlBe-MT5qHEoCjtvUosqoT8pffVCaJp_Y/s1600-h/LR-3776%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3776" border="0" alt="LR-3776" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL4EZevo7TaqPP5S_uqk4asMrvZqKtk9nZkRiWLtQ2B_FFT_nEc9erO8C8nIDXWku7HL7sAzy6I5vL8Xtc3eN5pODVs6W27wBITqVk_J3tq0s4DFz2V20DBY9I_DGa5wWbftuXAz-2tHUP/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUow9vcYxcZwitmYldaJG7rzPfIhVASSPEZidiSBaANrL_RuLVYTAgcgEhl1F2m3GTcXccR02oZjL72WAsNNjMeqpNDThCpc4VUr7zt-vNCdGkFjwNyhYeVCp3nEyt40UdKbTwpKIg9D4J/s1600-h/LR-3780%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3780" border="0" alt="LR-3780" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYC1Srr9wsayz8t-zIeMa3MtdNKuvIffkE1Oh-HRBtq6kY_1VFKE9b9KS90F8MjiT3jB__gIWSt_JTRUYngEB3QxfUUEqd4ihlQm4W23PeacwexQT2E9aNAmH3oXjPRajyjmx2eSgpoMZ9/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI8dlino5woa0fWklm4fyUb2G5z3tqvBPAJQ_27hhO3ooz7R9w8p1Y2q6IoC_rPtWyQUPsOkNoz0PFYChbr461G-cUAGMXapC3Ln-OSQJNrh7Snzr1lz7Y9bQIfFHL0dCrH2h5n1Qa5WNW/s1600-h/LR-3782%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3782" border="0" alt="LR-3782" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTA6BSQ4v-m9RRRwPKEjnCxUmdSRXHrDRB8fr2j-4bcr4D9P-yM56KafF3eT4gXzrftNDJdwgF9WuRReRYhRbegocEV2QPc7gYnBQGakbohtviBhBpZgy4RWm2W8RtxPPv7uKtbIhRI04n/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg3F4gBbznrD3amH06t35BzsE20KyC4yJveHIMECfmvxDeG9J3oXZCQMKxwypBDeG3ku3if_GhpR1vFBVsqL322Tf1hKscXyduV1c6sOMRuKhqRQS-CkWRFI_jQm7O3MMd9SYOJmmIdAK2/s1600-h/LR-3785%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3785" border="0" alt="LR-3785" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip41yEaQ_cJ1AGiEH2UeqoNrS9Q9d74Uwiz2m4YTvth-604c87VXeZh-4V38bVwF51sOEkxgup8B5nAbHPvR865p7zFH4wpFR-mCWZMgHlT4i1oB2wNcBdkxlUctZ4LWwYZGJf9vOhMyi8/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzw6NXg797coi8idy-07bTOsFNG_eCNSGmACn9rIomT0aJiEUqqrl7UHPY6gwk6az_DRmbAzOm57VPZLi8XzKMUHdC-CoY4pYnNYcRCalwdQIVSg6Qjp1_2tRAIb8fESp9_O5WPjtE1UBd/s1600-h/LR-3786%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3786" border="0" alt="LR-3786" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjgtuDbURaFa9mPIwLq51F5ZXFKc1asKLBwzwDa7huzbXZUf9jPxNjF1cwRE6rfoLB8gmSScCR9MiS6QQBIq1PVL9O50Navt1eTwzOwWfV40ywmHYlmUC_DXwZJ16v5kj5GgT8tFZD20U/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid1LRbk9-Ce6j23mKzdjC8AQEOdc0Cmk9vXIKylad2iOANQRWLOMf6gqoA9kGaGHzTkyO-gjZb8EOnKcqAEq9OHZ_a892m6X0smw94x1hLOb3YpyAUqQ2IZ78z03iDvSpk_OZ_2RKfipNb/s1600-h/LR-3789%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3789" border="0" alt="LR-3789" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8k7tN1B32v_5LsneRYY1RZVyaeVr3f2m5-tIe25jCqW0RbMe_U-P4bhue7Aeik0FtQ614_Pfs16H0sY4mzxAfBGiRsgBqh3XDoypr2ygvVJ1pre5NFdMJsT1PS_M1u2laPxd1vH7iHxoN/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYuh86OIiC6-nnD976A2itPS18OdLC_IBKvVw37zxeQZTEpspruItcYUo-TsZFRWfRqZFBd3y0_2cYdCDV-eXhtE80JCUbGRfPekoLZCm9sRarq1rRfSXqCuCESMVlqQmcC9dTTFDSJp4/s1600-h/LR-3791%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3791" border="0" alt="LR-3791" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDj2Ve8Nxw6r3VfZJw-8Uxy6N7rckOJk2IUxnTGMIvOsnixVX6xcvu678uKSVv6E3_Wa2aHl1wuLOfJkU8XuFBt206wTd0XFmnMBpqSXNU1GdgkDFDfaEI8G0KFarZqryBRZi6wz3ySXe8/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6z6Jze-lmObvD_mIjedsLnLy682Yd4bUy-naXGn4vZEBaIq5yyd_FguPWx8tRW7PVqdbhWSOhViVLD9VNAXrOTMl3P9YWASORBNZ-tcelejVpOdLa8qLbRUfAkfo8-CuUmWFX2iZZ4MzK/s1600-h/LR-3794%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3794" border="0" alt="LR-3794" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSt1L63BoLNTRsXLk0dx12Qb9lWZd8AF5xGbqclldtoY2K2t-V9h_cIvHpdMgt2LShut-uXPuvWOJC6eKYo32EDFKOZ-0dF6ujkWd0HukSY1xccOQEBvAMZ3Av8cFNH9i8g0w11Vy9tg1B/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg44tgxzClacQHmABn9HxTlmYJ9V3imI3_p5E0Kxoat71vGggJoQW6PlnAb8bIhC-GD0F8ZFTabV2DMAkhPLSQDtVTAJWEpYxNhjm_aj0RsHw0sEfapjEbhF5X3crADAPXWwWNhzSQewnIW/s1600-h/LR-3798%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3798" border="0" alt="LR-3798" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuWRmmC3twYvtrsru_boJZ5Jj0J0a_EcGKGAYtRNSfh6WNkFogPbgsDEyELacc4UfCROJqkh5gey0vUyF6bTxc5gVZLPi4FJupYIlQzsrhELQbGBRr2GPy7i-uhcbc5RXesY2p-qCmpjj6/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4SS6MxbL5sC5zlcY7p82qF5x5L2E-uOpwu1lp174nlhTBJVrC8AfDM9-a51tZmSrmJOZGLM3u4ovvlSMWToPzIxO323vcWiDSShm8JguBN8Y6Mcltk3oHCj9OWqc6ue2e5Na__cVjjZax/s1600-h/LR-3800%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3800" border="0" alt="LR-3800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi31_bNHJT5YdjxSgHvmqYTzSddHo0PP7M1NfbHtu3tNER-s5dBJhryZhE2KoVOoA81H2T0FJxf2aL29cCLVgi7B6n4IN08xlbwN_aNxQuFYZrkKqsJ6_IOgjq0h2i4ahUoQKqDh7Vn11sU/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ6jbPJnjAYHznFQmtOob4DHP2YzBTBhM-CQcJrTy5dPK-SxQbtMIQU4O3ksig-dPnefFrGcLusetNvNoXsvgjksSOEzxyF1JJixfk-1QdUzbiQbUAvu8EJO-X5AYG-bS9wzgIC9441jCc/s1600-h/LR-3804%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3804" border="0" alt="LR-3804" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxuDvJyTHTwPozeSZX-bAHkokDDY-gcwGqyxLihcOJq75y1DsowTykyKV7kwaCegVodu63EO2WaeL4LGDjMRz4myTwH6K5-jrmNOxuUZ1EbdDLBB_uZGVzCJ2-hoLRymN4Iq7x4yw0XkPD/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ftxsGIHdIzOnsBunUmxnKxqPFr71NduN1GTpM7TYRu8ivku-PLJXzu8tS507FGnIUSQbR4fr3zp3YiIzyg3ds8W8pu4Lhz7Wy9eGXEbbTALhyRrYZ6QUoS0oT0PMgeeq5biPfi3NVVwL/s1600-h/LR-3806%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3806" border="0" alt="LR-3806" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb2vqVTh4Dxbq4ZLKt4KAIzP9KtQLKWfLQUhE4vrIjmSQz72227Ss-GbQ-KCkKwxmkTAlCUo25hkjIwe-6BOjXrZIMSgAEbpEo-jB8rUwfKbUzlURNwKV_92G7MuUmDbZ3csUyW_HnOfb5/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyFbqngjYYtlw4pwhHZ4M7df9NA7q0a_LJ4iJFgv5NTtJ6hZAiG5pf78rydwQIDXnCLieWUdRPsjdPPcSj2KGyUj5hz2EP-D-WhLu3dkk_neMLoTcbGyZail39FcqQhY-KfuZZM_kvkwuq/s1600-h/LR-3807%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3807" border="0" alt="LR-3807" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6fPRXdjDiTOjgll8BURB73qmRn6vavdwr_TMA7EDZtO_Wd_1JE7JVEVUA2niCRwqMoaPOE_pMldz4k8gbB4WohmvZYQ90HFuem1d2SmMML_16TfiXbQd04bwhUQ0cKtuAJCR0I5aSSjP0/?imgmax=800" width="244" height="164" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgom9y8ErI5qC1-uRUmfzdLv14VfmS_hRWoCo-rZedKh_G8mtEhOi4S15qCpLWwpmRybDcGVObPo5vmIXvkFPrji9VfTqNTJpVhE9-I9f0Zjq6UYS5bc1ziTapeWlHGgTZ6aGLEMmzKpGMK/s1600-h/LR-3816%25255B6%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3816" border="0" alt="LR-3816" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHrJy25dIr6dM0S0LAG2jKsomXi_OymkQm5t59s1mnPpHJ19k220pvqA9R4WfSPyouOm-dk-KOvTFE1CV70c3Wl9n4-iG8ww8TalNVR-x1Dkz9lKdtSNpduRQBrx92MXGLdMkbDEQERPVZ/?imgmax=800" width="244" height="164" /></a></font></p> <p><font size="3" face="Georgia">Специально для статьи снял бутылку с боковым и задним светом. </font></p> <p><font size="3" face="Georgia"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYCjJsHxjnv6a8k3wt6x-ycoldqxtSfskj9TTI14_nvMTWLlDpeO9vFvmfVaKmY1bQYmP69Y9azOt0eHqwd_vQEP4IrPyaGqKrkBDXNpK8RY2iCl1UES8eCc6qB54916USEo_tvpkpGIml/s1600-h/LR-3829%25255B3%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3829" border="0" alt="LR-3829" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFYKJmHK8LY80TBZnIEglHRuKPRCAMdnAlWdMQ29iXtpFeDDPm8YQiqGUjJZvpxKluWZrbpZDi2CZh72daKCz8Xq52-2j3wWkQr-ieznjUiVPnlx4Lpa9TwnvoyAZJpJNtSfeB4a8F7ek/?imgmax=800" width="164" height="244" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis-e1PpCRpcgbf7O7luTif4JRWPRyBrFB5tJ6v0Tylvkb_k6y1QfHyzt84mhdZcjYYySvPgoWTHEUNLBINc0G6d5cTORjmeMdsIIHMUJ9A4sY1QEC6VcwHPX3mtrs3gqwHNanXIj7fPJR4/s1600-h/LR-3832%25255B3%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3832" border="0" alt="LR-3832" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Zy2aVCca728KyPiptVukMt5dfo-KlJlPrfaM68bd_GIhnbxTKK8_R3lE0k1ncyahCuL8_86CaKr6sg-uVC3OHKjAYO3V1AqoXhuWXIIJIIzDTSu243E80-SYgB7flm8CCZB1IK94Q2i4/?imgmax=800" width="164" height="244" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu3epCEewNnYN-655JkY-xUqpunAj6rKrQJd_I2ll90Sk3c_JNF4trIWUGvhMwGpPkbIJtuecRTDWxMuoLxkQymZRkEnbIbRlabFwaujmGIULWXDBJYFodBXeQRvhEY-WjVoJ80rG2bS9j/s1600-h/LR-3842%25255B3%25255D.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="LR-3842" border="0" alt="LR-3842" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikJF4NOpGl8HEqv_uPiz6L-JNMbqvMGR7qHizgPZdEn_OPIhSz13EHutlxafbrQlOt4bYTSW0ZjPMOcXDV1-YoRJ1dFOVTyo29sqOgTXV7xBsrhRQOK3B8B17qquH5p-mUFtKUU__YZeeK/?imgmax=800" width="164" height="244" /></a></font></p> <p><font size="3" face="Georgia">Но на бутылках и стекле применение стрипа не закончилось, а только началось. Очень интересный результаты получаются при съемки натуры (НЮ).</font></p> <p><font size="2" face="Georgia">© <font size="3">Andrew Buckin</font></font></p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595"><font face="Georgia">Shutterstock</font></a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images"><font face="Georgia">Dreamstime</font></a> </p> <p><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628357526311/" target="_blank"><font size="3" face="Georgia">Fotostream http://www.flickr.com</font></a></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-23040143270080481592011-12-08T02:22:00.001-08:002011-12-08T02:24:05.906-08:00Omni Flash.<p>На заре моего «стокерского» дела, лет пять назад, не было ясно, стоит ли вкладывать деньги в покупку света и нужен ли импульсный свет вообще, а желание делать красивые и качественные фотографии было. Много читал и просматривал уроков от мастеров. Какие замечательные и красивые у них картинки. И все так просто когда умеешь. Для съемки хорошего «изолята», это самая популярная тема на стоке, нужен свет. Самая распространенная схема - четыре источника света: два спереди и два сзади. Вот только стоит стартовый кит под штуку евро, а вкладывать такие деньги в хобби боязно. Окупится ли? Решил рискнуть и купил свет для «предметки». Но по не знанию и из-за отсутствия опыта, да и случай подвернулся, купил на eBay одним махом пять стареньких вспышек все за 150 баксов. И стал я счастливым обладателем двух вспышек NIKON, двух METZ и одной SIGMA. Потом я некоторые продал, даже с наваром. Фундамент был заложен, с этого момента начались поиски своего света, проб различных схем и собирание опыта. Хотелось сразу после съемки без большой обработки отправлять работы на сток. Но, так как ретушёр из меня не очень великий, оставалось тщательней подходить к процессу съемки, да и умные книги советуют, чем лучше подготовка к кадру, тем меньше работы в PhotoShop, тем выше качество работы. А после сдачи экзамена на <a href="http://www.istockphoto.com/">istockphoto</a>, прочувствовал, что такое хорошее качество. Инспекторы - звери - из <a href="http://zastavkin.com/forum/viewtopic.php?f=11&t=6155" target="_blank">батча</a> принимали 30%, а остальное резали за <a href="http://zastavkin.com/forum/viewtopic.php?f=11&t=6155" target="_blank">овер-фильтр</a>. Но это хорошая школа. Было над чем задуматься. Требования к качеству на стоках другие. На плечах фотографа лежит работа по обработке материала. Если снимать в высоком ключе, то задний план должен быть 255,255,255. В маленькой студии добиться баланса фон - объект трудно, зачастую и не реально. Фотографу надо быть ретушёром, арт директором и вообще всем. Перед фотографом стоит дилемма: «что делать», качество или количество. Количество - меньше времени на обработку. Плохая обработка - мало продаж. Замкнутый круг. А так хочется хорошую оптику и свет. Кроме всего прочего есть и чисто физические ограничения. От контрового света падает контраст. Современные объективы уже умеют бороться с этой проблемой лучше, но стоят денег. Сток — это техническое качество прежде всего. На тот момент у меня был очень хороший объектив 35-70, но это стекло совершенно не держит контровый свет. </p> <p>           Вот так вот и родилась система “Omni Flash”, которой я и сейчас активно пользуюсь. Принцип такой: делается два кадра, первый - объекта, второй - заднего плана (маска). Потом в PhotoShop оба кадра совмещаются. Всего надо две группы вспышек. Если делать кадры очень быстро, в серии, то снимать можно и людей в движении. Так как вспышки у меня были разных систем все работало без привязки к конкретной системе. Первый вариант системы был сделан на светоловушках и светодиодной вспышке. Одна группа светоловушек отрабатывала на первый пых, другая группа срабатывала на второй пых. Пых - это вспышка. Светодиоды обеспечивают короткое время следования вспышек. Но у такого решения есть недостатки. Очень маленькая мощность светодиодной вспышки ограничивает применение на улице. КПД светодиодов оставляет желать лучшего. Снимать удобно только в студии, зато очень быстро. Потом я купил «<a href="http://www.gadgetinfinity.com/cactus-4-channel-wireless-flash-trigger-set-v2s.html" target="_blank">Кактусы</a>» и идея переехала на радио. Чтобы «Кактусы» сильно не переделывать, передатчиков нужно два, под каждую группу свой. На камере стоял башмак под два кактуса и переключатель между передатчиками. Сейчас у меня комплект RF-602. Я хочу поделится, как модернизировать передатчик под него. Разживусь другими радио триггерами сделаю и под них. Так как у системы есть очень большие преимущества, можно сократить количество источников света на задний план. Не падает контраст от контрового света. Количество света сзади можно легко регулировать в PhotoShop на этапе обработки без особого волшебства. Очень легко регулируется граница перехода объект - задний фон. Граница перехода выглядит натурально. Объект можно оставить вообще без тени. Очень легко снимать на белом, стекло и гладкие поверхности. Список преимуществ большой, всё сразу и не вспомнить. :). Для последней реализаций я применил контроллер MSP430.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4I4ykmwmr0aE5n6q1GJf20bV05mEiNVfsa1ITpTsby9Byb1X1saC0bv4MMtnolat8tb-zZCI9uJXRMWDxIY1QmseL1GLxi3oP77Df409k48ODraerId74aqvwYDHpM1b12wQpqyGF4O_F/s1600-h/_DSC40132.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC4013" border="0" alt="_DSC4013" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzuPdVzgNreZVLCEw2tLmVjnyJxpQs0C6K0kqkVyqPnCX3wCmImGcg_OfnQb5wGwNNXiAuDLTNaVDScZfzujG7JXfO43AyyGShPqwvWt9jg5eUeD0k07fnxBMKpZkQash-y0uC1VJCe47e/?imgmax=800" width="244" height="164" /></a></p> <p>Это мало потребляемые процессоры, с богатой периферией и системой прерывания, и быстрой реакцией пробуждения. Не нужен внешний кварц. Все это позволило сократить компоненты до четырех и уменьшить исходный код. В спящем режиме процессор потребляет 0.5 микроА при таком потреблении питание можно не выключать вообще. :) Приемники разделяются на группы переключателем каналов. Первая группа - первый канал. Вторая группа - четвертый канал. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaRjOTN__iaVdJ6WHqQpxfgVDkLsbvV2BPPRyKWIOLgJsliOMw5hz58WI1R1dBIglFyiOSdLoMgtfRoxR564QmFGuFQh8zSM2-Z717D0eN5JIyg4N3DE82qH2Vw7Ebq_RlRODtiPJksOoV/s1600-h/_DSC37032.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3703" border="0" alt="_DSC3703" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsZ4Kx404_4UiKL9C3o45s9r_nDnPfVTpb8KnXJXPV58IPRfeQgCLTJnEmotDLUF1PAn112RGNSrwO6Hg0W4RgbFuJaPhfrL7DGCeLfLaoAZcQ25yhlEHPnadS0h3ZbOB2bi204mm043Tn/?imgmax=800" width="244" height="164" /></a></p> <p>Ничего резать в RF-602 не надо. Для начала надо извлечь батарейки и разобрать приемник. Открутить винт и немного надавливая на верхнюю крышечку по бокам снять ее. На крышечке 4 защелки. Не сломайте. Как видно из фотографии, плата крепиться на контакте минусового питания. Контакты питания надо залудить. При лужении контактов надо обязательно вытащить плату приемника из корпуса, чтоб не испортить корпус. Остальные провода нужно припаять к местам, как на фотографии. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5H5YO8sZClCvX3iSdNBQPJ9qRdPuQezfKUumf3c-LZ7-LMTXi-07fPxc4wFeZCXrYMXi-7D0bHpjHcQl3t8NIT1hu_MQUgD5SDjUmgJab0JQSf3wmlHaXA1DzXJj2x2LJJXp4_lM16Wb/s1600-h/_DSC37055.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3705" border="0" alt="_DSC3705" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM3WntjYOEsE5r6DKxV7X6nRNsRSJt9dCqu6t2abexj2fRcqkAmg1GsJkJl6altQ31qOLd7a094Fw4UlZdgkeJ0P7v2xJNSHxmGz3GhYiat9Q3k0Czq-mXR_vAxMBcqj6tUVtN7Khbv6yE/?imgmax=800" width="184" height="244" /></a></p> <p>Красный на +3В батарейки. Очень внимательно отнеситесь к этому процессу, так как за ошибки монтажа автор ответственности не несет. Немного о самой работе. Я снимаю без штатива в серии. Серия может быть хоть бесконечной, следить за четностью не надо. Приблизительно после паузы в 3 секунды схема автоматически вернется с первоначальное состояние.</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1260cfa3-0ce9-4072-addb-07a75c39eef2" class="wlWriterEditableSmartContent"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/bQ8dJj9YHAw?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/bQ8dJj9YHAw?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div></div> <p>Все проверил под Никон. Работу на других системах не проверял, но ребята с форума «<a href="http://www.zastavkin.com/forum" target="_blank">zastavkin</a>» пишут, что проблем не заметили. </p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:afb61e7e-46e0-416d-a5d3-5bcd1e774af3" class="wlWriterEditableSmartContent"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/JjiE9itifpk?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/JjiE9itifpk?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div></div> <p>Комментарии к фильму как обрабатывать в PhotoShop. Открываем оба кадра в PhotoShop на разных слоях, добавляем белый задний фон. Один из слоёв делаем полупрозрачным и при необходимости совмещаем оба кадра, копируем слой маску в обменник CTRL-А, CTRL-С, создаем маску для фотографии, отрываем маску ALT клик, вставляем маску CTRL-V, инвертируем CTRL-I, подводим уровень CTRL-L, проверяем что получилось. Проверяем целостность маски и еще раз доводим уровень CTRL-L, остатки убираем кистью. Если края очень резкие, размываем маску 1,5..2 по гауссу. Вся процедура занимает 2 минуты.</p> <p>Вот так вот выглядят кадры после съемки и после обработки.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfziE_H0X_5XT23Ie_bFNaTBqWtBNhgw173ekhYyi1exhg-YPAiMCKDUq-gaU9DGgChKJCM3qTz-LagV9HU9xi1xnZsfyFHCk6vMZCeFdU3FDVRnXBlANYadgZKeBB1Gw3yZR0T0AjhVI1/s1600-h/LR-4167-2%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-4167-2" border="0" alt="LR-4167-2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEyDcXyPD2AYpS0o5qayYgq6laFZnDazIEKmuYyTmRXucx1f_-GSJ1LCrWMAs7DPN8F5EVIjAQIaXSNAiWoeBU2iwEXGNbbNy5OhTnKXQ4t6QV3of-B2BtAcfsjMAE2YCEzYaKBGwizKyQ/?imgmax=800" width="244" height="164" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLGGFO4qL3SxxuriNSqf76vMYLomCrcDCUeZGGAYNEfbvXFH5FjiJ9L4YZ6wV4csh1xAEJuapKnmemblDp_oCbDAeZvAgjDnqGyzqypTLu5xBSCicb0sta2tcj-oh3OI7nowts8A0xMxcr/s1600-h/LR-4168%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-4168" border="0" alt="LR-4168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNWH2Nc0LxVMcjtaQ9I0a6hisaPACRXFwaxxvcHiasUwlzOUMxMdc1WK8Ew3fPIPBhX-mAN8Y4MeVDcev7RLMX8BN4pzMAxvI-Ir7ufCxgzg7UxoyQe7Cc95XSXQmVN5uaM_AxBoyzVxe0/?imgmax=800" width="244" height="164" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1eqWKNEG6gqmqNV2AY2NvJ7ADF_frDr8gPMySnkjpQAr5-Lyip1x9_rjZtjWRnRhz0MH7oLAiBX6zVpmivLHig_4BJusTWUw7loHQKTS9Bc-h0Z_JHKNSw5gp7OTy5_H2zhRfhiOhcg1K/s1600-h/LR-4167%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-4167" border="0" alt="LR-4167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEIytZ8Q5chFIzS-m_uDA_0nyqjmNQ8QhKhunTSRe_y4jiWXU2LBz7zlLixmwIDZmqvfE5OEqi1TNy0SzGltb7xkQyzsHzba1mQORW8Av55RAbb9tVpLG7esDguZlSvIFatF-FobIiMcRA/?imgmax=800" width="244" height="164" /></a></p> <p>Девушка в прыжке.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGb1dJdGEXhCNcXlyeANeZByYFilOFlouTlE27Gz4p3KuN3iahbIpwsYsqsqhX8OuAAhojrt0UO4kHG_uUUzDI5tF8wfVhMj2CYhTxOjOYSo6pctnwrUiG3iElzj6gQJZEUGRYXItW6lJc/s1600-h/LR-7208%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-7208" border="0" alt="LR-7208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWmgmyVNMzJP8BnBiRJNBNqTHKBm7ktKlhSZmJ-w7Y6h70hkUrWC-OpwbE8qBzC9AUZuEWJ1NjsDuCAB1R6fUIWIkvE_DYBqd2yR-SQjfEQ5F5_TX7J_Sk9sne73zmBMXORrKfe3X3dsWX/?imgmax=800" width="184" height="244" /></a></p> <p>При съёмки в движении нужно поймать пик, тогда смещать кадры практически не надо.</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9a0f8049-d1d8-4878-8556-b473523a95dd" class="wlWriterEditableSmartContent"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/LmIrEijO59o?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/LmIrEijO59o?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div></div> <p>В этом примере совершенно не видно, какой свет спереди, какой сзади. Можно не придерживаться правила, что для заднего плана света надо больше. Это даже вредно. :) </p> <p>Omni Flash работает совместно с «<a href="http://karu2003.blogspot.com/2011/11/rf-602.html">Power Save for RF-602TX</a> ». Для желающих попробовать - у меня после разработки осталось десяток укомплектованных плат. Плата стоит 8€.</p> <p>© Andrew Buckin.</p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595">Shutterstock</a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images">Dreamstime</a> </p> <p><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628330225213/" target="_blank">Fotostream http://www.flickr.com</a></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com2tag:blogger.com,1999:blog-3907406965051969800.post-3477997937177396412011-12-07T00:27:00.001-08:002011-12-07T00:27:53.193-08:00Camera Control with Arduino.<p>Вы ещё не прониклись идеей взять паяльник и заняться электроникой и совместить два хобби в одно. Сейчас самый подходящий момент. На рынке не всегда можно найти необходимые электронные гаджеты к камере. Зачастую их просто нет, а если и есть, то цены на них очень сильно завышены. Я часто делаю маленькие приборы - помощники для съемки, подключая к камере различные приборы, моторы, вспышки, лампочки и тд. Электроника - такое дело, что всегда есть риск что-то спалить. И меньше всего хотелось бы камеру. Вдруг вы что-то забыли и не учли. Такое может легко произойти. Для своих поделок я завел золотое правило: никогда не подключать к камере приборы на прямую, тем более, если в приборе есть высокое напряжение. Сейчас на улице зима, и сколько статического электричества на одежде и руках, трудно представить. Одно время работал консультантом по электронике. Был очень занятный случай, процент выхода приборов из стоя в зимний период поднимался на 20% и все потому, что разработчики забыли про защиту от статическое электричество. В зимнее время года таким источником высокого напряжения может быть и сам человек. Так что бережёного бог бережет, а камеру гальваническая развязка. Для подключения к камере я применяю оптроны. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEissCoP-L4mmj9ZWnxQM9eoj_1U7qn_eGzsyKGMvpajsfD7gnFLaxjz2loYUDEp1IEHnsl4HNDwIy2VNfJN210RIeYKC7VyHK3LJK6s-7b5cyb048rbtqOpiQ9T9zOrw8vgfcwZYo_auLJj/s1600-h/Schematic-Prints-1%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Schematic-Prints-1" border="0" alt="Schematic-Prints-1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdkDaRqonJYanCxI-IERGc7eykQ4dIDR5f5Gm2RJuWh9CWoKWqPLwo7mn6O9Xn06UtFeeKpaiIyDZ-PXiKpMiop6TQqau4NPkkBcuUKhMlVmX7ndyMSGqultbK073H6yO5S3EgoOJK4-Zp/?imgmax=800" width="244" height="99" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRNdAkbpD41zHEm1AvIN95e51dwdxgR5ojI25sjRoQm89TowVw0Oe3rHzkrwXJV_iYc6OcfANpvixvAfbuZRSpk-U_ipztxVGK1DJ-GisUo8WEUbcCOeaxQ2A31Vta8B26g2PkT7Cxy9dt/s1600-h/PCB%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="PCB" border="0" alt="PCB" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXi8nsJLVJb5Drx3M0n5Kee-qQPux9ASgYHwnaz7c-xgOQdVktTbndxcc2tJtTsPQp92LZ338GSlpK1iywFYuRWuIdCxcxvLxnTLhHAoMuoQBZzlreGv7g5w_-BfRMhqgcbA7N4Q2QFRle/?imgmax=800" width="204" height="244" /></a></p> <p>В последнее время для быстрых проектов подсел на Arduino и Breadboard. Вот и свою плату сделал именно под Breadboard. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlxfu0iDcSScQdlSJkMl-45ptt5S_wsIUURVMsi6_c0WXCdxzdf-7FGxNWRiRtnkfZpJdqLnLPewy6m8TrG0gGbh8OPKEUqFbeYqFVOF-3dRsDtMqfGF6qdBxlBElIPWnYa6LmVh6F3QAS/s1600-h/LR-3555%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-3555" border="0" alt="LR-3555" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi15BbjPlN9A_pLN-BBym7zYJ8lhls-Dg0GIXwzXustjhWMjU0dDFB2_dcDW_5SowFSA71YzBS8Jsk5gF0pr1m-17MSz4OYFqWHnujX8e-zcqe0z4CpO413yXWdZGqKRPi4jYI43jLV6H35/?imgmax=800" width="244" height="244" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisEJoBOyCPryL2JKXI7bqeSD2vAvteUHclKypXdmgRcHy_k-QVEIbdceo006gFnMeUIrPHnjAL2_Yoo4IilBfLV6Rt-fA12Pbv5F13f6AYb66pKGJ-EPiMrmdvnDTa2L3yGCW-jOUVshn2/s1600-h/LR-3557%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-3557" border="0" alt="LR-3557" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6vawJU0RRk-lx0-5475eSygw9RnfQwA3lQQC-P1KQd3DKDDRJU8cJmicbX5fNs0gCeCeqNX5nVY91M_T8wcWsJR0R_aPl2PmTEsxth2QTvW5US9GJNAvMDiKCjiq0bCGVzi6KF8HAAjHa/?imgmax=800" width="244" height="244" /></a></p> <p>Для фотопроб и экспериментов можно очень быстро собрать схему, не используя паяльник. В добавок, Arduino работает на многих системах, и программный код легко переноситься. Управлять камерой можно через любую терминальную программу и не зависеть от операционной системы. Слава «программистам», терминальные программы есть везде: Windows, Linux, Android, iPod и др.</p> <p>В данном примере вы можете с компьютера управлять затвором и фокусом, независимо друг от друга, как на нажатие так и на отпускание. </p> <p>const <span style="color: #cc6600">int</span> Shot  = 11; <br />const <span style="color: #cc6600">int</span> Focus  = 12; <br /> <br /><span style="color: #cc6600">void</span> <span style="color: #cc6600"><b>setup</b></span>() {                <br />  <span style="color: #cc6600">pinMode</span>(Shot, <span style="color: #006699">OUTPUT</span>); <br />  <span style="color: #cc6600">pinMode</span>(Focus, <span style="color: #006699">OUTPUT</span>); <br />  <span style="color: #7e7e7e">// initialize the serial communication:</span> <br />  <span style="color: #cc6600"><b>Serial</b></span>.<span style="color: #cc6600">begin</span>(115200); <br />} <br /> <br /><span style="color: #cc6600">void</span> <span style="color: #cc6600"><b>loop</b></span>() { <br />  <span style="color: #cc6600">byte</span> inByte; <br />   <br />  <span style="color: #cc6600">if</span> (<span style="color: #cc6600"><b>Serial</b></span>.<span style="color: #cc6600">available</span>()) { <br />    inByte = <span style="color: #cc6600"><b>Serial</b></span>.<span style="color: #cc6600">read</span>(); <br /> <br />    <span style="color: #cc6600">switch</span> (inByte) { <br />    <span style="color: #cc6600">case</span> <span style="color: #006699">'S'</span>: <br />      <span style="color: #cc6600">digitalWrite</span>(Focus, <span style="color: #006699">HIGH</span>); <br />      <span style="color: #cc6600">break</span>; <br />    <span style="color: #cc6600">case</span> <span style="color: #006699">'s'</span>: <br />      <span style="color: #cc6600">digitalWrite</span>(Focus, <span style="color: #006699">LOW</span>); <br />      <span style="color: #cc6600">break</span>; <br />    <span style="color: #cc6600">case</span> <span style="color: #006699">'F'</span>: <br />      <span style="color: #cc6600">digitalWrite</span>(Shot, <span style="color: #006699">HIGH</span>); <br />      <span style="color: #cc6600">break</span>; <br />    <span style="color: #cc6600">case</span> <span style="color: #006699">'f'</span>: <br />      <span style="color: #cc6600">digitalWrite</span>(Shot, <span style="color: #006699">LOW</span>); <br />      <span style="color: #cc6600">break</span>; <br />    <span style="color: #cc6600">case</span> <span style="color: #006699">'a'</span>: <br />      <span style="color: #cc6600">digitalWrite</span>(Focus, <span style="color: #006699">HIGH</span>); <br />      <span style="color: #cc6600">digitalWrite</span>(Shot, <span style="color: #006699">HIGH</span>); <br />      <span style="color: #cc6600">delay</span>(1000);  <span style="color: #7e7e7e">// waits for a second</span> <br />      <span style="color: #cc6600">digitalWrite</span>(Focus, <span style="color: #006699">LOW</span>); <br />      <span style="color: #cc6600">digitalWrite</span>(Shot, <span style="color: #006699">LOW</span>); <br />      <span style="color: #cc6600">break</span>;  <br />    <span style="color: #cc6600">default</span>: <br />    <span style="color: #cc6600">break</span>; <br />   } <br />  } <br />} <br /> <br />Камеру подключаем аудио кабель к пульту дистанционного управления к Arduino, а сам Arduino - к компьютеру. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv7oiGQLae8jbvADoXbnU_IIcc_CCiGVsr_fJyMauqCPSjWDPH1ljh0al7JCCoF2QgWTBHwi8Rf4sf8FbMW_Js5qpP5C3WaxWxZqARKx_QieVG26kac7Xt3wF5VSMQp6lt1fuWsrXKVQcQ/s1600-h/LR-3560%25255B3%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LR-3560" border="0" alt="LR-3560" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjSqGSvgZZkYoxtItJzRUhms4CU5sRizNG9kFgtfzQhrlubK-YOcgvpq1-A6nsd2GYpGB59r3AdhheU3ml0lNO0KrbS9jQ9t2jF9E9bjLxTGKXxRhxzf0NI7UX3AJt8WAyLrBSWO6NbUYj/?imgmax=800" width="244" height="184" /></a></p> <p>Как подключить к Arduino различные датчики сенсоры постараюсь рассказать позже.</p> <p>Продолжение следует.</p> <p>© Andrew Buckin</p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595">Shutterstock</a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images">Dreamstime</a> </p> <p><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628315668339/" target="_blank">Fotostream http://www.flickr.com</a></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0tag:blogger.com,1999:blog-3907406965051969800.post-79955145879397237062011-12-03T08:07:00.001-08:002011-12-03T08:07:55.493-08:00Light Beauty Dish.<p>«Эх раз, да еще раз». У меня очередная выездная фото сессия. Каждый раз собирая оборудования повторяешь как мантру: камера, аккумулятор 100%, карта памяти в камере, запасная карта в рюкзаке, 80-200 положил, 85 на камере. Генератор проверил, “голова” на месте, кабель к голове там же, радио триггер в кармане, вспышка, запасные аккумуляторы, гелиевые фильтры, две стойки, отражатель. Это всё что не вызывает сомнения взять не взять с собой. А вот дальше мучения выбора какие модификаторы взять. Не то чтобы я мучился. :) Вопрос сколько веса с собой брать. Часто тащить надо всё за плечами. Если съёмка предметная, в большинстве случаев достаточно взять лайт — куб, а вот для портрета хочется взять с собой портретную тарелку. Но руки не доходили купить чехол. Из-за неудобства транспортировки и большого веса тарелка под выбор не попадает. Беру окту и соты - снуп. Вот так я и поехал в этот раз на съёмку. Попросил товарища подвести меня к месту съёмки. Пока ехали обменялись свежими анекдотами, как дела, как семья, как работа. Обращаю внимание, что под ногами у меня не коврик, а алюминиевая фольга в пластике. </p> <p>-Что за фигня, где взял?</p> <p>-В LIDLe на этой неделе в продаже два листа стоят 8€. </p> <p>Съёмка прошла успешно. На следующий день я как настоящий кормилиц семьи отправился за продуктами в LIDL и купил два листа алюминиевых ковриков. На выходных я обложился линейкой, циркулем, справочником по математике и карандашами. За пару часов родился вот такой вот эскиз.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTAvW_8KenOImthV3czZcuyzb2RNIUMMlnDiwpsvf5nDPFt47sDf-k6ookbvZDcTn6whg8oRL2bodArgMz0laVRApSMgM45f68Fr_HZSecDmrMQX5x1mnQnCxr83V2pb-LEBGSr3XqlIou/s1600-h/Andres-teil-1%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Andres-teil-1" border="0" alt="Andres-teil-1" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirOrJZ98XJx-EUfCg1wkS2GJL6ZxsKvRRyTKT_GIWZ4QatKsUV4OrzJpWtkL1RjG-7Jrb2FIOVOzBD7bX6ePSZMmL2HICS7ZQeSnXWmXB14ra2Ld667pSwaL0WlTbLXK19cKh1-6BdIphm/?imgmax=800" width="210" height="244" /></a></p> <p>Отрезал лишнее и получилась легкая портретная тарелка. Из покупных частей нужен переходник на байонет. Так как я работаю на Elinchrom, дефлектор у меня уже был. Дефлектор можно сделать из остатков пластика и 7..8 мм трубки, и крепить как зонтик. Пластик можно найти в любом авто магазине. Начать надо с вырезания квадрата 650 мм, потом от углов отмерить 190 мм и соединить точки вместе. Получившиеся углы можно отрезать, они больше не нужны. Все противоположные углы соединить линиями-диагоналями, получите центр. Параллельно к каждой стороне на расстоянии 100 мм проводим линии до пересечения с диагоналями. Получились линии сгиба. Тупой стороной ножа с внутренней стороны тарелки немного надавливая проводим по линиям сгиба. В центре тарелки циркулем с двумя иголками на концах делаете отверстие диаметром 120 мм. Под другие системы диаметр наверное будет другим. Можно вырезать ножницами, но иголкой получиться аккуратней. Основная разметка сделана. Дальше каждый решает сам, как резать. Есть два подхода - зум и фикс. Если сделать разрез от угла к месту сгиба, фокусом можно играться потом, используя для фиксации крыльев между собой канцелярские прищепки. Я так и сделал.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJt8qHfaKwB2-dL1lhtnmcOzCTQADIDsSFQhS8pKmFBhTtL187wEvPiMr6t8CD_yA4eYoZMzdByuvK-oQntyD0UqRCXSTG0DaDKxZbhSFShrJLNaBjfgoPGl6cnPO0oSV0c95G3mNCecQ/s1600-h/_DSC3415%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3415" border="0" alt="_DSC3415" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtiAmAxhkZt8tqXQ1zKizO9ohk_jMyhdggYNMw1IO5fNUsg7MoXSEP7in8Fv8rpqH7_q0oLWk5ju_ElItMfkQAZXRQzEbIqY_rA-yDJlTmtq_QEB1BfCCgNmTRkxCy42N7fsbaDLsj-LbX/?imgmax=800" width="244" height="184" /></a></p> <p>Второй вариант с фокусом света на 2 метра. В углах нужно вырезать сектор. От угла в обе стороны отметить 14мм, провести к месту сгиба линии и вырезать получившийся сектор. При сгибе, кромки нужно склеить изолентой. Тарелка получается более стабильная. Переходник фиксирую в трех точках надрезами в пластике.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6tMUYMtr9ib-O1kw3-Vfa5IuDppmw-CzDL5vk9ZO5DIenLvshdh00s95xBh4B6yHGvF8t99vlL37SWesRFUKLsJX7YbDX_zE0b6QKqXT5KHJfVCXW-eHXfxdcqzV4hry-8glPvLqhVZ0w/s1600-h/_DSC3479%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3479" border="0" alt="_DSC3479" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC6He97KpncECO8zVYjHnDSLgdqAS3TA-IhqTXggwWkyzVm-rlQc0j74iShKQgin-z9r0Ne5FBxK-BvvsGHxyubNE2tcmtLbHAReckiBJlEzCImybMFn4p2XlCmtHMEznMEMqzAVf5XR3J/?imgmax=800" width="244" height="184" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSiCIL8cHAN23_U3CG5wDM3e2SQ_xHswMhzp3LHsJnY44wK8e8NJx5GYw3OVuDS8sTFiGM5UlwDbfUTvg4Hh7yXJSWuC8ccKlyqEEOyqz4XjzBZEXAjSfS4tDqU0jVxcylrDs6qCnVTySG/s1600-h/_DSC3417%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3417" border="0" alt="_DSC3417" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB7ltPghdsh5zYm9ufA9VepkZgkVQhulvQd5BIGLJWfwLgA8oVy0sntOI04L6eDnsldQ3rBGP1CvjtBd5f5XN6EsdasT91Fty56EOWGXtZF9T4Jfv3dxJ_fwrIBfRUugA4rX73kY_yhv4-/?imgmax=800" width="184" height="244" /></a></p> <p>Теперь выезжаю на сессию всегда с тарелкой, упаковываю её вместе с октой. В отличие от родной конструкция проигрыш света 0.3 стопа и пятно чуть шире. Но вес и удобство переноски вне конкуренции. Очень лёгкая получилась конструкция и если сломается, можно выбросить и за десять минут сделать новую.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCgbN8tMbMU7ZoJi7wiZm5zjjmLRMuMEHoAA54UiYZb55Nf1npoXIdBgiBPkRFdNKFbYEvFy8lTpFHZ8BqJmUYP9FR7Xmkv80wqtEqezrCa2zJfKQozf93yE2wCZ5J3tGYicN6qCWdNqTL/s1600-h/_DSC3487%25255B2%25255D.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_DSC3487" border="0" alt="_DSC3487" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiixukL6qeRLGiDSPy9dlS44S2EwCmClIztvKyer-WM9Ga-0SgzExOLEJJcnIxKL-q88wB9GaLyR1BvdnrsV9gHmWUxa84rHbaxy2FEn5-6JMi-8HIWHfnizYK3j_UZh1_SO1ETa3QNKfPx/?imgmax=800" width="184" height="244" /></a></p> <p>Для схем с двумя тарелками в студии сделал такую же из картона. </p> <p>© Andrew Buckin</p> <p><img src="http://microstockbutton.com/i/icons/shutterstock.png" /> <a href="http://submit.shutterstock.com/?ref=86595">Shutterstock</a> <img src="http://microstockbutton.com/i/icons/dreamstime.png" /> <a href="http://www.dreamstime.com/res265768-buy-images">Dreamstime</a> </p> <p>Для любителей тестов в альбоме есть пару колосков с обычной тарелкой и моей.</p> <p><a href="http://www.flickr.com/photos/13931361@N08/sets/72157628259431163/" target="_blank">Fotostream http://www.flickr.com</a></p> “geschlossener Kreis”http://www.blogger.com/profile/15597190399461945616noreply@blogger.com0