基于STM32的舵机控制系统毕业设计论文_第1页
基于STM32的舵机控制系统毕业设计论文_第2页
基于STM32的舵机控制系统毕业设计论文_第3页
基于STM32的舵机控制系统毕业设计论文_第4页
基于STM32的舵机控制系统毕业设计论文_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳航空航天大学北方科技学院毕业设计(论文)基于STM32的舵机控制系统i沈阳航空航天大学北方科技学院毕业设计(论文)摘要随着越来越多的高科技产品逐渐融入了日常生活中,舵机的控制系统发生了巨 大的变化。单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得舵机的控 制系统有了新的的研究方向与意义。 本文描述了一个由STM32微处理器、舵机、LCD 显示器、键盘等模块构成的,提供基于 STM32的PWM信号舵机的控制系统。该系 统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使 STM32产生周期性PWM信号,用此信号对舵机的速度及转角进行控制,并且通过 LCD显示出数

2、据。结果表明该系统具有结构简单、工作可靠、精度高等特点.矚慫润厲钐瘗睞枥庑赖。关键词:STM32微处理器;舵机系统;LCD显示;PWM信号#沈阳航空航天大学北方科技学院毕业设计(论文)AbstractAs well as the high-tech products gradually integrated into the daily life, servo con trol system has un derg one treme ndous cha ngesSCM and C Ian guage of the fron tier discipli nes such mature tech

3、 no logy and practica, Make steeri ng con trol system is a new research directi on and meanin gThis paper describes a STM32 microprocessors, steeri ng, LCD display and keyboard, etc. Based on the STM32 servo control system of PWM signal, This system uses STM32 microprocessor as the core, MDK in the

4、environment, accordi ng to the keyboard in put program ming, STM32 produce periodic PWM sig nal, with this signal to the velocity and Angle of steering gear control, and through the LCD display data. The features of the simple hardware, stable operation and high precision are incarn ated in the prop

5、osed system.聞創沟燴鐺險爱氇谴净。Keywords: STM32 microprocessors; Steering system; LCD display ; pulse width modulati on sig nal残骛楼諍锩瀨濟溆塹籟。ill沈阳航空航天大学北方科技学院毕业设计(论文)目录第1章 绪 论酽锕极額閉镇桧猪訣锥。1.1课题背景11.2课题的研究展望2课题任务及要求21.3课题内容及安排3第2章硬件设计42.1 STM32微处理单元 42.2舵机82.3 LCD显示器92.4时钟电路的制作10第3章软件设计123.1 STM32固件库简介 123.2软件的总体设

6、计133.3时钟初始化子程序143.4 I/O 口初始化子程序 173.5 PWM信号子程序 173.6 A/D转换初始化子程序 183.7 LCD显示子程序 19第4章系统调试214.1调试方案214.1.1硬件调试方案214.1.2软件调试方案214.2故障调试及解决方法224.3联调结果22结论26社会经济效益分析27参考文献28致谢29附录I 电路原理图 30附录U 程序清单35V沈阳航空航天大学北方科技学院毕业设计(论文)第1章绪论舵机(servo motor),又名伺服电机,主要是由外壳、电路板、马达、减速齿轮 和电位器构成。舵机主要适用于那些需要角度不断变化并可以保持的控制系统,

7、比如人形机器人的手臂和腿,车模和航模的方向控制。舵机的基本工作原理是发一个控 制信号给舵机,经电路板判断转动方向,再驱动马达开始转动,透过减速齿轮将动 力传至摆臂,同时由电位器检测送回讯号,判断是否已经到达指定位置。早期在模 型上使用最多,主要控制模型的舵面,所以俗称舵机。舵机接收一个简单的控制命 令就可以自动的转动到一个比较精确的角度,仿人型机器人就是舵机应用的最高境 界。随着工业的发展,舵机应用到那些需要角度不断变化并可以保持的控制系统, 目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用 得比较普遍。 彈贸摄尔霁毙攬砖卤庑。1.1课题背景舵机最早出现在航空模型中,飞

