grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


ラベル レーザー の投稿を表示しています。 すべての投稿を表示
ラベル レーザー の投稿を表示しています。 すべての投稿を表示

2016年8月3日水曜日

CNCマシン:LaserWeb3

ブラウザベースのG Code SenderであるLaserWeb3ができたようです。
ちょっと前までLaserWeb2でしたが、いつのまにかLaserWeb3にバージョンアップしたみたいです。
以前、LaserWeb1と2を試してみたときの内容はこちらへ
追記:
LaserWeb4(アルファ版)もできたようです。
Chrome上で動くようです。
さっそくダウンロード&インストールしてみました。
各OSごとのインストール方法はwikiページにのっているので、やや面倒ですが、それに従えば難しいことはないと思います。どうやらRaspberry Piにもインストールできるようなので便利かもしれません。
dxf、svg、stlなどのフォーマットも読み込めるようです。

関連:
Laserweb3を使用してスタンプ制作(使用例)

2016年6月3日金曜日

CNCマシン:レーザーシールドの改良

先月レーザーモジュール用にABS樹脂でシールドをつくりました(記事はこちら)が、それを改良しました。まずは結果から。
こんな感じです。赤いレーザーシールドを下部に付けました。これで照射している部分が見えます。左隣のレーザー用ゴーグルと同じ材質です。
前回までのシールドはただの黒いボックスでした(以下)。

前回の状態でもレーザー光が外にはみでなくなったのでよかったのですが、照射部分がよく見えないという問題がありました(見ないほうがいいのですが)。その後もレーザー防護アクリルを探してみましたが、300mm角で1万円以上するとか、Ebayやアメリカのショップで安いものも見つけましたが、送料が高すぎて300mm角程度でも合計で8000円くらいになってしまいます(トラブル防止のためトラッキングありの配送方法となってしまうらしく、配送代だけで6000円以上となってしまう)。
AliExpressでも安いレーザーシールド(海外ではLaser Safety Windowなどと呼ばれている)は売っていなくて、しかも5mm厚のものがハガキサイズ(100x150mm)でも4000〜5000円くらいします。ということで諦めていたのですが、AliExpressだとレーザーゴーグルは安い(一個160円くらい/専用ケースなしの場合)ので、それを改造してシールドをつくってみようかなと。いままでつかっていたゴーグルと同じものですが、さらに2個注文しておきました。合計で320円送料無料です。

「レーザーシールドの制作」
材料の準備:
まずは材料となるレーザーゴーグルを2組用意します(もったいなさそうだけど、2組で320円くらいなので)。普段使っているゴーグルは同じものですがもう一個別にあります。
そもそもこの値段から単なる赤いアクリルや塩ビかもしれないですが、一応レーザー用として売られているので少しはましかと。
ゴーグルの右目と左目の部分から材料を切り出します。
模型用のノコギリがいいかもしれません。刃が細かくて切りやすいです。プロクソンのテーブルソーもあるのですが、割れてしまうかもしれないのであえて手作業で。
こんな感じ↑でフレームから外したゴーグルをまずはまっぷたつに。
鼻にかかる部分やゴーグルのサイド部分が折れ曲がっているので切り落としてしまいます。必要なのは一番面積の大きい目にかかる部分です。同じようにもう一方も切ってしまいます。このゴーグルはアクリルではなくて、おそらく塩ビだと思います。完全に切れてない部分を手で折り曲げてみたらアクリルならパキッと割れるはずなのにぐにゃりと折れ曲がったので。

