2017年6月3日土曜日

小型工作機CNC2418 その16(bCNCのカメラ機能)

で先送りしていたbCNCのカメラ機能です。

この前見つかったGitHubのbCNC Camera情報をやってみることにします。
英語ですがかなり詳しく書かれていそうです。
想像以上に便利な機能があるようです。
全部はわかりませんでした。

まずは、Google先生の助けを借りて翻訳します。
恥ずかしいのでここには載せません。

動かすための要点を抜粋すると
・Python-OpenCVモジュールが必要。
・Python用にPIL、OpenCV、ImageTkもインストールしていること。

実は、既にbCNCにUSBカメラを付けるために
Pythonの環境変数を変えていました。
記録を忘れていたのでここに残しておきます。
*********
OpenCVでPythonは、Anaconda2をインストールしたので
モジュールは色々はいっています。
bCNCもこちらのPythonで起動するようにします。
そうすれば追加のモジュールインストールはほぼ必要ないと思われます。

以前、Python単独でインストールしているのが残っているので
Anaconda2の中のPythonに切り替えておく必要があります。
Windows10で
[システム]-[システムの詳細設定]-[環境変数]を開きます。
下の欄の「システム環境変数」
Pathの所をクリックして反転させ[編集]ボタンを押します。
「C:\Python27\」と「C:\Python27\Scripts」を削除します。
[OK]で閉じると
「C:\Python27\;C:\Python27\Scripts;」が消えているのを確認します。
「ユーザー環境変数」のPathの欄に
「C:\Anaconda2...」があるので
bCNCはAnaconda2側のPythonでOpenCVも動くことになります。
*********
で本題に戻って
まず、キャリブレーション(較正)です。
残材をセットします。
メニューから[Probe]-[Camera]アイコンをクリック
そしてここのカメラのアイコンをクリック(凹みます)
数秒後にカメラの映像が出てきました。
内蔵/外部カメラの切り替えはできないようです。
自動的に外部USBカメラを選択するようです。
ステージにカメラからのLED光が反射しています。
捨て板の適当な場所に小さな穴を開けます。
0.6mmで開けました。
Probe]-[Camera]アイコンをクリックした画面の
Register:]の[1.Spindle]ボタンを押します。
穴を開けたスピンドルの座標が記憶されるようです。
カメラを移動して開けた穴の中心に合わせます。
Register:]の[2.Camera]ボタンを押します。
この時、工具の直径が設定できます。
Crosshair:]に工具の直径「0.6」を入力。
穴と照準の円が合うように
Scale:]の値で調整。「68」でほぼ合いました。
この直径設定は見易くする為で、しなくてもいいとのこと。
すると[Offset:]に数値が入りました。
Z軸にも値が入っているのが気になりますが、
たぶんZ軸にカメラをつけると良い事あるのでしょう。
私はカメラを固定しちゃったからですね~
これでキャリブレーション完了です。
使い方は、
Switch To]の所をクリックして「エンドミルアイコン」にして
穴を開けたい位置をカメラで照準します。
そこで[Switch To]の所をクリックして「カメラアイコン」にすると
スピンドルが照準した位置に移動します。
基本は以前私がやった方法と同じですね~(-_-;)
先人がいるだろうなとは思っていましたが
まさか私のPCに既に入っていたとは!
Offset登録ができボタン一発でカメラとスピンドルが切り替えできる所は流石です。
大変使い易いです。
もうひとつ便利な機能がありました。
この[Edge Detection]をクリックすると
エッジが強調されるのです。
いや~これいいです~。
これで木材の端にも照準が合わせやすい。
先のOpenCVでカメラやっている時には思いつかなかったー
ちょっとくやしい~っ
見ている所は、この木材の左上の角なのです。
角が結構丸いのですが、上の写真でわかるように
エッジに線が入り大変見えやすいです。
側面が切り立っているからなのですね。
GiHubの解説では、この他に
切削済のPCBと読み込んだGcodeで何かすごいことやってるみたいなのですが
悲しかなマーティー工房では、まだこの様なPCBを作っていないので
英文を読んだだけでは意味不明です。
それにしてもなぜCameraのConfigが出てこないのだろう~?

4 件のコメント:

ita さんのコメント...

b-CNCでのプローブカメラの取付で、こちらの記事を参考にさせていただきました。
ありがとうございます。

最初、Python単体でカメラ画像が表示できないとダメなんだと思い込み壁に
ぶち当たりましたが、anacondaを入れておけばそれだけでOKなんですね。(^^;
それに気がつくまでずいぶん寄り道をしてしまいました。

でもようやく稼働できる状態になりました。
しかし、この機能は便利ですね。老眼にとても優しい。(笑)

マーティーの工房日誌 さんのコメント...

itaさん、見ていただきありがとうございます。
参考になったとのことで幸いでございます。
bCNCは、anacondaが入っていればOKだと後でわかった次第でして。
私の場合、bCNCを使う前にOpenCVを使ってカメラを動かした投稿をしたので、それで回り道させてしまったみたいでm(_ _)m
bCNCは、カメラ機能が一体になっているので便利ですね~
他にも賢い機能がありそうなのですが、
私のPC(i3 1.8GHz)には、bCNCが、ちと重くて動作不良を起こすので、今は、Candle(GRBLcontrol)を使っています。
カメラを使う時だけPython+OpenCVで動かして、確認できたら終了して、Candleで切削という具合です。

ita さんのコメント...

いえいえ、私自身機械屋なものでソフト系はネットの情報を頼りに試行錯誤を繰り返しております。
candleっていうのもあるんですね。ちょっと調べてみます。
b-CNCは重い方なのですか?最初の頃、動作不良を起こしていたのは古~いノートパソコン使っていたせいもあるのかも。(^^;
今はCNC用のパソコンも新調したのでたぶん大丈夫。

マーティーの工房日誌 さんのコメント...

ご連絡ありがとうございます。
Candleは、中華CNCに標準添付されているGrblcontrolというソフトの正式名称?です。GitHubでは、
https://github.com/Denvi/Candle
に最新のcandle v1.1.7(GRBL v1.1用)があります。
これは、Qtで開発されているので動作が軽いです。
bCNCは、Python言語を翻訳しながら動作するので重たいです。
私の非力なPCではジョグでカチカチ移動するだけで固まります。
その代り、テキストエディタで改造などできます。
PC新調されているなら機能の多いbCNCが便利でしょう。
いいな~