8、机的飞行姿态是通过调节发动机和各个控制舵 面来实现的。以简单的四通飞机来说,遥控器有四个通道,分别对应四个舵机,而 舵机又通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。舵机因此 得名:控制舵面的伺服电机。不仅在航模飞机中,在其他的模型运动中都可以看到 它的应用:船模上用来控制尾舵,车模中用来转向等等。目前在高档遥控玩具,如 航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍,由此可见, 凡是需要操作性动作时都可以用舵机来实现,随着舵机的应用越来越广泛,对舵机 的精确控制要求也越来越高,因此一个好的舵机控制系统使舵机的控制精确会达到 一个新的高度,让舵机达到理想的工作状态。

9、謀荞抟箧飆鐸怼类蒋薔。STM32系列32位闪存微控制器基于突破性的 ARM Cortex-M3内核,这是一款 专为嵌入式应用而开发的内核。STM32系列产品得益于Cortex-M3在架构上进行的 多项改进,包括提升性能的同时又提高了代码密度的 Thumb-2指令集,大幅度提高 的中断响应,而且所有新功能都同时具有业界最优的功耗水平。STM32F系列产品的目的是为MCU用户提供新的自由度。它提供了一个完整的32位产品系列,在结 合了高性能、低功耗和低电压特性的同时保持了高度的集成性能和简易的开发特性它的优点有以下几个方面:搭载 ARM公司最新的、具有先进架构的 Cortex-M3内 核,出色的实

10、时性能,优越的功效高级的、创新型外设,最大的集成性易于开发, 加速了面市时间整个产品系列具有脚到脚、外设和软件的高度兼容性,为您提供最 大的灵活性。 厦礴恳蹒骈時盡继價骚。1.2课题的研究展望舵机是随着生产发展而产生和发展的,而舵机的发展反过来又促进社会生产力 的不断提高。以前,舵机的发展过程是由诞生到在工业上初步应用、各种舵机建立 和发展。在进入计算机和自动化时代的今天,不仅对舵机提出了诸多性能良好、运 行可靠、单位容量的重量轻、体积小等方面越来越多的要求,而且随着自动控制系 统的计算装置的发展,在舵机转动的理论基础上,发展出多种高精度、快响应的控 制舵机。与此同时,电力电子学等学科的渗透使

11、舵机这一较为成熟的学科得到新的 发展。茕桢广鳓鯡选块网羈泪。当前科学技术突飞猛进,因此舵机正向多用途、多品种方向发展,向高精度和 高稳定的方向发展。在应用上,由于计算机技术迅速发展,将会出现由机器人工作 的无人工厂,以计算机作为这些工厂的“中枢神经”,使实现无人化成为可能。在 这种时代里,某些特种舵机必须具有快速响应、高精度运动、快速启动和停止等使 机器人比人的手脚更复杂而精巧的运动。理论上,在舵机中应用了控制技术,使舵 机具有更好的特性,因此舵机控制系统成为控制一些重要元件的重要的部分。鹅娅尽損鹌惨歷茏鴛賴。基于STM32的舵机控制系统会越来越多的应用在精度要求高的舵机系统中, 舵机的控制将

12、与其他的元件结合,功能越来越强大,使得舵机的作用也会越来越大。 籟丛妈羥为贍债蛏练淨。课题任务及要求本次设计的基于STM32的舵机控制系统是以STM32微处理器为核心,在MDK 的环境下进行C语言的编程,编写键盘、ADC、显示的子程序,设计键盘中的某个 按键,当按下该按键时,通过 STM32产生PWM信号,该信号为舵机控制信号, 控制多路舵机,实现可通过按键控制舵机的旋转角度和速度等有效准确的控制,并 将其状态通过TFT彩色LCD显示,毕设方案:預頌圣鉉儐歲龈讶骅籴。1、熟悉科研课题的环境及毕业设计的具体要求;2、阅读主要参考文献,收集有关资料;3、学习STM32处理器;4、学习舵机控制的技术

