arduino自动门教材

发布时间:2014-11-29 08:04:39   来源:文档文库   
字号:

自动门教材

———基于Arduino开发平台V1.0

目录

一、机器人的组装 1

1.1. 组装工具 1

1.2. 机器人零件表 1

1.3. 装配步骤 5

二、系统概述 10

2.1. Arduino介绍 10

2.2. Arduino驱动安装 14

2.3. Arduino IDE菜单介绍 20

三、实验操作 25

3.1.人体热释运动传感器 25

3.1.1人体热释运动传感器介绍 25

3.1.2 人体热释运动传感器实验操作 25

3.2 舵机实验 27

3.2.1 舵机的介绍 27

3.2.2 舵机的内部结构 27

3.2.3 模拟舵机的控制协议 28

3.2.4 舵机实验操作 29

四、使用说明 31

4.1.接线端口介绍 31

4.2.操作说明 32


注意事项

请认真阅读该手册并注意产品功能和用途说明。本手册在CD光盘上以PDF格式提供,如有需要可以进行复制或打印。

该手册内容可能因产品升级或其他原因而改变,本公司不另行通知客户。

安全防备

根据严重程度,安全防备分两种:警告和注意。在动手安装之前请先通篇阅读警告和注意事项。

安装和操作注意

本段包含防止机械损伤方面的内容。

危险!

当操作机器人的时候要注意安全。

如果没有正确组装,机器人将不能正常工作甚至会损坏。组装方法详见第一章 机器人组装说明

在一个足够大的地方进行调试工作

警告!

远离小孩。尽管该产品看起来像个玩具,在无人照看的情况下,它可能会对小孩造成伤害。

故障发生时,请立即关闭电源。如果电池被弄破,暴露在液体,火或其他热源面前,可能会导致电击。

不要拆开或修改充电器和其电缆。

当不充电时,请把充电器从电源上拔下。

不要拆卸或修改电机里面的电路板。

不要在热,潮湿或寒冷的环境下使用,因为该产品包含精密的元件。如果处在一个极端的条件下,错误可能发生。

充电时请确认充电器插座是牢固的。

请仔细阅读本手册,在调试时注意机器人各关节的方向,尽量避免关节相撞。

注意!

机器人的电机需要定期维护以获得和维持恰当的性能。

在一个较大,平整的地方操作时机器人的表现效果会更好。如果工作空间很小又不平的话,机器人可能会摔倒甚至损坏。

在启动了机器人或操作的时候请不要把住机器人。

在程序的下载过程中不要关闭机器人电源,否则程序会丢失或损坏。

电池!

套件里面包含锂离子(Li-Ion)电池做电源。该锂离子(Li-Ion)电池是高能量可充电的电池,必须妥善保管,充电和使用。

把充电器接入交流电源并把他连到电池的充电接口上。当充电器接到交流电源后,它上面的电源灯会亮起来并呈红色。状态指示灯会呈绿色,当电池充电完成,绿色指示灯熄灭

警告!

电池管理:电池在使用时不要把电能全部用光才充电,要保留一点点电量。如果电池充足电后放置很长一段时间,电池性能会降低。

当不使用时,必须把电池与电路板或充电器断开,把电池存储在阴凉,干燥的环境中。

充电时间。给电池充分充电需要大约40分钟。这个时间与充电前电池里原有电量有关。

充电时要注意照看,当电池异常的发烫时应立即停止充电。

过度充电可导致电池损坏。

注意!

电池处理:不要拆开或修改电池的连接或更改导线。

不要让物体进入电池的连接头,也不要让导体裸露在外。

不要在高温和极端的环境下使用。把电池存储在阴凉,干燥的环境中。

在运输或存储时,让电池远离其他导体。

当电池的导线变破旧或磨损时,请更换这个电池。

紧急处理:如果电池造破坏导致电解材料溅到皮肤上,立即用大量水冲洗皮肤。

如果电解材料溅到眼睛里面,请尽快就医。

电池里的电解材料是有毒物质,能对人和家庭环境、家具等造成污染和危害。

如果电池不能再被充电,请按照垃圾的处理方法或本国家的规则妥善处理。

不要通过焚烧来处理报废的电池。


一、机器人的组装

1.1. 组装工具

工具:尖嘴钳、十字螺丝刀等。

1.2. 机器人零件表


1.3.装配步骤

在上一步了解完自动门机器人所需要的零件之后,这一步就要开始进行装配了,在组装自动门机器人的过程中由于零件较多机构环节较多,为了能够安全、准备、方便的装配,我们先进行预装,就是说把各个环节先组装起来,然后再进行总装。具体装配步骤如下。

