---R8 Easy Change Basic Holders--- 

 以前、R8 Easy Change Basic Holders というツールが販
 売されているサイトを見つけました。
 R8というテーパーの規格で、日本では、一般的ではない
 規格なので、使うには、主軸をR8のものに変える必要が
 あるなと思ってました。
 今日、いろいろみているとMT3の規格のものもあるようで、

 

 安ければ即購入でした。
 QC30、QC40という規格もあるようですが、これは、NTや
 BTとまた違う規格なんでしょうかね。

久しぶりの海外通販

 旋盤の部品がほしくて、久しぶりに、海外通販を利用しました。
 寿○易にとも考えましたが、値段の点や、納期のこと考え、
 部品が常備してある、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の雄ねじのがあれば、一つ省略でき
 たのですが、ね。
 実際の画像です。

 

---旋盤 ミニ改造---

 旋盤のミニ改造をしています。たいしたことはしてないのですが、
 一つは、送り台のガタをなくすべく、スラストベアリング組み込み
 の改造。
 もう一つは、親ねじの固定にもガタがあるので、ここにもスラスト
 ベアリングを入れてます。
 次のような部品を作りました。

 

 この部品を親ねじ右端にねじを切って、取り付けます。

 

 Dカットは、ステッピングモーターのカップリング用でした。
 部品は、嫌気性の接着剤で、固定しました。
 それから、親ねじ右側軸受けの片側を加工しました。

 

 スラストベアリングで、両側から挟む格好にします。

---SPINDLEのPWM制御 (基本周波数の変換) (3)---移植ほぼ完了

 PWMの基本周波数変換のためのプログラムを諸兄の
 CSSコンパイラー(高い)から、無料のHI-TEC-Cコンパイラー
 に移植しました。
 諸兄は、200Hz(MCAHの設定)を20000Hzに変換して
 いますが、私は秋月のPWMコントローラーでも使えるように
 100Hz(MACHの設定)を10000Hzに変換するようにしまし
 た。諸兄は、MACHからのPWM信号のサンプリングをTIMER2
 の割込で、50μsごとにやってますが、私のプログラムは、
 基本周波数を半分にしたためと思いますが、倍の100μs
 ごとのサンプリングになりました。
 また、諸兄のプログラムでは、AD変換を使って、マニュアル
 でPWM信号を生成できるようにしてありますが、AD変換
 を加えると、プログラムが面倒なので、省略です。
 テスト用の基盤でやってますので、ユニバサール基盤に
 作り直す予定です。作り直してから、外部割り込みのテスト
 をします。
 PWMの信号を段階的に、プログラムから変化させてます。
 実際は、サンプリングによって、変化させます。
 
 参考のために、作成したプログラムを掲載しますが、テスト
 用に、ダミーが沢山入っています。もちろん、動作の保証
 等はありませんので、あしからずです。

---オシロスコープのプローブ---

 オシロスコープを使っていろいろやってましたが、ある時
 に、波形がパルス状になりました。

黄色の線が本来の波形だと思いますが、赤のように
 変形してしまうようです。
 周期が長くなるとこの傾向が強くでるようでした。
 調べている対象物が原因かなと思いましたが、どうも違う
 ようでした。
 オシロのマニュアルを見たり、周波数をいろいろ変えてみて
 くらべてみました。
 周波数が低くなるとその傾向が強いので、どうもプローブの
 特性のようでした。
 周波数が高いと、変形はめだちませんが、

 周波数が低くなると、○をつけた部分で、立ち上がりは上に、
 立ち下がりが下にひっぱらられるように変形するようです。
 上の写真よりもうちょっと低い周波数では、顕著になります。

 ます。プローブの特性だったんですねえ。一つまた、勉強し
 ました。

---SPINDLEのPWM制御 (基本周波数の変換) (2)---TIMER1の設定

 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
 のように、設定すると最大の0XFFFF(16進数)の65535
 の設定ができます
 アップカウンターなので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日ぐらいかかり
 ました。

