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

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



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


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

2016年5月28日土曜日

CNCマシン:Raspberry Pi3でbCNCを制御+Pendant

前回、bCNCをRaspberry Pi3にインストールはできましたが、Pendant機能でMacBookからChrome(ブラウザ)を使ってアクセスできませんでした。しかし、今日再度やってみたらつながりました。理由はたぶんボタンの押し間違えだと思います。なので手順をまとめておきます。

従来は、
PC(bCNC起動)<--(USB接続/通信)-->Arduino(Grbl)+CNCシールド
であったのが、
Raspberry Pi(bCNC起動)<--(USB接続/通信)-->Arduino(Grbl)+CNCシールド
という感じになるということです。

まずRaspberry Piの容量アップ:
おそらく初期設定だと
sudo apt-get update
sudo apt-get upgrade
などやっていくと、すぐに容量が一杯になると思います。
df -h
をTerminal上で入力すると、
こんな感じで表示されるのでどのくらい余裕あるか分かります。
これ↑は、容量アップした後の状態(8GBのMicroSDカード使用)。最初はたしか2〜3GBくらいしかなかったはず。
容量アップするには、Menu>Preferences>Raspberry Pi Configuration(以下)で、
「Expand Filesystem」があるので、そこをクリック(要再起動)。
容量アップした後にまた押してみると、もう既に容量アップしていると言われます。
これで容量にゆとりができたはずなので、いろいろ必要なものをアップロードしていけます。

Pipのインストール:
bCNCで使うpyserialをインストールする前に、pip(pythonソフトをインストールしたり管理するソフト)をインストールしておきます。Terminalで以下を入力。
sudo apt-get install python-pip

Pyserialのインストール:
さらに以下を入力。
sudo apt-get update
sudo apt-get upgrade
で一応アップデート/アップグレードしておきます。かなり時間がかかるときもあります。
アップデート/アップグレードがおわったら、
sudo pip install pyserial --upgrade

