机器人搬运工程技术报告_第1页
机器人搬运工程技术报告_第2页
机器人搬运工程技术报告_第3页
机器人搬运工程技术报告_第4页
机器人搬运工程技术报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

2015中国工程机器人大赛暨国际公开赛〔RoboWork〕机器人搬运工程技术报告参赛学校:华北电力大学队伍名称:冲队参赛队员:黄瑞托吴秋淑李梦带队教师:房静二〇一五年七月关于技术报告使用授权的说明本人完全了解2015中国工程机器人大赛暨国际公开赛〔RoboWork〕关于保存、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人和比赛组委会共同所有,比赛组委会可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛机器人的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日期:引言本文设计的搬运机器人以STM32单片机系统为核心控制单元,通过RPR220光电传感器识别并反应赛道信息,通过两个PARALLAX舵机以及万能算法控制搬运机器人的运动角度、方向及转速,通过控制钩子的升降实现物料的抓取与放置。将循迹模块、光电管模块、取物模块等功能模块集于一体,算法采用比例控制思想进行编程,通过对控制器的C语言编程,能够灵活地实现物料的搬运。实验结果说明,该系统设计方案确实可行。关键字:STM32;RPR220;PARALLAX;C语言ABSTRACTInthispaperwewilldesignaHandlingrobotsystembasedonSTM32SCMsystem.Inordertorecognizeandfeedbacktheinformationofracingtrack,RPR220sensorhasbeenemployedinoursystem.Besides,controllingtheangle,directionandspeedisjusttakinggoodadvanceofthetwoPARALLAXstringenginesanduniversalalgorithm.Atthesametime,throughcontrollingtheriseandfallofthehookthatismadeofsteelwirewemanagetoconductthetaskoftheobjects’fetchandsetting.Themoduleoftracking,sensorandfetchingaresetinabody,whichhasadoptedtheideologyofproportioncontrol.Obviously,itisflexibleforoursimpledesigntorealizethecarryofobjectsviaCprogramminglanguageofthecontroller.TheexperimentalresultsindicatethatourdesignschemeoftheHandlingrobotsystemistrulyfeasible.Keywords:STM32;RPR220;PARALLAX;C目录TOC\o"1-3"\h\u26401绪论79954INTRODUCTION8188851系统总体设计1051431.1系统概述10204521.2整体布局14289602机械系统设计与实现19247562.1万向轮19257432.2舵机19153372.3铜柱23156243硬件系统设计及实现24215853.1硬件设计24281523.1.1RPR220传感器24133623.1.2ALIENTEKMiniSTM3224212253.1.3开发板使用考前须知26250243.1.4MCU27303853.2电路设计方案28113083.2.1ALIENTEKMiniSTM32电路28176073.2.2RPR220光电传感器电路30199763.2.3电源稳压电路30323803.2.4LCD液晶显示屏30307604软件系统设计与实现32232935系统开发及调试工具35123215.1开发工具35123465.1.1KeilARM3520625.1.2MDK5简介35133505.2按键模块3685275.3红外遥控器在调试过程中的使用3784385.4ADC(模拟/数字转换)38149285.4.1ADC介绍3872305.4.2ADC主要特征38183505.4.3ADC功能描述39375.4.4ADC开关控制40233265.4.5ADC时钟40243255.4.6通道选择41284295.4.7单次转换模式4174685.4.8连续转换模式4191775.4.9ADC中断4265645.5USB串口、USB、电源4292156结论4426147参考文献4720169致谢4820371附录:程序源代码49绪论机器人在搬运领域有极其重要的应用,然而研发能实际应用的机器人是有相当难度的,尤其是研发搬运领域实际应用的机器人。国内外生产竞赛用机器人的企业很多。美国Surveyor公司生产了一种名为SRV-1的履带式移动机器人,该机器人自带了数码摄像头和无线通讯等功能,机身小巧,可用于研究、教育等领域。目前国内有几十家,例如上海未来伙伴机器人成立于1996年,其竞赛机器人产品包括:灭火机器人,足球机器人,擂台赛机器人等。国内很多高校近年来也开展了对于竞赛机器人的研究,电子科技大学万永伦介绍了一种竞赛全自动机器人,该机器人采用步进电机作为行走机构,钓鱼竿式的访求控制系统,主要用于参加首届全国大学生机器人电视大赛“抢攀珠穆朗玛峰”的比赛工程。清华大学、南开大学、天津大学等也都在搬运机器人方面有所研究。目前中国正在建立上海、昆山、天津、沈阳、哈尔滨、青岛、广州、芜湖、常州、厦门十大机器人产业园,大力开展机器人产业。搬运机器人工程是中国机器人大赛2011年新增的比赛工程,目前没有一个公共的硬件平台,由于厂家生产的竞赛机器人本钱较高,国内对于竞赛用搬运机器人的研究比拟少,因此有必要开发出一款能够满足比赛要求、低本钱、可扩展的机器人。本技术报告主要包括机械系统、硬件系统、软件系统等,详尽地阐述了我们的设计方案及思想,具体表达在硬件电路的创新设计、硬件结构的独特设计以及控制算法的优化设计。我们小组的创新之处主要在于算法及硬件结构。在此过程中,我们付出了很多努力,这份技术报告正是凝聚了我们的智慧、汗水,是我们团队共同努力的成果。在准备2015中国工程机器人大赛暨国际公开赛〔RoboWork〕机器人搬运组的比赛过程中,我们小组成员涉猎到自动控制原理、单片机原理与控制、机械原理、机械设计、电子技术、模电技术、汽车机械、传感器技术、计算机等多个学科、多种领域,几个月的努力,培养了我们电路设计、机械设计、软件编程、系统调试等诸多方面的能力,锻炼了我们将知识融合贯穿、动手实践操作的能力,让我们深刻体会到了坚持不懈、吃苦耐劳的珍贵品质的重要性,这对我们今后的生活、学习、工作都会起着潜移默化的作用。INTRODUCTIONWhatisknownisthatrobothasextremelyimportantapplicationintheareasoftransportation.However,itisdifficulttoinventrobotwhichcanpossesspracticalapplication,especiallyintheareasoftransportation.Obviously,domesticandforeignproductionofthecompetitionwithalotofrobotsarebecomingmoreandmore.ItissaidthatoneAmericancompanynamedSurveyorhashadproductioninasortoftrackedmobilerobotcalledSRV-1thatcomeswiththefunctionofadigitalcameraandwirelesscommunication.Thiskindofrobotscanbehavecompactbody,whichcanbeusedforresearch,educationandotherfields.Therearedozensofdomesticthatmayproductcompetitionrobotsincludingfirefightingrobot,soccerrobot,contestrobotandsoon.Forexample,ShanghaiFuturePartnerRobotCo.,Ltdwasestablishedin1996.ManycollegesanduniversitiesinChinahavealsocarriedouttheresearchonthecompetitionrobotinrecentyears.Asisknown,WanYonglunoftheUniversityofElectronicScienceandtechnologyhasintroductedakindofcompetitionrobotwhichisautomatic.Thissortofrobotcanusesteppingmotorasawalkingmechanism,whichtakesgoodadvantageofsearchforcontrolsystemoffishingrodtype,mainlyusedtoparticipateinthefirstnationalcollegerobotTVcontestprojectcalled‘grabtheMountQomolangma’.TsinghuaUniversity,NankaiUniversity,TianjinUniversityandotheruniversitieshavebeenstudiedinthehandlingrobot.Atpresent,ChinaisbuildingtenrobotindustrialparksinShanghai,Kunshan,Tianjin,Shenyang,Harbin,Qingdao,Guangzhou,Wuhu,ChangzhouandXiamen.ThereisnodoubtthatChinaisvigorouslydevelopingtheroboticsindustry.HandlingrobotprojectisthenewgameProjectintheChineserobotcompetitionin2011,whichhashadnopublichardwareplatformintherecentyears.Domesticresearchforhandlingrobotforthecompetitionismuchfewerbecauseofmanufacturerproductionofhighercostofcompetitionrobot.Inthatcase,itisnecessarytoinventavarietyofrobotthatcansatisfytherequirementsofthegame,lowcost,andbeextended.Thistechnicalreportdescribingthedesignschemeandideaofourdesignindetailmainlyincludesmechanicalsystem,hardwaresystem,softwaresystem,etc.Theuniquedesignofthehardwarecircuit,theuniquedesignofthehardwarestructure,andtheoptimaldesignofthecontrolalgorithmaredetailed.Ourteam'sinnovationliesinthealgorithmandhardwarestructure.Inthisprocess,wepayalotofeffort.Thistechnicalreportistogatherourwisdom,sweat,whichistheresultofourteamworktogether.InthecourseofpreparationforChinaengineeringrobotcompetitionandinternationalopenRoboWorkofhandlingrobotgroupin2015,ourteammembershaveavarietyofdisciplinesandfieldsofautomaticcontrolprinciple,theprincipleofsinglechipmicrocomputerandcontrol,mechanicalprinciple,mechanicaldesign,electronictechnology,electronictechnology,automotivemachinery,sensortechnologyandcomputer.Wehavetheabilityofthecircuitdesign,mechanicaldesign,softwareprogramming,systemdebuggingandsoon,andtomergetheknowledgeandthepracticeoperationafterseveralmonthsofhardwork,deeplyrealizingtheimportanceofperseveranceandhardworkofthevaluablequality,whichwillbeasubtleroleofourfuturelife,studyandwork.1系统总体设计1.1系统概述系统的总体概述为:搬运机器人先通过光电传感器先采集场地信息并记录,然后机器人开始基于STM32内置算法分析轨迹并进行相应路线运行,机器人搬运物块ACE到指定颜色位置完成第一环节后进行第二个环节10个物块的搬运。搬运机器人根据光电传感器反应的数据准确停在指定物块位置,钩子抓取物块后,搬运机器人将物块送到指定位置通过光电传感器反应数据松开钩子放下物块。运送物块过程中,搬运机器人通过尾部三个光电传感器实现精确转弯并通过PWM输出控制机器人沿着赛道行进。运送物块两个环节结束后,机器人沿线返回起点位置。根据系统的根本要求,我们设计了系统结构图,如图1.1.1所示。在满足比赛要求的情况下,力求系统的简单高效稳定,因而在设计过程中尽量简化硬件结构,同时减少因硬件而引发的问题。图1.1.2为RPR220光电传感器结构图,图1.1.3为RPR220光电传感器硬件分布图,图1.1.4为RPR220光电传感器硬件实物图,图1.1.5为取物舵机结构图,图1.1.6为取物舵机硬件分布图,图1.1.7为取物舵机硬件实物图。RPR220传感器RPR220传感器信息采集、反应STM32单片机系统STM32单片机系统占空比信息 占空比信息行进舵机行进舵机取物舵机图1.1.1系统结构图①②③④⑤⑥⑦⑧两个前瞻三个主要巡线RPR220光电传感器三个主要巡线RPR220光电传感器三个转弯及辅三个转弯及辅助巡线图1.1.2光电传感器结构图图1.1.3光电传感器硬件分布图图1.1.4光电传感器硬件实物图取物舵机舵机舵机3舵机1舵机2钩子3钩子3钩子4钩子2钩子1钩子6钩子6钩子5钩子7图1.1.5取物舵机结构图钩子钩子1钩子7钩子3钩子2钩子5钩子6钩子4舵机1舵机2舵机2图1.1.6取物舵机硬件分布图图1.1.7取物舵机硬件实物图1.2整体布局本组搬运机器人整体布局有如下几个特点:采用八个RPR220光电传感器。如图1.1.3,和为两个前瞻,可以提前检测到黑线;③④⑤⑥⑦⑧六个RPR220光电传感器用来巡线,其中③④⑤三个RPR220光电传感器起主要巡线的作用,⑥⑦⑧三个RPR220光电传感器起辅助巡线的作用;⑥⑦⑧三个RPR220光电传感器用来转弯,其中RPR220光电传感器⑦起主要转弯的作用,⑥⑧两个RPR220光电传感器起辅助转弯的作用。采用三个钩子,三个钩子包含了七个小钩子。如图1.1.6,钩子1,2共用一个舵机1,钩子3,4共用一个舵机3,钩子5,6,7共用一个舵机2。在进行物料分拣搬运的第一个环节时,只用到了钩子2,4;在进行物料分拣搬运的第二个环节时,钩子1,2,3,4,5,6,7同时使用。采用三个钩子能够使得物料搬运过程中更加稳定可靠,最后放置时更加接近目标区的中心。下面将详细介绍我们小组钩子使用情况:①如图1.1.6,在进行物料分拣搬运的第一个环节时,需要从暗箱中放置的5种不同颜色的物料随机抽取3种颜色物料,依次放置在场地上标示为A、C、E的位置,机器人将这三个物料分拣搬运到对应的颜色区域。在这一环节,我们小组只使用了钩子2,4。当钩子2和钩子4上都处于升起状态〔即未钩住物料)时,我们小组的搬运机器人会先使用右边的钩子〔即钩子4〕将所要放置的物料钩起,当遇到前面有障碍物〔即物料〕时,会用左边的钩子〔即钩子2〕将障碍物〔即物料〕钩起,带着两个物料一起行进,直到将的右边钩子钩住的物料放置好才去将左边钩子钩住的物料放置好;假设未遇到前方有障碍物〔即物料〕,那么直接将右边钩子钩住的物料放置好。图1.2.4是右边的钩子4钩住物料时的分布图;图1.2.5是当右边钩子4钩住物料并且遇到前方障碍物时将处于升起状态的左边钩子2降下的情况分布图;图1.2.6是当右边钩子4钩住物料并且遇到前方障碍物时采用左边钩子2将障碍物钩住的情况分布图。②如图1.1.6,在进行物料分拣搬运的第二个环节时,需要将F〔图〕、G两个储料区的共计10个物块取出分拣搬运至对应颜色区域〔如绿色物料搬运到绿色目标区,以此类推〕。在这一环节,我们小组使用了所有的钩子。我们小组的钩子2和钩子5同时钩住一个物料,钩子4和钩子6同时钩住一个物料,钩子1,3,7各负责钩住一个物料。我们可以看到,钩子1和钩子2是连贯的,即钩子1或钩子2只要有一个升起或降下,都会带动另一个的升起或降下。钩子2和钩子5之所以需要同时钩住一个物料,是因为当钩子1升起从而放下钩子1所钩住的物料时,钩子2也将随着钩子1的升起而升起,这样的话,钩子2和钩子5共同钩住的物料将变成由钩子5单独钩住,这就做到了一次只放一个物料的目标,且放置好一个物料的同时并不影响其他物料的放置。同样地,钩子4和钩子6同时钩住一个物料的道理如上面所述。图1.2.2是钩子将要降下之前将五个物料集拢在一起的图;图1.2.3是钩子全部落下时各个钩子钩住物料的分布图。图1.2.1F区的五个物料图图1.2.2钩子将要降下之前将五个物料集拢在一起图图1.2.3钩子全部落下时各个钩子钩住物料分布图图1.2.4右边的钩子4钩住物料分布图图1.2.5当右边钩子4钩住物料并且遇到前方障碍物时将处于升起状态的左边钩子2降下的情况分布图图1.2.6当右边钩子4钩住物料并且遇到前方障碍物时采用左边钩子2将障碍物钩住情况分布图图1.2.7整体布局图2机械系统设计与实现2.1万向轮万向轮就是所谓的活动脚轮。最大的优点就是它的结构允许水平360度旋转;同时,万向轮的使用大大减少了摩擦。2.1万向轮实物图2.2舵机我们组采用了两种舵机分别用于轮子和钩子。轮子上所采用的舵机型号为PARALLAXContinuousRotationServo;钩子所采用的的舵机型号为TowerProMicroServo9gSG90。以下将详细介绍我们小组所使用的这两种舵机。〔1〕PARALLAXContinuousRotationServo的最高转速可达50转每分〔电压6伏特时〕。以下将对PARALLAXContinuousRotationServo性能及使用进行详尽介绍。2.2.1PARALLAXContinuousRotationServo舵机电路图2.2.2PARALLAXContinuousRotationServo舵机3Pin2.2.3PARALLAXContinuousRotationServo舵机转动分析2.2.4PARALLAXContinuousRotationServo舵机转速与脉冲宽度的关系图如图2.2.5,TowerProMicroServo9gSG90舵机有三,GND〔地线〕,CONTROL〔控制线〕。,GND为舵机的电源线,CONTROL为舵机控制信号的输入线。控制信号为的PWM波形〔矩形波〕,不同的脉宽〔占空比〕对应在没有过载且控制信号持续稳定的条件下,舵机的方位角严格保持不变。此控制信号适需要注意的是尽管也可以用延时函数来实现PWM波,但舵机运行可能PWM波的频率偏离过大,舵时机出现震颤甚至会无法启动舵机!需要说明的是,因程序脉宽调整的原理,只能得到一些特定位置,但对于普通的执行机构,是能够满足要求的。需要注意的是,给舵机供电电源应提供足够的功率,控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20ms〔即频率为50Hz〕。当方波的脉冲宽度改变时,舵机的转轴角度发生改变,角度变化与脉冲宽度的变化成正比,如图2.2.7。图2.2.5TowerProMicroServo9gSG90舵机三根引出线图图2.2.6TowerProMicroServo9gSG90舵机内部电路图图2.2.7舵机输出转角与输入信号脉冲宽度的关系图2.3铜柱铜柱主要起到支撑的作用。本技术报告中之所以会提到铜柱,是因为我们小组在ALIENTEKMiniSTM32开发板的四周加了很高的铜柱之后,有效节省了结构的使用空间,更重要的一点便是,在我们小组进行调试时,可以将小车倒置,如图2.3,确保了ALIENTEKMiniSTM32开发板的平安,方便了我们的调试。图2.3将搬运机器人倒置图3硬件系统设计及实现我们主要从系统的稳定性、可靠性、高效性、实用性、简洁性、美观性等方面来考虑硬件的整体设计。从最初的设定到最终的敲定,我们小组经过了很长一段时间的分析讨论及经历才有了如下的硬件设计。3.1硬件设计3.1.1RPR220传感器本小组使用的是RPR220光电传感器。RPR220传感器原理:RPR220传感器是由红外发射管和红外接收管构成的,其外部包裹着黑色塑料。当搬运机器人行进时,红外发射管会发射光,而黑线和白线反射光的强弱程度不同,白线比黑线反射能力更强,进而红外接收管会吸收由黑线或白线反射回来的光,形成了一定的电流,如图3.2.2,电流通过18kΩ的电阻会形成一定的电压,我们小组经过反复实践检验,设定了一个阈值,从而将电压数值转变成二值数值,即当电压值大于阈值时,我们设为值1;当电压值小于阈值时,我们设为值0。结合RPR220传感器的原理,我们使用了八个RPR220传感器。如图1.1.4,前两个是前瞻,能够提前检测到黑线;中间三个是巡线用的,其间隔是略大于黑线宽度;尾部三个是转弯用的,同时又是辅助巡线用的,这三个中中间那个传感器⑦对转弯起很多的作用,而左右两个传感器⑥和⑧是辅助转弯用的。我们小组所设计的传感器有如下优点:中间三个是巡线用的,其间隔是略大于黑线宽度,其很大的优势便是有效防止搬运机器人走丢或误判。因为如果用作巡线的传感器之间的间隔小于等于黑线宽度,一旦走偏了一点点,就会检测不到路线了,这就造成了走偏;同样地,假设用作巡线的传感器之间的间隔比黑线宽度大很多,就会很容易出现误判,又因为它是要检测黑白线的,所以小车在巡线过程中很有可能会歪歪扭扭前行;虽然我们小组用作巡线的传感器之间的间隔略大于黑线宽度,但实际上在巡线过程中仍然是压着黑线行进的,并没有想象中的会歪歪扭扭而不稳定的巡线。事实上,我们小组所使用的巡线传感器一共有六个,中间的③④⑤三个RPR220光电传感器起主要巡线的作用,尾部的⑥⑦⑧三个RPR220光电传感器起辅助巡线的作用。这就使得我们的搬运机器人能够稳定地巡线,即使走偏了一点点,它也能够及时纠正过来并继续巡线行进。采用了三个用作转弯的传感器,其中位于尾部中间的传感器⑦起主要转弯的作用,左右两个传感器⑥和⑧是辅助转弯用的。我们由一开始的用作转弯的一个传感器改良成了三个传感器,这就使得我们的搬运机器人在转弯过程中更加灵活、敏捷。而位于尾部的三个传感器又具有辅助巡线的作用,如果在行进过程中偏了一点点,可以及时采集、反应信息并及时纠正。3.1.2ALIENTEKMiniSTM32ALIENTEKMiniSTM32V3.0具有如下几个优点:〔1〕小巧。整个板子尺寸为8cm*10cm*2cm〔包括液晶,但不计算铜柱的高度〕〔2〕灵活。板上除晶振外的所有的IO口全部引出,特别还有GPIOA和GPIOB的IO口是按顺序引出的,可以极大的方便大家扩展及使用,另外板载独特的一键下载功能,防止了频繁设置B0、B1带来的麻烦,直接在电脑上一键下载。〔3〕资源丰富。板载十多种外设及接口,可以充分挖掘STM32的潜质。〔4〕质量过硬。沉金PCB+全新优质元器件+定制全铜镀金排针/排座+电源TVS保护,坚假设磐石。〔5〕人性化设计。各个接口都有丝印标注,使用起来一目了然;接口位置设计安排合理,方便顺手。资源搭配合理,物尽其用。图3.1.2ALIENTEKMiniSTM32硬件图ALIENTEKMiniSTM32开发板资源如下:◆CPU:STM32F103RCT6,LQFP64,FLASH:256K,SRAM:48K;◆1个标准的JTAG/SWD调试下载口◆1个电源指示灯〔蓝色〕◆2个状态指示灯〔DS0:红色,DS1:绿色〕◆1个红外接收头,配备一款小巧的红外遥控器◆1个IIC接口的EEPROM芯片,24C02,容量256字节◆1个SPIFLASH芯片,W25Q64,容量为8M字节〔即64Mbit〕◆1个DS18B20/DS1820温度传感器预留接口◆1个标准的2.4/2.8/3.5/4.3/7寸LCD接口,支持触摸屏◆1个OLED模块接口〔与LCD接口局部共用〕◆1个USB串口接口,可用于程序下载和代码调试◆1个USBSLAVE接口,用于USB通信◆1个SD卡接口◆1个PS/2接口,可外接鼠标、键盘◆1组5V电源供给/接入口◆1组3.3V电源供给/接入口◆1个启动模式选择配置接口◆1个2.4G无线通信接口◆1个RTC后备电池座,并带电池◆1个复位按钮,可用于复位MCU和LCD◆3个功能按钮,其中WK_UP兼具唤醒功能◆1个电源开关,控制整个板的电源◆3.3V与5V电源TVS保护,有效防止烧坏芯片。◆独创的一键下载功能◆除晶振占用的IO口外,其余所有IO口全部引出,其中GPIOA和GPIOB按顺序引3.1.3开发板使用考前须知为了让大家更好的使用ALIENTEKMiniSTM32开发板,我们在这里总结该开发板使用的时候尤其要注意的一些问题,希望大家在使用的时候多多注意,以减少不必要的问题。〔1〕开发板一般情况是由USB_232口供电,在第一次上电的时候由于CH340G在和电脑建立连接的过程中,导致DTR/RTS信号不稳定,会引起STM32复位2~5次左右,这个现象是正常的,后续按复位键就不会出现这种问题了。〔2〕虽说开发板有500mA自恢复保险丝,但是由于自恢复保险丝是慢动作器件,所以在给外部供电的时候,还是请大家小心一点,不要超过这个限额,以免引起不必要的问题〔3〕SPI1被多个SPI器件共用〔SD卡/无线模块/W25Q64〕,在使用的时候,必须保证同一时刻只有1个SPI器件是被选中的〔CS为低〕,其他器件必须设置为非选中〔CS为高〕,以免互相干扰。〔4〕JTAG接口有几个信号〔JTDO/JTRST/JTDI等〕和LCD/KEY1等共用了,所以在使用的时候注意,一旦用到这些有冲突的引脚,就不能再用JTAG模式仿真/下载代码了,必须使用SWD模式,所以我们竭力推荐使用:SWD模式。〔5〕当你想使用某个IO口用作其他用处的时候,请先看看开发板的原理图,该IO口是否有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干扰,先确定无干扰,再使用这个IO。比方PA0如果和1820的跳线帽连接上了,那么WK_UP按键就无法正常检测了,按键实验,也就没法做了。〔6〕当液晶显示白屏的时候,请先检查液晶模块是否插好〔拔下来重新插试试〕,如还不行,可以通过串口看看LCDID〔按一次复位,输出一次〕是否正常,再做进一步分析。〔7〕当使用液晶模块〔16位模式〕的时候,PB0~PB15都被占用了,可以分时复用,但是在写程序的时候要注意,这里还有连接到触摸屏的PC0/PC1/PC2/PC3/PC13均会存在这样的问题,在使用的时候要格外注意,看是否会产生干扰。MCUALIENTEKMiniSTM32V3.0版开发板选择的是STM32F103RCT6作为MCU,它拥有的资源包括:48KBSRAM、256KBFLASH、2个根本定时器、4个通用定时器、2个高级定时器、2个DMA控制器〔共12个通道〕、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51个通用IO口。图3.1.4BOOT0、BOOT1启动模式表按照图3.1.4,一般情况下〔即标准的ISP下载步骤〕如果我们想用用串口下载代码,那么必须先配置BOOT0为1,BOOT1为0,然后按复位键,最后再通过程序下载代码,下载完以后又需要将BOOT0设置为GND,以便每次复位后都可以运行用户代码。可以看到,这个标准的ISP步骤还是很繁琐的,跳线帽跳来跳去,还要手动复位,所以ALIENTEK为STM32的串口下载专门设计了一键下载电路,通过串口的DTR和RTS信号,来自动控制RST(复位)和BOOT0,因此不需要用户来手动切换状态,直接串口下载软件自动控制,可以非常方便的下载代码,这是其他开发板所不具备的。P3和P1分别用于PORTA和PORTB的IO口引出,其中P1有局部用于PORTC口的引出。PORTA和PORTB都是按顺序排列的,这样设计的目的是为了让大家更方便地与外部设备连接。P2连接了DS18B20的数据口以及红外传感器的数据线,它们分别对应着PA0和PA1,只需要通过跳线帽将P2和P3连接起来就可以使用了。这里不直接连在一起的原因有二:1,防止红外传感器和DS18B20对这两个IO口作为其他功能使用的时候的影响;2,DS18B20和红外传感器还可以用来给其他板子提供输入,等于我们的板子为别的板子提供了红外接口和温度传感器,在调试的时候,还是蛮有用的。传感器,在调试的时候,还是蛮有用的。P4口连接了CH340G的串口输出,对应着STM32的串口1〔PA9/PA10〕,在使用的时候,也是通过跳线帽将这两处连接起来。这样设计有两个好处:1,使得PA9和PA10用作其他用途使用的时候〔比方串口1连接其他串口设备〕,不受到CH340G的影响。2,USB转串口可以用作他用,并不仅限这个板上的STM32使用,也可以连接到其他板子上,这样ALIENEKMiniSTM32开发板就相当于一个USB转TTL串口。P5口是另外一组IO引出排针,将PORTC和PORTD等的剩余IO口从这里引出。在此局部原理图中,我们还可以看到STM32F103RCT6的各个IO口与外设的连接关系,这些将在后面给大家介绍。这里STM32的VBAT采用CR1220纽扣电池和VCC3.3混合供电的方式,在有外部电源〔VCC3.3〕的时候,CR1220不给VBAT供电,而在外部电源断开的时候,那么由CR1220给VBAT供电。这样,VBAT总是有电的,以保证RTC的走时以及后备存放器的内容不丧失。3.2电路设计方案3.2.1ALIENTEKMiniSTM32电路①②③图3.2.1ALIENTEKMiniSTM32控制系统电路设计图〔上述图①②③〕3.2.2RPR220光电传感器电路图3.2.2传感器电路图3.2.3电源稳压电路图3.2.3电源稳压电路图3.2.4LCD液晶显示屏TFT_LCD是一个通用的液晶模块接口。OLED是一个给OLED显示模块供电的接口,它和TFT_LCD拼接在一起。当使用TFTLCD时,我们接到TFT_LCD上〔靠右插〕就可以了,而当我们使用ALIENTEK的OLED模块时,那么接OLED排针做电源,同时会连接到TFT_LCD上〔靠左插〕的局部管脚,从而实现OLED与MCU的连接。ALIENTEKMiniSTM32的LCD接口兼容ALIENTEK各种尺寸的TFTLCD模块,包括:2.4寸(320*240,电阻屏)、2.8寸〔320*240,电阻屏〕、3.5寸〔480*320,电阻屏〕、4.3寸〔800*480,电容屏〕、7寸〔800*480,电容屏〕等,同时还兼容ALIENTEK的0.96寸OLED模块。图3.2.4LCD液晶显示模块图4软件系统设计与实现软件局部主要是主程序通过调用各个模块的子程序控制机器人的整体运作,每子程序设计一个模块的动作,其中还包括一些公共子程序。软件局部包含了巡线模块、转弯模块、后退模块、延时模块、停止模块、钩子模块以及算法局部等。其中,巡线模块贯穿整个程序始终,机器人搬运是以准确而稳定的巡线完成搬运过程的,做到了不盲走、不走偏、实时纠正;转弯模块又包含了左转和右转;钩子模块包含了钩子升降模块。下面将介绍我们小组搬运机器人搬运物料流程图,如图4.1:出发区中心中心钩子上有无物料YN选物料判断物料是否全搬完Y判断物料是否全搬完N转到物料所在位置转到物料所在位置钩住物料能否继续行进放能否继续行进放置在前方目标区放置物料Y放置物料N转到物料所应放置位置转到物料所应放置位置前方有无障碍前方有无障碍NY用另一个钩子用另一个钩子钩住物料已完成第一环节已完成第一环节进入第二环节钩住F区的五个物料转到各物料对应的小圆后,将各个物料放置在对应的小圆放完五个物料后,钩住G区的五个物料转到各物料对应的小圆后,将各个物料放置在对应的小圆将五个小圆上放置的所有物将五个小圆上放置的所有物料分别推向对应的目标区回到出发区已完成搬运任务图4.1搬运机器人搬运物料流程图5系统开发及调试工具5.1开发工具5.1.1KeilARMKeilARM是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔μVision〕将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。KeilARM软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。下面详细介绍KeilARM开发系统各局部功能、使用事项及优点。1.使用独立的Keil仿真器时,考前须知:〔1〕仿真器标配8MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。〔2〕仿真器上的复位按钮只复位仿真芯片,不复位目标系统。〔3〕仿真芯片的31脚〔/EA〕已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM〔其CPU的/EA引脚接至低电平〕的目标系统中使用。2.优点:〔1〕KeilARM生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。〔2〕与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。5.1.2MDK5简介MDK源自德国的KEIL公司,是RealViewMDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.10,该版本使用uVision5IDE集成开发环境,是目前针对ARM处理器,尤其是CortexM内核处理器的最正确开发工具。MDK5向后兼容MDK4和MDK3等,以前的工程同样可以在MDK5上进行开发(但是头文件方面得全部自己添加),MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5由两个局部组成:MDKCore和SoftwarePacks。其中,SoftwarePacks可以独立于工具链进行新芯片支持和中间库的升级。如下图:MDK5组成从上图可以看出,MDKCore又分成四个局部:uVisionIDEwithEditor〔编辑器〕,ARMC/C++Compiler〔编译器〕,PackInstaller〔包安装器〕,uVisionDebuggerwithTrace〔调试跟踪器〕。uVisionIDE从MDK4.7版本开始就参加了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改良很大。SoftwarePacks〔包安装器〕又分为:Device〔芯片支持〕,CMSIS〔ARMCortex微控制器软件接口标准〕和Mdidleware〔中间库〕三个小局部,通过包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。同以往的MDK不同,以往的MDK把所有组件到包含到了一个安装包里面,显得十分“笨重”,MDK5那么不一样,MDKCore是一个独立的安装包,它并不包含器件支持、设备驱动、CMSIS等组件,大小不到300M,相对于MDK4.70A的500多M,瘦身明显,MDK5安装包可以在:://keil/demo/eval/arm.htm下载到。而器件支持、设备驱动、CMSIS等组件,那么可以点击MDK5的BuildToolbar的最后一个图标调出PackInstaller,来进行各种组件的安装。也可以在://keil/dd2/pack这个地址下载,然后进行安装。最后,我们学习STM32F103,还要安装两个包:ARM.CMSIS.3.20.4.pack〔用于支持ST标准库,也就是所谓的库函数〕和Keil.STM32F1xx_DFP.1.0.4.pack〔STM32F1的器件库〕。5.2按键模块图5.2按键输入原理图KEY0和KEY1用作普通按键输入,分别连接在PC5和PA15上,其中PA15和JTDI共用了,所以,在使用KEY0和KEY1的时候,就不能使用JTAG来调试了,但是可以用SWD调试,这点在使用的时候要注意。KEY0和KEY1还和PS/2的DAT和CLK线共用。WK_UP按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。该按键是高电平触发的。由于PA0还是DS18B20的输入引脚,而18B20是有上拉电阻的,所以在使用WK_UP按键的时候,一定要断开PA0和DS18B20的跳线帽!5.3红外遥控器在调试过程中的使用我们小组在调试过程中使用了红外遥控器。下面将会对红外遥控技术进行详细介绍。红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,本钱低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在设计红外线遥控器时,不必要像无线电遥控器那样,每套(发射器和接收器)要有不同的遥控频率或编码(否那么,就会隔墙控制或干扰邻居的家用电器),所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方面。由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。红外遥控的编码方式目前广泛使用的是:PWM(脉冲宽度调制)的NEC协议和PhilipsPPM(脉冲位置调制)的RC-5协议的。ALIENTEKMiniSTM32开发板配套的遥控器使用的是NEC协议,其特征如下:1、8位地址和8位指令长度;2、地址和命令2次传输〔确保可靠性〕3、PWM脉冲位置调制,以发射红外载波的占空比代表“0”和“1”;4、载波频率为38Khz;5、位时间为1.125ms或2.25ms;NEC码的位定义:一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms〔560us脉冲+1680us低电平〕,一个逻辑0的传输需要1.125ms〔560us脉冲+560us低电平〕。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑1应该是560us低+1680us高,逻辑0应该是560us低+560us高。NEC遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、控制码、控制反码均是8位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性〔可用于校验〕。图5.3红外遥控接收头与STM32的连接电路图红外遥控接收头通过P2与P3,连接在STM32的PA1〔TIM5_CH2〕上。硬件上,我们只需要拿一个跳线帽把RMT和PA1短接即可〔默认已经短接〕。然后,程序将TIM5_CH2设计为输入捕获,然后将收到的脉冲信号解码就可以了。5.4ADC(模拟/数字转换)5.4.1ADC介绍12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据存放器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。5.4.2ADC主要特征●12位分辨率●转换结束、注入转换结束和发生模拟看门狗事件时产生中断●单次和连续转换模式●从通道0到通道n的自动扫描模式●自校准●带内嵌数据一致性的数据对齐●采样间隔可以按通道分别编程●规那么转换和注入转换均有外部触发选项●间断模式●双重模式(带2个或以上ADC的器件)●ADC转换时间:STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs);STM32F101xx根本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs);STM32F102xxUSB型产品:时钟为48MHz时为1.2μs;STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)●ADC供电要求:2.4V到3.6V●ADC输入范围:VREF-≤VIN≤VREF+●规那么通道转换期间有DMA请求产生。下列图是ADC模块的方框图。注意:如果有VREF-引脚(取决于封装),必须和VSSA相连接。5.4.3ADC功能描述如图为一个ADC模块的框图。图为ADC引脚的说明。ADC3的规那么转换和注入转换触发与ADC1和ADC2的不同;TIM8_CH4和TIM8_TRGO及它们的重映射位只存在于大容量产品中。VDDA和VSSA应该分别连接到VDD和VSS。图5.4.3.1ADC引脚图单个ADC框图ADC开关控制通过设置ADC_CR2存放器的ADON位可给ADC上电。当第一次设置ADON位时,它将ADC从断电状态下唤醒。ADC上电延迟一段时间后(tSTAB),再次设置ADON位时开始进行转换。通过去除ADON位可以停止转换,并将ADC置于断电模式。在这个模式中,ADC几乎不耗电(仅几个μA)。5.4.5ADC时钟由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。RCC控制器为ADC时钟提供一个专用的可编程预分频器。通道选择有16个多路通道。可以把转换组织成两组:规那么组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。●规那么组由多达16个转换组成。规那么通道和它们的转换顺序在ADC_SQRx存放器中选择。规那么组中转换的总数应写入ADC_SQR1存放器的L[3:0]位中。●注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR存放器中选择。注入组里的转换总数目应写入ADC_JSQR存放器的L[1:0]位中。如果ADC_SQRx或ADC_JSQR存放器在转换期间被更改,当前的转换被去除,一个新的启动脉冲将发送到ADC以转换新选择的组。温度传感器/VREFINT内部通道温度传感器和通道ADC1_IN16相连接,内部参照电压VREFINT和ADC1_IN17相连接。可以按注入或规那么通道对这两个内部通道进行转换。注意:温度传感器和VREFINT只能出现在主ADC1中。单次转换模式单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2存放器的ADON位(只适用于规那么通道)启动也可通过外部触发启动(适用于规那么通道或注入通道),这时CONT位为0。一旦选择通道的转换完成:●如果一个规那么通道被转换:〔1〕转换数据被储存在16位ADC_DR存放器中;〔2〕EOC(转换结束)标志被设置;〔3〕如果设置了EOCIE,那么产生中断。●如果一个注入通道被转换:〔1〕转换数据被储存在16位的ADC_DRJ1存放器中;〔2〕JEOC(注入转换结束)标志被设置;〔3〕如果设置了JEOCIE位,那么产生中断。然后ADC停止。连续转换模式在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2存放器上的ADON位启动,此时CONT位是1。每个转换后:●如果一个规那么通道被转换:(1)转换数据被储存在16位的ADC_DR存放器中;(2)EOC(转换结束)标志被设置;(3)如果设置了EOCIE,那么产生中断。●如果一个注入通道被转换:(1)转换数据被储存在16位的ADC_DRJ1存放器中;(2)JEOC(注入转换结束)标志被设置;(3)如果设置了JEOCIE位,那么产生中断。5.4.9ADC中断规那么和注入组转换结束时能产生中断,当模拟看门狗状态位被设置时也能产生中断。它们都有独立的中断使能位。注:ADC1和ADC2的中断映射在同一个中断向量上,而ADC3的中断有自己的中断向量。ADC_SR存放器中有2个其他标志,但是它们没有相关联的中断:●JSTRT(注入组通道转换的启动)●STRT(规那么组通道转换的启动)图ADC中断5.5USB串口、USB、电源这里三个局部一起介绍,ALIENTEKMiniSTM32开发板板载了USB串口,并且由USB提供电源,使得我们只需要一根USB线就可以使用ALIENTEKMiniSTM32开发板了,包括串口下载代码、供电、串口通信3位一体。开发板的供电局部还引出了5V〔VOUT2〕和3.3V〔VOUT1〕的排针,可以用来为外部设备提供电源或者从外部引入电源,这在很多时候是非常有用的,有时候你突然要一个3.3V的电源,但找半天就是没这样的电源,而我们的板子那么可直接向外部提供3.3V电源,有了它,你就可以给外部设备提供3.3V、5V电源了。注意电流不能太大哦!开发板的USB接口〔USB〕通过独立的MiniUSB头引出,不和USB转串口〔USB_232〕共用,这样不但可以同时使用,还可以给系统提供更大的电流。这几个局部的原理图如下:图5.5USB串口、USB、电源局部原理图图中的Q1和Q2外加几个电阻和一个二极管就构成了开发板的一键下载电路,此电路通过RST和DTR信号来控制BOOT0和RESET信号,从而实现一键下载的功能。很多朋友问一键下载的原理,这里和大家讲一下,先说一个前提:DTR_N和RTS_N的输出和DTR/RTS的设置是相反的。必须先记下这个前提。一键下载电路的具体实现过程:首先,mcuisp控制DTR输出低电平,那么DTR_N输出高,然后RTS置高,那么RTS_N输出低,这样Q2导通了,BOOT0被拉高,即实现设置BOOT0为1,同时Q1也会导通,STM32的复位脚被拉低,实现复位。然后,延时100ms后,mcuisp控制DTR为高电平,那么DTR_N输出低电平,RTS维持高电平,那么RTS_N继续为低电平,此时STM32的复位引脚,由于Q1不再导通,变为高电平,STM32结束复位,但是BOOT0还是维持为1,从而进入ISP模式,接着mcuisp就可以开始连接STM32,下载代码了,从而实现一键下载。另外,此局部还有一个开关K1,用来控制整个系统的供电,如果断开那么整个系统的3.3V局部都将断电。而5V局部的电源还是开启的。图中F1为可恢复保险丝,用于保护USB。图中的D4和D5这两个TVS管,用于保护开发板,防止外部高压脉冲/静电损坏开发板上的元器件,让大家用的更加放心。6结论我们小组在经历了几个月的努力之后,终于稳定、准确完成了搬运机器人的搬运任务。一开始是硬件的设计与制作。我们小组反复斟酌修改,最终确定了RPR220光电传感器的个数及位置。我们一开始只是做了三个巡线以及一个转弯用的传感器,后来经过反复调试和精简程序,发现我们的巡线抖动得厉害,并且还会丢线,于是我们决定将巡线用的传感器由三个增加到六个,后来新增的三个是辅助巡线用的,并且我们将转弯用的那一个传感器给拿掉了,继而代之的是我们新增的那三个传感器。换句话说,我们将所有用于我们搬运机器人上的传感器一下子增加至八个,两个前瞻,三个主要巡线,三个转弯以及辅助巡线共用。因此,我们小组的搬运机器人在巡线这局部明显比之前的效果好多了。然而,我们发现用作巡线的传感器再多也不能说明巡线就越稳定。一次次的调试让我们发现我们的舵机参数根本不稳定,并且随着我们搬运机器人因调试次数多而温度升高,其参数变化越明显且难以掌握其规律,这就使我们在巡线这方面投入了大量的时间与精力,后来我们商量决定换舵机,换了性能更好稳定性更高的舵机后,我们的巡线终于到达了稳定,之后也没出现因温度升高而引起舵机参数改变从而巡线出错的情况了。我们小组的钩子一开始是容易变形的,虽然我们的钩子局部不会出错,但是为了使我们搬运机器人在搬运物料过程中更加稳定平安,我们将钩子进行了改良,钩子的硬度以及韧度得到了进一步的提高,这就使得我们的钩子在调试过程中不易变形,增强了其稳固性。我们使用了液晶屏,一开始我们将程序烧进STM32的时候,液晶屏只是屏亮着,却总是显示不出字。我们经过反复查找错误、修改,一次次的烧进单片机,最终成功地解决了液晶屏的问题。其实最重要的局部就是巡线了,我们最后的阶段也是在反复调试这一局部,这一局部直接决定了搬运机器人的稳定性。面对即将到来的大赛,在历时几个月的充分准备之后,我们有信心在比赛中取得优异成绩。在我们准备比赛的过程中,场地和经费方面都得到了学校及学院的大力支持,在此特别感谢一直支持和关注中国工程机器人大赛暨国际公开赛〔RoboWork〕的学校和学院领导以及各位指导老师!感谢我们团队的指导学长!同时也感谢比赛组委会能组织这样一项有意义的比赛!——吴秋淑自报名参加中国工程机器人大赛暨国际公开赛的光电搬运组

温馨提示

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

评论

0/150

提交评论