一直以来我都想在本科毕业前完成一个电机相关的实验,之前看了网上比较火热的自平衡莱洛三角形项目后,决心先做一个类似的小项目。因此,我通过学习大量前辈的项目案例,完成了该项目。
本项目的特点是:在需要通信的部分,全部采用STM32自带的硬件接口,使用自己设计PCB,有利于后期调试和拓展。

文章目录

  • 1 总体设计方案
    • 1.1 平衡车硬件需求
  • 2 原理图和硬件选中
    • 2.1 主控芯片STM32
    • 2.2 驱动模块TB6612
    • 2.3 GB520电机
    • 2.4 姿态传感器MPU6050
    • 2.5 蓝牙模块
    • 2.6 0.96OLED
    • 2.7 超声波模块
    • 2.8 整体设计
  • 3 PCB设计

1 总体设计方案

1.1 平衡车硬件需求

基于STM32的平衡小车所需的硬件模块主要有九个部分,包括:驱动模块、电机模块、供电模块、降压模块、超声波模块、姿态传感器、蓝牙模块和主控芯片。

通过上述模块实现以下控制:
平衡控制、速度控制、避险功能、远程遥控功能

由此,就可以得到设计平衡小车的硬件框图:

除了上述必要的模块,还做了硬件拓展和软件拓展的方便:
1)、硬件扩展:系统应具备良好的硬件扩展能力,能够方便地连接和集成其他模块或传感器,以满足特定应用需求。
2)、软件扩展:系统应具备灵活的软件架构和接口设计,以便于日后对控制算法和功能进行扩展和修改。

2 原理图和硬件选中

2.1 主控芯片STM32

我选用的是由意法半导体公司(ST)开发和推出的STM32F103C8T6。这是一款基于Cortex-M3内核的32位微控制器,采用LQFP48封装。

原理图如下:主控芯片+硬件拓展

2.2 驱动模块TB6612

选用东芝半导体公司推出的TB6612FNG芯片

原理图如下:

2.3 GB520电机

GB520电机的性能可以从淘宝商店获取。它的特点是,使用AB两根信号线进行编码计数,则当转动一圈,则可以接受到1320个脉冲。也就是单根信号线每圈发送660个脉冲信号。

必须注意,这里的孔洞间距要根据电机给的接口数据而定。GB520自带霍尔编码器的接口是间距2.0mm,6PIN

我在打自己的板子的时候就忽略了这一点,一般立创EDA的默认间距是2.54mm。本项目了电机,其他的期间接口都是默认2.54mm的间距。

原理图如下:

2.4 姿态传感器MPU6050

姿态传感器MPU6050是由意法半导体公司(ST)生产,集成了三轴加速度计和三轴陀螺仪的惯性测量单元(IMU)。

原理图如下:

2.5 蓝牙模块

我选用的是汇承科技的HC-08,搭配HC蓝牙助手APP就可以轻松使用UART与APP进行蓝牙通信。

HC蓝牙助手APP中可以设置按钮,发送对应的信号数据,实现对小车的控制简化。

原理图如下:

2.6 0.96OLED

这里我使用了一块4PIN,采用IIC通信的0.96寸的OLED屏幕。不是一定要按照,我使用了这块屏幕的目的是:
1)、避免在调试的时候,通过串口,使用线与上位机连接,查看数据,而直接在屏幕上直接显示。(蓝牙模块也可以做到不用线连接,但我想剩下上电进行无线连接的时间)
2)、可以在测试的时候,把速度,角度等小车运动的数据信息实时显示。

原理图如下:

2.7 超声波模块

超声波模块选用的是市场常见的HC-SR04

2.8 整体设计

3 PCB设计

合理布局设计PCB

3D效果图如下: