基于单片机控制的新型六足机器人毕业设计.docx

上传人:b****4 文档编号:27235585 上传时间:2023-06-28 格式:DOCX 页数:37 大小:1.01MB
下载 相关 举报
基于单片机控制的新型六足机器人毕业设计.docx_第1页
第1页 / 共37页
基于单片机控制的新型六足机器人毕业设计.docx_第2页
第2页 / 共37页
基于单片机控制的新型六足机器人毕业设计.docx_第3页
第3页 / 共37页
基于单片机控制的新型六足机器人毕业设计.docx_第4页
第4页 / 共37页
基于单片机控制的新型六足机器人毕业设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于单片机控制的新型六足机器人毕业设计.docx

《基于单片机控制的新型六足机器人毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的新型六足机器人毕业设计.docx(37页珍藏版)》请在冰豆网上搜索。

基于单片机控制的新型六足机器人毕业设计.docx

基于单片机控制的新型六足机器人毕业设计

 

新型六足机器人

1引言

1.1新型六足机器人研究目的和意义

本文六足机器人是一种基于仿生学原理研制开发的新型足式机器人。

新型机器人比传统的轮式机器人有更好的移动性,它采用类拟生物的爬行机构进行运动,自动化程度高,具有丰富的动力学特性。

此外,足式机器人相比其它机器人具有更多的优点:

它可以较易地跨过比较大的障碍(如沟、坎等),并且机器人足所具有的大量的自由度可以使机器人的运动更加灵活,对凹凸不平的地形的适应能力更强;足式机器人的立足点是离散的,跟地面的接触面积较小,因而可以在可达到的地面上选择最优支撑点,即使在表面极度不规则的情况下,通过严格选择足的支撑点,也能够行走自如。

因此,足式步行机器人的研究已成为机器人学中一个引人注目的研究领域,由于六足机器人强大的运动能力,可以提供给运动学、仿生学和机械构造原理研究有力的工具[1]。

在研究昆虫运动方式、关节承力、稳定姿态调整的过程中,可以运用本机器人对设想的虫体姿态、运动过程进行模拟,最大程度地接近真实,将理论和实践联系起来,从而更好地观察昆虫运动模式的优点,以及探究哪些现象能够运用到机械设计的实践中去。

这对于以上学科的研究和探索都是十分有意义的。

当然,我们还可以作为教学器械,通过研究昆虫爬行时各脚的运动情况,用机械形式表达出来,也可以作为仿生玩具及探险、搜救设备,还可以进入细小管道、地洞中勘察。

在研究了昆虫步态的基础上,运用仿生原理,本文借鉴相关资料,使用一种六足机器人机械结构设计的新思路,制作了基于这种设计思路的机器人。

相信该机器人可以实现直线运动与转向运动的合理、有效结合,转向角度、角速度可控,直线行进步距、速度可调,行动灵活可靠。

1.2新型六足机器人研究概况及发展趋势

近年来为实现生产过程自动化,已有不少操作机器人广泛应用于生产过程,尤其是那些人力所限和人所不及的环境或危险场所,将是机器人进一步发展的应用领域。

日前,美军的蜂鸣机器人(Mini-Drohne)在巴基斯坦击毙了一名恐怖分子嫌疑人。

在未来,这种昆虫型机器人有望成为战场上的主角。

在美国,军事科技研究一般拥有数亿美元的巨资作为后盾。

美国国防部高级研究计划局(DARPA)常为各个大学和自由经济体的科研项目慷慨解囊。

军方亦拥有独立的大型研究实验室,然而其大部分研究成果从未公之于众。

尽管如此,目前披露的成果也足以令人惊叹不已,智能型战斗机器人、自动汽车、植入电脑芯片的动物等等令人联想起扣人心弦的科幻电影

——这一切都有可能在未来的高科技战场上大显身手。

