#include <Servo.h> //---- int TimeDelayStart = 600; // время задержки старта в секундах int TimeDelayStart2 = 1200; // время задержки старта в секундах int TimeDelay; int Cycle = 3; // количество полных циклов int cycleStep; //---- Servo servosm; // создаём объект для контроля сервы затвора int ZatvStep = 20; // задержка между срабатываниями сервы затвора в шагах двигателя int zatv; unsigned long time; // переменная отсчитавающая время int servosm_pin = 6; // пин для сервы затвора
Servo servobig; // создаём объект для контроля сервы вертикального поворота // 809, 2180 int min_servo = 1200; int max_servo = 2180; boolean servobig_go = false; int servobig_pos; int servobig_pin = 5; // пин для сервы вертекального поворота камеры //---- int LevelStep = 5; // количество круговых уровней сделанных платформой int levelval; // переменная для хранения количиства уровней //---- int moto_pin = 11; // пин для управления двигателем горизонтального разворота камеры int motoIN2_pin = 8; // пин для драйвера IN2 двигателем горизонтального разворота камеры int motoIN1_pin = 7; // пин для драйвера IN1 двигателем горизонтального разворота камеры int motostep; // шаги двигателя boolean moto_go = false; //---- int btnval; // переменная состояния концевика int btn_pin = 12; // пин для концевика
boolean btn_block = false; // контроль концевика от удержания boolean foto_go = false; int kadr;
//---- boolean led_block = false;
int Status; int A,A_1,A_2,B,B_1,B_2,C,C_1,C_2,D,D_1,D_2; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void setup() { //---- pinMode(13, OUTPUT); // назначение выхода 13-му пину для светодиода attachInterrupt(0, Reset, RISING); // привязываем 0-е прерывание к функции Reset(). //---- pinMode(motoIN2_pin, OUTPUT); // назначение выход 8-му пину для IN2 драйвера двигателя pinMode(motoIN1_pin, OUTPUT); // назначение выход 7-му пину для IN1 драйвера двигателя digitalWrite(motoIN2_pin, LOW); // назначение направление движения digitalWrite(motoIN1_pin, HIGH); // для двигателя analogWrite(moto_pin,0); //---- pinMode(btn_pin, INPUT); // назначение входа для концевика servobig.attach(servobig_pin, min_servo, max_servo); // подключаем серву вертикального поворота servosm.attach(servosm_pin); // подключаем серву кнопки затвора //---- Serial.begin(9600); // инициализация работы с COM-портом } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void loop() { //---- switch (Status) { //----///////////////////// 0 цикл ожидания ///////////////////// case 0: // ожидание if(led_block==false) { Blink(0); led_block=true; } //---- ServoBig (2000); kadr++; if(kadr>=60) { kadr=0; ServoSmall(); } delay(1000); break;
//----///////////////////// кнопка А панорама ///////////////////// case 1: // панорама if(led_block==false) { Blink(1); led_block=true; } //---- // запуск двигателя Moto (); //---- btnval = digitalRead(btn_pin); // узнаём состояние концевика if(btnval==HIGH && btn_block==false) // если концевик зажат и не стоит блокировка { if(levelval==LevelStep) { foto_go=false; // запрещаем делать съёмку led_block=false; Status= 0; } if(levelval<LevelStep) { analogWrite(moto_pin,0);
if(motostep >= zatv) // если наступил момент для срабатывания сервы для затвора { ServoSmall(); // делаем снимок motostep=0; } } }
Задержка на удержание перед спуском и удержание после нажатия кнопки затвора. Реализовано в функции
Code
void ServoSmall() // функция поворота сервы затвора { int val = analogRead(4); //аналоговый пин 4 (считываем значение потенциометра) val = val*2+500; // рассчитываем задержки int prevval = val/5; int pos; //---- delay(prevval); // задержка перед спуском кнопки затвора for(pos = 580; pos <= 665; pos +=5) // делаем нажим на кнопку затвора { // здесь нужно проработать код servosm.writeMicroseconds(pos); // для подстройки к параметрам фотоаппарата delay(5); } delay(val); // задержка на удержание кнопки затвора //---- for(pos = 665; pos >= 580; pos -=5) // делаем нажим на кнопку затвора { // здесь нужно проработать код servosm.writeMicroseconds(pos); // для подстройки к параметрам фотоаппарата delay(5); } }
Quote (Anvil)
Пусть лучше дергается - давать обратную нагрузку на серву не рекомендуют - редуктор может того, особенно если шестерни пластиковые.
У меня метал... но без разницы по моему, после нескольких работ сева разрабатывается сама и платформа от собственного веса прокручивается... мне даже код пришлось менять, раньше было отключение сервы после поворота для экономии питания, а сейчас в коде прописано удержание в выставленном положении.
А как подключен потенциометр - между 4-м пином и +5В и какой нужен номинал? Нужен ли подтягивающий резистор между землей и пином?
Quote (Sergey)
У меня метал... но без разницы по моему
Был бы пластик - зубья уж давно посрезало б на шестернях редуктора. А лучший вариант - отбалансировать платформу относительно оси сервы - тогда можно будет снова детачить серву
И вопрос не по теме - удалось ли испробовать Nex-5 в деле? И нет ли у вас куска кода для ИК-диода на спуск затвора для нее? Подумываю о приобретении.
Схема которая на данный момент у меня сейчас работает:
с права в верху потенциометр (переменный резистор) сигнал между +5V(VIN) и нулевым значением (GND) снимается на аналоговый пин 4 (Ap4). Подтягивающий резистор не нужен, но только сопротивление самого переменного резистора нужно не меньше 50кОм. Рядом светодиод - это обратная связь, которую на расстоянии сто метров уже не видно Слева в верхнем углу приёмник. По середине драйвер для двигателя. В левом нижнем углу геркон, для определения места поворота платформы. Здесь уже резистор нужен и на 100кОм. В правом нижнем углу две сервы. Заместо малой (на затвор) можно поставить ИК-диод, но только через сопротивление в 1кОм.
Для NEX ещё ни чего не готово поэтому пока его не отправлял на верх. И в принципе жду сначала новый комп, а то этот не справляется с теми пикселями которые сейчас Сонька малая выдаёт, а уж от Некса вообще работать не захочет
Внизу прикреплён файл рар, в котором находится библиотека для ИК и скетчи под разные фотоаппараты. Распаковываете архив в папку С:\.....\arduino-0022\libraries В папке examples найдёте скетч под ваш фотоаппарат у вас тоже NEX значит в папке Sony (С:\...\arduino-0022\libraries\multiCameraIrControl\examples\Sony) открываете его через саму программу Ардуино, выглядит он вот так:
Code
#include <multiCameraIrControl.h>
Sony A900(9);
void setup(){ }
void loop(){ A900.shutterNow(); //мгновенная съёмка delay(5000); A900.shutterDelayed(); // съёмка с задержкой для коррекции авто настроек delay(5000); }
Дальше я думаю вы знаете что куда копировать? В вашем коде объявляете путь к библиотеке #include <multiCameraIrControl.h>, даёте имя функции и объявляете пин (в коде прописан девятый) Sony A900(9); - заместо A900 можно написать NEX ну и там где у вас прописан код для затвора вставляете A900.shutterNow(); если мгновенная съёмка или A900.shutterDelayed(); если у вас идёт авто настройка. В скетче есть ссылка на самого разработчика.
По моему нет (???) В общем эта функция действует как, если бы вы нажали на кнопку при ручных настройках, при которых не требуется автоматическая подстройка самого фотоаппарата. Разумеется EV в разных местах пространства в зависимости от освещения будет разная. А вот следующая функция (A900.shutterDelayed();), она действует как, если бы вы нажав на кнопку, удерживали бы её, для того чтоб фотоаппарат сам автоматически подстроился.
Надеюсь все-таки меряет - вряд ли эта функция написана исключительно для съемки в студии с искусственным освещением, а больше практически нигде вручную экспозицию не выставляют.
Попробовал открыть эту библиотеку, чтобы посмотреть что там, ардуиновской оболочкой и процессингом - не получилось ( Видать оболочка под "Си" нужна.
А две секунды ждать shutterDelayed() - тоже долговато )
Антон, а зачем для нас ожидание двух секундное? Выставляете все настройки в ручную и всё, применяете первую функцию (мгновенная съёмка). Может я не так вас понял?
Quote (Anvil)
Попробовал открыть эту библиотеку, чтобы посмотреть что там, ардуиновской оболочкой и процессингом - не получилось ( Видать оболочка под "Си" нужна.
Вот здесь по подробней, потому что не пойму что у вас не получилось открыть.
multiCameraIrControl.h, multiCameraIrControl.cpp и Sony.pde открываются свободно простым текстовым редактором который в виндовсе, keywords.txt вообще текстовый документ. Программой ардуины нужно открывать скетч Sony.pde
А можно ли без сильной электроники соорудить подвес чтобы он вращал фотоаппарат не только в горизонтальной плоскости, но и в вертикальной? Михаил не могу понять как вы это сделали? В описаниях встречал, что у Вас стоит эксцентрик, но я не представляю как это выглядит. Может я где-то пропустил описание? Я начинающий в этом деле. За любую помощь буду благодарен. Очень нравится мне ваше занятие, хочу вступить в ваши ряды
Добавлено (16.06.2011, 01:48) --------------------------------------------- О дошло до меня пошел искать материалы
Сообщение отредактировал Senbad - Среда, 15.06.2011, 02:56
А какой смысл использовать именно червячный механихм, а не обычную шестерня на конце вала моторчика? И где можно почитать про редукторы, а то чтото я понять про них не могу. Как их расчитывать и все такое?
Сообщение отредактировал Senbad - Четверг, 30.06.2011, 21:34
Владислав, из города С... всю карту изрыл так и не нашёл такого города ... Спасибо что зашли на наш форум Вы нас извините, что пропустили ваши сообщения это не специально, честно - нечаянно.
Quote (Senbad)
А какой смысл использовать именно червячный механихм
Это издержки того что называется "что нашёл то и поставил". На самом деле используется не только, червячная передача но и простая шестерёночная. Хотя преимущество червячной в том, что основное колесо не будет самопроизвольно прокручиваться. По поводу расчёта какие колёса подбирать можно почитать вот эту статью http://www.bibliotekar.ru/teh-tvorchestvo/84.htm а мы всё на глаз
Владислав, червячная передача по КПД обычно хуже шестеренки. Но она компактнее и позволяет обойтись меньшим числом деталей, что важно в условиях кустарного изготовления редуктора. К примеру, одна пара шестерен может обеспечить понижение примерно 1:4. Чтобы замедлить мотор в 1000 раз, нужно 5 передач. А с червяками мне достаточно две передачи, считая тот червяк что на валу моторчика. Червяк обеспечивает понижение примерно 1:20, 1:40, смотря сколько у шестеренки зубьев, обычно один оборот - один зуб.
скорее всего для чего-то тяжелого. или просто для симметричности, чтобы не париться с другим концом. Вторая конструкция выглядит громоздко имхо
А вот у меня возник вопрос, все стремятся на вращение камеры поставить серву на 360градусоа или моторчик, а что нельзя применить стандартную серву на 120градусов, на неё насадить шестерню с 90зубьями а на риг шестерню с 30 зубьями передача 3 к 1 получаем 360 градусов, но это только для програмированной сервы через контролер, чтобы она потом возвращалась в исходное положение. хочу также услышать ваши мнения по поводу такой задумки.
Ну а почему бы и нет - мне такая идея в голову не приходила Единственное но - камера будет делать один круг, а потом возвращаться назад - может быть сильный разброс во времени для конечных кадров, что может повлиять на сшивку панорамы, хотя хз...
sneg555, замутить - редуктор, пока для равномерного вращения камеры, хотя можно и наклон обеспечить эксцентриком. Жалко, червяк только один. У меня практически типовая конструкция - редуктор на два червяка и две шестерёнки. Моторчики эти могут и от 1,5 В батарейки вращаться, но только при плюсовой температуре.
А я ничего не изобрел, кроме "коробочки для кошки" Зато универсально - вес небольшой (60г), прочно и надежно все укрыто, а зимой еще и греет. Текстолит 2мм, дюраль 1мм внутренняя скоба и наружные стойки.
"Вот думаю последнее время над конструкцией очередной подвески... опять думаю над материалом" В принципе дюраль не намного тяжельше пластика, если малыми кусками, только где надо. А вот рыхлый, тканевый гетинакс для плат - плохой материал, гнется и ломается - перестал использовать. Недаром там в конструкции он сдвоен и повернут боком, для усиления. Небось, в итоге весит изрядно - смола, все-таки. Заменив его на дюраль, в весе и прочности можно только выиграть, IMHO.
А, еще это я изобрел поясную моталку - ну, про нее сто раз известно. Нынче уже более изящные варианты пошли
Сообщение отредактировал lalex - Воскресенье, 25.09.2011, 06:32
ей-богу греет, проверял специально: в CHDK ведь термометр кэнонский есть. В 20-ник после съемки гонял на пеньке раздетую камеру как Морозко: "тепло ль те девица.." Не помню на скоко градусов, но существенная разница. Делать несложно, это у меня так выглядит кутюрно от нечем заняться... А в принципе можно вообще без ткани и ниток: 5мм пенка хоть и полиэтилен, но пористая и клеится намертво встык любым каучуковым клеем, прямо вокруг камеры - апосля это все стрижется маникюрными ножницами. Простоо полуфабрикат выглядит страшновато, и сверху хочется приодеть "сырую овчинку". Мы так камеры кутали еще пленочные, когда по северам шастали. Хороший эффект от любой одежки. Еще штормовку от дождя или зонтик могу изобресть
Фотку заменил на свежую, а то неудобно хвастать старьем
Сообщение отредактировал lalex - Воскресенье, 25.09.2011, 06:36
Задумал я тут зеркалку свою старенькую, Canon 400d, в полёт отправить. С объективом-полтинничком маленьким или китом 18-55. Они лёгкие, а главное - дешёвые :-). Думаю, как кнопку нажимать. Решение "в лоб" - маленькой сервой, не очень изящно. Вроде, можно тросиком воспользоваться. Только тросик я свой профукал, с год назад, не знаю чем заменить. Нужен штекер, как в наушниках, только ещё меньше, никто не знает, где такой взять? И следующий вопрос - можно ли с помощью Маэстро-контроллера замыкать контакты в этом самом штекере?
Когда искал информацию по инфракраснику, то натыкался на самодельный подобный девайс. Там писалось, что вроде тоже по кабелю отправляется пакет импульсов как и в инфракрасном управлении... но не буду утверждать так как внимание на этом не заострял. Хотя может быть и вариант другой, тоже натыкался, выходят всего три провода, один главный и два второстепенные. При замыкании главного с одним из второстепенных, происходит соответствующее действие: мгновенная съёмка и съёмка с задержкой для корректировки. В первом случае, с маэстром не знаю, а вот ардуина может посылать импульсы, второй случай всё просто минирелюшка на замыкание и всё. Нужно прежде всего выяснить какое управление именно на вашем аппарате: пакетное или просто замыкание.
А USB-шнур разве не будет работать программмно, вроде для Кэнонов это стандарт? Хотя все равно какой-то сигнал нужно подать на проводки, +5В... Знач опять в контроллер утыкается. Вторая ссылка в списке - remote trigger, $35.
У меня 350D, тоже об этом думаю. Вроде есть какие-то беты CHDK, может, вот эта сводка наведет http://chdk.wikia.com/wiki/400D
Да там всё просто - спуск и АФ простым замыканием. Вот здесь доступно рассказано: http://www.photosight.ru/photos/446859/ Миниджек 2,5 уже нашел, осталось придумать как замыкать это дело от маэстры. Пока вижу только неспортивный вариант с замыканием кнопки микросервой :-). Хоть родную кнопку не уродовать, и серву можно где угодно удобно поставить.
А ну тогда проще пареной... микро релюшка 5V на замыкание и всё, сейчас крошки такие, что не больше 1копеечной монеты советского образца... и не надо не какую серву ставить.
Сергей, что за релюшка? Для меня эпитричество дело тёмное. Кроме закона то ли Ума, толи Ома - ничего не помню :). Релюшка замкнута только пока на неё импульс идёт? Как в магазине радиодеталей спрашивать - релюшка на 5 В, так и есть? Получается, две релюшки надо. Хотя - говорят, если одновременно замкнуть оба контакта, должно пройти срабатывание без АФ. При полностью ручных настройках - то что надо...
И правда просто, дырка есть, микроджек подходит. А для USB надо все же CHDK ставить. А что насчет объектива - бюджетный фикс только полтинник, остальные кусаются. Вообще про зеркалки надо бы отдельную тему, бесконечную
В Хабаровске я думаю это не проблема найти в любом радио магазине или на барахолке. Вот такие вот две релюшки и по объёму и по весу будут меньше чем одна микро серва.
Можно ещё собрать схемку на двух теристорах мало мощных, будет лучше но сможете ли вы не знаю. Вот примерно так выглядит теристор
Сергей подскажи еще одному бестолковому. Ну я поставлю реле или как Михаил предлагает - серву. А кто это реле будет толкать раз в секунду? Или оно само сигнал дает, с какой-то частотой? Этот вопрос уже был на Прокайте, когда народ контроллер раскручивал. Как спустить спуск от контроллера напрямую, так че-то никто из гуру и не рассказал. Хотя там 5в на выходе, но какие-то другие 5в, чем нужно на вход фотокамере.