【基于单片机的快递分拣小车设计7700字(论文)】_第1页
【基于单片机的快递分拣小车设计7700字(论文)】_第2页
【基于单片机的快递分拣小车设计7700字(论文)】_第3页
【基于单片机的快递分拣小车设计7700字(论文)】_第4页
【基于单片机的快递分拣小车设计7700字(论文)】_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

.1.2创新点以智能分拣代替人工分拣分拣误差率、分拣工作实现基本上的自动化以及无人化,进一步节省人力物力以及时间。二维码标签代替传统电子标签FRID(RedioFrequencyIdentification,射频识别技术)是使用RFID标签制作成本很高,花费的代价较高。单片机本身的发展趋势1.2发展趋势和现状当今社会的发展和电子商务行业的的日新月异,而这些行业的兴起必将带动物流系统的发展,物流系统中最主要就是自动分拣,在一些大的物流配送中心自动分拣特别方便,但在一些小的地方,物流分拣还是需要很多的人力去分拣。现在社会上自动化分拣的机器主要是由提供快递物件供给装置、快递输送运输装置、运输控制系统,目的地及货品种类分类装置和分拣完成输出口等部分组成。生活中的分拣机器按照分拣结构划分为滑块、转轮、交叉、翻板、摆臂、托盘、悬挂等分拣机的几种类型。这些分拣应用在我生活产业的各个领域,在一定程度上缓解了分拣的压力,但对于快递的分拣,大的物流分拣中心有自动分拣,小的物流配送中心或者中转战还没有自动分拣的设备或装置,都是依赖传统的人工分拣。在一些传统的“11月11日”、“12月12日”等商家促销以及打折时,仅仅靠人工无法在很短时间里完成对猛增快递货物的挑选分拣。1.3可行性分析1.3.1技术可行性本快递分拣小车是基于单片机STC8952RC的低功耗、高性能的CMOS8位微控制器、L298N驱动模块、LCD1602液晶显示模块、步进电机以及其他硬件等组成。在KeiluVision4平台上编写c程序,因为之前学了arduino开发板上编写C语言程序,所以有一定的基础和经验,此外自己也通过查找资料和观看有关这方面的教学视频,所以在技术上是不成问题的。1.3.2操作可行性在前期已经做好了很多的准备工作,从最基本的元器件的购买以及各个元器件焊接时所注意的温度以及元器件发挥的功能都进行了仔细的学习和了解,此外还向一些专业人士询问在焊接过程中出现的一些特殊情况,通过自己请教老师然后进行实际操作,在老师的指导下,在操作各方面也不会有太大的问题。1.3.3经济可行性此款基于单片机的快递分拣小车所需元器件通过网上所购买,此外还借助了实验室的一些元器件及硬件,在后期维护和保养也不会需要耗费太多的财力人力和物力,因此在经济上也是可行的。1.4研究目的基于单片机的快递分拣小车一方面在技术上有了创新,另外一方面在经济上也可行,而且有很好的现实意义。此外快递分拣小车可以解决一些小的地方的物流分拣中心的人工分拣产生过程中的分拣误差。此外还可以解决类似于“双十一”,“双十二”等物流激增爆仓情况,可以解决类似于“快手”,“抖音”等平台的电商带货爆仓情况,缓解在运输过程中的分拣运输压力,进行物流分级然后分层分地方发货。在此款小车中可以通过二维码进行标签识别,可以用液晶显示屏显示快递的目标位置,显示快递小车在黑线上循迹过程中的实时位置。通过对国内物流分拣情况分析来看,设计这样小巧且使用方便的小车非常必要。第二章快递分拣小车整体设计2.1关于快递分拣小车的硬件元器件选配清单名称型号数量51单片机1驱动模块L298N1二维码扫描模块15v稳压模块1步进电机1LCD1602显示屏幕16021ULN2003芯片1电阻10k1电阻1k2红外4六脚按键1四角按键3小车底盘1万用板1排针若干排母若干锂电池2电池座1蜂鸣器1三极管9012116p底座120p底座111.0592M晶振130pf电容210k可调电阻110uf电容12.1.1STC89C52单片机概述STC89C52RC是STC公司生产的一种功耗很低、但使用性能很高的一种微控制器,STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的电压低,性能高COMOS8的小型处理器。2.2STC89C52实物图2.3STC89C52内部图P1(1至8)口:P1端口的主要功能是从内部上拉电阻的8位双向I输入和输出端口以及P1端口缓冲器接收和输出4个TTL栅极电流。RST(9):复位输入。振荡器复位后,将RST引脚保持高电平2个机器周期。P3口(10至17):端口P3是8个双向I/O端口,带有内部上拉电阻,可以接收和输出4个TTL门电流。端口P3也可以用作AT89C51的特殊功能端口。XTAL2(18):反相振荡器的输出。XTAL1(19):输入反向振荡器和输入内部工作电路20VSS:接地。P2口(21至28):端口P2是带有内部上拉电阻的8位双向输入输出端口。端口P2的缓冲器可以接收和输出4个TTL栅极电流。PSEN(29):是外部程序存储器的联通信号。在从外部程序存储器中获取指令期间,每个机器周期PSEN有效2次,但是在访问外部数据存储器时,将出现2个有效PSEN信号。ALE/PROG(30):访问外部存储器时,地址锁存器允许的输出电平用于锁存地址的低字节。在FLASH编程期间,此引脚用于输入编程脉冲。在正常情况下,ALE端子输出具有可变频率周期的正脉冲信号。该频率是振荡器频率的1/6。这个频率可以用作外部输出的脉冲或用于定时。EA/VPP(31):当EA保持低电平时,无论是否有内部程序存储器,外部程序存储器地址均为(0000H-FFFFH)。P0口(32至39):端口P0是一个8位漏极开路双向输入输出端口,每个引脚可以吸收8个TTL栅极电流。VCC(40):+5V电压。第三章基于单片机的快递分拣小车的设计与实现3.1功能分析3.1.1LCD1602液晶显示屏模块LCD显示器有两种主要类型,一种是现场显示器,另一种是字符显示器。现场显示器在某种程度上类似于LED显示器,并且可以通过将相应的信号传输到相应的引脚来显示相应的信号。这种快速分类推车设计有字符显示器。该车使用LCD1602显示设备输出快递员坐标位置信息。LCD1602技术参数为(1)大小为16×2个字符的显示容量;(2)芯片所需工作时的电压为4.5至5.5V;(3)芯片使用所需工作电流为2.0mA(5.0V);(4)液晶显示模块最好的工作电压为5.0V;(5)字符大小为2.95×4.35mm。LCD1602的14脚接口的引脚说明:(1)第1脚:VSS为接地。(2)第2脚:VDD接5V工作正电源。(3)第3脚:V0调整对比度。(4)第4脚:RS为选择寄存器,选择数据寄存器为高电平、选择指令寄存器为低电平。(5)第5脚:RW是读写信号线。读操作以高电平执行,写操作以低电平执行。当RS和RW都处于低电平时,可以编写命令或显示地址。当RS处于低电平时,RW处于高电平。可以读取忙信号。当RS为高电平时,RW为低电平。可以写入数据。(6)第6脚:使能端为E端,当电平由高变成低时,执行液晶显示操作命令。(7)第7至14脚:D0至D7是8位双向数据传输导线。(8)第15至16脚:空脚,不起作用。序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRA或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602LCD模块的读写操作,屏幕和光标操作都可以使用指令编程(注:高电平为1,低电平为0)(1)指令1:清除显示,指令代码01H,光标重置为地址00H(2)指令2:光标被复位,返回到地址00H。(3)指令3:光标和显示模式设置I/D:光标移动方向,高电平向右移动,低电平向左移动。S:屏幕上的所有文本向左还是向右移动。有效的为高电平,无效的为低电平。(4)指令4:显示控制开关。D:控制整体显示的打开和关闭,高电平表示打开显示,低电平表示关闭显示C:控制光标的打开和关闭,高电平表示有光标,低电平表示没有光标B:是否控制光标闪烁,高电平闪烁,低电平不闪烁。(5)指令5:光标或显示移位S/C:将显示的文本移至较高级别,将光标移至较低级别(6)指令6:功能设置命令DL:高位4位总线,低位8位总线N:低位单行显示,高位双行显示F:低位高电平5x7点矩阵字符,高位显示5x10点矩阵字符。(7)指令7:设置地址字符(8)指令8:双倍速率同步动态随机存储器(9)指令9:读取忙信号和光标地址BF:为工作标志位,高电平表示工作,此时模块无法接收命令或数据,如果低电平则表示不工作。(10)指令10:数据的写入(11)指令11:数据的读入LCD1602液晶显示电路原理图LCD1602液晶实物图MH-ETLIVEScannerv3.0扫码模块.1扫码模块简介MH-ETLIVEScannerv3.0是条形码、二维码扫描识别模块,采用针对条码识别的专业图像处理芯片,能够在复杂环境下保持快速、稳定读码的高性能表现下,可快速准确地读取纸张、屏幕、塑料等载体上的一维码和二维码。体积小巧,板载USB和UART接口,即可直接接入计算机使用,也可集成到各种设备中。产品同时具备低功耗和低发热等特点。快速开机,冷启动和热启动都能保持急速开机,无需等待,即开即扫。.2ScannerV3.0特征操作简单,无须了解复杂图像识别算法支持Barcode,QR等通用一维码及二维码的识读板载microUSB和UART串口,可接入计算机或嵌入式设备使用板载辅助光源,能够在完全黑暗的环境中进行识读支持通过扫描设置码来对模块参数进行设置.3ScannerV3.0实物图3.2L298N步进电机模块3.2.1L298N步进电机简介L298N是ST生产的高压大电流电机驱动芯片。该芯片采用15引脚封装。主要特点是:工作时的电压比较高,最高工作电压可以达到46V;电流输出比较大,瞬时峰值电流可达3A,连续工作电流为2A。额定功率为25W。具有两个H桥的高压大电流全桥驱动器,有一个逻辑电源输入端子,使内部逻辑电路在低压下工作;它可以与一个外部检测电阻器相连,以将变化反馈到控制电路。使用L298N芯片驱动电动机,该芯片可以驱动两相步进电动机或四相步进电动机,或两个直流电动机工作。L298N步进电机特征1、具有信号指示。2、转速可调3、抗干扰能力强4、具有过电压和过电流保护5、可单独控制两台直流电机6、可单独控制一台步进电机7、PWM脉宽平滑调速8、可实现正反转9、采用光电隔离L298N步进电机技术指标1.驱动芯片:L298N驱动芯片2.驱动供电范围Vs:+5V至+35V

