初级嵌入式系统项目?

时间:2008-10-10 15:21:41

标签: embedded hardware microcontroller

我的一名学生今天早上来找我并要求在未来6个月左右完成嵌入式系统(理想的硬件+软件设计)项目的一些想法。他是一名新生,缺乏经验,但如果指向正确的方向,他有动力去学习。完成这个项目的目的,除了在电气/计算机工程和计算机科学方面受到影响之外,还要使他的简历在2009年夏季实习期间更具吸引力。

我的问题是:

  1. 有什么好的一般资源可以理解简单的硬件,微控制器以及固件/软件的基础知识,在上述任何一个方面几乎没有经验?我自己的背景在这里有点无益,因为我通过正式培训学到了很多东西(他感兴趣,但现在想要开始),通过实习,我通过裙带关系获得了我的大一学年; - )(他想做,但有鸡和蛋的问题)

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

  3. 一些初步想法:

    • 一款可以点亮LED的Jeopardy风格的游戏,首先按下他/她的按钮的玩家是赢家,也许微控制器可以在几个7段显示器上保持得分。
    • 音调发生器(用户设置DIP开关(或者更加雄心勃勃,按下PS2键盘上的按键)设置频率),微控制器使用D / A转换器输出该频率的正弦波
    • 某种小型传感器(可能是他宿舍的温度传感器,可以作为RSS源提供结果)。使用来自Rabbit Semiconductor的RabbitCore,这个项目的基于Web的方面将变得非常容易。

    关于微控制器套件的所有建议都很棒!我非常感谢其他项目的想法(即“学生应该设计X”)。谢谢!

12 个答案:

答案 0 :(得分:7)

我听说过,并阅读了一些关于Arduino和PicAxe平台的好东西。 Arduino似乎拥有最大的社区,而且新贵的成本相当低(套件大约为20-30美元)。

http://arduino.cc/

来自adafruit industries的LadyAda销售一个教程套件,该套件附带一个Arduino板和8个教授基本电子学和微控制器编程的教程。

答案 1 :(得分:4)

许多微控制器制造商提供便宜的实验板和开发工具,这些都很有趣。

示例:

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

答案 2 :(得分:4)

Lego Mindstorms可能是一个开始的地方。固件是开源的,因此您的学生可以尝试添加新的I / O功能或创建一些新的外围设备。

答案 3 :(得分:3)

我推荐使用Lego Mindstorms NXT套件。更新的机器人套件具有许多吸引人的功能,例如伺服电机,带有集成的编码器蓝牙超声波距离传感器。第三方还开发了加速度计陀螺仪指南针等等。您可以轻松开发自己的传感器,因为所有传感器都在标准的 i2c 总线上运行。

去年,与其他一些学生一起,我们使用Hitechnic gyroscope和开源LeJos firmware构建了一个小型的 Segway 类机器人。很可能构建一个客户端 - 服务器接口,以便我们可以使用蓝牙设备(即移动电话)无线控制机器人。

如果您希望项目移动并且社区很棒,那么这个平台非常通用。使用自定义传感器查看以下project ideas

答案 4 :(得分:2)

我已经在嵌入式系统中工作了十多年,对于初学者来说,Rabbit Semiconductor很难被击败。

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

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

其他选项包括Microchip的新32位处理器和Atmel的AVR32。您可以以约100美元的价格开始使用这些产品。 AVR32现在支持Linux,而且你可以获得更多的资金,你可以获得LCD和其他东西,使其成为一个非常高端的嵌入式系统。它们还附带WinCE演示软件,因此您可以查看开发结束。 32位PIC还没有linux,我不知道它会支持WinCE。

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

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

- 亚当

答案 5 :(得分:2)

要考虑的其他事情......

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

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

底线...这些天,那里有很多工具包,你真的别无选择,只能选一个(见其他答案的好建议);但是,如果你真的希望孩子学习基金会,那么在他写下“hello world”应用程序之后,会让一些LED闪烁。阻止他在那里,并告诉他最后的一切。

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

答案 6 :(得分:2)

检查http://www.embedds.com

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

答案 7 :(得分:1)

Tern Acore86板是一个不错的工具包。

答案 8 :(得分:1)

我认为开始使用嵌入式系统的最佳方法是使用BeagleBoard。

BeagleBoard是德州仪器OMAP3处理器,包括ARM处理器和DSP。除此之外,与其他开发板相比,成本太低,仅需150美元。

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

最初玩它,尝试做一个稳定的构建。您可以想到许多可以使用电路板功能的项目。

祝福它。

答案 9 :(得分:1)

我强烈推荐Parallax产品,您可以找到here

基本印章和螺旋桨芯片都很出色。许多附加板可用于执行许多简单和复杂的项目。

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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