Ручной подвес камеры GoPro для съемок автомоделей.

Прикупил себе камеру GoPro. Мне нравится, хорошая штука. Планирую использовать ее для FPV полетов. Но пробовал ей снимать и автомодели, так как тоже увлекаюсь этим видом хобби. Особенно мне нравится съемка 60 кадров в секунду, когда потом можно замедлять полученное видео, при этом широкий угол камеры, дает стабильную картинку, но минус в том, что автомодели маленькие по размерам и эффектные кадры получаются только на близком расстоянии. Поэтому, захотел сделать выносной ручной подвес камеры, с помощью которого можно будет снимать красивые ролики прыжков и полетов автомоделей. Суть устройства не нова, на тяге длиной 1,5-2 м, будет закреплен подвес камеры в двух плоскостях X и Z. То есть будут использованы две сервы и система стабилизации. Алгоритм работы видится таким, тяга будет крепиться на руке и в кисте будет что-то типа джойстика с кнопкой. То есть в процессе работы выбирается направление которое нужно стабилизировать, а при нажатии кнопки, две плоскости камеры будут удерживаться при перемещении подвеса в пространстве. То есть при перемещении камеры параллельно летящей модели - камера будет отслеживать полет. Делать подвес уже начал, буду постепенно выкладывать информацию.

Теперь немного о самом подвесе. К сожалению, не имея под рукой возможности использования станков, приходится работать ручками. А это подразумевает использование подручных материалов. Вообщем в качестве несущей трубы будет ручка от швабры 😉, продается в любом хозмаге, прелесть в том, что все алюминиевое, легкое, и к тому же ручка телескопическая, то есть, когда не нужно ее можно укоротить, а когда нужно - удлинить. К тому, же там коненчая часть тоже очень удачная. Теперь немного фото.

Пока поставил серву DS1015, другой нет, но она тяжеловата, хочу заказать с ХК серву полегче.

Серва будет располагаться вниз головой, на качалке будет висеть рама, на которой будет реализована ось Z. Там хватит сервы поменьше. Сейчас подумал и решил, сделать площадку под камеру, чтобы влезала не только ГоПрошка, но и мыльница у меня есть Canon, там в фотике есть оптический стабилизатор, думаю видео тоже будет получаться не плохое.

Облегчил вторую стойку подвеса, там где будет серва стоять маленькая.
И так, закончил нижнюю часть подвеса. До облегчения, нижняя часть весило 86 гр., после облегчения - 70гр, это вместе с маленькой сервой. По хорошему, можно сделать еще легче, но немного не все продумал сразу. Выкладываю фотки нижней части, примерил ГоПрошку 😃.

Немного поработал сегодня своим ЧПУ ;D, сделал стойку для крепления маленькой сервы и верхнюю планку, к которой будет крепиться весь подвес к качалке большой сервы.

  • 3433
Comments
RuslanG

а потом это дело будет в свободном доступе? или это хлеб и претендовать на халяву не стоит?

ADF

Гоупро - обычная или HD? Какое разрешение видео дает?

Кстати стабилизация реально помогает только двух типов: качественным механическим гироскопом (стоит 100500 денег), либо электронная или постобработка. Постобработка для компенсации тряски вообще всегда помогает, но нужен запас по углу зрения и разрешению, чтобы результат был смотрибелен.
Стабилизация при помощи электронной следящей системы - лажа, работает рывками и недостаточно точно, как минимум пост-обработку в конце все равно делать придется.

drozd79
RuslanG;bt64230

а потом это дело будет в свободном доступе? или это хлеб и претендовать на халяву не стоит?

Да, конечно, будет в свободном доступе, на хлеб зарабатываю инженером на заводе, это все хобби 😃, в принципе, все просто, буду выкладывать фото, если все заработает, могу снять размеры, без проблем.

ADF;bt64248

Гоупро - обычная или HD? Какое разрешение видео дает?
Кстати стабилизация реально помогает только двух типов: качественным механическим гироскопом (стоит 100500 денег), либо электронная или постобработка. Постобработка для компенсации тряски вообще всегда помогает, но нужен запас по углу зрения и разрешению, чтобы результат был смотрибелен.
Стабилизация при помощи электронной следящей системы - лажа, работает рывками и недостаточно точно, как минимум пост-обработку в конце все равно делать придется.

Камера HD мотоспорт, максимальное разрешение 1080, но 60 кадров в секунду снимает максимум 960. Насчет стабилизации - не думаю что все так сложно! На самолетах и коптерах же подвесы применяются с успехом, тут не думаю, что в чем-то есть разница. Камера не плохо сглаживает тряску.
Вообще по механике не вижу проблем, подвес уже почти сделал. Проблему вижу для себя - это стабилизация. Думаю реализовать все на Ардуинке + WMP +Нунчак. С нунчака хочу задействовать джойстики и кнопки, а с WMP гироскоп. Вот тут придется немного поупражняться, с нунчаком уже разобрался. Так что, вот пока такая концепция высвечивается.