目前,多足仿生机器人的研究基本上是基于模仿自然界中昆虫的运动步态(如蚂蚁)来设计的,通常都会选择周期规则步态作为仿生多足机器人的步态规划依据。

虽然该类多足仿生机器人的脚具有较大的自由度,但是其控制起来较为烦琐,并且不能精确的定位。

1.3课题研究内容

上海交通大学测控技术与仪器系的张涛、颜国正等学者在2006年提出一种微型的六足机器人新结构[2],其结构设计如图1.1。

图1.1机器人结构示意图

机器人模仿昆虫爬行的脚的运动方式,将6只足分为两组,每组3个等边分布在外接圆半径为R的正三角形3个顶点上,机器人在行走过程中,两组足交替支撑。

两组足中的任一组三足可独立支撑起整个机器人身体,机器人重心始终落在A组或B组三足的三角形区域内,因此在平面爬行中没有倾覆的危险。

机器人具有独立的直行和转弯机制,二者可在各自的允许范围内以任意方式结合,这就使得机器人的爬行十分灵活。

本文在此基础上独立设计和加工微型机器人的结构:

部件A、B组足由特殊的驱动器接成机器人主体,并且以单片机为核心设计机器人的控制电路,实现了机器人的无限遥控、智能行走[3]。

2机械结构与芯片简介

2.1机器人机械结构

图2.1是本文设计和加工的微型六足爬行机器人的三维结构示意图。

其中2、4、6分别为转动、竖直、水平驱动舵机,只要控制这三个舵机就可以控制上板和下板相对上下、前后、水平面转动。

1—上板

2—转动舵机

3—竖直移动排齿

4—竖直移动舵机和齿轮

5—水平移动排齿

6—水平移动舵机和齿轮

7—下板

8—上板足

9—下板足

10—水平定位齿轮

图2.1机器人机构图

2.2机器人运动原理

机器人6只足分别均分布在两个等边三角形的顶点上[4]。

机器人在行走过程中,两组足交替支撑。

两组足中的任一组三足可独立支撑起整个机器人身体,机器人重心始终落在A组或B组三足的三角形区域内,因此在平面爬行中没有倾覆的危险。

图2.2机器人组合图

如图1.3所示,通过上下两组脚的相互运动就可以满足机器人多方位移动的需要:

即上下板前后相互交替着地实现前后运动;上下板以三角形中点为轴相互转动交替着地实现转弯运动。

运动如图2.3及2.4所示。

图2.3机器人水平移动示意图

图2.4机器人转动运动示意图

 

2.3驱动装置选择

本文设计的微型六足爬行机器人采用了三个个舵机分别对直线驱动器、转角驱动器以及垂直驱动器来进行精确控制。

舵机是一种位置伺服的驱动器[5]。

它接收一定的控制信号,输出一定的角度,适用于那些需要角度不断变化并可以保持的控制系统。

舵机定位精确、输出力矩较大、尺寸满足要求,作为本设计的力驱动部件十分理想。

以日本FUTABA-S3003型舵机为例,图2.5是FUTABA-S3003型舵机的内部电路。

图2.5FUTABA-S3003型舵机的内部电路

舵机的工作原理是:

PWM信号由接收通道进入信号解调电路BA6688L的12脚进行解调,获得一个直流偏置电压。

该直流偏置电压与电位器的电压比较,获得电压差由BA6688的3脚输出。

该输出送入电机驱动集成电路BAL6686,以驱动电机正反转。

当电机转速一定时,通过级联减速齿轮带动电位器Rw1旋转,直到电压差为0,电机停止转动.舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

标准的舵机有3条导线,分别是:

电源线、地线、控制线,如图2.6所示。

电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源,电压通常介于4~6V,一般取5V,以便给舵机供电的电源应能提供足够的功率[6]。

控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20ms(即频率为50Hz)。

当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。

某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系如图2.7所示。

图2.6标准舵机示意图

图2.7舵机的输出轴转角与输入信号的脉冲宽度之间的关系

