乐学电子技术:DIY传感器玩mBlock
上QQ阅读APP看书,第一时间看更新

第2章 Arduino简介

本章将介绍常见的Arduino板的使用方法,以及用程序控制端口电平的方法,同时还将带领读者初步体验制作基于Arduino的电子作品的过程。通过学习本章读者将掌握Arduino板的供电方式,知道USB供电和电池供电的区别,并了解常见的Arduino传感器的外形和作用。

本章学习目标

● Arduino是什么

● Arduino的简单使用方法

● 供电方式

● 常见的Arduino传感器

1. Arduino是什么

Arduino是一款便捷灵活、容易上手的开源电子平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它是由一个欧洲开发团队于2005年冬季开发的,常见的Arduino板如图2.1所示。

图2.1 Arduino各版本对比

Arduino可以单独运行,例如制作一个红绿灯。也可以与Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider等软件结合,做出互动作品。以Arduino板为中心,兼容多种外围电路。还可以兼容其他电子元件,例如开关、传感器、LED、步进马达或其他输出装置等。Arduino的IDE界面基于开放源代码,因而可以免费下载使用,以开发出更多令人惊艳的互动作品。

(1)Arduino平台特点1:跨平台。

Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。

(2)Arduino平台特点2:简单清晰。

Arduino IDE基于Processing IDE开发,所以它对于初学者来说极易掌握,同时有着足够的灵活性。Arduino语言基于Wiring语言开发,是对avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,读者就可以快速地进行开发。

(3)Arduino平台特点3:开放性。

Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内可以任意修改原始设计及相应代码。

(4)Arduino平台特点4:发展迅速。

Arduino不仅仅是全球流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino简单的开发方式使得开发者更关注创意与实现,更快地完成自己的项目开发,进而大大节约了学习的成本,以及缩短了开发的周期。

因为Arduino的种种优势,越来越多的专业硬件开发者已经或开始使用Arduino来开发他们的项目、产品;越来越多的软件开发者使用Arduino进入硬件、物联网等开发领域;大学里,自动化、软件,甚至艺术专业,也纷纷开设了Arduino相关课程。

2. Arduino的简单使用方法

接下来,结合LED灯闪亮这一个具体实例,来说明Arduino板的使用方法。任何一个Arduino作品都包括电子元件部分和控制程序部分,下面就分别进行介绍。

(1)安装软件和驱动程序。

①安装Arduino IDE软件。

登录www.arduino.cc网站,打开Software页面,如图2.2所示。从该图中可以看到,当前Arduino IDE现在最新版本是Arduino 1.8.5。Arduino IDE软件版本分类有多个版本:Windows单文件安装包Windows Installer、Windows压缩包Windows ZIP file for non admin install、Windows 8或Windows 10版本的Windows app Requires Win 8.1 or 10,以及苹果计算机系统的安装软件Mac OS X 10.7 Lion or newer,和支持Linux系统的32位版本Linux 32 bits、64位版本的Linux 64 bits、ARM版本的Linux ARM。

②安装Arduino板驱动。

安装完成Arduino IDE软件后,系统将提醒是否安装Arduino板驱动程序,单击“是”按钮即可。常见的Arduino板与计算机连接的USB通信芯片有CH340和FT232,Arduino官方下载的Arduino IDE软件包中自带FTDI USB Drivers,将Arduino板通过USB线与计算机连接后,计算机将自动识别并安装Arduino板的驱动,实际上是安装USB通信芯片的驱动。

图2.2 Arduino IDE软件下载

国内公司在生产Arduino板时,进行了一些改进,将USB通信芯片,更换成了更好用的CH340系列芯片,这类通信芯片相比FTDI芯片要好用一些。如果接入计算机,Arduino IDE软件没有识别出Arduino板,则可以用360驱动大师之类的驱动程序管理软件,如图2.3所示。扫描一次计算机的硬件驱动程序,将识别出计算机上未安装驱动程序的所有硬件,安装一遍即可,这项工作需要连网才能完成。

图2.3 360驱动大师

③通过mBlock软件安装驱动。

如果不使用Arduino IDE软件,则可以只安装mBlock软件,也可以使用Arduino。安装好mBlock软件后,打开“连接”菜单中的“安装Arduino驱动”(见图2.4),即可安装Arduino驱动。

图2.4 通过mBlock软件安装Arduino驱动

(2)掌握电路原理图。

