littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于Teensy 4.0的PS4控制器驱动的无传感器BEMF反馈的BLDC电机控制器项目

项目简介

本项目是基于Teensy 4.0微控制器的BLDC(永磁同步直流电机)电机控制器。以PS4控制器作为输入设备,通过电压分频器获取电机后反馈值,采用无传感器BEMF(电机后反馈电压)反馈技术。运用ADC技术进行电压测量,结合电路设计与编程控制,实现对BLDC电机的驱动和控制,具备启动、停止、调速等功能。

项目的主要特性和功能

  1. 无传感器BEMF反馈:借助电压分频器获取电机后反馈值,达成无传感器的电机控制。
  2. PS4控制器输入:将PS4控制器作为输入设备,通过Python脚本接收控制信号并转化为控制命令。
  3. ADC电压测量:利用Teensy 4.0的ADC功能进行电压测量,保障电机控制的精确性。
  4. 三相逆变器电路:采用6个半桥和IR2104 IC驱动器,简化控制设计,提升电路稳定性。
  5. 保护机制:设有防止硬件损坏和人身伤害的安全措施。

安装使用步骤

安装依赖

  1. 安装jstest以解码PS4控制器的输入: bash sudo apt-get install joystick
  2. 安装pyserial库以通过USB发送命令到Teensy 4.0: bash pip3 install -r pip.freeze
  3. 安装SerialPlot以可视化数据: bash sudo apt install build-essential qtbase5-dev libqt5serialport5-dev libqt5svg5-dev cmake mercurial hg clone https://hg.sr.ht/~hyozd/serialplot cd serialplot/ mkdir build && cd build cmake .. make

运行项目

  1. 启动PS4控制器命令发送: bash python3 remoteCommand.py
  2. 启动Teensy命令服务器: bash python3 commandServer.py
  3. 打开SerialPlot并选择ttyACM0,点击打开。
  4. 按下PS4控制器上的三角按钮启动电机。
  5. 按下PS4控制器上的方形按钮停止电机。
  6. 按下右扳机控制推力设置(注意:当前功能未完全实现,可能会损坏硬件)。

无PS4控制器操作

  1. 使用SerialPlot直接发送命令到控制器。
  2. 按下三角按钮(启动)对应命令:b'\x14\x00\x00\x00\x00\x00\x00\x00\x00'
  3. 按下X按钮(停止)对应命令:b'\x00\x00\x00\x00\x00\x00\x00\x00\x00'

注意事项

  • 该项目为实验性项目,使用时需谨慎,存在硬件损坏和人身伤害的风险。
  • 项目代码按原样发布,无任何保证。
  • 请仔细阅读LICENSE文件,了解项目使用的许可条款。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】