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

Arduino CNC発泡スチロールカッターの自作ガイド

このチュートリアルでは、Arduino CNC発泡スチロールカッティングマシンの作り方を学びます。シンプルで安価な材料、3Dプリント部品、Arduinoコントローラーで構成される典型的なDIY CNCマシンです。

以下の動画を見るか、書面チュートリアルをお読みください。

概要

ビットやレーザーの代わりに、このマシンの主工具はホットワイヤー(電流が流れると高温になる特殊な抵抗線)です。ホットワイヤーが発泡スチロールを溶かしながら通過することで、任意の形状を精密かつ容易に切り出せます。

Arduino CNC発泡スチロールカッターの自作ガイド

「容易に」と言ったのは、CNCマシンの製作は実はそれほど難しくないからです。初心者で初めてDIY CNCマシンを作ろうと考えている方も、最後までご覧ください。設計、電子部品の接続、Arduinoプログラミング、形状データの準備、Gコード生成、無料オープンソースソフトでの制御まで、全工程を解説します。

Arduino CNC発泡スチロールカッターの3Dモデル

まず、このマシンの3Dモデルをご覧ください。以下からダウンロード・ブラウザーで確認できます。

Arduino CNC発泡スチロールカッターの自作ガイド

Thangsで3Dモデルを探索・ダウンロードできます。

Arduino CNC発泡スチロールカッターの自作ガイド

アセンブリ3Dモデルのダウンロード(Thangs)

3Dプリント用STLファイル:

ベース構造には20×20mmのTスロットアルミプロファイルを使用。穴あけ不要で組み立てが容易、再利用可能なのがメリットです。各軸の動きは、10mmスムースロッド上を滑るリニアベアリングで実現し、各軸に2本ずつ使用しています。

スライドブロックは一見奇妙ですが、1つのパーツで複数の機能を持つよう設計されています。例えばXスライドブロックは、2つのリニアベアリングを保持し、Y軸ロッドを保持し、Y軸ベルト用プーリーを保持し、X軸ベルト取り付け用ハンドルも備えています。

Arduino CNC発泡スチロールカッターの自作ガイド

スライドブロックの駆動にはNEMA 17ステッピングモーターを使用。シャフトカプラー、ネジロッド、2つのプーリー、2本のベルトで、各レールの2つのスライドブロックを同時に均等に駆動します。

さらに第3のステッピングモーターがあり、これにより2.5D形状(立体的な形状)の加工が可能になります。詳細は後ほど説明します。

構造と剛性の面ではベストではないかもしれませんが、最小限のパーツで機能するマシンを作るのが狙いでした。

3DプリントにはCreality CR-10を使用。コスパに優れた優秀な3Dプリンターです。

Arduino CNC発泡スチロールカッターの自作ガイド

一部の3Dプリント部品は後処理(サポート材除去)が必要です。

Arduino CNC発泡スチロールカッターの自作ガイド

スライサー設定の影響で余分な材料が残る場合があり、ヤスリで除去しました。

CNCの組み立て

材料が揃ったので組み立てを始めます。

このCNCマシンで使用する主要コンポーネントのリストです。電子部品のリストは回路図のセクションにあります。

  • 20×20mm 500mm Tスロットアルミプロファイル ×6
  • 10mmリニアレールロッド ×4
  • Tスロットプロファイル用コーナーブラケット ×6
  • Tスロットプロファイル用M5ナット ×50
  • 10mmリニアベアリング ×6
  • GT2ベルト + ギアプーリー + アイドラープーリー
  • ベアリング 5×16×5mm ×2(※動画では6mmベアリングも使用していますが、5mmの方が一般的で入手しやすいためこちらを推奨。STLファイルにも両方のバージョンを含めています)
  • スペーサーナット
  • スプリングアソートセット
  • ホットワイヤー(ニクロム線やステンレス釣り糸)
  • 50cmネジロッドまたはロッド(5mmまたは6mm径、プーリー内径に合わせる)×2
  • ボルト・ナット(現地調達):M3×30 ×8、M4×25 ×4、M4×30 ×4、M5×10/12 ×40、M5×15 ×8、M5×25 ×4、M5×30 ×4
Arduino CNC発泡スチロールカッターの自作ガイド

手元のTスロットアルミプロファイルは60cmだったので、3Dモデルに合わせて金鋸でカット。コーナーブラケットでベースフレームを組み立てます。TスロットプロファイルはM5ボルトとTスロットナットで簡単に何でも取り付けられます。

