
【ART-Pi】【FOC】无刷电机驱动器ODrive AP0.3
简介
本项目基于ODrive的V3.5硬件,为ATR-Pi拓展板,能实现两路无刷电机闭环控制,具有用于人机交互的屏幕和五向开关
简介:本项目基于ODrive的V3.5硬件,为ATR-Pi拓展板,能实现两路无刷电机闭环控制,具有用于人机交互的屏幕和五向开关开源协议
:GPL 3.0
描述



写在前面
1、可以直接刷官方ODrive 3.6-24V固件,与官方OD 3.6使用方式无异
2、已测试大部分功能(打样前最好克隆一次工程,并且保留导出的gerber文件,方便检查硬件问题,导出gerber前最好做下DRC,有报错请自行修改或联系我修改)
导出gerber前最好做下DRC
3、针对成本和功能优化过的版本:【FOC】无刷电机驱动器ODrive AP1.0-DRV8303版
简介
本项目基于ODrive的V3.6硬件,为 ART-Pi 拓展板(也适用于 树莓派 Raspberry Pi ——只焊接P1拓展引脚),能实现两路无刷电机闭环控制,具有用于人机交互的屏幕和五向开关
交流群1:778255240
交流群2:851421965
交流群3:732557609
交流群4:957377627(我的群,希望准备打板子的小伙伴能加群,会及时通知修改状况——尤其是BUG)
Layout


项目说明
本项目以学习为目的,对ODriver的硬件进行了重构以契合ART-Pi,拟驱动对象为小功率无刷电机
ART-Pi通过串口配置并使用串口或方向/脉冲信号或PWM信号控制拓展板
相较于原项目,删除了功率耗散电阻电路但预留了拓展接口
增加了1.14' IPS屏幕和五向开关,可选择二者由ODrive使用还是ART-Pi使用
最初打算移植ODrive至ART-Pi,直接驱动,但受限于IO功能,退而求次
草草布线,继续优化中
(当前版本可直接刷官方固件实现基本功能,4月7日前做的板子有BUG,需要修改固件)
拓展板:
https://oshwhub.com/Knight_Sin/abcd_copy
编码器:
https://oshwhub.com/Knight_Sin/art-pi-2312s-bian-ma-qi
计划中的任务
1、接口测试
(1)外部接口
1) SPI编码器接口
2)CAN接口
3) PWM输入 √
4) S/D输入 √
4) 电压输入
(2)ART-Pi接口
1) UART接口 √
2) PWM输入 √
3) S/D输入 √
4) 电压输入
2、LCD多级菜单
(1)FLSAH字库
(2)GUI设计
(3)多级菜单
修改记录
1、(2021年1月19日02点07分)Motor0的DRV8301的BUCK电路是多余的,将其改造为输出12V,为功率耗散电阻电路(VGS)供电

2、(2021年1月20日23点46分)整理了走线和丝印,引出了AVCC为刹车电阻电路温度采样电路供电,第一版PCB定稿,板子名称暂定ODrive AP,当前版本号0.1,全称ODrive AP试做一型
3、(2021年1月25日16点53分)将47uF/35V的钽电容换成1812封装的47uF/35V的MLCC
4、(2021年2月4日17点28分)调整了采样电阻部分的走线
5、(2021年2月6日22点12分)增加了硬件复位按钮
6、(2021年2月14日20点49分)尽量引出了剩余的IO;增加了一片W25Q32,意图将设置保存在W25Q32中
7、(2021年3月1日15点13分)确认了五向开关封装错误,已修正,如果已经打板,可以将五向开关底部大的定位柱削去然后旋转180°焊接
// 8、(2021年3月5日02点45分)将屏幕的CS/SDA/SCL连接至STM32F4xxVGT6的SPI5的位置(405没有SPI5,拟替换为412)(仔细考察了下,发现412和405引脚竟然不兼容,如若修改,牵涉范围过大,是否替换还需慎重考虑)
8、(2021年3月18日19点58分)将MCU复位引脚引出到ART-Pi接口,以满足ART-Pi强制复位驱动器的需求
9、(2021年3月19日01点57分)对接口进行了拆分,将原14P的座子拆成2个PWM或STEP/DIR或模拟信号输入接口、2个SPI接口(可接入SPI编码器)、一个UART接口,将CAN接口以XH2.54的插座形式引出而非原来的排针;大幅度修改了走线,目前只是连通,还需要进一步优化;调整了部分丝印(尚未完成)。(工作还在进行中,如果发现工程正在被编辑请暂时不要克隆,平时会切换回发布版本)
10、(2021年3月19日20点02分)第二版PCB定稿,当前版本号0.2
11、(2021年3月20日22点05分)为nFault、EN_GATE增加了测试点
12、(2021年4月5日00点50分)修复了一个BUG:axis1的DRV8301的SP2意外地联通到底层PGND铜皮
13、(2021年4月7日00点07分)修复了一个BUG:M1_SO1/M1_SO2连接顺序错误
14、(2021年4月8日20点15分)调整了IN0/IN1接口的顺序(PCB仅仅修改丝印),以符合使用习惯
15、(2021年4月13日20点44分)调整了IN0/IN1/CAN接口的引脚顺序,使之更符合使用习惯;修改IN0/IN1接口的电源为5V,此引脚通常应该不接,但若是使用单一电源供电,可以由此端口給控制板供电
16、(2021年4月29日18点29分)电流采样方式由单端采样修改为差分采样;增加3.3V/A3.3V/5.0V/12.0V测试点,并为所有测试点增添丝印;新增NRST复位引脚,连接到ART-Pi的PA15引脚,保留旧复位引脚连接,以兼容旧版程序;替换1117为RT9193-33;改变设计思想,以实用为主,新增部分接口说明说明丝印;提升版本号为 0.3
17、(2021年5月4日18点55分)修复一个bug,RT9193-33的EN脚有效电平错误,应为高电平使能
18、(2021年5月31日19点12分)DRV8303+TPS54160替换DRV8301,程序完全兼容,无需改动,新建一个工程将8301版本和8303版本分开

