单片机控制技术项目训练教程-项目十二 2019国赛赛题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目十二
智能物料搬运控制系统
项目十二 智能物料搬运控制系统
1任务要求
2任务分析
3硬件电路的
设计与搭建
4软件编写
5任务实施
1任 务 书 :
其 “中 灭: ”0.5s 的频率闪烁报警。
二、12、 、智机 键能架 盘物主 :料要4搬×功运4能控行是制列支系键撑统盘起描的整述第个及一系有行关统设说;置明“+”、“-”、“设置”键,用来
设置2右(、边一搬四)运、位机智数构能码主物管要料的功搬预运能设装是抓置在球系总统数程,序每控按制一下次通“过+相”、关“元-器”件键有,效实配现合预完设
成 数手 量爪 加对1 物和料减的1 抓的取操、作搬;第运二及行放设料置等系动统作工;作的“运行”、“停止”、“暂停”
功能3键、。接供全料机国构中主要等功职能是业使物学料校能顺学利生导落技,能并能大感测赛有无物料。
左限位
单( 3、片附电说机源明控控:制搬总制运开机装关构:置主控要安制由系装行统程与电开源关调通,断试滚。珠项用丝钮目杆子右,工限开气位关动作实手任现爪,,务手光柄纤书向传上感 (3)移动手爪至三工位放球成功,此时,使右边四位数码管显示当前 器 为“,开导”气,缸向,下直为流“电关动”。机,继电器,单线圈电磁阀,双线圈电磁阀构成。) 剩余抓球数(每放一球,抓球总数减 1);
一三、4总系、体统行要控程求制开机:要关架共请求有你五在个四,小从时左(到2右40分分别钟为)左内限完位成,三工位限位搬运,机二构工位
(4)重复上述(1)—(3)步骤,直至抓完 5 个球,剩余抓球数显示 限位供,一料工斗位内限放位置,三右个限球位以。确左保、一右工限位位随用时来处限于制有整球个状手态爪,的编行写程程范序围实,现由 硬 手 为件 爪 “1自 对 0、 00动 一请0保 工”你,护 位仔系。 的细统三一循工阅自、位环读行二抓并停、球理止三,解运工直智行位至能;限完物位成料用预搬来设运定的控位抓制手球系爪数统位量的置,工并,作能分要在别求假与和设其有的下关系方说统接明故供, 根 料 障据 机 时3接你 构 实、供的 的 现系料理 物 报机统解 料 警构工, 检 。作选 测过择 光程你 电中所 传,需 感按要 器“的 及停控 接止制 料”模 斗键块 右可和 端立元 在即器 垂结件 直束方。系向统上运对行应;。
2514、 、 、在 系滚设赛 统珠置场 运丝状提 行杆态供 中在:的 间直图 任流纸 意电(时机见刻的附按带“页动暂)下上停带,”动画键手出都爪智可的能暂水物停平料系运搬统动运工。控作制,系左统边的四模位 数码管显示暂停状态;当重按“运行”键时,系统能从暂停前状态继续运行; 块接(6线、1图)双,初线并始圈在状电标态磁题设阀栏置控的:制打“气开设动电计手源”爪控栏夹制填紧总写与开你放关的松后竞。,赛数工码位管号显。示为“00000000”; 机械375手、 、 、位当根 光于手据 纤二爪你 传工移画 感位动出 器正到的 感上一模 测方工块 手且位接 爪上正线 上升上图 是到方, 否位,连 有,系接 物手统智 体爪经能 。处物3于秒料放钟搬松还运状检控态测制。不系到统球的,电或路检。测 到球但经过 3 秒钟机械手还不能进行抓球动作,则认为系统有故障,此时, 数码48(管、、2左单)请边供预线你料四置圈编斗位抓电写应球磁智显总阀能示数控物报:制料警按手搬提下爪运示“的控。设上制置升系”与统键下的,降控再。制用程键序盘,“存+放”在、““-D”键盘设以置工 位 抓号 球9命 总、名 数直的 ,流文 使电件 数机夹 码正内 管反。 右转边、四电位磁显阀示的“导00通0与5”断。开由五个继电器来控制。 5该、智请能调2(物、试二 料你系搬)编统运、写控运操的制程行作系序:统面,能检板实测现和规调定二整的工有位工关作元要器求件,设并置将,相完关成程智一序能工位物“料烧搬入运”控单制片系机统中的。整体调试,使 1、显按示“:运由行八”位键数启码动图管系组1统成运,行智实,能现数物左码料右管搬各左运四边装置位四结两位构段熄示不灭意同,图同的时功“能+显”示、“。-右”边、
四位“显设示置预”设键抓失球效总,数运,行并过在程抓为球:的过程中,显示当前剩余抓球数,直至
“00(00图” 1)。1 左移所边动示四手是智位爪能作使物暂其料停处搬及于运系一装统工置故位结障正构报上示警方意提;图示,主,要当包系含统机暂架停、工搬作运时机,构显示 “及P接P(P供”2;料)当机当系构一。统工出位现有故球障时时,,完显成示对“一E工位的”(抓E球rr;),并以“亮”0. 5s,
2 任务分析
YL-G001智能物料搬运装置机械构成
YL-G001智能物料搬运装置宏定义程序
# d efine O FF 1 # d efine O N 0 b it T_m ark = 0 ; b it R un_m ark = 0 ; b it S et_m ark = 0 ;
//关 //开 //暂 停 标 志 位 1:暂 停 0:运 行
//运 行 标 志 位 1:运 行 0:停 止 //设 置 标 志 位 1:打 开 0:关 闭
unsig ned int N um = 0 ; sb it S A 1 = P3 ^ 7 ; sb it JX S _p o w er = P2 ^ 5 ;
//抓 球 总 数 //拨 码 开 关
//机 械 手 电 源 控 制 口
/******************机 械 手 控 制 *********************************/
sb it JX S _Left = P2 ^ 0 ; sb it JX S _R ig ht = P2 ^ 1 ; sb it JX S _G iv e = P2 ^ 2 ; sb it JX S _Lo se = P2 ^ 3 ; sb it JX S _U P_D O W N = P2 ^ 4 ;
//机 械 手 左 移 控 制 端 ( 端 口 13) //机 械 手 右 移 控 制 端 ( 端 口 14) //机 械 手 抓 紧 控 制 端 ( 端 口 15) //机 械 手 放 松 控 制 端 ( 端 口 16)
//机 械 手 上 升 下 降 控 制 端 ( 端 口 17)
# d efine left JX S _Left= O N , JX S _R ig ht= O FF //左 移 # d efine rig ht JX S _R ig ht= O N , JX S _Left= O FF //右 移
由于YL-G001智能物料 搬运装置控制信号与 反馈信号都是开关量 ,所以,为了编程的 方便,我们编程之前 需要对智能物料搬运 系统各控制与反馈信 号所连接的IO口进行 宏定义。这样我们以 后调用的时候就会方 便许多。
2、智能物料搬运装置驱动程序编程思路
死循环程序构架
v o id JX S (v o id )
{
w hile(PO S T_1 _G ET_CH ECK & & PO S T_2 _G ET_CH ECK );//等 待 到 达 一 工 位
if(!PO S T_1 _G ET_CH ECK )
//如 果 工 位 1有 球
{
w hile(PO S T_1 _CH ECK )G O _R IG H T;
//移 动 至 1工 位
G O _S TO P;
//移 动 完 成 后 , 机 械 手 停 止 移 动 。
}
e ls e
{
w hile(PO S T_2 _CH ECK )G O _R IG H T;
//如 果 一 工 位 没 有 球 , 则 去 二 工 位
G O _S TO P;
//移 动 完 成 后 , 机 械 手 停 止 移 动 。
}
w hile(H A N D _D O W N _CH ECK )H A N D _D O W N ; //机 械 手 下 降
H A N D _G R A B ;
//机 械 手 爪 抓 紧
D elay ();
//延 时 一 小 段 时 间 , 触 发 抓 紧 继 电 器 。
H A N D _F R EE;
//机 械 手 抓 放 松
w hile(H A N D _U P_CH ECK )H A N D _U P;
//机 械 手 上 升
w hile(PO S T_3 _CH ECK )G O _LEFT;
//机 械 手 向 ← 移 动 到 工 位 3
G O _S TO P;
//机 械 手 移 动 停 止
死循环的状态判断方 式是C语言初学者常用 的一种思路。它的编 程基础方式是通过for 或者while循环等待出 发信号。获得出发信 号之后程序向下进行 ,进入下一个等待。 这种编程思路最大的 特点是方便,理解简 单。以下是最简单的 死循环方式下的程序 。
状态机程序构架
0/1 无按键 状态0
0/0(消抖) 1/0(干扰)
1/0
有按键 状态1
0/1(确认)
等释放 状态2
0/0
“状态机”的概念,最早出现在电 子技术和电子工程的数字逻辑电路 设计中,“状态机”的思想和分析 方法被应用于时序逻辑电路设计。 由单片机组成的实时系统,特别是 实时控制系统,其整个系统的分析 机制和功能与系统的状态有相当大 的关系。在一个思路清晰而且高效 的单片机控制程序中,必然会出现 “状态机”的设计理念。下面将简 单介绍“有限状态机”,并使用该 方法编程实现机械手简单移动至工 位一抓球。
状态机程序构架
v o id JX S () { sw itch (m o d e) { case A U TO _M 1 :if(A ct_R ig ht(PO S T_1 ))m o d e_7 = 1 ; b reak; //判 断 是 否 到 达 1工 位 , 是 :停 止 右 移 , 跳 转 到 FIN D _B ALL,否 :继 续 右 移 。
case FIN D _B A LL:if(PO S T_1 _G ET_CH ECK = = O K )//判 断 1 工 位 有 无 球 { if(A ct_R ig ht(PO S T_1 ))m o d e_7 = 1 ;
//判 断 是 否 到 达 1工 位 , 是 :停 止 右 移 , 跳 转 到 AU TO _M 2,否 :继 续 右 移 。 }
case A U TO _M 2 :if(A ct_D o w n()) m o d e_7 = 1 ; b reak; //判 断 是 否 下 降 到 位 , 是 :停 止 下 降 , 跳 转 到 AU TO _M 3, 否 :继 续 下 降 。
case A U TO _M 3 :if(A ct_G rab ()= = G ET_B A LL_CA TCH ) m o d e_7 = 1 ; b reak; //判 断 是 否 抓 到 球 , 是 :停 止 抓 球 , 跳 转 到 AU TO _M 4, 否 :继 续 抓 球 。
case A U TO _M 4 :if(A ct_U p ()) m o d e_7 = 1 ; b reak; //判 断 是 否 上 升 到 位 , 是 :停 止 上 升 , 跳 转 到 AU TO _M 5, 否 :继 续 上 升 。
case A U TO _M 5 :if(A ct_Left(PO S T_3 ))m o d e_7 = 1 ; b reak; //判 断 是 否 到 达 3工 位 , 是 :停 止 左 移 , 跳 转 到 AU TO _M 6,否 :继 续 左 移 。
case A U TO _M 6 :if(A ct_Lo o se())m o d e_7 = 1 ; b reak;
可以看出,这种编程方式 效率很高。 但是即使简单的去工位1抓 球的程序也需要把各种状 态与其切换方式分析清楚 ,把整个程序切片成一块 一块的。比较大的代码量 制约了在争分夺秒的竞赛 中很难用这种编程方式获 得时间上的优势。
任务系统程序构架
前面介绍过,RTX_Tiny操 作系统是一种轻量级的实
时操作系统。它支持建立 最多16个任务。使用任务 系统建立程序的思路如左 图所示。
任务系统程序构架
相关文档
最新文档