13、资料;5、学习基于固件库的程序开发方法;6、掌握MDK编程环境的C语言开发平台;7、完成论文。1.3课题内容及安排本文对基于STM32的舵机控制系统设计进行了详细的介绍,共分五章。第1章简要介绍了整个课题的研究背景、目的、意义及整个任务的要求安排;第2章是针对此次课题的任务进行方案论证,尤其重要的对STM32微处理器其32位的处理能力及内嵌的语音对本设计的影响进行详细的阐述;第3章具体介绍了整个控制系统的硬件设计,包括键盘输入模块电路,转接板电路,显示电路的设计;第4章阐述了舵机控制系统的软件设计,包括STM32初始化子程序,数据处理子程序,显示子程序的设计。第5章是针对硬件调试、软件调试和整

14、机连调的结果进行了具体 的分析和说明。渗釤呛俨匀谔鱉调硯錦。17第2章硬件设计硬件是整个基于STM32技术的舵机控制系统设计的基础,怎样选择合适的器 件来组成整个硬件电路十分关键,也是本章叙述的重点。除此之外,以下部分还会 分别阐述本设计运用到的各个模块的特性和原理,以及它们所能实现的功能。铙誅卧泻噦圣骋贶頂廡。2.1 STM32微处理单元本设计的舵机控制系统需要 STM32处理器,STM32微处理器完成键盘输入量 对舵机的控制,并且通过 LCD显示舵机的转动角度,作为舵机的主控制器,实现 对舵机稳定和精确的控制。擁締凤袜备訊顎轮烂蔷。作为微型移动机器人上的主控制器,需要处理的数据和事件比较多

15、,因此需要 一款功能强大的处理器一一STM32这款32位的微处理器正是最佳的选择。下面将 着重介绍STM32的强大的功能以及本设计所用到的 STM32中的SPI通讯的部分的 工作原理。贓熱俣阃歲匱阊邺镓騷。STM32的突出的功能包括以下几点:1 性能强劲。在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。2 功耗低。延长了电池的寿命一一这简直就是便携式设备的命门(如无线网络 应用)。3实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断, 而且响应中断所需的周期数是确定的。坛搏乡囂忏蒌鍥铃氈淚。4 代码密度得到很大改善。一方面力挺大型应用程序,另一方面为低成本设计 而省吃俭

16、用。5 使用更方便。现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。蜡變黲癟報伥铉锚鈰赘。6.低成本的整体解决方案。让32位系统比和8位/16位的还便宜,低端的Cortex M3单片机甚至还卖不到1美元。買鯛鴯譖昙膚遙闫撷凄。7.遍地开花的优秀开发工具。免费的,便宜的,全能的,要什么有什么。正是基于以上这么多的优点,使得 STM32成为本设计中微型移动机器人上的主处理器的最佳选择。下图 2.1为STM32的系统结构图綾镝鯛駕櫬鹕踪韦辚糴。ICodeFlashI觴h接口CodeCort&XM3SRAMDMA1FSMCSDIO

17、桥横2nDM宣埔求DMA苗求如&和时钟 揑制(RCQSystemDMA2ADC1曲训gADC2GPIODA0C3GPlOEUSAFTT1GPIOFSPI1GPIOGTIM1EX7ITIM8AFIOGPIOAGPlOBAPB2DAC SPI3/12SPWR SPI2/I2SBKPIWDGb心N WWDCUSBRTCI2C2TIM 了1201TIM6UARTSTIM5UARTT4TIM4USART3TIM3USART2TIM2*PB1Hi 14R0&G图2.1 STM32系统结构图高级控制定时器由一个16位的自动装载计数器组成,它由一个可编程预分频器 驱动。它适合多种用途,包含测量输入信号的脉冲宽

18、度(输入捕获),或者产生输出波 形(输出比较,PWM,嵌入死区时间的互补PWM)。使用定时器预分频器和RCC 时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。高级控制(TIM1)和通用(TIMx)定时器是完全独立的,它们不共享任何资源驅踬髏彦浃绥譎饴憂锦。TIM1定时器的功能包括:1. 16位上,下,上/下自动装载计数器2. 16位可编程预分频器,计数器时钟频率的分频系数为165535之间的任意数值3. 4个独立通道:输入捕获,输出比较,PWM生成(边缘或中间对齐模式),单 脉冲模式输出,死区时间可编程的互补输出 猫虿驢绘燈鮒诛髅貺庑。4使用外部信号控制定时器和定时器互

19、连的同步电路5.在指定数目的计数器周期之后更新定时器寄存器6 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态7 如下事件发生时产生中断/DMA :(1) 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外 部触发)(2)触发事件(计数器启动,停止,初始化或者由内部/外部触发计数)(3)输入捕获一输出比较一刹车信号输入高级定时器TIM的框图如下,KFTlMlCLKfromRCC InteftwlClock|CKJMT)Tft:TRI3III1FPIfTnTIJITR2;俪 TWWR3IETRPTGIReseL Enabe. JpiDcwn.CcxjMTRGOto e

