CNCペンダント用基板の使い方

CNCjsを使っているPC もしくは Duet基板にてCNCペンダント(いわゆる手パ)を使用できるようにする基板です.
ベースはDuetのCNCペンダントとなっており,基本的に配線の接続も同じです.今回は接続用の基板を設けることでCNCペンダントの配線のはんだ付けをしなくてもいいようにしています.(ただしProMicroの購入場所によってはピンヘッダのはんだ付けが必要です)

直接ProMicroにCNCペンダントの線をはんだ付けする場合は接続用基板は不要です。その場合はDuetのCNCペンダントの説明を確認して配線してください。

またここでの説明はWindows10向けです.

必要なもの

  • CNCPendantBoard基板
  • CNCペンダント
  • Pro Micro(5V版)
  • Micro USBケーブル(ProMicro用)
  • 3 or 4芯のケーブル(Duetに接続の場合)

CNCPendantBoardキット
ケース,ペンダントと基板、Pro Microを含めてAvalontechより自作キット化することになりました.


公開しているデータです.改良案等はGithubのissueあるいは本掲示板でお伝えください.
Eagleデータ等
GitHub - nyarurato/CNCPendantBoard: You can use a CNC Pendant on CNCjs and Duet Board.

Duet用ソフトウェア
[ProMicro用ソフトウェア(Duet3D社開発)] GitHub - Duet3D/CNC-Pendant-Firmware

CNCjs用のソフトウェア
[ProMicro用プログラム] GitHub - nyarurato/CNC-Pendant-Firmware-for-CNCjs
[PC側のソフトウェア] GitHub - nyarurato/cncjs-real-pendant: Software to communicate cncjs with real pendant.


目次

  1. 準備
  2. 配線
  3. ファームウェアの書き込み
  4. CNCjsで使うための設定
  5. Duetで使うための設定
  6. 収納
  7. わかっていること
  8. 調整

License
私が製作した基板及びソフトウェアに関しては以下のライセンスとします.

ハードウェア:CC BY SA
クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

ソフトウェア:GPLあるいはMITライセンス

オープンソースとして公開している基板データ及びソフトウェアを用いて製作された製品により生じた損害等に関してデータ製作者は一切責任を負いません。

  1. 準備
    Pro Microの準備
    ProMicroのUSBポートは簡単にもげるので接着剤等で補強することをおすすめします.

ProMicroをペンダント基板のピンソケットに差し込みます.


ペンダントの準備

下の画像のように銀色の撚り線みたいなものがでています.これはシールドです.GNDに接続しますが,他のところに接触してショートされると困るので熱収縮チューブやビニールテープ等を巻いておくといいと思います.


また、ケースに収める場合は先にペンダントのケーブルをケースの穴に通しておきます。(基板に配線するとケースにケーブルが通らなくなります)
ケースには大小2つのケーブルクランプがありますが、小さい方がペンダントのケーブル用、大きいほうがUSB用です。

ソフトウェアの準備
ソフトウェアの準備としてファームウェア書き込み用としてArduino IDEを使います.

以下のリンクよりArduino IDEをダウンロードしインストールしてください.

インストール方法の参考:
https://www.kkaneko.jp/tools/win/arduinoide.html

  1. 配線

ペンダント基板上の書いてある文字に従ってペンダントの線を差し込みます.

基板上の文字 線の色
r
g
b
br
G グレー
Y
O オレンジ
V
P ピンク
B
W

基板上ではg/BやY/Bなどの表記もありますが,これは緑/黒,黃/黒の2色の線を示しています.
今回使うペンダントでは赤/黒,紫,紫/黒,ピンク,ピンク/黒はペンダントの内部的にはどこにも繋がっていないので,繋げなくても良いです.(接続用基板のNCと書いてある部分はどこにもつながっていないので,そこに差し込んでおきます)
ただし,5軸,6軸用のペンダントの場合はピンク,ピンク/黒を繋がないと使えません.

またシールドはどこかのGNDに挿入してください.なお接続用基板のGNDと書いてある部分はすべて共通GNDです.



ちなみに多少線の色が異なりますがDuetのペンダント配線と同じです.

ProMicro Pendant   Wire colours
VCC      +5V       red
GND      0V,       black
         COM,      orange/black
         CN,       blue/black
         LED-      white/black

D2       A         green
D3       B         white
D4       X         yellow
D5       Y         yellow/black
D6       Z         brown
D7       4         brown/black
D8       5         powder (if present)
D9       6         powder/black (if present)
D10      LED+      green/black
A0       STOP      blue
A1       X1        grey
A2       X10       grey/black
A3       X100      orange

NC       /A,       violet
         /B        violet/black

(from: GitHub - Duet3D/CNC-Pendant-Firmware)

3.ファームウェアの書き込み
USBケーブルでPCに接続すると以下のようにArduino Leonardoとして認識されます


Windows10ではドライバは自動でインストールされると思いますが,認識されない場合はsparkfunのチュートリアルを確認しドライバを入れてみてください.
https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide

使う環境に合わせてプログラムをダウンロードしてください.
ファイルを解凍し,中にある.inoファイルをクリックしてプログラムを開きます.