综合各方面考虑,选用的舵机为TOWERPRO,型号为SG90。

其主要技术参数如下:

外形尺寸:

22*11.5*27mm

重量:

9g

参数:

无负载速度0.12/60度(4.8V)

堵转扭矩:

1.6Kg/厘米(4.8V)

使用温度:

-30摄氏度+60摄氏度

使用电压:

4-6V

死区电压:

3.0V-5.0V

2.4机器人实物图

 

图2.8机器人实物图

2.5硬件结构介绍

本文为实现机器人的无线控制,分别设计了无线发射模块和无线接收模块。

无线发射模块采用了串口通讯来传递上位机到机器人的信号,并经过单片机识别把信号通过编码芯片PT2262编码后进行无线发射,无线接收模块接受后通过解码芯片PT2272解码并把控制信号传输到单片机,识别后控制三个舵机实现机器人的移动和转向。

 

 

图2.9硬件系统结构图

2.6单片机芯片介绍

AT89S51是美国ATMEL公司生产的低功耗,高效能CMOS8位单片机,片内含有4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚[7]。

它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89S51的主要性能参数如下:

◆与MCS—51产品指令系统完全兼容

◆4K字节在系统编程(ISP)Flash闪速存储器

1000次檫写周期

◆4.0—5.5V的工作电压范围

◆全静态工作模式:

0Hz—33MHz

◆三级程序加密锁

◆128×8字节内部RAM

◆32个可编程I/O口

◆2个16位定时/计数器

◆6个中断源

◆全双工串行UART通道

◆低功耗空闲喝掉电模式

◆中断可从空闲模式唤醒系统

◆看门狗(WDT)及双数据指针

◆掉电标识和快速编程特性图2.10AT89S51单片机

◆灵活的在系统编程(ISP—字节或页写模式)

 

图2.11方框图

引脚功能说明:

●Vcc:

电源电压

●GND:

●P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

●P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

图2.12P1口特殊功能

●P2口:

P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。

●P3口:

P3口是一组带内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

图2.13P3口特殊功能

●RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平讲师单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

●EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器,EA端必须保持低电平。

若EA端为高电平,CPU则执行内部程序存储器中的指令。

●XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

●XTAL2:

振荡器反相放大器的输出端。

51系列单片机的集成了两个可编程的定时器/计数器,即定时/计数器0和1,简称T0和T1,有4种工作方式可供选择。

单片机内部通过专用寄存器TMOD、TCON来设置定时/计数器工作的参数,例如方式选择、定时计数选择、运行控制、溢出标志、触发方式等控制字。

定时器/计数器结构如图2.14所示,其核心是一个16位的加1计数器。

其中,16位的定时器/计数器T0由2个8位计数器TH0和TL0构成,16位的定时器/计数器T1由2个8位计数器TH1和TL1构成。

另外,寄存器TMOD主要用于指定各定时器/计数器的功能和工作模式;寄存器TCON用于控制定时器/计数器的启动和停止计数,同时也设置定时器/计数器的状态。

图2.14定时器/计数器结构示意图

TMOD寄存器用于定义T0和T1的工作方式和4种工作模式,其单元地址为89H。

定时器/计数器0和1的方式控制寄存器TMOD,如图2.15所示。

其中,低4位用于控制T0,高4位用于控制T1,两部分操作和含义完全相同。

图2.15方式控制寄存器TMOD

寄存器TCON的功能是在定时器溢出时设定标志位,并控制定时器的运行、停止和中断请求。

寄存器TCON的单元地址为88H。

中断控制寄存器TCON的组成,如图2.16所示。

其包含3个部分,TF1和TR1位用于控制T1,TF0和TR0位用于控制T0,其它的为中断控制。

图2.16控制寄存器TCON

单片机内部的定时器/计数器是加法计数,其在计数溢出时才申请中断。

为了实现自定义的计数值或定时值,需要从计数最大值计算得出需要设置的初值。