图2.5显示了将Arduino NANO板的数字端口D8连接到10kΩ电阻一端,该电阻另一端连接到LED灯的正极端,而LED灯的负极连接到Arduino NANO板的GND引脚。这是最简单的串联电路,由Arduino NANO板的数字端口D8控制,实物连接如图2.6所示。连接好电子元件后,该作品还不能工作,必须配合控制程序才能工作。

(3)编写控制程序。

编写控制程序有多种软件,第一种编写Arduino控制程序的软件是Arduino官方提供的编写程序软件Arduino IDE,如图2.7所示。Arduino IDE使用代码编写控制程序有一定的编写门槛,且其对语法要求严格,区分字母的大小写。写错一个字符或一个符号,都不能编译成功,它的代码编程的效率很高。Arduino IDE适合有相应基础的专业人员以及初中生可尝试使用Arduino IDE进行代码编写,高中生和大学生完全可以使用Arduino IDE进行代码编写,以提高编程效率。

图2.5 点亮LED电路原理图

图2.6 电子元件实物连接图

第二种编写Arduino控制程序的软件是上海新车间创客开发的图形化程序ArduBlock,如图2.8所示。ArduBlock不能单独使用,必须配合Arduino IDE使用。图形化编写程序系统适合小学生使用,只需要拖放图形模块,就可以完成程序编写,不必担心代码书写的问题。

图2.7 Arduino IDE编写程序

图2.8 ArduBlock编写Arduino程序

第三种编写Arduino控制程序的软件是mBlock,也是本书中广泛使用的软件,如图2.9所示。mBlock软件可以很方便地使用图形化编写Arduino程序,也可以直接编写代码。mBlock是Makeblock公司基于Scratch 2.0编写的图形化编程软件。小学生使用时,可以从熟悉的Scratch编程软件,快速过渡到mBlock控制电子元件中。同时,本书也会重点介绍使用电子元件制作各种传感器的方法,用传感器控制mBlock中的动画角色,大大丰富了Scratch的控制方式,以实现更多的创意。

图2.9 mBlock编写Arduino程序

3. 供电方式

Arduino作品是一个电子作品,当然就要涉及供电问题。供电方式有三种:计算机供电式、直流电源式和干电池式。

(1)计算机供电式。

计算机供电式就是使用一根USB连接线,将Arduino板连接到计算机的USB口,进而实现通过计算机给Arduino板供电。另外,将在本书后面章节中介绍的,用Arduino制作传感器玩mBlock,使用的供电方式都是这种计算机供电式。计算机通过这根USB连接线在给Arduino板供电的同时,该USB连接线还将Arduino板各端口的电平状态,实时发送到计算机上的mBlock软件中,也就是还将同时发送数据。通过计算机给Arduino板供电,也可使用5V的充电器为Arduino板供电,如图2.10所示。

图2.10 手机充电器供电

(2)外接912V直流电源。

外接一个9V或12V的直流电源适配器,然后连接到Arduino板的电源接口,进而完成给Arduino板的供电,如图2.11所示。这一种供电方式,由于采用专用的适配器来供电,因此,可保证足够的电力供应,它相比计算机供电式,提供的电流要大一些。

图2.11 直流电源适配器供电(9~12V)

(3)9V干电池。

使用一块9V干电池,通过自己焊接的连接线来连接到Arduino板的供电口上,如图2.12所示。这种供电方式适合于临时展示Arduino作品时,并且带动的元件功率不能太大,因为干电池的供电能力是有限的。

(4)7.4V充电锂电池。

图2.13是锂电池供电示意图。使用锂电池给Arduino作品供电,是应用最多的供电方式之一,如智能小车和四旋翼飞机等。锂电池既能提供足够强劲的电力,又能重复充电。

在实际应用时,根据实际使用环境,选择适当的供电方式。如将在本书后面章节中介绍的Arduino手柄作品,使用计算机供电方式即可。如果制作Arduino智能小车,因为9V直流电源适配器和计算机供电的方式都需要接线,所以这两种方式不能用于小车。Arduino小车就只能使用锂电池供电,或者9V干电池供电了。如果制作一个校园气象站,因为要长时间工作,所以就可以采用9V直流电源适配器供电的方式。

图2.12 9V干电池供电

图2.13 锂电池供电

(5)常见的Arduino传感器。

在本书中使用的传感器共6种,如表2.1所示。这里做了一个对比,以统一传感器的名称。同时,将Arduino传感器与生活中的同类电子元件进行对比,建立与生活中实际应用的联系,更好地理解和应用电子技术。对各传感器的功能进行对比,在对比中加强对传感器的掌握。同时,罗列了在本书中用到传感器的章节,以便于快速查找。

表2.1 本书中用到的所有传感器

续表