静默管理下物资配送机器人设计_第1页
静默管理下物资配送机器人设计_第2页
静默管理下物资配送机器人设计_第3页
静默管理下物资配送机器人设计_第4页
静默管理下物资配送机器人设计_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

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

文档简介

静默管理下物资配送机器人设计摘要随着全球制造业的产业升级,智能搬运机器人现已经与工业密不可分了。人工搬运主要体现在快递物流行业、生产制造行业、轻型运输行业、农林业等几大领域。人工搬运根据工种的不同往往需要投入较多的人力,其主要缺点是投入人力多、增加成本、效率低下等造成后续一系列严重的后果,甚至造成无法挽回的损失等等。特别是生产制造行业中的物流体之间的搬运运输,强调的是确保效率、降低成本、智能防呆、保证安全等随着智能制造业的发展将会逐步改造升级。本设计针对在物料搬运中投入人力多、增加成本、效率低下等问题,为了有效的解决上述问题,结合AGV技术与远程蓝牙控制技术设计出一款静默管理下物资配送机器人系统。该系统利用STM32单片机为主控单位,利用传感器模块来采集信息实现避障和循迹功能,通过电机驱动小车移动,通过舵机控制机械臂抓取物品,通过蓝牙模块实现上机位下机位通信,完成小车一系列的相关操作。关键词:AGV技术;蓝牙;机器人;传感器目录第1章绪论 [22];被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为高电平,指示二极管被点亮。接线方式:1、VCC:电源正极(5V)2、GND:接电源负极3、OUT:/低电平开关信号(数字信号0和1)3.2.7蓝牙模块设计HC-06蓝牙模块采用CSR主流蓝牙芯片,蓝牙V2.0协议标准;串口模块工作电压为3.3V,波特率为1200,2400,4800,9600,19200,38400,57600,115200,用户可根据需求自行设置;核心模块尺寸大小为:28mmx15mmx2.35mm;工作电流为40MA休眠电流小于1MA当用于GPS导航系统,水电煤气抄表系统工业现场采控系统时,可以与蓝牙笔记本电脑、电脑加蓝牙适配器、PDA等设备进行无缝连接。图3.9蓝牙模块原理图第4章系统的软件设计4.1软件主流程当全部系统软件通电时,红外光电传感器和循迹传感器检测小车前方是否有障碍,使小车可以躲避障碍,并能按照指定路线行驶;四个舵机可控制机械臂末端执行器的位置,控制机器手的抓握张开姿势,控制机械臂中各动力关节的输出转矩;还可以通过蓝牙模块来控制小车移动。4.2红外避障模块的软件设计接通电源后,传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和。图4.1红外避障模块设计流程图4.3舵机模块软件的设计使用传统单片机控制舵机的方案也有很多,多是利用定时器和中断的方式来完成控制的,这样的方式控制1个舵机还是相当有效的,但是随着舵机数量的增加,也许控制起来就没有那么方便而且可以达到约2微秒的脉宽控制精度了。听说AVR也有控制32个舵机的试验板,不过精度能不能达到2微秒可能还是要测试才知道了。其实测试起来很简单,你只需要将其控制信号与示波器连接,然后让试验板输出的舵机控制信号以2微秒的宽度递增。在设计中需要用delaymemory指令的延时时间为数据单元的立即数的值加1个指令周期,因为是8位的数据存储单元,所以memory中的数据为0-255;舵机的角度级数一般为1024级,所以只用一个存储空间来存储延时参数还不够用,所以可以采用两个内存单元来存放舵机的角度伺服参数。这样以来就可以采用这样的软件结构:图4.2舵机模块软件结构4.4电机驱动模块的软件设计下面是使用L298N电机驱动模块进行软件设计的基本流程:初始化引脚:首先,你需要确定你的控制器(如Arduino)上连接了L298N模块的引脚。根据引脚连接方式,将相应的引脚设置为输出模式。控制电机转向:L298N模块可以控制两个电机,每个电机使用两个引脚控制。使用控制器的数字输出引脚来控制这些引脚的状态,从而改变电机的转向。正转:将一个引脚设置为HIGH,另一个引脚设置为LOW。反转:将一个引脚设置为LOW,另一个引脚设置为HIGH。可以编写相应的函数或方法来实现电机转向控制。控制电机速度:如果需要控制电机的速度,可以使用PWM信号。在Arduino上,使用analogWrite()函数将PWM信号输出到控制器的数字引脚上。连接到L298N模块的使能引脚用于控制电机的速度。设置使能引脚为HIGH,电机将开始运行。使用analogWrite()函数设置引脚的PWM占空比来控制速度。PWM占空比的范围通常是0到255,其中0代表停止,255代表最大速度。控制电机停止:要停止电机运动,可以将控制器上连接到L298N模块的引脚设置为LOW。设置两个控制电机转向的引脚为LOW,电机将停止转动。设置使能引脚为LOW,电机将停止运行。图4.3电机驱动模块流程图4.5循迹传感器模块的软件设计TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在所检测的范围内时,红外线会被反射回来并且强度足够大,红外接收管饱和,此时模块的输出端为高电平,指示二极管被点亮。流程图如下:图4.4循迹模块流程图4.6蓝牙模块的软件设计蓝牙模块接收手机发送的信号,将信号通过串口发送给单片机,单片机接收到信号后‎‏,执行相应的操作。如果要向模块发送指令,通常是采用按键‎‏的方式,可以使用扫描按键,也可以使用外部中断,按下按键‎‏就执行发送指令的程序,比如通过按键来切换模块主从模式,‎‏修改密码,修改波特率,修改名字等等。涉及到的单片机部分主要是串口和定时器,串口用来向模块发送指令或者接‎‏收来自外部的信号,定时器主要用来产生定时中断,用来界定‎‏两帧数据,比如约定接收的相邻两个字节时间间隔超过5ms‎‏,则认定为是两帧数据,这个间隔是自定义的。串口部分是整个最重要的一部分,大致要完成一下事情:初始化串口,设置‎‏好串口的通信波特率,开启串口中断,编写串口中断函数。在‎‏串口中断函数里面把接收的数据存入一个数组当中。编写串口‎‏发送函数,用来向模块发送指令。stm32有现成函数可以‎‏调用,51单片机要自己去编写单字节的发送函数和字符串发‎‏送函数。初始化定时器,设置好定时时间,使能中断,在中断‎‏函数里面关闭定时器。图4.5蓝牙模块流程图第5章系统测试5.1系统实物图图5.1系统完整实物图5.2蓝牙模块测试图5.2控制软件图如图5.2,开启蓝牙后,手机端与小车连接起来。图中的按键是控制小车前进、后退、左转、右转、停止等操作。还可以通过滑动条来控制底部、右边和左边的舵机,从而控制小车机械臂的活动。(a)(b)图5.3左右转示意图如图5.3,小车在手机APP的控制下分别在进行左转和右转运动。图5.4操作示意图如图5.4,长按抓取按钮,机械手会张开,松开后机械手闭合,从而实现抓取物品的功能。图5.5机械臂控制图如图5.5,三个滑动条来控制机械臂的运动方向,演示如下图:(a)(b)图5.6机械臂控制演示图5.3机械臂测试图5.7机械臂实物图如图5.7,为四个舵机控制的机械臂,其中三个舵机分别控制机械臂的伸缩、升降和抓取。当接通电源后,蓝牙连接,手机控制可完成机械臂的抓取操作。图5.8舵机电源图如图5.8,为四个舵机的电源,要使用机械臂,则将电源开关开到ON档。打开之后,有了电源,即可通过手机来控制机械臂。5.4红外避障模块测试如图5.9,小车在前进过程中,红外避障传感器检测到有障碍物,小车会自动改变方向,避开障碍物,从而实现红外避障功能。图5.9红外避障功能演示图5.5循迹模块测试如图5.10,小车在沿着指定路线行驶,实现循迹功能演示。图5.10循迹功能演示图第6章总结与展望一、总结系统软件的调试过程并不是十分顺利的,在调试过程中也出现了一些错误的地方。但在指导老师的帮助下,我及时发现了问题,并改正了设计中的错误和不合理的地方。设计方案中的问题和解决方法主要包含以下几点。(1)在给电源模块模拟仿真的过程中,发现调试输出值一直达不到设计规定。查看基本原理后,发现电路板焊接时出现了一些技术问题,于是重新焊接。(2)在应用仿真软件时,发现了有一些错误代码。然后经过调整之后,发现在启用程序流程时,单片机还是没有正常复位,在程序流程中添加复位程序流程后才得到了正确的结果。(3)在进行模拟仿真时,舵机的角度一直不符合要求。之后通过调研,将代码进行一系列的修改调试,之后达到了想要的结果。二、展望设计以配送机器人为研究对象,在具体分析机器人运动的计数后,明确提出了一种基于单片机的静默管理下的配送机器人。全部设计的首要工作中如下所示。(1)根据查看相关资料和国家行业标准,了解了智能避障机器人相关信息,并在这个基础上明确提出了以机器人避障为首要目的的静默管理下的配送机器人。(2)对于上一部分提及的问题,明确提出了运用红外避障传感器收集距离数据,和运用单片机设计操纵所有体系的设计计划方案。(3)通过对市面上流行的红外避障传感器的研究和选型,明确E18-D80NKNPN三线常开的红外避障传感器来检测前方是否有障碍物;(4)硬件配置电源电路以红外避障传感器为采集元件,STM32为主板芯片。尽管模拟仿真说明全部设计彻底可以达到测控技术的规定,可是全部系统软件还具有一些问题和优化的地区,必须在之后的探讨中进行健全。(1)设计的操作系统包括一个蓝牙通信模块。在具体运用中,在一定距离内才能完成通信,满足当代测控技术的发展趋势规定。(2)本设计中没有操纵误差实行的优化算法。在具体运用中,应引入优化算法操纵,如PID优化算法、模糊算法、神经网络控制算法等。根据引入该优化算法,可以进一步提高实行高效率。参考文献禅翔,贺凯鑫,郭焕萍.智能物料搬运机器人的研究与实现[J].电子世界,2021(8):2.李永胜,任倩.物料搬运机械手的设计开发[J].机械研究与应用,2019.张颖川.资本关注下的AGV市场[J].物流技术与应用,2019.陈俊明,邵忠良,黄诚.一种智能配送机器人控制系统[P].2018.张驰,钟宇光,邓泽晓.一种多自由度并联抓取机器人控制系统及其控制方法[P].2019.沈斯杰,田昕,袁千贺.融合改进A^(*)和时间弹性带的移动机器人路径规划算法[J].智能计算机与应用,2022,12(11):7.李森杰,郑洪瀛,杨超.基于A^(*)与DWA算法的混合路径规划算法研究[J].吉林大学学报:信息科学版,2022(001):040.LeeH.ObstacleAvoidanceAlgorithmforCooperativeMobileRobotsunderVelocityandCurvatureConstraints[J].JournalofInstituteofControl,2019.张毅,沙建松.基于图优化的移动机器人视觉SLAM[J].现代科技译丛:哈尔滨,2018.阮胜田,侯迎超.一种自主定位导航机器人[P].2020.任华魁.单片机在电子技术中的应用和开发分析[J].电子技术与软件工程,2021(15):2.张瑞,田永全,赵阳,张宏亮,田雪,陈洪波.基于STM32微控制器稳定平台数字控制系统的设计[J].弹箭与制导学报,2020.倪煜,曹佳丽,耿涛.基于STM32的智能物料搬运轮式机器人的设计与研究[J].2022.AbdelattyO,ChenX,AlghaihabA.BluetoothCommunicationLeveragingUltra-LowPowerRadioDesign[J].JournalofSensorandActuatorNetworks,2021.任玲玲,李浪,闫庚龙,莫仁浪.基于Arduino的蓝牙智能避障小车设计[J].电子制作,2022,30(19):27-30.ZiwenH,ScienceS.O.AnalysisoftheApplicationofElectronicEngineeringTech-nologyinSingleChipMicrocomputer[J],2020,1(2).罗刘敏,王明霞,郭艳花.基于单片机的智能小车控制系统设计[J].仪表技术与传感器,2018.Huaimeng,Gui.ThesteeringgearcontrolsystembasedonArduino[C].2018.杨阳,魏晨.基于DSP的机械手臂舵机控制系统[J].今日制造与升级,2021(000-006).NorinskayaI,GuskovA,SpirinA.Developmentofasmall-sizedelectromechanicalsteeringgearunitbysimulationmodeling[J].JournalofPhysics:ConferenceSeries,2021.李鹏.基于L298N的直流电机调速系统[J].电子测试,2022.纪鑫哲,叶尔深·艾尔肯,叶博远.一种基于超级电容快速充电的循迹小车设计[J].无线互联科技,2020.附录电路图源代码#include"delay.h"#include"sys.h"#include"timer.h"#include"usart.h"#definePB5PBout(5)//PC13 #definePB6PBout(6)//#definePB7PBout(7)#definePB8PBout(8)#defineLEDPCout(13)#defineENAPBout(9)//#defineENBPAout(5)#definePC15GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_15)#definePB12GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)#definePB13GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)#definePB14GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)externunsignedcharly_da;externunsignedcharjs_dat[5];externunsignedcharjs_flg;unsignedintt=0;unsignedcharzkb1=0;unsignedcharzkb2=0;unsignedcharmov_sta=0;unsignedintjs_count=0;voiddde(u16time){u16i=0; while(time--) {i=12000; while(i--); }}voidGPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);/*GPIOAConfiguration:TIM3channel1and2asalternatefunctionpush-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_13|GPIO_Pin_14;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOB,&GPIO_InitStructure); }voidsend(unsignedchardata){USART1->DR=data;while((USART1->SR&0X40)==0);}voidqianjin(){PB5=1; PB6=0; PB7=1; PB8=0; zkb1=30; zkb2=30;}voidht(){PB5=0; PB6=1; PB7=0; PB8=1;zkb1=30; zkb2=30;}voidzz(){PB5=1; PB6=0; PB7=1; PB8=0; zkb1=20; zkb2=55;}voidyz(){PB5=1; PB6=0; PB7=1; PB8=0; zkb1=50; zkb2=20; //dde(800); //qianjin();}voidtz(){PB5=0; PB6=0; PB7=0; PB8=0; zkb1=0; zkb2=0;}voidzz1(){PB5=0; PB6=1; PB7=1; PB8=0; zkb1=26; zkb2=26;}voidyz1(){PB5=1; PB6=0; PB7=0; PB8=1; zkb1=26; zkb2=26;} voidEXTIX_Init(void){ EXTI_InitTypeDefEXTI_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1); EXTI_InitStructure.EXTI_Line=EXTI_Line1; EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling; EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x03; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}unsignedintdj_pm=3;unsignedcharks_flg1=0;intmain(void){ unsignedcharxj_flg=0; SystemInit();// delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); GPIO_Config(); TIM2_PWM_Init(199,7199);uart_init(9600); dde(100); dde(100); TIM_SetCompare2(TIM2,199); TIM3_Int_Init(1,7199); dde(100); LED=0;while(1) { if(js_flg==1) { if(js_dat[0]==0x31) { ly_da=js_dat[2];js_dat[2]=0; switch(ly_da) {case'A':ly_da=0;if(mov_sta!=1){qianjin();mov_sta=1;}break; case'B':ly_da=0;if(mov_sta!=2){ht();mov_sta=2;}break; case'C':ly_da=0;if(mov_sta!=3){zz();mov_sta=3;}break; case'D':ly_da=0;if(mov_sta!=4){yz();mov_sta=4;}break; case'E':ly_da=0;tz();mov_sta=5;xj_flg=0;break;case'F':ly_da=0;xj_flg=1;break;// case'R':ly_da=0;TIM_SetCompare1(TIM2,dj_pm);ks_flg1=1;break;// case'S':ly_da=0;ks_flg1=0;break;} } elseif(js_dat[0]==0x32) { dj_pm=(js_dat[1]-0x30)*16+(js_dat[2]-0x30); if(dj_pm<5) dj_pm=5; TIM_SetCompare1(TIM2,dj_pm); } elseif(js_dat[0]==0x33) { dj_pm=(js_dat[1]-0x30)*16+(js_dat[2]-0x30); if(dj_pm<13) dj_pm=13; TIM_SetCompare2(TIM2,dj_pm); } elseif(js_dat[0]==0x34) { dj_pm=(js_dat[1]-0x30)*16+(js_dat[2]-0x30); if(dj_p

温馨提示

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

评论

0/150

提交评论