0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的平衡小车设计

FPGA研究院 来源: FPGA之旅 2023-11-30 09:31 次阅读

一. 硬件介绍

底板资源:

TB6612电机驱动芯片 * 2

MPU6050陀螺仪

WS2812 RGB彩色灯 * 4

红外接收头

ESP-01S WIFI

核心板

微相 A7_Lite Artix-7 FPGA开发板

电机采用的是平衡小车之家的MG310(GMR编码器)电机。底板上有两个TB6612芯片,可以驱动四个电机,除了做平衡小车之外,也可以用来作为四驱车的底板,非常nice,同时支持两种控制方式,推荐通过红外遥控进行控制,实现起来非常简单,红外遥控器也非常便宜。

二. RTL 介绍

本次设计分为三大部分: MPU6050姿态解算 , 电机驱动(PWM+编码器) , 平衡控制,遥控器控制的模块另外算。其中MPU6050姿态解算为设计的核心,解算出来的角度越稳,平衡控制就越容易,小车也就越稳定。平衡控制其核心是调节PID的参数,参数调的好,小车没烦恼。

这里只对框架上做一个简单的介绍

整体架构如下

10bce2f2-8f10-11ee-939d-92fbcf53809c.jpg        

1. MPU6050姿态解算

模块数据流如下图所示,将获取到的角度进行一个8阶的FIR滤波,加速度进行一个2阶的IIR滤波,即可得到相对平滑一点的数据,然后经过Cordic算法进行姿态解算,即可得到roll和pitch角度,为了得到更加平滑一点的roll和pitch数据,这里将得到的角度再进行了一个1阶的均值滤波(本来使用的是3阶的均值滤波,但是相位延时有点大,所以修改为1阶的了)

10cadeb6-8f10-11ee-939d-92fbcf53809c.png        

2. 电机驱动(PWM+编码器)

框图如下,在实际使用的时候,只使用了速度的检测,角度检测这部分功能就去掉了,PWM生成模块另算,这部分的代码是比较简单的,就不作过多的说明了。

10db03ea-8f10-11ee-939d-92fbcf53809c.png        

3. 平衡控制

平衡车的控制采用三环: 直立环、速度环、转向环,来进行控制,直立环采用的是PID进行控制,速度环采用的是PI进行控制,而转向环由于yaw在MPU6050解算的时候,误差较大,所以没有使用PID来进行控制转向的速度,而是直接输出的两轮的速度差进行控制。框图如下,三环通过PID进行调节后,相加得到最终的PWM值进行输出。三5环的具体实现可以参考开源的平衡小车C语言实现,所以难点不在代码实现上,而在于PID的调参上面,没有经验且没有人指导的情况下,那简直是噩梦,如果长时间没有调好的话,容易怀疑是不是小车的结构有问题(但小车的结结构一般是没有问题的,哈哈哈)。

10edda10-8f10-11ee-939d-92fbcf53809c.jpg        

4. 遥控控制

本来想使用低成本高效率的红外遥控来对小车进行控制的,但是出现了意外,接收到的红外遥控值不稳定,按同一个按键,接收到值居然不一样。没办法,还好弄了个esp-01S,可以通过tcp进行连接,之前弄四轴飞机的有程序,可以拿来直接使用,美滋滋。

三. 总结

FPGA平衡小车的基本架构就已经介绍完了,很多模块在都已经实现过,拿来通过简单的修改就可以直接用了,代码实现上还是比较轻松的,难点在于PID的调参上,也是花了非常多的时间。

速度环,还是有点问题,能力时间有限, 没有调好(ಥ﹏ಥ),希望后面有时间了可以接着调。

来源:FPGA之旅

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21640

    浏览量

    601385
  • 陀螺仪
    +关注

    关注

    44

    文章

    776

    浏览量

    98509
  • 开发板
    +关注

    关注

    25

    文章

    4914

    浏览量

    97103
  • 驱动芯片
    +关注

    关注

    13

    文章

    1245

    浏览量

    54403
  • 平衡小车
    +关注

    关注

    1

    文章

    39

    浏览量

    12487