1) 根据自动门机器人的机构因素和装配的排列顺序,首先我们要从下往上装配。这里我们第一步是要组装自动门机器人的下板,在这一步我们先准备好所需要的零件:下板、拐角连接件、M3螺钉和螺母。

2) 安装下板和前板。

3) 安装自动门的机构部分。所需零件:齿轮、滑轮、履带、M2螺钉和螺母。

4) 安装门零件。

5) 安装侧板。所需零件:侧板、拐角连接件、M3螺钉和螺母。

6) 安装下板上的舵机。

7) 安装后板。

8) 安装上板

9) 完成装配总图。

到这里我们就已经安装完成。

二、 系统概述

2.1. Arduino介绍


要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。

1、什么是单片机?它与个人计算机有什么不同?
一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。

2、单片机有什么用?
实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。

单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB


 


3、什么是Arduino
Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:FlashProcessingMaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。

Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。

4为什么要使用Arduino

有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic Stamp Netmedia’s BX-24PhidgetsMIT’s Handyboard 和其它等等提供类似功能的。所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用:

便宜-和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。

跨平台- Arduino IDE可以运行在WindowsMacintosh OSX,和Linux操作系统。大部分其它的单片机编译软件都只能运行在Windows上。

简易的编程环境-初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。

软件开源并可扩展- Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。

硬件开源并可扩展- Arduino板基于 Atmel ATMEGA8 ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。

word/media/image34.gif

word/media/image35.gif

word/media/image36.gif

word/media/image37.gifword/media/image38.gifword/media/image39.gifword/media/image40.gifword/media/image41.gifword/media/image42.gif

Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。

性能:
Digital I/O 数字输入/输出端口0—13
Analog I/O 模拟输入/输出端口0-5
支持ICSP下载,支持TX/RX
输入电压:USB接口供电或者5V-12V外部电源供电。
输出电压:支持3.3V5V DC输出。
处理器:使用Atmel Atmega168 328处理器,因其支持者众多,已有公司开发出来32位的MCU平台支持arduino

arduino板子上基本端口如描述,对几个比较特殊的端口下面详细说明下:

VIN端口:VINinput voltage的缩写,表示有外部电源时的输入端口。如果不使用USB供电时,外接电源可以通过此引脚提供电压。(如电池供电,电池正极接VIN端口,负极接GND端口)

AREF:Reference voltage for the analog inputs(模拟输入的基准电压)。使用analogReference()命令调用。

ICSP:也有称为ISPIn System Programmer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式,包括大家常听说的8051系列的芯片,也都慢慢采用这种简便的烧录方式。我们都知道传统的烧录方式,都是将被烧录的芯片,从线路板上拔起,有的焊死在线路板上的芯片,还得先把芯片焊接下来才能烧录。为了解决这种问题,发明了ICSP线上即时烧录方式。只需要准备一条R232线(连接烧录器),以及一条连接烧录器与烧录芯片针脚的连接线就可以。电源的+5VGND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。

2.2. Arduino驱动安装

首先在电脑上面打开光盘,找到Arduino项目开发文件夹,拷贝到你的电脑上你想放到的盘符上,例如D(建议不要放到桌面上),然后打开,可以看到如下:

光盘中所带arduino IDE1.0.3版本,是目前最新版本,IDE就是arduino的软件程序开发环境,里面已经集成了项目中所需要的很多外设库,还有一些其他设置,比如添加中文注释,为用户省去了很多麻烦。IDE中所带库文件均经过调试,和光盘代码完全匹配。arduino资料相关文件夹中是一些入门资料以及我们提供的arduino电路板原理图。

注:光盘中所带软件仅支持Windows 系统。其他系统请去官网下载。

Arduino控制板到手后,首先需要在电脑上把驱动装上,这样才可以进行各种实验。

首先打开包装,找到蓝色USB数据线,一端连接ARDUINO控制板另一端连接电脑USB端口。本文以win7 32位为例,会出现识别到新硬件显示。

然后会开始查找系统内驱动。

如果没有找到驱动,会显示这个画面。

 

这时,需要在开始菜单,计算机上面点右键,点属性

 
然后点击设备管理


会看到打了感叹号的未识别硬件
 

在未识别硬件上点右键,点击属性,选择更新驱动程序软件。


选择浏览计算机以查找驱动程序软件

 

然后目录选择你arduino1.0所在目录的drivers目录
注意,如果您的计算机提示无法找到驱动,需要将目录进一步定位到\drivers\FTDI USB Drivers即可
 
