自制ESP32自平衡小车,电路代码全开源

内容分享5小时前发布
0 15 0

自制了一个基于ESP32simplefoc自平衡小车。这也是一个少见的用FOC无刷电机制作的平衡小车。

00:00

本项目的学习价值较高!

关于foc无刷电机

foc无刷电机一般应用于机器人关节,相机云台电机控制等领域。

自制ESP32自平衡小车,电路代码全开源

实际上,普通的平衡小车,都是用有刷电机制作的。但如果你用foc无刷电机来做,那你会得到这些好处:

  • 小车扭矩更大,这让小车可以直驱;而有刷电机则需要带减速器才能满足扭矩要求。
  • 响应速度更快。
  • 采用无刷电机可以把小车做的更紧凑美观。

小车主要功能

  • 小车板载双路无刷电机驱动及电流环芯片,每路最大电流2.5A可驱动两个云台无刷电机,可控制到电流;
  • 小车可自平衡,可通过手机app蓝牙连接控制进退,转向;
  • 搭载双排RGB,每排共24个灯,可以扩展成更多,实现多种灯光特效且不影响车辆控制;
  • 图传接口,通过外接ESP-CAM模块实现WIFI图传,可在手机上查看。

电路设计图

自制ESP32自平衡小车,电路代码全开源

用嘉立创EDA设计的原理图

自制ESP32自平衡小车,电路代码全开源

用嘉立创EDA设计的PCB

电路分析

电路部分,分为:一个主板,两个编码器小板,两个RGB灯板。

  • 其中主板部分集成了无刷电机驱动,控制部分,MPU6050传感器,供电,串口和各种接口
  • 驱动器板搭载AS5600磁编码器,通过IIC与主板通信
  • 主板为RGB提供5V电源与控制信号 电机采用2210无刷云台电机,7对极

1.无刷电机驱动部分

驱动是小车的核心部分,是小车动起来的关键。

初次学习FOC,我采用灯哥开源FOC驱动的方案。 电机驱动采用L6234P三相H桥集成驱动芯片。

自制ESP32自平衡小车,电路代码全开源

电流检测采用INA240A2芯片,放大增益为50,这个芯片也比较贵,可以用INA240A1取代,放大增益为20,我焊的时候用的就是这个,一样能用。

自制ESP32自平衡小车,电路代码全开源

电机位置检测采用AS5600绝对值磁编码器芯片,IIC通讯,我为这个芯片画了个小板子附在电机轴处,与主板相连,同时还需要在电机轴线处固定一个径向磁铁。

自制ESP32自平衡小车,电路代码全开源

自制ESP32自平衡小车,电路代码全开源

2.控制部分

由主要功能可知,需要MCU具有蓝牙和WIFI功能,还需要足够的性能用于FOC算法,同时控制RGB。

esp32可以说正合适,esp32有320K RAM,4M ROM,两个core,一个核专门用来跑foc算法,另外一个核用来跑其他程序包括RGB控制,simplefoc官网上说esp32单次foc运算能有1ms,引脚也足够多,满足平衡控制的需求。

自制ESP32自平衡小车,电路代码全开源

3.传感部分

平衡控制需要通过传感器检测到小车自身的姿态,我采用最常见的MPU6050 6轴加速度计陀螺仪芯片。

自制ESP32自平衡小车,电路代码全开源

WIFI图传由主板通过2.54排母插接ESP-CAM模块实现

自制ESP32自平衡小车,电路代码全开源

4.电源部分

  • 电池选用3S 900mah航模电池,提供12V电压给电机
  • TPS5430开关芯片将12V转5V,供给到RGB和ESP-CAM模块
  • AMS1117将5V降到3.3V

5.RGB部分

RGB采用WS1802B LED灯,MCU一个IO口就可以驱动一串RGB

自制ESP32自平衡小车,电路代码全开源

自制ESP32自平衡小车,电路代码全开源

代码部分

无刷电机的驱动电路和算法要比有刷电机更加复杂一些。整体软件框架基于arduino+freertos。

无刷电机平衡小车的理论部分需要了解:

1.无刷电机磁场定向控制FOC算法 2.平衡车建模和控制算法

