文章目录

  • 前言
  • 硬件设计
  • 软件设计
  • 再回首

前言

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

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

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

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

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

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

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

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

硬件设计

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

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

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

软件设计

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

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

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

再回首

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

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

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

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

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

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

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

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

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


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

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

看起来还挺精致的

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

毕业设计-两轮自平衡小车主控板相关推荐

  1. 基于stm32的两轮自平衡小车4(软件调试篇)

    本篇是软件调试篇,接上一篇硬件篇:基于stm32的两轮自平衡小车3(硬件篇),本篇内容是对硬件部分的软件实现,具体模块详见目录.这里先上效果:转B站 目录 定时器PWM驱动程序 定时器编码器模式驱动程 ...

  2. 基于stm32的两轮自平衡小车3(硬件篇)

    此篇为硬件篇,接上一篇"基于stm32的两轮自平衡小车2(原理篇)".包含自行设计电路板原理图与PCB电路图的过程.详见目录. 目录 stm32管脚分配 硬件原理图 PCB电路图 ...

  3. STM32两轮自平衡小车物料采购清单

    最近辞职在家,想学点东西,看了视频教程,觉得枯燥无聊,想着是嵌入式方向的,怎么也要会一些项目吧,便准备开始着手做一些项目,就先从stm32的两轮自平衡小车开始入手吧.以下物料都是自己采购的.主控板是s ...

  4. 【STM32】两轮自平衡小车学习笔记1

    文章目录 前言 一.安装环境 二.使用步骤 1.STM32CubeMX新建工程 2.根据需求改STM32CubeMX配置 3.按键消抖代码编写 4.烧录代码 三.遇到的问题 四.编程环境配置 代码自动 ...

  5. matlab两轮自平衡小车,两轮自平衡小车(全部设计资料+设计分析)

    自己做的自平衡小车,基本达到预期效果.制作资料在压缩包里面,供参考. 该两轮自平衡小车硬件设计概述:控制器:ATmega16:8MHz: 加速度传感器:MMA2260:陀螺仪:EWTS82: 传感器的 ...

  6. matlab两轮自平衡小车,(2-3合刊) 基于MEMS惯性传感器的两轮自平衡小车设计

    摘要:着重分析了两轮自平衡小车的设计原理与控制算法,采用卡尔曼滤波算法融合陀螺仪与加速度计信号,得到系统姿态倾角与角速度最优估计值,通过双闭环数字PID 算法实现系统的自平衡控制.设计了以MPU-60 ...

  7. 基于单片机MC9S12XS128的两轮自平衡小车设计

    目 录 1.绪论 1 1.1研究背景与意义 1 1.2两轮自平衡车的关键技术 2 1.2.1系统设计 2 1.2.2数学建模 2 1.2.3姿态检测系统 2 1.2.4控制算法 3 1.3本文主要研究 ...

  8. matlab两轮自平衡小车,基于LQR算法两轮自平衡小车的系统设计与研究

    摘要: 本文旨在设计和研究两轮自平衡小车系统.两轮自平衡小车是一种非线性.强耦合.多变量.自然不稳定.具体的.实现起来相对便宜的复杂系统,给控制理论提出了很大的挑战,是检验各种控制方法处理能力的典型装 ...

  9. 基于PID调节的两轮自平衡小车的循迹控制

    基于PID调节的两轮自平衡小车的循迹控制   硬件电路篇 小车主控芯片使用飞思卡尔公司产的K60. 电源模块 车体电路使用两种电压,分别为3.3v和5v供电.车体使用7.2V的锂电池供电,为提供电路所 ...

  10. matlab两轮自平衡小车,基于MATLAB的两轮自平衡小车系统模型辨识.pdf

    基于MATLAB的两轮自平衡小车系统模型辨识 学兔兔 第1期 (总第170期) 机 械 工程 与 自动 化 NO.1 2012年 2月 MECHANICAL ENGINEERING & AUT ...

最新文章

  1. python3x 中如何使用tkMessageBox
  2. 限定filesize的数据泵导入导出操作案例
  3. linux shell 循环语句 for while until
  4. 蓝书4.1-4.4 树状数组、RMQ问题、线段树、倍增求LCA
  5. Hadoop RPC机制的使用
  6. 锁定弹出层(jquery语法)
  7. java spring hiberate_Java程序员:Spring Boot和Hibernate一起使用的技巧
  8. 【opencv有趣应用】图像拼图
  9. pip install 到指定的目录下,查看pip包位置
  10. 如何系统的自学python-如何系统学习python
  11. c语言可以发现注释错误,编译时可以发现注释中的错误_c语言中不允许使用
  12. xy坐标转换经纬度C语言,经纬度与坐标转换公式
  13. Linux下7z文件解压
  14. 金丹期前期:1.4、python语言-python的程序的核心数据类型:字符串、列表、元组、字典
  15. SN74HC165驱动
  16. C++中配置json以及使用
  17. STM32通过IIC读取BH1750光照数据
  18. 曝 OPPO 给离职员工补发年终奖,此前遭克扣
  19. Java并发包-java.util.concurrent详解
  20. 计算机usb共享网络泄密,信息泄密的三种渠道

热门文章

  1. excel部分快捷键
  2. BLDC无刷直流电机之电机驱动的控制原理示意
  3. NXP MC9S12中断寄存器配置说明
  4. 微信小程序服务通知 模板消息
  5. ce修改器我的世界服务器,ce修改器怎么修改金钱?ce修改器无限金钱图文教程
  6. oracle11 odac,oracle 11g odac 下载
  7. 华为销售专家LTC专家许浩明老师:流程是数字化转型的基础,以华为营销LTC,华为铁三角为例
  8. kali系统下libtorrent的安装编译
  9. Springboot集成Quartz定时任务,项目启动执行任务
  10. arcgis 实验教程 第二章 ArcCatalog 简单操作--字段排序