平衡板电路设计指南

举报
JeckXu666 发表于 2022/01/15 01:30:07 2022/01/15
【摘要】 文章目录 平衡板电路设计指南一、功能分析二、原理图设计三、PCB设计四、程序设计五、最终结果 平衡板电路设计指南 一、功能分析 使用 STM32F103RCT6 芯片作为主核心,搭配...

平衡板电路设计指南

一、功能分析

使用 STM32F103RCT6 芯片作为主核心,搭配多个电子模块设计一款测控系统,装载于外卖箱结构上,实现外卖箱自平衡。在外卖箱里面有一个平台,它会随着外卖箱的颠簸而自动调节,保持平稳。具体实现采用了IMU模块固定在平台上,通过中央处理器实时读取模块的角度信息,根据当前角度信息与平衡时角度信息的差值,带入到平衡算法当中,经过算法计算,算出每一个舵机的调整值,再输出到舵机上,舵机进行角度调整,让平台始终稳定在水平位置,实现防泼洒功能,本项目中使用各个模块及其连接图如下

image-20211219211547618

实现平衡效果,整个系统需要的硬件组成如下:

  • 自制PCB

    自制PCB使用STM32F103C8T6为主控芯片,设计外围电路,将陀螺仪、按键、LED灯、PWM接口、ADC接口、电压电路集成到一张PCB电路板上,为软件运行提供稳定的硬件环境

  • 压力传感器

    压力传感器使用压敏电阻,经过运算放大电路放大电压信号,方便PCB上的单片机读取

  • 舵机

    舵机为平衡板位置调整的执行单元,通过PWM精准驱动,维持系统角度平衡

  • 机械结构

    机械结构使用亚克力做平衡板载体,安装PCB电路板以及传感器和舵机,使系统可以进行数据获取以及位置调整

  • 电池

    采用3S电池供电,电压稳定,可充电,实现循环使用

二、原理图设计

原理图设计:

20210817214129

三、PCB设计

电路布局:

20210817214039

PCB布线图:

正面:

20211219212116

反面:

20211219212123

PCB三维模型:

20211219212139

四、程序设计

程序设计使用STM32CubeMX代码生成软件结合MDK IDE进行开发,在CubeMX中配置芯片外设以及FreeRTOS操作系统接口,CubeMX配置如下:

图形用户界面  描述已自动生成

基于CubeMX生成的代码,在MDK软件中编写控制逻辑,使用多任务编程,编写出串口任务、LED和按键任务、ADC采样任务、平衡任务,每个任务的实现功能如下:

  1. 串口任务:串口任务使用到单片机的串口1和串口2,串口1用于接受成品陀螺仪模块解算出的姿态角数据,获取平衡板的角度状态,便于带入PID计算,串口2用于转发串口1接受到的姿态数据,发送到后台用于进一步处理

  2. LED和按键任务:LED和按键任务用于读取按键的状态以及显示当前系统是否正常运行,按键按下后可以切换是否开启平衡功能,LED周期性闪烁方便用户确定系统是否正常运行

  3. ADC采样任务:ADC采样任务使用单片机的内置ADC外设,采集压力传感器返回的电压值,与我们设定的压力值进行对比,当压力大于设定值时,即认为检测到重物,开启板子的平衡功能

  4. 平衡任务:平衡任务在获取到姿态角的更新信息后会对他进行PID算法运算,并将得出的值输出到PWM上,控制舵机进行姿态调整,维持板子的平衡

代码流程图如下:

image-20211219211924106

五、最终结果

放一个旧版的硬件测试视频,看起来不明显,但新版本的效果是非常好的,可惜最新版本的机器没有拍视频,机器不知道去哪了,大致了解一下即可

请添加图片描述

文章来源: blog.csdn.net,作者:JeckXu666,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_45396672/article/details/122030610

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。