20、ther:EteCelectcrTr,l1_CH2 QTI2TlHr.CH3DTIM1_CH4 QTI34i啊伽&EiflDvttctorTI4BRKhpd F 叭EtPoliSfilecbcnwettjcr center沁伽 irlpOEMitCK PSCPSC 1CK.CNT.LCNTrPies:!# COUNTERCCilMil】脚h惮5耐眾1阳也片VCapjcnparalflsirH1FP1WFP2 :tfiDfbciREOlXpU!I -CG regursfTl?FP1LT12FP2k-TES:j rprlC2PS uqTRC InpulFlwr AE:?eCetKtEr2Lkhia

21、T13FP4 tkc-mJTUFP3 忧忙4 RrtKdfrdock tiwe tfun fren dock emw MCSS(Qod Siaaty sysmr,V DTG Capn/tC鬥辭1R詡卿l,1DUtpl脚皿Qi卩11ouqut:3TtCC4IZIC4PS 塔CapConp 4 R 唧號图22 定时器TIM的框图CC41IM1 CH1NIM OQIV H:-IM1 CH3NWMl :H42.2舵机图2.3舵机实物图舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以 保持的控制系统。舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分, 棕色为接地线,红色为电源正极

22、线,橙色为信号线。电源线和地线用于提供舵机内 部的直流电机和控制线路所需的能源.电压通常介于46V,一般取5V锹籁饗迳琐筆襖鸥娅薔。图2.4舵机的接线图其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电 压。它内部有一个基准电路,产生周期为 20ms,宽度为1.5ms的基准信号,将获得 的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出 到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电 位器旋转,使得电压差为0,电机停止转动。舵机的控制一般需要一个20ms左右的 时基脉冲,该脉冲的高电平部分一般为 0.5ms2.5ms范围内的角度

23、控制脉冲部分。 以180度角度伺服为例,那么对应的控制关系是这样的:構氽頑黉碩饨荠龈话骛。0.5ms90 度;1.0ms 45 度;1.5ms0度;2.0ms45度;2.5ms90度;舵机的转动的角度是通过调节PWM (脉冲宽度调制)信号的占空比来实现的, 标准PWM (脉冲宽度调制)信号的周期固定为20ms( 50Hz),理论上脉宽分布应在 1ms到2ms之间,但是,事实上脉宽可由0.5ms到2.5ms之间,脉宽和舵机的转角0 180相对应。有一点值得注意的地方,由于舵机牌子不同,对于同一信号,不同牌 子的舵机旋转的角度也会有所不同。輒峄陽檉簖疖網儂號泶。控制说明:舵机的响应时间对于控制非常

24、重要,一方面可以通过修改PWM周期获得。另一方面也可以通过机械方式,利用舵机的输出转距余量,将角度进行放大, 加快舵机响应速度;尧侧閏繭絳闕绚勵蜆贅。2.3 LCD显示器LCD显示器是本课设的主要器件,当键盘的输入量经过STM32微处理器进行数据的处理,由模拟量转换成数据量,传给 LCD进行显示数据。LCD模块的连接有两 种方法:直接控制和间接控制。直接控制实际指的是LCD模块的总线接口直接与MCU 端口连接,然后MCU通过程序控制端口来模拟LCD的总线时序来完成对其的控制操 作;而间接控制指的是MCU本身就有外部总线拉出,与LCD的总线接口对应的连接 上,程序中直接操作总线以控制 LCD。考

25、虑到电路设计的简洁性及灵活性,本系统 采用PWM信号点亮LCD的方式,硬件电路图如下,识饒鎂錕缢灩筧嚌俨淒。VCCCPU =IDOiFCP1510CP17 FB-1M1608-600 S lOOnF L gQ lcd.rst LCD_RSLCDjW LCD RD LD7 LC-f LC42. x3. 4PLLHslPLLGIKHSESYICLKf 棗大72MHzCSSPLLXTPREUSB1,15USBCLK汕汨朗】I2&3CLK心 iF外应时种峻能帥畑.SDIQ外询时弊宦能一灿叫fsmcHCLK亍AHB孤业、廉也辛Cort懿乐議时神 FCLKCoria由运打吋钟AHB汝井瓠胖1,2Pr5l2

26、APB14.8.16136MHz ry PCLK1_ * 坯AP日讲孔SntAPB1:(!十锁来熬N 则城串乔哎否MtifxlTIUXCLK *OSC OUTOSC IN416 MH?HSEOSC-/2 28APB2砂器n,2.te, ie最柯加阻、PCLK2 *_APB2it 外誑时钟植能匸UtI佈CLK #外股时种快临OSC32 INDSC32 OUTLSE OSC3?76B kHzLSERTCCLK* RTCADC住 4. 6, 8卡 ADC1.2或3AOCCLK 嚴川JMHtHIGSEL1:UHCLK?Lil HC40 KHZIVJDGCLKMl用输川-2 - PLLCLKHSESYS

27、CLKHSIHSE-高谢偉时神依寸 阀高建内詡时樽喘寸 LSI. O内部时钟仁弓 LSEn低速外杯时VM訊;图3.2 STM32时钟树沈阳航空航天大学北方科技学院毕业设计(论文)本设计所需的STM32的外设包括TIM2、TIM3和GPIOA 口,所以也要对外设 的时钟进行设置。由于在APB1和APB2系统总线外设上,所以要对APB1和APB2 总线的时钟频率进行设置。经过APB1与APB2的分频,将SYSCLK转换成可以进 行外设及TIMX可以接收的系统时钟。在时钟初始化子程序中先对系统时钟的模式 进行选择,即将系统时钟设置为 HSE模式(外部时钟模式),然后设置 AHB时钟 等于系统时钟,且

28、设置了低速或高速AHB,最后使能的时钟,时钟初始化子程序的 流程图如下图 3.3。濫驂膽閉驟羥闈詔寢賻。銚銻縵 哜鳗鸿锓謎諏涼。图3.3时钟初始化流程图3.4 I/O 口初始化子程序每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL , GPIOx_CRH),两个32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR),一个 32位置位/复位寄存器 (GPIOx_BSRR),个 16位复位寄存器(GPIOx_BRR)和一个 32位锁定寄存器 (GPIOx_LCKR)。每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位 字被访问。GPIOx_BSRR和GPIOx_B

