毕业设计(论文)-基于“未来之星”的超声波避障机器人设计.doc_第1页
毕业设计(论文)-基于“未来之星”的超声波避障机器人设计.doc_第2页
毕业设计(论文)-基于“未来之星”的超声波避障机器人设计.doc_第3页
毕业设计(论文)-基于“未来之星”的超声波避障机器人设计.doc_第4页
毕业设计(论文)-基于“未来之星”的超声波避障机器人设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要机器人是高级整合控制论、机械电子、计算机、材料和仿生学的产物。可以说机器人就是具有生物功能的实际空间运行工具,可以代替人类完成一些危险或难以进行的劳作、任务等。随着社会的发展需求,机器人已经渗透了我们的生活、工作和经济方面,并且起到了很大的作用,在工业 、医学、农业、建筑业甚至军事等领域中均有重要用途。可以说机器人的研究和发展对我们的经济发展以及人们的生活有了越来越大的影响。本篇所介绍的超声波避障机器人是一个具有避障和简单语音功能的智能机器人,它能够使用超声波检测障碍物且在屏幕上显示其距离,并且能够避开障碍物行走。 关键字:机器人;超声波;避障; Abstract Advanced integrated robot control theory, mechanical electronics, computers, materials and product of bionics. It can be said is that the robot has a biological function of the actual space to run tool can replace the human danger, or difficult to complete some of the crafts, tasks and so on. With the social development needs, robots have infiltrated our lives, work and economy, and has played a significant role in industry, medicine, agriculture, construction and even the military have important uses in other fields. It can be said robot research and development of our economic development and increasing peoples life has been affected. This article described ultrasonic robot obstacle avoidance and obstacle avoidance is a simple voice-enabled smart robots, which use ultrasound to detect obstacles and their distance on the screen, and can walk away from obstacles. Keywords: robot; ultrasound; obstacle avoidance; 引言:51 超声波避障机器人的结构设计51.1 超声波避障机器人的功能要求51.2 超声波避障机器人的组成51.2.1 超声波测距系统结构及功能61.2.2 机器人系统结构及功能82 超声波避障机器人的原理分析113 超声波避障机器人程序设计113.1 设计思路113.1.1 超声波测距系统程序设计123.1.2 避障程序设计133.2 程序的调试和运行133.3.1 程序运行出现的问题以及解决方法144 总结15参考文献16附录117引言: 智能控制(intelligent controls)是指在无人干预的情况下能自主地驱动智能机器实现控制目标的自动控制技术。智能控制理论的研究和应用是现代控制理论在深度和广度上的拓展。20世纪80年代以来,信息技术、计算技术的快速发展及其他相关学科的发展和相互渗透,也推动了控制科学与工程研究的不断深入,控制系统向智能控制系统的发展已成为一种趋势。超声波避障机器人则是对智能控制一个小系统的学习和研究,体现出智能控制的特点。超声波避障机器人是基于“未来之星”机器人技术基础,使用Visual C+开发环境设计的一款智能机器人。“未来之星”机器人不仅拥有一般地面自主移动机器人几乎所有功能,并且将PC系统集成到机器人内部,具有控制简单方便,外型可爱,功能强大的特点,初步展现了未来家用服务机器人的基本特征。1 超声波避障机器人的结构设计超声波避障机器人是以未来之星机器人作为平台,开发具有超声波测距以及避障等功能的智能机器人,具有结构简单小巧、反应敏捷等特点。1.1 超声波避障机器人的功能要求 基本功能:机器人可以自由移动,能够检测到障碍物,并显示障碍物的距离,在距离达到一定值的时候,机器人做出相应的动作,从而避开障碍物。 扩展功能:机器人开始运行的时候,可以进行语音提示。1.2 超声波避障机器人的组成 超声波避障机器人由两部分组成:超声波测距系统以及机器人系统。用于检测障碍物的距离。组成框图如下所示: 机器人 超声波测距系统 1.2.1 超声波测距系统结构及功能 超声波测距系统主要是由超声波发生电路、接收电路以及单片机最小系统组成。组成框图如下所示: 超声波接收电路 超声波发射电路 单片机最小系统 超声波测距系统的组成器件主要有: STC89C52单片机 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash;512字节RAM;32 位I/O 口线;看门狗定时器;内置4KB EEPROM;MAX810复位电路;三个16 位 定时器/计数器;一个6向量2级中断结构;全双工串行口; 另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。 MAX232串口通信芯片 MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电,主要用于进行串口通信,将数据传输到机器人中。芯片引脚结构如下图所示: CX20106A红外接收芯片 CX20106A是红外接受专用芯片,本设计用于超声波的接收。芯片引脚结构如下图所示: 1.2.2 机器人系统结构及功能 机器人系统由“未来之星”机器人组成。“未来之星”外型小巧,但同进又要求功能强大,集成功能丰富,以至于内部结构复杂,电路众多。 “未来之星”结构简介 为了保证机器人各部分功能模块清楚、线路整齐、安装和维护方便,在设计时将机器人各主要功能模块分层布置,主要分为:运动层、控制层、头部层。 运动层 运动层上主要是能源和驱动部分。底板是所有部件的承载结构,立柱用于连接固定运动层和基础控制层。 基础控制层 基本控制电路都安装在基础控制层,主要有主板、MultiFlex 控制卡、运动控制卡、232-485通讯板、无线电台和接口,这些电路都安装在底板上。底板通过立柱和高级控制层连接固定。 高级控制层 高级控制层上有LCD 及键盘模块、嵌入式PC系统、液晶屏模组、光敏温敏传感器等电路板,这些电路板通过铜柱固到底板上。机械手固定件用于连接和固定机械手,头部转动电机带动机器人的头部进行水平转动。 头部层 高级版本的头部里有摄像头、激光笔,标准版本的头部里有两个可控制的指示灯。 “未来之星”能源与驱动系统 “未来之星”的能源系统主要包含几个方面:各种不同工作状态的能源消耗、电池组类型及参数、电源管理。整个“未来之星”系统有两路电源,1号电源管理模块单独为机载PC供电,2号电源管理模块为机器人控制系统及其它部件供电。电源接口电路功能是协调电池、开关电源、充电等几路电源的输入,对电源提供保护。电路板各个输入输出口在使用时要注意各个接头的正负极性,可能接错的端子上都有相应的丝印标识。POWER OUT输出是一个三针5.08 绿色电源端子,1脚为正,2 脚为负,3 脚是标识脚。当使用电池供电时:1、开关打开电源管理模块12V电压,面板上的电源指示灯亮;2、开关断开,电源管理模块没有电压输入,面板上的电源指示灯灭。当使用外部开关电源供电时:1、面板上的外部供电指示灯亮;2、电池和系统断开;3、合上开关电源管理模块有电,面板上的电源指示灯、外部供电指示灯亮;4、断开开关,电源管理模块没电,面板上的电源指示灭、外部供电指示灯亮。充电器接上时,不允许同时接上外部供电的开关电源。开关合上时,电池和系统连上,这时不能充电;开关断开时,电池和系统断开,与充电器连上,电池处于充电状态。接口电路有4路指示灯:系统电源指示灯(+12V)、外部供电指示灯(Ex POWER+)、机载PC硬盘指示灯(HDLED+)、机载PC电源指示灯(POWER_LED+)。“未来之星”的电源管理模块是专门为VIA Mini-IVXY主板开发的ATX 电源,输入电压范围6-16V,输出3.3V、5V、12V 三种电压,总功率100W。接口电路将电源管理模块输出的电流分成多路12V 和5V,方便系统供电设计。PS-ON是ATX 电源的软开关,接到机器人的接口面板上。3 个桔红色端子是12V 输出,两个用于给电机的驱动控制器供电,一个备用;3 针绿色端子12V 输出,用于主板12V 输入;2 个2针绿色端子为5V 输出,用于主板和MultiFlex 控制卡的5V 输入。接线时请注意正负。 “未来之星”采用两轮驱动,两个直流伺服驱动器对两个直流伺服电机进行闭环控制,能够比较精确的控制机器的的运动轨迹。结合带陀螺仪和倾角计导航的运动控制卡,机器人可以实现精确的运动控制,能够有效的锁定航向、自动补偿和纠正因外力造成的运动偏差。直流电机将轴的旋转运动输入到齿轮箱,齿轮箱的输出轴控制轮子转动,从而驱动整个机器人的运动。直流电机上的电压大小影响电机的转速和扭矩。“未来之星”的电机运动控制通过专业的直流电机伺服驱动器来实现的,该直流电机伺服驱动器型号是DS3610。DS3610 是博创科技专门为直流伺服驱动控制开发的一款高性能驱动。 “未来之星”的控制系统“未来之星”整个系统是基于全双工 RS-485 总线设计的,系统配置中只有一个主机,可以是机载PC、远程控制器,也可以是其它CPU,如Mega128、DSP、ARM,其它设备以从机的形式挂在485 总线上。高级版本的主机是VIA 嵌入式PC,即“未来之星”的机载PC。机载PC 通过USB-232线缆连接到232-485 通讯模块上。232-485 将上位机的232 信号转化为485 信号,和上位机构成主机系统。标准版本的主机的远程控制PC,远程PC 通过无线232 电台和232-485 通讯模块转接,232-485 将远程PC 机的232 信号转化为485 信号,和远程PC 机构成主机系统。MulFlex 模块化机器人控制器、键盘和LCD、运动控制卡、超声波传感器、其它的扩展部件都以从机的地位连接到485 总线上。“未来之星”的控制电路主要包括:主板、运动控制卡、MulFlex 模块化机器人控制卡、键盘和LCD、232-485 通讯模块等。 “未来之星”的软件系统 “未来之星”有两套控制软件:Fstar 控制程序和FstarRmCtl 远程控制演示程序。Fstar控制程序可以用于机载PC 本地控制,也可以用于标准版本通过电台远程控制;FstarRmCtl远程控制演示程序用于远程PC 通过无线以太网对机器人进行远程控制。2 超声波避障机器人的原理分析 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。 超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。 测距的公式表示为:L=CT 式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。 当测出障碍物与机器人的距离小于一定的范围时,机器人转向或者后退便可以避开障碍物。3 超声波避障机器人程序设计3.1 设计思路 超声波测距模块对障碍物进行测距,将距离数值传输到机器人,进行显示并处理,当这个数值大于一定的范围,则为安全,机器人继续前进,当数值小于一定的范围,则为危险,机器人转向,避开障碍物后继续前进,当数值在两个范围之间,机器人减速前进。3.1.1 超声波测距系统程序设计 首先将系统初始化,然后利用空指令nop发送40KHz的超声波,计数器T0从发射开始计时,当遇到障碍物,超声波返回,由探头接收到,则进入外部中断0,取出计数值,进入主程序进行距离的计算,并使用定时器T1作为串口通信波特率发生器,将距离值传输到机器人,以此循环。程序流程图如下所示: 开始 是否接收到超声波返回?传送数据到机器人计算距离值 进入中断 取出时间值 开始计时 初始化 发射超声波否 是3.1.2 避障程序设计 设定一个最大值max和一个最小值min,当计算出的障碍物的距离大于最大值时,为安全状态,机器人保持原来的状态行进,当小于最小值时,为危险状态,机器人左转一定的角度,再继续前进,当在最小值和最大值之间时,为警告状态,机器人减速前进。程序流程图如下所示: 开始 语音提示开始 机器人前进写入传入的数据大于max?YN 减速小于min?NY 机器人左转3.2 程序的调试和运行程序编写完成后,即可下载到机器人进行验证,步骤如下所示: 开启机器人,将超声波测距系统与机器人相连接; 将程序下载到机器人中; 打开程序,选择合适的串口,点击“打开”; 查看距离显示是否正确,机器人功能是否正常; 运行成功后,点击“退出程序”即可退出程序。3.3.1 程序运行出现的问题以及解决方法 距离没有显示,机器人检测不到障碍物 经过仔细检查,发现超声波测距模块与机器人没有连接好,将线路连接并固定好之后,距离有了显示。 距离显示不稳定,机器人避障不正常 由于超声波测距模块的问题,测距的精度和稳定程度都不是很好,偶尔发生跳动,导致机器人避障不正常,有时没有障碍物也躲避,有障碍物时又反而不躲避,经过思考和多次改进,在程序中加入防止数据抖动的程序,成功解决了问题。4 总结 智能控制是一门复杂高深却非常有趣学科,虽然我们学过了很多关于智能控制的知识,但是我们的理解还不够全面和深刻。 这次的课程设计,给了我们一个非常好的机会,不仅让我们对超声波有了更进一步的学习,并且加深我们对机器人的原理、结构以及使用的了解,更重要的是对智能控制的理解和认识大大地提升了。让我们学到的关于机器人以及智能控制等知识得要了很好的实践应用,培养了我们的逻辑思维能力,动手能力以及团队合作精神。拿到题目分好组之后,我们首先查阅了很多有关机器人控制和超声波测距的资料,接着讨论制定出了初步的功能规划和程序流程,然后编写程序,一次次地进行验证改进。在这个过程中,我们有独立思考也有团队合作,既锻炼了个人的能力也增强和与他人合作的能力,不仅学到了许多的专业知识,也增进了同学之间的感情,受益匪浅。参考文献1超声波测距仪的设计.J.传感器技术.20022机器人编程设计与实现 科学出版社 John Blankenship3“未来之星”用户手册附录1程序清单/ FstarTestDlg.cpp : implementation file/#include stdafx.h#include FstarTest.h#include FstarTestDlg.h#include math.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifdouble distence=0.0,date=10.0;char flag_no=0,state=0;CString yuyin=开始超声波避障;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CFstarTestDlg dialogCFstarTestDlg:CFstarTestDlg(CWnd* pParent /*=NULL*/): CDialog(CFstarTestDlg:IDD, pParent)/AFX_DATA_INIT(CFstarTestDlg)m_nPort = 0;m_distan = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CFstarTestDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CFstarTestDlg)DDX_Control(pDX, IDC_BUTTON_exit, m_EXIT);DDX_Control(pDX, IDC_Status, m_Status);DDX_Control(pDX, IDC_MYICON, m_myicon);DDX_Control(pDX, IDC_COMBO_duankou, m_duankou);DDX_Control(pDX, IDC_Portnum, m_portnum);DDX_Control(pDX, IDC_MSCOMM1, m_ctrlComm);DDX_Text(pDX, IDC_Distan, m_distan);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CFstarTestDlg, CDialog)/AFX_MSG_MAP(CFstarTestDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_OPEN, OnOpen)ON_BN_CLICKED(IDC_FORWARD, OnForward)ON_BN_CLICKED(IDC_TURNLEFT, OnTurnleft)ON_BN_CLICKED(IDC_TURNRIGHT, OnTurnright)ON_BN_CLICKED(IDC_BRAKE, OnBrake)ON_BN_CLICKED(IDC_BUTTON_exit, OnBUTTON_Exit)/AFX_MSG_MAPEND_MESSAGE_MAP()/ 一/ CFstarTestDlg message handlersBOOL CFstarTestDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small iconm_hIconRED=AfxGetApp()-LoadIcon(IDI_ICON_RED);m_hIconGREEN = AfxGetApp()-LoadIcon(IDI_ICON_GREEN);m_hIconYELLOW = AfxGetApp()-LoadIcon(IDI_ICON_YELLOW);m_Iconsmile=AfxGetApp()-LoadIcon(IDI_ICON_F);m_myicon.SetIcon(m_Iconsmile);m_Status.SetWindowText(状态信息);/ TODO: Add extra initialization herem_duankou.SelectString(-1,COM8);m_botelv.SelectString(-1,9600);m_jiaoyanwei.SelectString(-1,N);m_shujuwei.SelectString(-1,8);m_tingzhiwei.SelectString(-1,1);m_Com.SetCmd(&m_Cmd);/开机器人串口m_Com.Create(3); /开机器人串口return TRUE; / return TRUE unless you set the focus to a controlvoid CFstarTestDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CFstarTestDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user dragsHCURSOR CFstarTestDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CFstarTestDlg:OnOpen() /打开按钮/ TODO: Add your control notification handler code herem_Reco.Speak(yuyin);/语音UpdateData(); CString cs;char duankouhao5;CString settings;m_duankou.GetWindowText(duankouhao,5);m_ctrlComm.SetCommPort(duankouhao3-0); /串口端口选择if(m_ctrlComm.GetPortOpen()m_ctrlComm.SetPortOpen(FALSE);if(!m_ctrlComm.GetPortOpen()m_ctrlComm.SetPortOpen(TRUE); elseAfxMessageBox(打开串口失败!);m_ctrlComm.SetSettings(9600,n,8,1); m_ctrlComm.SetInputMode(1);m_ctrlComm.SetRThreshold(1);m_ctrlComm.SetSThreshold(1); m_ctrlComm.SetInputLen(0);m_ctrlComm.GetInput();void CFstarTestDlg:OnBrake() /刹车按钮/ TODO: Add your control notification handler code herem_Cmd.Brake(1);/停止BEGIN_EVENTSINK_MAP(CFstarTestDlg, CDialog) /AFX_EVENTSINK_MAP(CFstarTestDlg)ON_EVENT(CFstarTestDlg, IDC_MSCOMM1, 1 /* OnComm */, OnOnCommMscomm1, VTS_NONE)/AFX_EVENTSINK_MAPEND_EVENTSINK_MAP()void CFstarTestDlg:OnOnCommMscomm1() /与单片机串口通信/ TODO: Add your control notification handler code

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论