![创客机器人实战:基于Arduino和树莓派](https://wfqqreader-1252317822.image.myqcloud.com/cover/903/33892903/b_33892903.jpg)
3.3 Arduino开发环境
Arduino开发包含两个要素:Arduino开发板和Arduino集成开发环境。目前应用最多的Arduino开发环境为官方的免费Arduino IDE编程环境,官方网址为https://www.arduino.cc,到本书撰写时最新的版本为1.8.4,支持Windows,MacOS和Linux操作系统。如果习惯微软的Visual Studio环境,也有Arduino for Microsoft Visual Studio的插件,网址http://www.visualmicro.com/,安装后可以在Visual Studio里面进行Arduino的开发。
ArduBlock是一款为Arduino设计的图形化编程软件,ArduBlock是一个Arduino的扩展库,以图形化积木搭建的方式编程。
Processing的最初目标是开发图形的sketchbook和环境,用来形象地教授计算机科学的基础知识。之后,它逐渐演变成了用于创建图形可视化专业项目的一种环境。如今,围绕它已经形成了一个专门的社区,致力于构建各种库以供用这种语言和环境进行动画、可视化、网络编程及很多其他的应用。
下面分别进行介绍。
3.3.1 Arduino IDE介绍
Arduino IDE的主页为https://www.arduino.cc,支持Windows、Mac OS和Linux操作系统,最新版本为1.8.4。Windows平台又分为Windows安装包和Windows免安装ZIP包,如图3-18所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/36_01.jpg?sign=1739409513-a6MfH2OpLzYEdmEY4l9l2vo8TIR7tIwr-0-f1d3544fc4c271ebdb21fe2e89ed8765)
图3-18 Arduino IDE下载界面
下面以“Windows免安装ZIP包”为例说明使用过程。
下载软件包arduino-1.8.4-windows.zip以后,解压,不需要安装,直接运行其中的arduino.exe文件即可,如图3-19所示。
运行arduino.exe文件,启动Arduino IDE,界面如图3-20所示,开发环境非常简洁,包括菜单栏、图形化的工具栏、中间的编辑区域和底部的状态区域。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/37_01.jpg?sign=1739409513-0dk1aMch96AfUFTHWqtds7tdYBtntJz0-0-13946808bee3919e5a32baf3d181b49a)
图3-19 Arduino IDE目录
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/37_02.jpg?sign=1739409513-BrEjRWhFR4qtnJGscX1XISLeseIwzrYu-0-8542459e620867314d8cc501b8974a23)
图3-20 Arduino IDE主界面
Arduino IDE界面的工具栏,从左至右依次为“编译”“下载”“新建”“打开”“保存”、“串口监视器(Serial Monitor)”和“新建标签”等按钮。
Arduino开发板和运行Arduino IDE的PC是通过USB线连接的,如图3-21所示,因此首先需要安装USB变SERIAL的驱动。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/38_01.jpg?sign=1739409513-7cFcI1RsuEl3vW0pCQsAnq4QpGqp70gS-0-37fb6cfd7f402862b4f434160654c089)
图3-21 Arduino开发板和PC的连接
Arduino开发板的驱动文件大部分在Arduino IDE的drivers目录下,如果安装不成功,先确定Arduino开发板的USB变SERIAL驱动芯片,再下载相应的驱动程序,安装完成以后在设备管理器可以看到对应的串口号,如图3-22所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/38_02.jpg?sign=1739409513-0E71PMyrCAmMZj4X2niXKb5xkaKN7gPW-0-b681c0eb7256e5b9a4a5a8400ef25548)
图3-22 在设备管理器查看对应的串口号
然后在Arduino IDE的主界面,选中菜单栏中的“工具”>“端口”命令,接着选择串口号,如图3-23所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/38_03.jpg?sign=1739409513-Fezf2XTGTo6mC6eDv02EL061Wl0bOSNR-0-45f2c06f28a69ce2aedf4611fb441822)
图3-23 选择串口号
还需要选择开发板类型,方法是在Arduino IDE主界面的菜单栏中选择“工具”>“开发板”命令。
Arduino的程序组成必须有的两个函数是:
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/39_01.jpg?sign=1739409513-WQZfLnYdAaCbNjeWafOkLfI81YSIs5cp-0-608550e18efacaa04c7bd488419b5ca1)
前一个函数放置初始化Arduino的程序,以及引脚的输出模式,在未执行后一个函数之前设置好相关参数。后一个是一个死循环,意思就是一直执行,除非断电。
比如,Arduino UNO开发板13号引脚连接板上的LED灯,控制LED亮灭的Arduino的代码如下:
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/39_02.jpg?sign=1739409513-r8avWpMjFgp0JhKc5O8IW7uOFtvGYDKO-0-cbb0f91c97fe97cfd65d983d6602e28d)
单击Arduino IDE中的“下载”按钮下载到目标板,就可以看到LED灯的闪烁效果。
3.3.2 ArduBlock-Arduino的图形开发环境
ArduBlock中文版是一款开源的图形化编程工具,这款软件必须依附于Arduino IDE环境启动,ArduBlock是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化和交互性加强,降低编程门槛,即使没有编程经验的人也可以尝试给Arduino控制器编写程序。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/39_04.jpg?sign=1739409513-nrdUPgHvu6qmVFSdYAQoBYpzoAQwgjNj-0-ede12531ffdd58f8da0b02278f3f8177)
图3-24 ArduBlock插件安装目录
然后启动Arduino IDE,在主界面选择“工具”>“ArduBlock”命令(ArduBlock是安装ArduBlock插件出现的新菜单),弹出可视化编程窗口,如图3-25所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/40_01.jpg?sign=1739409513-wRG9FveCeisSjV4tWovgnyoq6h6f61s4-0-840246c7c6292364dc44c5aa45f66a41)
图3-25 ArduBlock图形化编程环境
例如,串口显示超声波测距的ArduBlock程序,如图3-26所示。单击“下载到Arduino”按钮可直接下载到Arduino开发板。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/40_02.jpg?sign=1739409513-l5Zza1oRQQ2lhPnHNDgQ7jzkImEHsRCB-0-aaf23b47443cf8b710e0f744a0e46d87)
图3-26 串口显示超声波测距的ArduBlock程序
3.3.3 Arduino使用外部库
Arduino IDE中已经集成了库管理功能,通过选择“项目”>“加载库”>“管理库”命令,如图3-27所示,就可以打开库管理器了。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/40_03.jpg?sign=1739409513-5gKDwhlcYKGUETA6Dd8ch5BMsIoETMTj-0-13741cfd16dcda157e843d18a935309b)
图3-27 选择“管理库”命令
“库管理器”对话框如图3-28所示,在这里以安装DHT11库为例,搜索找到DHT11库,然后选择想要安装的库版本,然后单击“安装”按钮,开始安装。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/41_01.jpg?sign=1739409513-XMd8gZrJZrBQOt8aW8m46VqHzNm6ymHV-0-ed30ea3e800d18924fb896c7e7e0b9e3)
图3-28 “库管理器”对话栏
安装完成以后,在Arduino IDE中选择“文件”>“首选项”命令,打开“首选项”对话框,在“项目文件夹位置”下的“libraries”目录下存放下载的文件,如图3-29所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/41_02.jpg?sign=1739409513-M0ufHtjRrvS4dJdiwTJDd7x6MO0SunHn-0-0429d2e90aff1da9951fa002bdb010a8)
图3-29 库下载位置
在Arduino IDE菜单栏中选择“文件”>“示例”命令,可以看到新增加的“Simple DHT”命令,选择此命令即可打开DHT类库的示例程序,如图3-30所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/41_03.jpg?sign=1739409513-S5FnCKEOLwucF2T7ms0WnAPkAiqxAmvx-0-36e073a7d908ece75d5a98ffc6737991)
图3-30 增加的DHT示例
例如,选择“DHT11 Default”命令,示例代码及运行结果如图3-31所示(DHT11温湿度传感器的使用详见第六章)。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/42_01.jpg?sign=1739409513-jyohquzmUppeR2XD11azSXmssYOvTz1q-0-390441700cf9d02b489a01770b58819a)
图3-31 DHT11Default示例代码及运行结果
在“库管理器”对话框中可以很方便地添加第三方库,但其中只提供了一些常用的库资源,如果需要添加更多的库资源或者自定义的库,就需要用户自己准备,找到或编写库。大部分开发者都喜欢将他们编写的Arduino库放到开源社区上分享。
Github是全球最大的git服务提供商,也是最大的开源社区之一,很多常用的Arduino库,都可以通过Github找到。
仍以SR04超声波传感器模块为例,可以在以下网址下载这个类库:http://clz.me/101-book/lib/sr04/,在该页面可以使用SR04的下载超链接,下载后,会得到一个名为SR04.zip的文件,使用这个库有两种方法。
方法1
解压该文件,并将解压出的SR04文件夹放到Arduino IDE所在文件夹中的libraries文件夹内,例如arduino-1.8.4\libraries,如图3-32所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/42_02.jpg?sign=1739409513-hAKlg6fvUNZicssr9OkxYoCCbJvaALxP-0-3b9c824724cb825768138fbd4bfe236b)
图3-32 将SR04复制到库目录
libraries文件夹中存放的是Arduino的各种类库,将类库放入其中后,便可以在编写程序时调用这个库及使用示例代码。
需要注意的是:库文件夹下要直接显示∗.cpp和∗.h文件,绝对不可以把这些库文件再套到二级以上目录,否则会导致IDE无法识别。
打开Arduino IDE,可以在Arduino IDE的菜单中选择“文件”>“示例”命令,可以看到新增加的“SR04”命令,如图3-33所示,选择此命令即可打开SR04类库的示例程序。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/43_01.jpg?sign=1739409513-Ktle1KNLQS0q0sMJGTqw4g81Pr3AGrvN-0-584cba9d65430ba8e5d43d663a918ed0)
图3-33 SR04类库的示例菜单
SR04示例OutputDistance的代码如图3-34所示(SR04超声波传感器的使用详见第六章)。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/43_02.jpg?sign=1739409513-O8phXv7VrtYvvLKWrHvJedpdpNPI8TiO-0-3db05e48863436e6680ff0a30925cbed)
图3-34 OutputDistance的代码
方法2
在Arduino IDE的菜单中选择“项目”>“加载库”>“添加一个.zip库”命令,如图3-35所示。
![](https://epubservercos.yuewen.com/DAB405/18123624701958606/epubprivate/OEBPS/Images/44_01.jpg?sign=1739409513-U8FUzqGzcOyvMWEqX2dgfFgAod5znJ7l-0-c97cf04dc586a074c2fb5592d1913516)
图3-35 添加一个.zip库
将库文件加载到C:\Users\用户名\Documents\Arduino\libraries目录下,便可以在编写程序时调用这个库及使用示例代码。