亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

自制高精度线性伺服执行器:位置反馈+PID闭环控制全攻略

项目概览

本教程制作一款线性伺服执行器,区别于通电即单向运动的普通直线电机,它具备闭环位置反馈,可精准、可重复地控制输出杆位置。

三种控制模式:
① 模拟量输入:任意电位器(线性/旋转/摇杆)
② 数字量输入:RC遥控器接收机输出
③ 串口指令:PC端Arduino IDE串口监视器直接输入目标毫米数
均仅需3线(电源两线+信号线)。

亮点功能:
• 可自定义行程起止位置
• 可调灵敏度(响应速度)
• 串口模式下支持“save”记忆当前位置、“run”循环执行记忆序列、“clear”清空、“stop”停止循环

工作原理:闭环PID控制

核心为AS5600磁编码器+PID算法驱动直流电机。复用我上期制作的定制伺服电机控制器板(含自带MCU、驱动、编码器接口),可将任意直流电机变身独立伺服电机。详细原理请参考上期视频。

简述:伺服系统=期望位置(输入)与实际位置(编码器反馈)比较 → 误差 → PID控制器 → PWM驱动电机 → 直至误差趋零。本执行器在此基础上增加丝杠机构将旋转运动转为直线运动。

机械设计

• AS5600安装于执行器尾部,监测丝杠旋转。丝杠导程8mm(每转8mm线性位移)。AS5600为12位编码器,单圈4096计数,理论分辨率8/4096 ≈ 0.00195mm。
• 电机:12V带减速箱,输出480RPM → 8转/秒 → 线速度64mm/s。最大行程150mm,全程约2.5s(含加减速约3s),故采用1:1齿轮组直驱丝杠。
• 结构尺寸由控制器PCB(40×40mm)与丝杠螺母(Φ22mm)决定。圆筒体内置微动限位开关用于回零定零点。
• 输出杆中空贯穿丝杠,顶部Φ13×Φ6轴承导向防旋转,出口端4枚微型轴承导向。整体紧凑。
• 行程可通过加长圆筒体与输出杆轻松扩展(当前受限于220×220mm打印床,最长件215mm)。

3D模型下载

Onshape在线查看(需免费账号);Cults3D下载STL/STEP文件。

3D打印要点

Creality Ender-3 V3 SE横向(Y轴)打印输出杆,少量打磨后运行更顺滑、强度更高。圆筒体竖向(Z轴)打印避免大量支撑。切片软件务必启用“水平扩展”补偿挤出膨胀,我用-0.1mm,需试打确定最佳值。V3 SE自动调平、直驱挤出、250mm/s、<$200,入门首选。详见我的V3 SE详细评测。

组装步骤

物料清单

机械:Tr8×8丝杠、Φ8×Φ22×7轴承、Φ4×Φ9×4轴承×4、Φ6×Φ13×5轴承(686)、M3/M4热熔螺母、M3/M4螺丝螺母(M3×8-10、M3×10-2、M3×10沉头-1、M4×6-2、M4×25-2、M4×30-2、M2×8-6、M4×5定位螺丝-5)
电子:AS5600磁编码器、DRV8871驱动、ATmega328P-AU、16MHz晶振、AMS1117 5V稳压、3386P方形电位器、0805电容套装、12V~50RPM直流电机

丝杠副组装

  1. 丝杠螺母(3D打印同螺纹)拧入丝杠(紧配合,承载全推力),装热熔螺母+定位螺丝锁死。
  2. 丝杠两端各装一枚Φ22轴承定位于圆筒底座,尾端装驱动齿轮(同螺纹+热熔螺母+定位螺丝),齿轮与螺母反向拧紧后用定位螺丝锁定,加装压板锁死轴承。
  3. 输出杆装热熔螺母连接螺母,顶部装Φ13×Φ6导向轴承(3D打印轴套+M3×10沉头螺丝)。
  4. 圆筒体装微动限位开关(焊线15cm, NC触点, 穿顶部线孔, M2×8固定),再用M4×25螺栓(先上两颗)连接底座。
  5. 旋转尾部齿轮将输出杆退回触发限位开关,装上出口端盖(内含4枚Φ9微型轴承导向),M4螺栓锁紧。

