Как я могу получить данные с камеры с помощью I2C и Arduino или Raspberry-pi 3?

У меня есть CMOS-камера, и у нее всего 3 контакта (v+, gnd и видеовыход), видеовыход представляет собой аналоговый сигнал.
Проведя некоторые исследования, я обнаружил, что в этой камере используется PC1089K CMOS-датчик, который имеет цифровой выход и соединение I2C, используемое для связи с последовательной памятью EEPROM (микросхема AT24C16K).
Я обнаружил контакты I2C, и мне нужно знать, Я могу использовать Arduino или Raspberry-pi для получения данных с камеры, чтобы отправлять видеопоток через Xbee.


person NYoussef    schedule 13.01.2017    source источник
comment
Разве я не говорил тебе купить цифровую камеру несколько недель назад? EEPROM на камерах обычно служат только одной цели. для хранения таких параметров, как время затвора, коэффициент усиления, IP-адрес и так далее. см. ответ ниже.   -  person Piglet    schedule 14.01.2017
comment
да, вы сделали, я просто не могу позволить себе новую камеру прямо сейчас, цена дорогая в моей стране. Но так как я трачу много времени зря работая с этой камерой, то думаю пора разобраться как купить новую камеру :). Так что спасибо @Piglet   -  person NYoussef    schedule 14.01.2017


Ответы (1)


Короткий ответ? Точно нет. Практически невозможно отправлять видеоданные через соединение с низкой пропускной способностью (например, I2C) без специального аппаратного компрессора.

Причина? Максимальная тактовая частота I2C составляет 400 кГц. Предположим, что каждый байт отправляется за 10 тактов (это немного больше, так как вам нужно отправить еще и адрес, но все же...). Это означает 40 кБ/с. Допустим, вы кодируете каждый пиксель только одним байтом (ОЧЕНЬ плохо, это настройка 256 цветов, см., например, это изображение). У вас 40к пикселей в секунду. Правильная скорость видео составляет 25 кадров в секунду, но давайте уменьшим до 1 кадра в секунду (вы будете видеть ОДНО изображение каждую секунду, например, когда вы открываете изображение с камеры низкого качества). поэтому каждое изображение имеет размер 40 тыс. пикселей. Имеется ввиду кадр примерно 240х180. Итак, у вас ОЧЕНЬ маленькое изображение (меньше, чем наихудшая настройка изображения на ютубе), с одной картинкой в ​​секунду, всего с 256 цветами, и это лучшее, чего вы можете добиться в лучших условиях... Нет, вы определенно можете 'т.

Кроме того, если вы сомневаетесь, прочтите руководство (или, в области электроники, техническое описание). Вы можете найти его, например, здесь.

Вы можете видеть, что интерфейс I2C помечен как ведущий (это означает, что камера ВЛАДЕЕТ шиной), и, прочитав немного больше, вы обнаружите, что единственное использование для этого — позволить пользователю (или дизайнеру) поместить I2C. EEPROM для предоставления значений инициализации для регистров.

Таким образом, единственный способ получить видео с камеры — через аналоговый порт. Другого интерфейса нет, и вы не можете использовать канал с низкой пропускной способностью (например, I2C или даже XBee) без сжатия.

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

  1. Получить Wi-Fi камеру
  2. Получите Raspicam и Raspberry и поделитесь видео по ссылке Wi-Fi.
  3. То же, что и выше, но с веб-камерой USB вместо raspicam.
  4. ...
  5. ...
  6. Откажитесь от этого проекта
  7. ...
  8. Используйте raspicam или usb, raspberry и Xbee (малина должна сильно сжимать видео, например, с помощью h264 или, если процессор может, h265)
  9. Используйте датчик cmos, который у вас есть, с периферийным устройством для сбора видео USB и малиной, затем сожмите видео и используйте Wi-Fi или ... Нет, по крайней мере, не xbee.
person frarugi87    schedule 13.01.2017
comment
датчик имеет цифровой выход. хотя я должен признать, что у того, кто задает подобные вопросы, не будет навыков, чтобы использовать это в ближайшее время. и усилия не стоят того в 2017 году - person Piglet; 14.01.2017
comment
@frarugi87 спасибо за информацию, думаю, мне нужна новая камера. - person NYoussef; 14.01.2017