点击下一步,就可以安装好驱动了。

 

安装好驱动后,就可以显示是COM几端口,我这里显示的是COM14端口。

2.3. Arduino IDE菜单介绍

接着我们介绍下ArduinoIDE界面,首先进入软件目录。然后就可以看到arduino.exe文件,双击打开IDE,可以生成桌面快捷方式,方便以后使用

首先映入眼帘的是下图的界面,工具栏按钮功能依次为编译”--“上传”--“新建程序”--“打开程序”--“保存程序”--“串口监视器

菜单栏上,首先看File菜单~介绍如下:

接下来看Edit菜单~介绍如下:

 

Sketch菜单介绍

 

Tools菜单介绍

Arduino也支持中文界面如果英文界面看着不爽的话,,只要打开File-preferences图中选择简体中文,点击OK,关闭后重新打开软件即可。

在正常使用之前我们还需要对arduino软件做如下设置

1打开Arduino IDE,选择文件-参数设置,按如下设置。

2)选择工具-板卡点选如图所示。因为我们用的是328的芯片,如果为其他型号相应选择即可

串口就选择电脑-设备管理器里面显示的串口号即可。至此Arduino IDE的设置基本完成。可以编写编译代码进行开发了。

我们都知道,机器人有许多个关节,每一个关节我们称为一个自由度。一般的机体,都有十几个自由度,这样才能够保证动作的灵活性。在机器人机体上,我们通常使用舵机作为每一个关节的连接部分。它可以完成每个关节的定位和运动。舵机的控制信号相对简单,控制精度高,反应速度快,而且比伺服电机省电。这些优点是非常突出的。在下面的论述中,许多地方都会涉及到舵机相关的知识,读者应反复详细阅读。

三、 实验操作

3.1.体热释运动传感器

3.1.1体热释运动传感器介绍

基于热释电效应的人体热释运动传感器,能检测到人体或动物身上发出的红外线,配合菲涅尔透镜能是传感器探测范围更远更广。与Arduino专用传感器扩展板结合使用,可以非常容易地实现与人体或动物相关的互动效果。

当红外热释电运动传感器的附近有人在移动,这个小装置就会即刻触发,输出高电平,就算人离开了,高电平也依旧持续一段时间才会改变会低电平,而这个持续的时间长短可以由传感器模块上的那个黄色可变电阻调整,时间长短约为0.318秒。然后如果检测到没人再移动,这个传感器又会回到休眠状态,传感器维持低电平。

3.1.2 体热释运动传感器实验操作

利用红外避障传感器控制LED灯。

接线

word/media/image67.gifword/media/image68.gif

例程

int sensor = 3; //热释电传感器接到3脚上

int val = 0; //保存热释电感器状态值

int LED = 13; //定义LED

void setup()

{

pinMode(sensor,INPUT); //设置热释电传感器引脚为输入模式

pinMode(LED,OUTPUT); //设置LED引脚为输入模式

}

void loop()

{

val=digitalRead(sensor); //采集传感器状态值 01

if(val==1) //热释电传感器检测到信号

digitalWrite(LED, HIGH); // 打开LED

if(val==0) //热释电传感器没有检测信号

digitalWrite(LED, LOW); // 关闭LED

}

知识点:

pinMode()

描述

将指定的引脚配置成输出或输入。

语法

pinMode(pin, mode)

参数

pin:要设置模式的引脚

mode:INPUT或OUTPUT

逻辑:

热释电感器检测到信号,打开LED热释电传感器没有检测到信号,关闭LED

实验现象:

下载例程上电后,热释电传感器附近有人走进时,打开LED灯。没有人时,关闭 LED灯。

3.2 舵机实验

3.2.1 舵机的介绍

舵机,顾名思义,大海航行靠舵手,舵机早期是应用在航模中控制方向的,在航空模型中,飞行器的飞行姿态是通过调整发动机和各个控制多面来实现的,后来有人发现这种机器的体积小、重量轻、扭矩大、精度高,由于具备了这样的优点,很适合应用在机器人身上作为机器人的驱动。

按照舵机的转动角度分有180度舵机和360度舵机。

180度舵机只能在0度到180度之间运动,超过这个范围,舵机就会出现超量程的故障,轻则齿轮打坏,重则烧坏舵机电路或者舵机里面的电机。360度舵机转动的方式和普通的电机类似,可以连续的转动,不过我们可以控制它转动的方向和速度。