材料の熱加工:
切りとったゴーグルは湾曲しているので、熱で平らに加工します。
ヒートガン(なければドライヤーでもいいかもしれません)とクッキングシート(両面テフロン加工済み)を用意します。クッキングシートは100均で売っていると思います。幅30cmで耐熱250度のものでした。
こんな感じでクッキングシートに材料をのせて熱します。この熱する加減が難しいので注意して下さい。熱しすぎないように。このとき、クッキングシートをやや大きめに切っておいて、半分に折れるようにしておきます。熱すると柔らかくなるし手で触ると熱すぎるので、クッキングシートを折って材料をはさんだ状態でひっくり返して両面熱します。
これ↑は、表面の温度を計測できる赤外線温度計です。これがあると便利なのですが、温度が120度くらいで熱するといい感じだと思います。やってみて分かりましたが、150度を超えると溶け過ぎてしまいます。
熱しすぎると溶け始めてきて、このように↑気泡のようなものが表面にでてきます。材料の表面の変化をよく観察しながら熱したほうがいいです。
ある程度熱したら、クッキングシートを折って上からアイロンで押しつけます。アイロンの温度も120度くらいがいいと思います。このアイロンの場合、中温で150度くらいだったので、それ以下という感じ。低温でもいいかもしれません。最初アイロンを動かさないで10秒くらい強く押し付けて、少し温度を下げていくといいかもしれません。一度確認して、まだ材料の湾曲がとれていなければ、またヒートガンで熱する感じ。それの繰り返しで両面やるといいと思います。必要以上に温度を上げてしまうと溶けてしまうので120度くらいを目安に。
注意しなければいけないことは、温度もそうですが、アイロンのスチーム噴出口の部分で押し付けないように。ボコボコになってしまいます。平らな部分で押し付けてください。
何回か繰り返して、ようやく平らになりました。
湾曲している部分を向き合わせて重ねてみて隙間ができなければ平らになっています。

そんな感じで合計4枚平らにしました。

材料を寸法に合わせてカット&サンディング:
つぎに平らになった材料を必要な寸法に製材します。キズがつかないように両面をマスキングテープで養生しておきます。余分なところを模型用ノコギリで切り落として、だいたい正方形にします。一枚から42mm角くらいの材料がとれる感じでした。厚さは2mmちょっと。
平行や直角はサンドペーパーを使って調整します。#100で削りとって、#240で細かな調整という感じです。大体かたちが整ったあたりで、ノギスで4辺を計測して書き込んでおきます。今回は37mm幅のものと41mm幅の2種類必要なので、大きいものは41mm幅の材料にします。
レーザーカッターで切ればいいかもしれませんが、塩化ビニール系は有毒なガス(黒煙/ダイオキシン、あるいは塩素など)が発生するようなのでやめておいたほうがいいです。

接着作業:
つぎに、かたちが整った材料を接着するわけですが、材質に合わせて接着剤を選ばないといけません。万能そうな瞬間接着剤を使ってもいいのですが、できれば溶着させたいということから、持っている接着剤を使って材料の破片にいろいろ試してみました。まずはABS樹脂用接着剤(プラモデルの樹脂用)。やっぱりくっつきません。アクリルっぽくはなかったので、塩ビ用接着剤を試してみました。

上画像手前にある端材で接着してみて確かめました。ちゃんとくっついていました。いわゆる溶着という状態です。ということから塩ビ用接着剤で大丈夫そうです。材料が限られているので一応慎重に進めています。
あとは材料をミニクランプで固定しつつ直角も出しておいた状態で接着剤を角に流し込みます。アクリル接着と同じように、サラサラした液体接着剤なので隙間に流し込むような感じです。量が多いと流れだしてしまうので、かなり少なめで充分です。足りなければまた後で流し込めばいいので、とりあえず仮止め的な感じでほんのちょっとだけ隙間に流し込みます。

接着剤が多すぎて裏側まで流れでてしまった結果、こんな感じで表面が汚くなってしまいます。
適量(少なめ)ならこのようにはみ出ません。完成した後からでも再度接着剤を流し込めばいいので、できるだけ少なめで。
溶着なのですぐには固まりません。この状態からでも角を見て、ずれていそうならグイっと力任せにずらせます。そんな感じで少し調整し、再度角に接着剤を流しこんでおきます。30分もすれば固まっていると思うので、またサンドペーパーなどでバリを取ったり調整してもいいと思います。
こんな感じで前回のレーザーシールドにはまるので、この状態で接着剤が固まるまで放置します。


前回のレーザーシールドのカット:
今回つくった赤いレーザーシールドは前回の黒いレーザーシールドの上にかぶせるのですが、このままだと黒いレーザーシールドが長いので短くカットします。
黒いシールドのほうは、焦点距離から5mm短いサイズとなっているので、赤いレーザーシールドの位置も合わせておきます。そうすると黒い表面に書いてある線のあたりで切ってしまうとちょうどよさそうです。重なる部分が1cmくらいあります。