bCNCをインストール:
Raspberry Pi3の3.5インチの画面だときびしいので、MacBookでダウンロードしたbCNC(https://github.com/vlachoudis/bCNC)のデータをUSBメモリで受け渡したほうが早いかもしれません。
こんな感じでとりあえずbCNCフォルダごとデスクトップへ。
フォルダをあけると、以下のような感じ。この時点でCNCマシンのArduinoとは接続して置いて下さい。

bCNCを起動:
bCNCというファイルが2個あります。右上のほうのbCNCファイルをクリックするのですが、最初は反応しないかもしれません。なので、Terminalから、
cd Desktop/bCNC-master
と入力してこのフォルダ内に移動し、
sh bCNC
と入力すれば起動するはずです。画面がでてくるまで5秒くらいかかるかも。
次回からは、bCNCファイル(右上のほう)をダブルクリックすることで、以下のようなウィンドウがでて、

ExecuteもしくはExecute in Terminalで以下のように起動するはず。
こんなbCNCの画面がでてきますが、3.5インチスクリーンだと下のほうにあるジョグボタンが見えないし、スクロールで下に移動もできません。幸い、Port:とOpenボタンはぎりぎり入っているので、Port:を▼で選んでその右となりに半分見えているOpenボタンを押します。
つながれば、Not connectedがConnectedに変わります。
そのあとに画面上部Controlタブを選び、左側のほうにあるunlockボタンを押せば、ConnectedがIdle状態になります。

さらにPendantを起動(Wifi環境を利用してスマホなどから遠隔操作する):
全体的なシステムは以下のような感じ。
スマホ<--(Wifi通信)-->Raspberry Pi(bCNC起動)<--(USB接続/通信)-->Arduino(Grbl)+CNCシールド

画面上部のFileタブを選び、以下の画面で、
▶︎Startボタンを押せば、Pendant機能開始になります。

以下のような確認画面がでてくるのでYesをクリック。前回ここで間違っていました。勝手に右側がYesだと思って押してしまっていたようです。だからつながらなかっただけ。
そうするとブラウザが自動的に立ち上がって、Pendant機能の操作画面がでてきます。それでジョグ操作してもいいかもしれません。

MacBookでRaspberry Pi3のポートが開いているか確認:
上画面ではhttp://raspberrypi:8080にアクセスするとPendantが使えますが、一応事前確認としてポートが開いているか確認してみます。
Raspberry Pi3上では、右上のwifiマークにマウスをのせると以下のように黒い画面表示がでるので、ここで192.168.3.8に相当するIPアドレスとなります。

このIPアドレスのポート8080が開いているかMacBookのネットワークユーティリティで確認します。Raspberry Pi上のbCNCを起動してPendantボタンを押しておしてからポートの確認をして下さい。
だいたいこんなところ↑にあるはずです。

MacBook上でネットワークユーティリティを起動し、右端のタブを押すとこんな↑画面。
ここでRaspberry Pi3のIPアドレスをいれますが、raspberrypi:8080を入れてだめなら、数字でIPアドレスをいれます。
Scanボタンを押すと、下の画面に開いているポートがでてくるはずです。ここで、
Open TCP Port: 8080
がでてくればつながるはずです。

その他の端末からアクセス:
MacBookやスマホなどのブラウザで、IPアドレスにポート8080をつけて、192.168.3.8:8080にアクセスします。
こんな感じです。これはMacBook上のChromeからアクセスした画面です。そのままの画面だと広がりすぎたので、表示>縮小を2回くらいして画面を小さくしました。
ここでHome | Unlock | Resetボタンの下にIdleと表示がでていればジョグボタンで操作できるはずです。Not connectedがでているとダメです(前回そうだった)。


AliExpress.com Product - 2016 Original UK Made Raspberry Pi 3 Model B 1GB RAM Quad Core 1.2GHz 64bit CPU WiFi & Bluetooth3883円(送料込み)

まとめ:
ということで、当初考えていたRaspberry Pi上のbCNCでCNCマシンを制御するというところまではできるようになりました。
しかし、あまり使い勝手が良くない。すべては3.5インチタッチスクリーンが使いにくいだけなので、7インチくらいにしないとダメかも(7インチについてはこちら)。
もっと本格的にRaspberry Piをホストとして使うのなら、前回試してみたリモートデスクトップなどのほうがいいかもしれません。

CNCマシン:Raspberry Pi3にbCNCをインストール

当初の計画であったRaspberry Pi3にbCNCをインストールしてみることにしました。Pythonは入っているようなので、pipとpyserialをインストールするところから始めました。

AliExpress.com Product - 2016 Original UK Made Raspberry Pi 3 Model B 1GB RAM Quad Core 1.2GHz 64bit CPU WiFi & BluetoothAliExpressで3883円(送料込み)。

bCNC wikiには、
sudo apt-get install pip
と書いてあるのだけれど、どうもインストールできない。かわりに
sudo apt-get install python-pip
と入れてみたらようやくインストールできたようです。
つづけて、
sudo pip install pyserial --update
を入力。エラーっぽいのがでたので、
sudo pip install pyserial
を入力すると、--updateをつけろと、再度
sudo pip install pyserial --update
で、なんとかインストール完了。
Raspberry Pi3はwifiにはつながっているので、bCNCのデータをダウンロードしに
https://github.com/vlachoudis/bCNC
へ行ってみると、どうやらRaspberry Pi3のブラウザでは古いSafari扱いされてダウンロードできない。仕方ないので、USBメモリ経由でMacBookに入れてあるbCNC-masterフォルダごと移動。
とりあえず、こんな感じで準備は整いました。
いつもMacBookで起動しているbCNC実行ファイルをクリックしてみると反応しない。wikiにはTerminalで起動するといいと書いてあったので、
cd Desktop/bCNC-master
と入力してbCNC-masterフォルダ内まで移動、そして
sh bCNC
を入力すると何とか起動しました。
起動することが分かったので、Raspberry Pi3とCNCマシン(Arduino)をUSB接続し再度bCNCを立ちあげてみることに。いつもとは違うシリアルポート名が2つあり、
/dev/ttyACM0
のほうでOPENを押してみるとつながりました。
しかし、画面が小さすぎてジョグボタンが出てこない。Move Gantryは画面内にあるので、使ってみると一応動きました。3.5インチじゃやっぱり使えないなと思い、それならPendantはどうかというと、192.168.3.8:8080にMacBookからアクセスすると画面がでるのだけれども、なぜかNot connectになっている。以下。

Raspberry Pi3のほうでポートが開いてないのかもしれない。

リモートデスクトップを試してみる:
そしていろいろ検索しているうちに、リモートデスクトップ(https://www.realvnc.com/)でMacからRaspberry Piを操作できるということが分かったのでやってみることに(ここを参考)。書いてある通りにやってみると、
こんな感じでMacBook上にRaspberry Pi3の画面がでてきました。しかも画面が大きい。ポートを開いて動かしてみるとちゃんと動く。これは使えるかもしれないと思いましたが、この画面がRaspberry Pi3のほうにはなぜか現れていない。MacBookで勝手にRaspberry Pi3を使って操作しているだけのようで、画面を共有しているという感じではないみたい。
それなら、Raspberry Pi3のほうもbCNCを立ち上げて動かしてみようとすると、今度はMacBookのほうがつながらなくなる。どうやら一つのポート(ArduinoとRaspberry Pi3の間のポート)を取り合いしているような感じ。なんか惜しい感じ。きっとやり方があるのだろうけど、一つずつ問題を克服していくゲームにはまってしまいそうなので、いちど中断。今までのBluetoothを使ったやり方で充分CNCマシンは使えることを考えると、これ以上問題解決してもあまり意味ないかもということで保留。
一応Raspberry Pi3上でもbCNCは動かすことができたので、収穫はその程度で充分。それとリモートデスクトップで画面の小さいRaspberry Pi3では操作できない部分を補えるかもということで、無目的なまま少しだけ問題解決したという感じ。

追記:
次の日やりなおしたらbCNC+Pendantは一応つながりました。手順はこちら

Raspberry Pi3:3.5インチLCDタッチスクリーン設定

このあいだ届いたRaspberry Pi3(AliExpressで4328円)を使える状態にしようと思いましたが、HDMIのついたモニターと言えばTVしかないので、仕方なくTVを使ってNOOBSのインストールや初期設定をしておきました。基本的にパソコンはノート(MacBook)しか使わないので、Raspberry Pi3用に3.5インチLCDタッチスクリーン480x320px(AliExpressで1322円)も注文しておきました。タッチスクリーンは一日遅れで届いたので早速つなげてみることにしました。

TVをモニターにして初期設定までやったので、タッチスクリーンをつなげればすぐに使えるかと思ったらダメでした。購入したAliExpressのサイトにはインストールの仕方がのっていたのでやってみることに。
まず、SDカードを用意してリンク先でダウンロードしろと。
http://osoyoo.com/?p=968
Windowsを使ってのインストールの仕方しかのってませんが、見よう見まねで。
タッチスクリーンの裏側を見てバージョンに合わせたドライバーをダウンロードするようにと。
この右下に書いてあるversion 6.1がそうらしい。このversionに合わせてここからダウンロード
しかしかなり大きいrarファイル。解凍すると、3.97GBもあるrpi_35_v6_1_jessie8_kernel_4_1_19.imgというディスクイメージ。kernelとも書いてあるし、これってもしかしてOS丸ごと入れ換えかもしれない。先ほどの説明にも、まっさらなSDカードにドライバをインストールしろと書いてあったので、このタッチスクリーンの設定がされているLinux OSそのものを入れろということかも。ということは、TVをつないでインストールと設定した内容は無駄に終わったということになるかもしれない。
仕方ないのでインストラクション通りにすすめてみることに。
解凍した「rpi_35_v6_1_jessie8_kernel_4_1_19.img」をWindowsならWin32DiskImagerというソフトでSDカードにマウントするみたい。
とりあえず、そのままこの3.97GBのディスクイメージをSDカードに入れてみて、NOOBSみたいにできるかもしれないと思ってタッチスクリーンをつないで電源を入れてみました。画面が白いままで、どうも先に進んでいなさそう。すぐに電源を抜いて、今度はこのディスクイメージをダブルクリックしてみると、「boot」がMacBookデスクトップ上にマウントされました。

これをSDカードに入れてみたけど、そうするとbootのエイリアスしか入らない。MacならディスクユーティリティでSDカードにマウントできないかなと思ってやってみたけど上手くいかないので、先ほどのWindowsのマウントソフトのようなものがMac版でもないかと検索したところ、「ApplePi-Baker」というのがそれらしい。早速ダウンロード。
これです。念のため、SDカードはディスクユーティリティで初期化:MS-DOS(FAT)。
SDカードをMacBookの横に差して、ApplePi-Bakerで以下のようにやってみました。

左画面では、差し込んであるSDカードが自動認識されていて、あとは右側の画面のIMG file:のとこでダウンロードした「rpi_35_v6_1_jessie8_kernel_4_1_19.img」を選んで、その上にある「Restore Backup」ボタンを押してみました。4GBくらいあるので、3〜4分かかりました。
それで出来上がったSDカードをRaspberry Pi3に差し込んで(タッチスクリーンも接続して)電源をつなぐと、画面がでてきました。
こんな感じ。設定を見てみると初期状態になってます。案の定最初から設定やり直しです。
しかし、画面が小さすぎる。これではなかなか操作できません。いろいろ設定していると、ウィンドウが画面からはみ出ていて、設定のボタンが押せない。特にKeyboard LayoutでJapanとJapaneseを選んだあと決定ボタンが押せない。以下の画面。


最近Raspberry Pi3用の7インチタッチスクリーンがあるけど、たしかに3.5インチでは無理があるということで、そうなったのかも。全てコマンドラインで操作するならいいけど、GUIを使っての操作は画面からはみ出ているボタンをクリックできないし使えない。
それでも一応パスワード変更、Wifi設定、日本語、スクリーンショットできるscrotは入れておきました。Ksnapshotはなぜかインストール失敗。時間かかるので次回トライ。上画像はscrotで撮影。

Wifiはつながるので、bCNCのPendantでCNCマシンにアクセスしてみました。
bCNCは問題なく動くようです。それほど遅延もなく動きますが、わざわざこれをPendantとして使うことはないと思います。ちなみに、メニューバーは初期設定より細くしたので、わずかながら画面が大きくなりました。
当初はRaspberry Piをホストにして、ネットワークを通して遠隔操作しようと思ってましたが、Bluetoothで無線化してしまったので今のところあまり必要なさそう。


まとめ(Macの場合):
Kedei 3.5インチタッチスクリーンVersion6.1をRaspberry Pi3に接続するための設定は以下。
・ディスクユーティリティでDOS-V(FAT)フォーマット化したMicroSDカード(8GB以上)を用意。
http://osoyoo.com/?p=968へ行き手順を確認。
http://osoyoo.com/driver/rpiscreen.phpからタッチスクリーンのVersionに合わせてソフトをダウンロード。
・「rpi_35_v6_1_jessie8_kernel_4_1_19.rar」を解凍。
・「rpi_35_v6_1_jessie8_kernel_4_1_19.img」イメージファイルが出来上がる。
・DiskImagerソフト「ApplePi-Baker」をダウンロード&インストール。
・MicroSDカードをMacBookに挿入する。
・「ApplePi-Baker」のRestore Backupをつかって、「rpi_35_v6_1_jessie8_kernel_4_1_19.img」をMicroSDカードにマウントする。
・MicroSDカードをRaspberry Pi3に挿入。
・タッチスクリーンも接続してスイッチオンで起動。

しかし、3.5インチだと画面が小さすぎて、キーボード設定の画面で最後にボタンをクリックできない。その場合は(以下の画面で)、
Japanを選ぶとJapanese(PC-98xx Series)が自動選択されるけど、このときキーボードのTabキーを3回押せば、OKボタンにフォーカスされると思うので、そしたらReturnキーを押すと設定終了。一回少ないとキャンセルになって画面が閉じてしまうので、そうなった場合は再度チャレンジ。ここでキーボードを選べないと、おそらくUK仕様になってしまって、「@」マークや「:」などのキーの位置が変わってしまって打ちにくくなってしまう。以下は全部が見えている画面の場合。

ほかも、OKボタンが押せないときは、Tabキーでフォーカスを数回ずらしてリターンキー押せば大丈夫だと思います。

bCNCをRaspberry Pi3にインストールしようとおもったけど、この3.5インチのほうだと面倒なのでやめてしまいました。大きいモニターならいいけど、その場合はCNCマシンのそばに置くには邪魔になるので、できればこの3.5インチでコンパクトに操作したいところ。しかし、かなり使いづらいし、わざわざ使わなくても現状のBluetoothで充分。そのうち気が向いたらやってみます。

それから、Raspberry Pi3のスクリーンショット画像は、GoogleドライブにのせてMacに持ってこようと思ったけどGoogle系がこのブラウザだと対応してなくてだめでした。仕方なくメール(Hotmail経由)で送りました。後から気づいたけどUSBメモリでもよかったかも。WifiかBluetoothを通して直接やりとりしようと思ったけど、また設定しないといけなさそうなのでやめました。昔、使わなくなったMacにLinuxを入れたときがあって、そのときもいろいろ複雑な設定ばかりで、ずっといじっていました。検索してコマンドライン入力して、あーでもないこーでもないと、1日かかってもほんの少ししか先に進まない感じ。ようやく3Dデスクトップが見れて、おおすごいと喜んでいたけど、結局だたパソコンをずっといじって動作確認することが目的となってしまい、それで何をするという感じでもなかったので、だんだん飽きてやめてしまいました。

---------------------------
Osoyoo LCD Touch Screen for Raspberry Pi:

This 3.5 inch touch screen module is designed especially for Raspberry  Pi, using the latest Linux Core system (vision 3.18.9), the latest  Raspberry Pi official UI desktop file system and the fastest SPI  transmission data, an ideal alternative solution for HDMI monitor and  convenient Men-Machine interface for Raspberry Pi, combined with the  portable power, DIY anywhere anytime.

 Features:

    LCD Interface: SPI
    Touch Screen Controller: XPT2046
    Backlight: LED
    LCD Type: TFT
    Resolution: 320*480 DOTS
    Core System: vision 3.18.9
    SPI Speed: 32MHz
    Color Levels Index: 65536
    Power Consumption/Backlight Current:  TBD
    Supports Raspbian system, enables  your system to:
    1) Take photos by touching (up to 17 camera modes)
    2) Support software keyboard (system interaction without  keyboard/mouse)
    3) Support driver is installed automatically.
    Note:  This screen can not play video games and watch video,only as the basis for the operation .
   You can feel free to download the driver for 3 .5" TFT LCD  Touch Screen. Pls check the following guild file.
  NOTE:
