项目简介
本项目是基于Teensy 4.0微控制器的BLDC(永磁同步直流电机)电机控制器。以PS4控制器作为输入设备,通过电压分频器获取电机后反馈值,采用无传感器BEMF(电机后反馈电压)反馈技术。运用ADC技术进行电压测量,结合电路设计与编程控制,实现对BLDC电机的驱动和控制,具备启动、停止、调速等功能。
项目的主要特性和功能
- 无传感器BEMF反馈:借助电压分频器获取电机后反馈值,达成无传感器的电机控制。
- PS4控制器输入:将PS4控制器作为输入设备,通过Python脚本接收控制信号并转化为控制命令。
- ADC电压测量:利用Teensy 4.0的ADC功能进行电压测量,保障电机控制的精确性。
- 三相逆变器电路:采用6个半桥和IR2104 IC驱动器,简化控制设计,提升电路稳定性。
- 保护机制:设有防止硬件损坏和人身伤害的安全措施。
安装使用步骤
安装依赖
- 安装
jstest
以解码PS4控制器的输入:bash sudo apt-get install joystick
- 安装
pyserial
库以通过USB发送命令到Teensy 4.0:bash pip3 install -r pip.freeze
- 安装
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
运行项目
- 启动PS4控制器命令发送:
bash python3 remoteCommand.py
- 启动Teensy命令服务器:
bash python3 commandServer.py
- 打开SerialPlot并选择
ttyACM0
,点击打开。 - 按下PS4控制器上的三角按钮启动电机。
- 按下PS4控制器上的方形按钮停止电机。
- 按下右扳机控制推力设置(注意:当前功能未完全实现,可能会损坏硬件)。
无PS4控制器操作
- 使用SerialPlot直接发送命令到控制器。
- 按下三角按钮(启动)对应命令:
b'\x14\x00\x00\x00\x00\x00\x00\x00\x00'
- 按下X按钮(停止)对应命令:
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
注意事项
- 该项目为实验性项目,使用时需谨慎,存在硬件损坏和人身伤害的风险。
- 项目代码按原样发布,无任何保证。
- 请仔细阅读LICENSE文件,了解项目使用的许可条款。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】