手把手教你智能硬件开发(一) 我选Arduino

第1节 我选Arduino

高大上的无人机玩过吗?智能的家庭空气检测仪见过吗?手机控制的电子体重秤、血压仪用过吗?这些“高科技”都属于智能硬件。web

做为软件开发者的你,有没有想过本身开发一个智能硬件呢?编程

也许你会以为硬件开发的门槛很高,做为小白或者软件开发者难以企及,那么这你就想错了。其实,如今已经有了不少专门为软件开发者设计的智能硬件开发平台。例如如今火爆的树莓派-raspberry pi、英特尔推出的爱迪生-Edison,以及本系列讲重点介绍的Arduinosvg

有了它们,即便你对硬件并不了解,也能开发出软硬件完美结合的智能小硬件。性能

这些硬件都有个共同的特色,采用主控制板+扩展板+外接硬件的方式工做。学习

  1. 主控制板:咱们讲的平台(树莓派、爱迪生、Arduino),指的就是主控制板,它一般就是一个开发板。你能够把它想象成台式电脑上的主板,只不过这个主板已经焊接上了CPU和内存等最最主要的部件;测试

  2. 扩展板:主控制板上的针脚是有限的,扩展板能够把一个针脚扩展成多个针脚,让更多的设备与这个针脚链接。它们就好像是电脑主板上延伸出来的一根根USB数据线,把主板上的一个USB接口,转接成了多组不一样的USB接口,放在电脑主机的前面和后面;ui

这里介绍下“针脚”的概念,主控板上对外提供的连线接口都是适合线头插入的凹槽,称为针脚。设计

  1. 外接硬件:按钮开关、传感器等器件经过扩展板与主控制板的针脚相连。它们就好像是台式电脑上的USB接口能够链接的U盘、移动硬盘、USB Wifi等等外接设备;

能够想象的到,只要使用对应平台的扩展板,外接硬件能够链接在不一样的平台上,正常的使用。因此那些外接的硬件有很高的通用性。3d

1.1 WHY Arduino

在前面提到的智能硬件开发平台中,咱们选择了Arduino, 为何?调试

  1. Arduino足够的便宜,一个Arduino开发板不到100块钱(即便是意大利原装板也只要300多人民币),投入的硬件成本很低,能够花很低的代价学习智能硬件开发;

  2. 做为智能硬件的初学者,总但愿从最简单的开始,能学到原理,可是又不要有过高的学习门槛,有了基础之后再按部就班。Arduino开发只须要开发者会基本的C语言就能够了,几乎不须要任何其余的编程、硬件基础;

  3. Arduino的运算能力足够制做一些简单的智能硬件了,而它又更接近一个单片机,不少智能硬件能够用它作功能的验证;

  4. Arduino是软硬件开源的,有不少的技术资料能够参考,有庞大的社区支持,能够找到不少志同道合的人交流、快速进步;

因此,咱们选择这个性价比最高的的平台来开始智能硬件开发之旅。

1.2 Arduino开发板

Arduino开发板根据体积和性能,分为了多个子系列。

其中最多见、用来作入门学习的有两种,UNO和MEGA。

这两个开发板的功能几乎同样,MEGA使用的主控制芯片性能要高一些,针脚多一些,能够同时链接的外接硬件就要多一些。

相比之下,UNO配置低一些,价格也便宜一些。
MEFGA配置高一些,价格比UNO贵二十块人民币左右(意大利原版之间相比贵二十美圆左右)。

咱们使用Arduino开发板主要是用来学习,可能会同时要加装各类外接设备,MEGA开发板对此更有优点。

UNO接口太少,假如要作个四驱小车,一旦使用了四个马达后,基本就不能再添加其余硬件外设了。

另外,UNO的串口控制器只有一个串口,假如你还要使用其余串口设备的时候,调试起来就比较吃力了。例如作蓝牙小车,调试时噩梦就来了:由于Uno只有一个串口,要提供给蓝牙和USB共用。你得先拔下蓝牙模块的链接线才能部署程序到开发板;部署完成后,再插上蓝牙链接线才能开始测试。

