Arduinoで作るCNCプロッター:自作描画機のステップバイステップガイド
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | 制御用マイコンボード |
| L293D デュアルHブリッジ モータードライバー (Texas Instruments) | 1 | ステッピングモーター2台分の駆動用 |
| SG90 マイクロサーボモーター | 1 | ペンの上下動作用 |
| DVD-ROMから取り出したステッピングモーター | 2 | X軸・Y軸駆動用(中古DVDドライブから入手可能) |
| JLCPCB製カスタムPCB | 1 | 回路基板(ガーバーファイル提供あり) |
必要な工具と機械
- レーザーカッター(MDF板5mm厚のカット用)
- 3Dプリンター(ペンホルダー出力用)
- はんだごて、マルチメーター、ドライバー類
使用ソフトウェア・オンラインサービス
- Arduino IDE(ファームウェア書き込み)
- Inkscape(ベクター画像をG-codeに変換)
- Processing 3(G-codeをシリアル送信)
- EasyEDA(PCB設計・発注)
プロジェクト概要
このチュートリアルでは、低コストで自作できるArduinoベースのCNCプロッター(描画機)の製作手順を詳しく解説します。DVD-ROMから取り出したステッピングモーターを再利用し、JLCPCBで製造した専用PCBを用いることで、配線の手間を大幅に削減。機械構造にはレーザーカットしたMDFパーツと3Dプリントしたペンホルダーを採用し、見た目も機能も両立させています。
製作期間は約5日間(部品調達・組み立て3日、ソフトウェア調整2日)と比較的短期間で完成可能です。初心者でも理解しやすいよう、ハードウェア選定から回路図、機械組み立て、ソフトウェア設定、テスト走行までをステップごとに説明しています。
学べること
- プロジェクトの機能に応じた適切なハードウェア選定
- 全コンポーネントを接続する回路図の作成
- 機械的・電子的パーツの組み立て手順
- 機械のバランス調整(スケーリング)
- システムの操作・制御方法
Step 1: プロッター(描画機)とは?
CNC(Computer Numerical Control)とは、コンピュータからシリアルポート経由で送られる指示に従ってアクチュエーターを動作させる工作機械です。一般的にステッピングモーターを各軸に搭載し、プログラム制御で精密な位置決めを行います。
今回製作するプロッターは2軸(X-Y)構造で、各軸に小型ステッピングモーターを配置。アクティブトレイ(可動台)をXY平面上で動かし、サーボモーターでペンを上下させることで描画を行います。
Step 2: ステッピングモーターの準備
ステッピングモーターは1回転を等分して制御できるブラシレスDCモーターです。位置センサーなしで開ループ制御が可能なため、CNC用途に最適です。入手先は中古のDVDドライブ(2台で約2ドル程度)から取り出すのが安価で確実です。
コイルの特定とはんだ付け
取り出したモーターは4線または6線タイプが多いですが、DVD用は一般的に4線(2相バイポーラ)です。マルチメーターで抵抗を測定し、各コイルの端子を特定します(1コイルあたり約10Ω)。特定後、制御用のリード線をはんだ付けします。
Step 3: 回路図
制御の中心はArduino Nanoです。ステッピングモーター2台とサーボモーター1台を駆動するため、L293D HブリッジドライバーICを2個使用します(1個で2相駆動可能)。回路図は以下の通りで、両ステッピングモーターとサーボの接続を示しています。ピン配置は必要に応じて変更可能です。
Step 4: PCB製作(JLCPCB製)
JLCPCBについて
JLCPCBは中国最大手のPCBプロトタイプメーカーで、10年以上の実績があります。1日8,000件以上の注文を処理し、年産20万平方メートルの生産能力を誇ります。低価格・高品質・短納期で、ホビイストからプロまで幅広く利用されています。
PCB設計と発注
回路図からPCBパターンを設計(EasyEDA使用)し、ガーバーファイルをJLCPCBにアップロード。板厚・色・枚数を指定し、わずか2ドルで5枚を5日で受け取れました。シルク印刷も鮮明で、部品配置ラベルがそのまま実装ガイドになります。
ダウンロードファイル
Step 5: 機械フレームの設計・製作
見たよさと剛性を両立するため、SolidWorksで3つの主要パーツを設計し、DXFデータをレーザーカッターでMDF板(5mm厚)から切り出しました。製作はFabLab Tunisiaの協力を得ています。ペンホルダーは3Dプリント(STLデータ提供)で作成しています。
Step 6: 部品リスト(調達リンク付き)
- JLCPCB製カスタムPCB
- Arduino Nano: Amazonリンク
- L293D Hブリッジドライバー ×2: Amazonリンク
- ICソケット DIP16ピン ×2: Amazonリンク
- ICソケット DIP(Arduino用) ×1: Amazonリンク
- ピンヘッダー・ねじ端子コネクタ: Amazonリンク
- SG90サーボモーター ×1: Amazonリンク
- DVD-ROMドライブ ×2(中古で入手)
- 3Dプリントパーツ(ペンホルダー等)
- レーザーカットパーツ(MDF)
- 組み立て用ネジ・スペーサー
- 描画用ペン(JLCPCBノベルティや市販の細字ペン)
Step 7: 電子部品の実装とテスト
PCBのシルク印刷に従って部品をはんだ付けします。ICはソケットに挿すため、万一の交換も容易です。実装後、X軸側のステッピングモーターを接続し、簡易テストコードで動作確認を行います。
テスト用スケッチ(ステッピングモーター動作確認)
#include <Stepper.h>
const int stepPerRotation = 20; // DVD用ステッピングモーターの1回転ステップ数
Stepper myStepperX(stepPerRotation, 8, 9, 10, 11); // X軸用ピン設定
void setup() {
myStepperX.setSpeed(100); // 速度設定
myStepperX.step(100); // 正転
delay(1000);
myStepperX.step(-100); // 逆転
delay(1000);
}
void loop() {}
Step 8: 機械パーツの組み立て
- Y軸プレートに2つ目のステッピングモーターを固定
- X軸とY軸を90度に直交させて組み合わせ、XYテーブルを形成
- ペンホルダーにスプリングと小径シャフトを組み込み、サーボで上下動作できるようにする
- ペンホルダーをY軸キャリッジに、作業台(アクティブプレート)をX軸キャリッジにそれぞれ固定(ホットグルーやネジで)
- 全配線をPCB上のコネクタに接続し、ケーブルを整理
Step 9: ソフトウェア構成と操作手順
描画を実行するには以下の3つのソフトウェアを連携させます。
- Inkscape:描画データ(SVG等)を作成・読み込み、G-codeに変換
- Arduino IDE:マシン制御用ファームウェアをArduinoに書き込み
- Processing 3:G-codeファイルを読み込み、シリアル通信でArduinoへ送信
9-1. ファームウェア書き込み
GitHubリポジトリからCNC_Plotter.inoをダウンロードし、自分のピン配置に合わせて修正後、Arduino IDEで書き込みます。
9-2. InkscapeでG-code生成
- 用紙サイズ・単位(mm)を設定
- 描画したい図形を配置・拡大縮小
- 「MakerBot Unicorn G-code」形式で保存(アドオンが必要な場合あり)
- G-codeパラメータ(送り速度、ペン上下のZ値等)を画像の通り設定
9-3. Processingで実行
- GitHubから
CNC_program.pdeを開き、実行 - キーボードのPキーでCOMポート選択
- GキーでG-codeファイル選択 → 自動的に描画開始
Step 10: テスト走行と結果
G-code送信開始とともにプロッターが描画を開始します。基板上のLEDがステッピングパルスに同期して点滅し、動作状態が視覚的に確認できます。描画精度は驚くほど高く、複雑な図形も滑らかに再現されます。
プロジェクトは大成功です。低コストで高機能なCNCプロッターが自作できることを実証できました。詳細な設計ファイル・コードはGitHubで公開しています。
関連リソース
- 全ソフトウェア・設計ファイル(GitHub): https://github.com/BEEMB/CNC_Plotter
- レーザーカット用DXF / 3Dプリント用STL(Thingiverse): Thingiverseリンク
- 回路図PDF・ガーバーファイル: プロジェクトページのSchematicsセクションからダウンロード可能
前作「Arduinoトレーニングプラットフォームの作り方」もぜひご覧ください。YouTubeチャンネル登録もよろしくお願いします!
毎日エレクトロニクスを楽しみましょう。BEE MB from MEGA DAS
製造プロセス
- CNC工作機械:歴史、設計、未来のトレンド
- 自宅で作るDIY宿題自動筆記マシン:AxiDraw風ペンプロッターの自作ガイド
- Arduinoで超音波レベーション(浮遊)装置を自作:ステップバイステップガイド
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduino 101で作る万歩計:DHT11温湿度センサー&LCD表示付き
- Arduino RGBカラーミキサーの製作 - ステップバイステップチュートリアル
- Arduino Nano R3で本格的なCNCマシンを自作する
- CNCフライス盤:包括的な概要と基礎知識