posted by
rerofumi
2010/9/7 火曜日 23:53:15

一応の連載になっていたので、その後の報告をば。
地道に状況デバッグを重ねていって三角形を小さな三角形で表現しながら合成していくという目標はなんとか達成することができた感じ。
2枚はOKでも3枚で破綻する、なんてのもあったけれども今は問題なく処理できている。ただ、たまーにアウトラインモードで内部にゴミラインが出る事があって、何らかで線が重なった瞬間じゃないかと考えている。でも出る頻度が低いのと、ここまで来れば前に進めるのとで、とりあえず置いておこうかと。

こんな風に穴あきになるような重なりでもちゃんとアウトラインがとれているよ。
Source code: ironruby_gl_fw_03.zip
posted by
rerofumi
2010/9/6 月曜日 23:06:17

morecatさんが作成した「もなかシールド」をおわけして貰っていたのだけれども、後回し後回しになっていてやっとこさ組み立て。遅くなってごめんなさい。
Arduinoにピンを合わせた、Arduinoシールド互換な Ginger 基板といったところ。
(※個人的に「あかもなか」と呼びたい)
もなかは USB MIDI デバイスとして認識されるプラットフォーム基板。かなでの V-USB バージョンというか後継。

AVRマイコンを乗せて単体で簡潔するモードと、Arduinoに載せてV-USBシールドとして楽しめるモード、2種類の楽しみ方ができるのが特徴。
Arduinoに載せてV-USBシールド、というのがなかなかそそられる言葉なのだけれども今のところ bootloader を使って Arduino Sketch として開発ができるわけじゃなく、それらを潰して ISP で書き込む必要があるとか。なので、AVR を載せて単体動作させる方が今はメインっぽい。

Arduino に乗せるとこんな感じ。
従来の Ginger 使用のもなかと比べて、AVRチップが異なるのとクリスタルクロックが 16MHz なのとでファームウェアは別に作り直さないといけないらしい。
特に新しいファームが置いてあるわけでもなさそうなので、もなかのプロジェクトをいじくって作成してみた。monakaファームの 20100630 版(monaka-20100630.tgz)に Arduino 用パッチと HEXが入っているので、これを焼き込む形となる。んが、ちと失敗したのでファームに関してはまたこのつぎということで。
単体バージョンのほうでクリスタルを 12MHz のせちゃったり、ヒューズビットいじってたら失敗して DisableRST で書き込んじゃったりしていろいろしょんぼり。AVR は慣れていないのです。
しかし、V-USB でいろいろ実験してみたいという野望はあるし、そのために Ginger とか分けていただいているので是非とも進展させたいところ。
posted by
rerofumi
2010/8/23 月曜日 1:34:05
うまくいかなくて悩んでいるけれども途中で掲載。

前回の「IronRuby で OpenGL」の続き。といっても、表示して確認しながら作りたかったプログラムの方。
何かというと2つの三角形が重なっているとき、それを合成した図形を計算したいというもの。シンプルながらやってみるとなかなかに難しくて。久々にベクターや外積などと取っ組み合い。
なんでもいいから合成後の形状が得られれば良いというわけでなく、2つの要求が存在している。
1) 合成後は細かい三角形の集合として得られること
2) 分割後の三角形は接するもの同士頂点を共有し同じ辺の長さであること
1) はとりあえずこれを満たせば後は繰り返しでどんな形でも作業することが可能になるので。

2) が地味にやっかいなのだけれども、これは最終的に欲しいのが合成した形状の外周だから。
三角形の集合にしておけば、線分に分割して見たとき「共有されていない辺が外周」であると後で抽出できるため。

ここ一週間ぐらい取り組んでいて大分形になってきたけれども、まだまだ不完全。
三角形二つがくるくると回りながら移動し交わったら合成処理を施すようなデモを作って確認しているところ。くるくる回りながらということで、任意の状態を幾重にも作りだすことと等価。全ての場面でうまくいくことを見たいのだけれども、まだうまいこといかないパターンがあって割としょっちゅう破綻している。
ある程度のテストパターンは作って作成していったのだけれども、その範囲内でうまくいっても任意形状ではダメというのはありがちなれど辛いのう。
今の段階でのソースコード。くるくる回るデモを含んでいるので IronRuby で OpenGL のテストコードその2 としてもどうぞ。
Download: ironruby_gl_fw_02.zip (11kb)
その道の偉い人からみたらもっとスマートな手順があるんだろうなあ。
というか、力業なコードになりつつあるのが切ない。
posted by
rerofumi
2010/8/14 土曜日 2:09:34

