dron-r

Stm32F4 И Аналоговая Камера

16 сообщений в этой теме

dron-r    13

Добрый день.

Хочу научиться подключать аналоговую видеокамеру к STM32F4 (дискавери).

У меня есть такая камера: 690TVL Ultra WDR Pixim SEAWOLF HD CCTV Mini Camera 2.8mm Lens OSD. У нее 3 выхода: +, -, сигнал.

Как можно ее подключить к STM32? В дальнейшем хочу к картинке примешать текстовые данные (OSD).

Кто соединял камеры, подскажите что смотреть/читать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 421

я не соединял, но покуривал вопрос. Камеру с аналоговым выходом будет сложновато подключить. Вообще камеры это не для STM-ок. Нужен как минимум фрэймбуфер, чтобы данные обрабатывать и все это еще и на довольно высоких скоростях. Это уже область применения ПЛИС, а не МК. Для утилитарных задач типа отловить по строкам чтото еще пойдет, а для полноценной покадровой (черезкадровой) обработки видео даже четырехсотки будет маловато. Поэтому забил на камеры

хз, возможно курил не тут траву. Поэтому мое мнение не база

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andryxa    230

Для наложения текста на видео, камеру к STM подключать не обязательно, достаточно выделить горизонтальные и вертикальные синхроимпульсы из видеосигнала и подать их на микроконтроллер, в котором будет генерироваться текст. Сгенерированный текст подмешивается к сигналу видео и вы получаете видео с текстом или графикой. Для выделения синхроимпульсов можно воспользоваться микросхемой LM1881.

Изменено пользователем andryxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 421

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
o_l_e_g    1 642

Подмешивать в видеосигнал, умели и медленные 8-разрядные ЦПУ, вспомните телевизоры 4-го поколения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 421

ну собсна если речь идет о генерации изображения, то это умели еще спектрумы ) Не совсем правда процессором, но с его участием. Генерация кадра и чтение с камеры это кардинально разные задачи по производительности

Изменено пользователем mail_robot

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КЭС    1 175

Кто соединял камеры, подскажите что смотреть/читать...

Я делал на основе этого градусник. Это не STM, но для понимания, думаю сойдет. Сразу оговорюсь: если решите повторить, синхроимпульсы выделяйте отдельно (LM1881), в исходном виде схема нестабильна.

Прошу прощения за качество скриншота - делал через TeamViewer.

post-163091-0-34538000-1455292989_thumb.jpg

ПС. Градусник в центре, т.к. раньше был другой регистратор, там в кадре свободно было. Переписывать лень - надо на чердак лезть за МК :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КЭС    1 175

Температура от ds18B20 - там по исходнику понятно, куда цеплять и про LM1881 есть коммент. Извиняюсь за кривость кода - дела давние :) Сразу скажу: прерывания приходится отключать, поэтому изо иногда подергивается. Надо было на LM335 делать или подобных - тупо напряжение мерить, да не было тогда... Да и не серьезно все это, так, по-играться :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
artos5    290

Понял, спасибо . Попробую расковырять код . А ПИКа хватает для ОСД? Ему не тяжело на 25МГц работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
КЭС    1 175

По даташиту вроде 20 МГц потолок (не помню), но работает. По хорошему, надо бы еще в два-три раза поднять (на изо хорошо просматривается разрыв между соседними пикселами по горизонтали). Про вертикаль вообще молчу: счет строк ведется подряд после кадр. синхроимпульса, что при чересстрочной развертке (а именно такая используется в ТВ) приводит к прорисовке OSD через строку. Все это хорошо видно на моем скриншоте. Но это задача не для этого мк. Еще раз повторю: это не более чем игрушка.

