基于单片机控制同步机械臂的设计与研究_第1页
基于单片机控制同步机械臂的设计与研究_第2页
基于单片机控制同步机械臂的设计与研究_第3页
基于单片机控制同步机械臂的设计与研究_第4页
基于单片机控制同步机械臂的设计与研究_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机控制同步机械臂的设计与研究摘要伴随着社会服务领域,科技领域以及工业4.0进程的加快,低成本,小型化机械臂在日常学习生活得到广泛应用。其设计包含了自动控制原理,模拟数字电子技术,机械构造,传感器识别技术等多个学科领域。低成本,小型化机械臂不同于工业机械臂在封闭的条件下作业,其在人机环境下的交互控制面临诸多问题,本文所设计的机械臂主要应用在娱乐消遣,教学示范为主,日常环境的多变性,以及多种多样的目标物体摆放,都对低成本,小型化机械臂智能抓取提出更高的要求。本设计采用模块化的设计思路,以STM32单片机为控制核心,辅以舵机模块,无线通信模块,角度传感器相结合的方式,只需通过简单的操控控制台,就能使从动机械臂依据操控者的指令精确的移动,从而使动机械臂完成同步动作,实现人机交互功能,还能够根据操作指令,实现物体的抓取功能,对必要的动作进行记忆,记忆过后能够准确的执行动作路径。该小型机械臂可用于教学,解决日常生活中的难题。本设计详细介绍了低成本,小型化机械臂对的软硬件的设计过程,硬件设计包括角度传感器、舵机驱动电路,无线通信模块等。软件设计主要完成无线通信,PWM脉宽调制,数模转化、串口调试等软件设计及算法的运用。完成对整个机械系统的联合调试和实验分析,所设计的作品能够完成所有的控制需求,控制性能良好。关键字:机械臂,STM32,人机交互

AbstractWiththeaccelerationoftheprocessofsocialservices,scienceandtechnology,andindustry4.0,low-cost,miniaturizedmanipulatoriswidelyusedindailylife.Itsdesignincludesautomaticcontrolprinciple,analogdigitalelectronictechnology,mechanicalstructure,sensoridentificationtechnologyandotherdisciplines.Lowcost,miniaturizedmanipulatorisdifferentfromindustrialmanipulatorworkinginclosedcondition,Therobotarmdesignedinthispaperismainlyusedinentertainment,teachingdemonstration,thevariabilityofdailyenvironment,aswellasavarietyoftargetobjectplacement,allofwhichhavehigherrequirementsforlow-cost,miniaturizedrobotarmintelligentgrasping.Thisdesignadoptsthemodulardesignidea,withSTM32single-chipmicrocomputerasthecontrolcore,supplementedbysteeringgearmodule,wirelesscommunicationmoduleandanglesensor.Onlythroughasimplecontrolconsole,itcanmakethedrivenmanipulatormoveaccuratelyaccordingtotheinstructionsofthemanipulator,sothatthemanipulatorcancompletethesynchronousaction,realizethehuman-computerinteractionfunction,andalsoaccordingtotheoperationMakeinstructions,realizetheobjectgrabbingfunction,memorizethenecessaryactions,andaccuratelyexecutetheactionpathaftermemorizing.Thesmallmanipulatorcanbeusedforteachingandsolvingtheproblemsindailylife.Thisdesignintroducesthedesignprocessoflow-costandminiaturizedmechanicalarmindetail,includinganglesensor,actuatordrivecircuit,wirelesscommunicationmodule,etc.Softwaredesignmainlycompleteswirelesscommunication,PWM,digitaltoanalogconversion,serialportdebuggingandothersoftwaredesignandalgorithmapplication.Completethejointdebuggingandexperimentalanalysisofthewholemechanicalsystem,thedesignedworkcancompleteallthecontrolrequirements,andthecontrolperformanceisgood.Keywords:Mechanicalarm;STM32;humancomputerinteraction

目录摘要 IAbstract II第一章绪论 11.1机械臂研究背景及意义 11.2国内外机械臂的研发现状 11.2.1国内机械臂的研发现状 11.2.2国外机械臂的研发现状: 21.3本文研究的主要内容 2第二章同步机械臂的整体设计方案 32.1硬件设计方案 32.1.1微处理器选型 42.1.2角度传感器及元件选取 52.1.3无线模块选取 62.1.4舵机选型 72.1.5KeilμVision5编程软件 72.1.6FlyMcu程序烧录软件 82.1.7AltiumDesigner17软件 92.2本章小结 10第3章控制器硬件设计 113.1LM2958降压硬件电路设计 113.2NRF24L01无线通信模块电路 113.2.1NRF24L01模块概述 113.2.2NRF24L01模块特性 123.2.3NRF24L01模块引脚介绍 133.2.4NRF24L01模块接线原理图 143.3STM32单片机最小应用系统 153.3.1STM32单片机简介 153.3.2STM32单片机最小应用系统 153.4角度传感器模块电路 163.4.1角度传感器模块概述 163.4.2角度传感器模块特性 163.4.3角度传感器模块接线原理图 173.5舵机模块 173.5.1舵机模块概述 173.5.2舵机模块特性 183.3.3舵机模块接线原理图 183.6本章小结 19第四章同步机械臂的软件设计 204.1主程序设计 204.2无线NRF24L01模块程序设计 214.2.1NRF24L01的初始化程序设计 214.2.2NRF24L01的指令程序设计 224.2.3NRF24L01的模式设置程序设计 224.2.4NRF24L01的收发数据的处理程序 234.3角度传感数模转换程序 244.3.1AD转换程序设计 244.3.2转化数值的滤波程序设计 254.4舵机控制模块程序设计 264.5本章小结 26第五章同步机械臂调试及结果分析 275.1硬件调试和软件调试结果分析 27第六章总结与展望 28参考文献 29致谢 30

