[ラズパイ x 卓上CNC] ラズパイにいれたbCNCを使って卓上CNCを動作テストするまでの手順
※ 当ページには【広告/PR】を含む場合があります。
2020/05/28
卓上CNCルータを使うと、ちょっとした電気回路基板を試しをすぐに手元で試せるのでDIYレベルのプロトタイピングに非常に重宝します。
今回はネットショップでも購入できる卓上CNCルータを利用して、ラズパイのリモートから操作しながらの基板起こしする準備のお話を取り上げます。
bCNCのインストール
まずはラズパイにログインして、インストールしているpythonのバーションを確認をします。
なお今回の動作確認は
Raspberry Pi 3B+
$ python --version
Python 2.7.16
デフォルトで入っているバーションが
2.7
では、公式にあるように必須のライブラリごと
pip
$ sudo apt-get install python-pip python-setuptools python-dev python-tk libjpeg-dev zlib1g zlib1g-dev
[sudo] blue-taco のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
python-dev はすでに最新バージョン (2.7.16-1) です。
python-dev は手動でインストールしたと設定されました。
python-setuptools はすでに最新バージョン (40.8.0-1) です。
python-setuptools は手動でインストールしたと設定されました。
python-tk はすでに最新バージョン (2.7.16-2) です。
zlib1g はすでに最新バージョン (1:1.2.11.dfsg-1) です。
zlib1g-dev はすでに最新バージョン (1:1.2.11.dfsg-1) です。
zlib1g-dev は手動でインストールしたと設定されました。
python-pip はすでに最新バージョン (18.1-5+rpt1) です。
以下の追加パッケージがインストールされます:
libjpeg62-turbo-dev
以下のパッケージが新たにインストールされます:
libjpeg-dev libjpeg62-turbo-dev
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
236 kB のアーカイブを取得する必要があります。
この操作後に追加で 543 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
手元の環境では、既にいくつかのライブラリが過去に入れていたようです。 インストール完了したら
pip
$ pip --version
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
それでは、
pip
bCNC
$ pip install bCNC
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting bCNC
Downloading https://files.pythonhosted.org/packages/d9/51/7cbe26701d0e5d0a991802d7847851426038fdd191201a083623b1a070dc/bCNC-0.9.14.306.tar.gz (1.3MB)
100% |████████████████████████████████| 1.3MB 95kB/s
Requirement already satisfied: Pillow>=4.0 in /usr/lib/python2.7/dist-packages (from bCNC) (5.4.1)
Requirement already satisfied: numpy>=1.12 in /usr/lib/python2.7/dist-packages (from bCNC) (1.16.2)
Requirement already satisfied: pyserial in /usr/lib/python2.7/dist-packages (from bCNC) (3.4)
Building wheels for collected packages: bCNC
Running setup.py bdist_wheel for bCNC ... done
Stored in directory: /home/**********/.cache/pip/wheels/d8/42/2a/5273e7e4252dfea6e39ea17862798f675e7c46cfb94cadcc9c
Successfully built bCNC
Installing collected packages: bCNC
The script bCNC is installed in '/**********/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed bCNC-0.9.14.306
これでラズパイに
bCNC
sshのターミナルからはここまでで、次はリモートデスクトップ側からGUI操作になりますので、一旦sshを抜けます。
Remmina (Debian OS)からRDPで接続してbCNCを起動する
以前、
ラズパイのRDPの導入方法はそちらの記事を参照していただくとして、先程のラズパイにインストールした
bCNC
それではRemminaクライアントからラズパイに接続し、
python -m bCNC

すると
bCNC

CNCと接続してみる
それでは、きちんと通信できるか、ラズパイとCNCをUSB接続してみます。
CNCをUSB接続させたときに与えられるラズパイ側のデバイス名はそれぞれの環境で違うと思いますが、手元のラズパイ3B+では
/dev/ttyUSB0

シリアルのボーレートは
115200bps
GRBL0/GRBL1
開く

うまく接続できたら、
閉じる
Idle

それではマニュアルで動くかどうかだけxy軸を移動させてみます。
Control
Control