ПС. Если надумаешь повторить, видеосигнал подавай через резистор несколько десятков Ом. Так, как показано на схеме из ссылки, может не заработать, если Rвнутр. источника видео достаточно мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: DmitryDDDD
      Здравствуйте, имеется задача передачи данных от stm32 на ПК и от ПК в stm по UART. Имеется stm32f411e-disco, созданная программа на пк в Qt creator. UART передатчик - CH340. Программа для stm - Keil, настройка в cubeMX.
      Основные выдержки из кода Qt (mainwindow.cpp):
       
      C++ (Qt)Выделить код
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
      // Настройка UART      serial = new QSerialPort(this);      serial->setPortName("com4");      serial->setBaudRate(QSerialPort::Baud115200);      serial->setDataBits(QSerialPort::Data8);      serial->setParity(QSerialPort::NoParity);      serial->setStopBits(QSerialPort::OneStop);      serial->setFlowControl(QSerialPort::NoFlowControl);      serial->open(QIODevice::ReadWrite);      /*serial->write("ok*");  */                                                          connect(serial, SIGNAL(readyRead()), this, SLOT(serialReceived()));   // Запись принятых даннх в текстовое окно void MainWindow::serialReceived() {     QByteArray ba;     ba=serial->readAll();     ui->label->setText(ba);     qDebug()<<ba; }   // Отправка "1" и "2" в зависимости от нажатой кнопки void MainWindow::on_pushButton_clicked() {   serial->write("1"); }   void MainWindow::on_pushButton_2_clicked() {   serial->write("2"); }
      Настроен UART на прием и передачу. При нажатии какой-либо кнопки по UART передаётся 1 или 2ка. Так же принятая информация отображается в текстовом окне label. При замыкании RX и TX у CH340 отправленная 1 или 2 тут же принимаются программой.

      Программный код для stm создан в CubeMX. Там подключено два UART, один на приём, другой на передачу (можно настроить один для работы в 2 направления).
      Основные выдержки из кода Keil (main.c):
      //Настройка UART
      serial = new QSerialPort(this);
      serial->setPortName("com4");
      serial->setBaudRate(QSerialPort::Baud115200);
      serial->setDataBits(QSerialPort::Data8);
      serial->setParity(QSerialPort::NoParity);
      serial->setStopBits(QSerialPort::OneStop);
      serial->setFlowControl(QSerialPort::NoFlowControl);
      serial->open(QIODevice::ReadWrite);
      /* serial->write("ok*"); */ // Transmiting "ок" to COM Port
      connect(serial, SIGNAL(readyRead()), this, SLOT(serialReceived()));
       
      // Отображение принятых данных в текстовом меню label
      void MainWindow::serialReceived()
      {
      QByteArray ba;
      ba=serial->readAll();
      ui->label->setText(ba);
      qDebug()<<ba;
      }
       
      // Отправка 1 или 2 в зависимости от нажатой кнопки
      void MainWindow::on_pushButton_clicked()
      {
      serial->write("1");
      }
       
      void MainWindow::on_pushButton_2_clicked()
      {
      serial->write("2");
      }
       
      Выдержки из кода в Keil (main.c):
       
      // Настройка UART
      static void MX_USART1_UART_Init(void)
      {
        huart1.Instance = USART1;
        huart1.Init.BaudRate = 115200;
        huart1.Init.WordLength = UART_WORDLENGTH_8B;
        huart1.Init.StopBits = UART_STOPBITS_1;
        huart1.Init.Parity = UART_PARITY_NONE;
        huart1.Init.Mode = UART_MODE_TX_RX;
        huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
        huart1.Init.OverSampling = UART_OVERSAMPLING_16;
        if (HAL_UART_Init(&huart1) != HAL_OK)
        {
          _Error_Handler(__FILE__, __LINE__);
        }
      }
      // 2 массива для принятия и отправки данных
        uint8_t strTX[1];
          uint8_t strRX[1];
      // Попытка сделать что-то адекватное
              int strTX = 1;
      while(1) {        
              HAL_UART_Transmit_IT(&huart2, (uint8_t*) strTX, 1);
            HAL_UART_Receive_IT(&huart2, (uint8_t*) strTX, 1);
      Код в keil явно кривой, в Qt вроде всё работает. Получается передать из stm в Qt, но из Qt в stm нет. 
      Нужно получить следующее: нажимаем в Qt одну из двух кнопок, отправляется в stm либо 1, либо 2 в зависимости от выбранной кнопки. Stm принимает, обрабатывает, если 1, то загорается один светодиод, если 2, то другой. Дальше stm отправляет обратно в Qt информацию о том, какой светодиод загорелся. 

      P.S: довольно далек от программирования, но стараюсь разобраться. Буду благодарен любой помощти, некоторые скриншоты прилагаю.



    • Автор: neon2k
      Доброго времени!

      Делаю часы на газоразрядных индикаторах, которые питаются от 180в. Сделал плату, которая получает на вход ШИМ 30кГц и 5в, а выдает 180в.

      На Arduino сгенерировать 30кГц получалось, однако сейчас необходимо это сделать на stm32. Есть знатоки?)

      Спасибо!
    • Автор: qwer qwer
      Требуется разработать блок управления сплит-системой с функцией обучения по ИК каналу через RS-485 интерфейс на базе МК STM32. Есть ТЗ и список команд управления. Разработка в 2 этапа: 1-разработка принципиальной электрической схемы с указанием элементов на основе структурной из ТЗ (можно в карандаше), 2-написание ПО для МК STM32 в соответствии с ТЗ и списком команд. Оплата поэтапно. Кому интересно - уточняйте детали и оценивайте стоимость работы.
      Блок управления по ИК каналу Описание.docx
      Команды MODBUS.xlsx
    • Автор: Korchagin
      В наличии 2 штуки. Цена 1300 рублей за штуку. Новые в упаковке производителя.
  • Сообщения

    • Это даже очень удобно! Особенно, когда надо снять амплитудно-частотную характеристику! В арсенале радиолюбителя должно быть два генератора НЧ. Плавного перестраиваемого и с фиксированными частотами. Это вносит удобство при проверке и наладке устройств.
    • В заводских бывает ставят конденсаторы ну примерно 100пФ
    • И опять получите сосули. Есть же замок желоба для таких целей.
    • Всё правильно, только стабильность амплитуды, особенно на низких частотах, к этому отношения не имеет.
    • Сидит семья чукча у своего чума. Старший сын спрашивает: - Папа, а почему меня назвали Северный олень?
      Отец ему и говорит: - Когда ты родился, мимо нашего чума пробегал северный олень...
      Дочка: - А почему меня назвали Полярная звезда?
      - А когда ты появилась над нашим чумам горела полярная звезда...
       Младший: - А почему...
      - А ты вообще молчи, Рванная резина!!! ----------------------------------------------------------------------------------------------------------------------------------------------------------- Новейший российский микропроцессор имеет не только повышенное быстродействие и уменьшенное энергопотребление, но и четыре удобные ручки для его переноски грузчиками, и улучшенную систему охлаждения, легко подключаемую к обычному водопроводному крану. 
      ----------------------------------------------------------------------------------------------------------------------------------------------------------- Беседуют две девицы:
      - Хочу выйти замуж за военного. Как думаешь в каком звании лучше брать мужа?
      - Смотря чего ты хочешь. Можно брать либо лейтенанта, либо полковника.
      - А почему?
      - У лейтенанта денег, конечно, нет, но зато стоит всегда. А у полковника, конечно, уже не стоит, но зато денег много.
      - А майор?
      - Ну это самое плохое. Промежуточный случай - денег еще нет, а уже ничего не стоит...
      -------------------------------------------------------------------------------------------------------------------------------------------------------------------      Рабинович, как готовится омлет по-еврейски?
      — Для начала, таки занимаем у соседей три яйца, полстакана молока, ложку масла и щепотку соли…
      -------------------------------------------------------------------------------------------------------------------------------------------------------------------- Отель « Шерше аль фам » в Египте – навороченный, только почему-то на 2-м и 5-м этажах нагажено перед лифтом… Причем всё время обновляется! Может это такая  специальная  фишка, чтоб русские себя как дома чувствовали? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Встретились три фрaнцузa. Вино, шaмпaнское, коньяк. Выпили, посидели и культурно рaзошлись.
      Встретились трое русских. Водкa, сaмогон, пиво. Выпили, нaбили друг другу морды и культурно рaзошлись.
      Встретились три aрaбa. Обстреляли aвтобус, угнaли сaмолет и взорвaлись.
      Вот до чего доводит сухой зaкон. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Закономерность жизни: 10-40 лет: стоишь в автобусе, т.к. уступил место какой – то бабульке. 40-70 лет: стоишь в автобусе, т.к. тебе никто не уступил места. 70+ лет: стоишь в автобусе, т.к. если сядешь, то уже не встанешь. --------------------------------------------------------------------------------------------------------
       
    • Напряжение х2 конденсаторов 1-2Кв, 250В или 275В надпись это рабочее переменное напряжение,собственно они и включены паррелельно сети   Ого что и плёночники начали вздуваются?
    • Я примерно так и подумал что нужно рассчитывать на амплитудное значение то есть минимум 220*1.41. Себе-то я нашел в запасах древний КСО на 500В