「USB_CNCフライス盤」のページへ ようこそ!
2014年独自開発を始めてから10年、木工に使えるCNCに成りました。加工スケールを変更出来るのが特徴です。

Home おもちゃドクター活動に戻る おもちゃドクターの電子工作2025に戻る


USB_CNCフライス盤
番号・名称・写真・完成年月
EC036DR3
USB_CNCフライス盤


IMG_7850c.jpg
○システム全体

2026-2

開発経緯


加工出力
20251125_104323212_iOSc.jpg

出力YouTube動画

●CAD作図から加工まで

1)JW-CADで加工図形(.jww形式)を作図
(アウトラインフォントも含む)
2)NCVCでGコードのNCデータ
(.ncdまたは.nc形式)を作成
または、
1)Fusion360のスケッチ、製造で3DCAM図作成。
ポスト処理でGコードデータ(.nc)作成。

3)PerlでNCデータ(.ncdまたは.nc形式)を
(.csv形式)にデータ変換


4)Excelでアプリが読み込み可能な
(.csv形式)データに加工
(不要コメント行の削除、および
スピンドルモータのON,OFF追加など)


5)開発アプリケーション
PIO_PC_Host.exe(2018_02)で
図形データ(.csv形式)を読み込み、

6)USB経由でPC画面から加工出力
終了は自動停止。


加工作品
20260202_070936719_iOSc.jpg
CNC加工 ナベズルの鍋敷き
(2026-2)


Top


特徴

USB_CNCフライス盤概要

マシン本体:自作。
構造:木板およびアクリル板フレーム、光軸ガイドレール
駆動モータ:x軸、Y軸、z軸 : 12Vステッピングモータ 3台。スピンドルモータ:80W 1台
リモートPIOボード:自作。WinPCとUSB接続し、PCアプリでPIC経由ステッピングモータ駆動ICおよびスピンドルモータのON-OFFを制御
電源:制御:DC5V(12Vより降圧)、動力:ステッピングモータ駆動DC12V3A、スピンドルモータ駆動DC24V5A
PCアプリケーション:自作。
CNC制御:PIO_PC_Hostアプリケーションプログラム(汎用USBクラスMCHPUSB)を開発し使用
アプリ取り込みデータ:*.csv形式。
データ変換:PerlプログラムでNCVCまたはFusionで作成した*nc、*nci形式のGコードデータを*.csv形式データに変換




USB_CNCフライス盤

PIO_PC_Hostアプリ
(汎用USBクラスMCHPUSB / VisualC++2010 Express使用)

PC操作Form画面
USB-CNC_Machine_PIO_hostMCHPUSB_2017_03.jpg

操作説明画面
PIO_host_sousa.jpg

Gコード入力登録画面
USB-CNC_Machine_PIO_host_GcordWindow_2018_02.jpg


●最新版:PIO_PC_Host.exe(2018_02改訂版)

○パソコンのWindows操作Form画面で出力データの追加・変更・削除の編集と・File保存ができる
csvデータ:No,cmd,X,Y,Z,R,I,J ○コマンド(cmd):G90,G00,G01,G02,G03,M03,M05

○Windows画面でX,Y,Z軸およびスピンドルモータのマニュアルon-off運転ができる

○Windows画面でデータに従った自動Step出力運転ができる
ステップ:
①File保存データ(*.csv)または変換Gコードデータファイル(*.csv)を FileOpen してデータを読み込む
②尺度(原寸1または拡大・縮小の任意スケール指定が可能)を入力
③Step出力(自動運転で)プロッタまたはフライス盤加工出力
④データの最後で自動停止

・入出力制御フローチャート:FlowChartR3.pdf

製作で参考にした「PICで楽しむUSB機器」の著者に確認し、開発したPIO_PC_Host アプリを公開(2020-4)
プログラムファイル(zip)ダウンロード

○アプリ実行時のUSB接続について
このUSB通信は「産業用リアルタイムプロトコル」ではなくWindows+汎用USBクラス+自作アプリという、Microchip Custom USB通信です。
Microchip Custom USB Deviceのドライバは¥Microchip Solutions v2011-06-02\USB\Device-MCHPUSB-Generic-Driver-Demo\Driver and infフォルダからインストールできます。(2021-2)



