基于STM32单片机的智能机器人小球控制系统设计毕业论文
2020-04-09 15:41:52
摘 要
针对一种机器人小球,设计了基于STM32的控制系统。论文主要工作有:设计了控制系统的硬件电路,主要包括电源电路、复位电路、调试接口、电机驱动电路的设计。设计了控制系统软件,主要包括连接手机程序,接收手机数据程序和控制电机动作程序的下位机程序,以及移动控制终端的app程序。进一步,搭建了硬件电路的,实现软硬件的联合调试。结果表明:所设计的系统能顺利完成控制任务,达到了预期效果。
关键词:机器人小球,控制系统,STM32
Abstract
For a robotic ball, a control system based on STM32 is designed. The main work of the dissertation includes: designing the hardware circuit of the control system, including the design of power supply circuit, reset circuit, debug interface and motor drive circuit. The control system software is designed, which mainly includes connecting the mobile phone program, receiving the mobile phone data program and the lower machine program controlling the motor operation program, and the mobile control terminal app program. Further, a hardware circuit is built to implement joint debugging of hardware and software. The results show that the designed system can successfully complete the control task and achieve the expected results.
Keywords: Robot ball, control system, STM32
目录
第1章 绪论 1
1.1研究背景及意义 1
1.2国内外研究现状 1
1.2.1国内研究现状 1
1.2.2国外研究现状 2
1.3主要设计工作及章节安排 3
第2章 系统总体设计 5
2.1 系统设计要求 5
2.2 系统总体方案 5
第3章 系统硬件电路设计 7
3.1主控芯片及其外围电路设计 7
3.1.1 STM32最小系统设计 7
3.1.2系统供电电路设计 8
3.2 传感器模块 9
3.2.1 图像传感器模块 9
3.2.2 陀螺仪 10
3.3 电机控制模块 11
3.4 蓝牙通信模块 12
3.5 本章小结 13
第4章 系统程序设计 14
4.1 总体方案设计 14
4.2下位机程序设计 15
4.2.1 HAL库初始化 15
4.2.2 时钟初始化 15
4.2.3 串口3初始化 16
4.2.4 定时器PWM输出初始化 17
4.2.5 蓝牙模块初始化 17
4.2.6 蓝牙数据处理函数 18
4.2.7 运动控制函数 18
4.3 上位机程序设计 19
4.3.1蓝牙控制实现 20
4.4 本章小结 20
第5章 样机制备及实验 21
5.1 硬件制备 21
5.1.1 硬件开发环境 21
5.1.2 PCB设计 21
5.1.3 实物焊接 24
5.2 软件开发 24
5.2.1 下位机开发 24
5.2.2 下位机开发 25
5.3 实物调试 28
5.3.1 红外避障功能测试 28
5.3.2 蓝牙通信测试 29
5.3.3 app测试 30
第6章 总结与展望 31
6.1 总结 31
6.2展望 31
参考文献 32
致 谢 34
第1章 绪论
1.1研究背景及意义
机器人是具有一些类似人的功能的机械电子装置或自动化装置,机器人能根据人们的编程完成一定的任务。
自20世纪50年代工业机器人问世以来,人们从未停止对机器人的研究,取得了许多研究成果。移动机器人是机器人学的重要组成部分,移动机器人的研究始于20世纪60年代末期,传统的固定式加工,装配,检测等机器人的实用化,提高了产品的质量,但固定式的机器人并不能满足实际生产需要,于是,人们开始了对移动机器人的研究。20世纪80年代后期,移动机器人技术的研究被许多国家重视,他们投入大量资金,旨在应用人工智能技术,实现机器人系统的自主规划,控制[1]。随着人们在机器人研究方面的经验积累和信息、通信、控制等技术方面的进步,机器人领域相关研究不断取得新的突破。
移动机器人在军事,工业,农业,等方面有重要应用。军事中,军用移动机器人由于不知疲倦,感觉不到疼痛等优点,能在恶劣条件下执行作战任务,由于移动机器人的优点,目前很多国家都很重视军用移动人的研发,移动机器人因其巨大的军事潜力和超强的战斗素质不容任何国家忽略[2]。工业中,移动机器人由于其高效,可按实际要求编程等优点,很好的适应了工业现场环境复杂多变,工作任务多样的特点,继柔性制造,将在未来的工业活动中续写新篇章[3]。农业中,随着进城务工人员增多,农村劳动力减少,出现农田资源的闲置,加速农用移动机器人的研发及应用是智慧农业的一种重要的解决方案[4]。
1.2国内外研究现状
1.2.1国内研究现状
我国移动机器人的研究起步较晚,但国家对其的重视不断增加,越来越多的人力,物力被投入进来。我国从20世纪70年代开始对机器人的研究, 1972年,中国科学院沈阳自动化研究所开始了对机器人的研究。经过“七五”“八五”等计划后,机器人研究取得了一定的进步[5]。在国家863计划和国防科工委的资助下,清华大学于1988年开始研制清华智能车(THMR)系列移动机器人系统。该系统涉及传感器信息的获取与处理、路径规划、多行为控制、通信等多学科领域[6]。
近年来,我国的移动机器人研究也取得了许多新的进展。2013年12月14日,玉兔号月球探测车被成功送往月球,它是我国发射的第一台月球探测车。玉兔号能在地面遥操作控制中心的控制下完成指定任务,遥操作关键技术主要包括以下4方面内容: 巡视器的导航定位、巡视器的月面地形重构、巡视器的行驶路径规划和巡视器机械臂探测等技术[7-8]。
图1.1“玉兔号”月球车
移动机器人除了在航空航天中有很多应用外,目前有许多移动机器人被用在安防领域,目前常用警用的机器人有侦察机器人、排爆机器人、攻击机器人等 [9]。
图1.2 排爆机器人
1.2.2国外研究现状
1966年美国斯坦福研究院的Nils等人,研制出了第一台自主移动机器人SHAKEY,它是将人工智能应用到移动机器人的成功案例,它装备了摄像机,避障传感器,无线通讯系统等,是移动机器人界非常成功的案例[10]。
图1.3 移动机器人SHAKEY
20世纪80年代,美国卡内基·梅隆大学研制了NavLab-1系统,装配了摄像机、激光雷达、陀螺、GPS等,可完成图像处理,图像理解,路径规划等任务。使用神经网络控制器ALVINN控制车体,最高速度可达88km/h[11-12]。
随着人们对移动机器人的认识的加深,也出现了许多新的结构的机器人,例如微型机器人,仿生机器人等。机器人制造商波士顿动力公司发布的Atlas和SpotMini分别是两足仿生机器人和四足仿生机器人。在波士顿发布的最新视频中我们可以看到人形机器人Atlas可以在到处是斜坡的草地上慢跑,可以在一个点定下,而且能完成后空翻等高难度动作。SpotMini机器人可以实现在楼梯上自由运动,使用摄像头避开障碍,并能绘制经过的路径的地图。
1.3主要设计工作及章节安排
本课题设计了基于stm32单片机的球式移动机器人控制系统,主要包括控制系统方案设计、控制系统硬件设计、软件程序的设计与调试验证。论文内容安排如下:
第一章,绪论。主要介绍机器人相关的背景知识,国内外机器人发展状况以及该课题的研究意义及研究内容。
第二章,系统总体设计。介绍系统的功能需求与设计思路,通过查阅机器人控制系统相关文献,确定了总设计方案,最后对开发环境进行了说明。
第三章,硬件电路设计。对本次设计所用到的模块进行了介绍,然后对硬件电路的实现,即绘制原理图和PCB电路板进行介绍。
第四章,软件设计。软件部分包括手机上位机和下位机。下位机部分首先介绍程序的总体流程,并对相关初始化程序进行了阐述,其次介绍实现蓝牙控制的程序原理。上位机部分首先介绍app开发环境,之后介绍蓝牙通信实现原理。
第五章,系统调试与分析。介绍了调试过程和实物运行效果。
第六章,总结与展望。对本次设计做总结,提出值得改进的地方。
第2章 系统总体设计
2.1 系统设计要求
本次设计中,具体要求:
- 针对已有的机器人小球结构,开发控制系统的硬件电路,要求包含电源模块,电机调速控制模块,视觉模块等。
- 开发相应模块的驱动程序
- 实现对小球机器人的无线控制。
2.2 系统总体方案
系统拟实现功能:通过手机app实现对小球机器人运动速度和方向的控制,同时配备传感器获取小球运行时的相关信息。
根据机器人小球的控制目标对系统进行设计,可将控制系统分为五个模块:处理器模块,电源模块,传感器模块,电机模块,通信模块和上位机控制模块。控制系统总体方案框图如图2.1所示。
图2.1 控制系统总体方案图
传感器模块是机器人感知外界信息的重要元件,传感器模块负责收集自身和环境的基础数据信息,然后将信息通过不同的处理方法提取出有意义的信息,最终实现机器人的运动控制。本次设计用到的传感器有用于获取自身位置的陀螺仪、用于避障的红外传感器和用于获取图像数据的图像传感器。
电机模块是本次设计的执行机构,处理器发出控制信号控制两个直流电机正反转,从而实现对机器人运动速度和运动方向的控制。
处理器模块是控制系统的核心,处理传感器数据与控制信号,确定出运行方案。
电源模块负责向处理器,传感器和电机供电,由于上述三者的工作电压不同,所以在选择好合适的电池后,要进行升降压处理,需要用到相应的升降压模块。
通信模块用于建立上位机与下位机之间的连接,本次设计所选用的无线通信模块为蓝牙模块。
上位机负责发出控制信号,控制机器人的运行,本次设计采用手机app作为上位机程序。
第3章 系统硬件电路设计
3.1主控芯片及其外围电路设计
本文设计的控制系统以机器人小球为研究对象,要开发用于物体跟踪的相关程序,需要用到图像处理的功能,研究者通常通过DSP和FPGA来完成工作。但FPGA和DSP价格昂贵,性能远高于本课题控制要求,所以弃之。单片机性能良好,功耗低,运算速度快,成本低,作为一款优秀的处理器,是本次设计的首选。
3.1.1 STM32最小系统设计
目前市场上主流的微控制器有51单片机,PIC单片机,AVR单片机等,这些单片机构造复杂,外设少,处理能力有限,而STM32则具有外设丰富,使用方便,价格低廉等优点,符合本次设计要求。
本次设计选用STM32F767IGT6芯片,该芯片运行主频可达216MHZ,拥有1M的内部闪存和512K的片内RAM,并配有专门的视频数据处理接口DCMI,可方便的接收图像传感器的数据。
主控芯片需要外接晶振电路,电源电路,才能正常工作。参考STM32F767xx数据手册,相关内容可完成最小系统电路的设计,如图3.3所示,此处有两个晶振,分别是25MHZ和32.768KHZ。25MHZ晶振用于产生最高运行频率,32.768KHZ晶振用于产生精确的实时时钟。系统采用swd五线调试方式,用排针引出调试接口。同时还用排针引出芯片的串口1引脚便于使用。
图3.3 STM32F767最小系统
3.1.2系统供电电路设计
三洋18650型锂电池是收音机,四轴飞行器上的常用电池,具有体积小,重量轻等优点,本次设计中选用两节电池串联的电池组,可提供7.4V输出电压,电池容量为3000mAh。设计了XH-2.54接口的插座用于电池的连接。
由于电池组输出电压为7.4v高于芯片工作电压,所以需要进行降压处理,因为芯片供电电压为3.3v,但由于模块中其他电路需要5v电压供电,所以采用两级电压转换,本次设计中用到了两款来自AMS公司的AMS1117-3.3和AMS1117-5.0,首先将7.4v电压转换为5v,之后将5v电压转换为3.3v,查阅芯片数据手册可以完成相关电路的设计。电部分电路原理图如图3.4所示。电源从J1口接入,N沟道MOS管通过栅极和源极串联于电源和负载之间,R15提供电压偏置。当电源正接时,MOS管导通,负载得电,反之,负载不得电。6角开关K1用来控制是否上电。开关按下时7.4V电压分别通过5V稳压芯片和3.3V稳压芯片,得到5V电压和3.3V电压,可用于主控芯片和外围传感器供电。
图3.4供电部分电路原理图
3.2 传感器模块
3.2.1 图像传感器模块
由于本系统需要具备采集图像数据,并处理的功能,所以需要图像传感器,本次设计所选择的图像传感器是具有两百万像素的OV2640模块。OV2640模块体积小,工作电压低,通过SCCB总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。该产品输出UXGA图像最高达到15帧/秒。用户可以完全控制图像质量、数据格式和传输方式即通过SCCB接口编程可对图像白平衡、色度、对比度等参数进行设置。OmmiVision 图像传感器获得的图像质量高,清晰稳定。
在电路图设计中,为OV2640模块提供了用于连接的排母,该部分的原理图如图3.5所示。其中OV_SCL和OV_SDA分别与芯片的普通IO引脚相连,采用软件IIC方法模拟IIC时序,用于传输控制信号,设置OV2640内部寄存器的值。OV_D[0:7]分别与具有DCMI数据传输复用功能的引脚相连用于传输8位图像数据。OV_VSYNC和OV_HREF分别与具有DCMI复用功能帧同步和行同步的引脚相连,发出同步信号。OV_PCLK与具有DCMI像素时钟复用功能的引脚相连用于控制像素输出。OV_PWDN和OV_RESET和普通IO口引脚相连用于实现掉电使能和复位功能。
图3.5 OV2640模块
3.2.2 陀螺仪
陀螺仪模块是测量角位移的常用模块,能够反映机器人运动时自身的状态,还可开发基于姿态控制的控制程序,所以本次设计选择加入陀螺仪模块。本次设计所选用的芯片为MPU6050,它内置三轴陀螺仪和三轴加速度计,采用标准的I2C通信协议,内置16位AD转换器,支持16位数据输出。它内置数字运动处理单元,可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。查阅mpu6050数据手册,在mpu6050外部添加适当元器件可使mpu6050正常工作,所设计的原理图如图3.6所示。SCL和SDA和具有硬件IIC功能的PF0和PF1引脚相连,用于产生控制信号,控制MPU6050内部寄存器。INT引脚和普通IO口相连用于产生中断信号。
图 3.6 MPU6050电路原理图
3.3 电机控制模块
本次设计所用到的电机有两种,直流电机GA12-N20和步进电机20HS。GA12-N20是智能车上的常用马达,具有体积小,转矩大,价格便宜等优点,所以选用它作为机器人小球的驱动电机。20HS步进电机是混合式步进电机,混合式步进电机与传统的反应式步进电机相比,结构上增加永磁体,因此该电机具有电机效率高、电流小、发热低、运行平稳、噪声低、低频振动小等优点。
但这两种电机都无法用IO口直接驱动,因此选择使用SGS公司的L298N作为驱动芯片。L298N内部包含4通道驱动电路,是一种二相和四相电机的专用驱动器,内部含两个H桥的高电压大电流双桥式驱动器,能接收标准TTL逻辑电平,可驱动46V、2A以下的电机。
L298引脚图,In1和In2为桥路A的输入,OUT1、OUT2为桥路A的输出,ENA为桥路A的使能端,In3和In4为桥路B的输入,OUT3、OUT4为桥路B的输出,ENB为桥路B的使能端。设计中通过控制桥路输入可实现电机的正反转与制动,通过向控制ENA、ENB输入PWM波,可实现调速。驱动两个直流电机需要用到1个L298N芯片,驱动两个步进电机需要用到2个L298N芯片,共需3个L298N芯片。查阅相关资料,可完成L298N外部应用电路的设计,驱动如图3.7所示。由于电机控制信号为PWM波,所以控制信号输出引脚需要具有PWM波输出功能,定时器通道引脚具备输出PWM波的功能。所以MOTO4_[1:4]分别与具有TIM5_CH[0:3]相连,用于接收控制信号。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。