智能物料运输小车设计与实现

您所在的位置:网站首页 plc搬运小车原理图解 智能物料运输小车设计与实现

智能物料运输小车设计与实现

2024-07-16 16:31| 来源: 网络整理| 查看: 265

目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1选题背景及意义 1 1.2 国内外发展情况 1 1.2.1国外发展概况 1 1.2.2国内发展概况 2 1.3研究主要内容 3 1.3.1 系统硬件设计概述 3 1.3.2 系统功能概述 3 第2章 整体设计框架 6 2.1 方案选择及论证 6 2.1.1 控制模块选择 6 2.1.2 路面探测黑线轨迹模块 7 2.1.3 探测路面障碍模块 7 2.1.4 电机模块 8 2.1.5 电机驱动模块 9 2.1.6 车架选择 9 2.1.7 抓取模块 10 2.1.8 仓库识别模块 10 2.1.9 最终方案选择 10 2.2 方案可行性分析 11 第3章 硬件设计 13 3.1 系统总体设计框图 13 3.2 红外线光电开关模块 13 3.2.1 光电开关的工作原理 14 3.2.2 光电开关的类型 15 3.2.3 壁障光电管电路的设计 17 3.3 电机驱动模块 17 3.4 红外循线模块 19 3.5 红外循线具体设计与实现 20 3.6金属探测模块 21 3.7颜色识别模块 22 2.TCS230识别颜色的原理 24 3.8 最小系统模块 27 3.8.1 晶振电路的设计 27 3.8.2 复位电路的设计 27 3.9 电源模块 28 第4章 软件设计 30 4.1 主程序流程图 30 4.2 避障子程序流程图 31 4.3 循线子程序流程图 32 4.4抓取子程序流程图 33 第5章 系统调试和测试 35 5.1 安装步骤 35 5.2 电路调试 35 5.2.1 光电开关模块调试过程 35 5.2.2 电机模块调试过程 36 5.2.3 红外循线模块调试过程 36 5.2.4 测试结果与分析 37 总 结 39 致 谢 40 参考文献 41 附录 设计系统部分源代码 42 1.3研究主要内容 1.3.1 系统硬件设计概述 智能物料小车的系统硬件分为中央处理器、电源模块、灰度传感器、激光测距传感器、红外光接收模块、电机驱动模块、LED、蜂鸣器、按键、以及机械臂。电源模块为整个系统供电,中央处理器收集并处理传感器信息,控制电机以及机械臂完成相应动作,蜂鸣器和LED灯用来显示小车状态。 灰度传感器检测道路黑白标志,激光测距模块 检测障碍物距离,红外光接收模块接收850nm红外 光,中央处理器收集各传感器信息,判断小车状态 并控制电机完成转弯、前进、后退、变速功能,控制机械臂进行抓取、放置等动作。 1.3.2 系统功能概述 该智能物料小车的主要功能有:循迹功能,避障功能,遥控功能,抓取功能。 (1)循迹功能 循迹功能主要有灰度传感器来实现。该智能物料小车的灰度传感器是数字量传感器,其上集成了7只高亮白色聚光LED和7只光敏电阻,LED和光敏电阻两两成组。 运行时,LED发出高亮白光,地面黑白标志反射出不同的反射光强度,光敏电阻检测发射光强度,输出相应的电压信号到电压比较器,再由电压比较器输出相应的高低电平信号。最终实现在有黑白标志地面上的循迹功能。由于该传感器检测的为自身发出的光,所以你抗干扰能力极强,几乎不受外界光照影响。 (2)避障功能 激光模块实现避障功能,原理是接收头测量激光从发射到返回所用时间,并计算出激光所触及到的障碍物距离,当距离小于设定值时,芯片发射信号停止电机转动,同时,小车顶部LED灯闪烁,蜂鸣器响起。另外,激光模块具有体积小和直线传播的特点,当传感器测量前方障碍物距离时,其检测精度远比普通超声波测距模块高。 (3)遥控功能

遥控功能需要红外光接收模块,当传感器接收到红光时输出低电平。当红外传感器接收到外界850nm红外闪烁频率,即遥控信号,则单片机对传感器传输的方波进行处理,从而,令机械臂以及电机做出相应的预先设定的动作。 (4)抓取功能 抓取功能采用3个舵机来实现要求。舵机控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,本文转载自http://www.biyezuopin.vip/onews.asp?id=12114带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。  机械手的夹取通过左右两个舵机的配合来实现,左边的的舵机向右转一定的角度,右边的舵机向左一定的角度,从而实现夹取货物的目的。机械手的抬起是通过中间舵机的顺时针转一定的角度来实现的。

#include unsigned char zkb1=0 ; //左边电机的占空比,最大100 unsigned char zkb2=0 ; //右边电机的占空比,最大100 unsigned char t,t1=0; //定时器中断计数器 char jd1=2,jd2=4,jd3=3; //舵机角度控制 unsigned char ftaiqi=0,fjiaqu=0; //是否已经取物,抬起夹子? sbit RSIGN1=P2^0; //左边信号1 sbit RSIGN2=P2^1; //左边信号2 sbit LSIGN1=P2^2; //右边信号1 sbit LSIGN2=P2^3; //右边信号2 sbit IN1=P0^0; sbit IN2=P0^1; sbit IN3=P0^2; sbit IN4=P0^3; sbit PWM1=P0^4; //左直流减速电机 sbit PWM2=P0^5; //右直流减速电机 sbit duoji1=P1^5; //左舵机 sbit duoji2=P1^6; //右舵机 sbit duoji3=P1^7; //上下舵机 void xunji(); void delay(int z) //延时函数//1ms { int j,k; for(j=z;j>0;j--) for(k=125;k>0;k--); } //初始化定时器,中断 void time_init() //O.1ms,0.5ms { TMOD=0x11; TH0=(65536-7100)/256; TL0=(65536-7100)%256; TH1=(65536-500)/256; TL1=(65536-500)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void timer0() interrupt 1 { TH0=(65536-7100)/256; TL0=(65536-7100)%256; if(t


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3