在不同的工作模式中,计数最大值不同,可以为213、216和218。

假设计数最大值为MAX,则初值X计算方法如下:

在计数方式下,X=MAX-计数值。

在定时方式下,X=MAX-定时值/T。

式中T为单片机的计数周期,也就是单片机的机器周期。

例如,当单片机的机器周期T=0.5µs时,如果定时器/计数器工作于模式0,MAX=213x0.5µs=4.096ms;如果定时器/计数器工作于模式1,则最大定时值为MAX=216x0.5µs=32.768ms。

单片机的定时器/计数器是可编程控制的,在使用之前需要先通过如下步骤进行初始化:

(一)指定定时器/计数器的工作模式,通过赋值TMOD寄存器来实现。

(二)装入定时器/计数器的初值,通过赋值TH0、TL0或TH1、TL1来实现。

(三)启动定时器/计数器中断,通过赋值IE来实现。

如果程序中不使用中断,则可以省略此步骤。

(四)启动定时器/计数器,通过置位TR0、TR1来实现。

置位后,定时器/计数器将按规定的工作模式和初值进行计数或开始定时。

单片机与上位机(电脑)可以通过串口进行通讯,使用MAX232进行电平转换,MAX232芯片如图2.18所示。

图2.18MAX232芯片

2.7编码解码芯片介绍

PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441种地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路[8】。

如图2.19所示,编码芯片PT2262发出的编码信号由:

地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。

当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。

图2.19PT2262示意图

表2.1PT2262引脚功能

名称

管脚

说明

A0-A11

1-8、10-13

地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),

D0-D5

7-8、10-13

数据输入端,有一个为“1”即有编码发出,内部下拉

Vcc

18

电源正端(+)

Vss

9

电源负端(-)

TE

14

编码启动端,用于多数据的编码发射,低电平有效;

OSC1

16

振荡电阻输入端,与OSC2所接电阻决定振荡频率;

OSC2

15

振荡电阻振荡器输出端;

Dout

17

编码输出端(正常时为低电平)

在具体的应用中,外接振荡电阻可根据需要进行适当的调节,阻值越大振荡频率越慢,编码的宽度越大,发码一帧的时间越长。

图2.20PT2272示意图

表2.2PT2272引脚功能

名称

管脚

说明

A0-A11

1-8、10-13

地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),必须与2262一致,否则不解码

D0-D5

7-8、10-13

地址或数据管脚,当做为数据管脚时

Vcc

18

电源正端(+)

Vss

9

电源负端(-)

DIN

14

数据信号输入端,来自接收模块输出端

OSC1

16

振荡电阻输入端,与OSC2所接电阻决定振荡频率;

OSC2

15

振荡电阻振荡器输出端;

VT

17

解码有效确认输出端(常低)解码有效变成高电平

 

3控制系统结构设计

3.1上位机控制

3.1.1程序语言及串口通讯

本文在上位机(即计算机)上使用VB语言编写控制程序与人际交互界面,该语言是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。

它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美[9]。

在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。

本文通过串口实现上位机与控制器的信号传递,串口即"串行通信"是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。

相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。

VB语言中为设计者封装了一种控件以方便用户进行串口操作,该控件即为mscomm.vbx。

mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信[10]。

使用MSCOMM控件主要是通过事件来处理串行口的交互,即当数据到达时,控件的OnComm的事件就会来捕获或处理这些通讯事件。

而OnComm事件也可以用来捕获和处理通讯错误。

在实际应用中,一个MSCOMM控件就对应一个串行口,所以如果要处理多个串行口的话,必须有相应数量的控件与之对应。

此控件的主要属性:

ØCommPort:

设置或者返回串行端口号

ØSettings:

用来设置和返回波特率,奇偶校验,数据位和结束位

ØPortOpen:

设置或者返回通讯端口的状态,也可以打开和关闭一个端口

