Показано с 1 по 8 из 8
  1. #1
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Коммутация сигнала с видеокамер

    Задача такая:
    В авто имеются три видеокамеры, монитор, ардуино.

    Задача:
    При включении заднего хода включить камеру1, при включении левого поворотника - камеру2, правого - камеру 3.

    Питание на камеры можно подавать через специальный шилд из 8ми реле.

    Как коммутировать сигнал с 3х видеокамер?

    Вариант 1:
    Соединить видеокабели со всех трехкамер воедино (оплетки и и соответствующие центральные провода) и управлять их питанием. Т.е. видеосигнал будет только с той камеры которая запитана.

    Вариант 2:
    Оплетки видеокабеля соединить воедино, а центральные жилы видеокабеля с трех камер коммутировать тремя реле, также и три реле на питание. Т.е. каждой камерой управляет два реле, одно на питание, второе на видео сигнал.

    Посоветуйте как правильно?
    Последний раз редактировалось kadushkin; 22.08.2012 в 22:14.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Коммутация сигнала с видеокамер

    Второй вариант правильный , коммутировать камеры можно двумя реле и про движении в перед(фронтальная камера) все реле будут обесточены
    Последний раз редактировалось Chip; 22.08.2012 в 22:42.

  3. #3
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Коммутация сигнала с видеокамер

    Прикупил все необходимое, буду собирать.

    Как-то можно на один монитор одновременно сигнал с двух камер вывести?

  4. #4
    Пользователь Аватар для poraboloid
    Регистрация
    30.11.2009
    Возраст
    42
    Сообщений
    39
    Вес репутации
    185

    По умолчанию Re: Коммутация сигнала с видеокамер

    Цитата Сообщение от kadushkin Посмотреть сообщение
    Прикупил все необходимое, буду собирать.

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

  5. #5
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Коммутация сигнала с видеокамер

    Собрал коммутатор камер на базе seeduino mega 1280
    Работает!!!

    Итак:
    Три камеры, боковые и задняя.
    При включении поворотника включается левая или правая камера.
    При включении заднего хода - задняя.
    Кнопкой можно переключать все три камеры при движении задом.

    8ми релюшный модуль для ардуино почти полностью использовал.
    Три реле на питание камер, три на видео сигнал.
    Еще одно реле пришлось использовать, чтобы сигнал на DVD монитор подавать, чтобы он автоматом включался на видео.

    Пришлось поизголяться с кодом, так как сигнал с поворотников не постоянный, а "мигающий"...

    Вот скетч, покритикуйте, может кто что-то изящнее предложит:
    Код:
    #include <EEPROM.h>
    #include <MsTimer2.h>
    //#include <avr/wdt.h> 
    
    #define DEBUG 0  // используется при отладке
    
    //#define  HandBreakPin 14  // Контакт  для сигнала от ручного тормоза
    //#define  SmallLightPin 15  // Контакт для сигнала от габаритов
    #define  LeftTurnPin 36  // Контакт для сигнала от левого поворотника
    #define  RightTurnPin 34  // Контакт  для сигнала от правого поворотника
    #define  RearGearPin 35  // Контакт для сигнала заднего хода
    #define  ButtonPin 12 // Контакт для кнопки
    #define Relay_Camera1_12V_Pin 30// Контакт для реле - питание камеры 1
    #define Relay_Camera2_12V_Pin 31// Контакт для реле - питание камеры 2
    #define Relay_Camera3_12V_Pin 32// Контакт для реле - питание камеры 3
    #define Relay_DVDCenter_12V_Pin 33// Контакт для реле - питание DVD
    #define Relay_Camera1_Video_Pin 26// Контакт для реле - сигнал с камеры 1
    #define Relay_Camera2_Video_Pin 27// Контакт для реле - сигнал с камеры 2
    #define Relay_Camera3_Video_Pin 28// Контакт для реле - сигнал с камеры 3
    
    void setup() 
    {
    //  wdt_enable (WDTO_8S); // сторожевой таймер от зависания
    pinMode(LeftTurnPin, INPUT);// Контакт  для сигнала от левого поворотника
    digitalWrite(LeftTurnPin, HIGH); //внутренняя подтяжка входа +++++ 
    pinMode(RightTurnPin, INPUT);// Контакт  для сигнала от правого поворотника
    digitalWrite(RightTurnPin, HIGH); //внутренняя подтяжка входа +++++ 
    pinMode(RearGearPin , INPUT);// Контакт  для сигнала от заднего хода
    digitalWrite(RearGearPin , HIGH); //внутренняя подтяжка входа +++++ 
    
    pinMode(ButtonPin , INPUT);// Контакт  для сигнала от кнопки
    digitalWrite(ButtonPin , HIGH); //внутренняя подтяжка входа +++++ 
      
      
    pinMode(Relay_Camera1_12V_Pin, OUTPUT);
    pinMode(Relay_Camera2_12V_Pin, OUTPUT);
    pinMode(Relay_Camera3_12V_Pin, OUTPUT);
    pinMode(Relay_DVDCenter_12V_Pin, OUTPUT);
    pinMode(Relay_Camera1_Video_Pin, OUTPUT);
    pinMode(Relay_Camera2_Video_Pin, OUTPUT);
    pinMode(Relay_Camera3_Video_Pin, OUTPUT);
    
    #if DEBUG
    Serial.begin(115200); 
    #endif
      
    }
    
    
    
    volatile unsigned long Time_On=0;
    int RearCamNum=1;
    #define SignalOn 1
    #define SignalOff 0
    
    // главный цикл
    void loop()
    {
    //wdt_reset();
    int Camera_Num=0;
    //boolean Start_Video=false;
    if (digitalRead(RearGearPin)==SignalOff) {RearCamNum=1;} // если задняя передача выключена, то установить значение камеры задней =1
    if ((digitalRead(RearGearPin)==SignalOn) && (digitalRead(ButtonPin)==SignalOff)) //если задняя передача включена и нажата кнопка, то сменить камеру 
    {
    RearCamNum++;
    if (RearCamNum>3) {RearCamNum=1;}
    }
    
    if ((digitalRead(LeftTurnPin)==SignalOn) && (digitalRead(RightTurnPin)==SignalOff)) {Camera_Num=2; Time_On=millis();}
    if ((digitalRead(LeftTurnPin)==SignalOff) && (digitalRead(RightTurnPin)==SignalOn)) { Camera_Num=3; Time_On=millis();}
    if (digitalRead(RearGearPin)==SignalOn) {Camera_Num=RearCamNum; Time_On=millis();}
    
    if ((digitalRead(LeftTurnPin)==SignalOn) && (digitalRead(RightTurnPin)==SignalOn) && (digitalRead(RearGearPin)==SignalOn)) {Cameras_OFF();}
    //if ((digitalRead(LeftTurnPin)==SignalOff) && (digitalRead(RightTurnPin)==SignalOff) && (digitalRead(RearGearPin)==SignalOff)){Cameras_OFF();}
    
    
    
    #if DEBUG
    Serial.println(digitalRead(LeftTurnPin));
    #endif
    
    
    //if ((Start_Video) && (Camera_Num>0)) 
    //{
    if ((Time_On+1000)>millis()) {Camera_ON(Camera_Num);} //если время после события (поворота или заднего хода) не болле 1 сек, то камеру включить
    else {Cameras_OFF();}
    //}
    
    //if ((Time_On+1000)<millis())   {Cameras_OFF();}
    
    delay(300);
    }
    
    
    void Cameras_OFF()
    {
      Camera_OFF(1);
      Camera_OFF(2);
      Camera_OFF(3);  
    }
    
    void Camera_ON(int Camera_Num)
    {
     if (Camera_Num==1)
    {
      Camera_OFF(2);
      Camera_OFF(3);
    digitalWrite(Relay_Camera1_12V_Pin, HIGH);
    digitalWrite(Relay_Camera1_Video_Pin, HIGH);
    digitalWrite(Relay_DVDCenter_12V_Pin, HIGH);
    }
    
    if (Camera_Num==2)
    {
      Camera_OFF(1);
      Camera_OFF(3);
    digitalWrite(Relay_Camera2_12V_Pin, HIGH);
    digitalWrite(Relay_Camera2_Video_Pin, HIGH);
    digitalWrite(Relay_DVDCenter_12V_Pin, HIGH);
    }
    
    if (Camera_Num==3)
    {
      Camera_OFF(1);
      Camera_OFF(2);
    digitalWrite(Relay_Camera3_12V_Pin, HIGH);
    digitalWrite(Relay_Camera3_Video_Pin, HIGH);
    digitalWrite(Relay_DVDCenter_12V_Pin, HIGH);
    } 
    }
    
    void Camera_OFF(int Camera_Num)
    {
     if (Camera_Num==1)
    {
    digitalWrite(Relay_DVDCenter_12V_Pin, LOW);  
    digitalWrite(Relay_Camera1_12V_Pin, LOW);
    digitalWrite(Relay_Camera1_Video_Pin, LOW);
    }
    
    if (Camera_Num==2)
    {
      digitalWrite(Relay_DVDCenter_12V_Pin, LOW); 
    digitalWrite(Relay_Camera2_12V_Pin, LOW);
    digitalWrite(Relay_Camera2_Video_Pin, LOW);
    }
    
    if (Camera_Num==3)
    {
      digitalWrite(Relay_DVDCenter_12V_Pin, LOW); 
    digitalWrite(Relay_Camera3_12V_Pin, LOW);
    digitalWrite(Relay_Camera3_Video_Pin, LOW);
    } 
    }
    Последний раз редактировалось kadushkin; 26.08.2012 в 23:11.

  6. #6
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Коммутация сигнала с видеокамер

    Кстати одна неприятность - после сборки на одной из боковых камер (левой) пропали парковочные линии и изображение отзеркалилось.

    Интересно, что то же самое было на правой камере, но быстро включив-выключив питание, все нормализовалось. На левой вроде тоже переключалось сначало как-то само (по непонятному алгоритму), а теперь - нет. Левая и правая это чисто условно, они полностью одинаковые...

    Что-то слышал, про то как в таких камерах режимы переключаются перебором (нормальное изображение, зеркальное, накладка парковочных линий) и что-то слышал про сброс питания...

    В чем может быть дело и как отзеркалить обратно?
    Камера http://item.taobao.com/item.htm?id=7709718190
    На фотках кстати, изображения с парковочными линиями и без.

    Никаких перемычек и лишних проводов: 4 контакта - +12В, земля, видел сигнал, земля видеосигнала. Камера кстати почему-то работает и без земли, наверное земля может идти по земле видеосигнала.
    Последний раз редактировалось kadushkin; 27.08.2012 в 22:44.

  7. #7
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Коммутация сигнала с видеокамер

    Земля соединена по оплетке

  8. #8
    Новичок
    Регистрация
    01.10.2011
    Возраст
    37
    Сообщений
    6
    Вес репутации
    157

    По умолчанию Re: Коммутация сигнала с видеокамер

    Нарисуй пожалуйста схему, хочу подобное сделать только на 4-5 камер, спереди сзади по бокам вниз будут смотреть и одну на обгон? а в arduino новичок... спасибо
    Последний раз редактировалось anderlei; 05.11.2012 в 09:53.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •