はじめに
こんにちは。ニンジンです🥕
それでは自作CNC開発記まとめ記事をはじめます。
完成した自作CNCマシン
ものづくりの幅を大きく広げてくれる「CNCマシン」。市販品を購入するのも便利ですが、構造や制御の仕組みを深く理解し、自分の目的に合わせた最適なマシンを手に入れるために、ゼロからの「CNC自作」に挑戦しました。
本記事は、構想からパーツ選定、制御ソフトウェアの設定、そして実際のレーザー刻印テストに至るまでの全工程をまとめた「自作CNC製作の完全ロードマップ」です。
一から設計して組み立てるプロセスは、多くの課題やエラーとの戦いでもありましたが、それらを一つずつクリアしていく泥臭い試行錯誤こそがDIYの醍醐味だと感じています。これからCNCを自作してみたいと考えている方の参考になれば幸いです。
自作CNCプロジェクトの全体ロードマップ
本シリーズは大きく2つのフェーズに分かれています。 いきなり本番筐体を作って失敗するリスクを避けるため、まず手元にあったXYテーブルを仮筐体として流用し、 制御系・ファームウェア・センサー類の動作を徹底的に検証しました。その知見をもとに本番アルミフレームを設計・製作しています。
要素設計フェーズ(第1回〜第6回:仮筐体期間)
まずは高価な本番用アルミフレームを組み立てる前に、手元にあった「XYテーブル」を仮の筐体として流用し、制御系のシステムを確立させる期間です。
「モーターは正しく回るか」「狙い通りの距離を動かせるか」「ホーミングや信号制御は正常か」など、電気・ソフト面の基盤(要素設計)をこのミニマムな環境で徹底的に洗い出し、トラブルシューティングを行いました。
実機調整フェーズ(第7回〜現在:本筐体期間)
要素設計で制御系が完璧に仕上がった段階で、満を持して設計した「本番用のアルミフレーム筐体」へと環境を移行しました。
剛性が格段に向上した本筐体にシステムを組み込み、実際の加工工具(1064nm赤外線レーザーモジュール)を搭載して、金属刻印ができる実用的な工作機械へと仕上げていく実践的なフェーズです。
🔧 仮筐体フェーズ(要素設計検討)
自作XYテーブルをCNC化し、制御基板・ファームウェア・リミットスイッチ・ステッピングモーターといった各要素を個別に検証したフェーズです。
- Arduino + CNCシールドの基本セットアップ
- GRBLの書き込みとCNCjsの導入
- リミットスイッチ配線とホーミング設定
- ステッピングモーター精度検証とキャリブレーション
- ピン割り当て・バージョン差によるトラブル解決
🏭 本筐体フェーズ(実機調整・拡張)
仮筐体で得た知見をもとに設計した本番アルミフレーム筐体で実機を調整・拡張するフェーズです。
- アルミフレーム組み立てと各軸の調整
- CNCjsのエラーを文字コード問題から解決
- 1064nm赤外線レーザーによる金属刻印
- 特注板金で剛性アップ(準備中)
- 全設計データの公開(準備中)
【フェーズ1】仮筐体での要素設計編(第1回〜第6回)
まずはXYテーブルを流用し、Arduinoとステッピングモーターを組み合わせた制御の基本と、ホーミングなどの必須機能を構築していくプロセスです。
XYテーブルのCNC化とモーター制御の基本
記念すべき第1回は、自作CNCの玄関口となる部品選定と駆動テストです。CNC制御において「なぜRaspberry PiではなくArduinoを選ぶべきなのか」というリアルタイム処理の波形比較や、A4988ドライバの破損を防ぐ電解コンデンサの必要性など、電気的な基礎知識を解説しています。
XYテーブルをCNC化!ArduinoとA4988を使ったステッピングモーター制御の基本リミットスイッチの実装とホーミングの仕組み
工作機械に「機械原点(0, 0)」という物理的な基準を与えるリミットスイッチの実装回です。GRBLがなぜリミットスイッチに「2回」触れて原点を特定するのかというホーミングの仕様や、ノイズによる誤検出を防ぐ「プルアップ配線」の回路構成について詳しく触れています。
自作CNCの原点出し(ホーミング)とリミットスイッチの配線・設定方法GRBL書き込みとCNCjsでのPC制御環境の構築
ArduinoをCNCの脳に変えるファームウェア「GRBL」の書き込み手順と、PCからミリ単位で操作するためのブラウザベースソフト「CNCjs」の導入方法を解説します。後半では、安価なモーターを使用したことで直面した「移動距離の不規則なバラつき(0.7mmの誤差)」という精度の壁について論理的に原因を考察しています。
ArduinoへのGRBL書き込みとCNCjsの導入手順!移動距離が安定しない原因の切り分けモーター交換と精度出しのキャリブレーション
前回の精度不足を解消するため、信頼性の高いオリエンタルモーター製「PKP244D08A2」へ換装します。実測値に基づいたGRBLパラメータ($100)の正確な補正計算式や、CNCjs接続時に座標が0にならない場合の対処法、さらに送り速度(F値)が頭打ちになる設定の罠($110)の解除手順を紹介しています。
自作CNCの精度不足を解消!ステッピングモーター交換とGRBLのキャリブレーション方法2軸同期走行とCNCシールドのピン配置の罠
X軸・Y軸を同時に連携させて四角形や円弧を描く「2軸同期走行テスト」を行います。その過程で直面した、リミットスイッチが常時ON(Pn:Z)になってしまう異常事態の原因を究明。歴代のGRBLバージョンアップ(v0.8からv0.9以降)に伴う、D11とD12のピン配置反転の歴史と基板の罠を解説します。
CNCシールドでZ軸リミットが常時ON(Pn:Z)になる原因!GRBLバージョンによるD11・D12反転の罠GRBLの4ステップホーミング攻略とレーザーPWM検証
Z軸ユニットがまだ存在しないプロトタイプ環境において、ホーミング時の「ALARM:8(失敗)」を回避するための特殊な手動操作手順を公開します。GRBLの仕様である「4ステップ動作」を解明し、さらに後半ではDigital 11番ピンからのPWM信号によるレーザー出力制御をLEDの調光(Lチカ)で視覚的に検証します。これにて要素設計フェーズが完了となります。
GRBLホーミング失敗「ALARM:8」の原因と解決策!4ステップの動作原理を徹底解説【フェーズ2】本筐体での実機調整編(第7回〜現在)
要素設計での知見をすべて注ぎ込み、独自に設計した本番用のアルミフレーム筐体を稼働させ、加工機としてブラッシュアップしていくプロセスです。
アルミ筐体完成とGコードの「文字コード(UTF-8)」の罠
ついに稼働領域 X350mm × Y340mm の本番用アルミフレーム筐体が完成し、ペンプロッターとしての動作確認を行います。そこで連発した恐怖の「Check Door」エラーを徹底追跡。ハードウェアのノイズではなく、Gコード内の日本語コメント(「径」などの漢字)がUTF-8の文字コード(0x84)を介してGRBLのリアルタイムコマンドを誤作動させていたという、意外すぎる真犯人を突き止めました。
CNCjsで「Check Door」エラーが出る原因と解決策!GコードのUTF-8文字コードの罠1064nm赤外線レーザーモジュールの搭載と金属刻印テスト
自作CNCのメイン加工工具として、LASER TREE製の「2W 1064nm 赤外線レーザーモジュール」を導入します。金属やプラスチックへの直接刻印を目的とした波長選定の理由や、レーザーモード($32)などのパラメータ設定、制御ソフト「LightBurn」を使用したアルミ板への素材マトリックステストの様子をお届けします。
自作CNC 1064nm赤外線レーザーで金属刻印!GRBL設定変更とLightBurn素材テストアルミフレームの剛性アップとレーザー速度検証
現在、手配中の特注板金を取り付け、筐体の剛性をさらに向上させるアップデート記事を執筆中です。剛性強化による加工速度の向上や、レーザー出力時の細かな挙動への影響を詳しくレビューする予定です。公開まで今しばらくお待ちください。
【設計データ配布】全部品リストと2D/3D図面一式
本自作CNCで使用したすべての部品構成表(パーツリスト)、強度を確保するために設計した板金の2D・3D図面データ、PDF形式の結線図、そして組み立ての全容が直感的にわかる「3D-PDF組立図」を一式にまとめたデータ配布ページを準備中です(外部サイトのNote等と連携予定)。「自分でも全く同じスペックのCNCを組み立ててみたい」という方のための完全パックとなりますので、リリースをお楽しみにしていただければと思います。
主要コンポーネント一覧
本シリーズで使用した主なコンポーネントです。
| カテゴリ | コンポーネント | 備考 | リンク |
|---|---|---|---|
| マイコン | Arduino UNO | GRBLファームウェアを書き込んで使用 | 商品を見る |
| 制御基板 | CNCシールド v3 | 3軸同時制御に対応 | 商品を見る |
| モータードライバー | A4988 | マイクロステッピング対応 | 商品を見る |
| ステッピングモーター | PKP244D08A2 | 精度向上のため途中でスペックアップ | 商品を見る |
| リミットスイッチ | D2JW-01K1A1 | X / Y / Z軸それぞれに配置 | 商品を見る |
| 制御ソフト | CNCjs | Webブラウザベースのグラフィカル操作UI | 公式サイト |
| CAMソフト | LightBurn | レーザー加工のパス生成・テスト用 | 公式サイト |
| レーザー | 1064nm 赤外線レーザー | 金属への直接刻印が可能 | 商品を見る |
| 筐体(仮) | 自作XYテーブル | 第1〜6回の要素検証に流用 | 製作記事を見る |
| 筐体(本番) | アルミフレーム(自設計) | 第7回以降。板金で剛性強化予定 | — |
※一部のリンクはアフィリエイトプログラムを利用しています。
よくある質問(FAQ)
自作CNCにArduinoとGRBLを使うメリットは何ですか?
Arduinoは安価で入手しやすく、GRBLはCNC専用のオープンソースファームウェアです。組み合わせることで数千円からCNCコントローラーを構築でき、CNCjsなどのGUIソフトで直感的に操作できます。設定値もシリアルコマンドで変更できるためDIYに最適な構成です。
GRBLのALARM:8エラーとはどういうエラーですか?
ホーミング動作中にリミットスイッチが正しく反応しない場合に発生するエラーです。配線ミス・GRBLのバージョン差によるピン割り当ての違い・ホーミング方向の設定ミスが主な原因です。第6回で動作原理を4ステップで解説しています。
CNCjsで「Check Door」エラーが突然出るのはなぜ?
GコードファイルにBOM付きUTF-8や日本語コメントが混入し、GRBLが認識できない文字列を受け取ることで発生するケースがあります。第7回でファイルの文字コード確認と対処法を解説しています。
Z軸リミットが常時ON(Pn:Z)になってしまいます。
GRBLのバージョンによってCNCシールドのD11とD12のピン割り当てが逆転する問題が知られています。GRBLのバージョンに合わせて配線を変更するか、バージョンを合わせることで解決します。第5回で詳しく説明しています。
自作CNCで金属にレーザー刻印できますか?
1064nm赤外線レーザーを使用すれば金属への直接刻印が可能です。GRBLのレーザーモード($32=1)を有効にしたうえで、LightBurnでパワーと速度のテストを行い素材ごとに最適条件を見つけることが重要です。第8回で具体的な手順を紹介しています。
設計データや部品リストは公開されますか?
第10回(準備中)で自作CNCの全部品リスト・2D図面・3D図面の配布を予定しています。公開をお待ちください。
おわりに
寄せ集めのXYテーブルからスタートしたDIY CNCプロジェクトですが、一歩一歩エラーを潰していくことで、アルミフレームをベースとした本格的なレーザー刻印機として形にすることができました。
工作機械の自作は、ハードウェアの知識(配線やノイズ対策)とソフトウェアの仕様(GRBLや文字コード)の両面からアプローチする必要があり、大変な部分も多いですが、思い通りに金属に刻印できた瞬間の達成感は格別です。
今後も剛性アップの検証結果や設計データの公開など、コンテンツを随時更新していきますので、引き続きよろしくお願いいたします。にんじんでした🥕
シリーズ記事一覧
電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。
-
FILE.01 — IoT
Raspberry Pi Pico W × GASラズパイPico W×GASで自作!「LINEで動く温湿度&スマートリモコン」完全ロードマップ
「外出中のペットの室温が心配…」そんな思いからスタートしたIoT自作プロジェクトの総集編。温湿度監視からエアコン遠隔操作まで、仕組みをゼロから作りたい方のための全5回の開発記録です。
シリーズを読む -
FILE.02 — CNC
Arduino × レーザー刻印CNCCNC自作シリーズ
高精度な加工を目指し、本格的な自作CNC製作に挑戦中。現在は基幹パーツであるオリエンタルモーターの納品を待つ「設計・準備編」を公開。ハードとソフトの両面から、理想のマシンを形にする過程をリアルタイムにお届けします。
シリーズを読む -
FILE.03 — XY軸制御
Raspberry Pi × ステッピングモーターXYテーブルシリーズ
Raspberry Piとステッパモーターを使い、ゼロから2軸制御に挑む記録。OS設定から回路設計、多軸制御のPythonコードまで、躓きやすいポイントを徹底図解。電子工作初心者が「動く感動」を味わうための実戦ガイドです。
シリーズを読む -
FILE.04 — 業務自動化
Python × Excel × CustomTkinter【Python開発記】NINJIN Mail制作記
PythonとExcelを連携させ、実務で即戦力となるメール送信ツールを開発。CustomTkinterによるUI構築や、ミスを防ぐテンプレート活用術など、現場の「痒い所に手が届く」自動化ノウハウを細部まで丁寧に解説します。
シリーズを読む -
FILE.05 — 業務自動化
Python × Excel × GUIアプリ化Invoice Maker(請求書・見積書自動作成)
手作業の請求書作成から卒業!PythonでExcelデータを読み込み一括PDF化する「Invoice_Maker」の作り方を全3回で解説。基本ロジックからGUIアプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む


コメント