2008-10-10 91 views
9

今天早上我的一个学生来到我这里,要求为未来6个月左右完成的嵌入式系统(理想的硬件+软件设计)项目提出一些想法。他是一名新生,并且没有经验,但是如果指向正确的方向,他有动力去学习。除了在电子/计算机工程和计算机科学方面做好准备之外,完成此项目的目的是让他的简历在09年夏季的实习中更具吸引力。初级嵌入式系统项目?

我的问题是:

  1. 有什么好的一般资源,了解简单的硬件,微控制器,什么固件/软件,给一点在上述任何的没有经验的基础?我自己的背景在这里并没有什么帮助,因为我通过正规培训(他感兴趣但是想要现在开始)以及通过实习,我通过裙带关系获得了大一新生; 012-但存在鸡与鸡蛋问题)

  2. 什么是适当范围的一些有趣的项目想法?

一些初步的想法:

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

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

回答

7

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

http://arduino.cc/

LadyAda从Adafruit的行业出售,其配备了一个Arduino板和8个教程,教授基本电子,和微控制器编程的教程包。

4

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

+0

好主意!作为一名年轻的青少年,我很喜欢Mindstorms的第一次改版,我认为后来的改革更加有趣,并且抽象出了大部分需要正规教育才能真正理解的内容。 – 2008-10-10 15:46:35

1

燕鸥Acore86板是一个很好的工具包。

0

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

2

我已经在嵌入式系统工作了十多年了,对于一个初学者来说,兔子半导体很难胜任。

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

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

其他选项是Microchip的新型32位处理器和Atmel的AVR32。你可以从100美元左右开始。 AVR32现在支持linux,如果没有太多的钱,你可以得到一个LCD和其他东西,使它成为一个非常高端的嵌入式系统。他们还配备了WinCE演示软件,以便您了解开发的结束时间。 32位的PIC还没有linux,我不知道它会支持WinCE。

声明:我前段时间曾为Rabbit工作。从技术上讲,处理器并不强大,但编译器和包含的库功能非常全面,易于使用,很多人都使用它们。

无论他走到哪里,祝你好运!

- 亚当

+0

伟大的建议!是的,嵌入式Linux是这个领域的一个有趣的部分,它只是抽象出他可能想要学习第一个轮回的许多事情。 PIC(和其他)没有MMU,这意味着它们不能执行虚拟内存,这意味着比简单的RTOS更好:--( – 2008-10-10 16:54:48

1

我认为,在嵌入式系统开始工作,最好的办法就是对BeagleBoard的工作。

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

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

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

祝福它。

0

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

3

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

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

这个平台是非常灵活的,如果你想你的项目移动和社区是伟大的。使用自定义传感器检查以下project ideas

1

我强烈建议视差的产品,你可以找到here

基本邮票和螺旋桨芯片都是优秀的。许多附加板可用,使您可以执行许多简单而复杂的项目。

Mindstorms虽然不错,但与Parallax提供的产品相比,却有点不稳定。然而,为了便于使用,没有什么可以是Mindstorm。

2

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

你需要决定你想要孩子学什么。有很多不同的套件可以购买(见上面的许多好的答案);不过,请记住,这些套件可以让用户快速启动并运行,通常用于评估一些微控制器或接口芯片。

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

底线。 ..这些日子里,有很多的工具包,你真的别无选择,只能选择一个(见其他答案的好建议);然而,如果你真的想要孩子学习基础知识,然后他写了“你好世界”的应用程序,并使几个LED闪烁。阻止他在那里,并教他什么背后的一切。

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

2

检查http://www.embedds.com

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