3

在过去的两个月里,我使用计算机视觉库(OpenCV)作为一个简单的应用程序工作。

我希望直接从网络摄像头运行该应用程序,而不需要操作系统。我很想知道是否可以将我的应用程序烧录到芯片中以便没有操作系统来运行它。

Ofcorse这个过程可能很昂贵,但我只是好奇。你有任何相关的链接吗?

ps:应用程序是用C编写的。

4

5 回答 5

4

我会使用比 PIC 更大的东西,例如小型 32 位 ARM 处理器。

于 2009-07-19T12:09:59.103 回答
3

我想你会发现这可能会发展成相当大的项目。

显然可以实现一个独立的硬件解决方案来做这样的事情。在我的脑海中,Rabbit解决方案可能会让你更快地到达终点线。但是你也可以找到一些本土的Beagle BoardGumstix 项目

我想强调的两个 Google 链接:

于 2009-07-18T20:12:50.853 回答
3

是的。理论上可以将您的应用程序移植到 PIC 芯片上。

但...

PIC 芯片有 C 编译器,但是,由于微控制器的限制,您可能会发现编译器和微控制器本身对于计算机视觉工作来说太有限了,特别是如果您的应用程序的初始实现是在成熟的 PC:

  • 在大多数情况下,即使不是全部,您也只能使用整数数学(不能引用我的话,但是我们的开发人员在工作中的 PIC 应用程序没有浮点数学,这会导致很多脏话从他们的立方体散发出来)。要么,要么您需要连接到外部数学协处理器。

  • 您必须弄清楚如何让 PIC 芯片与相机进行 USB 通信。我知道这是可能的,但需要额外的硬件和研发时间。

  • 如果您需要严格的时序控制,您甚至可能需要在汇编程序中对应用程序进行编程。

  • 如果还没有,您必须将部分 OpenCV 移植到 PIC 芯片。我的猜测不是。

  • 如果您还不熟悉微控制器编程,则需要一些时间来了解台式 PC 编程和微控制器编程之间的差异,并且您必须在这方面获得一些经验。这对您来说可能不是问题。

基本上,考虑到 PIC 芯片限制,最好从头开始重新编写整个程序。好消息是,你已经做了很多设计工作。它主要是硬件/移植工作。

或者...

您可以尝试使用小型嵌入式 x86 单板 PC,可能是PC/104 外形尺寸,您的操作系统/应用程序位于 CF 卡上。这是一台真正的骨灰级 PC,您只需添加您的软件。好消息是,您可能不必重新编写您的应用程序,除非它具有可笑的内存占用。嵌入式 PC 供应商开始提供基于 1 GHz Intel Atoms 的主板,如果您需要更多帮助,您可以将子板挂接到 PC-104 总线上。您将解决上面列出的所有限制,因为您使用的是与您开发应用程序的 PC 等效的平台。它有USB端口!如果您进行了彻底的成本分析,并且如果您对更大的外形尺寸感到满意,您可能会发现使用基于 SBC 的系统比使用 PIC 芯片/微控制器推出解决方案更便宜/更快。

在 Google 上快速搜索 PC-104 会发现许多 SBC 供应商。

或者...

这真的很便宜——只要买一个现成的便宜的上网本,覆盖 OEM 操作系统,然后在上面运行代码。Hackish,但便宜,而且非常容易 - 您的硬件问题将在一周内得到解决。

只是一些想法。

于 2009-07-18T20:39:05.857 回答
1

我会赞同 Nate 的建议,看看 Rabbit 的核心模块。

此外,GHIElectronics 有一个名为Embedded Master的产品,它运行 .Net MicroFramework 并具有内置的 USB 主机/设备功能以及作为 .Net 框架子集的丰富库。它在 Arm 处理器上运行,而且相当便宜(> 85 美元)。虽然不像单个 PIC 芯片那么便宜,但它确实在模块上预先构建了许多胶合逻辑。

于 2009-08-26T13:46:26.930 回答
0

CMUCam

我认为你应该看看CMUcam项目,它提供了负担得起的硬件和在他们的硬件上运行的图像处理库。

于 2009-08-26T12:53:19.877 回答