Monthly Archives: August 2006

ソフトの改良

 なんか、永久に続くかと思われたソフトの改良だがナントカカタチになってきた。各種のパラメータを設定ファイルと*.ini ファイルに持たせることにより、様々なタイプのフライスに対応できるようになった。これでいちいち、再コンパイルしなくて済ませられそうだ。
Adaptor


 フライスに「動作パターンを覚えさせて実行させる」機能も実装し始めた。一発目は大穴(円)を開けるための機能だ。
CircleTool.png


ただ、今のやり方だといちいちコードを書いているので、プラグイン形式で出来ないかを検討してみる。

夏休みの工作

久々にこんなことをやってみた。
PS2Controller disassemble


元ネタはこちらの方なんだけど、さすがにマイクは必要なかったので今回はハブと変換基板のみ。
PS2Controller


これ、かなり面白い。色々なところに応用できそうだ。ロボのコントローラも出来そうだし、CNCはこれがあれば手元で何でも出来る。

もうちょいだな

 XJ9512のテーブル駆動はジャンクのステッピングモータでは、ちと荷が重いようだ。先日も駆動IC内のトランジスタが焼けてしまって煙が出てきた。これはけっこう焦るね。
 Z軸で使っている日本サーボの大きめのステッピングモータを使うことにした。X軸は現在のハンドルが使えるので、片軸。Y軸はハンドルの増設も考えて両軸とした。24Vを印加しているが、ICの温度も40℃いかないし、モータ本体もほんのり温かくなる程度だ。
OverView


 ソフトもNK氏のアドバイスを頂いて、かなり手を入れた(と言うか、TeamKNOxがフライスの知識、無さ過ぎ?)。一応、丸も丸らしく描けるようになってきた。バックラッシュの補正方法をもう少し、煮詰めなければいけないのと、メカの精度ももう少し上げたい。CNC化の目途は立ったので、自分自身でパーツを作りながら精度を上げていこうと思う。
Draw Circle
Draw Circle

俺っちの芸風

 先日、技術系の某誌の編集長と色々と話をした。改造したフライス盤を二人で囲んでの話である。元々はロボの機体作りの為に導入を決めたフライス盤であるが、自分自身のユースケースを考えてみると他にも色々あることがわかった。
 ボール盤として使うのがやはり、多い。それもほんのちょっと賢さが要求されるような使い方だ。CNCの応用として、簡単な図形の穴あけをその場で出来るようなフライス盤を目指すことにする。そう、DB9とかDB25のコネクタ形状をその場で穴あけ出来るような感じだ。ケースをきれいに加工できると完成度がそれだけ高くなるもんね。

バックラッシュ対策

CNCではバックラッシュ対策が必要になる。色々なページを拝見すると、先達の苦労がわかる。小生も最初は大した事ないと考えていたが、実際にやってみるとかなり苦労した。メカ的、ソフト的な工夫が必要になった。メカ的な点はガタを極力、無くすと言う事。ソフト的には現在がモータの方向の変化時なのかどうかを見極める必要がある。
 UIを少し工夫してどっちの方向に向かっているかを一目でわかるようにした。具体的には+方向に進んでいる時は緑色で現在位置を表示して、シアンだと-方向とした。ほんの少しの工夫だが、だいぶ使いやすくなった。UIは継続的に改良していく。

少しずつ精度が上がり始めてきた。

CNCを実際に使う上で、調整するパラメータが何箇所かある。
 これをうまく調整しないと全然、うまくいかない。
 先達が皆、通ってきた道、円を描かせることに挑戦した。
 まだ、調整が必要だが、一応それっぽいのを描きはじめた。
Adaptor


 今回はブレゼンハムのアルゴリズムなので、X,Yを交互にOn/Offしている。モータの停止・起動が繰り返される。連続回転ではないので、その度にイナーシャがかかり脱調しやすい。実際、ここまで来るのにかなり、調整が必要だった。具体的には速度は少し落として、解像度辺りの分解能は8に設定した。
 実は上の円の連続描画はバグで本当は一つだけ描かせるはずなのに、いくつも描いてしまっている。この辺りも徐々に追い込んで行こうと思う。バックラッシュが顕在化している領域もあるので、これも改良していく。

少しずつ

目に付いた不具合点は修正した。バックラッシュの補正は調子が良いと、±0になるが大体、0.05mm位で収まるようになってきた。この辺は少しずつ、追い込んでいきたい。
 ioio さんが EZ-USB で同じく CNCを構築しているが、TeamKNOx のやり方とはだいぶ違う。ioio さんのは従来と同じく、PCからパルスを発生させる。進化した点はパラレルポートではなく、USBチップのポートを介してと言うことだろう。タイマはPCのを使う。
 TeamKNOxはタイマはUSBチップのモノを使っている。細かいI/O制御はローカルにやらせるのが鉄則だからだ。

修正箇所

 1. Z軸の動作のゲームコントローラのボタンの入れ替え
 2. バカヨケをZ軸の動作にも適用する
 3. バックラッシュの補正量の追加
 4. 3の設定用ダイアログの追加
 とりあえずはこんな感じ。順次機能追加と修正。

ブレゼンハムを用いてCNCを実現

X-Y平面に直線を引く場合、XかYが0の場合は簡単である。そのまま、線を引いちゃえばいい。ところが、X,Yが0以外の場合はちょっと面倒くさい。
X,Yは異なる距離なんだけど、到達時間は同じにしなければならない。この場合はX,Yの比を求めて、それを移動速度に乗じることにより、到達時間を同じにする。
タイマで設定できる範囲が十分にあれば、問題ない。それぞれの乗数をタイマの設定値にぶつければよい。問題はタイマの設定範囲が十分に無い場合だ。
今回はブレゼンハムを用いた。この方法のよい点はX,Yが順番に設定されるので、同時に電流を流すことが無い。つまり、電源に負担をかけないですむ。

Z軸、稼動開始

フライス盤のCNC改造の当初からの懸念事項であったZ軸の改造が完成した。当初購入したステッピングモータのトルクでは足りないので、新品のモータを購入したのだ。
Adaptor


イメージどおりの動作なのですごくうれしい。これで全軸動作できるので、いよいよCNCの運転開始だ。
秋葉原をぶらついていたら、CNCにぴったりのPS/2タイプの10キーボードを見つけた。マウスとの分岐ケーブルも付属していてジャンク扱いなので¥200だった。これも早速、取り付けてみた。
Adaptor


10キーでもオペレーション出来る様なUIを考えてみようかな?