29、RR寄存器允许对任何 GPIO寄存器的读/更改 的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推 挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。输入数据寄 存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。本设计使用的 STM32的TIM _Channel_1,其接口对应的是 STM32上的PA6 口。设计中PA6的通 讯方式是推挽式输出方式,设置的最高输出速率为50MHz。挤貼綬电麥结鈺贖哓类。3.5PWM信号子程序脉冲宽度调制(PWM )

30、是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编 码。脉冲宽度调制模式可以产生一个由 TIM3_ARR寄存器确定频率、由TIM3_CCRx 寄存器确定占空比的信号。在 TIM3_CCMRx寄存器中的OCxM位写入110确定 PWM模式1,能够独立地设置OC1输出通道产生一路PWM。通过设置 TIM3_CounterMode设置其为向上计数,通过设置TIM3_CCMRx寄存器的OC1_PE 位使能相应的预装载寄存器,最后还要设置TIM3_CR1寄存器的ARPE位使能自动 重装载的预装载寄存器。因为仅当发生一个更新事件的时候,预

31、装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIM3_EGR寄存 器中的UG位来初始化所有的寄存器。OCx的极性可以通过软件在 TIMx_CCER寄 存器中的CCxP位设置,它可以设置为高电平有效或低电平有效。OCx的输出使能通过(TIMx_CCER 和 TIMx_BDTR 寄存器中)CCxE、CCxNE、MOE、OSSI 和 OSSR 位的组合控制。在PWM模式1下,TIMx_CNT和TIMx_CCRx始终在进行比较,依据计数器的计数方向以确定是否符合TIMx_CCR奚TIMx_CNT 或者TIMx_CNTC TIMx_CCRx 。 根据TIMx_CR1寄存器中C

