встроенное приложение - PullRequest
3 голосов
/ 18 июля 2009

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

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

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

пс: заявка написана на C.

Ответы [ 5 ]

4 голосов
/ 19 июля 2009

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

3 голосов
/ 19 июля 2009

Да. Теоретически возможно портировать ваше приложение на микросхемы PIC.

Но ...

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

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

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

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

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

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

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

ИЛИ ...

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

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

ИЛИ ...

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

Просто несколько идей.

3 голосов
/ 19 июля 2009

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

Очевидно, что для реализации чего-то подобного можно реализовать автономное аппаратное решение. Сверху головы, решения Кролик могут привести вас к финишу быстрее. Но вы также можете найти несколько домашних Beagle Board или Gumstix проектов .

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

1 голос
/ 26 августа 2009

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

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

0 голосов
/ 26 августа 2009

CMUCam

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

...