---SPINDLEのPWM制御 (基本周波数の変換) (1)---

 諸兄の作ったプログラムを、穴の開くほどながめていました。
 タイマー0、タイマー1、タイマー2、外部割り込みを使ってます。
 一部、数値の意味の分からないところもありますが、同じもの
 が時間をかければできそうな気がしました。
 ちなみに、それぞれの割り込みは、
  タイマー0・・・・・・MACHからのPWM信号の有無の検出
             出力用PWMの初期設定
  タイマー1・・・・・・マニュアルでのLCDとLEDの点滅
  タイマー2・・・・・・MACHからのPWM信号のHとLの時間
             の計測
  外部割り込み・・・PWMの一周期の検出とDUTY比の計算
             PWM信号の有無の検出(追記)
 をしてるようです。
 分からなかったのが、タイマー2がPWMの信号も生成して
 るはずですが、割り込みにも使われているので、ここがわ
 りませんでした。
 PWMの生成と一緒にタイマー2の割り込みも実行できる
 ようで、やっと、その資料も見つけました。
 ちょっと、離れると、細かい設定の仕方を忘れてしまいます。
 諸兄のCコンパイラーは、CCSのようで、私が使っているのは、
 無料のHI-TECH-Cなので、割り込みや細かい記述(文法)が
 違います。また、いろいろあさりながら、楽しみます。

---SPINDLEのPWM制御---

 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の基本周波数を低めにして、
 コンバートの回路でもつくる必要があるんでしょうね。
 一つまた、勉強しました。

---旋盤の不具合---

 初めて購入して、あれこれ工作に使っているFL350Eですが、
 またしても、不具合です。

 

 X軸のステージ(赤矢印)が、0.5~1.0mm程度、がくっと
 手前に動くようになりました。
 ここは、X2互換機フライスと同じで、リテーナーで、シャフトを
 受けている構造で、強く締め付けると、ハンドルが回らな
 くなります。
 X2互換のフライスは、リテーナーを自作、スラストベアリング
 を埋め込んで、いくらしめこんでも、スムーズに回るように、
 改造しました。
 旋盤は、どうしましょうか。スペースが狭く、リテーナーに
 二つのスラストベアリングを埋め込むには、無理があります。
 どうしましょうかねえ。構造を考えながら、考えましょう。

 

 メタル軸受けのようで、赤線のガタがあります。
 切削を始めると、黄色矢印の方向に押されて、狂いがでま
 す。
 ずっと使い続けると、リテーナーの受け部分が摩耗して、
 ガタがでるんでしょうね。ハンドルのねじをいくらしめても、
 このガタをとることは、できません。構造的な欠陥ですねえ。
 加工が少なくできそうなのは、前後に
 スラストベアリング(赤部分)を入れて、後ろから、引っ張る
 構造にすると大丈夫でしょうか。

 

 こんな構造なら、できそうですね。早速必要な部分を採寸して、
 部品の調達をします。

---MACH3からのPWM信号---

 MACH3からのPWM信号をパラレルポートで確認しました。
 Dsub25ピンから信号を取り出すのに、秋月の
    RS232 GENDER CHANGER
 を使いました。Dsub25コネクターを二つ組み合わせて、
 ストレートの結線を作ってももよかったのですが、細かい作業
 になるので、やめました。

 

 

 これの1ピン(出力)、14ピン(出力)、25ピン(GND)にブレッド
 ボード用の線をハンダ付けし、ケースの隙間から引き出して、
 ケースをとじました。

 

 これで、ショート等の事故が少なくなります。
 SmoothStepperと同じで設定で、回転数1000~10000まで、
 確認してみました。ポート1の14ピンに出力してます。
 回転数に応じて、きれいにパルスの幅が倍増していくの
 が確認できました。
 1000回転の設定で、パルス幅は、約1msです。

 

 5000回転の設定で、パルス幅は、約5msです。

 

 上限に設定した、10000回転で、約10msです。

 

 今回は、コントロ-ルボードを通さないで、パラレルポートから直接
 とりだしました。応答もよく、きれいな波形でした。
 実際のコントロールに使うには、いろいろ工夫がいるんだろうな
 と思いました。
 便利な道具も販売されているようで、MACHのPWM信号を
 電圧に変換するボードもあるようです。