ADF
drozd79;bt64269

максимальное разрешение 1080, но 60 кадров в секунду снимает максимум 960.

Что-то не впечатлило - с зимы регистратер за 100 баксов купил, он правда 60 не умеет, зато в 30 фпс делает 1280*920 и штатные объектив на 120 градусов (после довольно обширного опробывания в деле - имхо, штатный объектив близок к оптимому, хотя и другие прикручивал - резьба стандартная). На нашем форуме видео выкладывал несколько раз, кстати 😃

drozd79;bt64269

На самолетах и коптерах же подвесы применяются с успехом…

  • С успехом!!! 😃
    На самолетах и коптерах стабилизация - более-менее держит сам аппарат на курсе, не убирая никуда тряску. Используется в паре или внутри автопилота, чтобы модель могла сама ориентироваться в пространстве и находить дорогу “домой”; но никак не для плавности съемки!

Все качественные видео с летающих - либо в штиль, либо пост обработка; у остальных - трясучка.
Ну правда был еще один пример вертолета, где камера стабилизирована механическим гироскопом не то за 2, не то за 3 килобакса. Это вертолет еще в воду падать любил 😁

drozd79;bt64269

Камера не плохо сглаживает тряску.

Уточни: у неё есть встроенная электронная стабилизация или сглаживание - имеется ввиду, что при угле 180 градусов не очень лезет в глаза?
Это малость очень сильно разные вещи. Но если есть электронная стабилизация (не путать со “стабилизацией” камеры сервами + гироскопами) - хорошо.

PS: если место-масса позволяет - можно сделать эффективную инерционную стабилизацию. Камера на трехосевом подвесе за центр тяжести (чуть выше него) подвешана, с остальной конструкцией связана слабыми амортизаторами (демпферы + пружины), чтобы !неспеша! ориентировалась относительно модели. Пример - только адаптировать конструкцию под установку на модель.

drozd79

Доделал нижнюю часть подвеса, фото выше. Вес облегченной конструкции с сервой составил 70 гр, до облегчения было 86гр.

ADF;bt64327
  • С успехом!!! 😃
    На самолетах и коптерах стабилизация - более-менее держит сам аппарат на курсе, не убирая никуда тряску. Используется в паре или внутри автопилота, чтобы модель могла сама ориентироваться в пространстве и находить дорогу “домой”; но никак не для плавности съемки!

То есть, вот как на видео ниже, Вы не считаете нормальной стабилизацией видео?

А я вот мечтаю такого добиться, на своем подвесе.

ADF;bt64327

Уточни: у неё есть встроенная электронная стабилизация или сглаживание - имеется ввиду, что при угле 180 градусов не очень лезет в глаза?

Да, не лезет в глаза, только там угол, если не ошибаюсь 127 градусов, к сожалению никакой стабилизации в ГоПрошке нет, да и не особо она нужна там за свои деньги.

ADF;bt64327

Пример

Да такие конструкции встречал, но он заточен именно на руку, в моем случае подвес надо будет выносить на штанге, да и вес подвеса как в примере будет очень большой.

Цель моего подвеса не максимально стабильная картинка, к этому тоже надо стремиться, а чтобы максимально долго движущаяся модель находилась в близком расстоянии от камеры, вот пожалуй и все. Все остальное конечно будет делаться видео монтажем. Вот тут мое видео, пробовал снимать ГоПро и потом замедлять видео, там начиная с 1-й минуты есть прыжки, снято было с руки, пытался отслеживать модель, но расстояние было около 2-х метров до модели. Вот такой эффект, только еще для более ближней съемки я хочу получить.

drozd79

Немного поработал сегодня своим ЧПУ ;D, сделал стойку для крепления маленькой сервы и верхнюю планку, к которой будет крепиться весь подвес к качалке большой сервы. Добавил фото.

drozd79

Вообщем, доделал механику подвеса, получается прикольно, попробую подключить к приемнику и подвигать подвесом с пульта:

drozd79

И так, наконец-то приехал мне нунчак и WMP, праздники сделали свое дело, шла посылка больше месяца. Также раньше был куплен контроллер Arduino mini Pro. Посидел несколько вечеров, поковырялся, и понял, что есть проблемка, не могу связать нунчак и ардуино. До этого усиленно юзал тему про MultiWii в коптерной теме. Вроде все просто, но в тоже время и не все понятно. В сети нашел множество проектов подключения нунчака для управления сервой, что в принципе мне и нужно. Вот например тут www.windmeadow.com/node/42 . Но у меня данный код не заработал, тупо скапировал и попытался залить в ардуино, выскочило пару ошибок, исправил их. Суть в другом. В мониторе вижу, что Ардуинка пытается общаться с нунчаком, но все данные с нунчака с акселерометра и с джойстика идут в виде чисел 255 и 1-чек для двух кнопок. Такое впечатление, что все-таки не работает нунчак или слишком большая скорость для клона нунчака. Поэтому прошу помощи, кто может посмотреть и подправить код, где ошибка. И еще в MultiWii есть такое понятие в коде, как уменьшение скорости передачи в шине I2C, как в моем случае можно уменьшить скорость? Вот код для подключения нунчака к ардуино из ссылки выше, буду очень признателен в помощи:

