课程设计
本科生通用
题目:基于STM32的无线遥控小车的设计
专业:
班级:
姓名:
学号:
成绩:导师签字:
年月日
课程设计要求与参数
课设要求
设计一个基于STM32微控制器的无线遥控小车,车上装有无线模块,通过遥控器远程控制小车的运动状态。实现小车的前进、后退、停止、左转弯、右转弯、加速、减速等控制。
参数
飞思卡尔智能车体,车轮直径55mm
电池电压:12V
STM32F103ZET6最小系统:供电电压3.3V
NRF24L01无线模块:供电电压3.3V
BTN7971B电机驱动模块:供电电压5V---15V
360度舵机
降压模块
日程安排
12月15日——12月16日:查阅相关资料,确定设计思路,提出设计方案
12月17日——12月19日:搭建小车模型,设计硬件电路
12月20日——12月23日:完成软件部分的编程设计
12月24日:硬件及软件测试
12月25日:完成课程设计报
目录
课程设计要求与参数-----------------------------------------------1 课设要求-----------------------------------------------------1 参数---------------------------------------------------------1 日程安排-----------------------------------------------------1 第一章课题研究的目的、背景、意义--------------------------------3
1.1 课题研究的目的-------------------------------------------3
1.2 课题研究的背景-------------------------------------------3
1.3 课题研究的意义-------------------------------------------4 第二章设计方案--------------------------------------------------5
2.1 设计思路-------------------------------------------------5
2.2 硬件设计方案---------------------------------------------6
2.3 软件设计方案---------------------------------------------6 第三章硬件设计--------------------------------------------------7
3.1 STM32F103ZET6简介---------------------------------------7
3.2 NRF24L01无线模块----------------------------------------8
3.2.1 NRF24L01无线模块简介--------------------------------8 3.2.2无线模块与微控制器的连接-----------------------------9
3.3 舵机-----------------------------------------------------9
3.4 BTN7971B电机驱动模块------------------------------------9
3.5 遥控器设计----------------------------------------------10 第四章软件设计-------------------------------------------------11 第五章调试与测试-----------------------------------------------13 结论 -----------------------------------------------------------14 参考文献 -------------------------------------------------------14
第一章课题研究的目的、背景、意义
1.1课题研究的目的
掌握嵌入式软件项目的设计流程
掌握MDK-ARM开发环境的基本使用方法
掌握NRF24L01无线模块的通信协议及使用方法
掌握脉冲宽度调制(PWM)的原理及应用
掌握直流电机调速的方法
1.2课题研究的背景
随着社会的发展,人们对科学技术的要求越来越高,在我们的身边随处都可见一些高科技的产物,这些是时代的产物。本设计采用STM32微控制器,根据控制器的原理来控制小车的启步与停止以及根据人的操作做出相应的动作。信息社会的支柱之一是通信技术,它是信息社会化的基础,也是实现信息社会
化的手段。而近年来,信息通信领域中,发展最快,应用最广的就是无线通信技术。Cortex-M3采用ARM V7构架,不仅支持Thumb-2指令集,而且拥有很多新特性。较之ARM7TDMI,Cortex-M3拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。脉宽调制的全称为:Pulse WidthModulator,简称PWM;由于它的特殊性能、常被用于直流负载回路中、
灯具调光或直流电动机调速等。
1.3课题研究的意义
本设计是基于STM32微控制器的无线遥控小车,车上装有无线模块,通过遥控器远程控制小车的运动状态。实现小车的前进、后退、停止、左转弯、右转弯、加速、减速等控制。本次设计可以很好地巩固已经学习的嵌入式系统,利用嵌入式微控制器进行电子创新设计。发挥无线控制的远程控制优势,通过无线指令调整微控制器输出的PWM脉冲的占空比来控制直流电机的转速,进而实现对小车的运动状态的控制。
第二章设计方案
2.1设计思路
课题题目:
基于STM32的无线遥控小车的设计
功能:
通过遥控器远程控制小车的运动状态,实现小车的前进、后退、停止、左转弯、右转弯、加速、减速等控制。
实现的方法:
硬件方面,采用的STM32F03ZET6的最小系统,系统的每个引脚都用插针引了出来。通过JTAG进行程序的下载和各种调试。
采用NRF24L01无线模块传递控制指令,以BTN7971B电机驱动模
块来对直流电机进行驱动。
软件方面,开发平台RVMDK3.80A。软件设计分为几个模块,分别为按键控制、无线传输、PWM电机调速、舵机方向控制等模
块。首先通过键值扫描函数获取当前按下的控制按键,再通过无
线模块传输相对应的控制指令给微控制器,控制器输出相应占空
比的方波调节电机转速和方向舵机。从而达到对小车进行远程运
动状态控制的功能。
2.2硬件设计方案
处理器为Cortex-M3核处理器,无线遥控器的结构框图如图2-1;小车控制框图如图2-2.
按键
模块
图2-1 遥控器设计框图
图2-2小车控制框图
2.3软件设计方案
软件平台是RVMDK3.80A ,开发语言为c 语言,通过编程,使用STM32的定时器输出指定频率、占空比的PWM 方波,无线传输使用SPI 通信。首先通过键值扫描函数获取当前按下的控制按键,再通过无线模块传输相对应的控制指令给微控制器,控制器输出相应占空比的方波调节电机转速和方向舵机。从而达到对小车进行远程运动状态控制的功能。
Key 0
Key 1
Key 2
Key
3 Key
4 Key
5 Key
6
Key 7
Key 8
STM32 微控制器
无线模块
第三章硬件设计
3.1STM32F103ZET6简介
所使用微控制器为STM32F103ZET6,其最小系统原理图如图3-1。系统板资源:
1、STM32F103ZET6芯片
2、SRAM预留芯片接口
3、2M SPI FLASH芯片(W25Q16)
4、仿真器接口下载(JTAG/SWD)
5、复位按键
6、一个按键输入(PA0)
7、一个LED输出(PB0)
8、电源指示灯
9、启动跳冒选择
10、MINI USB接口(可以供电,可以做USB主机或者设备)
11、3.3V稳压芯片
12、8Mhz主频晶振
13、32.768Khz时钟晶振
14、所有用到IO口均向上引出,2.54间距
图3-1 MCU部分原理图
JTAG调试引脚与微控制器的连接,如图3-2。
图3-2 JTAG引脚原理图
3.2.1 NRF24L01无线模块简介
NRF24L01无线模块采用的芯片为NRF24L01,该芯片的主要特点: 1)2.4G全球开放的ISM频段,免许可证使用。
2)最高工作频率2Mbps,高效的GFSK调制,抗干扰能力强。
3)125个可选频道,满足多点通信和调频通信的需要。
4)内置CRC检错和点对点的通信地址控制。
5)低工作电压1.9V--3.6V。
6)可设置自动应答,确保数据可靠传输。
该芯片可以通过SPI与外部MCU通信,最大SPI速度可达到10MHz。NRF24L01无线模块接口图如图3-3。
图3-3 无线模块接口图
3.2.2 无线模块与微控制器的连接
NRF24L01无线模块通过SPI与STM32F103ZET6通信,该处使用的是STM32F103ZET6的SPI2。NRF24L01无线模块与系统板的引脚连接如图3-4。
图3-4 NRF24L01与微控制器引脚连接
3.3 舵机
舵机简单地说就是集成了直流电机、电机控制器和减速器等,并封装于一个便于安装的外壳里的伺服单元。小车的方向控制是通过控制舵机来实现的。舵机的电源线分别接5V和GND,信号控制线接STM32F103ZET6的PB6引脚(TIM4的PWM Channel_1输出引脚)。为了对STM32F103ZET6微控制器的引脚进行保护,在STM32F103ZET6与舵机控制信号线之间用光耦进行隔离。
3.4驱动模块
BTN7971B电机驱动模块采用大电流半桥集成芯片BTN7971B构成的H桥驱动。该驱动模块采用逻辑芯片进行信号隔离,有效保护微控制器引脚,采用优质固态电容滤波,性能更卓越。
逻辑输入电压:4.5-5.5V,控制信号兼容3.3V信号;
电机电源输入电压:5V-15V;
最大工作频率:25KHz;
最大工作电流:60A;
额定工作温度范围:-5℃~75℃;
驱动模块支持正、反转和制动;
引脚说明:5V,IN1,IN2,IN3,IN4,GND;
本设计使用OUT2输出引脚,将直流电机的两根引线接至OUT2对应端口,将12V电源线、GND接到模块的VCC和GND,将STM32F103ZET6的PC6(TIM3的PWM Channel_1)、PC7(TIM3的PWM Channel_2)引脚分别接到驱动模块的IN3、IN4引脚。将驱动模块的5V,GND分别接至电源的5V和GND。
驱动模块应考虑散热设计,当电机转动时模块会发热,故应当安装散热装置,以使驱动模块正常工作。
3.5 遥控器设计
遥控器由STM32F103RBT6微控制器、外接按键、NRF24L01无线模块构成,设计框图如图2-1 。按键对应微控制器引脚及发送指令如表3-5。
表3-5 按键指令表
第四章软件设计
软件平台是RVMDK3.80A,开发语言为c语言,通过编程,使用STM32的定时器输出指定频率、占空比的PWM方波,无线传输使用SPI通信。首先通过键值扫描函数获取当前按下的控制按键,再通过无线模块传输相对应的控制指令给微控制器,控制器输出相应占空比的方波调节电机转速和方向舵机。从而达到对小车进行远程运动状态控制的功能。程序流程图如图4-1、图4-2。
小车控制流程图:
图4-2小车控制流程图
第五章调试与测试
按照设计方案设计并焊接硬件电路,连接各模块,组装小车及遥控器。遥控器如图5-1,小车如图5-2。分别给遥控器和小车上电,按下左转按键,小车向左转;按下右转按键,小车向右转;按下前进按键,小车向前运动;按下加速按键,小车加速;按下减速按键,小车减速;按下停止按键,小车停止等。完成设计功能,实现通过遥控器远程遥控小车,改变小车的运动状态。
图5-1遥控器
图5-2 小车整体图
结论:
通过本次课程设计,我对无线控制的知识有了进一步了解。由于无线控制距离远,抗干扰能力强,故可以用于远程控制。我对PWM调节电机的转速也有了更深的理解。本次设计的遥控小车很好的实现了设计要求,可以通过遥控器远程控制小车的运动状态。实现小车的前进、后退、停止、左转弯、右转弯、加速、减速等控制。
参考文献
[1] Cortex-M3权威指南
[2] STM32中文参考手册_V10
[3] STM32固件库使用手册
[4] STM32F103ZET6最小系统原理图
[5] BTN7971数据手册
[6] 舵机原理与控制
[7] NRF24L01中文数据手册