{
    // See http://go.microsoft.com/fwlink/?LinkId=827846
    // for the documentation about the extensions.json format
    "recommendations": [
        "platformio.platformio-ide"
    ],
    "unwantedRecommendations": [
        "ms-vscode.cpptools-extension-pack"
    ]
}
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
//
// PIO Unified Debugger
//
// Documentation: https://docs.platformio.org/page/plus/debugging.html
// Configuration: https://docs.platformio.org/page/projectconf/section_env_debug.html

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "platformio-debug",
            "request": "launch",
            "name": "PIO Debug",
            "executable": "c:/Users/Alpha/Documents/PlatformIO/Projects/esp32_simplefoc_freertos_test/.pio/build/esp32dev/firmware.elf",
            "projectEnvName": "esp32dev",
            "toolchainBinDir": "C:/Users/Alpha/.platformio/packages/toolchain-xtensa-esp32/bin",
            "internalConsoleOptions": "openOnSessionStart",
            "preLaunchTask": {
                "type": "PlatformIO",
                "task": "Pre-Debug"
            }
        },
        {
            "type": "platformio-debug",
            "request": "launch",
            "name": "PIO Debug (skip Pre-Debug)",
            "executable": "c:/Users/Alpha/Documents/PlatformIO/Projects/esp32_simplefoc_freertos_test/.pio/build/esp32dev/firmware.elf",
            "projectEnvName": "esp32dev",
            "toolchainBinDir": "C:/Users/Alpha/.platformio/packages/toolchain-xtensa-esp32/bin",
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "type": "platformio-debug",
            "request": "launch",
            "name": "PIO Debug (without uploading)",
            "executable": "c:/Users/Alpha/Documents/PlatformIO/Projects/esp32_simplefoc_freertos_test/.pio/build/esp32dev/firmware.elf",
            "projectEnvName": "esp32dev",
            "toolchainBinDir": "C:/Users/Alpha/.platformio/packages/toolchain-xtensa-esp32/bin",
            "internalConsoleOptions": "openOnSessionStart",
            "loadMode": "manual"
        }
    ]
}

由于格式缘由,代码仅展示部分,需要代码和电路图源文件,请在评论区滴滴,无偿分享的哦。

本文参考资料来源:立创开源硬件平台《
balance_car_esp32_simplefoc
》作者:FranHawk

https://oshwhub.com/FranHawk/balance_car_esp32_simplefoc#P3


如果你认为这篇文章还不错,欢迎点赞、关注、转发、收藏~

我会持续更新优质开源项目!

文中图片来源于网络,侵删!

© 版权声明

相关文章

15 条评论

  • 头像
    小别兔别又别yep 投稿者

    这个作品值得利用业余时间DIY自制玩玩,既能积累产品开发的软硬件技术水平,又能玩能用。

    无记录
    回复
  • 头像
    阿兽 读者

    虽然打板并不实惠,但是嘉立创、立创商城和立创EDA还是挺不错的

    无记录
    回复
  • 头像
    薛向珍 读者

    正在用这芯片做电机驱动,希望能分享

    无记录
    回复
  • 头像
    真白盘游戏 投稿者

    参考文末灰色连接~都在里面

    无记录
    回复
  • 头像
    中村书馆 读者

    刚刚在立创打样,好便宜,准备发货了

    无记录
    回复
  • 头像
    猫猫虫子 读者

    求代码及源文件,谢谢!

    无记录
    回复
  • 头像
    宥益者 读者

    有待改进,要原地保持,不能前进后退

    无记录
    回复
  • 头像
    小猴子 读者

    请问有microPython版的不

    无记录
    回复
  • 头像
    朝阳宝珠姐 投稿者

    怎么回去源码

    无记录
    回复
  • 头像
    廢柴 读者

    不错就是没时间玩

    无记录
    回复
  • 头像
    柠檬之都 读者

    求源码 楼主万岁

    无记录
    回复
  • 头像
    北京博思源教育咨询 读者

    好玩的东西,全套元件都是立创买的吗?多少钱?

    无记录
    回复
  • 头像
    rickyaoyao 投稿者

    立创开源必顶

    无记录
    回复
  • 头像
    游戏名侦探 投稿者

    加油国产,突破丑国卡脖子。

    无记录
    回复
  • 头像
    明月当空照 读者

    收藏了,感谢分享

    无记录
    回复