データファイル作成

JW-CAD > NCVC > Perlアプリ または Fusion360 > Perlアプリ
JW-CAD
NCVCアプリ
Parlアプリ データファイル
○先ず、パソコンでJW-CAD等でCADデータファイル(*.jww)を作成する。
>次に、NCVCアプリでCADデータファイル(*.jww)からGコードNCデータファイル(*.ncd)または(*.nc)を作成する。
>次に、開発Perl アプリで
(*.ncd)または(*.nc)を
データファイル(*.csv)に変換する。
・Perlアプリ:
gcc01r2.pl
または最新版gccai01r01sp.pl(2026-2)
>PIO_PC_Hostアプリで読み込み出来ればOK!
・読み込む前に、G90,G00,G01,G02,G03,M03,M05以外の行は本機にない機能なので削除も可。
・サンプル
:外字フォント"岳彦"
take+.csv(.pdf)
:カワセミカービング
kawasemi2.5d2.csv
Fusion360
○パソコンでFusion360のポスト処理で、 3DCAM Gコードデータ(*.nc)を作成する。
製作参考資料
1)(株)オーム社 いまからはじめる「NC工作」JW_CADとNCVCでかんたん切削 眞柄賢一著
2)ActiveState社 「Active Perl」(現在は入手不可です。)
3)Perl基礎入門 http://www.kentweb.com/perl/
4)Stroberry Perl

Top


本体・主要部品・回路・リモートPIO

USB-CNC フライス盤本体



1)本体構造:木製。★構造改造(2022年1月)
本体設計図(.jww)(改造前)
ステッピングモータベース(.jww)

2)ガイド:3DプリンタガイドレールセットKP08 SK8 SC8UU(中国製)3組
・T8リードスクリュー ピッチ1mm SUS、ネジナット ピッチ1mm 真鍮
・リニアシャフト光軸:Z軸:φ8*200mm,φ8*300mm,GCr15
X軸出力幅:200mm
・T8リードスクリュー ピッチ1mm*300 SUS、リニアシャフト光軸:φ8*300mm
Y軸出力幅:150mm
・T8リードスクリュー ピッチ1mm*300 SUS、リニアシャフト光軸:φ8*300mm
・リニアブッシュ:SCS8UUリニアモーションボールベアリング
★リニアブッシュは一部日本製THK SC8UU LM CASE UNITに置き換え
・ベアリングφ8
・ナットハウジング アルミ
・カップリング アルミ φ8/φ5 2個使用

3)ステッピングモータ:動力DC12V(ユニポーラ):ST-42BYG020 3台(秋月電子通商)
・カップリング:プラスチックモールドカップリング GJタイプ G2J 8-5 1個(アサヒ電子工業)
4)ベースプレート:AFS-1590-6-200(エヌアイシ・オートテック株式会社製)
5)スピンドルモータ:RS775 DC MOTOR 24V/20000rpm 12V10000rpm 80W、★更新(2022年1月)
6)リミットスイッチ6個

20220311_052040610_iOSc.jpg

IMG_7849c.jpg

●リモートPIOボード:


○部品
1)PIC18F14K50使用USB対応超小型マイコンボード(12MHz水晶振動子付):クロックおよび軸回転方向信号出力
2)レギュレータ:NJM7805:操作電源用
3)マイコン:PIC12F683 3個:フェイズ信号発生
4)ステッピングモータドライバー:SLA7026M 3個:2相ステッピングモーターユニポーラ駆動用IC
5)SSRリレー:S108T02、トランジスタ:2SC1815:ルータ駆動用

○回路
1)*回路図1/2(.jpg)
2)*回路図2/2(.jpg)
3)*USB_CNC_Machine基板図(.jpg)

○PIOボード実装

中央がPIOボードボックス、左がスピンドルモータ速度コントローラ、右がDC電源制御盤

IMG_7264c.jpg