32、MS位的状态,定时器能够 产生边沿对齐的 PWM信号或中央对齐的 PWM信号。 赔荊紳谘侖驟辽輩袜錈。3.6 A/D转换初始化子程序12位ADC是一种逐次逼近型模拟数字转换器。它有 18个通道,可测量16个 外部和2个内部信号源,可以把转换分成两组:规则的和注入的。在任意多个通道 上以任意顺序进行的一系列转换构成成组转换,各通道的A/D转换可以单次、连续、扫描或间断模式执行,ADC的结果可以左对齐或右对齐方式存储在 16位数据寄存 器中。在开始ADC转换和14个时钟周期后,EOC标志被设置,16位ADC数据寄 存器包含转换的结果。时序图如下图,塤礙籟馐决穩賽釙冊庫。在ADC初始化设置时,首先开

33、启 AHB外设时钟使能寄存器 DMA1时钟,定 义转换数据量,设置 DMA的通道1的初始化,独立地选择通道的采样时间,在通 道1设置看门狗,开启ADC1并启动转换,应用连续转换模式,使用 DMA模式, 接着便开始转换规则通道,完成由模拟量到数据量的转变。其结构图如下,裊樣祕廬廂颤谚鍘芈蔺。21沈阳航空航天大学北方科技学院毕业设计(论文)图3.5 ADC转换3.7 LCD显示子程序液晶显示模块的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有 65( 8 Page x 8 bit+1 )X 132个位的显示RAM区。而 显示器的显示点阵大小为 64X128点,所

34、以实际上在液晶显示模块中有用的显示RAM区为64 X 128个位;按byte为单位划分,共分为8个Page,每个Page为8行,而每一 行为128个位(即128列)。驱动控制芯片的显示RA区每个byte的数据对应屏上的点 的排列方式为:纵向排列,低位在上高位在下。如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAh区中的某一个位进行置1操作;所以就要确定该点 所处的行地址、列地址。从图中可以看出,MZL02-12864液晶显示模组的行地址实际上就是Page的信息,每一个Page应有8行;而列地址则表示该点的横坐标,在屏上为 从左到右排列,Page中的一个Byte对应的是一列(8行

35、,即8个点),达128列,根据 这样的关系在程序中控制LCD显示屏的显示。仓嫗盤紲嘱珑詁鍬齊驚。刊LCD际器履向业标曲左至右)X01fll31251261270bitObitObitObitObitObitObitO1bitlbitlbitlbitlbitlbitlbitlPaged8bit2bit2bit2bit2bit2h i * bit2bit?bit2刖6bit6bit6bit6bit6bit6bitebit67bit?b-Lt-bit7bit?bit7bit7bit7A8bitObitObitObitObitObitObitO1 1皿Pagel8bit9bitlbitlbitlbit

36、lbitlbitlbitl数卅15bit?bit;bit?bit7bit?bit?bit? 4 * bit2bit?bit263bit3bit3bit3bit3I 4Baid iibbit3bitsbits图3.6显示RAI区与显示屏点映射图37第4章系统调试4.1调试方案本设计所使用的硬件平台包括 STM32、ADC转换器和LCD显示器,将STM32、 ADC转换器和LCD显示器共同焊接到PCB板上,所以实际的调试过程中主要是将 程序下载到STM32中进行联调。 绽萬璉轆娛閬蛏鬮绾瀧。4.1.1硬件调试方案本设计所使用的硬件平台已经基本搭好,由于STM32的集成度都比较高,所以本设计所用到的

