首页 > 其他分享 >基于STM32蓝牙控制小车系统设计(一)

基于STM32蓝牙控制小车系统设计(一)

时间:2024-04-04 19:04:14浏览次数:17  
标签:L298N 封装 电机 小车 蓝牙 电源 STM32 模块

项目介绍

       “基于 stm32f4 的蓝牙控制小车”是一个基于意法半导体与 ARM 公司生产的STM32F4 开发板的集电机驱动模块、电源管理模块、stm32f4 主控模块、蓝牙串口通信模块、android 控制端模块。电机驱动模块使用了两个 L298N芯片来驱动 4 路电机,使能端连接 4 路来自主控板的 PWM 波信号,8 个输入端接主控板的 8 个输出端口;电源管理模块使用了 LM2940-5.0 芯片进行 12V 到5V 的转换,12V 用于电机模块的供电,5V 用于蓝牙模块、传感器等的供电;主控模块采用了 MDK 编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了 FBT06_LPDB 针插蓝牙模块,与主控板进行串口通信,同时与 android 手机进行通信;android 控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过 android 控制端进行控制小车的运动,实现一些用户需要的功能和服务。

主要步骤思路

  1. 需求分析

    • 确定小车的功能需求,例如前进、后退、左转、右转、停止等。
    • 确定使用蓝牙进行远程控制的需求。
    • 确定使用STM32作为控制核心的需求。
  2. 硬件选型

    • 选择适合的STM32系列芯片作为控制器。
    • 选择适合的蓝牙模块,如HC-05或HC-06等。
    • 选择电机驱动模块,例如L298N等。
    • 选择其他传感器或模块,如电池管理模块、超声波传感器等(根据需求)。
  3. 电路设计

    • 根据选定的硬件,设计电路原理图。
    • 确定电源管理电路,保证各个模块的稳定供电。
    • 连接STM32、蓝牙模块、电机驱动模块及其他模块之间的连线。
  4. 软件开发

    • 编写STM32的固件程序,实现蓝牙模块的初始化和通信功能。
    • 设计控制算法,根据接收到的蓝牙指令控制小车的运动。
    • 编写电机驱动程序,控制电机的转动。
    • 编写其他必要的功能模块,如传感器数据采集等。
  5. 系统集成与调试

    • 将硬件模块按照电路设计连接起来。
    • 烧录STM32固件程序。
    • 进行系统调试,验证蓝牙控制功能是否正常,电机驱动是否正确。
    • 根据实际调试情况对软硬件进行优化和调整。
  6. 系统测试与优化

    • 对整个系统进行功能测试,验证各项功能是否满足需求。
    • 优化系统性能,提高系统的稳定性和可靠性。
    • 进行长时间稳定性测试,确保系统在各种情况下都能正常工作。
  7. 生产制造与部署

    • 根据实际需求进行批量生产制造。
    • 进行产品组装和测试。
    • 将产品部署到实际应用场景中,如教育机构、科研实验室、工业生产线等。

系统方案


        该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、android 控制端等 5 个模块,如图所示:

系统硬件设计

电机驱动模块

        在设计基于STM32的蓝牙控制小车系统时,电源驱动模块起到了为系统各个部分提供稳定电源的作用。以下是关于电源驱动模块的一些步骤和注意事项:

  1. 电源需求分析

    • 分析系统中各个模块的电源需求,包括STM32控制器、蓝牙模块、电机驱动模块等。
    • 确定每个模块的工作电压和电流需求。
  2. 选择电源模块

    • 根据系统的电源需求选择合适的电源模块。常见的电源模块包括线性稳压模块、开关稳压模块等。
    • 考虑到小车系统可能存在的电池供电情况,选择支持电池供电的电源模块。
  3. 设计电源部分电路

    • 根据选定的电源模块,设计电源部分的电路原理图。
    • 包括输入电源接口、滤波电容、稳压电路等。
  4. 布局与连接

    • 在电路板上合理布局电源部分的元件,确保电路连接简洁、稳定。
    • 连接电源模块的输出端到系统中各个模块的电源输入端。
  5. 测试与调试

    • 连接电源,对电源模块进行测试,确保输出电压稳定。
    • 测试各个模块的工作电压是否符合要求。
  6. 考虑功耗和效率

    • 在设计电源模块时要考虑系统的功耗情况,选择合适的电源模块以提高系统的能效。
    • 在设计中采取有效的节能措施,降低系统功耗。
  7. 安全性考虑

    • 在设计电源部分时要考虑到安全性,避免因电源问题导致的系统损坏或危险情况的发生。
    • 可以采取过压保护、过流保护等措施,提高系统的稳定性和安全性。
  8. 电源管理

    • 考虑到系统可能存在的待机和工作状态切换,设计合适的电源管理方案,以提高系统的能效和延长电池续航时间。