○プログラム
USBGenericDevice(PIC18F14K50)

1)開発リモートPIOボード:main関数・ユーザアプリ部(.pdf)
2)開発リモートPIOボード:HardwareProfile.hファイル(.pdf)

PIC12F683
3)開発リモートPIOボード:683ドライバー.cファイル(.pdf)




○防塵騒音対策

加工時の発塵と騒音低減のため吸音板を本体カバー兼収納ボックス内面に貼り付け改造しました。

IMG_7853c.jpg



Top


開発経緯
西暦年月 開発区分 概要
2014年4月
システム
PICマイコンを使ったX軸、Y軸ステッピングモータ制御から開発開始
2017年3月
システム
本体も制御ボードもアプリも全て自作の USB_CNCアプリ(PIO_PC_HostおよびリモートPIOプログラム)を開発
2018年2月
ハード&ソフト 工作精度向上のため、Machineの剛性UPとUSB_CNCアプリを改良
2020年4月 ソフト USB_CNCアプリを公開
2021年2月 ソフト USB接続ドライバー(MCHPUSBドライバ)設定について補足
2021年4月 ハード Machin本体を改新
2022年1月 ハード スピンドルモータを更新、「USB_CNCフライス盤」に改名
2022年3月 ハード フライス盤 X軸拡幅 max.200mm
2023年12月 ソフト Z軸精度向上に会わせ、NCデータ.ncd>.csvの変換用 Perlプログラムを改訂
2025年12月 ハード フライス盤 Y軸拡幅 max.150mm
2026年2月 ハード&ソフト 防音ボックスの取付け、Perlプログラムを改訂


Top

製作後記の履歴
(2014-4)
製作後記①、②、③、⑤:おもちゃドクターの電子工作2

(2015-5)
製作後記④:USB機器としてのプロッタ・ミル

○「PICで楽しむUSB機器」(自作のすすめ)を手にしたときは期待一杯だった。 ところが、自分のようなプログラム素養の乏しい者にとっては内容の難解さは並大抵では無かった。
○それでも、USBとは、対応PICマイコンの概要、開発環境とUSBフレームワーク、HIDクラス、CDCクラス、汎用USBクラス等を少し理解すると、 どうやら汎用USBクラスが適用できそうに思えた。手始めに「リモートPIO端末のハードウエアの製作」から入り、技術評論社に問い合わせもして、 PCからUSB経由で実際に端末を操作できるまでに成った。 そこではC-18コンパイラ、VisualC++2010 Express、が使われており、これまでの知識が及ばず、難解、難解の連続だった。
○PIC16F873Aでは出来なかった事で、先ず取り組んだのはX軸、Y軸、Z軸の同時運転制御、円弧の作画、更にG-Cordデータで連続作画する事だった。
このために、PCでデータを入力し、計算し、結果をUSB経由でPIC18F14K50と通信し、回路で繋いだ3個のPIC12F683からそれぞれのドライバでX軸、 Y軸、Z軸ステッピングモータを回転制御するシステムを計画した。
○何度もの試行錯誤の結果、ようやく最近になって、「VisualC++2010Express入門」書を入手して参考し、 PC画面から連続作画ができるPC-Hostプログラムが出来上がり、USB機器としてのプロッタ・ミルになった。
データをPC画面で入力すればいくらでも簡単に作画できる。 またリレー回路で100V駆動のルーターミルのON-OFF制御ができ、プラスチックや木工の研削ができる。
○しかし、、まだ十分なレベルではなく、これで終わりではない。 データファイル出入力の使い勝手、プロッタ本体、作画精度および制御にはいくつかの問題と未達成の課題が残り、 これからも解決と達成に向けて、粘り強く取り組んで行きたい、と考えていた。
(2016-12)
製作後記⑥:USB_CNC工作マシン