1.Please expand the SD card and restart it before the driver installation.
2.This sreen can used in the Raspbian and Noobs.the other system can't use ,please know this .
3.because the screen driver always upgrading,so when you receive it ,but can not operate, please contact customer
service consulting, customer service will teach you how to operate. Don’t open the case at the first, Thank you very much .


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月15日日曜日

CNC関連のソフト(まとめ)

CNCマシン制作の構想段階当初から、Macで使えるオープンソースのCNC関連のソフトをいろいろ探しています。数年前の流行が一段落したせいか、一見よさそうだけど開発が止まっているもの、便利そうだけどバグがあったりとなかなか見極めが難しそう。Macなので数はかなり限定されるのですが、いままで見て来たソフトのリスト。
Mac利用者からの見ての使いやすさで★〜★★★つけてます。初心者向けという感じで、必ずしも高機能がいいというわけではなく。すぐに使えるかどうかという基準で。それと今後の開発も期待できるかどうか。Linux系はMacでも使えることがあるけど、インストールが面倒だったり、Mac特有のバグがあったりするのであまり触っていません。Raspberry Piにインストールして使えば便利そう。

主には以下の5種類。

・2Dドローイングソフト:
  svg、dxfなどのフォーマットで出力できるもの

  Inkscape★★★
    イラストレータの代用(イラストレータのショートカットキーに変換可)。
    Extension(Plug-in)との組み合わせで充分使える。
    スナップ機能も細かく設定できるのでCADのように製図できる。
    Forumも充実しているし、2Dやレーザー加工はこれがメインで大体大丈夫だと思う。
    オフカット(Outset/Inset)機能でルーター加工パスもつくれる(使用例)。