完成:
黒いレーザーシールドを短くして、その部分に今回の赤いレーザーシールドをかぶせて完成です。
とりあえずようやくこれで、レーザー光を確認できるようになりました。ちょっと手間はかかってしまいましたが、安くつくることが出来たのでよかったです。塩ビ用接着剤は持っていたので、材料費はレーザーゴーグル2組320円とクッキングシート108円という感じです。これも安いAliExpressのおかげです。
まだレーザーを照射して実験してませんが、あとから画像を追加しておきます。

追記:
フェルト(厚み1mm)を切断中。材料と赤いレーザーシールドとは2~3mm程度のすきまがあります。



今回つかった塩ビ用接着剤はホームセンターなどで600円くらいすると思うので、

アクリサンデー サンデーシート 硬質塩ビ板用接着剤 25ml 注入器付
Posted at 2017.6.18
アクリサンデー
販売価格 ¥489
(2017年6月18日0時0分時点の価格)
売上げランキング: 1904

もっと安い塩ビ用接着剤をAmazonで調べてみると、

セメダイン 塩ビパイプ用 接着剤 30ml CA-123
Posted at 2017.6.17
セメダイン
販売価格 ¥165
(2017年6月17日23時59分時点の価格)
売上げランキング: 3667

これは安そうですが、おそらく塩ビ水道管用で、少しドロドロしていると思います。流し込むというよりは塗る感じです。塩ビ用なので溶着はするとは思います。

2016年5月21日土曜日

InkscapeのMac版ショートカットキー設定/パスに沿った図形の複数配置

Inkscapeのデフォルトだと、Macのショートカットキーとは違うのでそのままだとちょっとやりづらいです。MacでコピーはCommand+cですが、control+cになっています。InkscapeのEdit>Preferences>Interface>Keyboard ShortcutsでAdobe Illustratorに変えられるのですが、それでもcontrol+cになってしまいます。

検索すると、ここに載っていました(Mac OS X固有の問題)。忘れないように書いておこうと思います。

Commandキーを使う場合:
Teminalを開いて、
cd ~
を入力して、/Users/usernameのディレクトリに移動したら、
touch.Xmodmap
を入力すると.Xmodmapという不過視ファイルが出来上がって、
open.Xmodmap
を入力して、それを開く。開いた新しい画面に、
keycode 66=Alt_L
を入力すると、左optionキーがX11でAltキーになるようです。
そして、controlキーとcommandキーを入れ替えるために、
! Switch meta and control
keycode 67 = Meta_L
keycode 63 = Control_L
keycode 71 = Control_R
clear mod2
clear control
add mod2 = Meta_L
add control = Control_L Control_R
これらもまとめてコピペするといいようです。
X11を一旦閉じて、Inkscapeを起動すると、ちゃんとcmmandキーが機能しています。

もうひとつ使いたいのは、option押しながらドラッグするとduplicateしてくれる方法。でもこれはできないみたいです。duplicateはcommand+dを使うしかない。
これで少し使いやすくはなりました。


パスに沿って複数図形を配置する場合:
それから個人的に、これをやりたかったのですが、
まずこんな感じで、大きい円(円をObject to Pathでパスにしたもの)の上に、小さい赤丸をたくさん並べたいというやり方についてです。
きっと方法があるだろうと調べてみると、ひとつは図形(赤丸)をパターンに変換してから配置するというのがあったのだけれども、そうするとパスには戻せなくなるようなので(Gコード化できなくなる)、パス図形をパスに沿って複数配置するという方法でやってみました。
最初に二つの図形を選んでおいて(このとき、配置される図形:赤丸はパスとなる図形:大きい丸よりも上下関係で言えば上にないといけない)、
このGenerate from Path>Scatter...を選ぶと、

