工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

概要

機械・電気・コンピュータ工学が融合した典型的なメカトロニクスシステムである、Arduinoベースの3Dワイヤーベンディングマシンを自作します。工学系学生やメカトロニクス初心者にとって格好の学習プロジェクトです。

ワイヤーは複数のローラー(ストレートナー)を通って矯正され、ステッピングモーターで精密に送り出されます。曲げ機構にはステッピングモーターと小型サーボを使用。さらにZ軸用ステッピングモーターで曲げ機構全体をワイヤー周りに回転させ、立体形状を創出します。全制御はArduinoとカスタムPCBで行います。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

プログラムには星形、立方体、シンプルなスタンドなどの自動成形機能と、シリアルモニターからコマンド入力して手動で形状を作るマニュアルモードを実装。

3Dモデル設計

3Dモデリングソフトで設計。Thangsでモデル公開中(STLファイルダウンロード可、ブラウザ閲覧可)。ギア、ベアリングピローブロック、シャフトカプラーなど一部パーツは3Dプリントで製作。設計参考:YouTube動画。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

機械組み立て

MDF(8mm)と合板(18mm)でフレームを製作。円鋸で切り出し、木工用ボンドとネジで組み立て(90°アングルクランプ使用)。ベースはMDF2枚と合板柱4本。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

天板に3DプリントしたベアリングピローブロックをM8ボルトで固定(高さ調整用に3mm MDFスペーサー挿入)。6202ベアリング(外径35mm、内径15mm)を嵌め、その中に15mm中空シャフト(銅管、約30cm)を通します。これがZ軸で、曲げ機構をワイヤー周りに回転させます。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

ベアリング間にモジュール1.5、30歯の3Dプリントギアを配置(M3ナットスロット付き、ボルトでシャフトに固定)。Z軸ステッピングモーター(NEMA 17)を専用ブラケットに取り付け、18歯ギアをシャフトに固定。ブラケットはスロット穴でギア噛み合い調整可能。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

フィーダー機構

フィーダー用ステッピングモーター(NEMA 17)を天板に直接取り付け。シャフトに3Dプリントシャフトカプラーと銅管(フィーダー接触面)を装着。反対側にレバーとベアリングを配置、合板片とTナット・ボルトで押し付け圧力を調整し、ワイヤー把持力を確保。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

ワイヤーストレートナー

M8ボルト3本で合板固定、ベアリングと3Dプリント溝付き外輪でローラーを製作。片側3ローラー、反対側2ローラー(スロット加工でボルト頭をフラッシュ化)。2本のボルトで両側を挟み、ナットで圧力調整。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

前後にワイヤーガイド用合板を追加。

曲げ機構(ベンダー)

MDFプレートにNEMA 23ステッピングモーター(大型)を搭載(38mmホールソーで穴開け)。出力軸にモジュール2.5、18歯ギアを固定。これに噛み合う30歯ギアは、MG996Rサーボ搭載プレート一体型のカスタム設計。サーボがラック&ピニオン機構(ピン)を駆動し、ワイヤーを曲げます。エポキシでベアリングと銅管(接触面)をギアに固定。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

大ギアをM8ボルトで固定、ラックとサーボを取り付け、ピニオンギアをサーボホーンにM3ボルトで固定。ホーンをサーボに装着で曲げ機構完成。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

Z軸への取り付けと仕上げ

3Dプリントシャフトクランプ2個でベンダーをZ軸シャフトに固定(M6ボルト)。3mmノズルをシャフト先端に取り付け(ワイヤー吐出口)。ベンダー底部にマイクロリミットスイッチを配置(ベンダー原点復帰用)。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

回路図

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

3つのステッピングモーターをDRV8825ドライバー3個で制御。電源は12V/3A以上。サーボ(MG996R)は電流が大きいためArduino 5Vレギュレーターではなく、別途LM7805 5Vレギュレーターで供給。リミットスイッチはプルアップ抵抗付きでデジタルピン接続。

必要な部品

PCB設計

EasyEDAでカスタムPCB設計(両面配線)。ステッピングドライバーのマイクロステップ選択ピン、追加リミットスイッチ接続、Arduino未使用ピンも引き出し。JLCPCBで発注、品質良好。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

PCB組み立て

ピンヘッダーをはんだ付け(着脱容易に)。小型部品(コンデンサー、抵抗、LM7805、ターミナルブロック)は直接実装。ステッピングドライバーとArduinoを装着、電源コネクターとスイッチ、モーターケーブル、サーボ(D2ピン、LM7805給電)を接続。マイクロステップは1/16に設定(該当ピンをショート)。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド
Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

Arduinoコード解説

ステッピング制御にAccelStepperライブラリ(Mike McCauley作)、サーボ制御にServoライブラリを使用。


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

setup()でサーボ初期位置(ピン収納)、ベンダー原点復帰(リミットスイッチまで回転→0設定→1400ステップ戻って曲げ開始位置に設定)。各ステッピングの最大速度2000ステップ/秒に設定。


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();
}

星形成形関数

5回繰り返し(星の5頂点)。フィード長38mm(ステップ換算×48)、ピンアップ、52°曲げ、戻し、再フィード、ピンダウン、ベンダーを逆方向初期位置(-42°)へ、ピンアップ、105°逆曲げ、-63°戻し、ピンダウンで1サイクル完了。


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);
    // 戻し
    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); // ピンダウン
    // 逆方向初期位置へ
    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++;
  }
}

立方体、スタンドも同様の手法で座標計算し実装。マニュアルモードでは「f[mm]」でフィード、「b[度]」で曲げ、「z[度]」でZ軸回転を対話制御可能。


if (dataIn.startsWith("f")) {
  dataInS = dataIn.substring(1); dist = dataInS.toInt();
  dist = dist * 48;
  while (feederStepper.currentPosition() != dist) { feederStepper.setSpeed(1200); feederStepper.run(); }
  feederStepper.setCurrentPosition(0); delay(100);
}

完全なコード

完全なArduinoコードはこちら(記事末尾に掲載:star(), cube(), stand(), manual()全関数含む)

既知の問題と改善点

ワイヤーストレートナーを強く締めるとフィーダーが把持力を失いワイヤーが送れなくなる問題があります。銅管より強度の高い材料を使うか、フィーダー機構を再設計することで解決可能です。

Arduino制御3Dワイヤーベンディングマシンの自作:ステップバイステップガイド

メカトロニクスの基礎を学ぶには最適なプロジェクトです。質問はコメント欄へ。Arduinoプロジェクトコレクションもご覧ください。

製造プロセス

  1. ミシン:19世紀革新から現代自動化までの進化と製造
  2. 有刺鉄線:歴史、構造、現代の用途
  3. 農業・養鶏向けプレミアム六角ワイヤーネット機械
  4. ワイヤーEDM切断機が精密性とコスト削減を実現する理由
  5. 板金曲げ機の種類・プロセス・用途を徹底解説
  6. 台湾ワイヤ放電加工機(Wire EDM)の技術系譜と世界シェア獲得の軌跡
  7. 台湾製トップクラスワイヤー放電加工機:精密切断ソリューション
  8. プロフェッショナルCNCチューブベンダー:精度と効率を両立
  9. 角パイプベンダー完全ガイド:種類・構造・選び方のポイント
  10. 高精度油圧チューブベンダー:ワークショップでの精密曲げ加工を実現
  11. 電動パイプベンダー解説:技術と用途