第1课 神奇的Arduino
Arduino被广泛应用于电子设计和互动艺术领域中,你可以把它当作是一种“科技艺术”,也可以把它当成是一种“智能玩具”,它的产品LOGO如图1-1所示。Arduino的发明和使用注定会使我们这个神奇的世界变得更加精彩!
图1-1 Arduino标志
课程目标
· 了解Arduino的历史和发展;
· 理解Arduino主板的功能和作用;
· 理解ArduBlock图形化编程的使用方法;
· 掌握程序的顺序结构和数字口LED灯的编程方法。
任务描述
· 利用Arduino控制板载LED灯的亮和灭;
· 编写程序控制LED灯,使其快速闪动2次,慢速闪动1次。
动手制作
1.Arduino主板介绍
Arduino主板是一种开源硬件,我们可以很方便地使用它,如果有足够的技术,我们还可以改造它。本书所使用的就是一款经过改造的FansmakerArduino Uno主板。Arduino主板就像人的大脑一样,可以对输入信息进行处理和控制并输出信息,如图1-2所示。
图1-2 Arduino主板
注:①数字口D0~D13,共14个;②模拟口为A0~A5,共6个;③板载LED灯、TX和RX指示灯;④1个复位键;⑤下载接口;⑥外接电源接口。
Arduino控制主板体积小、重量轻,使用的是ATMEGA328P单片机,这款单片机是8位处理器,拥有32KB闪存、2KB内存。
知识加油站
Arduino的历史和发展
Arduino是意大利米兰互动设计学院的教师发明的,它是一个开源的硬件开发平台,被广泛应用于机器人和智能产品开发。MassimoBanzi是意大利米兰互动设计学院的教师,他的学生常常抱怨找不到一块价格便宜且功能强大的控制主板来设计他们的机器人。2005年冬天,Banzi和David Cuartielles讨论到这个问题,Cuartielles是西班牙的微处理器设计工程师,当时正在这所学校做访问研究。经过讨论,他们决定自己设计一块控制主板。他们找来了Banzi的学生David Mellis,让他编写代码程序。Mellis只花了两天时间就完成了代码编写,又经过3天,主板就设计出来了,取名为Arduino。很快,这块主板就受到了广大学生的欢迎。甚至那些完全不懂计算机编程的学生,都用Arduino做出了很炫的东西:有人用它控制和处理传感器,有人用它控制灯闪烁,有人用它制作机器人。
抛砖引玉
为什么要使用Arduino控制主板?
(1)Arduino控制器价格低、易于普及。
(2)Arduino控制器功能强大,I/O接口数量多。
(3)Arduino控制器可以连接常用的电子设备。
综上所述,Arduino控制器成本低、易开发。实际上,Arduino控制器的使用大大降低了人们创新的门槛,它非常适合教学和互动产品制作以及机器人研发。
2.安装Arduino软件
(1)复制文件夹Arduino到计算机桌面上,本书使用的Arduino版本是v1.7.9,官方版本可以到http://www.arduino.cc下载,注意官方版本并不包括ArduBlock软件,还需要另行下载。本课所使用的软件包含ArduBlock软件,如图1-3所示。
图1-3 复制文件夹到桌面
(2)打开Arduino文件夹,如图1-4所示,双击arduino. exe文件,打开Arduino编程界面,如图1-5所示。
图1-4 程序文件夹界面
图1-5 Arduino程序界面
(3)从“工具”菜单中选择ArduBlock选项,如图1-6所示,打开ArduBlock程序设计界面,如图1-7所示。
图1-6 ArduBlock选项界面
图1-7 ArduBlock程序界面
抛砖引玉
ArduBlock程序是一种G语言,即图形化语言。它简单易学,初学者学习时很容易上手。本课程使用ArduBlock图形化软件编写程序。当然,也可以直接在Arduino界面编程,编程语言是C语言。如果需要编写比较复杂的程序,建议使用C语言编写。
(4)连接下载线。将下载线的USB口一端连接到计算机USB口上,打印口(方口)一端连接到Arduino主板的下载口。
抛砖引玉
将下载线连接好后观察主板电源指示灯是否亮起,正常情况下红色电源指示灯会亮起,并且AduinoUno主板的绿色LED灯会闪烁。如果电源指示灯没有亮起,要立即拔掉电源,以免烧掉设备,随后马上检查主板与其他扩展板的连接是否正确。笔者就遇到过连接不正确的情况,当扩展板插到主板时,如果不是一一对应,而是向前或向后错了一个针脚,极易引起主板的损坏,一定注意。
(5)安装驱动程序。连接好下载线后,观察软件工具选项中的端口是否可以选择,如果不能选择,说明没有安装驱动程序,如图1-8所示,就需要手动安装驱动程序。
图1-8 端口不可选择
安装驱动步骤如下。
① 右击“我的电脑”图标,选择“管理”->“设备管理器”选项,如图1-9所示(确认下载线已经连接到Arduino主板上)。
图1-9 设备管理器界面
② 右击ArduinoUno更新驱动程序,选择“浏览计算机以查找驱动程序软件”,如图1-10所示。
图1-10 选择“浏览计算机以查找驱动程序软件”
③ 单击“浏览”按钮,选择“Arduino程序”文件夹中的drivers文件夹,如图1-11所示。
图1-11 选择drivers文件夹
④ 安装完毕后,重新打开“工具”菜单,观察工具中的端口是否已经变为可选。如果已经变为可选,需要手动选择COM端口。一般正确的端口选项显示为COM11(Arduino uno),注意端口前应该显示“√”,如图1-12所示。
图1-12 选择端口
通过上面的步骤,Arduino软件已经复制到计算机中,驱动程序也已经安装好了。
程序设计
1.ArduBlock简介
ArduBlock是一款图形化编程软件,不需要编写代码,只需将图片模块放到编程区域进行连接就可以了,是一款非常适合于初学者学习的编程软件,ArduBlock软件界面如图1-13所示。
图1-13 ArduBlock软件界面
2.板载LED灯
LED灯是数字信号设备。主板上已经集成了几个板载LED灯,这节课要使用的是与数字针脚13相连通的LED灯,如图1-2中③所示。编写的程序要控制数字针脚13的输出值,从而控制板载LED灯的亮和灭,即输出高电平灯亮,输出低电平灯灭。
知识加油站
数字信号
有些事物只有两种状态,如门的开和关、灯的亮和灭、电机的转和不转,这种只有两种状态的信号称为数字信号。通常使用“高电平”和“低电平”表示,或者用1和0表示。由于数字信号受噪声的影响小,易于传输,目前已经得到广泛应用。
数字针脚
数字针脚可以连接数字信号的设备,如灯、电机或数字传感器。数字针脚的3个引脚分别是:正极(VCC)、地(Gnd)和数据引脚。
3.控制板载灯程序
控制板载灯要求LED灯快速闪动2次,慢速闪动1次。程序如图1-14所示。
图1-14 板载灯程序
知识加油站
顺序结构
控制LED灯的亮和灭的程序是从上往下依次执行的,这种程序结构就叫做顺序结构,它是程序设计的三种基本结构之一。程序设计的三种结构是顺序结构、循环结构和分支结构,其他两种结构将在后面的课程中逐一介绍。
(1)主程序
在左边的图片模块中选择“控制”->“主程序”,如图1-15所示。程序先从主程序开始,才可以执行。而且,一个程序只能有一个主程序。注意,主程序里的语句会被循环执行。
图1-15 选择主程序
抛砖引玉
在第一个程序模块program中有一个“设定”程序区域,程序如果被写在这个区域里面,只会被执行一次。通常情况下,定义的变量或端口会放在“设定”程序区域中。
(2)设定数字针脚值
程序模块中选择“引脚”->“设定数字针脚值”,如图1-16所示。模块上面的红色数值代表数字接口,下面的蓝色数值代表输出值,“高”代表灯亮,“低”代表灯灭。
图1-16 选择设定数字针脚
(3)延时时间
在左边的图片模块中选择“控制”->“delay MILLIS毫秒”,如图1-17所示。这个模块的使用是为了控制灯亮或灭的延续时间。时间单位为毫秒,1s=1000ms。
图1-17 延时1s
4.下载程序
单击ArduBlock图形化软件上方的“上载到Arduino”按钮,如图1-18所示。将程序烧录到Arduino主板上,烧录过程中Arduino代码窗口会显示下载进度,如果显示“上传成功”,表示程序已经烧录到Arduino主板上。
图1-18 单击“上载到Arduino”按钮
5.保存程序
单击ArduBlock图形化软件上方的“保存”按钮,将图形化程序保存为扩展名为abp的程序文件,如图1-19所示。
图1-19 保存文件
抛砖引玉
板载的LED灯连接电源后绿灯会闪动,程序要求两次快闪,一次慢闪。虽然程序中只编写了一段程序,但是主程序会循环执行。因此,最后的执行效果是LED灯两次快闪一次慢闪,循环执行。
如果下载程序出现错误,通常有两种情况:一种情况是没有选择好“端口”,请检查端口设置;另一种情况是下载线没有连接。如图1-20所示。
图1-20 程序下载出错
当弹出错误对话框时,如图1-21所示,这种情况通常是程序中图形模块没有连接好,出错的图形模块会出现黄色高光显示,此时将程序模块重新连接好即可。
图1-21 条件语句出错
▶完成效果
Arduino控制板载灯亮和灭的完成效果如图1-22和图1-23所示。
图1-22 板载灯灭
图1-23 板载灯亮
抛砖引玉
通电后,不要用手去触摸电路板,手触摸电路产生的静电会损坏电路。
▶我问你答
1.如果LED灯只亮和灭一次,不循环执行,那么程序如何编写?请实践。
________________________________________________________________________
2.请列举数字信号的设备还有哪些?
________________________________________________________________________
知识拓展
Arduino名字的由来
意大利北部有一个如诗如画的小镇Ivrea,横跨过蓝绿色DoraBaltea河,它最著名的是关于一位受压迫的国王的故事。公元1002年,国王Arduino成为国家的统治者,不幸的是两年后就被德国亨利二世国王废掉。今日,在这位无法成为新国王的Arduino出生地,Cobblestone街上有家酒吧取名diReArduino以纪念这位国王。Banzi经常光临这家酒吧,因此他将这个电子产品计划命名为Arduino以纪念这个地方。
Arduino初始团队照片如图1-24所示。
图1-24 Arduino初始团队(MassimoBanzi右一)