Arduino CNC発泡スチロールカッターの自作ガイド

X軸用シャフトクランプを取り付け、シャフトロッドを通します。半分通したところでX軸スライドブロック(ベアリング2個装着済み)を入れ、ロッドを奥まで通してM4ボルト・ナットで固定。反対側も同様に行います。

Arduino CNC発泡スチロールカッターの自作ガイド

次にY軸を組み立てます。ロッドをX軸スライドブロックに通し、パーツ底面とフラッシュになるようM4ナット・ボルトで固定。Y軸スライドブロック(リニアベアリング1個)を挿入します。

Arduino CNC発泡スチロールカッターの自作ガイド

Y軸ロッド上部にマウントブラケットを取り付け、2本のY軸ロッドと上部のTスロットプロファイルを接続。同じ方法でロッドに固定します。Tスロットプロファイルをマウントブラケットに取り付けるには、まずM5ボルトとTスロットナットを3セットブラケットに入れ、プロファイルをスライドさせてボルトを締めます。

Arduino CNC発泡スチロールカッターの自作ガイド

これでメイン構造が完成し、X軸とY軸で自由に動けるようになりました。

Arduino CNC発泡スチロールカッターの自作ガイド

ベースフレームに脚を取り付け。再びTスロットプロファイルで簡単に設置できます。脚を固定したら、X軸用の第1ステッピングモーターを取り付けます。ここではモーターシャフトの位置を調整するため20mmスペーサーナットを使用し、後でベルトプーリーを脚の近くに配置できるようにしました。

Arduino CNC発泡スチロールカッターの自作ガイド

シンプルな6mmネジロッドで2本のベルトを同時に駆動します。適切な長さにカットし、ステッピングモーターとは反対側の脚に6mm内径ベアリングを配置、ネジロッドを通してナットで固定、ベルト用ギアプーリー2個を取り付けます。

Arduino CNC発泡スチロールカッターの自作ガイド

ネジロッドとステッピングモーターの接続には、ステッピングモーター側5mm穴、ロッド側6mm穴のシャフトカプラーを3Dプリント。M3ナット用スロットがあり、M3ボルトまたはグブスクリューでシャフトとロッドを固定できます。プーリーをスライドブロックのハンドルと一直線に配置し、グブスクリューで固定。

反対側にはアイドラープーリー2個をM5ボルト・ナットで取り付けます。

Arduino CNC発泡スチロールカッターの自作ガイド

X軸用GT2ベルトを取り付けます。まずベルトをスライドブロックにジップタイで固定。ギアプーリー、反対側のアイドラープーリーを回して適切な長さにカットし、反対側のスライドブロックにもジップタイで固定。

Arduino CNC発泡スチロールカッターの自作ガイド

反対側も同様に行います。ベルトを固定する際、2つのスライドブロックがX軸上で同じ位置にあることを確認してください。レール端まで移動させてベルトを張り、ジップタイで固定すればOKです。X軸スライド機構の完成です。

関連記事:自動工具交換機能付きDIYペンプロッター | CNC描画マシン

同じ要領でY軸機構も組み立てます。ベルトをスライドブロックにジップタイで固定。ここではハンドルが1つしかないため、片端をジップタイで留め、ベルトを十分張ってから両端をまとめてジップタイで留め、最初のジップタイを外して余分をカットします。反対側も2つのスライドブロックがY軸上で同じ位置になるよう固定。Y軸機構も完成です。

Arduino CNC発泡スチロールカッターの自作ガイド

さらにX軸上にもう1本Tスロットプロファイルを渡します。ここに第3ステッピングモーターを取り付け、発泡スチロールを置く台としても使います。この第3モーターで2.5D(実質3D)形状、例えばチェスの駒などが作れます。

Arduino CNC発泡スチロールカッターの自作ガイド

次に抵抗線(ホットワイヤー)を取り付けます。高熱に耐え均一な温度を保てる線が必要で、通常はニクロム線やステンレス釣り糸を使います(安価で入手しやすい)。この線を2つのタワー(スライドブロック)間でテンションをかけて張ります。両スライドブロックにM5ボルトを取り付け、小型延長スプリングを追加しました。

Arduino CNC発泡スチロールカッターの自作ガイド

スプリングにワイヤーを取り付け、スプリングが許す限りテンションをかけます。スプリングでテンションをかける理由は、ワイヤーが熱で伸びた際にスプリングがそれを吸収できるからです。

