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

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

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

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

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

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

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

  • 3518
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, но это уже совсем другая история…