原文标题:FPGA实现平衡小车

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    平衡小车

    平衡小车
    云端AI
    发布于 :2023年04月10日 18:53:02

    两轮平衡小车

    两轮平衡小车两轮平衡小车两轮平衡小车两轮平衡
    发表于 07-20 21:07

    stm32制作平衡小车问题?

    最近在做平衡小车,遇到的问题是:角度环调节好了,速度环加上去向前一点距离等待平衡之后再向前这样操作小车能够一直向前并且不会倒下,但是一下子操作向前的距离太大,
    发表于 10-14 20:00

    基于STM32的双轮平衡小车设计

    预告:代码及文档下载方案分析1、基于STM32F103C8T6 单片机的双轮自平衡小车系统;2、以 MPU6050 三轴陀螺仪加速计为传感器的姿态感知系统;3、通过卡尔曼滤波对传感器的数据进行滤波
    发表于 11-30 08:03

    两轮自平衡小车自主设计

    你只需要一个UNO和一个ITEAD提供的自平衡扩展板,再加上你的小车底盘就可以了。配合速度环,即使重心不在小车中心,小车也能自己调整角度,达到重心
    发表于 05-13 11:28 3次下载

    两轮自平衡小车的设计与实现

    两轮自平衡小车的设计与实现,基于STM32控制的自平衡双轮小车,其中机械部分包括车体、车轮、步进电机、锂电池等部件设计加工。
    发表于 05-19 15:16 20次下载

    平衡小车调试指南

    关于平衡车的调试指南,就是一种PID的基本实现,基于平衡小车之家的文件
    发表于 07-13 17:43 0次下载

    STM32平衡小车平衡原理详细介绍和程序及算法的概述免费下载

    平衡小车是通过两个电机运动下实现小车不倒下直立行走的多功能智能小车,在外力的推拉下,小车依然保持不倒下。这么一说可能还没有很直观的了解究竟什
    发表于 07-16 08:00 54次下载
    STM32<b class='flag-5'>平衡</b><b class='flag-5'>小车</b>的<b class='flag-5'>平衡</b>原理详细介绍和程序及算法的概述免费下载

    基于STM32设计的智能平衡小车源代码免费下载

    本文档的主要内容详细介绍的是基于STM32设计的智能平衡小车源代码 支持手机及电脑上位机控制的平衡小车
    发表于 07-16 08:00 123次下载

    平衡小车直流电机驱动的介绍及如何平衡小车如何测速?

    本文档的主要内容详细介绍的是平衡小车直流电机驱动的介绍及如何平衡小车如何测速?资料概述
    发表于 09-11 18:04 41次下载
    <b class='flag-5'>平衡</b><b class='flag-5'>小车</b>直流电机驱动的介绍及如何<b class='flag-5'>平衡</b><b class='flag-5'>小车</b>如何测速?

    平衡小车调试总结

    前言本文将总结平衡小车的调试经验,经过几晚的努力平衡小车已经可以比较稳定的平衡了。本文平衡
    发表于 01-14 12:29 14次下载
    <b class='flag-5'>平衡</b><b class='flag-5'>小车</b>调试总结

    stm32平衡小车

    stm32f103c8t6的平衡小车的代码
    发表于 06-15 14:51 50次下载

    STC节能平衡小车浅析

    电子发烧友网站提供《STC节能平衡小车浅析.pdf》资料免费下载
    发表于 10-25 15:46 0次下载
    STC节能<b class='flag-5'>平衡</b><b class='flag-5'>小车</b>浅析

    平衡小车与电机PID系列教程

    平衡小车与电机PID系列教程可配合bilibili教学视频使用
    发表于 07-31 18:30 29次下载

    STM32平衡小车原理图

    STM32f103c8t6平衡小车原理图
    发表于 07-05 10:54 1次下载