第一章绪论1.1机械臂研究背景及意义早在20世纪50年代,世界上第一台机械手由美国联合公司研发成功。从那以后数不胜数的机械臂被研制出来,它们大量的投入进工厂中,完成人类不能完成的任务。机械臂不仅可以模仿人类的行为动作,还可以通过软件程序实现对物体的智能识别,监测,抓取,装卸等一系列功能,机械臂在高险环境以及在面对各式各样工作环境适应能力强等方面表现出巨大优势,逐步代替人工实现智能化,精准化。使用机械臂有以下特点:(1)自动化程度提高,运用机械臂有利于提升工业生产流程中的自动化程度,使传统的生产方式得以改变,大幅度提高劳动生产效率和降低制造成本。(2)改变劳动生产条件,机械臂能够在各种各样的高危环境作业,从而顶替人们安全的完成生产作业,避免人们在生产过程中发生不可挽回的灾难,从而使劳动生产条件得以改善。(3)机械臂精确且性能稳定,能够大幅度提升产品的质量,能够避免许多人为操作失误而导致生产成本和材料的浪费。(4)机械臂的灵活性、通用性较好,能够在更改生产类型时通过改变程序设定而迅速适应其工作需求,满足企业的柔性生产需求。(5)机械臂对外界环境的适应性强,适应各式各样的危险环境,比如高温高压,低温低压,腐蚀污染,毒性污染的工作环境都能从容应对。1.2国内外机械臂的研发现状1.2.1国内机械臂的研发现状由于我国对机器人方向研究发展较晚,直到90年代,我们国家才掌握自动控制和电子智能化技术。由于我国对机器人领域相关技术非常重视,因此大力发展机器人产业,并且将机器人实现大规模批量生产,应用到各行各业中去。这一阶段,国内涌现了一批具有自主知识产权的机器人企业,随着人力成本不断上涨,国内许多工业制造企业开始大规模机器人代替人工作业。由于传统工业机械臂存在体积庞大而笨重,成本昂贵,难以适应桌面级市场的需要。因此小型化,桌面机械臂开始发展起来,成为一种机器人领域新的研究方向,主要被广泛使用在生活当中,比如高校的教学实验活动,代替人类进行简单生活作业。在祖国推崇万众创新的基础下,许多科技创新公司加入到桌面机械臂的研发当中,轻量级桌面机械臂实现质的飞跃,一系列的人机交互式轻量级机械臂不断涌现出来。目前,市面上出售的低成本,小型化机械臂为内部编程好动作,然后按照程序设计执行相应的动作。这种预先在芯片内部编译好的代码,只能实现单一的,规律的动作,每次调换动作又需要重新编写代码,还需要花大量时间调试,浪费太多的人力物力,总的来说,应用场景狭窄,实用性不强。因此还需大力发展高新科技产业。1.2.2国外机械臂的研发现状:世界上第一台数字计算机在20世纪40年代出现,从那以后计算机从运行速度快、价格便宜和存储容量大方向发展,且计算机领域取得令人瞩目的成绩,受益于计算机的飞速发展,为机械臂领域的快速发展奠定了坚实的基础。20世纪50年代,美国作为科技最发达的国家,其机器人技术达到世界领先水平,1954年首台可编程机器人由美国人乔治·德沃尔研发出来并且成功申请了专利,该机器人能够根据不同的指令完成相应的工作,灵活性和通用性都非常强,并且在1961年成功的将机器人应用在通用汽车生产的作业流水线上,继而在1966年美国斯坦福大学研究人员又研发出了世界上第一台具有环境识别和环境建模功能的机器人,开启了机器人智能化时代,世界著名的机器人研发公司于1978年研发一系列的通用型、可编程、灵活性高的装配机器人,机器人大量进入工厂代替人类进行生产作业,随着时间的推移,人们对机械臂的了解越来越深入,关注度也越来越高,国外机械臂的快速发展,机械臂的应用领域不断拓展,不仅仅局限在工业生产车间,在军用,医疗,生活等非制造业领域中也得到了广泛的应用,国外有名的机械臂研发公司有scara,abb,epson,fanuc,他们都在高精度和高精尖技术上进行大量的研究。美国、日本、德国的机械臂研究技术目前仍居世界领先水平,在机械臂控制系统集成、内部零部件构造、机械臂原材料均有世界领先优势。1.3本文研究的主要内容本文所设计的同步机械臂以STM32单片机为控制核心、辅以NRF24L01无线通信模块进行信息交换、角度传感器模块进行角度获取、OLED屏幕显示模块进行数据显示、脉宽信号的舵机控制等系统各模块的程序设计及实现,再根据各模块的硬件电路要求,从而实现每个模块的功能,进而实现整个系统的功能,最终根据实际的电路原理图绘制PCB板,使整体设计更加美观,小型和大方。本设计中主要通过将角度传感器将控制台每个轴的旋转程度通过MCU进行读取并优化,将这些数据通过无线模块发送到机械臂的控制MCU,最后将各个数据转化为舵机的驱动信号量,进行机械臂中舵机的实时调整并且能够通过显示屏显示当前舵机转动的具体角度。在记忆路径功能模式下,能够进行信号量的采集,通过存储芯片进行存储,然后将进行优化数据,最终实现机械臂路径的运行。