多少重なって欲しいので、Space between copies:に-6.0を入れておきます。
Orignal pattern will be:Copiedになっていますが、この他にMovedでも構いません。オリジナル(小さい赤丸)を残しておくか、いっしょに移動させてしまうかの違いです。しかし、もうひとつClonedという選択肢もありますが、これをつかうと生成される図形がパスではなくなってしまうようなので、ダメみたいです。CloneとかPatternはPathにできないようなので、レーザーカットではあまり用いないほうがいいかもしれません。
Copiedを選べば、このようにオリジナルは元の位置に残るようです。
複数配置されたほうはグループ化されて一つになってしまっているので、一旦Ungroupしてバラバラにし、もう一度複数を選んで、Path>Unionをすると、
こんな感じにつながってくれます。これはパスなので、このままレーザー用にGコードを生成できます(Laser Tool Plug-inを使って)。保存先のディレクトリを入力しないとエラーがでます。

こんな感じでレーザー加工パスができあがりました。パスもひとつながりになっています。あとはbCNCで読みこんでレーザー加工。

bCNC上での画面。

2016年5月20日金曜日

CNCマシン:WebベースのCNC制御アプリ(その2)

Laserweb2を試す:
WebベースのCNCマシン制御アプリとして、もうひとつ気になるのが、LaserWeb/Laserweb2。
まずは最新版のLaserWeb2を試してみました。

追記:その後LaserWeb3もリリースされました。
さらに追記:その後LaserWeb4もでました。スタンドアロンのアプリになったようです。

これも前回試したChiliPeppr/grbl同様にSerial Port JSONでシリアル通信するようです。なので、Macの場合なら前回ダウンロードしたSerial Port JSON 1.86(Mac OS X x64)をつかってみます(zipファイルを解凍すると以下)。
MacBookとArduino(CNCマシン)をUSB接続して、上のserial-port-json-serverをダブルクリックして起動。そうすると前回同様Terminalが起動してシリアル通信の準備が整います。
あとは、http://openhardwarecoza.github.io/LaserWeb2/にブラウザでアクセスします。
こんな画面がでてくるので、左上のLoginボタンを押してGoogleアカウントでログインします。
あとは、上部のメニューバーのようなところで、Arduinoのシリアル通信のポートを選び、grbl、115200、Connectを押せばつながるはずです。
右側下のウィンドウにメッセージ「Grbl message: '$' for help」がでれば接続。
右側のConsole:の欄に$$を入力するとセッティング内容が表示されます。
左下のジョグボタンもいちおう動きました。

レーザー刻印加工もできるようなので左上のOpenボタンでjpeg画像を読み込ませて、左下ウィンドウのPrepare Rasterを押してみると、
元画像とちょっとずれてます。バグでしょうか。
3DならSTLフォーマットを読み込めるようなので、
ただ、まだスケール編集などは開発途中のようなので、使えるようになるにはもう少しらしいです。
LaserWeb2のほうは最近できたばっかりのようなので、まだ修正箇所があるような感じです。
名前からしてレーザー加工するならこのWebアプリが使えるようになるといいんですが、今後に期待しましょう。


LaserWeb(バージョン1)のインストール:
それでは、LaserWebのほうはどうかというと。
インストールというか起動の方法がTermnalを使うので難しそうに見えますが、書いてある通りにやってみます(ここに書いてあります)。

nodejs version node-v0.12.7をインストール。
https://nodejs.org/download/release/v0.12.7/に行き、
Macなのでnode-v0.12.7.tar.gzをダウンロードし解凍。
中のREADME.mdを開くとインストール方法が書いてます(このへんからめんどくさそう)。

Unix/Macintosh:

```sh
./configure
make
make install
```

If your python binary is in a non-standard location or has a
non-standard name, run the following instead:

```sh
export PYTHON=/path/to/python
$PYTHON ./configure
make
make install
```
おそらく、Macの場合はApple-Pythonが既に入っているので、下のほうのインストール方法で。
Terminalを開いて、まず
which python
を入力してpythonの場所を確認してみるといいと思います。もし以下のように返ってくれば、
/usr/bin/python
Apple-Pythonを使っていることだと思うので、上記インストール方法(下の方のやり方)で
export PYTHON=/usr/bin/python
と入力。
$PYTHON ./configure
と入力。そして、
make
と入力。おそらく次のmake installは、頭にsudoをつけないとエラーになるので、
sudo make install
と入力(管理者権限パスワード入力要求があるのでパスワードも入れる)。たぶんこれでnode-v0.12.7の方は大丈夫かと(かなりめんどくさい)。
あとはLaserWebのインストール手順に従い、cdを使って適当なディレクトリに移動して(移動しなくでもいいかもしれないけど)、gitクローンをつくるので以下を入力。
git clone https://github.com/openhardwarecoza/LaserWeb.git
クローンができあがるので、
cd LaserWeb
を入力してLaserWeb内に移動。
この段階でArduinoとはUSB接続しておき、
npm install
を入力。そして、
node server.js
も入力。そうするとTerminalの画面上には、
こんな感じの部分が出てくるので、下のほうに書いてある手順、
1. Open Chrome(とりあえずChromeを開いて以下のアドレスを入力する)
2.Go to :
   http://192.168.3.3:8000/(この部分のアドレスはそれぞれ異なるので、書いてあるアドレスをChrome上にコピペしてアクセスする。)
そうするとようやくLaserWebの画面がChrome上に出てきます。

右上のMachineというウィンドウの中にPortを選ぶところがあるので、そこでArduinoのポートを選べば接続されるはずです。以下。
Bluetoothモジュールを使っているので一番上のを選んでますが、普通にArduinoにUSB接続しているなら一番下のになります(これはUNOではなくてDiemillanovaなのでこんなポート名)。
あとは右下のほうのSENDの左隣にGコード入力欄があるので、$Xでロック解除したり、$$で設定内容表示されれば問題ないと思います。ジョグは右側の緑のMACHINE CONTOLをクリックで以下のような操作画面が出てきます。

ためしに、左上RASTERボタンでjpeg画像を読み込んでみました。
こんな感じでラスタ加工するセッティング画面も出てくるので適当に入力します。
多少読み込みや変換作業に時間がかかるようです。

少し待つと作業画面に画像が出てきます。

こんな感じです。こっちもなんとなく画像が一回り小さくなっているようにも見えますが、いちおう使えそうな感じです。3D読み込みはないけれども、DXFやSVGも読み込めるし、ラスタ加工もできるのでレーザーの基本的な作業はこれでも充分できそうです。
ただ、問題はインストールや起動がちょっと面倒。Terminalをあまり使わない人にとっては違和感あります。

関連:

AliExpressの5000mwレーザーモジュールが安くなってる

AliExpressのこのショップだけなぜかレーザーが安い。5Wで16,658円
いま5%OFFみたいで、ついに$150以下。他のショップだと$200以上すると思うんだけど。
予備用にもう一台欲しいところ。

2016年5月18日水曜日

Inkscape Laser Tool Plug-inのエラー

InkscapeのExtensionである「Laser Tool Plug-in」は、レーザー加工するときには便利なのですが毎回最後のGコードでエラーがでます。工程の最後にエラーがでるようなので、作業自体には問題ないのですが、作業終了後毎回ロックがかかってしまいます。
「Laser Tool Plug-in」で簡単なGコード(画像上:20mmの円を描くGコード)を生成すると、以下のような感じ。

M05 S0

G90
G21
G1 F600
G1  X27.6603 Y17.0556
G4 P0 
M03 S500
G4 P0
G1 F400.000000
G2 X24.7314 Y9.9845 I-10. J0.
G2 X17.6603 Y7.0556 I-7.0711 J7.0711
G2 X10.5892 Y9.9845 I-0. J10.
G2 X7.6603 Y17.0556 I7.0711 J7.0711
G2 X10.5892 Y24.1266 I10. J-0.
G2 X17.6603 Y27.0556 I7.0711 J-7.0711
G2 X24.7314 Y24.1266 I-0. J-10.
G2 X27.6603 Y17.0556 I-7.0711 J-7.0711
G1  X27.6603 Y17.0556
G4 P0 
M05 S0
G1 F600
G1 X0 Y0
M18

