毕业设计-两轮自平衡小车主控板

11 篇文章 1 订阅

前言

前几天在朋友圈看到面包板社区的小编发了个**晒板子的活动**,作为面包板社区的活跃用户,这个活动必须要参加一下!

说起分享自己画的板子,我首先想到的就是人生中设计的第一块PCB板子:基于STM32+MPU6050的两轮自平衡小车主控板,也是几年前读大学时的毕业设计。

幻灯片1

思绪转到5年前,2017年的夏天,大三的暑假还没有结束,我就一人坐上了开往北京的列车,没想到,这一去,就是5年!

实习的工作不算复杂,样板焊接、样机调试,也会画一些简单的小板子。因为自己是双非普通本科出身,也深知自己的不足,平时白天干活,晚上回去就学习PCB,单片机开发。实习了有半年的时间,到了大四下学期,回校准备毕业设计,由于有了一些实习经历,毕业设计做起来就比较简单了。

实物图

主控板是自己设计的,小车底盘(轮胎+电机+编码器)和锂电池是购买的成品。

PCB板焊接、硬件调试、软件设计、调参,毕业论文,查重,答辩,一切都比较顺利!记得当时答辩现场,可能是因为我是独立设计、调试的,答辩老师们对我的设计很感兴趣,整个答辩过程都是在和老师们愉快的沟通中进行的!最终,我的毕业设计被所在的学院所收藏,毕业设计所花费的费用也找学校报销了,毕业设计也被评为了优秀!

毕业设计压缩包

哈哈,居然还能找到当时在某PCB板厂下的订单,含运费一共90元,现在都是免费了吧!

2022-03-29_230748

和主题无关的话说的有点多了,下面来详细介绍一下我当时画的这块处女板

主板1

硬件设计

硬件电路主要包括以下几部分:

  • STM32F103RET6,最小系统电路
  • TB6612两路直流电机驱动,电机编码器检测
  • 通过分压电阻方式实现的锂电池电压ADC检测
  • 通过MOS管实现的锂电池防过放,欠压保护电路
  • 板载MPU6050陀螺仪,用于获取实时姿态信息
  • 一路红外接收头,预留OLED显示接口,板载HC-05蓝牙模块
  • 一路复位按键,一路用户按键、两路用户LED
  • 预留SWD、串口、BOOT配置接口

硬件电路设计上的考虑不周到,电机AB相编码器连接到了STM32的普通IO管脚, 而不是定时器的编码器管脚,所以软件控制效果不是太理想,哈哈,也可能是自己没调好参数!

直立效果

PCB3

软件设计

软件设计上,仅仅实现了直立环,即平衡车直立效果,没有实现速度环转向控制,也没有实现红外、蓝牙的遥控。

所以软件方面的工作也比较简单:

  • STM32基本外设驱动,GPIO、UART、TIMER、ADC、DMA、中断等等。
  • MPU6050姿态获取,使用官方DMP库
  • PID控制算法实现,直立环,参数的整定
  • 异常姿态检测算法,小车倒地后刹车,防止堵转造成电机和芯片烧坏。

主板图

再回首

现在,再回看自己当时设计的那块板子,发现还是有很多不足之处的:

  • 控制软件方面不完美,仅仅实现了直立环,没有实现速度环、红外蓝牙遥控等。

  • PCB布局布线不合理,导致过孔太多,走线比较混乱。

  • 蓝牙模块射频天线部分没有预留净空区,可能会导致信号很弱。

  • 没有在靠近电机驱动芯片的位置添加储能电容,导致烧了几次驱动芯片,后来加上才好点。

  • 电机编码器管脚没有分配到定时器的编码器接口,只能通过GPIO中断方式测速,导致后续软件调起来比较费劲

如今,我已经毕业四年,工作时间算是五年。毕业设计的空板我还保留至今,剩下的都是回忆!

fb5c929ccb3ade8928ec8071c68a312

c3cf3d709038ef0414cf80932f2d1d3

虽然时过多年,当时所学的专业也已经停止招生了,而我也不做单片机开发了,转向了另一种可编程器件FPGA的开发,但是当看到单片机相关的技术文章还是会仔细的研读一下。

富芮坤FR8016H开发板+ESP8266实现疫情监控

富芮坤疫情监控2
富芮坤疫情监控