全文共分为六个章节:第一章为绪论,主要阐明同步机械臂课题研究的背景及现实意义,然后分析国内和国外机械臂的研究现状,明确毕业课程设计的研究方向,为下文的编写做准备。第二章为同步机械臂的整体设计方案,主要介绍课题选用合适的硬件和软件方案,阐述清楚硬件和软件选用原则,分析其优势性,学习使用KeilμVision5编程软件、AltiumDesigner软件和FlyMcu程序烧录软件。第三章为同步机械臂的硬件电路设计方案,说明清楚stm32单片机最小应用系统、12V降压供电电源模块作用,工作原理和使用方法对于角度传感器电路、舵机控制模块电路和无线通信模块电路熟悉其工作特性和主要原理图接线。第四章为同步机械臂的软件程序设计,完成各种模块功能代码的程序设计,分别详细的叙述主程序设计实现同步机械臂的同步功能的流程,详尽述说无线通信模块,角度传感器和舵机模块软件设计配置方法和使用思路。第五章为同步机械臂调试及结果分析,多次严格调试课题作品,确保同步机械臂功能的完美运行,最后根据实验操作得出结论。第六章为总结与展望,对全文进行概括性总结,分析总结设计中的优点与不足,提出改进的可行性方案。第二章同步机械臂的整体设计方案Stm32控制器SStm32控制器Stm32控制器电源供电角度传感器舵机模块显示模块按键模块无线通信2.1.1微处理器选型微处理器犹如人体的大脑,是一切行动指挥的中心,因此本次毕业设计的核心部分是单片机的选型,对于单片机的选型方面要考虑诸多因素,如今市场上有许多国内外的芯片制造厂商、型号五花八门、应用场景也多种多样、性能对比也存在差异的芯片,为了本次同步机械臂实物模型的需要,应该更好的选择适合本次毕业设计需求的芯片,需要对市面上出售的几种不同型号的微处理器进行调研,通过比较它们的优缺点、拥有何种功能、使用寿命长短和价格方面的优势,从中选择性能优良、价格低廉以及符合开发条件的微控制器。1、51系列单片机51系列单片机是一代经典的产品,也是作为开发者最易学懂的和应用最多的一种单片机,至今仍被许多单片机开发人员所喜爱。这款单片机最早由intel公司推出,由于51单片机内部的典型结构、专用总线寄存器集中管理体系、丰富的逻辑位带操作指令以及面向控制的指令系统,被开发人员所赞扬,同时也为后续的单片机的发展铺路。51单片机无论是硬件上还是软件上都有一套完备的位带操作指令系统,对对象进行按位操作而不是操作字节和字,同时还能对特殊寄存器进行位的逻辑功能运算,使开发者用起来的得心应手。51单片机能够使用乘除法指令,无需再编写代码作为子程序调用,芯片内部的随机存取区(ram区)专门开辟了一道特殊的双重功能地址区间,给开发者们提供了极大的便利,51单片机虽然有众多的优势但也存在许多不足,例如无ad、eeprom功能,如需要则需要增加外部电路,io引脚高电平没有输出能力,芯片主频不高,运行速度过慢,这些都是51单片机的软肋之处。2、MSP430单片机由美国德州仪器公司推向市场MSP430单片机是一款拥有超强的处理能力的混合信号处理器,MSP430单片机内部已集成多种模拟电路和数字电路,精简化的内核指令操作,处理指令时间极短,最小可达125ns/周期,寻址方式丰富多样,可以灵活的编写程序语言,对各种高级的数据进行灵活的处理,还能实现超低功耗运行达到减少功耗的目标。MSP430常用的型号是MSP430F、MSP430G2、MSP430L09系列,MSP430单片机的缺点有以下,不适合开发者上手,能够参考寻找的资料也比较少,又因为MSP430属于16位级别的单片机,指令操作的是以字为单位,因此指令需要占据很大存储空间。3、stm32单片机STM32单片机可谓是现在最流行的单片机了,应用场景宽广,功能强大且款式众多,STM32单片机专注于高性能、低成本、低功耗的嵌入式应用,采用专门设计的ARMCortex-M内核,它是一款功能超级强大的单片机,也是一款性价比超高的单片机,因此也是我本次毕业设计所选用的单片机类型。同步机械臂的功能需要如以上硬件设计方案框图,角度传感器数据读取需要用到adc接口,按键功能需要gpio功能,单片机需要使用spi协议用于驱动无线模块完成两端之间通信,iic协议用于驱动显示模块,舵机控制需要单片机定时器输出pwm控制时序,调试同步机械臂需要使用串口调试功能,因此对单片机选取要求有多个定时器,spi通信接口,模拟数字转换器(ADC),串行调试接口,iic接口,同时为了保证机械臂具有良好的实时性,因此对单片机的主频需求较高,综合以上选择,我们选择st(意法半导体)公司的stm32f103zet6,最高72MHz工作频率,多达8个定时器,(SWD)串行单线调试和JTAG接口,2个SPI接口(18M位/秒),2个I2C接口(支持SMBus/PMBus),它拥有超低的价格,超多的外设资源,杰出的功耗控制,极低的开发成本,单片机主频也非常符合我们的要求,完全满足本次设计的开发要求。STM32F103ZET6单片机实物图如图2-1所示图2-1STM32F103ZET6单片机2.1.2角度传感器及元件选取角度传感器要组装在控制台上,实时的反应角度控制台的变化,获取角度变化后,经过单片机处理才能实现从动机械臂的同步动作,经过慎重考虑并且结合价格和设计难度,采用市面上最普通的型号为wh148b10k单联电位器,它具有寿命长,价格低,手感柔和,阻值线性多样化的特点,同时它作为一种可调的电子元件,通过手动调节旋钮,从而改变两端任意一个固定端与接触点之间的阻值,这正是本设计所需要的,当电位器安装在控制台上,将控制台的角度变化转变成阻值变化再转变成单片机可读取的模拟信号量,从而实现对角度的读取。角度传感器实物图如图2-2所示图2-2角度传感器模块2.1.3无线模块选取为了实现获取控制台的手势数据与从动机械臂的控制器的数据交流,因此需要无线通信,现如今有许多现成的通信模块,如nrf24l01,esp8266,WiFi,lora,sx1276等等,考虑到实物模型设计需要并通过调查市面上各类通信模块价格上的对比,无线通信模块决定选用NRF24L01,其价格低廉,在最小控制器板上安装方便,元器件已经封装在狭小的pcb板上,能够减少占用面积,它采用SPI协议与单片机进行通信,通过厂家提供的配置方法,简单的spi编程就能完成相应的通讯配置,它拥有高达2Mbps无线传输速率,可以选择125个工作频率,因此能够进行在不同工频下一对多或多对一的无线通信,本作品中主要采用点对点的通讯方式,即一对一的收发模式,因此该模块完全足够本次作品的开发使用。NRF24L01无线通信模块实物图如图2-3所示。图2-3NRF24L01无线通信模块实物图2.1.4舵机选型在对与舵机的选择上,主要考虑对舵机的工作电压,工作功率,工作电流,力矩,体积,反应时间等进行考虑,较小的舵机虽然便宜,工作电压也较低但容易过热,扭力过低,速度慢而且容易抖动,不适合本次作品的开发使用,因此,结合对本次设计的需要,以及性能价格各方面的考虑,采用了型号为RDS3120双轴数字舵机。该型号舵机内嵌了一种数字控制器,对接收来信号能够准确响应,这是我选择此类舵机的关键因素,并且扭力足,力矩最小为16kg*cm;内部为高硬度金属制作,不易磨损;工作电压范围为4.8~7.2V,重量约为60g,尺寸为40.0*20.0*40.5mm,满足设计的需求。RDS3120数字舵机实物图如图2-4所示图2-4RDS3120数字舵机实物图2.1.5KeilμVision5编程软件KeilμVision5是一款非常出色的c语言软件开发系统,开发者通常以c语言进行编写,与汇编语言相比较,在数据处理,整个编程结构,语言易读性,功能维护性上都占据明显的优势,对于初学者来说易学易用。该软件用户界面可以有效利用屏幕空间,能组织多个操作窗口,对在线代码进行仿真调试,把单片机需要的所有资源进行集成在一起,然后调度给开发人员使用,极大的解决了代码复用的问题,灵活性也得到提升。由于KeilμVision5集合了如此之多的优势,并且集成了本设计控制器的语言编程环境,我考虑到此软件的优越性以及此软件易上手特点,决定选用KeilμVision5软件完成毕业设计的程序代码编写,KeilμVision5具体操作界面如图2-5所示图2-5KeilμVision5用户界面2.1.6FlyMcu程序烧录软件通过KeilμVision5软件编程无误后,会生成单片机专用的hex格式文件,由于编程软件本身不具备烧录单片机程序功能,因此需要单片机烧录软件将编好的代码写入单片机中,因此我选择了stm32常用的烧录软件FlyMcu,此款烧录软件通过扫描单片机连接电脑的串口号,与电脑形成数据互通,设置烧写方式和烧写速度,然后选择需要写入的hex文件,一键下载便可把程序代码写入单片机中,让单片机执行相应的功能。同时,它还支持校验,读器件信息,连续烧录,iap烧录等功能,从而节省开发人员的时间和精力以及提高单片机的使用寿命。对于初学者来说也是相当的友好。FlyMcu程序烧录软件用户界面如图2-6所示图2-6FlyMcu程序烧录软件用户界面2.1.7AltiumDesigner17软件当完成全部电子元器件的选择和设备的调试,我们需要进行单片机最小系统电路板以及相关电子电路的设计,这时我们需要AltiumDesigner这款电路设计软件辅助我们完成设计,它作为一款元器件高度集成电子设计开发系统,借助windows系统,辅助电子设计者完成原理图绘制,仿真实际的电路,绘制pcb图,pcb图智能自动布线,3d模型仿真等技术的完美融合,大大简化设计者的操作难度,提高印制电路板的设计质量,为设计者提供全新的解决方案,解放设计者的固有思维。本设计主要通过AltiumDesigner17设计双面pcb板,主要有4个流程,绘制原理图,给原理图配置封装库,绘制pcb,检查设计错误并修改,最后将pcb文件发送给pcb代工厂进行加工即可,虽然该软件能够进行自动布线,但是我并没有采取此功能,因为自动布线消耗时间很长,布线规则也不能符合人们的设计美感,自主布线能够加强自我独立解决问题的能力,何乐而不为。对于本次设计来看,AltiumDesigner17足以符合设计要求。2.2本章小结本章围绕同步机械臂功能需要和价格性能方面考虑,对硬件材料进行综合筛选,确定最终的硬件方案。对同步机械臂所需要的控制器和各模块进行介绍。软件设计选择KeilμVision5作为单片机的开发环境,通过FlyMcu程序烧录软件进行程序下载,选用AltiumDesigner17设计电路图和pcb。拥有好的硬件设计方案和软件设计方案是一切工作的前提,通过这一章对同步机械臂硬件设备的认真选型和选用适配的计算机辅助软件进行协调配合,才能为后期实际的开发和本设计中涉及软硬件问题做足充分的准备,为后期做出实物打下坚实的基础。

