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

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

本教程展示如何制作一款 Arduino 控制的 3D 线材弯折机。这是一个典型的机电一体化系统,融合机械、电子与计算机工程,非常适合工科学生或机电入门者练手。

可观看视频或阅读下方图文教程。

工作原理概述

线材先经多组直滚轮矫直,由步进电机精准送料至弯折机构。弯折机构包含一颗步进电机(旋转弯折齿轮)和一颗微型舵机(驱动齿条弹出弯折销)。Z 轴步进电机带动整个弯折头绕线材旋转,从而实现三维成型。主控为 Arduino,电路集成在定制 PCB 上。固件内置星形、立方体、支架等自动成型程序,并提供串口手动模式。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

3D 模型与打印件

SolidWorks 建模,Thangs 在线查看/下载。齿轮、轴承座、联轴器等关键件 3D 打印(Creality CR-10,打印质量优)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

机械结构制作

底座与导轨: 8mm MDF 双层底板 + 4 根 18mm 胶合板立柱,木工胶+螺丝固定。顶板安装 3D 打印轴承座(垫 3mm MDF 调高),装入 6202 轴承(外径 35mm、内径 15mm),穿 15mm 空心铜管作为 Z 轴主轴(长约 30cm)。主轴中部固定 30 齿模数 1.5 齿轮(M3 螺母嵌入槽内锁紧)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

Z 轴驱动: NEMA 17 步进电机 + 18 齿齿轮,3D 打印安装支架(长孔便于啮合调整)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

送料机构: NEMA 17 直装顶板,输出轴接 3D 打印联轴器+铜管作为摩擦轮。对侧装压料杠杆(带轴承),通过胶合板块+T型螺母+螺栓调节压力,保证送料摩擦力。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

矫直系统: 胶合板钻孔装 3 组/2 组矫直轮(轴承+3D 打印槽形外环),对向夹紧,螺母调节间隙。前后各加一块导向板。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

弯折机构: MDF 板开 38mm 孔装 NEMA 23 大扭矩步进电机,输出轴装 18 齿模数 2.5 齿轮,与 30 齿大齿轮啮合。大齿轮集成 MG996R 舵机安装座,舵机驱动齿条机构:齿条端部装铜管作为弯折触点,AB 胶固定轴承于大齿轮。齿条小齿轮锁在舵机摇臂上。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

弯折头安装到 Z 轴: 两个 3D 打印轴夹通过 M6 螺栓锁在弯折板上,再夹紧在 Z 轴铜管上。加装 3mm 出线喷嘴和弯折头底部微动开关(用于回零)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

电路原理图

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

3 颗 DRV8825 驱动 3 个步进电机(NEMA 17×2 + NEMA 23×1),12V/3A+ 供电。MG996R 舵机另接 LM7805 降压供电(Arduino 5V 稳压器带不动)。弯折头微动开关接数字引脚(上拉)。

元件链接:

  • NEMA 17 步进电机………
  • NEMA 23 步进电机………
  • DRV8825 驱动模块………
  • 微动开关…………………
  • 12V 2A 电源适配器………
  • DC 电源插座………………
  • Arduino 开发板……………

PCB 设计

EasyEDA 双层布线,集成:3 路步进驱动器插座(含细分选择跳针)、舵机接口、双微动开关、电源端子、额外 IO 引出。生成 Gerber 交 JLCPCB 制板(首单 $2/10pcs)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

焊接排针、贴片元件、驱动器插座、Arduino 排母、端子、电源开关。步进细分选 16 细分(对应跳针)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略
DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

Arduino 固件详解

使用 AccelStepper 库驱动步进电机,Servo.h 控制舵机。定义 STEP/DIR 引脚、限位开关、串口指令缓冲。

#include <AccelStepper.h> #include <Servo.h>
#define limitSwitch 11
AccelStepper feederStepper(1, 5, 6);  // STEP=5, DIR=6
AccelStepper zAxisStepper(1, 7, 8);   // STEP=7, DIR=8
AccelStepper benderStepper(1, 9, 10); // STEP=9, DIR=10
Servo servo01;
String dataIn = ""; String manualStatus = "";
int count = 0, dist;

setup():舵机初始位(弯折销收回 40°),三电机最大速度 2000 steps/s。弯折电机回零:反向转动触发限位开关 → 设当前位置为 0 → 正转 1400 步到弯折起始位 → 再置 0。

void setup() {
  Serial.begin(9600);
  pinMode(limitSwitch, INPUT_PULLUP);
  servo01.attach(2); servo01.write(40);
  feederStepper.setMaxSpeed(2000);
  zAxisStepper.setMaxSpeed(2000);
  benderStepper.setMaxSpeed(2000);
  // 回零
  while (digitalRead(limitSwitch) != 0) {
    benderStepper.setSpeed(1200); benderStepper.runSpeed();
    benderStepper.setCurrentPosition(0);
  }
  delay(40);
  while (benderStepper.currentPosition() != -1400) {
    benderStepper.setSpeed(-1200); benderStepper.run();
  }
  benderStepper.setCurrentPosition(0);
}