https://oshwhub.com/Knight_Sin/abcd_copy_copy_copy_copy_copy
19、(2021年6月17日00点34分)去除部分IO引出,修改走线,持续精简优化中
调试记录
https://blog.csdn.net/qq_17459305/article/details/115522151
ODrive项目简介
ODrive是一个基于STM32的高性能FOC伺服驱动器,其可以同时驱动两个无刷电机,早期被大量使用与3D打印机或自制CNC电气系统的设计中,知名极客James Bruton使用其作为大部分自己制作机器人伺服驱动的核心单元,之前Stanford开源的8自由度四足机器人Doggo同样也采用了Odrive作为核心的驱动器。[1]
官网:https://odriverobotics.com/
固件:https://github.com/odriverobotics/ODrive
硬件:https://github.com/madcowswe/ODriveHardware
文档:https://docs.odriverobotics.com/

参考文献
[1]高性能开源伺服器ODRIVE - 电机与控制 - CSDN
优质资料推荐
CSDN博主:codenocold
应用篇
ODrive应用 #1 ODrive入门指南 - codenocold - CSDN
ODrive应用 #2 odrivetool入门指南 - codenocold - CSDN
ODrive应用 #3 odrive_gui入门指南 - codenocold - CSDN
ODrive应用 #4 配置参数&指令 - codenocold - CSDN
ODrive应用 #5 输入接口 - codenocold - CSDN
ODrive应用 #6 编码器 - codenocold - CSDN
ODrive应用 #7 控制器&参数整定- codenocold - CSDN
ODrive应用 #8 平衡车轮毂电机和遥控器设置指南- codenocold - CSDN
ODrive应用 #8(疑误) 故障排除- codenocold - CSDN
干货篇
ODrive干货 #1 Windows下开发环境搭建 - codenocold - CSDN
ODrive干货 #2 Ubuntu下开发环境搭建 - codenocold - CSDN
ODrive干货 #3 ODriveTool 指令大全 - codenocold - CSDN
ODrive干货 #4 为什么无刷电机电流和电源电流不同 - codenocold - CSDN
实例篇
ODrive实例 #1 电机配置实例(4250-520KV + TLE5012B-E1000) - codenocold - CSDN
ODrive实例 #2 电机配置实例(小米9号平衡车轮毂电机) - codenocold - CSDN
开发篇
ODrive开发 #1 ODrive固件开发指南 - codenocold - CSDN
ODrive开发 #2 配置Visual Studio Code开发环境 - codenocold - CSDN
ODrive开发 #3 配置Eclipse开发环境 - codenocold - CSDN
其他篇
ODrive 通讯协议 - codenocold - CSDN
ODrive ASCII格式协议 - codenocold - CSDN
B站UP:唐老师讲电赛
开源ODrive直流无刷电机BLDC控制系统,基于DRV8301与STM32F405的FOC伺服驱动器硬件介绍 - 唐老师讲电赛 - bilibili
基于DRV8302与STM32F405的开源VESC直流无刷电机BLDC控制系统,L6234与Arduino的SimpleFOC,ODriveFOC伺服驱动器 - 唐老师讲电赛 - bilibili
基于DRV8323RH与STM32F446RET6的开源四足机器人FOC驱动电路 - 唐老师讲电赛 - bilibili
完美驯服DRV8301 DRV8302 DRV8323芯片 - 唐老师讲电赛 - bilibili
B站UP:灯哥开源
【教程】灯哥教你入门Odrive无刷驱动器(1)-开发调试环境配置 - 灯哥开源 - bilibili
【教程】灯哥教你入门Odrive无刷驱动器(2)-电机、编码器参数配置和电机校准 - 灯哥开源 - bilibili
知乎:稚晖 / B站UP:稚晖君
【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 稚晖的文章 - 知乎
芯片数据手册
DRV8301数据手册:http://www.ti.com/cn/lit/gpn/drv8301
TPS54160(DRV8301内置)数据手册:http://www.ti.com/cn/lit/gpn/tps54160
五向开关数据手册:https://item.szlcsc.com/471384.html
焊接式1.14吋IPS:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5c8f2e8dijiLL5&id=586409078629&_u=l21l4csi9ba5
额外推荐
这里推荐一下Mo大佬的板子
仿制ODrive双轴MINI FOC控制器,基于DRV8301,外形小巧,造型美观,已打样测试,源文件见附件

设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论