-
ARM-STM32
校园创新大赛
项目报告
题
目:
基于
stm32f4
的蓝牙控制小车
学
校:
中南民族大学
指导教师:
视频观看地址:
/v_show/id_
题
目:
<
/p>
基于
stm32f4
的蓝牙控制小车
p>
关键词:
STM32F4 LM2940-5.0 L298N
FBT06_LPDB
蓝牙串口通信
android
摘要
“基于
stm32f4
的蓝牙控制小车”是一个基于意法半导体与
ARM
公
司生产的
STM32F4 DISCOVERY
开发板的集电机
驱动模块、
电源管理模块、
stm32f4
主控
模块、
蓝牙串口通信模块、
a
ndroid
控制端模块。
电机驱动模块使用了两个
L298N
芯片来驱动
4
路电机,使能端连接
4
路来自主控板的
PWM
波信号,
8
个输入端
接主控板的
8
个输出端口;
电源管理模块使用了
LM2940-5.0
芯片进行
12V
到
5V
的转换,
12V
用于电机模块的供电,
5V
p>
用于蓝牙模块、传感器等的供电;主控
模块采用了
< br>MDK
编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙
串口通信模块则是采用了
FBT06_LPDB
针插
蓝牙模块,
与主控板进行串口通信,
同时与
android
手机进行通信;
android
控制端模块是一个集开启蓝牙、
搜索蓝牙、
控制小
车等功能。用户可以通过
android
控制端进行控制小车的
运动,实现一些
用户需要的功能和服务。
1.
引言
蓝牙的创始人是瑞典爱立信公司,
蓝牙技术是一种无限数据与语
音通信的开
放性全球规范,
它以低成本的近距离无线连接为基础
,
为固定与移动设备通信环
境建立一个特别连接。
手机之间通过蓝牙实现数据共享成为常理,
将手机变为遥
控器为人们的生活带来无限方便。
遥控小车在工业、
国防、
科研等领域应用越来
越广泛,例如说:消防遥控小车、探测小车
等。本文详细阐述了使用蓝牙通信的
手机遥控小车前行、倒退、左转、右转和停止等功能
的软硬件设计过程。
2.
系统方案
该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、
android
p>
控制端等
5
个模块,如图
< br>2.1
所示:
电源管理
模块
超声波测距模块
stm32f4
主控板
音频输出
蓝牙通信模块
电机驱动模块
GPS
导航模块
指示灯
其它待扩展模块
图
2.1
系统模块图
3.
系统硬件设计
3.1
电机驱动模块
3.1.1
L298N
的封装
H
桥电路虽然有着诸多的优点,但是在实际制作过程中,由于元件较多,电
路的
搭建也较为麻烦,增加了硬件设计的复杂度。
由于
H
桥电路有诸多的优点,
但是在实际制作过程中电路又比较麻烦,
因此
在本设计中我们采用
H
桥集成电机驱动芯片
< br>L298
。
L298N
的工作原理和以上介
绍的
H
桥相同,引脚图如图
3.1
所示:
图
3.1
L298N
封装图
3.1.2
L298N
的原理图设计
L298N
是
ST
公司生产的一种高电压、大电流电机驱动芯片。该芯片采用
15
脚封装。主要特点是:工作电压高,最高工作电压可达
46V<
/p>
;输出电流大,瞬间
峰值电流可达
p>
3A
,持续工作电流为
2A
;额定功率
25W
。内含两个
H
桥的高电压
大电流全桥式驱动器,
可以用来驱动直流电动机和步进电动机、
继电器线圈等感
性负载
;
采用标准逻辑电平信号控制;
具有两个使能控制端,
在不受输入信号影
响的情况下允许或禁止器件工作有一个逻辑电源输入端
,
使内部逻辑电路部分在
低电
压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用
L29
8N
芯
片驱动电机,
该芯片可以驱动
一台两相步进电机或四相步进电机,
也可以驱动两
台直流电机。
L298
的参考电路图如图
3.2<
/p>
所示。
图
3.2
电机驱动电路原理图
3.1.3
电机驱动模块实物
1
、控制板内部带
5V
逻辑电平转换芯片,不需要额外的
5V
供电。
2
、如果
EN1
、
EN2
、
EN3
、
EN4
不接
PWM
调速信号,
次脚需要和对应的管教短接。
3
、<
/p>
GND
和
12V
接电机电源,其中
12V
可以接
7V
--24V
电平,板子上的电源开关
只是控制逻辑
5V
电平的开关,
L298
的
12V
电源不受此开关控制
.
p>
4
、输出端和输入端一一对应,当输入端为
5V
时,输出端也为高电平,输入端为
低电平时输出亦为低电平
。
图
3.3
L298N
电机驱动模块实物图
3.2
电源管理模块
3.2.1
智能车电源设计要点
电源是整个系统
稳定工作的前提,
因此必须有一个合理的电源设计,
对于小车来
说电源设计应
注意两点:
1.
与一般的稳压电源不同,小车的电池电压一般在
6-8V
p>
左右,还要考虑在电
池损耗的情况下电压的降低,因此常用的
78
系列稳压芯片不再能够满足要求,
因此
必须采用低压差的稳压芯片,在本文中以较为常见的
LM2940-5.0
为例。
2.
单片机必须与大电流器件分开供电,避免大电流器件对单片机造成干扰,影
响单片机的
稳定运行。
现在各种新型的电源芯片层出不穷,
各位读者可以根据自己的需求自行选择电源
芯片,
对
于本设计应该主要注意稳压压差和最大输出电流两个指标能否满足设计
要求。
3.2.
2
低压差稳压芯片
LM2940
简介
LM2940
系列是输出电压固定的低压差三端端稳压器;
输出电压有
5V
、
8V
、
10V
多
种;最大输出电流
1A<
/p>
;输出电流
1A
时,最小输入输出电压
差小于
0.8V
;最大
输入电压
26V
;工作温度
-40
~
+125
℃;
内含静态电流降低电路、电流限制、过热保护、电池反接和反插入保护电路。同
时
LM2940
价格适中而且较容易购买,
< br>非常适合在本设计中使用。
LM2940-5.0
封<
/p>
装和实物如图
3.4
所示。
图
3.4
LM2940
封装和实物图
如图<
/p>
3.5
所示,采用两路供电,这样可以使用其中一路单独为
STM32F4discovery
电路板供电,
指示灯等供电。
另外一路提供
L298N
< br>、
舵机、
蓝牙的工作电压,
L2
98N
的驱动电压由电池不经任何处理直接给出。舵机可以用
6V
供电,也可以直接用
5V
供电。
图
3.5
电源模块原理图
如图
3.6
中的
PCB
图:
图
3.6
电源模块
< br>PCB
图
图
3.7
是运用腐蚀液自制的电源管
理模块,
具有
12v5v
的供电模块,
可同时给电
机模块和主控板(
STM3
2DISCOVERY
)供电:
图
3.7
电源管理模块实物图
4.
系统软件设计
4
.
1
主控板程序设计
4.1.1
main
程序设计
主函数主要分为延
迟时间初始化、串口接收模块程序、电机初始化三部分。
主函数的流程图如图
4.1
所示:
图
4.1
主函数流程图
主函数程序代码如下:
int
main(void)
{
delay_init(1
68);//
延迟时间初始化
uar
t_init(9600);//
串口初始化
Direction(1);//
电机初始化
delay_ms(10);//
延迟
10m
s
printf(
输入语句
while(1);
}
4.1.2
串口接收模块程序
主控板接收到蓝牙
从串口传来的数据后存入
Res
变量,
然后通过分支程序来
选择执行前进、后退、左转、右转和停止等功能。该模块的程序流程
图如图
2
所示:
图
2
串口接收程序流程图
4.1.3 <
/p>
修改
PWM
输出值程序
< br>
该程序是基于“
4_PWM
的
实现”中的程序改编的。代码如下:
void
Change_PWM(int duty1,int duty2,int duty3,int
duty4)
{
SCB->AIRCR=0x05AF00;//
中断优先级分组
抢占:响应
=3:1
RCC->AHB1ENR|=(1<<2);//
打开
p>
GPIOC
时钟
GPIOC->MODER|=0x000AA000;//
pc6789
第二功能,推挽输出
GPIOC->OSPEEDR|=0x000FF000;
//
输出速度为
100m
GPIOC->PUPDR|=0x00055000;//
上拉
GPI
OC->AFR[0]|=0x22000000;//pc6789
的第二功能为
p>
AF2
GPIOC->AFR[1]|=0x00000022;
p>
RCC->APB1ENR|=(1<<1);//
打开
TIM3
时钟
TIM3->PSC=83;//
对
84M
时钟进行
84
< br>分频,使得计数频率为
1M
TIM3->ARR=10000;//
周期为
10ms
TIM3->
EGR|=1;//
产生一次更新时间
TIM3->CCMR1|=0x6060;//PWM
p>
模式
1
p>
TIM3->CCMR2|=0x6060;//PWM
模式
2
TIM3->CCR1=duty
1;//1
路
PWM
TIM3->CCR2=duty2;//2
路
PWM
TIM3->CCR3=duty3;//3
路
PW
M
-
-
-
-
-
-
-
-
-
上一篇:钢铁雄心3修改
下一篇:初中英语词根前后缀完美打印版