Arduino CNC発泡スチロールカッターの自作ガイド

抵抗線と電気配線を接続します。DC電源なので極性は問いません。電流を流して熱くするだけです。電気配線は3〜5アンペアの電流に耐えられる太さ(20〜18ゲージ推奨、私は22ゲージを使用)にしてください。

Arduino CNC発泡スチロールカッターの自作ガイド

最初は2つのナットの間に電気配線を挟み、コイルを通して抵抗線に電流を流す方式にしましたが、うまくいきませんでした。配線はスライドブロックのハンドルを通してホットワイヤーから離して配線しました。

次にCNCマシンのエンドストップ(リミットスイッチ)を取り付けます。マイクロリミットスイッチはGND、常開(NO)、常閉(NC)の3接点があります。最初はNOで接続しましたが、テスト後にNCに変更しました。その方が安定動作するからです。

Arduino CNC発泡スチロールカッターの自作ガイド

問題はCNC動作時の電気ノイズで、NO接続だと誤ってスイッチが押されたと検知され、マシンが停止してしまうことです。

Arduino CNC発泡スチロールカッターの回路図

ステッピングモーターのケーブルを接続し、全電子部品の接続方法を確認します。回路図は以下の通りです。

Arduino CNC発泡スチロールカッターの自作ガイド

このCNCマシンの頭脳はArduinoボード。それにArduino CNCシールド、A4988ステッピングドライバー3個、ホットワイヤー温度制御用DC-DCコンバーターが必要です。

このプロジェクトに必要なコンポーネント:

  • ステッピングモーター – NEMA 17
  • A4988ステッピングドライバー
  • Arduino CNCシールド
  • Arduino Uno
  • DC-DCコンバーター
  • リミットスイッチ
  • DC電源

電子部品用スタンドを3Dプリントし、Tスロットプロファイルの片側に固定。M3ボルトでArduinoボードをスタンドに固定し、その上にArduino CNCシールドを装着。

ステッピングドライバーの駆動分解能をジャンパーで設定します。ここでは16分割ステップ(各ドライバーにジャンパー3個)を選択し、スムーズな動作を実現しました。

Arduino CNC発泡スチロールカッターの自作ガイド

ドライバーの向きに注意。小さなポテンショメーターがシールド下側を向くようにします。

DCコンバーターを固定し、3つのステッピングモーターをArduino CNCシールドに接続、2つのリミットスイッチをX+とY+のエンドストップピンに接続。電源には12V 6A DC電源を使用。Arduino CNCシールドは12〜36Vで動作可能、使用したDCコンバーターも同電圧範囲対応です。DCコンバーター入力側にスイッチを追加し、ホットワイヤーのオン/オフを別個に制御できるようにしました。DCコンバーター出力側に抵抗線両端からの配線を接続。最後にArduinoをUSBで、Arduino CNCシールドとステッピングモーターをDC電源ジャックで給電します。

Arduino CNC発泡スチロールカッターの自作ガイド

マシンが正常に動作するかテストします。まずホットワイヤーから。DCコンバーター入力が0V、スイッチオンで12V入力。出力側も最初は0Vですが、ポテンショメーターを回すと0〜12Vで調整可能で、ホットワイヤーへの電流と温度を制御できます。

Arduino CNC発泡スチロールカッターの自作ガイド

適切な出力電圧を見つけるには、発泡スチロールを切ってみるのが一番です。ホットワイヤーが抵抗なくスムーズに切れる電圧を探します。

Arduino CNC発泡スチロールカッターの自作ガイド

しかし初期テスト後、ホットワイヤーが熱で伸び、スプリングがそれを吸収できていないことが判明。

Arduino CNC発泡スチロールカッターの自作ガイド

実はこの配置では電流がスプリングにも流れていたため、過熱でスプリングが機能を失っていました。

Arduino CNC発泡スチロールカッターの自作ガイド

新しいスプリングに交換し、ワニ口クリップで電気配線を抵抗線に直接接続してスプリングをバイパスしました。

Arduino CNCマシン用ソフトウェア

いよいよこのマシンに命を吹き込み、本物のCNCマシンにします。

Arduino CNC発泡スチロールカッターの自作ガイド

まずArduinoにファームウェアを書き込み、マシンの動きを制御できるようにします。DIY CNCで最も人気なのはGRBLファームウェアです。

Arduino CNC発泡スチロールカッターの自作ガイド