スムーズにCNCが並行移動していたら、リモートでの通信開始テストは完璧です。 これでネットワーク上のどこのパソコンからでもラズパイにアクセスして、基板加工ができる環境が整いました。
プローブのテスト
いきなり基板の削り出しを行う前に、
Auto leveling
ピン配置の確認
オートレベリング機能とは、プローブと金属表面が導通したときを検知して加工の高さを補正していくことを指します。 ということで、CNC本体が自動でやってくれる訳ではなく、自分でプローブとPBC基板表面を、CNCの基板側に配線を接続する必要があります。
現在利用している格安の中華製CNCは
Woodpecker CNC GRBL
A5

オートレベリングでエンドミルを折ってしまうのは残念ですので、心配な人は、前もって取説に書かれている内容か、ソースコードからビルドしてインストールする際にはコードを見て確認しておいた方が良いでしょう。
A5

可動部分に接続させるため、プローブが動いている途中で引っかからないように余裕をもった配線の長さにしましょう。

オートレベリング前の手動調整
今回はオートレベリングの解説だけに絞っているので、本番用のエンドミルは使わず、太めの鉛筆の芯を加工したもので代用してみます。 材料的に柔らかくしかも伝導性をもち、なおかつ安いのでコスパ最高です。 最悪でも芯が弾け飛ぶだけでCNC本体にはノーダメージなこともあり、予備動作を試験するには最適なんではないかと思います。

これをCNCのスピンドルに固定し、ワニ口などでプローブの固定具を掴んでおきます。 他方、PBC基板表面を導線などで接触させて固定したものをGND側の配線に持ってきます。

この時点で、テスターなどに接続して導通具合は見れるようにしておきます。
しっかりと配線が固定できているのを確認してから、プローブを加工原点にしたい場所の上空までxy座標を手動で移動させます。
移動は
[Control]タブ --> [Control]

そこからゆっくりと確実にプローブをz軸方向に降下させていきます。

目視でそろそろ基板表面に接するようなところまで降ろしたら、テスターで導通具合を確認しながら更にプローブを下げます。

慎重にプローブを降ろしていくと、導通した瞬間に止めます。

接触したこの座標を作業用のゼロ座標として登録しておきましょう。
Wpos(ワーク座標)のXYZをすべてゼロリセットします。

これで原点出しできました。
オートレベリング
ここから実際のオートレベリングを行います。
まず
先程の加工原点のゼロ出しのままでテスターに配線しっぱなしの状態でオートレベリングを行うと、エンドミルならびにCNC本体にダメージが行くので、うっかりどころで無くなるかも知れません。 必ず接続確認をしましょう。

配線の接続確認をしたら、
[Probe]タブ --> [Auto Level]
Common設定
プローブに関する諸設定です。
Autolevel設定
その時のワークの大きさや固定したレイアウトによって異なります。 ここでは参考程度ですが、プローブのXYZ範囲を設定を以下のようにしました。
例えばMinの値より凹んでいるとこがあると Min値までZ軸が下がった所で接触がないのでエラーで止まります。
作業領域は原点(0,0,0)を左下に見た時の右に進む方向を
+x
+y
+z
XY軸のステップ数刻みで測定点を決めているので、ステップ数の刻みを多くするごとに高解像度な表面の補正マップが作成されますが、あまり刻みすぎると今度はオートレベリングがかなり長時間掛かってしまうもの考えものです。 ステップ数の設定はほどほどの値にしましょう。
今回はプローブの準備にテスターを見ながら表面を接触した高さで
z=0
以上、安全確認後
Scan

オートレベリング中は、リアルタイムで進捗状況が確認できます。 画面下に現れるプログレスバーには、大体の予想作業完了時間もでますのでなかなか便利です。

今回の設定ではだいたい80点の測定で、10分程度かかるようです。
測定結果の保存
オートレベリング完了後の測定データを利用するには、データを保存する必要があります。

測定した生データは現在のプローブからのz軸方向の絶対座標です。
なので、プローブ原点出しの際にプローブの接触したときの高さを前もって
z = 0
z = 0.5
ということで、測定したどこかの点を基準をゼロとしてそこから相対的な高さデータに補正してくれるのが、
[Zero]ボタン
x = 0, y = 0

原点位置からの相対高さでデータが再計算されます。
測定データは
probe

加工時にこの
***.probe
まとめ
今回は加工作業というよりは、ラズパイへの
bCNC
次回の機会があれば何かガーバーデータを使って、実践的の削り出しをやってみようと思います。