loop() 读取串口指令:manual 进入手动模式,star/cube/stand 执行预设图形。

void loop() {
  String mode = Serial.readString();
  if (mode.startsWith("manual")) manual();
  if (mode.startsWith("star")) star();
  if (mode.startsWith("cube")) cube();
  if (mode.startsWith("stand")) stand();
}

星形生成逻辑(star()): 循环 5 次(五角星)。每次:送料 38mm(步进换算系数 48 steps/mm)→ 弯折销抬起 → 弯折 -52° → 回零 → 再送料 38mm → 弯折销压下 → 弯折头转到新初始位(-42°) → 弯折销抬起 → 反向弯折 +105° → 回零 -63° → 弯折销压下。角度换算常数 angleConst=18(steps/度)。

void star() {
  while (count != 5) {
    int feed = 38; int feedDistance = feed * 48;
    while (feederStepper.currentPosition() != feedDistance) { feederStepper.setSpeed(1200); feederStepper.run(); }
    feederStepper.setCurrentPosition(0); servo01.write(40); delay(200);
    int angleConst = 18;
    // 弯折 -52°
    while (benderStepper.currentPosition() != -52 * angleConst) { benderStepper.setSpeed(-700); benderStepper.run(); }
    benderStepper.setCurrentPosition(0); delay(100);
    // 回零 +52°
    while (benderStepper.currentPosition() != 52 * angleConst) { benderStepper.setSpeed(1200); benderStepper.run(); }
    benderStepper.setCurrentPosition(0); delay(100);
    // 二次送料
    while (feederStepper.currentPosition() != feedDistance) { feederStepper.setSpeed(1200); feederStepper.run(); }
    feederStepper.setCurrentPosition(0); delay(100);
    servo01.write(130); delay(200); // 压下弯折销
    // 移至反向弯折初始位 -42°
    while (benderStepper.currentPosition() != -42 * angleConst) { benderStepper.setSpeed(-1200); benderStepper.run(); }
    benderStepper.setCurrentPosition(0); delay(200);
    servo01.write(40); delay(200); // 抬起
    // 反向弯折 +105°
    while (benderStepper.currentPosition() != 105 * angleConst) { benderStepper.setSpeed(700); benderStepper.run(); }
    benderStepper.setCurrentPosition(0); delay(50);
    // 回零 -63°
    while (benderStepper.currentPosition() != -63 * angleConst) { benderStepper.setSpeed(-1200); benderStepper.run(); }
    delay(100); servo01.write(130); benderStepper.setCurrentPosition(0); count++;
  }
}

手动模式(manual()): 串口指令解析——f[mm] 送料,b[deg] 弯折(支持负号),z[deg] Z 轴旋转,end 退出。弯折时自动处理弯折销上下、正反向初始位切换。

if (dataIn.startsWith("f")) { // 送料
  dist = dataIn.substring(1).toInt() * 48;
  while (feederStepper.currentPosition() != dist) { feederStepper.setSpeed(1200); feederStepper.run(); }
  feederStepper.setCurrentPosition(0);
}
if (dataIn.startsWith("b")) { // 弯折
  // 解析角度,处理正负号,自动切换弯折销状态与初始位
}
if (dataIn.startsWith("z")) { // Z轴
  // 解析角度驱动 zAxisStepper
}

完整代码(含 cube()、stand()、完整 manual())见文末。

已知问题与改进

矫直系统若拧太紧会导致送料打滑。可尝试:更高强度材料替代铜管、重新设计送料轮结构(如滚花轮、双轮夹持)。

DIY Arduino 3D 线材弯折机:机电一体化项目全攻略

教程结束。欢迎提问交流,关注我的 Arduino 项目合集!

制造工艺

  1. 缝纫机演进:从19世纪创新到现代自动化制造
  2. 刺铁丝:历史、结构与现代用途解析
  3. 优质六角网机:农业禽畜养殖的理想围网设备
  4. 为什么线切割EDM机床能实现精度与成本双赢
  5. 板材折弯机详解:类型、工艺与应用
  6. 台湾线切割EDM技术:金属加工领域的精密洞察
  7. 台湾顶级线切割EDM机:精密切割解决方案领航者
  8. 专业CNC管材弯曲机:精准高效的管材成型方案
  9. 方管弯曲机专家指南:原理、结构与选型
  10. 先进液压管材弯曲机:车间精密加工的得力助手
  11. 电动弯管机:技术原理与应用全解析
  12. 高端电动弯管机:精度、可靠性与成本效益