37、元器件比较少,电路的链接也比较简单。STM32与舵机之间只有 三条连接线,即舵机的电源线、地线和信号线。硬件部分的调试系统主要是采用逐 块调试法。先对整个电路板的 STM32处理器进行检测,当确信焊接无误后,安装 其它元器件进行调试。第一步:检测 LCD显示器是否正常工作。第二步:对 ADC 转换器进行测试、调试。第三步:对舵机进行测试。当这些工作都完毕后,才能开 始整机连调。骁顾燁鶚巯瀆蕪領鲡赙。4.1.2软件调试方案软件的调试和硬件的调试都是独立进行的,软件部分包括时钟初始化子程序、 ADC转换子程序、PWM信号子程序和LCD显示子程序。软件调试中需要用到的 测量信号可以用仿真实验台上的电

38、压信号进行模拟,整个测试过程可以通过 keiluvision2仿真软件进行模拟仿真调试。瑣钋濺暧惲锟缟馭篩凉。完成程序的设计和硬件的搭接之后要能确保软件调试和硬件调试各自都正确 无误,接着再对硬、软件进行联合调试。在调试中继续找出单独调试中无法显现的 故障,反复进行改进软件、修改硬件设计的工作,直到所设计的舵机控制系统能够 进行正确仿真后,才能进行最后的软件固化与整机的组装工作。鎦诗涇艳损楼紲鯗餳類。4.2故障调试及解决方法一、 软件编写完成后进行软件仿真时,输出的PWM信号出现了周期的错误。原因分析与解决方法:PWM信号是由STM32微处理器的定时器产生,通过更 改定时器的初始设置,更改 T

39、IM_Period设置了一个更新事件装入活动的自动重装 载寄存器周期的值,更改TIM_Prescaler设置来改变TIM时钟频率除数的预分频值, 通过设置IM_CCR寄存器确定占空比的信号,这样就可以得到正确的PWM信号。栉缏歐锄棗鈕种鵑瑶锬。二、程序仿真正确,将程序下载到 STM32处理器中时,LCD显示的数据不稳 定。原因分析与解决方法:既然能够显示数据,说明硬件LCD连接是正确的。可知,还是在软件编写时出现了问题,便从LCD显示程序一步步检查,最后发现定义数据的类型出现了错误,改正后,显示出稳定的舵机转动的角度。辔烨棟剛殓攬瑤丽阄应。三、为什么舵机会老发出吱吱的响声?原因分析:舵机老发出

40、吱吱的来回定位调整响声,是由于有的舵机无滞环调节 功能,控制死区范围调得小,只要输入信号和反馈信号老是波动,它们的差值超出 控制死区,舵机就发出信号驱动电机。另没有滞环调节功能,如果舵机齿轮组机械 精度差,齿虚位大,带动反馈电位器的旋转步,步范围就已超出控制死区范围,那 舵机必将调整不停,吱吱不停。峴扬爛滾澗辐滠兴渙藺。四、舵机为何抖舵?控制死区敏感,输入信号和反馈信号因各种原因波动,差值超出范围,舵臂动,所以抖舵。4.3联调结果总体来说,软件还是比较容易实现的,但由于不联系硬件,其中的某些错误是 看不出来的,所以重要的部分还是软硬件联调。詩叁撻訥烬忧毀厉鋨骜。系统软、硬件的联调是一个不断完善

