2015-03-02 Mon
以前、R8 Easy Change Basic Holders というツールが販売されているサイトを見つけました。
R8というテーパーの規格で、日本では、一般的ではない
規格なので、使うには、主軸をR8のものに変える必要が
あるなと思ってました。
今日、いろいろみているとMT3の規格のものもあるようで、
安ければ即購入でした。
QC30、QC40という規格もあるようですが、これは、NTや
BTとまた違う規格なんでしょうかね。
2015-02-27 Fri
旋盤の部品がほしくて、久しぶりに、海外通販を利用しました。寿○易にとも考えましたが、値段の点や、納期のこと考え、
部品が常備してある、Littlemachinshop.comに
注文しました。値段が21ドルぐらいのものなので、それだけでは
送料がもったいないので、以前から検討していた、クーラント
システムのセットも購入することにしました。
ノガのミニクールにしようかとも考えてましたが、
まあ、ちょっとだけ安いので購入しました。多分、中国製で
しょうね。
コンプレッサーに接続するネジが、1/8 NPT threadと書いて
あったので、日本の規格には合わないだろうなと思いましが、
アダプターを買えばということで、また、また、ネジの規格の
勉強をしてしまいました。
NPT規格は、アメリカのテーパーネジの規格で、日本で使わ
れている、R(旧PT)規格にはそのままでは、使えません。
そこで、○天で、変換継手、
を購入しました。このネジは。
NPT 1/8 → R(PT) 1/8
に変換する継ぎ手です。これだけではだめで、さらに、
R 1/8 → R 1/4
に変換する継ぎ手をHCで購入。
これをカップラーにつなぎます。
結局、
のようになります。
変換継ぎ手が、
NPT 1/8 → R(PT) 1/4
のがあるか、カップラー1/8の雄ねじのがあれば、一つ省略でき
たのですが、ね。
実際の画像です。
2015-02-21 Sat
PWMの基本周波数変換のためのプログラムを諸兄のCSSコンパイラー(高い)から、無料のHI-TEC-Cコンパイラー
に移植しました。
諸兄は、200Hz(MCAHの設定)を20000Hzに変換して
いますが、私は秋月のPWMコントローラーでも使えるように
100Hz(MACHの設定)を10000Hzに変換するようにしまし
た。諸兄は、MACHからのPWM信号のサンプリングをTIMER2
の割込で、50μsごとにやってますが、私のプログラムは、
基本周波数を半分にしたためと思いますが、倍の100μs
ごとのサンプリングになりました。
また、諸兄のプログラムでは、AD変換を使って、マニュアル
でPWM信号を生成できるようにしてありますが、AD変換
を加えると、プログラムが面倒なので、省略です。
テスト用の基盤でやってますので、ユニバサール基盤に
作り直す予定です。作り直してから、外部割り込みのテスト
をします。
PWMの信号を段階的に、プログラムから変化させてます。
実際は、サンプリングによって、変化させます。
参考のために、作成したプログラムを掲載しますが、テスト
用に、ダミーが沢山入っています。もちろん、動作の保証
等はありませんので、あしからずです。
2015-02-20 Fri
オシロスコープを使っていろいろやってましたが、ある時に、波形がパルス状になりました。
黄色の線が本来の波形だと思いますが、赤のように
変形してしまうようです。
周期が長くなるとこの傾向が強くでるようでした。
調べている対象物が原因かなと思いましたが、どうも違う
ようでした。
オシロのマニュアルを見たり、周波数をいろいろ変えてみて
くらべてみました。
周波数が低くなるとその傾向が強いので、どうもプローブの
特性のようでした。
周波数が高いと、変形はめだちませんが、
周波数が低くなると、○をつけた部分で、立ち上がりは上に、
立ち下がりが下にひっぱらられるように変形するようです。
上の写真よりもうちょっと低い周波数では、顕著になります。
もと低い周波数にすると、パルス状の波形の連続になり
ます。プローブの特性だったんですねえ。一つまた、勉強し
ました。
2015-02-18 Wed
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // 262msの262msは、262msごとに割り込みをかける意味ですが、
なぜ、262msなのか、意味が分からず、あれこれ調べて
ました。
ある本で、
「PICのクロックを8MHZとすると最長262msのタイマー値を
得ることができます。」
の記事を見つけました。
やっと262msの意味がわかりました。次のように計算します。
タイマーの基準のとなる時間は、
(1/クロック周波数)×4
で求められます。私が、プログラムに使っている16F88の
クロックは8MHzなので、
(1/8Mhz)×4=0.5μs
「1」をカウントするために必要な時間は、0.5μsですが、
プリスケラ-(分周)との組みあわせで使います。
プリスケラ-を8とすると、「1」をカウントするための時間は、
0.5μs×8=4μs
になります。
TIMER1には、16ビットのカウンターを使うので、
最大、
16進数でFFFF(一桁を表すのに4ビット使うので、
4桁で16ビット)
10進数で65535回
を数えることができます。
目一杯数えると、
4μs(一回カウントするための時間)×65535回
=262140μs
262140μs=262.14ms
ということで、262msの時間がかかります。
やっと262msの数値がでてきました。
これを使うにあたっては、カウンターをセットする必要が
あります。
次のように、二つのレジスタを使って設定します。
TIMER1H=0XFF
TIMER1L=0XFF
アップカウンターなので65535を数えるには、
TIMER1H=0
TIMER1L=0
のようにします。
それでは、目的の数値を設定するには、
どうすれはいいのでしょうか。
TIMER1Hには、4桁の数字の上位の2桁を、TIMER1Lには、
4桁の数字の下位2桁をセットしますので、上位2桁と
下位2桁を取り出す必要があります。
たとえば、10進数で、8546の85を取り出すには、
8546÷100
をやって、小数以下を切り捨ててしまえば、目的の「85」
の数値を取り出せます。
これと同じことを、ビットをずらすという命令を使って実現し
ます。ビットをずらす命令は、2進数で考えますので、
4桁の数値を2進数にすると16桁になります。
○○○○ ○○○○ ○○○○ ○○○○
赤が目的の数値ですので、右に8こずらすと、
○○○○ ○○○○ ○○○○ ○○○○
となり、ずらした後には、0が挿入されますの、これで目的
の上位2桁を取り出せます。これをするには。
8546 >> 8
とします。つまり、85をTIMER1Hにセットするには、
TIMER1H=(8546 >> 8)
とすればいいわけです。
では、下位2桁を取り出すにはどうすればどうすればいいで
しょうか。
8546-8500
をすれば、46の数値がとりだせます。これを実現するのに、
やはり2進数で考えます。マスクをかけるというような言い方
をしたりしますが、「and」という演算をします。二つの数値を
比べて、次のような出力になりますから、
0と0は0
1と0は0
0と1は0
1と1は1
次のように、16進数で「OOFF」(2進数で0000000011111111)
とのAND演算をします。
すると上位2桁が0になって目的の下位2桁の数値が取り
出せます。実際は、次のようにします。
TIMER1H=(8546 & OX00FF)
これで、下位2桁の「46」をセットすることができます。
8546回数えさせるためには、
TIMER1H=(8546 >> 8)
TIMER1L=(8546 & OX00FF)
と言うように、2行に分けて、記述します。
難しかったです。ここまで理解するのに、3日ぐらいかかり
ました。
2015-02-15 Sun
諸兄の作ったプログラムを、穴の開くほどながめていました。タイマー0、タイマー1、タイマー2、外部割り込みを使ってます。
一部、数値の意味の分からないところもありますが、同じもの
が時間をかければできそうな気がしました。
ちなみに、それぞれの割り込みは、
タイマー0・・・・・・
出力用PWMの初期設定
タイマー1・・・・・・マニュアルでのLCDとLEDの点滅
タイマー2・・・・・・MACHからのPWM信号のHとLの時間
の計測
外部割り込み・・・PWMの一周期の検出とDUTY比の計算
PWM信号の有無の検出(追記)
をしてるようです。
分からなかったのが、タイマー2がPWMの信号も生成して
るはずですが、割り込みにも使われているので、ここがわ
りませんでした。
PWMの生成と一緒にタイマー2の割り込みも実行できる
ようで、やっと、その資料も見つけました。
ちょっと、離れると、細かい設定の仕方を忘れてしまいます。
諸兄のCコンパイラーは、CCSのようで、私が使っているのは、
無料のHI-TECH-Cなので、割り込みや細かい記述(文法)が
違います。また、いろいろあさりながら、楽しみます。
2015-02-15 Sun
sable2015のスピンドルに、ブラシレスモーター(模型用)やちょっと前に発売になった専用の20VのDCモーターを使った
りしてます。
どちらにも一長一短があるのですが、DCモーターの方が静か
なので、こちらを使おうかと思いました。
ブラシレスモーターは、既存のインターフェースを使って、速度
制御したことがあるのですが、DCモーターということで、
秋月の「PWM(スイッチング方式)DCモーター速度可変キット」
を使って、マニュアル操作とMACHからの制御の切り替えができ
ないかと、思いつきました。
マニュアルは、簡単に接続すればいいのですが、MACHから
となると、一工夫が必要なようです。
MACHからのPWMで直接モーターを制御するには、
問題があると諸兄のHPにはあります。
「周波数の設定は任意に変えられる。 高くも設定できるのだが、
階調が低下するので実用的ではない。
例えば、カーネル周波数が35KHzの場合にPWM周波数を1KHzに
すると階調は35段階だ。
殆んどの人が聞こえない15KHzを選ぶと階調は2.3段階になって
しまう。」
この意味がなんとなく分かりました。秋月の「PWM(スイッチング方式)
DCモーター速度可変キット」は、PWMの基本周波数は、10KHz
と記載があります。
詳しいことは分かりませんが、搭載してあるパワーMOSFETを制御
するにあたって、この周波数が最適なんでしょうね。
とすると、諸兄が言っているように、MACHで、基本周波数を高く
すると、階調の問題が・・・・・・・・・・・・・・・。
カーネルの周波数を25000Hzとして、MACHの設定を、
「PWM(スイッチング方式)DCモーター速度可変キット」と同じ
10kHzにすると、おおよそ、低・中・高の3段階ぐらいの切り替え
しかできないことになってしまうようです。
階調のことを考えると、MACHの基本周波数を低めにして、
コンバートの回路でもつくる必要があるんでしょうね。
一つまた、勉強しました。
2015-02-13 Fri
初めて購入して、あれこれ工作に使っているFL350Eですが、またしても、不具合です。
X軸のステージ(赤矢印)が、0.5~1.0mm程度、がくっと
手前に動くようになりました。
ここは、X2互換機フライスと同じで、リテーナーで、シャフトを
受けている構造で、強く締め付けると、ハンドルが回らな
くなります。
X2互換のフライスは、リテーナーを自作、スラストベアリング
を埋め込んで、いくらしめこんでも、スムーズに回るように、
改造しました。
旋盤は、どうしましょうか。スペースが狭く、リテーナーに
二つのスラストベアリングを埋め込むには、無理があります。
どうしましょうかねえ。構造を考えながら、考えましょう。
メタル軸受けのようで、赤線のガタがあります。
切削を始めると、黄色矢印の方向に押されて、狂いがでま
す。
ずっと使い続けると、リテーナーの受け部分が摩耗して、
ガタがでるんでしょうね。ハンドルのねじをいくらしめても、
このガタをとることは、できません。構造的な欠陥ですねえ。
加工が少なくできそうなのは、前後に
スラストベアリング(赤部分)を入れて、後ろから、引っ張る
構造にすると大丈夫でしょうか。
こんな構造なら、できそうですね。早速必要な部分を採寸して、
部品の調達をします。
2015-02-13 Fri
MACH3からのPWM信号をパラレルポートで確認しました。Dsub25ピンから信号を取り出すのに、秋月の
RS232 GENDER CHANGER
を使いました。Dsub25コネクターを二つ組み合わせて、
ストレートの結線を作ってももよかったのですが、細かい作業
になるので、やめました。
これの1ピン(出力)、14ピン(出力)、25ピン(GND)にブレッド
ボード用の線をハンダ付けし、ケースの隙間から引き出して、
ケースをとじました。
これで、ショート等の事故が少なくなります。
SmoothStepperと同じで設定で、回転数1000~10000まで、
確認してみました。ポート1の14ピンに出力してます。
回転数に応じて、きれいにパルスの幅が倍増していくの
が確認できました。
1000回転の設定で、パルス幅は、約1msです。
5000回転の設定で、パルス幅は、約5msです。
上限に設定した、10000回転で、約10msです。
今回は、コントロ-ルボードを通さないで、パラレルポートから直接
とりだしました。応答もよく、きれいな波形でした。
実際のコントロールに使うには、いろいろ工夫がいるんだろうな
と思いました。
便利な道具も販売されているようで、MACHのPWM信号を
電圧に変換するボードもあるようです。
TOP PAGE △