・3Dモデリングソフト:
  stlなどの3Dフォーマットで出力できるもの

  Fusion360★★★
    3Dモデリング操作しやすい。
    無料版が最低1年間は使える。その後また更新?
    Gコードも生成可能。
    クラウドベースなので共同作業がやりやすい。
  Blender★★☆
    操作方法が独特で慣れるまで大変だけど、基本的に何でも作れる。
    Add-on(プラグイン)も豊富にある(シリアル通信なども可能)。
    BlendercamでGコード生成可能。
  ・SketchUp:★★★
    操作が直感的で扱いやすい。
    プラグイン「Export DXF or STL」をインストールすると便利。
    プラグイン「SketchUcam」をインストールすればGコード生成も可能。

・CAM/G Code Generator:
  図面データ(2Dデータ:svg、dxfなど、3Dデータ:stlなど)をGコードに変換してくれる

  Fusion360★★★(使用例
    3DモデリングしながらGコードも生成できる。3Dプリンターにもいいかも。
    商用ソフトでもあるので、かなり本格的(設定などが細かい)。
    レーザー加工用の機能がないのがちょっと残念。3D加工向きかも。
  Blendercam★★★(使用例
    Blenderと組み合わせて使えば便利。
    様々な3Dデータを読み込むことができるので、Gコード生成用としても使える。
    3D切削加工はほぼ可能。
  gcodetools(Inkscape Extension):★★☆(使用例
    やや開発が停滞しているようだけど、基本的なGコードは生成可能。
    最初は使い方に違和感を感じるけど慣れれば簡単。
  Laser Tool Plug-in(Inkscape Extension):★★★(使用例
    レーザー加工するならこのInkscapeとこのプラグインで簡単に設定できる。
    操作/設定がシンプルで使いやすい。
  ・Laserweb3/Laserweb4:★★★(使用例
    ブラウザ上のレーザー用アプリ。Laserweb4は単体アプリ化。
    Gコード生成とGコード送信もこれ一つで出来るので便利。
  Jscut★★★(使用例
    Webベースなのでブラウザ上で作業が可能。
    シンプルで使いやすい。オフカットなどのパスも生成可能。
    他のWebベースのGコードセンダーと組み合わせて使うと遠隔操作可能なので便利。
  ・PyCAM:★☆☆
    インストールが面倒、Macにはバグもあったり、しばらくは改善されなさそう。
  ・SketchUcam:★★★
    SketchUpのプラグイン。
    SketchUpと合わせて使うと便利。

・G Code Sender/Controller:
  Gコードを読み込んでCNCマシンへ送信したり手動入力制御したりするPC上のアプリ

  Universal-G-Code-Sender★★☆
    シンプルなので最初は使いやすいかも。
    grblとの相性がいいのかも。
    JavaベースなのでMacも充分使える。
    開発中の新バージョンに期待したいけどいつになるのか?
  GrblController★☆☆
    数年前までは使っている人もいたみたい。開発が止まっていそうで、今後あまり期待できない。
    基本的なことはできるけど、他に比べるとやはりいまいち。
  bCNC★★★(bCNCを使ってみたときの記事はこちらへ
    操作も比較的シンプル。
    dxf読み込み可能、基本的なCAM機能もある。
    Autolevel機能もあるので基板制作にも向いている。
    Pendant機能でWeb上からスマホなどで遠隔操作可能。
  LaserWeb/LaserWeb2/LaserWeb3/LaserWeb4★★★
    ブラウザ上の操作はシンプル。svg、dxf対応。Jscutと組み合わせると便利。
    Webベースなので遠隔操作可能(最近はWebベースが主流かも)。
    ブラウザ上でstlファイルを読み込むことができる。
    まだまだ開発が継続されているので今後も期待ができる。
  cheton/cnc★★☆
    これもWebベースでつかいやすそう。
    Webカメラでの監視、320x240 LCDディスプレイ対応の操作画面もある。
    Raspberry Piを用いて操作などすると便利そう。
    今でも頻繁に開発が進んでいそう。
  ・GRBLWeb:★★☆
    こちらもWebベースでRaspberry Piにインストールしてホストとして使うのかも。   
  ・Easel:★★☆
    X-CARVEやShapeoko(1or2)用のWebベース、CAD+CAM+GrblControllerソフト。
    X-CARVEやShapeoko(1or2)用だけれども使うことはできる。
    ただ、Machine選択でX-CARVE/Shapeoko(1or2)/Carveyしかないから戸惑うが、ウィンドウ下のAdvanced>> に進み、Advanced SettingsでMachine Inspectorを使えば大丈夫。
    細かい設定はないけれどもオールインワンなのですぐに使うにはいいかも。
    ステップバイステップで設定が誘導されるので初心者にはわかりやすい。   
  ・Mach3:☆☆☆
    MacなのでMach3とは無縁。

・G Code Interpreter:
  CNCマシンのマイコン(Arduinoなど)上のファームウェア
  Gコードからモーター制御してくれる
 ・Grbl v1.1:★★★(Grbl v0.9やv0.8はこちら
   Arduino Uno用。3軸制御まで。
 ・Grbl-Mega
   Arduino Mega2560用。
   以下のフォークされたバージョンでは4軸制御や3Dプリンター制御など可能。
   https://github.com/bdurbrow/grbl-Mega
   https://github.com/fschill/grbl-Mega
   https://github.com/HuubBuis/grbl-L-Mega
   https://github.com/fra589/grbl-Mega-5X
 ・GrblESP(ESP8266用Grbl)
   SPI通信により最大8軸。Wifi操作可能。
 ・Grbl_ESP32(ESP32用Grbl)
   基本3軸制御? Wifi/Bluetooth操作可能。
 ・Android対応ArduinoMega2560専用6軸ファームウェア
【EU Free VAT】CNC Part 4th Fourth A axis Rotary axis Dividing head K11-65mm 3 Jaw Manual Chuck with TailstockOriginal price: USD 233.37Now: USD 172.70

  ・LinuxCNC★★☆
    GrblもLinuxCNCに準じているようなので、すべてLinuxを使えばかなり便利そう。
    ただ、Linuxもやり始めると手間暇かかってしまう。
    少なくてもRaspberry PIを使ってできるかもしれない。
  ・TinyG★★☆
   Grblより強力そうだけど、それだけ値段も高いのでお手頃ではない。$165ドル。
   ファームウェアはAVR Studio(Win用)でアップデート。Mac用AVR Studioもあることはある。
  
  
まとめ:
基本的にはG Code InterpreterはGrblを使用。
2D加工するなら、Inkscape+Extension(gcodetoolやLaser Tool Plug-in)でGコードファイルを生成する。あるいは、InkscapeのsvgファイルをJscutで読み込んでGコードファイルとして出力。
特に2Dのレーザー加工の場合は、Inkscape+Laser Tool Plug-inで充分だと思う。
Gコードファイルを読み込んで実行するソフトは、Universal-G-Code-Senderがシンプルでわかりやすいかも。現在は、bCNCが便利なので(慣れたので)使っていますが。
3Dの場合は、モデリングは何のソフトでも構わないと思う。Sketchupなど使いやすいと思うソフトで。その3DデータをFusion360かBlendercamでGコードを生成する感じになると思う。

この際、Linuxにしてもいいのかもしれないけれど、手間暇かかるのでそこまではしないつもり。Macの環境でもそこそこつくりたい物はつくれそうだし、とりあえずあるものを利用するだけでも充分だと思う。

ただ今後はRaspberry Pi3を使い、wifi経由でWebベースのLaserWeb2、cheton/cnc、Jscutを使うのがよさそう。遠隔操作やカメラ監視なども可能になるし、ワイヤレスでどこででも作業が出来るというのがいい。スマホやタブレットで操作もできるようになるので。
個人的には、LaserWeb2に期待したい感じ。現在はstlを読み込めるけど、スケール変換などがまだできない。今後のロードマップを見ると、3Dにも力入れようとしているし、まだまだ発展しそう。以下のような画面。

追記:
普段は、G Code SenderとしてbCNCをつかっていますが、bCNCにはPendantという機能(ネットワークを使ってWeb上で操作する)があり、先ほどつかってみたらタブレット(ブラウザ上から)でリモートコントロールできました。

これ↑が、Pendant機能をつかったタブレットのブラウザ上の画面です。
いままで通りに、CNCマシン(Arduinoボード)とMacBookをUSB接続し、bCNCを立ち上げてPendant開始ボタンを押すと機能がONになります(以下)。

ホストとなるMacBook上でもブラウザが自動的に立ち上がって操作画面が出てきます。アドレスに「http://localhost:8080」とでているはずなので、ローカルネットワーク内の他のコンピュータやスマホなどからもアクセスできるはずです。
持っているタブレットでは「localhost:8080」ではアクセスできなかったので、数字でプライベートIPアドレス「192.168.3.3:8080」(MacBookのプライベートIPアドレスとポート)を入れてみたら表示できました。
つまり、MacBookはCNCマシン本体脇に、そしてタブレットやスマホを持ちながらZ軸に近寄って調整などが可能というわけです。ポートマッピングも使えば、外出先からも操作可能だと思います。
bCNCは、いろいろな機能があってかなり便利そうです。

関連:
G Code Sender(bCNCなど)

2016年5月14日土曜日

CNCマシン:Blendercamを試してみる

今のところ2D加工は以下のような感じ。
・2Dレーザーカット:Inkscape(Laser Tool Plug-in)→Gコード→bCNC
・2Dルーターカット:Inkscape→svgファイル→Jscut(Outside)→Gコード→bCNC

そのうち3Dカットもする必要がありそうなのでいろいろ探していましたが、Macで使えそうなのはPyCAM、Fusion360、Blendercamあたり。Fusion360はかなり本格的なのでそのうち試して見ようと思います。
それでPyCAMを試そうとインストールしていたら、MacだとApple-Pythonが入っているため、インストールが思うようにいかなくて、Apple-Pythonをやめて新たにPythonを入れ直そうを思ったのですが、インストールが成功しない限りbCNCも使えなくなってしまうので、まだ保留という感じです。
Blenderは以前から使っていたというか、独特の操作方法でなかなか慣れずに3Dデータ変換用として利用していたくらいです。何度か勉強してみたのですがすぐに忘れてしまい、なかなか覚えられない。
今回も「Blenderか、どうしようかな」と思っていたけど、以下のBlendercamのチュートリアル動画を見る限りでは、3Dデータを読み込ませて、いくつか設定を入力したらGコードが生成されると感じなので、それほどBlenderの操作は必要なさそう。単なるGコード生成ソフトとして使えそう。
この動画、声が聴こえにくいのですが、フルスクリーンにして各設定の手順を注意深くみると、それほど難しそうではありません。5回くらい見直しましたが。

Blendercamのダウンロード:
ということで、Blendercamをダウンロードしてみました。
プラグインみたいなものだけをインストールするのかと思ったら、Blender2.76ごとダウンロードでした。いちおうaddon onlyとしてBlender本体にインストールできるものあるようですが、持っていたBlenderが多少古かったので、BlenderとセットのものをGoogle Driveからダウンロードしました。

Macなので真ん中の「blender-2.76b-OSX_...」というやつです。
Blender本体も含まれているので135MBくらいあったかもしれません。
ダウンロード+解凍したらアプリケーションフォルダにいれるのですが、もうひとつBlenderを持っているなら同じところには置かない方がいいと書いてありました。今回のほうが新しいので古いのは捨てて、アプリケーションフォルダに移動させました。
あとはBlender.appを開くだけ。サイトの説明にも、開いたら右側にBlendercamのタブが並んでいればOKと。

Blender.appを立ち上げる:
立ち上げるとこんな画面。右にBlendercamのタブあるかというとない。
ない場合は、「preferences-addonで、、、」と書いてあるけど、ちょっと違う。

User preferenceの設定・内容確認:
まず、左上のアイコン(タブ)で、User Preferencesを選ぶ(以下)。

そうすると上のメニューバーのようなものが変化して、以下のような感じ。


しかし、このままでは何もできないので、この横並びのメニューバーの下端を下方向へ引っ張る(ドラッグする)と、実は隠れている画面が出てくる(この隠れ画面に気づかなくて「そんな画面でてこないんだけど・・・」って以前なったことがある)。以下のような感じ。

隠れ画面の左に「Add Curve」ボタンを押し、右の「Add Curve:Simplify Curves」のチェックが入っている状態にする。
つぎは、左の「Scene」ボタンで「Scene: CAM - gcode generation tools」もチェックが入っている状態にする。この二つでOK。あとは引き下ろした画面を元にもどして、左上のアイコンタブを「Info」にでもしておけば大丈夫。


ようやく開始画面:
という感じで問題ないのですが、右側にCAMのタブが出なかったのは、単にウィンドウサイズが画面より大きくてフィットさせたら以下のように出てきました。
右側に縦に3列ある真ん中のがCAMタブですね。ここでほとんどの設定をするようです。なので、両側のタブは隠してしまっても大丈夫そうです(タブ画面の境目を横にドラッグして横幅をずらす)。


3Dモデルインポート:
あとは3DモデルをFile>Importでインポートする(以下)。
けっこういろんなデータ形式が読み込めます↑。


こんな凹凸があるデータをインポートしてみました。
多少位置がずれていれば、青赤緑の矢印を移動したい軸方向にドラッグすれば動かせます。斜めに一気に動かすというより、X軸はこのくらい、Y軸はこのくらいという感じでひとつの軸ずつ。

各種設定して行く前に、左上のアイコンタブが「Info」になっていて、そのままメニューバーの右のほうへいくと「Blender CAM」タブを選んでいるかチェック。以下のような感じ。


CAMタブで各項目を設定:
あとは設定していくだけです。右側のCAMタブをとりあえず一度全部閉じた方が分かりやすいかもしれません。全部閉じると以下のような感じ。
ここで上から順に設定していけばいいと思いますが、動画ではまず下から6番目の「CAM Machine」から設定しているので、それからやってみます。14項目もありますが、実際は8項目くらいでOKだと思います(2、4、11、12、13、14番目以外)。

CAM Machine(下から6番目のタブ):
こんな↑感じでセットしておきます。
上から「Presets」そのまま、「Post proces...」は「grbl」(これを使っているので)。ほかにもMach3とかLinuxCNCのEMCとかもありますね。「Split files」はGコードファイルが大きくなったら下の800000以上でファイル分割するということだと思います。単位は「Metric」。「Use position defenitions」でマシン原点など細かく入力できますが、とりあえずなしで。「Work Area」を材料の大きさに合わせて入力(ひとまわり大きいくらいで)。フィードやスピンドル回転数は適当に。ただ単位がcmになったりするので注意してください。ここは、だいたいこんな感じ。
それでは一番上の「CAM operations」タブに戻って、上から順にいきたいと思います。

CAM operations:
まず右上の「+」ボタンを押すと「Operation_1」という今回の加工タイトルの決定。そしていろいろ設定をしてセーブすれば今後もこの設定を選べば使い回しができるはず。少し下がって「Operation presets」タブから、既存の設定を選んでもいいけど、とりあえず最初は自分用に全部設定してみるという感じ。
「Calculate path」や「Simulate this operation」は設定が終わったら最後に押すボタンなので、いまはスキップ。あとはこんな感じで。
最後の「Object:」は、その3Dモデルのことです(3Dモデル名ではなくなっているかもしれません)。ほかに「CAM_machine」と「CAM_material」もありますが、それらは選ばないように。

CAM info & warnings:
ここはスキップ。エラーあるとここにでるようです。

CAM operation setup:
ここでどんな加工をするかが選べます。今回は凹凸を削りとるので「Parallel」を選んでみます。

ちょっと寄り道しますが、一番上のProfile(Cutout)は切り抜きだと思います。「Cut:Outside」でオフセットカットもできそうです。「Autogererate bridges」で完全切り離しにならないようにつなぎ目をつくってくれそうです。「Skin」は薄皮残しのようです。かなり便利そう。

元に戻りますが、「Parallel」を選ぶと、以下のようなタブ画面。

「3 axis」はそのまま。何ミリ間隔で削るかという設定です。とりあえず荒削りなら刃と同じ太さで。ということで6mmに設定。オーバーラップするように削るなら値を下げればいいと思います。「Angle of paths:」は、0度だと縦(Y軸方向)に平行に削るようです。今回は横(X軸方向)に削るので90度設定。「Use array」同じ部品を何個も並べて複数同時に削るときの設定のようです。

CAM optimisation:
ここは精度の設定だと思いますが、このままで(実際削ってみてからじゃないとわからないので)。

CAM operation area:
ここはZ軸方向でしょうか。レイヤー状に削るかとか、何ミリずつ下げるかとか。今回は木材という前提で、「Step down:」は、3mmで。アルミなら1mmとかでしょうか。加工の開始高さは材料の高さからでいいので、「Operation depth start:」は0で。たぶん以下のような感じでいいかと。

CAM movement:
ここは往復で削るとか片道だけで削るとかの設定だと思います。動画でも説明していました。
往復で削るということで「Climb/Down milling」。あとはこんな感じ。

CAM feedrate:
ここは加工時のフィード設定(加工時のXY移動速度)。
「Plunge speed:」で下へ掘り下げるスピード設定。おそらくこの設定で、XY軸の50%ということになるかと。遅くするに越したことはないと思います。「Plunge angle」は下がるときの角度。垂直に降ろすよりは斜めに降ろしたほうが抵抗が少ないので、角度があったほうがよさそうです。ということでこんな感じ。

CAM Cutter:
ここはエンドミルのタイプや太さなどの設定ですね。

End(フラット)、Ball(丸)、Vなど。今回は先が丸いBallで。Cutter diameter:で刃の直径6mmを入力。Cutter flutesは何枚刃かなので、2枚刃ということで。

CAM Machine:
ここは最初に設定したので先ほどの内容で。

CAM Material size and position:
「Estimate from model」をチェックすると自動で大きさを計測して画面上に材料を包み込むように半透明ボックスが配置されます。
「Position object」を押すと自動的に左下を原点に移動してくれます。
ただ、今回の場合、縦方向になぜか余分に大きくなっている。
あとで加工パスを表示すると、ズレや加工範囲が広すぎたりするので、無駄な動きをなくすためにもまたここに戻って来て手動で調整してみるといいかもしれません。「radius around model:」で加工範囲を1cm多めに設定してみました。そうするとちょうどよさそうだったので。

こんな感じで、この段階で一番上のタブの「CAM operations」に戻り、「Calculate path」ボタンを押してみるといいです。だいたい加工範囲がカバーされているか?無駄に外側に大きく加工範囲がはみ出ていないかなどチェックできると思います。だめそうならUndoで戻って、ちょっと設定を変えてみるといいと思います。
これで大体OKだと思います。残りのタブはあまりいじらなくてもよさそうです。
あとは、「CAM operations」の「Simulation this operation」で加工後の状態をチェックして、だめならUndoして再度調整し、OKなら「Calculate path」ボタンを押してGコードファイルを生成。デスクトップ上に「CAM operations」内の「File name:」で.ngcファイルが出来上がっているはずです。

bCNCで確認:
その.ngcファイルをbCNCで見てみると、以下のような感じです。
きれいに削れるかどうかは分かりませんが、一応データ上は問題なさそうです。これもエンドミルの形状や太さ、フィードやオーバーラップをどのくらいにするかなど、経験から覚えていく感じでしょうか。

まとめ:
まだ実際に加工はしていないのでわかりませんが、3Dだけでなく2DでもBlendercamは便利そうです。とくにBlender特有の操作が必要というわけでもないので(3Dモデリングをするわけではないので)、Gコード生成のツールとしては充分使えそうです。この際、Blenderの3Dモデリングもまた覚え直してこのソフトひとつでやったほうがいいのかもしれません。
Blenderは、影付きの3Dゲームエンジンや物理シミュレーションが作れるというので、以前から使いたいと思っていましたが、途中でUnityも出て来て、あまりにもBlenderが扱いにくいのでUnityに移行したほうがいいかもと思いつつ、3D熱も冷めてしまって結局どっちもほったらかしになっていたという感じです。

人気の投稿