我刚刚开始设计一些嵌入式设备,并且正在寻找资源。
我想要做的是将 GPS 接收器连接到轻型 SBC 或 mini-ITX、基于 x86 的计算机,并跟踪遥控车辆的位置/进度。
理想情况下,这可以转变为制造一些业余爱好的半自动车辆。
但我需要开始的是一个用于 GPS 编程的开发板。
您使用了哪些板/包,我在哪里可以找到 [最好是开源的] 开发?
OpenEmbedded是一个入门的好地方。很多嵌入式产品使用 ARM 和其他处理器,所以交叉编译很重要。 Buildroot是为小型系统构建自定义 linux 内核的另一种资源。
您还可以找到许多使用单板计算机 (SBC) 的制造商,这些制造商有工具来做您想做的事 - 谷歌搜索“SBC Linux”,您应该有一个金矿。
LinuxDevices 密切关注 linux 嵌入式社区,您应该在那里找到几篇很好的文章,引导您找到可以帮助您的产品或软件。
Debian 有一个嵌入式构建,但我还没有探索过。
如果你想走这条路,有几本关于嵌入式 linux的书可用。
GPS 接收器只需连接到串行或 USB 端口,并呈现 NMEA 数据流,您可以使用 GPSD 对其进行解析,并且多个程序可以通过 GPSD 访问它。这是一种非常简单的基于文本的格式。
我使用了普通的 PC 主板,以及用于嵌入式系统的 Atmel AT91 处理器(带有 GPS、蜂窝等)。现在有很多信息,而且进入起来并不昂贵。如果我要开始一个新项目,我会看看 Atmel 的 AVR32 处理器——它们对爱好者非常友好,并且在 AVR32 架构上为 linux 提供了很多社区支持。如果您想走无操作系统路线并在处理器上运行单个程序,它们提供免费的 GCC 编译器和重要的框架和示例。
祝你好运!
-亚当
“NMEA”是寻找这些东西时要搜索的关键字。虽然我很长很长时间没有对此做任何事情,但这里是一些板和其他硬件的一个很好的来源:
我们对 Holux GPS 接收器(专为三星 q1 设计)带来了好运。通过串行端口进行非常简单的连接,您可以读取 NMEA 字符串。
你的目标是什么操作系统?如果是 Linux,有很多可用的 GPS 库(这里有一个很好的列表)。 GPSd和GpsDrive是我见过的两个比较流行的。
我还没有看到任何专门用于轻量级/嵌入式使用的 GPS 设备,但许多消费类 GPS 设备都有可能工作的 USB 连接(注意低端设备,它们通常没有计算机接口)。
我建议从一个普通的旧 c 项目开始,该项目从串行端口读取和解析 NMEA。您可以在 Windows 或 Linux 中执行此操作。
我通常将任何这样的项目分解为一组较小的项目,例如:
维基百科有一篇关于NMEA协议的好文章。正如亚当指出的那样,它实际上非常简单。
Circuit Cellar 杂志也经常有这样的项目。
根据您要执行的操作,需要考虑各种大小的目标。将 Atmel AVR 用于小型低功耗(电池)设备。如果我只是想大致了解一下这个概念并需要 WiFi(或蜂窝网络)来上网,也许可以在旧笔记本电脑上使用 Linux。
然后可以对笔记本电脑 Linux 原型进行精简并移植到嵌入式 Cinux 系统,以便以后降低电池使用量和便携性。(虽然不如 Atmel 低)。
如果您对在 Linux 中编程感到满意,我会推荐 Gumstix 系列小型计算机 - http://www.gumstix.com/
您可以将 vedex 主板与 GPSstix 扩展板配对,从而制作一个具有良好编程环境的微型 GPS 接收器。
这里的一些人推荐了像 gumstix 这样的设备——没有 GPS 的嵌入式设备,售价 149 美元。我不明白那一点。现成的 TomTom 配备在 ARM 上运行 Linux、内置 GPS、大量闪存、电池和屏幕。量产带来的价格优势是难以超越的。对于您的爱好项目,不需要包含的地图,但谁在乎呢?