41、的过程,常常需要反复多次修改补充才能调试出一个性能 良好的系统。在联调过程中我们经常遇到故障,这时需要对系统进行检查,万用表是使用最多 的检查工具。在系统联调时不排除某个元件被烧坏或者不工作。在软件和硬件联合调试后,系 统上电后进行实物演示,演示结果证明,该设计基本达到了预期的设计目的,键盘能够控制舵 机的角度和速度,并通过LCD显示舵机的角度和速度。但由于本人水平有限,设计的舵机控制 系统难免结构有些简单、设计不尽合理,实现起来也不是十分的准确。但能够实现毕业设计课题所要求的功能。软件仿真时产生的 PWM信号如图4.1所示;图4.2为舵机转动图;图4.3LCD显示的舵机转动的角度;图4.4基

42、于STM32的舵机控制系统图。则鯤愜韋瘓賈晖园栋泷。血甜毗tim=| 胃華伽卫iidfUlka曲 LogkAiulyief141 Time NTine:Rat曙SidZoomMe-隔 &3Wt ,|DaiGWJCn 11S3K1S SCCCtttm 2 5OTC略lh恤詔 up Wx/MbI駄1 H呛IOsNIII图4.1 PWM信号图4.2舵机的转动图4.3舵机转角的显示图4.4 基于STM32的舵机控制系统结论舵机是自动化专业的前沿技术,现代社会,在航空航天、工业生产和平常生活 等领域中应用已非常广泛。不仅在航模飞机中,在其他的模型运动中都可以看到它 的应用:船模上用来控制尾舵,车模中用来

43、转向等等。目前在高档遥控玩具,如航 模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍,由此可见,凡 是需要操作性动作时都可以用舵机来实现,随着舵机的应用越来越广泛,对舵机的 精确控制要求也越来越高,因此研究舵机的精确控制,不但具有理论意义,而且有 较大的实用价值。本文设计的基于 STM32的舵机控制系统就是在这种背景基础上 设计的。本设计是在各种仪器连接使用的基础上设计而成的,只有充分了解有关 STM32微处理器以及各部分之间的关系才能达到要求。胀鏝彈奥秘孫戶孪钇賻。整个课题的开发过程主要包括了硬件电路设计和软件程序的编写两个部分,主 要任务是开发一个以STM32为核心的舵机控制系统

44、,通过在 MDK的环境下编程, 由STM32产生PWM信号,可实现键盘对舵机角度和速度的控制,能够通过LCD显示舵机转动的角度和速度。通过整机联调验证了系统的可行性,能满足设计要求, 达到了设计的指标。硬件部分是利用STM32体积小、易扩展、集成度高、可靠性高、功耗低、中断处理能力强等特点。软件部分采用模块化设计,这些模块包括主 程序、ADC转换子程序、PWM信号子程序和LCD显示子程序。软件调试中需要 用到的测量信号可以用仿真实验台上的电压信号进行模拟,整个测试过程可以通过 keiluvision2仿真软件进行模拟仿真,进行调试,以确保程序的正确性。鳃躋峽祷紉诵帮废掃減。通过以上论述可以发现

45、,整个设计的实用性较高,使用的硬件都是比较能够方 便取得的,但还是有很多缺陷,如显示的角度不是十分准确以及舵机的转角不精确 等问题,希望以后还能有所改进,趋于完美。 稟虛嬪赈维哜妝扩踴粜。社会经济效益分析本文所设计的基于STM32的舵机控制系统的系统体积小、功耗低、集成度高,接口电路比较简单等优点,能够较容易的嵌入到其他的控制的系统中。32位处理器STM32处理具有处理速度快、存储容量大、外设接口丰富,能够及时准确的处理采 集到的加速度数据,另外 MzT24彩色TFT模块功能强大,能够显示多种测量环境的 舵机数据。陽簍埡鮭罷規呜旧岿錟。软件采用了C语言编写和模块化设计思想,程序可读性强,便于系统的改进和 升级,灵活性和适应性强。该测试系统可用于工程技术人员对控制系统的检修,也 可用于采购人员对器件的技术性能检测。 沩氣嘮戇苌鑿鑿槠谔應。参考文献1 李宁基于MDK的STM32的开发应用M.北京:北京航空航天大学出版社, 20082 孙雄勇.VISUALC+实用教程M.北京:中国铁道出版社,20043 Joseph Yiu著.ARM Cortex-

温馨提示

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

评论

0/150

提交评论