第3章控制器硬件设计3.1LM2958降压硬件电路设计硬件设计首先考虑的是电源供电方面的问题,由于本次设计供电系统需给单片机和其它电路模块提供工作电压为5v,因此需要通过降压模块对标准+12v电压降至5v电压,经过考虑并且结合价格质量方面优势,决定选用市面上流行的lm2596降压模块把锂电池输出的+12v电压降至为5v供单片机和其它电路模块使用,该模块性能表现优越,正常工作状态下可输出最大电流能达到3A级别,具有限流保护、过热保护、ttl断电、低功耗、输出线性好等优点。可应用在车载稳压电源、电子设备供电、系统供电电压测试等等。LM2596降压应用电路接线图如图3-1所示。图3-1LM2596降压应用电路接线图3.2NRF24L01无线通信模块电路3.2.1NRF24L01无线通信模块概述本次使用NRF24L01无线模块抗干扰能力强,采用FSK调制,免许可证使用,2.4GHz全球开放ISM频段,适合电子设计人员的开发和工业环境的应用。它运用自己公司的集成的通讯协议,拥有高效的gfsk调制,可以实现1对多(最多6个)或1对1通信,内置硬件crc检测,低功耗1.9—3.6v工作,待机模式消耗电流仅为微安级别,掉电模式仅为NA级别,),pcb内置2.4Ghz天线,体积仅为15mm*29mm,NORDIC公司已给用户预留了供电接口,数据交换接口和中断接口,开发者们只需要在根据说明手册配置好驱动代码,然后连接到指定的开发板接口,就可以完成无线收发通信的功能,极大解决了开发者在数据透传发面的烦恼。3.2.2NRF24L01无线通信模块特性条件:在工作电压为+3V,vss=0v,温度在-40到85摄氏度,NRF24L01无线通信模块的工作条件特性参数如下表3-1所示。表3-1NRF24L01模块无线通信模块特性参数表符号条件最小值正常值最大值单位VDD电源1.903.03.6V温度工作温度-40+27+85℃VOH高电平输出电压(IOH=0.5mA)VDD-0.3VDDVVOL高电平输出电压(IOL=0.5mA)VSS0.3VfOP工作频率24002525MHz∆f1m频移@1000kbps±160Khz∆f2M频移@2000kbps±320KhzfXTAL晶振频率16MHzRGFSKShockBrust模式下数据传输速率>0200KbpsFCHANNEL频道间距1MHzPRF最大输出功率0+4dBmIVDD1000kbps数据传输下,单通道工作电流11.8mARXSENS灵敏度-85dBm3.2.3NRF24L01模块引脚介绍NRF24L01芯片引脚如下表3-2所示:表3-2NRF24L01模块引脚介绍引脚名称引脚功能描述1Ce数字输入Rx或tx模式选择2Csn数字输入Spi片选信号3Sck数字输入Spi时钟4Mosi数字输入Spi数据输入脚5Miso数字输入Spi数据输出脚6Irq数字输入可屏蔽中断脚7Vdd电源电源+3V8Vss电源接地0v9Xc2模拟输出晶体振荡器2脚10Xc1模拟输入晶体振荡器1脚11Add_pa电源输出给rf的功率放大器提供+1.8v电源12Ant1天线天线接口113Ant2天线天线接口214Vss电源接地0v15Vdd电源电源+3V16Iref模拟输入参考电流17Vss电源接地0v18Vdd电源电源+3V19Dvdd电源输出去耦电路电源正极端20Vss电源接地0v3.2.4NRF24L01模块接线原理图图3-3NRF24L01模块接线原理图3.3STM32单片机最小应用系统3.3.1STM32单片机简介由ST(意法半导体)公司设计生产系列芯片由于价格合理,性能优越,功能强大等特点,广受行业内专业人士的好评和使用。STM32单片机是采用ARMV7构架,使用Cortex-M3内核,不仅支持Thumb-2指令集,而且拥有超多新特点。STM32系列芯片专注于追求卓越的性能、超低价格的成本、低微功率损耗的嵌入式场景的使用专门研制出来,STM32的优异性能具体体现在有如下方面:1.内核:stm32单片机内核工作频率可最高达到72mhz,用户还可以根据自己需要调整至12mhz、24mhz、36mhz、48mhz,官方数据测试同一秒内系统的处理能力达1.25DMIPS/MHz。2.存储器:根据芯片型号的不同,该系列单片机拥有高达32-512KB的Flash存储器和6-64KB的SRAM存储器可以根据用户开发需要选择合适容量的芯片。3.时钟、复位和电源管理:2.0-3.6V的电源供电,利用电压检测器监测电压的阀值,支持上电复位和掉电复位。电源管理支持低功耗、睡眠、停止等模式,拥有3种不同时钟来源驱动系统完成相应的功能4.丰富的外设:高达112个的快速I/O端口,这些I/O端口可以配置通用gpio、外部中断、端口重映射等功能,独特的dma用于数据的快速移动,12位高分辨率的ADC用于模拟转数字功能,12位高分辨率的dac用于数字转模拟功能,两个高级定时器、4个通用定时器和2个基本定时器,独立看门狗用于解决系统出现的问题,串行调试(SWD)和JTAG接口,方便的SDIO、iic、spi、fsmc、USB,can等等一系列功能,这些都是STM32单片机的强大之处。5.功耗:STM32编程开启每一种外设都需要开启相应时钟配置,就因其如此设计,免去了许多外设不用而开启所导致的功率的耗费。6.型号丰富:STM32单单是M3内核就拥有上百种型号,还开发了QFN、LQFP、BGA多种封装规格可供给消费者选择。同时STM32还推出了增强型系列,USB基本型系列,互补型系列,互联网型等超低功耗stm32芯片。3.3.2STM32单片机最小应用系统Stm32单片机最小系统就是让stm32单片机能够正常在微小的pcb上发挥它控制功能的组成部分,STM32单片机最小系统将其所有io引出,方便不同的开发者使用,不同的开发者可以任意选择自己所需要的外设进行项目设计,这样有效的控制pcb的面积,也为前期的编程调试带来极大的便利。3.4角度传感器模块电路3.4.1角度传感器模块概述本次毕业设计所用的传感器并不是什么如此高大上的东西,而是市面上最常见的电联电位器,该电位器内部的电阻体有两个固定端点,通过手动调节旋钮,从而改变两端任意一个固定端与接触点之间的阻值,本次设计正好需要这种功能,想法是通过控制台机械机构带动电位器手柄轴旋转,从而改变电位器的电阻值,从而获得不同的模数转化值,再经过单片机处理得到我们想要的角度信息,这样控制台任何一个角度的变化都能被单片机实时的捕抓到,而且电路比较简单,同时电路不易受到外界干扰,非常符合技术人员,研发,生产各方面的需求。3.4.2角度传感器模块特性电位器电气特性如下表所示:电气特性旋转角度300°±10°旋转力矩10~200gf.cm止档强度6.0KGF.CMMIN轴推拉强度8.0KGF.CM定位点位置Center、7/11/21/41Detent点位点力矩50~150gf.cm阻值范围10KΩ~1MΩ阻值公差±20%(morethan1MΩ加减30%)负载功率CurveB:0.05W、otherthanB:0.025W使用电压CurveB:50VDC、otherthanB:25VAC残留电阻R≥25KΩ0.1%max、oftotaltesistance250KΩ>R>10KΩ20Ωmax20KΩ≥R10KΩmax绝缘电阻Morethan100MΩatDC250V1minute耐电压1minuteAC250V同步误差-40~0dB≤±3dB旋转噪音Lessthan100mV旋转寿命10000cycles3.4.3角度传感器模块接线原理图图3-4角度传感器模块接线原理图3.5舵机模块3.5.1舵机模块概述舵机是一种位置伺服的驱动器,适宜于角度不断变化的控制系统,在机器人控制领域,工业机械臂上应用非常广泛,舵机主要由外壳,一个小型直流电机,一组减速齿轮,一块控制电路板和一个角度位置检测的电位器组成,工作原理为由直流减速电机提供马力,经减速齿轮减速后,通过输出轴对外提供高的力矩,伺服电动机的输出力矩与齿轮组减速比成正比,减速比越大,输出的力矩也就越大。舵机内嵌一个基准电路,用于产生20ms为周期,宽度为1.5ms的电平脉冲,通过比较器将外加信号与基准信号做对比,从而判断出方向和旋转角度范围。本设计主要针对舵机进行运动控制,通过一定的脉宽调制信号(pwm)进行舵机旋转角度的控制,我的想法是令stm32单片机的定时器配置成pwm输出功能,产生20ms为周期的高低电平脉冲,该脉冲高电平时间严格控制在0.5ms-2.5ms,因为这是舵机驱动信号所必需的,总共的时间间隔为2ms,脉冲高电平的宽度不同,舵机旋转的角度也不同,可以理解为高电平的宽度的变化率与舵机旋转的角度成正比,宽度越大角度越大,并且舵机并不只是能旋转以上的各种固定角度,它可以接收来自单片机发来的小于舵机本身量程的各种角度。3.5.2舵机模块特性本次设计所采用的数字舵机具有精度高,线性度好,驱动简单,响应速度快等特点,与模拟舵机最大的差别数字舵机具有位置锁定功能,单片机只要发送一次pwm脉冲,舵机输出角度就能够锁定,这是模拟舵机所不具备的,因此我决定选用RDS3115数字舵机作为本次毕业设计所用材料,本次采用的rds3115数字舵机特性参数如下rds3115特性参数速度0.16sec/60°@4.8V,0.14sec/60°@6.0V扭矩规格13.5kg/cm@4.8V,15kg/cm@6V,17kg/cm@7.2v中立点1500微秒脉冲宽度500-2500微秒工作电压4.8-7.2v重量60g最大功率2a电流20w尺寸40.0*20.0*40.5MM死区2微秒3.3.3舵机模块接线原理图图3-5舵机模块接线原理图3.6本章小结本章主要介绍本次设计所涉及的主控板硬件设计,需用到stm32高性能单片机,介绍其功能强大之处,以及介绍机械臂所用到的功能模块,组成结构、工作原理,工作特性和具体接线方式然后通过各个模块的整合完善,使机械臂能够良好运行,顺利完成自己需要的功能。