按照舵机的信号处理分为模拟舵机和数字舵机,它们的区别在于,模拟舵机需要给它不停的发送PWM信号,才能让它保持在规定的位置或者让它按照某个速度转动,数字舵机则只需要发送一次PWM信号就能保持在规定的某个位置。关于PWM信号在以后章节将会介绍。

3.2.2 舵机的内部结构

一般来说,我们用的舵机有以下几个部分组成:直流电动机、减速器(减速齿轮组)、位置反馈电位计、控制电路板(比较器)。舵机的输入线共有三根,红色在中间,为电源正极线,黑色线是电源负极(地线)线,黄色或者白色线为信号线。其中电源线为舵机提供6V7V左右电压的电源。

word/media/image69.gif

word/media/image71.gif

舵机的内部结构图

3.2.3 模拟舵机的控制协议

360度舵机是怎样控制的呢?360度舵机使用的场合基本上是在轮式机器人身上,所以对应的上升沿和下降沿代表的意义也很不相同,图3-4给出了360度舵机PWM控制信号的波形图。

下图中,T1表示上升沿,T2表示下降沿,T表示方波的周期。下面具体解释一下这种舵机的控制协议。我们是通过PWM信号的高电平占空比来控制360度舵机的,通过实验我们发现PWM信号的周期为20ms时控制效果是最好的。在周期为20ms情况下,当1.3ms时,舵机反转,当1.5ms时舵机正转,两种情况下当T1越接近1.5ms时,舵机转动速度越慢,当T1=1.5ms时,舵机停止转动,也就是说占空比为1.5/20=7.5%时舵机停止,这里的7.5是允许有一定误差的,这就允许我们不改变T1的情况下,可以稍微的改变周期,实验表明周期T可以再19ms21ms之间。另外,这类360舵机身上有个微调电阻(见图),它的作用类似校零,当我们给舵机一个占空比为7.5%PWM信号时,如果发现舵机没有停止转动,可以通过调整这个微调电阻来让它停止。

1.3ms

T=20ms

3.2.4 舵机实验操作

控制一个360舵机正反转,接线图如下。

接线

word/media/image73.gifword/media/image74.gif

Arduino有舵机应用库360度舵机接在第6接口,舵机控制程序如下。

例程1

#include

Servo servo; //定义舵机

void setup()

{

servo.attach(6); //定义舵机接口6

servo.writeMicroseconds(1500);//高电平1500微秒此时舵机停止

}

void loop()

{

servo.writeMicroseconds(1500); //高电平1500微秒此时舵机停止

}

把舵机接到第6口,烧录例程1,调整微调电阻使舵机停止。

例程2

#include

Servo servo; //定义舵机

void setup()

{

servo.attach(6); //定义舵机接口6

servo.writeMicroseconds(1500);//高电平1500微秒此时舵机停止

}

void loop()

{

servo.writeMicroseconds(1300); //高电平1300微秒此时舵机正转

delay(10000); //延时10

servo.writeMicroseconds(1700); //高电平1700微秒此时舵机反转

delay(10000); //延时10

}

烧录例程2,舵机正转,延时10秒,舵机反转延时10

知识点:

描述

将指定的引脚控制脉冲控制舵机。

语法

attach(接口)——设定舵机的接口。

write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。

read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。

attached()——判断舵机参数是否已发送到舵机所在接口。

detach()——使舵机与其接口分离,该接口(9或10)可继续被用作PWM接口。

writeMicroseconds(uS)——写一个值在微秒(uS)到伺服舵机,控制相应的轴。在一个标准的伺服系统,这将为角度的轴。在标准的伺服系统参数值1000完全是逆时针方向的,2000是完全顺时针,1500是在中间。

注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:myservo.attach(9)

逻辑:

舵机正转,延时10秒,舵机反转,延时10秒。

实验现象:

下载例程1微调电阻使舵机停止。下载例程2,舵机正转,延时10秒,舵机反转,延时10秒。

四、 使用说明

4.1.接线端口介绍

word/media/image75.gif

word/media/image77.gifword/media/image78.gifword/media/image79.gifword/media/image80.gifword/media/image79.gif

word/media/image81.gif

4.2.操作说明

确定自动门处于关门状态,如果不是调节皮筋使自动门处于关门状态,打开电源。

当自动门检测到有人时,即红外热释电传感器检测有信号时,蜂鸣器响两声,舵机正转开门。

当自动门检测到无人时,即红外热释电传感器检测无信号时,蜂鸣器响三声,舵机反转关门。

本文来源:https://www.2haoxitong.net/k/doc/3580f513168884868662d601.html

《arduino自动门教材.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式