ØInput:

从接受缓冲区里获取或删除数据

ØOutput:

给发送缓冲区里写数据

3.1.2人机交互界面

上位机在整个系统中起着统筹发号施令的作用,它实现的功能为:

根据操作员发出的直接命令或间接命令计算编译出传送给机器人运动的控制信号。

图3.1是本设计的控制软件界面:

图3.1控制界面

对窗体各控件进行初始化:

subform-load()

mport=1'选用com1串行口

mscomm1.settings="2400,n8,1"'波特率2400,8位数据位1位停止位

mscomm1.inputlen=0'input将读取接收缓冲区的全部内容

mscomm1.inbuffersize=1024'设置接收缓冲区的字节长度

mscomm1.portopen=true'打开通信口

mscomm1.inbuffercount=0'清除发送缓冲区数据

mscomm1.outbuffercount=0'清除接收缓冲区数据

periodic.inteval=100'设置ls定时间隔,使遥测命令每隔ls发送1次

command-pressed=false'命令按钮为未激活状态

during-periodic=false'周期性命令数据传输尚未开始

during-nonperiodic=false'非周期性命令数据传输尚未开始

endsub

通过点击每个按钮实现对机器人的不同控制只需编写触发命令按钮的单击事件即可,下面以自动演示控制为例:

PrivateSub自动演示_Click()

MSComm1.Output=">"'串口输出">"的ASCⅡ编码

state="机器人自动动作!

"'赋值机器人当前状态变量state

Timer2.Enabled=True'激活定时器2

Text1.Text="传送指令中……"'更新最新发送指令指示

Form1.Enabled=False'窗体无效,防止指令过于密集

EndSub

定时器控件计时到点事件:

PrivateSubTimer1_Timer()

Text1.Text=state'更新最新发送指令指示

Form1.Enabled=True'激活窗体有效

Timer1.Enabled=False'关闭计时器

EndSub

3.2基于无线的智能控制

系统结构框如图3.2所示:

 

图3.2系统结构框图

3.2.1无线发射模块

无线发射模块主要由三部分组成:

电平转换、89S51单片机、编码芯片及其无线电发射,如图3.3:

 

图3.3无线发射模块示意图

由于计算机串口信号的高低电平与单片机识别的高低电平是不相同的,所以本设计使用了芯片MAX232进行电平转化,以便单片机接收到来自计算机的8位(即一字节)信号。

图3.4无线发射模块电路图

表3.1单片机I/O口分配

单片机I/O口分配

P2.0

编码芯片PT2262的引脚D0

P2.1

编码芯片PT2262的引脚D1

P2.2

编码芯片PT2262的引脚D2

P2.3

编码芯片PT2262的引脚D3

P2.7

编码芯片PT2262使能端TE

P3.0

串口通讯接收RXD

P3.1

串口通讯发送TXD

串口通讯使用的波特率为2400,而单片机是通过定时器来同步接收串口通讯的。

因此对单片机程序初始化如下:

ORG00H

START:

MOVSP,#60H;初始化堆栈指针

MOVSCON,#50H;设置UART属性:

MODE1SM1=1REN=1

MOVTMOD,#20H;设置第一个定时器模式:

MODE2

MOVTH1,#0F4H;设置串口通讯波特率为2400

SETBTR1;激活第一个定时器

89S51单片机有专门用于存放串口数据的寄存器以及指示串口接收完成与否的状态字,编程如图3.5。

 

图3.5发射模块程序流程图

WRITE:

JBCRI,READ;判断单片机是否已经接收完一字节数据

JMPWRITE;未接受完一字节数据向上跳转继续接收

READ:

CLRTI;清除T1

MOVA,SBUF;将缓存中串口接收的数据转移到A

MOVR7,A;将数据转移到寄存器R7

CALLDELAY;延迟

单片机接收的数据是来自计算机的一字节信号(即ASCII编码),因此单片机需要把计算

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1