uFUN开发板+自己画的PCIe扩展板实现的联网时钟

PCB

血的教训,Mini PCIe板子的厚度1.0mm即可,锡手指切掉了一部分才刚好能插进去。

飞线

看起来还挺精致的

时钟显示

正面4

根据网上开源的资料做得JLink-OB下载器

fiqnqvahff

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
毕设的资料——STM32两轮平衡小车系统,完整资料分享出来,给需要的人。 硬件资源: 主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱动用的是TB6612,蓝牙是汇承的HC05邮票孔封装的,WIFI用的是济南有人科技的USR-WIFI232-S,小底盘用的是平衡小车之家的某一款带编码器的(不是我买的,同学的),电池用的是一节7.2的镍镉电池,液晶用的是中景园电子1.3寸IIC接口的OLED,开关用的是三脚纽子开关,电池接口用的是T插,电阻电容这些用的基本上是0603封装,编码器5V降压用的是ASM1117-5.0,3.3V降压用的是SP6203,拨码开关用的是4P贴片式2.54mm角距的,按键是两脚贴片,microusb接口用的是5针 7.2四脚插板牛角母座,超声波是某宝上几块钱烂大街的那种,蜂鸣器是有源的,编码器是小底盘自带的,电池电压检测是电阻分压之后通过电压跟随器接入MCU内部AD测量的。 主板资源: STM32F103VET6主控芯片;两个microusb口,第一个是MCU的串口1,可作为普通的串口收发数据,通过调节板上BOOT选项,也可将其作为ISP下载程序接口;第二个是SWD硬件仿真接口;蓝牙模块,与MCU的串口2连接;WIFI模块,与MCU的串口3相连;一块1.3寸IIC协议的液晶接口;超声波接口;双电机驱动;六轴陀螺仪;电池电压检测;4个用于调试的LED;4个独立式按键;一组4P的拨码开关;有源蜂鸣器;两个6P带AB相编码器的电机接口。 我分享出来的是配套的硬件+软件,毫不夸张的说,直接把我这个PCB送去打样回来焊接好,程序烧写进去,调下参数就应该可以简单直立了。 最后简单展示一下分享的资源,至于源文件全部在附件可下载。最后希望可以帮助到真正需要的人。 电路原理图: PCB图: 打样好的PCB实物图: 程序框架图: 搭建好的实物图: 【转自51黑造梦Sir】
MATLAB中实现两轮平衡小车需要使用控制系统工具箱。以下是一个简单的例子,展示了如何使用MATLAB控制两轮平衡小车的运动。 首先,我们需要创建一个机器人模型。这里我们使用一个二维的矩阵表示机器人的位置和姿态。我们可以使用`rand`函数生成随机的初始位置和姿态。 ```matlab robot = [0, 0; 0, 0]; % 初始化机器人位置和姿态 ``` 接下来,我们需要定义一个控制器函数,用于计算机器人在给定时间步长下的控制输入。这里我们使用PID控制器作为示例。 ```matlab function u = controller(robot, target_pose, kp, ki, kd) % robot: 当前机器人状态,包括位置和姿态 % target_pose: 目标位置和姿态 % kp, ki, kd: PID控制器参数 % 计算误差 error = target_pose - robot; % 计算控制输入 u = kp * error + ki * sum(error); u = u / norm(u); u = u + kd * (target_pose - robot); end ``` 现在我们可以编写主程序,使用PID控制器控制两轮平衡小车的运动。 ```matlab % 设置仿真时间和时间步长 T = 0.1; dt = 0.01; t = 0:dt:T; % 设置目标位置和姿态 target_pose = [1, 1; 0, 1]; % 设置PID控制器参数 kp = 1; ki = 0.1; kd = 0.5; % 初始化机器人状态 robot = [0, 0; 0, 0]; % 进行仿真 for i = 1:length(t) % 计算控制输入 u = controller(robot, target_pose, kp, ki, kd); % 更新机器人状态 robot = robot + u * dt; % 绘制机器人位置 plot(robot(1), robot(2)); hold on; plot(target_pose(1), target_pose(2), 'ro'); hold off; drawnow; end ``` 这个例子中,我们使用了一个简单的二维平面和一个点作为目标位置。你可以根据实际需求修改目标位置和姿态,以及调整PID控制器参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

whik1194

如果对你有帮助,欢迎打赏。谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值