"Кухонный" переключатель на две камеры для MultiWii

После посадки в лесу по командам диспетчеров без VFR, я подумал, что было бы неплохо иметь камеру специально для посадки, направленную вниз. У меня как раз есть 1-3 г. камера, и я решил поставить ее на мини-коптер и потренироваться.

Очевидную идею с сервой я проигнорировал, поскольку: а) серва тяжелая (у меня есть только 4г.), б) она дрожит, может сгореть и обесточить борт, может заклинить; в) провод от камеры ломается от перегибов с) не люблю момент когда камера опускается и картинка проносится по экрану 😁.

Понадобился легкий видео-переключатель для двух камер и я его сделал на 74HC4052N. Кто-то посоветовал эту микруху мне когда-то, спасибо ему 😒. В качестве управляющего сигнала я запрограммировал сигнал LEDMAX с платы MultiWii 2.1. Слава open-source, можно легко и просто добавлять функции. Сделано так - на передатчике 7 канал подключен к тумблеру, а в MultiWii 7 канал с приемника - к D8 (#define RCAUXPIN8) как AUX2 (AUX1 у меня для переключения режимов полета и включения прожектора).

Схема


Изделие

Камера

Изменение в программе

Кусочки оригинального MultiWii кода приведены чтобы показать место вставки изменений.

config.h

// AP; START; Camera switch at BOXLEDMAX;
    #define CAMERA_SWITCH_PIN A1 // Pin to turn the camera switch on/off;
// AP; END; Camera switch at BOXLEDMAX;

MultiWii_2_1.ino

void setup() {
...
  POWERPIN_OFF;
// AP; START; Camera switch at BOXLEDMAX;
  #ifdef CAMERA_SWITCH_PIN
    pinMode(CAMERA_SWITCH_PIN, OUTPUT);   // Pin to turn the camera switch on/off;
    digitalWrite(CAMERA_SWITCH_PIN, LOW);   // Turn it off;
  #endif
// AP; END; Camera switch at BOXLEDMAX;
...

        #ifdef LANDING_LIGHTS_DDR
          auto_switch_landing_lights();
        #endif

// AP; START; Camera switch at BOXLEDMAX;
    #ifdef CAMERA_SWITCH_PIN
      digitalWrite(CAMERA_SWITCH_PIN, rcOptions[BOXLEDMAX]);   // Turn the camera switch on/off;
    #endif
// AP; END; Camera switch at BOXLEDMAX;
        break;
...

Все работает, все переключается как надо. Понадобилось правда подкрутить усиление сигнала на видео-сплитере на наземной станции - видимо микросхема его чуть-чуть ослабляет. Но поскольку камера у меня с узким углом зрения, садиться по ней невозможно 😃 Надо менять объектив. Если у кого есть лишний объектив на 1-3 г. камеру - я готов обсудить приобретение 😃

Если надо сделать такой свитч для 3-х камер - надо задействовать вход S1 в дополнение к S0, и подключить его к свободному выходу платы, например, A2. Вообще микросхема может переключать до 4-х камер и имеет 2 параллельных канала с общей адресацией. Можно было бы задействовать и второй канал, например под фару - передавать управляющий сигнал фаре, подсвечивающей текущей камере. Но для двух камер для этого можно брать исходный сигнал с платы…

Еще я думал объединить два канала параллельно, чтобы уменьшить сопротивление канала в два раза - сейчас там 80 Ом, было бы 40. Но во-первых, и так работает (после регулировки усиления на наземной станции), а во-вторых, я опасался race conditions, когда один канал включится чуть быстрее чем другой, и выход одной камеры окажется соединенным с выходом другой - кто знает, как им это понравится.

  • 1575
Comments
P_L_Z

…а ещё наверное можно дописать чтобы когда коптер видит на небольшой высоте и начинает снижение камера сама переключалась, чтобы не занимать канал

Dikorass

Ага,пролетаешь низко над землёй и видишь мелькающий зелёный ковер…И кувыркание земля-небо после…

P_L_Z
Dikorass;bt102229

Ага,пролетаешь низко над землёй и видишь мелькающий зелёный ковер…И кувыркание земля-небо после…

так и написал же чтобы только при зависании активировалось , или даже по таймеру после висения несколько сек и начале снижения