基于单片机的搬运机器人系统的设计与制作Word格式.docx
《基于单片机的搬运机器人系统的设计与制作Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的搬运机器人系统的设计与制作Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
1.通过设计使学生掌握单片机设计的一般思路和方法;
2.掌握常用单片机仿真软件的使用方法;
3.掌握常用绘图软件绘制和打印电路原理图的方法。
使用的工具软件
PROTEL99
KEIL
提交的设计资料
1.主要电路和元器件的分析论证;
2.PROTEL电路原理图;
3.程序流程图;
4.制作出红外报警系统。
电路基础教研室
2013年12月1日
2011级毕业设计(论文)分任务书(软件部分)
2013年12月14日至2014年1月8日
PROTEL99、KEIL
1.主要程序流程图;
3.系统调试数据;
进度计划
阶段日期
计划完成工作量
指导教师检查意见
备注
12月2日~12月8
(1周)
查阅资料,设计程序流程图
12月9日~12月15
程序编写与调试
12月16日~12月22
系统联调
12月23日~12月31
整理论文,准备答辩
电路基础教研室
摘要
本论文利用单片机设计了自动搬运小车系统,实现了小车自动搬运货物功能。
系统由单片机主控模块、电机驱动模块、电子罗盘模块、无线串口通讯模块、码盘测速模块五部分电路组成。
利用单片机接收电子罗盘采集的数据,实现小车对方向的采集。
上位机通过无线串口向小车发送指令,控制小车的工作。
同时,小车通过码盘对行驶距离进行测量,并将行驶坐标返回。
此系统具有自动化程度高、控制简单、适应性强等特点。
关键词:
电子罗盘;
PWM脉宽调制;
码盘测速;
串口通信
前言
随着传感技术的迅速发展以与工业自动化程度的提高,越来越多的工厂正在走向自动化生产,而以往的传送带、电动货梯已不能满足工厂对零散货物的搬运需求。
叉车搬运虽然灵活方便、可操作性强,但是当工厂生产量增大,就需要更多的操作工,以与更密集的工作时间才能保证工厂对货物搬运的需求。
另一方面,随着传感技术的逐步成熟,高精度、抗干扰的传感器价格也越来越低,再结合上单片机技术、通信技术的发展与成熟,利用单片机控制的自动搬运车将成为可能。
由于控制系统的性价比高,稳定性强,能适应恶劣环境,今后将在很大程度上代替人工操作,成为工业自动化发展的大趋势。
目前自动无人搬运车系统(AGVS),大多以微处理器、传感器以与监控设备组成。
常见的传感器有:
巡线传感器、陀螺仪传感器、GPS定位传感器等,但都存在局限性,例如:
不能适应复杂恶劣的环境、容易受外界影响等。
而本系统采用了高精度、抗干扰的电子罗盘和测速电路,不仅能适应复杂环境,而且能准确判断搬运车行驶的方向与行驶距离,实现对货物的准确搬运。
第1章总体设计
1.1总体框图
本系统结构框图如图1所示。
系统由单片机、电子罗盘电路、码盘测距电路、电机驱动电路、无线串口电路五部分组成。
其工作原理是:
上位机通过无线串口模块发送指令给单片机,单片机通过电子罗盘计算行驶方向是否与指令一样,如果不同将控制车轮电机做出相应调整。
同时,单片机通过测速电路测出小车行驶的距离并通过无线串口模块发送坐标信息给上位机。
而当小车行驶到指定坐标时单片机控制升降电机进行取放货,从而完成搬运任务。
图1系统框图
1.2软、硬件功能划分
本论文利用单片机设计了一个自动搬运车系统。
实现以下功能:
1.能通过电子罗盘判断搬运车的行驶方向;
2.能通过码盘测量搬运车行驶的距离;
3.能通过上位机对的搬运车状态进行监测;
4.能通过升降台实现对货物的取放。
其中我负责完成的是软件设计部分,主要有:
1.主程序程序的编写和调试;
2.电子罗盘读取操作程序的调试;
3.PWM输出程序的编写和调试;
4.无线串口通讯程序的编写和调试。
第2章系统原理图与引脚分配
2.1总体电路图
总体电路图如图2所示。
图2总体电路图
2.2单片机引脚分配
本设计中单片机引脚分配如下:
P1.0/P1.1:
HMC5983电子罗盘时钟SCL、数据线SDA;
P1.3/P1.4:
PWM控制输出端接电机驱动模块的ENA、ENB;
P2.2:
接L298车轮电机驱动模块的IN1;
P2.3:
接L298车轮电机驱动模块的IN2;
P2.4:
接L298车轮电机驱动模块的IN3;
P2.5:
接L298车轮电机驱动模块的IN4;
P0.0:
接升降台下方限位开关;
P0.1:
接升降台上方限位开关;
P0.5:
接L298升降电机驱动模块ENA;
P0.6:
接L298升降电机驱动模块IN1;
P0.7:
接L298升降电机驱动模块IN2;
P3.0:
无线串口接收端(RXD));
P3.1:
无线串口发射端(TXD);
P3.2:
外部中断0,接红外对照管的输出端。
第3章系统软件设计
3.1流程图
3.1.1主程序流程图
主程序流程图如图3所示,该程序主要实现各功能块的初始化以与死循环等待中断功能。
图3主程序流程图
3.1.2INT0外部中断服务子程序流程图
INT0外部中断子程序流程图如图4所示,该程序主要实现行驶距离与坐标的计算,以与向上位机发送坐标数据的功能。
图4INT0外部中断子程序流程图
3.1.3定时器1中断服务子程序流程图
定时器1中断子程序流程图如图5所示,该程序主要实现实时刷新电子罗盘数据,控制搬运车行走的功能。
图5定时器1中断子程序流程图
3.1.4串口1中断服务子程序流程图
串口接收中断子程序流程图如图6所示,该程序主要实现串口中断接收数据的功能。
图6串口中断流程图
3.2部分源程序
/****************头文件****************/
#include<
STC12C5A60S2.H>
/************宏定义************/
#defineucharunsignedchar
#defineuintunsignedint
/***********全局变量************/
ucharidatastep[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//运行步骤
uintidataDistance_tab[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//坐标数据
intcodenorth=1810,south=0,east=2750,west=900,DV=20;
//罗盘方向数据
/*****************功能块头文件,明确含义后修改****************/
#include"
HMC5983.h"
SET_SERIAL.H"
PWM_l298.h"
SET_PWM.h"
/*******主程序********/
main()
{
Init_PWM();
//PWM初始化
Init_Timer0();
//初始化定时器0,作为PWM时钟源
Init_Timer1();
//初始化定时器1,刷新数据
Init_Interrupt();
//开中断中断初始化
Init_Motor();
//L298控制电机初始化
Init_BRT();
//独立波特率发生器初始化
Init_HMC5883();
//HMC5983罗盘初始化
while
(1);
}
第4章系统调试
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,同时支持汇编语言和C语言源程序。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面;
以软件包的形式向用户提供包括C51交叉编译器、A51宏汇编、BL连接定位器等一系列工具,可以支持所有8051的衍生产品。
4.1KeilC51系统调试界面和程序调试
KeilC51系统调试如图7所示。
图7KeilC51系统界面
4.1.1HMC5983电子罗盘模块的校准
电子罗盘模块主要是利用地磁场来测量。
地球本身就是一个大的磁场,所以要保证精确的测量,校准是必不可少的。
因为各个地方的地磁场并不是一样的,同时,还有各种异常磁场的存在。
所以,多数的电子罗盘采集的磁场数据不是圆形,而是椭圆。
电子罗盘在安装后都要进行校准,常用的方法就是沿XY所在平面旋转,测出XY的最大和最小Xmax、Xmin、Ymax、Ymin,并按照以下公式校准。
程序调试图如图8所示。
xOffset=(Xmax+Xmin)/2;
yOffset=(Ymax+Ymin)/2;
Xgain=1;
Ygain=(Ymax-Ymin)/(Xmax-Xmin);
Xraw=(Xgain*(x-xOffset));
Yraw=(Ygain*(y-yOffset));
Xraw、Yraw就是校准后的电子罗盘X、Y的值。
图8程序调试
4.2模块的单独调试与联调
此部分分为:
无线串口通信的联合调试,电子罗盘数据读取程序的调试,PWM模式驱动电机调试。
4.2.1串口通信
无线串口模块用的是SI4432通信芯片,此产品发射距离远,可穿墙,特别适合近程无线设备监控。
图9无线串口模块
小车采集数据向电脑发送,同时由串口助手显示出来。
图10串口助手显示接收的数据
4.2.2电子罗盘采集数据并显示
电子罗盘模块是采用的HMC5983,此模块精度高,带有温度补偿,使用方便。
通信方式有I2C模式与SPI模式,单片机通过读取其数据得到电子罗盘所指方向。
图11电子罗盘模块
电子罗盘指向北时的角度值如图12。
而指向东、西、南时分别为270度、90度、0度
图12电子罗盘指向北方
4.2.3电机驱动模块PWM输出
电机驱动模块的芯片是L298,它采用双H桥结构,可驱动两路电动机进行正反转。
此模块还有光耦隔离,防止单片机电源受干扰,实现了不同电源的隔离。
图13电机驱动模块
通过电机驱动模块通过PWM脉宽调制模式驱动电机运转,此方式是通过调整脉冲的占空比来达到调速的效果。
这种方法类似于D/A转换,即将数字量转换为模拟量。
图14PWM方式控制车轮转动
4.3自动搬运小车与上位机的联合调试
4.3.1VB上位机部分
上位机是是由MicrosoftVisualBasic6.0中文版编写,VisualBasic是可视化编程工具,其界面简单,编写操作方便,很容易被初学者接受。
本程序是在原搬运车监控系统上做的修改,能实现对自动搬运小车运行状态监视以与对自动搬运小车所处坐标的准确显示。
图15VB上位机程序调试
4.3.2自动搬运小车整体调试与上位机监控
VB上位机用于监测搬运小车的位置,图中蓝色圆点为搬运小车待命点,黄色的圆点为搬运小车,蓝色方块为指定的仓库。
右侧的窗口显示坐标、货物名称与其它信息。
如图16。
图16上位机监控系统
搬运小车根据上位机发送的指令,在指定坐标进行提取货物并进行下一步工作。
图17搬运小车提取货物
搬运小车根据指令达到到指定地点放下货物,并沿指定线路返回原点待命,从而完成一次搬运的任务。
图18小车搬运货物返回
第5章毕业设计总结
我们所做的自动搬运小车系统实现了上位机与自动搬运小车的通信,上位机发送指令控制小车工作,同时通过上位机监测搬运小车的运行状态。
从而可以实现搬运小车对货物的自动搬运功能。
这次毕业设计从开发板、驱动板的焊接调试、测距模块的设计、到车体结构的改进。
从查阅各模块的相关资料,到了解各模块的工作方式。
再到各模块的单独调试、联合调试和最后与上位机通信。
整个过程中遇到很多困难,以至于我们是最后一组做完。
我们所做的自动搬运小车是基于单片机系统,其工作方式是单片机通过电子罗盘模块采集方向数据来控制搬运小车运动。
由于搬运小车工作环境复杂,不能避免外界电磁干扰的存在,可能导致电子罗盘数据的不准确,使搬运小车失去控制,从而达不到预期的效果。
虽然单一传感器工作时受到干扰时会导致搬运小车失去控制,但是通过多种类型传感器协调工作将会使搬运车工作更加稳定。
另外也可以使用物联网ZigBee网状网络定位系统,实现监测、控制的功能。
致
感我的指导老师史振江在硬件设计与软件基础部分给予的帮助,感家辉老师在VB上位机串口调试时的帮助,另外感我的搭档王萱同学在硬件部分的详细说明,感群TT平衡车里小乐同学在电子罗盘校准方面的帮助。
参考文献
1、玉菊编,电子技术仿真与实训,电子工业,2009年版
2、忠平编,单片机基础与最小系统实践,航空航天大学,2007年版
3、.amobbs./archiver/tid-4355857.html(amoBBS阿莫电子论坛)
4、亓莱滨编,VisualBasic程序设计,清华大学,2008年第2版
5、佩华、眭碧霞编,单片机原理与接口技术,机械工业,2011年版
6、电子罗盘两点校正法
7、继明,胡欲立,屏蔽罩对永磁直流电机磁场的影响分析,议持电棚2011年第8期
8、成大先,机械设计手册(单行本,减速器.电机与电气),:
化学工业,2004.1
9、伟,传感器实用教程,:
东南大学,2003.7
10、乌云高娃,温希东,王明福编,C语言程序设计,高等教育,2007年版
毕业设计(论文)评定表
罗本坡
学号
5
存档号
144113215
系别
电气工程系
专业
电气自动化
班级
41132
毕业论文(设计)题目
指导教师评语:
签名:
年月日
1.毕业设计成绩:
指导教师签名:
年月日
2.答辩成绩:
答辩小组组长签名:
年月日
3.综合成绩:
备注:
1.“毕业设计成绩”一项由指导教师根据毕业设计过程的表现与毕业设计说明书评定,满分100分。
2.“答辩成绩”一项由答辩小组组长根据答辩情况评定,满分100分。
3.“综合成绩”=“毕业设计成绩”*70%+“答辩成绩”*30%。