オープンソースでGitHubからダウンロード可能。zipファイルを解凍し、「grbl」フォルダーをArduinoライブラリディレクトリにコピー。Arduino IDEで「ファイル」→「スケッチ例」→「grbl」→「grblUpload」を開き、Arduino UNOを選択、接続ポートを選択してアップロード。これでArduinoがGコードを読み取り、それに従ってマシンを制御できるようになります。

次に、Arduinoと通信して指示を送るインターフェース/コントローラーが必要です。ここでもオープンソースのUniversal G-Code Senderを使用します。

Arduino CNC発泡スチロールカッターの自作ガイド

2.0 Platform版をダウンロード。zip解凍後、「bin」フォルダー内の実行可能ファイル(ugsplatform)を実行。Javaプログラムなので、事前にJava Runtime Environmentのインストールが必要です(公式サイトから無料ダウンロード可能)。

Universal G-Code Senderを起動し、セットアップウィザードでマシンを設定します。

Arduino CNC発泡スチロールカッターの自作ガイド

適切なポートを選択してArduinoと接続。接続確立後、ボタンでモーターの回転方向を確認し、必要なら反転させます。リミットスイッチがあるホーム位置から正方向に動くよう設定しました。

次にモーターのステップ数を校正し、正確な動きを実現します。ドライバーで16分割ステップ、モーターが物理200ステップなので、1回転(360度)で3200ステップ。伝達方式(ここではプーリー径)に応じて、1mm移動に必要なステップ数を計算します。デフォルトは250ステップ/mm。移動ボタンを押すと250ステップ動きます。

Arduino CNC発泡スチロールカッターの自作ガイド

実際に定規で移動距離を測り、その値をプログラムに入力。するとsteps/mmパラメーターの更新値が計算されます。私の場合83ステップ/mm。Z軸は400ステップ/mmに設定(Z軸1mmで45度回転)。

リミットスイッチの動作確認。NO/NC接続に応じてここで反転設定も可能。前述の通りNCの方が安定しました。Z軸リミットスイッチはないので、これをオフにする必要があります。オフにしないとホーミングができません。Arduinoライブラリのgrblフォルダー内config.hを編集します。

Arduino CNC発泡スチロールカッターの自作ガイド

ホーミングサイクルの行を見つけ、3軸CNC用のデフォルト設定をコメントアウトし、2軸マシン用の設定をアンコメント。保存してgrblUploadを再アップロード。プログラムを再起動すると正常に動作します。

「Try homing」ボタンでホーミングを試します。Xリミットスイッチに向かって動き、押されたらY軸が動きます。必要ならリミットスイッチ方向を変更。セットアップウィザード最後にソフトリミット(各方向の最大移動距離)を設定。私の場合45×45cm。

Arduino CNC発泡スチロールカッターの自作ガイド

プログラムの準備完了。使用前には必ずホーミングを行ってから操作してください。まずJogコントローラーで手動操作をテストし、発泡スチロールを切って最適なフィードレート(移動速度)を見つけてください。

Arduino CNC発泡スチロールカッターの自作ガイド

ホットワイヤー温度とフィードレートの両方を調整し、最もきれいで精密なカットが得られる条件を探ってください。

CNCマシン用Gコードの生成

最後に、図面を準備してCNCマシンで形状を切り出す方法を見てみます。ベクターグラフィックソフトが必要で、ここでもオープンソースのInkscapeを使用します(公式サイトから無料ダウンロード)。

Arduino CNC発泡スチロールカッターの自作ガイド

Inkscapeを使ったGコード生成の2例を紹介します。まずページサイズを作業エリア(45×45cm)に設定。例1ではArduinoロゴ画像をダウンロードしてインポート。「ビットマップのトレース」機能でベクター形式に変換します。

Arduino CNC発泡スチロールカッターの自作ガイド

ホットワイヤーで切り出すには、形状を連続したパスにする必要があります。ホットワイヤーは常に作業エリアに存在し、ビットのように上げたりレーザーのようにオフにしたりして移動できないからです。シンプルな四角形で離れたピース同士を接続し、選択して「結合」機能で統合。内側の閉じたループは「差分」機能で開きます。

Arduino CNC発泡スチロールカッターの自作ガイド

図面ができたら、Gcodetools拡張機能でGコードを生成。まず「方位点の生成」。

Arduino CNC発泡スチロールカッターの自作ガイド

モデルを希望サイズにスケーリング。ツールライブラリで使用工具を定義。ワイヤーは円筒形なのでシリンダーを選択。工具径を1mm、フィードレートなどを設定。他のパラメーターは今回は重要ではありません。最後に「Path to Gcode」でGコードを生成。