第四章同步机械臂的软件设计4.1主程序设计主程序的设计,主要是对各个单一模块的代码进行整合运用,然后通过调用各个模块功能函数,配合思想逻辑实现机械臂同步功能。具体主程序设计可按接收端和发送端来分。接收端主程序设计为:完成单片机标准接口功能的初始化,开启标准接口的时钟,接口定义为何种输入或输出模式,标准接口频率定义为多少赫兹,初始化为高或低电平,设置单片机嵌套向量中断控制器(nvic)分组模式,串口初始化并设定与电脑端数据连接特定的波特率,然后初始化定时器,包括设定定时器时钟,计数模式,自动重装载寄存器周期的值,是否开启定时器中断,配置定时器带有的pwm功能控制,开启定时器并使能pwm输出,无线模块配置为接收模式,启动无线通信,判断是否接收到信号,获取信号后对舵机pwm脉宽进行改动,使用对应的脉宽调制函数,将改动的数值放入脉宽调制函数中去,达到连续控制舵机的功能。接收端主程序框图4-1如下:开始开始延时、中断优先级优先级、串口调试、TIM5中断、无线模块初始化配置无线模块为接收模式Tim2和tim3的pwm输出初始化将接收数据存入数组并将数据写入改变pwm脉宽函数YTim5中断?接收状态值有效?NN下一次中断YY图4-1接收端主程序框图开始延时、中断优先级优先级、串口调试、TIM5中断、ADC初始化配置无线模块为发送模式开启ADC_dma功能将ad值存入数组并将数据打包写入指定无线发送缓冲区发送YTim5开始延时、中断优先级优先级、串口调试、TIM5中断、ADC初始化配置无线模块为发送模式开启ADC_dma功能将ad值存入数组并将数据打包写入指定无线发送缓冲区发送YTim5中断?发送状态值有效?NN下一次中断图4-2发送端主程序框4.2NRF24L01无线通信模块程序设计4.2.1NRF24L01无线通信模块初始化程序设计NRF24L01的初始化程序主要针对此模块的引脚做出相关的配置,因此比较简单操作。其中应该注意的是与传统的51单片机不同,端口配置必须使能相应的时钟,设置相关的输出或输入模式,通过位带操作将ce端口置零,用于保证模块输入数据的稳定性,让csn端口置成高电平,用于选择spi信号。Sck端口置成低电平保证数据线稳定,irq置成高电平,当有信号发生时,中断位输出会变成低电平,使程序进入中断,要使用NRF24L01模块,就必须遵循spi通信协议,因此我们需要配置软件spi,spi通常使用两个端口进行接收和发送,分别是mosi和miso,发送方模拟spi的发送方式,通过细读时序,发送方式可以类比于移位寄存器,将数据分成8位一位一位的发送,通过时钟线的高低电平进行数据有效判断,同时接收端数据也在随时变化,当8位数据接收完成,程序才返回一个接收数据,spi协议为发送的一个字节的数据,同时也会从从机当中返回一个字节的数据,因此当需要了解寄存器此时的工作状态时,通过写入对应模块数据手册的寄存器地址,硬件方可返回此时寄存器的状态值,从而能够知晓nrf24l01是否初始化正常,也能对数据传输成功与否做出判断。4.2.2NRF24L01的无线通信模块指令程序设计NRF24L01无线通信模块的指令程序是同过操控寄存器实现的,而寄存器地址意思生产厂家帮我们制定好的,开发者只需对他们进行宏定义命名即可,防止使用错误,造成控制指令失败,具体步骤为:要对NRF24L01发出指令,首先置低CSN,使能SPI传输,通过spi写入对应寄存器的基地址,基地址为特定的数值,然后进行指令的写入,读取数据阶段,先置低CSN,确认数据有效,然后也要对特定的寄存器基地址进行写入,在每完成一次读或写步骤后,获取寄存器的状态值通过函数返回,因此开发者们可通过查询状态值判读读写指令是否成功,通过用户手册可以查询nrf24l01用了哪些寄存器。4.2.3NRF24L01的模式设置程序设计此设计使用的是一对一的通讯模式,因此程序一端配置成接收模式,用以接收舵机控制信号量,达到控制目的,另一端应配置成发送模式,用以完成与接收端的数据对接。发送模式中首先将ce端口置低,完成发送端nrf24L01的片选,再写入发送寄存器命令,写入对应寄存器的基地址,写入发送模式的节点地址和验证地址宽度,然后写入接收通道基地址,对应接收模式的节点地址和验证地址宽度,验证地址用于收发功能时,进行双方的信息匹配,防止传送通道错误,然后设置指定的接收通道,使能数据通道的自动应答和接收地址,配置自动重发间隔时间,配置射频通道和发射增益,最后使能发送,到此发送模式设置完成。接收模式中与发送模式几乎完全一样,首先将ce端口置低,完成接收端nrf24L01的片选,再写入接收寄存器命令与地址,然后写入节点地址和验证地址宽度,这里的地址内容必须与发送方的地址内容完全一样,否则将接收不了发送方的数据,使能数据通道的自动应答和接收地址,配置自动重发间隔时间,配置射频通道和发射增益,最后使能发送即拉高ce端口线,到此接收模式设置完成。4.2.4NRF24L01的收发数据的处理程序发送端处理程序下需要将数据写入对应的的发送通道中,将对应数据地址作为传入参数放入函数中,选择写入发送模式的有效数据,即将自主定义的数组写入即可,最后返回寄存器的状态值,判断是否数据写入成功,然后判断中断位是否开启,当中端位开启后,数据开始发送,此时又会返回寄存器状态的值,用以判断数据是否发送有效,从而完成NRF24L01发送端数据程序处理。发送端数据程序处理流程如下图4-3所示。返回发送失败状态值返回发送失败状态值发送端数据程序处理开始选择有效发送数据寄存器地址,写入指定数据并规定数据宽度发送数据读取状态寄存器的值并保存等待发送完成中断结束Y发送状态值有效?YN返回发送成功状态值图4-3发送端数据程序处理流程图接收端处理程序下,将接收到数据都会存放在对应的的接收通道中,此时我们需要自主定义存储数组,作为存放接收数据的空间,通过写入对应接收通道有效数据的寄存器地址并返回了寄存器的状态值,此时便可将数据通道的数据值转存至自主定义的数组,完成一次数据接收,应当注意的是每次接收一次数据前,都要先进行对应的状态寄存器判断为有效值,才能完成一次数据接收,从而完成NRF24L01接收端数据程序处理。返回发送失败状态值返回发送失败状态值接收端数据程序处理开始选择有效接收数据寄存器地址,写入指定数据并规定数据宽度发送数据读取状态寄存器的值并保存等待接收完成中断结束Y接收状态值有效?YN读取数据返回接收成功状态值图4-3接收端数据程序处理流程图4.3角度传感数模转换程序4.3.1AD转换程序设计本次设计角度传感器使用的是电位器,为此采用单片机的模拟数字转换器(adc)进行捕获电位器输出电压的变化。Stm32单片机内部集成了带自校准功能12位高分辨率的ADC用于模拟转数字功能,可测量16个外部和2个内部模拟信号,通过软件编写,可以配置单次、连续、扫描等模式,采集数据以后用户可以选择触不触发中断,转换的结果可以可以选择左对齐或右对齐方式转存至16位数据寄存器当中。使用stm32的adc功能,少不了开启stm32的直接存储器存取(dma)功能,简单的讲dma就是一种特殊简单快捷的存储器,专门提供外设与存储器之间或存储器与存储器之间进行高速的数据传输,无需单片机控制的干预,数据也能通过dma快速移动,减轻单片机的资源负担,对于本次电压值的采集是非常有利的,通过dma通道,把自主定义的数组与单片机的模拟数字转换器16位数据寄存器建立高速数据传输通道,这样就能够通过串口打印实时监测到数据变化,有利于监测到运行中的错误问题。AD转换程序设计基本思路为:首先当然是adc输入引脚的配置为模拟输入引脚,开启直接存储器存取、模拟数字转换器时钟,复位直接存储器存取通道,防止上一次通道的数据遗留在数据通道中,配置缓冲区数据的规模大小,配置数据传输方向即从外设存至内存,指定内存基地址和数据格式大小,存储器地址选择递增方式,这里的内存为自主定义的数组,配置DMA为循环采集模式,然后配置外设基地址,指定外设基地址和数据格式大小,与内存的数据格式保持一致,使能DMA通道,再开启adc的连续转换模式并设置转换结果为左对齐或右对齐,设置adc转化的时钟频率和转换通道个数,校准并开启adc转化,完成AD转换程序的编写。与51单片机的adc功能完全不同,stm32赋予了adc更加强大功能,因此编写代码有一定的难度,但是仔细参考用户数据手册来编写,转化功能代码并不难搞定。4.3.2转化数值的滤波程序设计通过配置产生的代码能够使adc功能运行正常,获得大量的数据,由于电位器的扭动旋钮在扭动的过程中会产生数据波动,因此需要对较小的数据波动进行抵消,我们采用多次采集adc转换数据取均值的办法,如此一来能够消除一两次的数据波动,得到更加稳定的数据,然后将采集来的数据转换成舵机的控制信号量存储在指定的数组中,通过无线模块成功发送出去。转化数值的滤波程序如下:u16Get_adc(u8ch,u8times){u32value=0;u8t;for(t=0;t<times;t++){value+=ADC_ConvertedValue[ch];}returnvalue/times;}4.4舵机控制模块程序设计舵机程序控制就是PulseWidthModulation(脉冲宽度调制),简称PWM。本次设计需用到5路舵机,因此需要配置5路pwm信号,由stm32单片机的通用定时器触发pwm功能产生控制脉冲,因此只要学会一路pwm配置,多路配置也可以以此类推,舵机程序控制思路为:首先是定时器初始化,包括设定定时器时钟,计数模式,预分频器的值和自动重装载寄存器周期的值,这里是为了产生舵机能够识别周期为20ms的脉冲,软件设置定时器为脉冲宽度调制模式,脉冲宽度调制模式为比较输出,引脚输出电平初始化为低,引脚输出比较极性为高,调用定时器结构体初始化函数完成配置,最后开启输出,完成配置。Pwm输出配置相对简单,只要按照逻辑配置,并不难以搞定。4.5本章小结本章主要围绕同步机械臂所需的软件设计而展开,完成各种模块功能代码的程序设计,完成主程序、无线NRF24L01模块程序、角度传感数模转换程序、舵机控制模块程序设计,对硬件接口所需要的程序进行合理配置,在编写代码的过程中需了解相关的模块工作原理,了解与其配合使用的相关协议,还要操作大量的寄存器才能完成相应功能代码的编写,编写代码不是一日之功,需靠日积月累的勤加练习。

第五章同步机械臂调试及结果分析5.1硬件调试和软件调试结果分析硬件调试:硬件调试主要检查接收端和发送端双方电子模块的电气连接是否准确,所调试的焊接电路有无发生短路,缺连的电路缺陷情况,保证电路连接正常和运行正常,我们需要对同步机械臂的每

温馨提示

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

评论

0/150

提交评论