ちと ruby で計算した結果をグラフィカルに確認したくなったので、.NET の OpenGL バインドである OpenTK を IronRuby からまともに使ってみることにした。
ライブラリを使うだけなのでさくっと画面が表示成功。あとは OpenGL ベースで好き勝手できるようになったところで成果をお裾分け。
IronRuby を用意するという特殊性はあるものの、上の画面の様な三角形が簡単に表示できるのです。今実験しているのが平面の図形計算だからテストは平面な三角形だけれども、3DCG で表示されていて、マウスドラッグでくるくる回せる様になっている。
Download: ironruby_gl_fw_01.zip (5kb)
IronRuby と OpenTK は .NET 環境で動くので、MONO を使って MacOSX 上で動作させることも可能。

Linux は試していない。
IronRuby上で OpenTK を使う手順として codepad に置いてあった「OpenTKのサンプルをIronRubyに移植してみた」を参考にさせてもらった。ここに情報がないので作者が不明なのだけれども、あれくまさんが作ったということでいいのかな?
あと OpenTK のサンプル(C#)とドキュメントを見てた。
IronRuby + OpenTK というか OpenTK 自体情報が少ないのでこんなソースでも何かの役に立つんじゃないかと思う。
ここ最近、なにかアプリケーションが作りたいとき何で構築するのが最善かなあと考えていた。マルチプラットフォームでOpenGLも使えてというと Java が一番近いのだけれども、Linux も考えると簡単かなあと疑問に思ったり、そもそもで Java はなんか最近離れてしまったのでやりたくなかったり。
できれば ruby で楽しく作ってお気軽にマルチプラットフォームできると良いのだけれども、ruby は GUI フレームワークが弱すぎるという難点が。
色々考えているうちに MONO がかなり良くなってきているので、.NET framework で作ればマルチプラットフォーム化が容易だというあたりに落ち着いてきた。Windows forms で作っておけばたくさんの環境でだいたい動作させる事ができる。
調べてみるとシリアルポートも含まれているので、環境毎にドライバーを用意しなくても同一コードでシリアルにアクセスもできる。マイコン工作系にとってかなり心強いところ。
.NET framework で OpenGL を扱えるバインディングには OpenTK が登場してなかなか評判も良い。
でそんな GUI 周りをそのまま利用できる ruby 環境として IronRuby があるわけだ。(Python派には IronPython)
試してみたら MONO で IronRuby を使うのもそんなに難しくなかった。特にこだわりがあるので無い限り、スタンダードな ruby そのままな形でプログラミングできるし GUI も作成することが可能だ。
そんなこんなで個人的な好みにマッチングしている IronRuby + OpenTK で、ちょこっとしたアプリを作成できるのではないかという結論に至ったのである。
今回のソースはその第一歩。
posted by
rerofumi
2010/8/8 日曜日 1:11:02
そんなこんなで「ほんのりさん」が完成しましたが、2〜3セットは作成できるパーツ在庫がありますので実費でお分けすることができます。
特に、Makerbot の純正 H.B.P. V2 をお持ちの方で使えることをレビューしてくれるひとはいませんかね?
今回は基板を枚数作っていないので単価が高く頒布価格が5000円ほどになってしまいますが、それでもという方がいましたらご連絡ください。
[追記 Aug.08.2010 23:15]
欲しいと言ってくれる人がどれくらいいるのか不安だったのですが、即座に希望者が現れて驚いています。
ちょいと慌てながら手元の部品を整理してみましたが、正確に 3セット分ありました。既に 2セット分の引き合いがあるので今現在 1セット分の在庫があります。それ以上の引き合いについては、部品の取り寄せ購入をしてからのお渡しになるのでちょいと日数をいただくことになります。
ご希望されるかたは私あてのメールか、この記事へのコメントでご連絡ください。
お支払い方法はかなでのときと同じで良いのですがPayPalが今一時的に使えなくなっていたりいくつかのサービスはなくなっていたりして面倒なので、一番楽なアマゾンギフト推奨としておきますね。
posted by
rerofumi
2010/8/7 土曜日 19:13:38

ハードが完成したのでファームも完成させて Ver1.0 とした。
以前の版に比べての改良点は。
- サーミスタの温度テーブルを Extruder2 のソースで使われているテーブルを流用、Extruder使用時とほぼ同じ数字が出るようになった
- 真ん中ボタンでのヒーターOFF時に設定されていた目標温度を保存し、次回起動時にその温度が表示されるようにした
- 温度上げ下げボタンにキーリピートをつけた
- LCD表示を 16×2 のレイアウトに合わせて改変した
といったあたり。
PSoC Designer5.0 用のプロジェクトファイル&バイナリHEX
Download: hotplate_controller_v100.zip
ホットプレートコントローラー基板こと、「ほんのりさん」はこれにて完成となります。
posted by
rerofumi
2010/8/6 金曜日 0:22:20

CupcakeCNC 向けのホットプレート制御基板に「ほんのりさん」という名前をつけて、P板.com で製造してみた。


つつがなく完成。配線ミスもなくいいかんじ。

毎度のシルク絵もこんな感じで仕上がっています。
Download: hotplate_controller_02.zip
基板の K2CAD 設計データと、gerber データの詰め合わせ。
gerber の方はそのまま出せば製造できるんでないかな。(デザインルールが許容範囲であればだけれども)
もうちょっとファームを改良する予定。
posted by
rerofumi
2010/7/30 金曜日 1:52:44
HotProceedさん、よしだまきさんから聞いたメンテナンス話。
3Mの紙素材マスキングテープをテーブルに張ると食いつきが良くて使えるらしい。
Cupcake CNC を使い始めてすぐにつまずくのが、開始時に樹脂をテーブルに張り付かせるという行為。つまりは第一層の食いつきである。テーブルにくっつかなくてノズルのところで団子になったり、出力中にテーブルから外れて失敗したり。
テーブルぎりぎりのところまでノズルを近づけて第一層は押しつけるように射出することで食いつかせることを覚えていくのだけれども、慣れていてもこれが失敗しやすかったりする。また、アクリルテーブルはあまり密に射出するとABSがくっついて取れなくなったりなかなかうまくいかないものなのです。
また、自作でホットプレートテーブルを作るとどうやって樹脂を食いつかせるか非常に困ることになる。私は半ばあきらめて Makerbot からカプトンシートだけを買って使っているけれども、次メンテナンスするさいまた取り寄せるのかと思うとちょいと面倒くさいし送料もかかる。
アクリルにしてもそうだ、出力品がどんどんこびりついていき汚れてくる。この先どのようにメンテナンスをしていけばよいのか。
とまあ、こんな風に出力テーブルの表面というのは悩みの種なのですが、3Mの紙素材マスキングテープが良いよ!という情報をゲットしたので早速買いに行ってみた。

モノはあっさりと見つかった。基材は紙の塗装マスキング用テープ。3Mのこの黄色い奴だけがうまくいくらしい。左の白いのは比較用にかった和紙基材のマスキングテープ。


適当に張ってためすよー。って初回は失敗。
わざと押しつけないようにして様子見していたのでしょうがないのだけれども、出力中にはがれてしまった。
思っていたよりも樹脂のノリが良くって無理に押しつけなくても形ができていく、だけれども、冷めて縮むと反り返りであっという間に浮いてはがれる感じ。物凄くノリが良いのだけれども、力強く食い込む訳じゃないので冷めると弱いっぽい。
この特性を頭に入れて使うと、なかなか良い具合に出力できる。というか、アクリルとカプトンシート(ホットステージ用)以外でちゃんと食いついて出力できた所を見るのは初めてだ。

1にも2にも反り返り注意ですなー。

3Mのマスキングテープは良い事がわかったのでそれ以外の紙素材はどうよと和紙のマスキングテープとレーザープリンター用のラベル紙を試してみたが果たせるかなうまくはいかなかった。
和紙の方は表面がでこぼこはしているものの基本つるつるなので食いつかなかった。
ラベル紙も無理に押しつければ出力できるものの、冷えるとすぐはがれてしまう感じ。やってできなくはないのでホットプレートと併用なら非常用に使えなくはないかも。
紙素材もモノによっては食いつくらしいということがわかった。中でも3Mのマスキングテープは絶妙な荒さで使い物になっている。どちらにしても紙素材、強く押しつけて食いつかせると繊維に絡み込んではがすときに紙の方が破けて残るといった状況にはなるようだ。
何にせよ、近所で手軽に手に入る素材で出力テーブルのメンテナンスができることが分かった。大収穫である。
posted by
rerofumi
2010/6/29 火曜日 2:45:00

CupcakeCNC をコントロールするCNCアプリケーションの ReplicatorG がバージョンアップして 0017 になった。
今回の変更はちょっと大きくて、STLを直接読み込んでプレビュー表示できるようになったことと、Skeinforge を組み込んでしまいコマンドラインから Python を起動しなくても gcode 生成ができるようになった。
Skeinforge は本当にバックエンドで呼び出しているので、Windows 用の Python をインストールしておく必要がある。私はこれまで Cygwin のPythonで起動していたのでちょいとはまった。
さて、Cupcake CNC を入手してからしばらくはなにをやっていたかというと、主にこの Skeinforge のパラメータを繰り返し調整しながら出力して、自分のマシンにぴったり合うパラメータを見つけ出すことであった。そんなお気に入りパラメータが私の Skeinforge には入っている。
だが、Skeinforge が ReplicatorG に内包されるようになったことでこれまでの設定が使えなくなってしまったというか引っ越すのが困難な状況に。
しょうがないので、スナップショットを取りながらこれまでのお気に入り設定を移していくことにした次第。
そんなお気に入り設定の共有というのは有効なんじゃないかと思うので、みなさんの参考になればと公開しておくのです。
Skeinforge 設定については水星工房さんの所に情報があるので、まずはそちらを読んでから先にすすむと吉。
Read the rest of this entry »
posted by
rerofumi
2010/6/21 月曜日 2:33:34