Arduino CNC発泡スチロールカッターの自作ガイド

GコードはGRBL/Arduinoが理解できる命令セットで、ステッピングモーターを駆動します。Universal G-code Senderで開き、Visualizerウィンドウでマシンが通るパスを確認できます。

Arduino CNC発泡スチロールカッターの自作ガイド

黄色の線は空移動(ビットやレーザーなら空中移動)を表しますが、ホットワイヤーの場合これらの移動で材料を切ってしまい形状が崩れます。ロゴ内部の閉じた領域を開き忘れていたため、単一パスになっていません。図面に戻って閉じた領域を開き、Gコードを再生成します。

Arduino CNC発泡スチロールカッターの自作ガイド

開始点を自分で指定するのも良いアイデアです。形状をダブルクリック、ノードを選択、「選択ノードでパスを分断」。新しいGコードを開くと、パスがAの文字から始まり、全形状を通ってAに戻ることがわかります。

Arduino CNC発泡スチロールカッターの自作ガイド

発泡スチロールの固定には、M3ボルトで貫通固定するシンプルなホルダーを作りました。

Arduino CNC発泡スチロールカッターの自作ガイド

もう1例、立体形状の作り方を紹介します。4面を90度ずつ回転させて切る四角柱形状です。

Arduino CNC発泡スチロールカッターの自作ガイド

柱形状を前述のトレースビットマップで取得。柱と同じ大きさの長方形を描き、柱を長方形から「差分」で引きます。1辺を削除して柱のプロファイルパス1つだけにします。これがCNCが通る実際のパスで、1パスごとに第3ステッピングモーターを90度回転させます。

Arduino CNC発泡スチロールカッターの自作ガイド

方位点作成時にZ深度を-8mmに設定。ツールパラメーターで深さステップを2mmに設定。Gコード生成後、G-code Senderで見ると、同じパスを2mm深さ違いで4回通します。CNCルーターならビットが毎回2mm深く切り込みますが、ここではZ軸1mmで45度、2mmで90度回転するよう設定済みです。

Arduino CNC発泡スチロールカッターの自作ガイド

デフォルトのGコードでは各パス後にZ軸を1mmに戻します(CNCルーターなら空移動時にビットを上げる)。そのままでも動きますが、Z軸の不要な動き(発泡スチロールの無駄な回転)が発生します。各イテレーション後のZ軸値を1mmに戻さず同じ位置に留めるよう修正します。

Arduino CNC発泡スチロールカッターの自作ガイド
Arduino CNC発泡スチロールカッターの自作ガイド

3D形状用の発泡スチロール固定には、M3ボルトで刺して保持するプラットフォームを使用。

Arduino CNC発泡スチロールカッターの自作ガイド

Gコード実行前に、ホットワイヤーを発泡スチロール近くまで手動で移動。中心からホットワイヤーまでの距離を、希望する形状の厚み分にします。図面通りの寸法にするなら、図面上の原点から形状中心までの距離を測って合わせます。

Arduino CNC発泡スチロールカッターの自作ガイド

コントローラーの「Reset Zero」ボタンを押し、ここから開始するよう指示。Playボタンを押せばArduino CNCマシンが3D形状を切り出します。

すべての例のGコードファイルとInkscapeファイルはこちらからダウンロードできます:

以上でこのチュートリアルは終了です。説明が十分明確で、皆さんが自分のCNCマシンを作れることを願っています。質問はコメント欄でどうぞ。Arduinoプロジェクトコレクションもご覧ください。


製造プロセス

  1. CNC試作ガイド:精度、速度、コスト効率の良い生産
  2. CNC工作機械:歴史、設計、未来のトレンド
  3. Arduino Nano R3で本格的なCNCマシンを自作する
  4. CNCフライス盤:包括的な概要と基礎知識
  5. CNCプラズマ切断機の詳細ガイド:特徴・メリット・用途
  6. 家庭用卓上CNCマシンで金属加工を始める:選び方・できること・材料調達ガイド
  7. CNC基礎:コンピュータ数値制御をマスターする
  8. CNC切断機完全ガイド:種類、メリット、用途
  9. CNCとは? コンピュータ数値制御の基礎から応用まで完全解説
  10. CNCオシレーティングナイフカッター:産業用途と能力
  11. CNC切削工具クイック比較:エンドミル、スレッドミルなど主要ツールを解説