L298N的封装

        L298N是一款常用的双H桥驱动集成电路,用于直流电机的驱动。它通常采用多引脚封装形式,常见的封装为Multiwatt15或PowerSO20。

  1. Multiwatt15封装

    • Multiwatt15是一种多引脚封装,通常具有15个引脚。
    • 该封装适用于需要控制电机方向、速度和PWM等功能的应用场合。
    • 在Multiwatt15封装中,引脚排布合理,易于连接外部电路。
  2. PowerSO20封装

    • PowerSO20是另一种多引脚封装,具有20个引脚。
    • 与Multiwatt15封装相比,PowerSO20封装提供了更多的引脚,允许更多的功能和控制能力集成到同一颗芯片中。
    • 适用于需要更复杂控制功能或者需要连接更多外部设备的应用场合。

       这两种封装形式都能满足大多数基于L298N的电机驱动项目的需求,选择封装形式时需要根据具体的应用场景和系统要求来进行。例如,如果项目对引脚数量有较高要求,或者需要更多的控制功能,可以选择PowerSO20封装;如果项目对封装尺寸有限制,或者控制需求较为简单,可以选择Multiwatt15封装。

        H 桥电路虽然有着诸多的优点,但是在实际制作过程中,由于元件较多,电路的搭建也较为麻烦,增加了硬件设计的复杂度。由于 H 桥电路有诸多的优点,但是在实际制作过程中电路又比较麻烦,因此在本设计中我们采用 H 桥集成电机驱动芯片 L298。L298N 的工作原理和以上介绍的 H 桥相同,引脚图如下图所示:

L298N 的原理图设计

          L298N 是 ST 公司生产的一种高电压、大电流电机驱动芯片。该芯片采用 15脚封装。主要特点是:工作电压高,最高工作电压可达 46V;输出电流大,瞬间峰值电流可达 3A,持续工作电流为 2A;额定功率 25W。内含两个 H 桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。L298 的参考电路图如下图所示: L298N的原理图设计通常涉及到与微控制器(如STM32)的连接、电机的连接以及电源供应。

  1. 电源供应

    • 将电源(通常是电池或者适配器)的正负极连接到L298N的VCC1和GND1引脚上,以提供给驱动器芯片的电源。
    • 同时,将电机的正负极连接到L298N的OUT1和OUT2以及OUT3和OUT4引脚上,以便对电机进行控制。
  2. 逻辑输入控制

    • 使用微控制器(如STM32)的GPIO引脚控制L298N的逻辑输入端(IN1、IN2、IN3、IN4)。
    • 控制IN1和IN2以控制第一个电机的方向和速度,控制IN3和IN4以控制第二个电机的方向和速度。
    • 通过控制逻辑输入端的高低电平来控制电机的正反转和速度。
  3. 电机保护

    • L298N通常具有过热保护功能,当芯片温度过高时会自动停止工作,以保护芯片免受损坏。
    • 如果需要,可以添加温度传感器并连接到芯片上,以便监测芯片温度并触发保护机制。
  4. 电机驱动

    • 根据逻辑输入信号的变化,L298N会控制电机的转向和速度。
    • 通过PWM信号调节IN1和IN2的占空比来控制电机的速度,占空比越高,电机转速越快。
  5. 电源滤波

    • 为了保证电源供应的稳定性,通常在电源输入端(VCC1和GND1)添加适当的电容进行滤波。

电机驱动模块实物

(1)控制板内部带 5V 逻辑电平转换芯片,不需要额外的 5V 供电。
(2)如果 EN1、EN2、EN3、EN4 不接 PWM 调速信号,次脚需要和对应的管教短接。
(3)GND 和 12V 接电机电源,其中 12V 可以接 7V--24V 电平,板子上的电源开关只是控制逻辑 5V 电平的开关,L298 的 12V 电源不受此开关控制。
(4)输出端和输入端一一对应,当输入端为 5V 时,输出端也为高电平,输入端为低电平时输出亦为低电平。

