能不能拿 Arduino 来学习单片机?

用Arduino入门单片机,主要有两种不同的情况。

一、专业学生。
这里指的是大学电子类专业的学生(包含某些计算机类)。

对于这些专业的学生使用Arduino学习单片机可以重点放在与使用Arduino与外围传感器通信上。了解以及学习各类传感器的通信协议,以及使用场景以及特性,对于各种传感器类型以及传感器与单片机的交互方式可以有非常感性的直观认识。

另外Arduino有相当丰富的软件库资源,这些库为了传播与使用的方便,大多都写的较为系统,集成度较高,可以作为单片机编程的范例,当然偶尔有鱼目混珠之辈,所以建议尽量使用大公司出版的传感器库参考。

当然作为专业学生学会这些远谈不上会了这些单片机。
学单片机永远是需要接触寄存器的。
但是对于Arduino,寄存器基本上是透明掉的也就是说在大部分Arduino程序中你是看不见寄存器的身影的,这也是为什么Arduino的普及程度要远高于其他开发板的原因了。

但这是否会影响从Arduino到学会单片机的转化呢?
我的观点是否定的,反而Arduino对于引脚操作的封装,对AD输入的封装,对定时器PWM的封装,这些封装方式,反而才是电子专业的同学所欠缺的。而Arduino又是开源著称,显然这些封装方式都是能看到的,所以也给了我们学习的途径。

所以从Arduino入门单片机,到最后甚至能走的更远。

二、非专业学生。
相信非专业学生关注的问题和专业学生会有很大区别。
非专业学生更加关注,我能不能玩的起来?见下文准备篇。

学会之后,每块单片机都差不多,个人要学单片机更多考虑的应该是教育资源是否足够,应该少考虑以后是否用得到此款芯片,因为如果你以这个为生,那么很可能现在你学任何单片机,以后都有可能过时。

入门的准备

在入门之前不用做太多的知识上的准备,主要需要准备的是一颗拳拳之心,即对瞎捣鼓的爱好=。= 现在我来解释下为什么我会这么说。

本人算是Arduino相关产业的从业人员,在Arduino远没现在火热的时候就接触到了Arduino。
据我现在的了解,Arduino目前的普及教育资源已经比以前大为完善,大量论坛,博客,淘宝店都能找到相关教程,这也就是Arduino开源的最突出特点,传播快,易普及,Arduino作为一块与普通人生活以前几乎完全不搭边的电子开发板能得到目前的关注已属不宜。

目前已有老师在准备适用于小中学生的Arduino教程,用于对小中学生的课外兴趣教育,另外本人也曾经教过小朋友玩玩Arduino。

以上只是想说明,Arduino入门真的不难,可以说很简单,并不用做什么特别的准备。与此同时降低难度,普及教育这也是所有Arduino硬件设计公司所共同的努力方向。

对于入门的一些建议

一、Arduino虽然是以硬件为载体,却玩的是创意。
作为创客的首选,Arduino是为实现创意,设想,可自主设计的智能控制器。
这里解释下,这个创意并不一定是艺术家,或者设计师的那些高大上的创意,更多的是一种对于娱乐,生活方式,教育,艺术等一些追求。这些创意可以是:可以爬行的蜘蛛机器人,打开之后自动关闭自己的开关,自动绕开障碍物的扫地机器人,手工制作的妹子礼物,萌哒哒的小怪物等等。。。

二、玩Arduino玩的是分享。
当你做出一些东西之后最好是分享给别人,一是对自己成品的鼓励,二也可以得到大家的建议,互相分享,自由传播,才是开源硬件的精髓。

涉及的姿势和技能树

一、软件
1、了解C语言的基本语法
2、多看一些别人的arduino代码范例(推荐下面的第4个学习网站、从点亮一个LED开始)
3、寻找并收集一些基本的LIB
4、了解模拟端口、数据端口存取,串口、SPI、I2C等通讯

二、硬件
1、常用的传感器,如人体红外热释、温湿度传感器、振动传感器、霍尔传感器、继电器、门磁传感器、超声波测距、红外测距传感器、烟雾传感器、颜色传感器等
2、常用器件的使用,如LED(可以学习LED 的触摸感应)、模数转换器、电容(可以自制电容触摸感应器件)、电阻、光敏电阻、干簧管、比较器、GSM模块、存储芯片(AT24C256等)
3、舵机、步进电机、伺服电机等控制与操作
4、模块,如语音模块、 USB模块、无线模块(GSM、315M、433M、红外、蓝牙等)、WIIMOTE手柄、时间模块(如DS1302)、LCD显示屏(如nokia_3310、LCD1602等)

三、进阶还可以学习
1、滤波算法(如卡尔曼滤波等)
2、Arduino的睡眠
3、PID控制
4、中断



坐沙发

发表评论