3.驱动电流:2A4.逻辑供电范围:+5V至+7V5.逻辑电流范围:0至36mA6.控制信号输入电压范围:

低电平:-0.3V≤Vin≤1.5V

高电平:2.3V≤Vin≤Vss7.使能信号输入电压范围:

低电平:(无效控制)

高电平:(有效控制)最大功耗:20WL298N步进电机实物图和原理图L298N步进电机输入输出关系ENAIN1IN2电机运行情况HHL正转HLH反转HIN2IN1快速停止LXX停止3.3红外循迹模块3.3.1TCRT5000红外传感器传感器是一种检测设备,可以感知被测信息,并且可以根据一定规则将感测到的信息转换为电信号或其他所需形式的信息输出,从而满足信息的传输,处理,存储和显示信息,记录和控制要求。TCRT5000光电传感器模块是基于TCRT5000红外光电传感器的红外反射光电开关。传感器由高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号通过施密特电路整形,稳定并且可靠。原理及功能介绍TCRT5000传感器的红外发光二极管连续发出红外线。当发出的红外线没有被反射或反射回去,但强度不够强时,红外线接收管始终处于关闭状态。此时,模块的输出端子为高电平,表示二极管。当被测物始终处于关闭状态并出现在检测范围内时,红外光被反射回来,强度足够大,红外接收管饱和了。此时,模块的输出为低电平,表明二极管已点亮。3.3.2TCRT5000传感器实物图3.3.3循迹传感器模块整体原理图小车详细设计本设计由单片机STC89C52、二维码扫描、显示、电机、驱动、红外循迹、速度控制、稳压电路、小车底盘等等构成1、小车扫描二维码获得快件投放的坐标,小车根据二维码中的坐标信息,走到指定坐标点,停下投放快件,然后回到原点。2、1602液晶显示扫描二维码获取的投放坐标;3、当小车启动后,走向指定坐标点投放然后回到原点的过程中1602液晶实时显示当前的位置坐标。4、二维码模块:通过二维码识别模块扫描快件上的二维码获取坐标,根据算法处理二维码信息设计车走到目标坐标的路线。5、红外模块:通过红外反射光电传感器使得快递小车沿着限定的路线循迹,计算横坐标和纵坐标循迹到投放点卸下货物。整体思路原理图控制系统框图演示环境搭建1602显示屏代码{L298N驱动代码qianjin()//前进{IN1=1; IN2=0; IN3=1; IN4=0; zkb1=19; zkb2=19;} qianjin1()//前进{IN1=1; IN2=0; IN3=1; IN4=0; zkb1=16; zkb2=16;} turnleft1()//左转{IN1=1; IN2=0; IN3=1; IN4=0; zkb1=22; zkb2=0; }turnright1()//右转{IN1=1; IN2=0; IN3=1; IN4=0; zkb1=0; zkb2=22; }//电机顺时针转动voidMotorCW(void){ uchara,MotorNum; for(a=0;a<250;a++) { }//窗户电机逆时针转动voidMotorCCW(void){ uchara,MotorNum; for(a=0;a<250;a++) { voidUART_Init(void);voidTracking1();voidTracking_X_Y(uintX_value,uintY_value);voidmain(){ LCD_Write_String(0,0,dis0);//显示 sprintf(dis1,"Now:(0,0)");//打印 LCD_Write_String(0,1,dis1);while(1) { if(run_falg==1) { run_falg=0; Tracking_X_Y(X,Y); } }}voidTracking_X_Y(uintX_value,uintY_value){ uintj=0,k=0,n=0,m=0,flag=0; sprintf(dis0,"Position:(%01d,%01d)",(int)X,(int)Y);//打印 LCD_Write_String(0,0,dis0);if(X_value==0&&Y_value>0) { turnleft1();//左转进入Y轴 delay_ms(3); while(IR_Left1==0); while(IR_Left2==0); while(k<Y_value)//再到达Y坐标 { if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { delay_ms(5); if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { k++;flag=1;beef=0; sprintf(dis1,"Now:(%01d,%01d)",(int)j,(int)k);//打印 LCD_Write_String(0,1,dis1); } } elseif((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) { delay_ms(5); if((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) flag=0; } beef=1; Tracking1();//循迹前进 }// tz();// j=0;//到达转折点 flag=0; qianjin1(); while(IR_Left1||IR_Right2);//直到离开黑线 turnright1();//右转进入X坐标 delay_ms(3); while(IR_Right1==0); while(IR_Right2==0); while(j<1)//走一个X坐标 { if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { delay_ms(5); if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { j++;flag=1;beef=0; sprintf(dis1,"Now:(%01d,%01d)",(int)j,(int)k);//打印 LCD_Write_String(0,1,dis1); } } elseif((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) { delay_ms(5); if((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) flag=0; } beef=1; Tracking1();//循迹前进 }// j=0;//到达转折点 flag=0; qianjin1(); while(IR_Left1||IR_Right2);//直到离开黑线 turnright1();//右转进入X坐标 delay_ms(3); while(IR_Right1==0); while(IR_Right2==0); sprintf(dis1,"z_falg");//打印 LCD_Write_String(10,1,dis1); while(m<Y_value)//走完Y坐标 { if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { delay_ms(5); if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { m++;flag=1;beef=0; sprintf(dis1,"Now:(%01d,%01d)",(int)j,(int)(k-m));//打印 LCD_Write_String(0,1,dis1); } } elseif((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) { delay_ms(5); if((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) flag=0; } beef=1; Tracking1();//循迹前进 }// j=0;//到达转折点 flag=0; qianjin1(); while(IR_Left1||IR_Right2);//直到离开黑线 turnright1();//右转进入X坐标 delay_ms(3); while(IR_Right1==0); while(IR_Right2==0); while(n<1)//走一个X坐标 { if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { delay_ms(5); if(((IR_Left1&&IR_Left2)||(IR_Right1&&IR_Right2))&&(flag==0)) { n++;flag=1;beef=0; sprintf(dis1,"Now:(%01d,%01d)",(int)(j-n),(int)(k-m));//打印 LCD_Write_String(0,1,dis1); } } elseif((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) { delay_ms(5); if((!IR_Left1||!IR_Left2)&&(!IR_Right1||!IR_Right2)) flag=0; } beef=1; Tracking1();//循迹前进 } j=0;//到达转折点 k=0; n=0; m=0; flag=0; qianjin1(); while(IR_Left1||IR_Right2);//直到离开黑线 turnright1();//右转进入X坐标 delay_ms(3); whi

温馨提示

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

评论

0/150

提交评论