编译器的使用
由于Arduino目前强大的生态系统,以及和各种软硬件的兼容体系,可以用来开发Arduino的工具也不胜枚举。这些工具有些可以用来独立进行Arduino的开发,也可以配合使用进行交互性的开发。这些工具中比较普遍使用的包括,Arduino基础的官方开发工具,Arduino IDE。Visual Studio的Arduino开发工具。这两者都是使用基于C/C++的开发语言来驱动的。还有python,Matlab也有其独立的开发工具,也可以同Arduino IDE进行交互。
1、Arduino IDE基础
Arduino IDE 是进行所有Arduino开发的基础,所以要开始进行任何更加复杂的Arduino组件进行组装,或者进行相关的程序开发,必须先对Arduino IDE进行充分的了解和学习。
先前版本的Arduino或许在下载和配置方面有些复杂,但是目前的Arduino IDE的下载和安装都十分简便。Arduino IDE在其官网就可以找到其安装包的下载,下载好之后解压到你自己所指定的位置就可以使用。具体的下载地址和安装方法也会同fritzing一样附于文章末尾。
点击打开Arduino IDE之后,首先出现的是Arduino IDE的启动画面。
图13 最新版本Arduino启动画面
当Arduino软件启动之后,会显示以下的一个窗口。这个窗口中对于所有重要的信息都做了标注。从最上一行的菜单栏,到下一行的工具栏,以及这一栏尾部的串口监控器,到最底下的项目显示栏。代码编写区域,黑色框架内的调试结果显示区。需要注意的是,在右下角的一行英文文字中,出现的前半行文字的意思为当前所使用的Arduino控制器,后半行文字中最后的一行文字的三个字中,COMx为当前所使用的串口号。
图14 最新版本Arduino启动画面
先简单叙述一下菜单栏中比较重要的几个功能及其调试功能。
首先,在File中,一些比较重要的功能包括,新建一个项目(New),打开一个项目(Open),打开最近的项目(Open Recent),打开各种案例(Arduino官网上面有不少基础教程,可以参看这些案例进行电路搭建以及代码实现)。
保存/保存在指定位置(Save/Save as)。在保存的时候需要注意,保存的文件名外需要创建一个文件夹,而文件夹的名称必须和文件的名称一致才能保证有代码的文件正常运行。
最重要的选项则为首选项(preference,如图15所示),打开首选项之后,可以看到如图十五所示的界面。在这个界面当中,可以选择执行程序的默认语言,编译器文字大小,是否显示行号等等。不太喜欢阅读英文的朋友可以选择语言(Editor Language)的选项中更换为简体中文。
图15 首选项功能展示
菜单栏中Edit的作用不大。Sketch中,最重要的功能是库的管理(Manage Libraries,如图十六),位于Include Library选项卡之下。在打开库的管理(如图十七所示)之后,可以看到两个过滤筛选菜单(红色方框标记),一个叫Type,另外一个叫Topic。通过Type(类型)可以找到处于不同状态的库,有可以更新的,已经/尚未安装的等等。通过Topic(主题)可以找到交流,传感器,显示等等通过功能来划分的库。一切Arduino所需要的库,都可以通过搜索菜单栏来寻找,只要输入其名称,可以参照其下方所展示的库名称来进行库的安装等操作。
另外还有一点很重要的是,在右下角有两个选项菜单框,一个是Version,显示当前库的版本号,另外一个是一个标注为install的按钮,点击该按钮就能安装这个库。而当一个库被安装之后,该按钮的位置会显示installed,说明该库已经存在,无需任何操作。因为Arduino的开源特性,有些公司的硬件会更新的十分迅速,而有些公司的硬件会更新的很慢。所以有时候为了整个项目的兼容性,可以安装稍早版本的库,以确保项目顺利运行。一般情况下,只要你打开库,则其会进行自动更新,可以根据项目自行进行版本调整。而有些无法从所需要的库中找到并且进行安装的库,则可以在下载之后直接拖入到Arduino软件安装路径下的library里,这么做同样可以使用。
图16 库的管理选项
图17 库的管理菜单
而菜单栏中的Tools,最重要的有两个项目,其中之一是Board,通过这个选项,每次可以选择所使用的Arduino控制板,如红框所示,目前所使用的是Arduino Mega 2560控制器。而在Port选项中,是所选择当前控制器所读取数据的USB端口。在第一次插入不同型号的Arduino控制器时会出现电脑进行硬件安装的提示,而在这时可能需要选择正确的USB端口,所以一定要搞清楚插入的控制器所对应的USB端口有一一对应的关系,否则可能会出现安装错误的情况。不过有些电脑会全程进行自动安装,所以不必太过担心这一点。而这两项都会显示在如图十四所示的右下角的一行字中。
图18 Tool选项菜单
图19 所有工具栏的功能和作用
而工具栏中不同的按钮功能则如下图所示。
● 校验 (Verify), 在每次下载代码之前,必须要先验证代码是否编写无误,所有的效验结果会显示在如图十四所示的调试结果提示区之内。如果有错误,报错格式一般都是以C/C++的形势呈现的。
● 下载 (Upload), 这个下载其实就相当于其他编译器上的运行 (run) 一样。只不过下载是相对于Mega的控制器而言的,因为控制器上面有独立的存储器,只要不下载新的代码,则该控制器一直运行当前的代码。
● 新建 (New), 新建一个新的项目。
● 打开 (Open), 打开一个项目,可以选择是范例程序或者是指定路径文件。
● 保存 (Save), 保存当前的项目到指定路径。
● 串口监视器 (Serial Monitor), 串口监视器是一个很重要的和Arduino控制器交互的工具。它主要是被用来查看串口发送或者接收到的数据。在很多时候,如果对传感器进行数值的监控,以及用编写的代码和Mega2560控制器发送指令的时候,都要通过这个监视器。这个监控器有两个设置很重要。第一,红框标记的是换行格式,一般选择第二个。第二,黄框标记的是波特率,一般选择9600。波特率是指每秒传输数据的比特值,绝大多数Arduino控制器在使用的时候一般都设这个值。如果有例外情况,在实际案例中会讲到。
图20 串口监视器
以上所述为初学者使用Arduino IDE所必须了解的基础设置及使用方法,更为复杂的问题会在后面讲解到。
2、Arduino兼容的编译器及其交互
根据以上所述的Arduino IDE的功能,其实可以看到其局限性还是比较强的,比如说在编译方面,远不如Visual Studio或者Pycharm等一些编译器随时根据你所输入的代码做出警告或者报错提示,IDE最终只会给你一个综合性的提示。
而唯一可以同Arduino交互的方法几乎就是通过它的串口监视器。而这个串口监视器的功能及其有限。所以,为了实现一些更加复杂的功能,例如用传感器所读出的值画图(这种方法可以被用来审视传感器的状态,以及评估某些传感器的测量极限),或者可以用更高级的方法来和Arduino进行交互,例如搭建一个简易的App从而实现一个类似于目前智能家居系统的IoT项目等等。实现这些项目,就必然使用到其他的编译器的独立开发,或者其和IDE的交互等等。这些东西展开来讲比较复杂,会在后期的教程中慢慢展开来讲如何使用。