プログラムを書き込むための設定をします.
Arduino IDEのメニューのファイル→環境設定
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202020-11-12%20172130
追加のボードマネージャのURL右のボタンを押します.
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
をコピペして入力します.

これにより下図のようにProMicroを選択できるようになります.
ファームウェア書き込み時は下記の設定となるようにしてください.
ボードはSparkFun Pro Micro,プロセッサはATmega32U4(5V,16MHz),シリアルポートはArduino Leonardoとなっているもの(接続時にデバイスマネージャーを開くと確認できます)


ここまでの設定が終わったら左上の横矢印ボタンを押します.
少し待つとプログラムがProMicroに書き込まれます.

書き込みに成功すると「ボードへの書き込みが完了しました」と表示されます.

書き込みに失敗すると下記のようになんらかのエラーが表示されます.

参考:

https://learn.sparkfun.com/tutorials/pro-micro–fio-v3-hookup-guide

https://www.shigezone.com/?product=arduino-pro-micro

http://okiraku-camera.tokyo/blog/?p=7988

  1. CNCjsで使うための設定

CNCjsで使う場合の構成としては以下のようになります.

CNCjsとProMicroの橋渡しをするソフトウェアを動かすため,nodejsをインストールします.

インストール方法参考:


以下からプログラムをダウンロードします.

ダウンロードしたファイルを解凍し,フォルダを開きます.
開いたフォルダにてコマンドプロンプトを開きます.
図のようにファイルエクスプローラーのパス欄にcmdと入力するとコマンドプロンプトを開くことができて簡単です.

以下のコマンドを実行します.

npm install

CNCjsとProMicroを繋ぐ場合はコマンドプロンプトにて以下のコマンドを実行します.

node bin/cncjs-real-pendant --socket-port ◯◯◯

この◯◯◯の部分はCNCjsのポートですが,Windowsの場合はCNCjsを起動するたびにポートが変わります.(linux系ならデフォルトで8000番だと思います)

このポートはCNCjsのメニューのView→View in BrowserとしたときのブラウザのURL部に表示されるコロン以降の数字です.
127.0.0.1:◯◯◯◯


この場合だと64956です.

実行するとまず制御基板(CNCxPRO)のCOMポートが聞かれるので,矢印キーで選択

これはCNCjsで選択したポートです。

次にペンダントのCOMポートを聞かれるので矢印キーで選択

connected ws:~~~~~~~
connected COMxxx
のように表示されたらOK.

CNCjs・CNCにハンドルの動作が反映されるかを確認(ペンダントの側面スイッチ(インターロック解除スイッチ・安全スイッチ)を押しながら ハンドルを回す!)

ファームウェア及び配線の動作確認 補足としてProMicroから正しいデータがでているかの確認方法です。 USBをPCにつないだ後、シリアル通信のできるソフト(TeraTermなど)を立ち上げます。

ss1

image
その後、ペンダントの側面スイッチ(インターロック解除スイッチ・安全スイッチ)を押しながらハンドルを回すと下記のように出力されます。

パラメータ 説明
“ax” 軸(“X”,“Y”,“Z”,“U”)
“rt” 倍率(1,10,100)
“mv” 移動量
“emg” 緊急停止スイッチの状態(0:なし、1:オン)

5.Duetで使うための設定
(CNCjsで使う人は飛ばしてください)

構成としては以下のようになります.

接続等に関してはほぼDuet3D社の説明と同じとなります.

ペンダント基板のTx,GND,VccをDuet3のIO_0に繋いでください.
PanelDueを使用している場合はRxも繋いでください.
image

Duet3 IO_0 ピン 接続用基板 説明
5V VCC 基板・ペンダント用電源
io0.out RX Arduinoの受信側(PanelDueを接続しない場合接続不要)
GND GND
io0.in TX Arduino送信側

IO_0がリミットスイッチで使用している場合はリミットスイッチを別のIOピンへ移動してください.

DuetWebContolにて以下のコマンドを実行すると有効になります.

M575 P1 S1 B57600

6.収納
動作確認ができたらケースに収めるか木の板に止めるかなどしてください.
基板のケーブル接続部・USB部に引っ張りの力がかからないように取り出したケーブルを固定したほうがいいと思います

USB側のケーブルクランプ(大きい方)はスカスカなのでゴムシートを巻いてケーブル径をかさ増ししています。

  1. わかっていること
  • 1クリックの移動量が大きいときにハンドル早く回すと、正常に移動しないことがあります(一度逆方向に動くことがある)
    • 機械の移動がハンドルの回転に追いつかないため、データを受け取り切れず発生しています
    • 移動量が大きい場合は勢いよくハンドルを回さないよう気をつけてください

AvalonTech株式会社スタッフです。
改良案のキット化に関するご紹介です。

現在、nyaru様発案のCNCペンダントを弊社オンラインストアにてキット化し販売しております。

ぜひ皆様の自作CNCにお役立てください。

弊社ではオープンソースプロジェクト発展のため技術者やユーザによる技術開発を支援しております。