# Self-Balance-Car **Repository Path**: code_clone/Self-Balance-Car ## Basic Information - **Project Name**: Self-Balance-Car - **Description**: 基于STM32F103C8T6的自平衡小车 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 45 - **Created**: 2021-06-05 - **Last Updated**: 2021-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Self_Balance_Car ## 介绍 一个基于STM32F103C8T6的自平衡小车 ## 组成 * 主控 * STM32F103C8T6最小系统板 * 电源部分 * 电池使用三块18650供电 * 电池由XL6009升压至15V后作为电机的驱动电压 * 电池由LM2596S降压至5V后给板上设备供电 * MCU通过ADC采集电阻分压后的电池电压来计算电量 * 姿态解算 * MPU6500 * QMC5883L * 电机部分 * 使用TB6612FNG驱动两路520电机 * 每个电机有两个霍尔传感器进行测速 * 遥控部分 * 使用蓝牙透传模块连接串口发送数据来控制 * 预留接口连接视觉模块 * 显示部分 * 运行指示灯*1 * 电源指示灯*1 * 电量指示灯*5 * 蓝牙指示灯*1 ## 单片机资源 * 普通IO * 电量指示灯*5 * 运行指示灯*1 * 电机驱动*4 * 空闲IO(为视觉预留)*2 * 定时器 * PWM驱动电机*2 * ADC * 电池电压采集 * 外部中断 * 电机测速*4 * 通信 * IIC连接HMC5883L * SPI连接MPU6500 * 串口接收控制命令 * DMA * 串口收发 * ADC采集 * 独立看门狗 ## 软件部分 * 基本 * Cubemx创建工程 * HAL库 * FreeRTOS * Task * cmd 接收上位机运动命令,调节PID参数,反馈状态 * compass 罗盘数据获取 * control 运动控制 * imu 陀螺仪数据获取 * maintask 系统状态监控 * power 电量检测 * speed 电机转速检测 * Moudle * AHRS 姿态角解算 * delay 基于定时器的us级精确延时 * filter 一些简易的滤波器 ## 控制算法 * 角度环PID控制 * 速度环PI控制 * 转向环P控制 ## 视觉 串口与openMV连接,接收控制指令