电机与盖板安装

  1. 电机M3×8螺栓固定,小齿轮装电机轴(热熔螺母+定位螺丝)。
  2. 齿轮啮合确认后,装齿轮/PCB后盖:底座加热熔螺母,电机/限位开关线(~20cm)穿底座线孔与盖板理线卡扣,先拧入下两颗M4螺栓留2~3mm缝隙卡入盖板再拧紧(结构紧凑导致操作稍繁琐)。

控制器PCB安装与接线

  1. PCB背面AS5600正对输出齿轮磁铁(磁化方向关键:轴向/径向磁化决定磁铁安装朝径向或轴向,我曾因磁化方向错更换过磁铁)。
  2. M2螺母/螺栓固定PCB。电机线接端子块(极性需对应代码),限位开关地线焊电解电容负极、信号线焊SCK脚(Arduino D13)。电源端子旁装5.5mm DC插座,驱动芯片加散热片,最后扣上卡扣盖板。

完成后即可接电位器或RC接收机控制。控制器板制作详见上期教程。

电路原理图

AS5600(I²C) → ATmega328P(PID运算) → DRV8871(峰值3.6A)驱动电机。12V输入经AMS1117降5V供MCU/5V器件。双路DIP开关选模式(模拟/数字/串口),一电位器调灵敏度(P项增益),一按钮设定行程起止点。PCBWay 4层板(中间层GND)白色沉金,Gerber在PCBWay社区。

无定制PCB也可用AS5600模块+Arduino板级方案实现。

代码详解

完整代码见下方(含AS5600库、PID库链接)。核心流程:

  1. 读取编码器原始值转毫米:rodPosition = as5600.readAngle() / 0.001953125 (8mm/4096)。
  2. 串口模式(modeSwitch=LOW):解析串口字符串,"save"存当前位置,"clear"清数组,数字0~150作目标位置(×45转度数,因1mm=45°),"run"循环执行数组位置(容差±25, 间隔2s),"stop"中断。
  3. 电位器/RC模式(modeSwitch=HIGH):inputSwitch选模拟(A0读值映射)或数字(pulseIn读RC脉宽1000~2000μs映射),Setpoint限幅于[startPosition, endPosition]。
  4. readEncoder():原始值转角度(×0.087890625),四象限判断跟踪圈数,totalDistance = turns×360 + angle作为PID输入。
  5. runMotor():PID计算输出→PWM驱动(死区±1, 低占空比提升<50加40, ≤5归零)。
  6. 长按设定键3秒:先松开设起点,持续按住设终点。
  7. 灵敏度电位器(A2)实时调P项:Pk1 = analogRead(A2)*0.002。

PID初值:P=0.65, I=0, D=0.1,直接影响响应品质。

精度实测

回零复位良好。1mm步进测试:首步0.8mm,后4步接近1mm,4mm步进偏差0.15mm。存在约0.25mm回程间隙(丝杠/螺母+3D打印齿轮+电机自带齿轮箱)。施加外力精度下降,可通过调PID改善。整体表现令人满意。

制造工艺

  1. 选择正确 CNC 剪切刀片供应商:巅峰性能的关键因素
  2. 冲头模具剪切刀片经验维护技巧:提升效率与寿命
  3. Arduino Nano模拟指针时钟:DS3231 RTC + 1mA电流表精密木制计时器
  4. 精密铜加工:提升表面质量的关键注意事项
  5. 优质液态硅橡胶 (LSR) 成型:耐用柔性部件的首选
  6. MIG焊接保护气体选用全攻略:按材质精准匹配
  7. 炼钢工艺演变:从古代文物到现代工艺
  8. 树莓派 + Hologram Nova 短信控制智能交流电源开关
  9. 冲头套装全解析:专业选购与应用指南
  10. 独轮车:从古中国到现代工地
  11. 凸轮轴位置传感器详解:守护发动机平稳运转的关键角色
  12. Eagle Alloy庆祝2018制造日:校园参观与金属铸造演示