#include <Wire.h>
#include <string.h>

#undef int
#include <stdio.h>

uint8_t outbuf[6]; // array to store arduino output
int cnt = 0;
int ledPin = 13;

void
setup ()
{
beginSerial (19200);
Serial.print (“Finished setup\n”);
Wire.begin (); // join i2c bus with address 0x52
nunchuck_init (); // send the initilization handshake
}

void
nunchuck_init ()
{
Wire.beginTransmission (0x52); // transmit to device 0x52
Wire.send (0x40); // sends memory address
Wire.send (0x00); // sends sent a zero.
Wire.endTransmission (); // stop transmitting
}
void
send_zero ()
{
Wire.beginTransmission (0x52); // transmit to device 0x52
Wire.send (0x00); // sends one byte
Wire.endTransmission (); // stop transmitting
}

void
loop ()
{
Wire.requestFrom (0x52, 6); // request data from nunchuck
while (Wire.available ())
{
outbuf[cnt] = nunchuk_decode_byte (Wire.receive ()); // receive byte as an integer
digitalWrite (ledPin, HIGH); // sets the LED on
cnt++;
}
// If we recieved the 6 bytes, then go print them
if (cnt >= 5)
{
print ();
}

cnt = 0;
send_zero (); // send the request for next bytes
delay (100);
}

// Print the input data we have recieved
// accel data is 10 bits long
// so we read 8 bits, then we have to add
// on the last 2 bits. That is why I
// multiply them by 2 * 2
void
print ()
{
int joy_x_axis = outbuf[0];
int joy_y_axis = outbuf[1];
int accel_x_axis = outbuf[2] * 2 * 2;
int accel_y_axis = outbuf[3] * 2 * 2;
int accel_z_axis = outbuf[4] * 2 * 2;

int z_button = 0;
int c_button = 0;

// byte outbuf[5] contains bits for z and c buttons
// it also contains the least significant bits for the accelerometer data
// so we have to check each bit of byte outbuf[5]
if ((outbuf[5] >> 0) & 1)
{
z_button = 1;
}
if ((outbuf[5] >> 1) & 1)
{
c_button = 1;
}

if ((outbuf[5] >> 2) & 1)
{
accel_x_axis += 2;
}
if ((outbuf[5] >> 3) & 1)
{
accel_x_axis += 1;
}

if ((outbuf[5] >> 4) & 1)
{
accel_y_axis += 2;
}
if ((outbuf[5] >> 5) & 1)
{
accel_y_axis += 1;
}

if ((outbuf[5] >> 6) & 1)
{
accel_z_axis += 2;
}
if ((outbuf[5] >> 7) & 1)
{
accel_z_axis += 1;
}

Serial.print (joy_x_axis, DEC);
Serial.print (“\t”);
Serial.print (joy_y_axis, DEC);
Serial.print (“\t”);
Serial.print (accel_x_axis, DEC);
Serial.print (“\t”);
Serial.print (accel_y_axis, DEC);
Serial.print (“\t”);
Serial.print (accel_z_axis, DEC);
Serial.print (“\t”);

Serial.print (z_button, DEC);
Serial.print (“\t”);
Serial.print (c_button, DEC);
Serial.print (“\t”);
Serial.print (“\r\n”);
}

// Encode data to format that most wiimote drivers except
// only needed if you use one of the regular wiimote drivers
char
nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
return x;
}

drozd79

Там по ссылке еще человек тоже что-то говорит про изменение скорости и есть вот такая часть кода :
#define ATMEGA8

#ifndef CPU_FREQ^M
#define CPU_FREQ 16000000L
#endif

#ifndef TWI_FREQ^M
#define TWI_FREQ 100000L
#endif

Это и есть изменение скорости шины I2C, это нужно вставить в начало основного кода? Да забыл указать, что нунчак питаю +5В, может быть в этом проблема и нужно подать +3.3В? Вроде как для MultiWii, народ не заморачивается и летает на 5 В.

drozd79

И так, хочешь что-то сделать хорошо, сделай это сам 😃 ! Вообщем поиск рулит. Научился дружить нунчак с сервой, теперь буду править код под свои задачи!

drozd79

Проект закрыт! Снял вот этот ролик камерой ГоПро просто привязанной к палке, лучше человеческой руки нет стабилизатора 😁. Да и момент там есть, когда модель прилетела в камеру, думаю подвес бы не выжил при таком столкновении, а тут только тяга на модели сломалась.

Многие скажут зря потратил время! Не так, опыт бесценен, получил навыки в работе с Ардуиной, уже хорошо. Пригодиться в других проектах. К тому же подвес может пригодиться на гексе! Собираю NAZA на раме F550, но это уже совсем другая история…

This site will not work without javascript!
This site will not work if cookies are completely disabled.
Site is offline