标签:L298N,封装,电机,小车,蓝牙,电源,STM32,模块
From: https://blog.csdn.net/weixin_47273943/article/details/137234939

相关文章

  • 基于STM32蓝牙控制小车系统设计(三)
    主控板程序设计设计基于主控板(STM32)的程序通常包括以下几个关键步骤:项目规划和需求分析:确定项目的功能和需求,包括所需的传感器、执行器、通信接口等。制定软件开发计划,包括项目时间表、任务分配等。环境搭建:配置开发环境,包括安装集成开发环境(IDE)和相关工具链。配置主控板......
  • 基于keil搭建stm32项目
    1.下载stm32cube的固件包1.1进入st的官网ST官网传送门1.2查找固件包 1.3找到自己的硬件对应的系列的固件包 1.4选择固件包点击进入后,点击获取软件 1.5选择版本下载 2.创建项目相关的目录2.1创建项目相关的目录 2.2给Drivers添加相关的驱动文件或者目录......
  • 初探STM32f407VET6
    一、买到了板子,自己分析引脚功能我在某宝上买到一块stm32f407vet6的板子,图便宜,结果遇上了个态度差的客服。没有说明,没有资料。不能退换,只能自己想办法分析引脚在嘉里创找到了芯片原理图(LQFP-100封装),想着看走线猜引脚,结果拿着放大镜找了许久没有进展。这板子上有许多过孔,走线......
  • STM32FATFS(未完待续)
    注意,本博客适合像我一样的小白,会的不多,但是想快速做些东西,不适合会写驱动的大佬。另外,示例代码中的注释有误(从多个项目中移植过来的,未做更改),请不要被误导!!!【免费】stm32f103c8t6SD卡驱动(Fatfs)资源-CSDN文库一、copy源码,移植我在CSDN上找到了一位大佬用HAL库和fatfs实现stm32f......
  • STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天原理解析)
    STM32第六天一、 USART1、USART概念USART:(UniversalSynchronous/AsynchronousReceiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备处理器与外部设备通信的两种方式:u并行通信(八车道)......
  • 不到2000字,轻松带你搞懂STM32中GPIO的8种工作模式
    大家好,我是知微!学习过单片机的小伙伴对GPIO肯定不陌生,GPIO(generalpurposeinputoutput)是通用输入输出端口的简称,通俗来讲就是单片机上的引脚。在STM32中,GPIO的工作模式被细分为8种,对于初学者来讲,要理解它们可太难了!诶诶诶,给个机会,先别急着退出哈!这不是有我在呢,跟着这篇文......
  • 基于stm32云平台a42智能头盔(APP)物联网嵌入式软硬件开发单片机毕业源码案例设计
    (1)硬件端1.   加速度传感器:用于检测头部是否遭受冲击或碰撞,以触发警报。2.   气体传感器:用于检测有害气体浓度,如CO、CO2、NH3等,防止中毒和窒息等危险情况。3.   光敏传感器:用于检测光线强度,以便在光线昏暗的环境下提醒员工注意安全。4.   声音传感器:可用于......
  • 蓝牙BLE开发——如何实时监听蓝牙适配器状态变化及回调
    uniapp监听蓝牙适配器状态变化事件近年来开发项目中接触比较多的与硬件设备对接,通过蓝牙与设备通讯;开发App、微信小程序,今天分享其中如何监听蓝牙适配;近期比较忙,不定时更新,有时间会分享uniapp开发蓝牙项目的Demo,个人分享,仅供参考。如何实时监听手机蓝牙状态变化并......
  • 【WCH以太网接口系列芯片】STM32+CH390+Lwip协议栈简单应用测试
    本篇文章基于STM32F103和CH390H芯片进行例程移植及相关注意事项,简单验证TCP\UDP\Ping基础功能。硬件:STM32F103开发板+沁恒CH390H的评估版图一示,SPI使用接口为:INT->PA0,RST->PA1,CS->PA2,SCK->PA5,MISO->PA6,MOSI->PA7,WOL->PA8。 图一 软件移植:采用的沁恒官方提供的CH......
  • OM6650AM支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片
    OM6650AM是一款超低功耗、同时支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片,采用4.0mmx4.0mmQFN32封装,具有丰富的资源,极低的功耗,优异的射频性能,可广泛应用于车载数字钥匙模组、胎压检测、PKE钥匙等场景。01主要特性蓝牙规格:全功能BLE5.1;支持数据传输速率:1Mb......