今天早上,我的一个学生来找我,询问一些关于在未来 6 个月左右完成的嵌入式系统(最好是硬件+软件设计)项目的想法。他是一名新生,缺乏经验,但如果方向正确,他就有学习的动力。完成这个项目的目的,除了让他涉足电气/计算机工程和计算机科学之外,还在于让他的简历在获得 09 年夏季实习机会方面更具吸引力。

我的问题是:

  1. 如果您对上述任何方面的经验很少甚至没有,有哪些好的通用资源可以帮助您了解简单的硬件、微控制器以及固件/软件的基础知识?我自己的背景在这里有点无济于事,因为我通过正式培训(他对此很感兴趣,但想现在就开始)和我得到的实习学到了很多东西 我的 大一通过裙带关系;-)(他想做,但有一个先有鸡还是先有蛋的问题)

  2. 有哪些适当范围的有趣项目想法?

一些初步的想法:

  • 一款 Jeopardy 风格的游戏会点亮 LED,第一个按下按钮的玩家就是获胜者,也许微控制器可以在几个 7 段显示器上记录分数。
  • 音调发生器(用户设置 DIP 开关(或更大胆地,按下 PS2 键盘上的按键)来设置频率),微控制器使用 D/A 转换器输出该频率的正弦波
  • 某种小型传感器(可能是他宿舍的温度传感器,以 RSS 源的形式提供结果)。使用 RabbitCore,该项目的基于网络的方面将变得更加容易 兔子半导体.

关于微控制器套件的所有建议都很棒!我真的很感激额外的项目想法(即“学生也应该设计 X)。谢谢!

有帮助吗?

解决方案

我听说过并读过很多有关 Arduino 和 PicAxe 平台的好文章。Arduino 似乎拥有最大的社区,而且新贵成本相当低(套件约 20-30 美元)。

http://arduino.cc/

adafruit Industries 的 LadyAda 销售教程套件,其中配有 Arduino 板和 8 个教程,教授基本电子学和微控制器编程。

其他提示

许多微控制器制造商提供廉价的实验板和有趣的开发工具。

例子:

(其他人可以随意添加到此列表中。)

乐高头脑风暴可能是一个起点。该固件是开源的,因此您的学生可以尝试添加新的 I/O 功能或创建一些新的外设。

我推荐乐高 Mindstorms NXT 套件。更新后的机器人套件具有许多吸引人的功能,例如 伺服电机 与集成的 编码器, 蓝牙超声波距离传感器. 。第三方也开发了 加速度计, 陀螺仪, 圆规 以及更多。您可以轻松开发自己的传感器,因为所有传感器都按照标准运行 i2c 公共汽车。

去年,我们和其他一些学生一起建造了一个小型的 赛格威类似机器人使用 高科技陀螺仪 和开源 LeJos固件. 。构建一个客户端-服务器接口是很有可能的,这样我们就可以使用蓝牙设备(即,无线)来控制机器人。手机)。

如果您希望您的项目 移动 而且社区很棒。查看以下内容 项目想法 使用定制传感器。

我从事嵌入式系统工作已有十多年了,对于初学者来说,Rabbit Semiconductor 是很难被击败的。

然而,您可以更便宜地开始使用 Arduino 和其他一些系统。但总有一个工具安装和设置学习曲线。Rabbit 的东西几乎被设计为“软件程序员的硬件”,非常容易上手,而且非常强大。我的第一个努力是将动态网页放在那里来显示与天气相关的传感器(风、温度、压力等)的图表。

如果我再做一次,我会在其中填充 Ajax 技术,并使用 canvas 或 svg 生成更好的图表。

其他选项包括 Microchip 的新型 32 位处理器和 Atmel 的 AVR32。您只需花费大约 100 美元即可开始使用。AVR32 现在支持 Linux,并且不用花太多钱就可以购买 LCD 和其他东西,使其成为非常高端的嵌入式系统。它们还附带 WinCE 演示软件,因此您可以查看开发的最终结果。32位PIC还没有linux,我不知道它是否会支持WinCE。

免责声明:不久前我为兔子工作过。从技术上讲,处理器并不是非常强大,但编译器和包含的库功能齐全且易于使用,因此很多人都在使用它们。

无论他走哪条路,祝他好运!

-亚当

还有其他需要考虑的事情...

你需要决定你想让孩子学什么。您可以购买许多不同的套件(请参阅上面的答案以了解许多好的套件);但是,请记住,套件的目的是让用户快速启动并运行,通常是为了评估某些微控制器或接口芯片。

为了 真的 教某人嵌入式系统,“快速”不一定是最好的方法。该套件将提供一些 IDE(交互式开发环境),在学生和“学习固件”主题之间添加多个抽象级别。结果,孩子可能第一天就写了“hello world”应用程序,但仍然不知道 RAM/ROM/地址/数据/等等之间有什么区别......

底线...如今,市面上有太多的工具包,你别无选择,只能选择一个(请参阅其他答案以获得好的建议);然而,如果你 真的 希望孩子学习基础知识,然后在他编写“hello world”应用程序并让几个 LED 闪烁之后。阻止他,并告诉他这一切背后的原因。

是的,这并没有直接回答你的问题,但希望它能指导你如何 真的 教他“肉”。一个好的起点可能是我几年前写的一本书:“嵌入式系统固件揭秘”。还有其他一些,例如“用 C 和 C++ 进行嵌入式系统编程”。我的书还介绍了启动监视器,这是学习固件的好起点。查看 http://www.umonfw.com 有关这方面的信息。

查看 http://www.embedds.com

这是来自网络各地的嵌入式系统项目的列表。大多数是初学者或业余爱好者生成的,这将是一个良好的开始或灵感。

Tern Acore86 板是一个很好的工作套件。

我认为开始嵌入式系统工作的最佳方式是在 BeagleBoard 上工作。

BeagleBoard 是 Texas Instruments OMAP3 处理器,其中包括 ARM 处理器和 DSP。除此之外,与其他开发板相比,成本太便宜了,只有 150 美元。

最棒的是它的软件是完全开源的,您可以使用 Linux 内核、uBoot 和 xloader 等组件进行构建。

最初尝试一下,尝试建立一个稳定的版本。您可以想到许多可以利用董事会力量的项目。

对此表示最美好的祝愿。

我强烈推荐您可以找到的视差产品 这里

Basic Stamp 和螺旋桨芯片都非常出色。许多附加板可让您完成许多简单和复杂的项目。

Mindstorms 很好,但与 Parallax 提供的服务相比有点贵。然而,为了方便使用,Mindstorm 没有什么可以做的。

有几家公司生产使用 PIC 或类似微处理器的小型机器人套件。

查姆比 为新手嵌入式系统程序员提供了一个令人难以置信的平台。它提供了一套很棒的外设(LCD、USB、扬声器、wifi),完全开源(如果你忽略闪存的东西),并为原型板提供了一个很棒的接口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top