○「USB-PIO制御プロッタ・ミル」を制作してのちの1年半に、Windows画面からの座標データ入力による作図出力は出来ていたが、 未達成課題としていたのがCADデータの取り込みであった。
「いまからはじめるNC工作」オーム社眞柄賢一著を参考にして、JW-CAD作図ファイルからNCVCアプリによるNCコード生成、 までは容易にたどることが出来ていた。
しかしながらGコードを含むNCコードファイルを自作の開発PIO_PC_Hostアプリに取り込むことはできず、保有技術には問題が大きかった。問題は、
1)開発PIO_PC_HostアプリがNCコードファイルに適合していないこと。
2)NCVCの生成NCコードファイルのままでは開発PIO_PC_Hostアプリに取り込めないこと。
であった。
そこで、長期にわたり、労力と時間を費やしたが、
1)NCコードに適合するように開発PIO_PC_Hostアプリの大改造を行った。
2)NCコードファイル(.ncd形式)を開発PIO_PC_Hostアプリに取り込める(.csv形式)ファイルに変換するperlアプリプログラムを作成することにした。
Perl言語を学習し、あれこれと苦心の結果、使える(.pl形式)アプリの作成に成功した。
これらによって、CADデータ作成>NCコード作成>.csv形式データファイル作成>開発PIO_PC_Hostアプリにファイル入力>USB_CNC工作マシン出力、が可能になった。
苦心の甲斐あって、これは作者にとっては画期的な成果となった。
○まだまだ改良すべき点が多く未達成な課題もあったが、一段落として「USB_CNC工作マシン」に改名し、ページの更新をした。
(2018-2)
製作後記⑦:USB_CNC Machine

1.○システム改良
2016年12月に一段落で更新した際、出力精度が今一つ不満足だった。
また、USBではなくRS232Cのシリアル通信によるCNCマシンが業界のオーソドックスな制御らしいことはこれまでに解っていたが・・・。
精度に関係のあるステッピングモータ駆動は、当初から、ダーリントントランジスタを4個x3で12個、電圧はDC5Vを使ってきた。
そこで、ステッピングモータについていろいろ調べているうちに、精度はクロック制御との関係で解決できると考えた。 すなわち、汎用USBクラス制御では含まれていないクロック信号をリモートPIOボードのPICで発生出来るなら、何とかなりそうと考えた。 さらに将来の発展性を見込んで、ステッピングモータ駆動は専用ICを使うことにした。
これらの専用ICはDC12V以上を採用しており、秋月電子から駆動ICと12V用ステッピングモータを調達。
ステッピングモータはユニポーラ ST-42BYG020、ICはSLA7026MとSLA7078MRTを選定。
ソフトは「ioioのホームページ」を参照させていただき、ステッピングモータの駆動がより安定するとされる1-2相制御として、PIC12F683にプログラムした。
あれこれ苦心の結果、PIC12F683を使ってどちらのICでもPICの発生クロック信号による駆動に成功した。
そこで、クロック信号はPCからの指令でリモートPIOボードのマイコンPIC18F14K50から発生させることにし、プログラムした。 クロック信号については、2相制御だとモータ1回転は200ステップだが1-2相制御だと400ステップになることも理解できた。つまりクロックが400パルスでモータ軸1回転である。
リモートPIOボードのICは、マイコンPIC18F14K50、PIC12F683およびフェイズ制御用のLSA7026Mを使って回路を設計し、リモートPIOボードを制作した。
ボード回路は以前使ったフォトカプラPL621は無駄と判断してこれを省略しコンパクトになった。また、PIO_PC_Hostアプリは修正と簡素化など細部の変更をした。(2017-3)

〇年が改まってから思い立ち、 Machineの精度レベル向上のため、リモートPIOボード側アプリを改訂し、PIO_PC_Hostからの1信号で10パルスを発生して0.025mm移動するレベルに変更した。 (自作マシン本体の軸移動はM6ネジを使っており1回転400パルスで1.0mm、1パルスで1/400mm=0.0025mmとなる。)
また、Machineの剛性を向上するため躯体を合板型に改造した。カップリング、軸受を変更し駆動部も改造した。 その結果、作画・工作精度は4倍以上向上した。


(2018-2)
2.○初号機本体(2018年2月製)

