我们可以执行哪些简单的项目来学习嵌入式编程基础知识?
对于想学习嵌入式编程基础知识的人来说,他们可以解决哪些简单的项目?
我们正在谈论的是一位确实了解电子电路基础知识(电阻器,电容器,数字IC等)并且可以进行基本焊接的人。一个电子爱好者,正在寻求嵌入式编程,或者是EE大学学位的大二或者大三。
平台并不重要,语言也无关紧要(它可以是C或者汇编语言或者任何其他语言)。关键是要为做某事的简单项目获取想法。
如果有一本书涵盖了类似的内容,我们可以发布一个链接吗?
解决方案
一个简单的项目(类似于Hello World)将是制作LED追踪器。
我们需要:6至10个LED和一个简单的开关。
每次按下开关时,LED都会以不同的方式闪烁。一些模式:
1个LED向右滚动
1个LED向左滚动
交替的LED
...
这将教我们有关I / O引脚,如何使用计时器,也许如何对交换机使用中断(或者我们可以使用轮询)的知识。
也许是一些好书?
- 编程和定制PICmicro单片机
- 设计嵌入式硬件
我个人将构建一个简单的录音机。让我们练习使用AD转换器和PWM波形输出。它还将教导如何模块化代码以允许记录和回放控制。唯一的限制是内存量,但即使是1 kB的样本也应该很有趣。
以下项目适用于CSC460:维多利亚大学的"实时操作系统"课程。该项目旨在使不具备嵌入式系统知识的CS学生在微控制器上进行舒适的编程。
目标:
设计一个传感器执行器系统来控制房间的温度。该项目将教我们脉宽调制和AD(模拟到数字)转换。
部分:
- 一块8位AT90USB1287微控制器演示板
- 一个温度传感器(在AT90上)
- 一台直流电动机(对3.3V至5.0V之间的电压敏感)
- 适合直流电动机的螺旋桨或者风扇叶片
- 1个L293D H桥
- 1个5V稳压器
设计:
该系统将使用AT90USB1287的温度传感器读取当前的室温并调节直流电动机的速度(已连接风扇叶片)。通过调节风扇速度,理论上可以冷却房间。
温度传感器已经安装在AT90USB1287上,并已连接至微控制器的AD端口。我们需要阅读此微控制器的数据表,并编写代码来配置和轮询温度传感器。
直流电动机将通过脉冲宽度调制进行控制。 PWM可以通过改变PWM信号的占空比来控制所连接的直流电动机的速度。有关PWM的更多信息,请查阅AT90USB1287的大型详细数据表(可能有点过多)。
温度传感器和直流电动机正常工作后,就可以完成此项目。 L293D H桥和5V稳压器可用于增加提供给直流电动机的功率(从板载3.3V到从H桥增加至5.0V)。
我最近购买了一个Arduino,它很容易安装和运行。这是一块很小的,相当便宜的主板,运行着Atmega168,具有I / O中断,电源,USB和其他有趣的东西。它运行本机C代码(正如Atmega芯片所期望的那样),可用于通过软件驱动电路。
以我的经验,如果可能的话,在难以克服的嵌入式系统中会有一个初步的学习"难点",但是一旦我们选择了第一个项目非常简单,我们就会感到失望。
在开发工具上有一些初期投资(即芯片和编程器至少是最小的)。构建一个非常简单的项目不会让我们探索芯片的更有用的领域,因此,我们将获得的知识量与我们投入的资源量成比例;无论是时间还是金钱。
我建议做一些比几个闪烁的LED更吸引人的事情。对我来说,开发新的嵌入式平台最困难的部分是始终进行初始编译并将第一个程序上传到芯片上。由于无论第一个项目多么复杂或者容易,此步骤都是相同的,因此我再次投赞成票,立即展开一个中等复杂的项目。我想到了IR遥控器之类的东西。无论如何,如果我们真的想学习任何东西,都希望投入大量时间。
我也建议不要使用BASIC STAMP甚至Arduino之类的东西,因为这些设备不会教我们进行嵌入式编程所需的真正技能。它们更多是一个可以运行高级代码的平台。我们正在使用此类平台的美化版本来阅读本文(PC);几乎不是嵌入式设备。从好的方面来说,如果我们不熟悉电子产品,它们将为我们节省很多麻烦。
获得一个由Microchip或者ATMEL制造的8位芯片,这种芯片非常流行并且起步相对便宜,获得一个编程器甚至一个演示板,如果我们不熟悉电子产品,那么演示板就可以工作。最重要的是,阅读随附的数据表,并尝试构建一些适度有用的东西。用C或者汇编程序编程。 ATMEL在编译器和对C的支持方面要好得多。从长远来看,我们将很高兴我们没有浪费时间学习一个平台,任何人都不会在他们的头脑中将其用于商业产品,并且我们会更好地理解与之打交道。嵌入式系统的局限性,因为没有比数据表更好的信息来源了。
关于该主题有一本相当不错的书,名为"嵌入式Linux入门"(作者克里斯托弗·哈利南(Christopher Hallinan))。本书向我们详细介绍了在嵌入式Linux平台上开发软件的基本过程。结合一个相对便宜的开发系统和无限的空间。
拿起《 Circuit Cellar》杂志的副本(对于嵌入式软件和硬件而言这是非常好的资源),我们会发现许多关于小型系统的广告,这些广告应可使我们快速启动并运行。