個人で何か開発するなら、何らかのプロダクトに対する哲学が必ずあるはずだと考える。「作りたいから作った」はそうだけど、「作りたい」という気持ちには必ずなぜ作りたいと思ったかの理由があり、突き詰めると自分の根本的な考えかたが出てくるはずだと考える。
✖
|
|
個人で何か開発するなら、何らかのプロダクトに対する哲学が必ずあるはずだと考える。「作りたいから作った」はそうだけど、「作りたい」という気持ちには必ずなぜ作りたいと思ったかの理由があり、突き詰めると自分の根本的な考えかたが出てくるはずだと考える。
メインセッションは、いつも20分枠に応募して、かなり説明をはしょりまくってもギリギリ、という感じだったので60分(50分)にしてみたのですが、時間配分が難しくて結局あわあわしてしまいました。これならもっと切りつめて20分のほうがメリハリがあってよかったので、大変大変反省しています。
いちおう少しでも面白いという反応が頂けのがよかったです。少しでも WebAudio 面白そうということで手を出していただければ幸いです。
音量がうまくでないトラブルがありご心配をおかけしました。接続テスト時にネタバレをしたくなかったので、別のツールで「音が出る」ことだけを確認して、音量ならいくらでもあがるやろwwwと思っていたら全然あがらなくてあせりました。
本当は 1.5分ぐらいひたすらモールス聞きとり(説明しませんでしたが、流れてくるモールスの聞きとりをやっていたのです)をやろうと思ったのですが、トラブルで時間をとられたので早々に諦めました (音が出た時点でデオチなので)。
ネタですがモールスやったらいいのにというのはマジ
今回あんまりセッションを聞けなかったので、動画の公開を楽しみにしたいと思います。
とりあえず CONBU さんの LT が最高に面白かったし、衝撃的すぎて良かった。LT でいっぱい人が出てくるという発想がまず全くなかったのでやばかった。
あと、今回は LT のドラの前に終わる人が多いように感じた。自分もそうだけど焦りすぎたかもしれない。結構、20分トークぐらいのをLTで圧縮する(そしてドラがなる)というのが例年あった気がするけど、リジェクトコンとかが充実してきてそういうのがなくなったのかもしれない。
最後の YAPC::Asia Tokyo、牧さんはじめスタッフのみなさん本当にありがとうございました。
まっとうな人生を送るにはCNC フライスが必要だと思ったので、買った。
CNC Sable-2015 というやつで、本体・スピンドル・制御基板・電源など一式セットで10万円ぐらい。
これのほかに必須なのは
10pcs エンドミル 1.0mm cho45
Grbl はシリアル経由で G-code を与えると制御用信号を生成してくれるファームウェアで、オープンソースで開発されている。Arduino に書きこめば動いてくれる。Arduino Nano 互換ボードに書きこんで使っている。
CNC 用のステッピングモータ制御基板は、古来からパラレルポート (という名のGPIO) をインターフェイスにしているが、現代のコンピュータにはパラレルポートは存在していないため、制御信号をコンピュータで直接つくるのではなくマイコンにやらせる、という感じ。
書きこんで設定すれば動くので特筆するようなことはない。
$0=10 (step pulse, usec) $1=25 (step idle delay, msec) $2=0 (step port invert mask:00000000) $3=1 (dir port invert mask:00000001) $4=0 (step enable invert, bool) $5=0 (limit pins invert, bool) $6=0 (probe pin invert, bool) $10=3 (status report mask:00000011) $11=0.010 (junction deviation, mm) $12=0.002 (arc tolerance, mm) $13=0 (report inches, bool) $20=0 (soft limits, bool) $21=0 (hard limits, bool) $22=0 (homing cycle, bool) $23=0 (homing dir invert mask:00000000) $24=50.000 (homing feed, mm/min) $25=500.000 (homing seek, mm/min) $26=25 (homing debounce, msec) $27=1.000 (homing pull-off, mm) $100=1066.667 (x, step/mm) $101=1066.667 (y, step/mm) $102=1066.667 (z, step/mm) $110=800.000 (x max rate, mm/min) $111=800.000 (y max rate, mm/min) $112=800.000 (z max rate, mm/min) $120=150.000 (x accel, mm/sec^2) $121=150.000 (y accel, mm/sec^2) $122=100.000 (z accel, mm/sec^2) $130=200.000 (x max travel, mm) $131=150.000 (y max travel, mm) $132=60.000 (z max travel, mm)
仕様通りに設定すればちゃんと動いた。
配線の回路図
とりあえず仮でリミットスイッチを強力な両面テープを使ってつけており、ホーミングも実際は有効にしている。
緊急停止ボタンは、一番最初のうちからつけておくべき。うっかり操作をミスったときにとても便利。だいたい機械側からガガガガ〜とか音がなるとパニくるので、停止ボタンだけはとにかく物理ボタンで目立つようにすべき。
ちなみにこの緊急停止ボタン、中国製の安いの買ってみたら接点が接触しないという、用途的に致命的だろという欠陥製品だった。一旦分解して接点にハンダ盛ったした……
制御基板まわりや Arduino まわりがデリケートで、スイッチング電源の近くに置くとちょいちょい誤動作することがあった。距離を離しつつパッチンコアを入れて対応したら完全に大丈夫になった。
動かしている間結構なお点前の音を出すのと、安全性のため、最初から箱を作ろうと考えていた。
仕様に書いてあるサイズを信用できなかったので、届いたものの稼動範囲や、でっぱりを調べたところ、内径として
H=420mm W=410mm D=530mm
ぐらいは必要ということがわかった。スピンドルのでっぱりがかなり大きかった…
一旦箱の全景を SketchUp でモデリングしたあと、板取図も SketchUp でおこし、エコモクという通販サイトにカットを依頼した。
かなり正確にカットされたのがきて良かった。板さえ完璧に切れていれば組立は一瞬なので最高。
材質はパーティクルボード。MDF よりも若干比重が高く (遮音性が高いということ)、そして安価なのでこれにした。板は安いが配送料がどうしても高くなる。
防音箱の下にはゴムの防振パッドをしいている。
また、中身に吸音シート (ホワイトキューオン) を貼っている。ホワイトキューオンは50mm厚のやつを裂いて4分の1にしてある。最初吸音材は貼らないつもりだったけど、実際やってみると共鳴音っぽい響きをしてしまったので結局入れた。
東京防音 防振マットTI-505V4黒 cho45
扉は、スペースに余裕がないため観音開きにし、マグネットキャッチによってできるだけぴったり閉まるように調整をした。最初、ローラーキャッチで試してみたけど、キャッチの力が弱くてダメだった。マグネットキャッチのほうが保持力が強いみたい。
LED のライトもつけてある。秋月で250円で売っているやつ。普通の部屋用のLEDライトだとオーバースペックだよなと思って試してみたけど正解だった。ちょうどいい。micro USB 端子から直接12Vに昇圧できるボードを入れて、配線を簡単にした。
別のエントリを書く
500 Can't connect to lowreal.net:443 (certificate verify failed)
Grbl を使うのはいいとして、Grbl をコントロールして G-code を送りこむプログラムと、そもそも G-code を生成するプログラムなどが必要になってくる。
最初は Using-Grbl にある通り Universal G-code Sender を使ってみたのだけど、最低限の機能はあるんだけど、いまいち自分の要求が満たせなかった。このページの他のも見てみたけど、実装が微妙だったりしたので、結局自分で書いた。
https://github.com/cho45/GrblServer
そもそもやりたいこととして
で、これらを実現するため
を作った。前者は nodejs、後者は Polymer を使って実装している。
Grbl のサーバはネットワークに繋げた Raspberry Pi で動かしている。WebSocket は same-origin ポリシーとかがないので、LAN 内なら接続を許可するようなコードにしてある (つもり)
サーバさえ立っていれば、LAN 内のどの端末でも Grbl を制御できるので、PC 上で G-code を作ったやつを実行させたり、スマフォで開いてXYZを手動で動かして原点を出したりとできる。自分的には現時点でそこそこ満足いく構成になっている。
別のエントリを書く
G-code 流しこむまではいいとして、そもそもG-codeを用意できなければならない。
無料なのも有料なのもいろいろあるが、簡単すぎるのから難しすぎるのまでピンキリで選定が難しい。
結論からいうと SkechUp MAKE を CAD として使用し、SketchUcam という SkechUp 用の CAM プラグインを使って G-code に落としこんでいる。
SketchUcam は基本的に 2.5D CAM なので、パスの設定は完全に平面でなければならない。(Z軸方向の高さがあってはならない)
また、設定したセーフエリア外のオブジェクトは完全に無視される。SketchUp 上の複数の図面を書いたうえで、セーフエリアだけを動かせばそれぞれ別の G-code として生成できる。
2段以上の加工を行う場合、SketchUcam では一発で生成できないので、図面コピー + 切削条件再設定が必要。セーフエリアを動かして複数回 G-code 生成を行って、連結する。
SketchUCam はセーフエリア(機械稼動範囲)の設定ができるが、セーフエリア左下に常に原点が固定されてしまう。しかし実際は「ここを中心(原点)にして機械を動かしたい」という場合がある。
可能なら任意の点を原点にできればいいんだけどできないので、オフセットを設定するしかない。
セーフエリア内の適当なところ(中心とか)にオブジェクトを起き、機械側でも原点まで移動させたあと、ゼロリセットではなく、オフセット分のリセットを行う。
例えば、セーフエリア原点から 50mm, 50mm オフセットした位置を中心にして図面を書いた場合、機械側の原点あわせは、中心点を手動であわせたあと、G10 P0 L20 X50 Y50 とか送ればいい。
ビューの状態によってオブジェクトが出力されたりされなかったりするので、生成した G-code は必ず確認が必要。
この用途だと OpenSCAM が良さそうなので使っている。
特に Z 軸方向のチェック、例えば貫通すべきパスが貫通しているかとかをちゃんとチェックする。
出力しなおした場合、Rerun simulation すれば再度リロードされる。
これで正しく切削できそうなのが確認できればいよいよ実際に切削できる。