1)本体構造:木製。
・スライドレール:リニア型多目的スライドレール240mm
・リードスクリュー:M6長ねじピッチ1.0mm 3式
2)ステッピングモータ:動力DC12V(ユニポーラ):ST-42BYG020 3台(秋月電子通商)
・カップリング:プラスチックモールドカップリング GJタイプ G2J 6-5 3個(アサヒ電子工業)
・フランジユニット:SFB30-6 5個(シミズ精工)
・セットカラー:M0605 6個(モノタロウ)
3)ULC140ウルトラルータ(AC100V)1台(Maxima)
4)リミットスイッチ6個

20180118_052946270_iOSc.jpg


PC側アプリ改良では、Perlアプリgcc01.pl とVisualC++アプリPIO_PC_Hostを改訂し、 NCVCアプリで作成した(*.ncd)ファイルを、(*.csv)に変換して、問題なく任意の円弧が描けるようにした。(2018-02)
また、電子回路プリント基板を制作しホール出力データを利用してドリル孔加工を達成した。(2018-04)

(2020-4)
PIO_PC Hostアプリ:PIO_PC_Host.exe(2018_02)ファイル(zip)を公開した。
・公開すると改良にヒントが得られるかと思い、製作で参考にした「PICで楽しむUSB機器」の著者に確認し、公開しましたが、反応なくご評価を得られませんでした。

(2021-2)
USB接続について補足した。
・実行プログラムを読み込む際に発生したUSBドライバーソフトの場所を公開した。


(2021-4)
3.○2号機本体(2021年4月製)

Machin本体を改新
・スピンドルモータをPROXXSONハンディマルチルータとし、ガイドレールはφ8リニアシャフト光軸にし、剛性を向上させた改造した。
この段階でUSB_CNCは完成に近づいた。

PROXXON ハンディマルチルーター使用
仕様:AC100・50/60Hz、定格15分、50W、ドリルチャック~φ3.2mm、8000~18000rpm

20210409_064056130_iOS-(2)c.jpg

(2022-1)
4.○2号機本体改造(2022年1月製)

USB_CNCフライス盤の完成。
スピンドルモータを更新し「自作 USB_CNCフライス盤」に改名した。
・スピンドルモータ:RS775 DC MOTOR 24V/20000rpm 12V10000rpm 80W

スピンドルモータ更新、構造改造
/IMG_3364-(2)c.jpg

・スピンドルモータ更新・改造後、X軸出力幅が100mmであることに多少の物足りなさを感じ、2022年2月に出力幅200mmへの拡幅に踏み切った。



(2026-2)
製作後記⑧:2022~2026

(2022-3)
X軸出力幅を200mmに拡幅した。
・加工品取付けの不自由さから拡張しました。

(2023-12)
NCデータ.ncd>.csvの変換プログラムを改訂した。
・Z軸を小数点以下1桁まで変換出来るPerlプログラムにした。

(2025-12)
Y軸出力幅を150mmに拡幅した。
・y軸加工可能幅を100mmから150mmに拡張。加工可能範囲を X200mm x Y150mmとした。

(2026-2)
新たなPCに、CNCのリモートPIOボード用の MCHPUSBドライバをインストールした。
・PerlプログラムをAIで改訂し、新たなPCにStroberry Perl をインストールした。
加工時の騒音低減のため吸音板をボックス内面に貼り付け改造した。

Top

製作参考資料
1)技術評論社「PICで楽しむUSB機器」(自作のすすめ)後閑哲也著
2)秀和システム社作って覚える「VisualC++2010Express入門」宮崎昭世、荻原裕之著
3)サンケン電気SLA7026M、SLA7078MRT、SLA7070MPRTシリーズ・アプリケーションノート
4)ioioのホームページ
(注記) このページは予告なしに更新することがあります。 ここに掲載した内容は個人の趣味によるものであり、参照によって生じる問題または不具合一切については、何ら責任を負うものではありません。
また、回路およびプログラムの学習および作成に関し、無償のプログラム・データ等をご提供頂いたweb sightに感謝いたします。
もし、コメント等がございましたら 井上岳彦にメールいただければ幸いです。