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