若是出于批量生产成本考虑要使用UNO开发板也没有问题,能够先在MEGA上完成开发,最后在UNO上作性能测试,只要使用的硬件接口不大于UNO开发板提供的接口就好了。

基于以上这些分析,咱们的建议是选Arduino的MEGA开发板。

学习硬件开发的一个很大门槛就是要记住许多复杂的寄存器地址。Arduino的之因此被认为是给软件开发者设计的硬件,就在于它简化了硬件上的多种接口,把它们抽象成一个个能够直接控制的引脚位置。软件开发者编程时只须要对这几类引脚作操做就能够了。

Arduino开发板上的引脚数量,根据开发板的类型是不一样的。例如,UNO有20多根引脚,MEGA有70多根引脚。这些引脚都有本身的名字。

这些引脚能够被分红3类,

  1. 电源引脚。利用电源引脚,能够为外界的扩展板或者硬件提供3.3V(引脚3V3) 5V(引脚5V)的电压,以及接地(引脚GND)的功能;也能经过引脚VIN接受外部提供的电压;

    在MEGA开发板中,电源引脚的位置大体以下,

  2. 模拟引脚。区别于数字引脚只能输出0,1两种状态,模拟引脚能够输出0与1之间的中间状态。开发板有若干个模拟引脚,它们接收模拟量:0~1023,输出模拟量:’0-255’。
    输入输出范围不一样应该是硬件设备的精度形成的。

    它们被编成了0~N的数字号码,用A0~AN来表示。例如MEGA开发板上的模拟引脚有16个,就是A0~A15

  3. 数字引脚。只能输出0和1两种状态的引脚。开发板有若干个数字引脚,它们只接收或输出高低电平两个值:HIGH或者LOW。

    它们被编成了0~N的数字号码,用D0~DN来表示。例如MEGA开发板上的数字引脚有54个,就是D0~D53

    这些数字引脚中,有的引脚还能够提供别的复用功能,

    1. PWM(Plus Width Module)。经过控制脉冲信号周期的方式,来调节数字引脚输出的电压大小;

    2. 通讯引脚。做为串口输入和输出的接口;

不一样的Arduino开发板,它们的引脚位置是不相同的,这里只是用MEGA开发板来作一个示例。目前咱们只要知道有这些引脚的存在就能够了。从此要使用到这些引脚的时候,咱们再来作详细的介绍。

*关于Arduino UNO开发板的详细介绍请参考官网

*关于Arduino MEGA开发板的详细介绍请参考官网

1.3 Arduino扩展板

1.3.1 官方扩展板

Arduino官方目前总共推出了5款扩展板。
分别是,
Arduino Motor Shield

Arduino Proto Shield

Arduino Ethernet Shield

Arduino GSM Shield

Arduino WiFi Shield 101

1.3.2 第三方扩展板

Arduino是开放平台,有很多的第三方扩展板。根据开发者的须要,扩展出提供不一样功能的接口。对于有能力的硬件开发者来讲,能够为所欲为的设计适合本身的扩展板。

例以下面这款双L293D芯片的马达扩展板,

1.4 外接硬件

Arduino能够外接多种硬件。这些硬件能够,

  1. 直接接到开发板上;

  2. 接到扩展板上,而后经过扩展板链接到主控制板上;

1.4.1 传感型硬件

用来感知、测量某种环境数据的硬件。例如光线传感器、温湿度传感器、超声波探测器、粉尘传感器等等。

1.4.2 控制型硬件

用来发出指令、改变硬件某个特性的硬件。例如开关、直流马达、步进马达、舵机、LED灯等等。


关于这些传感器详细的原理和用法,咱们将在之后的章节详细的介绍。


/*******************************************************************/

本系列课程使用到的Arduino开发板、扩展板以及其余相关的传感器,各位能够根据咱们文章中介绍的硬件在淘宝网选购。
您也能够在咱们的网店跟我学Arduino编程中购买,这些相关硬件都由咱们为您把关购买,为你们节省选择的精力与时间。同时也感谢你们对咱们这些码农的支持。

最后再次感谢各位读者对安豆的支持,谢谢:)

/*******************************************************************/