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