FriendlyArm. Работаем с камерой CAM130.

ARM
Так получилось, что свою плату mini2440 я заказывал в комплекте с камерой CAM130, которая присоединяется на коннектор CON7 на плате. Тогда я думал о цифровой обработке изображений, распознавании лиц и объектов и т.д. и т.п. (особенно когда есть вещи типа OpenCV). Однако, качество картинки с камеры оказалось очень и очень плохим, поэтому я как-то забил на работу с ней, но может оно кому-нибудь пригодится.

Работать с камерой будем через стандартный драйвер, который уже интегрирован в образ ОС. Я сначала хотел сам написать нужную функцию для захвата, ибо особо сложного там ничего нет, операции примерно как при работе с GPIO, но потом наткнулся на какого-то индуса, который уже реализовал класс для работы с камерой. У него в описании было написано, что этот класс еще позволяет ставить на картинки геометки (если подключен GPS приемник), однако в коде я ничего связанного с обменом данными с GPS приемниками не нашел. Хотя если кому надо, то общение с GPS приемником реализуется очень просто, нужен приемник, выдающий инфу через UART или RS-232.
Итак, создаем новый проект в студии, на форму кладем три кнопки, pictureBox и не забываем кинуть таймер. Должно получиться примерно так:

Далее подключаем к проекту файл clsCamera.cs. В нем находятся функции открытия устройства «камера» и захвата с нее изображений. Добавляем необходимые нам namespace
using System.Drawing.Imaging;
using GPLogger; //класс индуса из файла clsCamera.cs

Теперь можно объявить объект cam1:
clsCamera cam1 = new clsCamera();

В обработчике события нажатия кнопки «Capture» вызовем функцию захвата изображения с камеры
private void btCapture_Click(object sender, EventArgs e)
        {
            cam1.CaptureImage("test.jpg"); //вызываем штатную функцию класса clsCamera для захвата картинки с камеры в графический файл
            pictureBox1.Image = new Bitmap("test.jpg"); //выводим картинку на pictureBox
        }


Все. Теперь нажимая кнопку, можно увидеть на форме картинку с камеры. Статическую. А я хочу динамики, т.е. видео. Поэтому недолго думая я поместил две строчки из обработчика нажатия кнопки в обработчик Tick() таймера. Теперь при нажатии кнопки «Start» каждые 10 мс картинка захватывается с камеры и выводится на pictureBox. Получается что-то типа видеопотока:). Кнопка «Stop» останавливает таймер. Картинки по умолчанию сохраняются в корень My Device.


Пример картинки с камеры:


Полезные ссылки:
Даташит на камеру CAM130 http://friendlyarm.net/dl.php?file=CAM130.pdf
Проект для VS2008 http://rghost.ru/20321861
Файл clsCamera.cs http://rghost.ru/20321761

Комментарии (18)

RSS свернуть / развернуть
240px × 180px
Мда. Шел 2011 год…

Хотя можно и от телефона камеру присоединить наверняка.
0
можно еще по USB вебку подключить, правда под CE нужны дрова, а под linux есть пересобранный mjpegstreamer и соответствующий модуль ядра. А эту камеру в принципе можно использовать для распознавания цветов, простых геометрических фигур или сделать робота, ездящего по полосе, только сделать хорошую подсветку.
0
думаете, проц платы потянет обработку картинок с большим разрешением? :)
0
круто!!!
респектую
0
Классно, что продолжаешь писать про Friendly ARM. Что следующее на очереди? :)
0
Наверное напишу как подключить БТ-донгл за 3$ через USB-хост для работы по SPP. Еще будет что-нибудь про SPI и I2C (если не найду железки для подключения, то будет только теория).
0
А на платке вроде бы должен быть EEPROM с I2C интерфейсом?
0
Ага, я уже когда написал, вспомнил, что EEPROM есть, значит будем писать в него и читать из него. А на spi скорее всего какой-нибудь датчик температуры повешу, если до магазина доберусь.
0
качество картинки с камеры оказалось очень и очень плохим
По мне, так вполне нормальное качество картинки с камеры. Или я чего-то не догоняю?
0
  • avatar
  • tank
  • 05 сентября 2011, 09:34
Кстати, сколько мегапикселей у камеры?
0
1.3 MPx, там оптика никакая и матрица не очень хорошего качества. А так да, для такой штуки вполне себе ничего камера.
0
В народе ходит инфа, что надо поиграться с настройками…
0
И все будет ОК
0
На плате с камерой много пыли похоже «забили» вы на неё надолго
0
ну да, она лежала довольно долго на полке без упаковки, поэтому слегка запылилась, да и пришла она ко мне уже слегка запыленная:)
0
А если подцепить это?
0
  • avatar
  • Geban
  • 07 сентября 2011, 11:39
Можно и такую прицепить, просто мне сейчас это уже не так интересно, поскольку там где я планировал использовать эту камеру с мини2440, стоит другая плата и обычная IP камера с WiFi.
0
добрый день! хотел от суда скачать Проект для VS2008 rghost.ru/20321861
Файл clsCamera.cs rghost.ru/20321761. но файл был удален. если у кого то есть, скиньте суда feyzy@mail.ru пожалуйста.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.