2009-07-18 5 views
3

За последние два месяца я работал как простое приложение, используя библиотеку видения компьютера (OpenCV).встроенное приложение

Я хочу запустить это приложение непосредственно с веб-камеры без необходимости использования ОС. Мне любопытно узнать, может ли мое приложение быть сожжено в чипе, чтобы у него не было ОС для его запуска.

Ofcorse процесс может быть дорогостоящим, но мне просто интересно. У вас есть какие-то ссылки об этом?

пс: приложение написано на C.

+1

Я не уверен, что любая веб-камера может это поддержать. – Daniyar

+1

true, но я планирую добавить pic/chip –

+0

Если вы собираетесь добавить микроконтроллер pic, вы должны взглянуть на ссылки о разработке с ПОС. С помощью некоторого кода запуска для инициализации оборудования вы сможете это сделать. Конечно, это будет зависеть от того, как настроено аппаратное обеспечение, и если оно поддерживает ПОС. –

ответ

3

Да. Теоретически можно перенести приложение на чипы PIC.

Но ...

Есть компиляторы для чипа ПОС, однако, из-за ограничения микроконтроллера, вы можете обнаружить, что компилятор, а сам микроконтроллер слишком ограничены для компьютера видение работа, особенно если ваша первоначальная реализация приложения была сделана на полномасштабный ПК:

  • Вы будете иметь целочисленную арифметику доступна для вас, в большинстве случаев, только если не все (не может процитировать я на это, но наши разработчики на работе не имеют математики с плавающей запятой для своих приложений PIC, и это вызывает много f oul слова, чтобы исходить из их кубов). Либо это, либо вам нужно будет подключиться к внешнему математическому сопроцессору.

  • Вам нужно выяснить, как заставить микросхему PIC говорить USB на камеру. Я знаю, что это возможно, но для этого потребуется дополнительное оборудование, а R & D время.

  • Если вам нужен строгий контроль времени, , возможно, вам даже понадобится запрограммировать приложение на ассемблере.

  • Вам придется порты портов OpenCV на чип PIC, если они еще не были. Я думаю, что нет.

  • Если вы еще не знакомы с программированием микроконтроллеров, вам потребуется некоторое время, чтобы ускорить различие между программированием на ПК и программированием микроконтроллера, и вам нужно будет получить некоторый опыт в этом. Это не может быть проблемой для вас.

В принципе, было бы лучше всего переписать всю программу с нуля с учетом ограничения на чип PIC. Хорошо, однако, вы уже много работали над дизайном. Это будет главным образом работа оборудования/портирования.

ИЛИ ...

Вы можете попробовать использовать небольшой внедренный x86 одноплатный компьютер, возможно, в PC/104 form factor, с OS/приложения на CF-карте. Это настоящий компьютер с костью, вы просто добавляете свое программное обеспечение. Хорошо, что вам, вероятно, не придется переписывать приложение, если только у него не было смешной памяти. Поставщики встроенных ПК начинают поставлять платы на базе процессоров Intel Atoms с тактовой частотой 1 ГГц, и если вам нужна дополнительная помощь, вы можете подключить дочернюю плату к шине PC-104. Вы обойдете все перечисленные выше ограничения, так как используете эквивалентную платформу для ПК, на котором было разработано ваше приложение. И у него есть USB-порты! Если вы проводите тщательный анализ затрат и, если ваш класс охлаждается с более крупным форм-фактором, вы можете обнаружить, что дешевле/быстрее использовать систему на базе SBC, чем откатывать решение с помощью микросхем PIC/микроконтроллеров.

Быстрый поиск PC-104 на Google выявит многих поставщиков SBC.

ИЛИ ...

И это было бы очень дешево - просто получить вне-полки дешевый Netbook, перезаписать OEM ОС и запустить код там. Hackish, но дешево, и очень легко - ваши аппаратные проблемы будут решены в течение недели.

Просто некоторые идеи.

+2

Согласен. Я бы никогда не использовал чип PIC для этого. – Nate

+1

У меня были URL-адреса и таблицы данных для более тяжелых (16-разрядных) dspics. Один из них таков: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en022432 Если вы принимаете тактовые импульсы 40MHz = 40MIPs, операция fpu базы данных avg займет чуть больше 2us. Итак, теоретическая скорость около 500 кфлопсов. Конечно, синхронная память помогает в приложениях для видения. –

+0

@ Марко - правда. Я не упоминал dsPIC. –

3

Я думаю, вы найдете это может вырасти в довольно большой проект.

Очевидно, что можно реализовать автономное аппаратное решение, чтобы сделать что-то подобное. В верхней части моей головы Rabbit: solutions может быстрее добраться до финиша. Но вы могли бы найти некоторые домашние Beagle Board или Gumstixprojects.

Два Google ссылки, которые я хотел бы подчеркнуть:

4

Я бы использовал нечто большее, чем ПОС, например, небольшой 32-битный процессор ARM.

+0

embeddedarm.com предлагает некоторые дешевые решения, которые на самом деле довольно удивительны. они также запускают полную версию Linux. доски размером примерно с обычным комплектом для разработки микроконтроллера. и нет, я не сотрудник встроенного оружия, я клиент. –

0

CMUCam

Я думаю, вы должны взглянуть на проект CMUcam, который предлагает доступные аппаратные средства и библиотеки обработки изображений, который работает на их оборудовании.

1

Я бы рекомендовал Нейту взглянуть на основные модули Кролика.

Кроме того, у GHIElectronics есть продукт под названием Embedded Master, который запускает .Net MicroFramework и имеет встроенные USB-хост/устройства, а также богатую библиотеку, которая является подмножеством .Net framework. Он работает на процессоре Arm и довольно недорог (> $ 85). Хотя он не так дешев, как один чип PIC, он поставляется с большим количеством логики клея, предварительно встроенной в модуль.