1、ppt课件课件 Arduino开发平台介绍开发平台介绍1 Arduino开发基础操作开发基础操作2 开发实例开发实例(用用Arduino控制一个舵机)控制一个舵机)3 u1.1.什么是什么是ArduinoArduino?uArduinoArduino项目起源于意大利,该名字在意大利是男性用项目起源于意大利,该名字在意大利是男性用名,音译为名,音译为“阿尔杜伊诺阿尔杜伊诺”,意思为,意思为“强壮的朋友强壮的朋友”。ArduinoArduino的出现并不是偶然,的出现并不是偶然,ArduinoArduino最初是为一些非最初是为一些非电子工程专业的学生设计的。设计者最初为了寻求一电子工程专业的学生
2、设计的。设计者最初为了寻求一个廉价好用的微控制器开发板从而决定自己动手制作个廉价好用的微控制器开发板从而决定自己动手制作开发板,开发板,ArduinoArduino一经推出,因其开源、廉价、简单易一经推出,因其开源、廉价、简单易懂的特性迅速受到了广大电子迷的喜爱和推崇。几乎懂的特性迅速受到了广大电子迷的喜爱和推崇。几乎任何人,即便不懂电脑编程,利用这个开发板也能用任何人,即便不懂电脑编程,利用这个开发板也能用ArduinoArduino做出炫酷有趣的东西,比如对感测器探测做出做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等一些回应、闪烁灯光、控制马达等。u1.1.什么是什
3、么是ArduinoArduino?uArduinoArduino应用(视频)应用(视频)uArduinoArduino是一块基于开放原始代码的是一块基于开放原始代码的Simple i/oSimple i/o平台,平台,并且具有开发语言和开发环境都很简单、易理解的特并且具有开发语言和开发环境都很简单、易理解的特点。让您可以快速使用点。让您可以快速使用ArduinoArduino做出有趣的东西。做出有趣的东西。它它是一个能够用来感应和控制现实物理世界的一套工具。是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的它由一个基于单片机并且开放源码的硬件平台硬件平台,和一,和
4、一套为套为ArduinoArduino板编写程序的板编写程序的开发环境开发环境组成。组成。uArduinoArduino是一个加载了微控制器的电路板,更是一个包是一个加载了微控制器的电路板,更是一个包含了硬件和软件的开发平台。含了硬件和软件的开发平台。uArduinoArduino硬件是一块完整的电路板,包含一块微控制器硬件是一块完整的电路板,包含一块微控制器ICIC,一组排母用于连接到其它电路、若干个稳压器,一组排母用于连接到其它电路、若干个稳压器ICIC用于给整个电路提供合适的电源,一个用于给整个电路提供合适的电源,一个USBUSB接口用于连接口用于连接计算机。接计算机。uArduinoA
5、rduino软件是一个编程的软件是一个编程的开发环境。这个软件包含一开发环境。这个软件包含一个文本编辑器,可以在文本个文本编辑器,可以在文本编辑编辑器中编写并修改程编辑编辑器中编写并修改程序,软件还包含一个自动上序,软件还包含一个自动上传器,可以将编写完成的程传器,可以将编写完成的程序发送到序发送到ArduinoArduino开发板。开发板。uArduinoArduino开发板上需要关注的重点:开发板上需要关注的重点:u1.1.核心微控制器:核心微控制器:Arduino UnoArduino Uno使用的是使用的是Atmel AVR Atmel AVR ATmega328PATmega328P
6、微控制器。微控制器。uArduinoArduino开发板上需要关注的重点:开发板上需要关注的重点:u2.2.外部连接排母。与外部交互的接口。外部连接排母。与外部交互的接口。UnoUno一共有一共有2828个。个。分成三组:分成三组:u(1 1)电源)电源u(2 2)模拟输入)模拟输入u(3 3)数字输入)数字输入/输出输出 uArduinoArduino开发板上需要关注的重点:开发板上需要关注的重点:u3.USB3.USB接口。接口。三个重要功能:三个重要功能:u(1 1)程序上传)程序上传u(2 2)程序调试()程序调试(DebugDebug)u(3 3)临时供电)临时供电 uArduino
7、Arduino开发板上需要关注的重点:开发板上需要关注的重点:u4.4.可用内存。可用内存。u(1 1)Flash Flash内存:用于写入和保存数据,内存:用于写入和保存数据,ATmega328ATmega328提供提供32K Flash32K Flash内存,其中内存,其中0.5K0.5K用于保存特殊程序用于保存特殊程序BootloaderBootloader。u(2 2)静态)静态RAMRAM:运行时临时储存数据。大小为:运行时临时储存数据。大小为2K2K。RAMRAM中的数据掉电之后丢失。中的数据掉电之后丢失。u(3 3)EEPROM(EEPROM(电可擦可编程只读存储器):用来保存电
8、可擦可编程只读存储器):用来保存程序的额外数据,如数学公式的值,或者程序的额外数据,如数学公式的值,或者ArduinoArduino读取读取到的传感器读数。掉电之后,它储存的数据不会丢失。到的传感器读数。掉电之后,它储存的数据不会丢失。uArduinoArduino开发板上需要关注的重点:开发板上需要关注的重点:u5.Arduino5.Arduino工作速度。工作速度。u所有的微控制器,包括所有的微控制器,包括ArduinoArduino,都使用一个系统时钟,都使用一个系统时钟产生的脉冲来进行工作。大部分产生的脉冲来进行工作。大部分ArduinoArduino的工作速度为的工作速度为16MHz
9、,16MHz,也就是说每秒能处理也就是说每秒能处理16001600万条指令。万条指令。Arduino开发平台介绍开发平台介绍1 Arduino开发基础操作开发基础操作2 开发实例开发实例(用用Arduino控制一个舵机)控制一个舵机)3 u2.12.1搭建开发环境搭建开发环境u2.1.1 2.1.1 交叉编译:交叉编译:就是在一个平台上生成另一个平台上可以执行的就是在一个平台上生成另一个平台上可以执行的代码。开发人员在电脑上将程序写好,编译生成单片代码。开发人员在电脑上将程序写好,编译生成单片机执行的程序,就是一个交叉编译的过程。很多嵌入机执行的程序,就是一个交叉编译的过程。很多嵌入式系统需要
10、从一台计算机上编程,将写好的程序下载式系统需要从一台计算机上编程,将写好的程序下载到开发板中进行测试和实际运行。因此跨平台开发在到开发板中进行测试和实际运行。因此跨平台开发在嵌入式系统软件开发中很常见。因为单片机上不具备嵌入式系统软件开发中很常见。因为单片机上不具备直接编程的环境,因此利用直接编程的环境,因此利用ArduinoArduino编程需要两台计算编程需要两台计算机:机:ArduinoArduino单片机和单片机和PCPC。u2.12.1搭建开发环境搭建开发环境u2.1.2 2.1.2 在在windowswindows上安装上安装IDEIDE 给给ArduinoArduino编程需要用
11、到编程需要用到IDEIDE(集成开发环境),(集成开发环境),这是一款免费的软件。在这款软件上编程需要使用这是一款免费的软件。在这款软件上编程需要使用ArduinoArduino的语言,这是一种解释型语言,写好的程序被的语言,这是一种解释型语言,写好的程序被称为称为sketchsketch,编译通过后就可以下载到开发板中。在,编译通过后就可以下载到开发板中。在ArduinoArduino的官方网站上可以下载这款官方设计的软件及的官方网站上可以下载这款官方设计的软件及源码、教程和文档。源码、教程和文档。u2.12.1搭建开发环境搭建开发环境u2.1.2 2.1.2 在在windowswindow
12、s上安装上安装IDE(IDE(注意注意USBUSB驱动,驱动,Java Java Framework,Framework,查看端口,选择主板类型查看端口,选择主板类型)u2.12.1搭建开发环境搭建开发环境u2.1.2 2.1.2 在在windowswindows上安装上安装IDEIDE u2.2 2.2 常用的常用的Arduino Arduino 第三方软件介绍第三方软件介绍u2.2.1 2.2.1 图形化编程软件图形化编程软件ArduBlock ArduBlock u2.2 2.2 常用的常用的Arduino Arduino 第三方软件介绍第三方软件介绍u2.2.2 Arduino 2.2
13、.2 Arduino 仿真软件仿真软件Virtual breadboard Virtual breadboard u2.2 2.2 常用的常用的Arduino Arduino 第三方软件介绍第三方软件介绍u2.2.2 Arduino 2.2.2 Arduino 仿真软件仿真软件Virtual breadboard Virtual breadboard Virtual breadboard Virtual breadboard 是一款专门的是一款专门的Arduino Arduino 仿仿真软件,简称真软件,简称VBBVBB,中文名为,中文名为“虚拟面包板虚拟面包板”。这款软。这款软件主要通过单片
14、机实现嵌入式软件的模拟和开发环境,件主要通过单片机实现嵌入式软件的模拟和开发环境,它不但包括了所有它不但包括了所有Arduino Arduino 的样例电路,可以实现对的样例电路,可以实现对面包板电路的设计和布置,非常直观地显示出面包板面包板电路的设计和布置,非常直观地显示出面包板电路,还可实现对程序的仿真调试。电路,还可实现对程序的仿真调试。u2.2 2.2 常用的常用的Arduino Arduino 第三方软件介绍第三方软件介绍u2.2.2 Arduino 2.2.2 Arduino 仿真软件仿真软件Virtual breadboard Virtual breadboard VBB VBB
15、 可以模拟可以模拟Arduino Arduino 连接各种电子模块,例如连接各种电子模块,例如液晶屏、舵机、逻辑数字电路、各种传感器以及其他液晶屏、舵机、逻辑数字电路、各种传感器以及其他的输入的输入/输出设备。这些部件都可以直接使用,也可以输出设备。这些部件都可以直接使用,也可以通过组合,设计出更复杂的电路和模块。通过组合,设计出更复杂的电路和模块。使用使用VBB VBB 可以直观的了解电路设计,能够在设计可以直观的了解电路设计,能够在设计出原型后快速实现。而且虚拟面板具有可视性和模拟出原型后快速实现。而且虚拟面板具有可视性和模拟交互效果,可以实时地在软件上看到交互效果,可以实时地在软件上看到
16、LEDLED、LCD LCD 等可视等可视模块的变化,同时可以确保安全,因为不是实物操作模块的变化,同时可以确保安全,因为不是实物操作不会引起触电或者烧毁芯片等问题。不会引起触电或者烧毁芯片等问题。u2.3 2.3 第一个程序第一个程序u2.3.1 LED2.3.1 LED闪光灯闪光灯 编写第一个程序控制开发板上的编写第一个程序控制开发板上的LEDLED灯闪烁,修改灯闪烁,修改参数调整闪烁时间。(参数调整闪烁时间。(Arduino IDEArduino IDE和和blinkblink)u2.3 2.3 第一个程序第一个程序u2.3.1 LED2.3.1 LED闪光灯程序解析闪光灯程序解析 /*
17、Blink Blink Turns on an LED on for one second,then off Turns on an LED on for one second,then off for one second,repeatedly.for one second,repeatedly.*/注释,并非程序的内容注释,并非程序的内容 u2.3 2.3 第一个程序第一个程序u2.3.1 LED2.3.1 LED闪光灯程序解析闪光灯程序解析 int LEDPin=13;/declare variableint LEDPin=13;/declare variable声明变量声明变量 u2.
18、3 2.3 第一个程序第一个程序u2.3.1 LED2.3.1 LED闪光灯程序解析闪光灯程序解析 /the setup function runs once when you press/the setup function runs once when you press reset or power the boardreset or power the boardvoid setup()void setup()/initialize digital pin13 as an output./initialize digital pin13 as an output.pinMode(LED
19、Pin,OUTPUT);pinMode(LEDPin,OUTPUT);设置数字引脚设置数字引脚1313为输出,为输出,INPUTINPUT和和OUTPUTOUTPUT是是Arduino IDEArduino IDE已经预先定义好的变量已经预先定义好的变量 u2.3 2.3 第一个程序第一个程序u2.3.1 LED2.3.1 LED闪光灯程序解析闪光灯程序解析 /the loop function runs over and over again/the loop function runs over and over again foreverforevervoid loop()void lo
20、op()digitalWrite(LEDPin,HIGH);/set the led on digitalWrite(LEDPin,HIGH);/set the led on delay(1000)/wait for a second delay(1000)/wait for a second digitalWrite(LEDPin,LOW);/set the led off digitalWrite(LEDPin,LOW);/set the led off delay(1000);/wait for a second delay(1000);/wait for a second digita
21、lWritedigitalWrite是内建函数,改变数字引脚输出状态是是内建函数,改变数字引脚输出状态是ONON还是还是OFF,OFF,它需要两个参数。它需要两个参数。DelayDelay是内建的延迟函数。是内建的延迟函数。u2.3.32.3.3函数库和程序架构介绍函数库和程序架构介绍 Arduino Arduino 程序的架构大体可分为程序的架构大体可分为3 3 个部分。个部分。(1 1)声明变量及接口的名称。)声明变量及接口的名称。(2 2)setup()setup()。在。在Arduino Arduino 程序运行时首先要调用程序运行时首先要调用setup()setup()函数,用于初始
22、化变量、设置针脚的输出函数,用于初始化变量、设置针脚的输出/输输入类型、配置串口、引入类库文件等等。每次入类型、配置串口、引入类库文件等等。每次Arduino Arduino 上电或重启后,上电或重启后,setup()setup()函数只运行一次。函数只运行一次。(3 3)loop()loop()。在。在setup()setup()函数中初始化和定义变量,然函数中初始化和定义变量,然后执行后执行loop()loop()函数。顾名思义,该函数在程序运行过函数。顾名思义,该函数在程序运行过程中不断地循环,根据反馈,相应地改变执行情况。程中不断地循环,根据反馈,相应地改变执行情况。通过该函数动态控制
23、通过该函数动态控制Arduino Arduino 主控板。主控板。Arduino开发平台介绍开发平台介绍1 Arduino开发基础操作开发基础操作2 开发实例开发实例(用用Arduino控制一个舵机)控制一个舵机)3 u3 3 用用ArduinoArduino控制一个舵机控制一个舵机u3.1 3.1 舵机基本工作原理舵机基本工作原理 舵机是一种位置伺服的驱动器,主要是由外壳、舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由单片机发出信号给舵机,与舵机内部的工作原理是由单片机发出信号给舵机,与舵机内
24、部的基准信号比较,获得电压差输出,驱动无核心马达开基准信号比较,获得电压差输出,驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位,此过程中检测器送回信号,判断是否已经到达定位,此过程中电机通过级联减速齿轮带动电位器旋转,使得电压差电机通过级联减速齿轮带动电位器旋转,使得电压差为为0 0,电机停止转动。舵适用于那些需要角度不断变化,电机停止转动。舵适用于那些需要角度不断变化并可以保持的控制系统。并可以保持的控制系统。uArduinoArduino开发板上需要关注的重点:开发板上需要关注的重点:u1.1
25、.核心微控制器:核心微控制器:Arduino UnoArduino Uno使用的是使用的是Atmel AVR Atmel AVR ATmega328PATmega328P微控制器。微控制器。u3.1 3.1 舵机有很多规格,但所有的舵机都有外接三根线,舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。源正极线,橙色为信号线。u3.13.1舵机的转动的角度是通过调节舵机的转动的角度是通过调节PWM
26、PWM(脉冲宽度调制)(脉冲宽度调制)信号的占空比来实现的,由于舵机牌子不同,对于同信号的占空比来实现的,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。一信号,不同牌子的舵机旋转的角度也会有所不同。这是这是SketchSketch源码:源码:u#include#include uServo duoji;Servo duoji;uvoid setup()void setup()u duoji.attach(9);duoji.attach(9);u uvoid loop()void loop()u duoji.write(90);duoji.write(90);u dela
27、y(2000);delay(2000);u duoji.write(180);duoji.write(180);u delay(2000);delay(2000);u duoji.write(0);duoji.write(0);u delay(2000);delay(2000);u SketchSketch分析:分析:这个这个SketchSketch精悍,它的工作原理如下:精悍,它的工作原理如下:u#include#include SketchSketch第一行指向第一行指向ArduinoArduino的一个库文件的一个库文件,Servo,Servo库文件提库文件提供了专门用于操作舵机的指令集
28、。库文件可以极大的供了专门用于操作舵机的指令集。库文件可以极大的简化编程任务。简化编程任务。SketchSketch分析:分析:这个这个SketchSketch精悍,它的工作原理如下:精悍,它的工作原理如下:u Servo duoji;Servo duoji;使用使用ServoServo类创建一个对象类创建一个对象duoji.duoji.编程语言中,类是指一编程语言中,类是指一个封装了数据的封包,包含了对这个数据进行处理的个封装了数据的封包,包含了对这个数据进行处理的各种机制。(举例)各种机制。(举例)SketchSketch分析:分析:这个这个SketchSketch精悍,它的工作原理如下:精悍,它的工作原理如下:u void setup()void setup()u duoji.attach(9);duoji.attach(9);u Attach Attach是一个方法,可以被用于是一个方法,可以被用于duojiduoji对象。在这个例对象。在这个例子中,子中,attachattach告诉告诉ArduinoArduino主板,将舵机连接到数字引主板,将舵机连接到数字引脚脚9 9。