« EZ-CNC まじかよ〜2 | メイン | MiniFX2 »

2006年06月19日

AutoFeed

さらにファームウェアの拡張は続く。XYテーブルの大きさや 1mm あたりのステッピングモータのパルス量などもホストPCとやり取りできるようになった。
AutoFeed は2種類の実装があるので、これも搭載しようと思っている。1つは相対値での座標、もう一つは絶対値での座標の与え方だ。現在は相対値になっている。パルスを与えたら、±いくらで移動するようになっている。絶対値にするには現在の座標をからの距離を算出してその差分だけ、移動するようにする。メニューにでも登録して、切り替えられるようにしておく。これはCNC化を行う際にも役立つ。

さて、話が前後するが、ファームウェアの拡張に伴い、またもXDATAの開始アドレスの変更が生じた。今度はXDATA=0x1400である。こうするとうまくいく。

OptimizeからminiFX2の完成品が到着した。まだ、ドライブ回路との接続基板を製作していないが、とりあえずつなげてソフトを流してみた。
何の問題もなく動作する。ただ、現在製作中のソフトは A, B, C ポートを利用している。ミニ基板には C ポートは付いていないので、Dポートに変更する予定。
これが出来れば、安価で高性能なCNCシステムが完成するのだ。

投稿者 skykiz : 2006年06月19日 23:34

トラックバック

このエントリーのトラックバックURL:
http://www.teamknox.com/mt/mt-tb.cgi/330

コメント

はじめまして。
私も、AVRのmega88とLantronixのX-Portを使ってLAN経由のCNCボードを作成中です。
そこで、質問なのですが、XYZの3軸同時制御はどのように行っていますでしょうか?
現在1/8マイクロステップで駆動させているのですが、F1300(リード1mm)程度が限界っぽいです。FX2のCPUがどの程度か分からないのですが、高速化を目指すとつらいような気がします。

投稿者 turboZ : 2006年06月20日 04:47

turboZ さん、こんにちは

 LAN経由ですか?
 かっこいいですね!!

 現在、こちらの実装は5段階で考えています。
 1.ステッピングモータを廻す
 2.ジョイスティックで自在に廻す
 3.かっこいいUIを作る
 4.コントローラの保持している座標を読み出す
 5.オートフィードを作る
 6.NCコードのパーサ

 今は4−5段階に差し掛かったところです。
 基本的にFX2でやっていることはものすごく
 プリミティブなことです。
 単なる1−2相励磁の波形発生器程度のことです。
 USB経由で送るパラメータも5バイト位です。
 3軸の同時制御もPCで計算した値をそのまま
 目標座標として送っているだけです。
 #すいません。俺が何か見落としているかもしれませんが、
 #やっていることはその程度なんです。

 NCに関してもパースは完全にPC、
 軸の経路計算などは必要に応じてPCで
 やろうとしています。

 FX2はUSBのエンジンとしてはそれなりに使えますが、
 マイコンそのものは古き良き時代そのままなので、
 性能は低いです。
 ですから、頭仕事はPCと割り切っています。

 お答えになっていますでしょうか?

以上、よろしくお願いいたします。

投稿者 skykiz : 2006年06月20日 07:45

3軸同時制御という言葉が意味不明でしたね。すみません。

たとえば、X0,Y0からX10000,Y9999に移動させるとします。この時、Xモーターは全速でYモーターはXモーターの9999/10000のスピードで駆動させる必要がありますよね。ですがタイマーの分解能からしてこれは不可能なので移動中にYモーターのパルスを端折るような実装になると思います。

このパルスを端折るのがクセモノで、モーターの限界近いスピードの時に脱調しやすくなるようです。(斜め45度に近い直線等)

この辺の実装で何か旨いアイデアがあればと思って質問しました。

現状は、マイクロステップでごまかしています。

投稿者 turboZ : 2006年06月20日 09:12

turboZ さん

 理解しました。
 まだ、そこまで進んでいないんです。;_;
 でも、状況は想像できますので、今からでも
 考えておきます〜。

 今はとりあえず、パーサーですね。

では

投稿者 skykiz : 2006年06月20日 13:52

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)