この最後のM18がたぶんエラーの原因になっているのだと思います。
M18を調べてみると、RepRapのGコードでは、「全てのモーター停止」となっているので、このことなのかもしれません。しかしgrblでは、M18は対応してないようなのでエラーがでるのだと思います。
「プログラム終了」というMコードであれば、M30が一般的のようです。grblでもM0、M2、M30がポーズと終了になっています(このページのNice featuresの欄に書いてあります)。しかしRepRapだとM30は「SDカード上のファイルを削除する」のようです。
おそらくLaser Tool Plug-inはRepRapよりの設定なのかもしれません。

ということで、M18をM30に書き換えてから実行してみたらエラーはでませんでした。
生成されたGコードファイルをTextEditで開いて訂正してもいいし、bCNCなら以下のようにEditorで編集してもいいと思います。

それなら、Laser Tool Plug-inのファイルを開いてプログラムを書き換えればいいのかもしれないと思ってApplication/Inkscape.app/Contents/Resources/share/inkscape/extensions/laser.pyをTextEdit(行数が表示されないのでSublime Text)で開いてみました(Inkscape.appを右クリックでパッケージの内容を表示、もしくはcontrol+クリックでパッケージの内容を表示でContentsフォルダ内を見ることができます)。
そうすると、
laser.pyの91行目にM18がありますね。どうやらfooterとして挿入しているようです。おそらくこのM18をM30に書き換えればgrblでもエラーがでなくなるのではないでしょうか。

さっそくM18を上画像のようにM30に書き換えました。これでlaser.pyを保存し直して、Inkscapeで試してみます。Inkscapeを開いてLaser Tool Plug-inで簡単なGコードを生成してみます。以下。

M05 S0

G90
G21
G1 F600
G1  X58.0571 Y43.5429
G4 P0 
M03 S500
G4 P0
G1 F400.000000
G2 X52.6251 Y30.4288 I-18.546 J0.
G2 X39.5111 Y24.9968 I-13.114 J13.114
G2 X26.3971 Y30.4288 I-0. J18.546
G2 X20.9651 Y43.5429 I13.114 J13.114
G2 X22.3768 Y50.6401 I18.546 J0.
G2 X26.3971 Y56.6569 I17.1343 J-7.0973
G2 X32.4139 Y60.6772 I13.114 J-13.114
G2 X39.5111 Y62.0889 I7.0973 J-17.1343
G2 X46.6084 Y60.6772 I0. J-18.546
G2 X52.6251 Y56.6569 I-7.0973 J-17.1343
G2 X56.6454 Y50.6401 I-13.114 J-13.114
G2 X58.0571 Y43.5429 I-17.1343 J-7.0973
G1  X58.0571 Y43.5429
G4 P0 
M05 S0
G1 F600
G1 X0 Y0
M30

最後がM30になってますね。これでgrblを使っている場合はエラーがでないはずです。これでひとつ問題解決しました。よかった。


それから前にも書きましたが、Laser Tool Plug-inの上から5個目のLaser Power S#は0-256 or 0-10000となっていますが、grblだとデフォルトが0-1000なので、ここも違います。数値入力するので、ここはプログラム自体を書き換える必要はないかと思いますが。

grbl0.9のconfig.hの254行目を見ると、

#define SPINDLE_MAX_RPM 1000.0 // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.
#define SPINDLE_MIN_RPM 0.0    // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM.

となっているので、スピンドル最高1000(100%)、最低0がデフォルトのようです。

grblの今後の開発予定(Development Path and Future Needs)では、リアルタイムに調整可能なフィードレート、クーラントやスピンドルのオーバーライドなどが挙げられているので、bCNC上にあるオーバーライド機能はまだ使えないということなのかもしれません。
追記:Grbl1.1からはオーバーライド機能に対応しました(こちらのページ中程)。
これはbCNCのControl画面ですが、画像の下のほうにFeed OverrideとSpindleのスライダーがあり、ここでリアルタイムに調整可能にはなっていますが、grblではまだということだと思います。
フィードやスピンドル(PWM)の値は、あらかじめ何回か素材に合わせてテストしてから実行しているので、それほど使うわけでもないのですが、たしかにあったほうが可変的に実験もできるので便利です。
まあオープンソースなので、この辺りは各自でやっていくしかないでしょう。

人気の投稿