---Mach3 スクリーンのボタンの機能編集---

 Mach3のスクリーンのボタンには、いろいろな機能が割
 り振られています。
 この中に、GOTO ZEROのボタンがあります。この
 ボタンをクリックすると、「0」点にスピンドルが移動しますが
 X→Y→Z軸の順に移動します。
 Z軸がワークの中に位置していると、そのまま移動するため
 エンドミルを折ったりの事故になります。
 これをZ→X→Y軸の順に移動するように変更します。
 まず、Screen4をダウンロードします。
 リンク先の中程にScree4がありますので、
 ここにカーソルを合わせるとダウンロードできます。
 Machのホルダーに解凍します。
 Scree4ホールダーのScreen4.exeを立ち上げます。

 

 念のたコピーをしておいた1024.setのファイルを
 読み込み、下記の画面で編集します。

 

 GOTO ZEROのボタンを左クリックすると次の画面が立
 ち上がります。

 

 一番下のラジオボタンの
 VB Script function Editted in Mach3
 にチェックを入れOKをおします。編集したものを保存して、
 Scree4.exeを終了します。
 「Save As」で、別名で保存しておいた方がいいと思います。
 Scree4を終了して、Mach3を立ち上げます。
 View→Load Screenで、先ほど編集したファイルを読み込み
 ます。
 Operator→Edit Button Script
 をおすと、Screen4で編集する前は、点滅していなかった
 GOTO ZERのボタンが点滅するようになります、
 ここをクリックすると、VBのエディターが開きますので、

 

 ここに、

 Code “G0Z0”
 While IsMoving ()
 Wend
 Code “G0X0Y0”

 をコピペして、保存します。これで、Goto Zero,で
 Z軸が先に0点に移動するようになります。
 スクリプトの先頭や文末に空白が入るとうまく動きません
 ので、注意が必要です。
 Screen4を使って編集すると、手動のjogが使えなくなる
 とのHPの記載も見かけましたが、大丈夫なようです。
 Scree4を使って編集すると、オリジナル画面のボタンの
 機能をカスタマイズできるようになります。

---手パ(手動パルスジェネレーター)切り替え器制作(4)---

 プログラムがだいたい動作するようになったので、PIC基盤
 の作成を始めました。
 いつも適当にしていましたが、ちょっと、データーシートを見て
 みました。と言ってもLEDのデータですが。
 電子工作を始められたばかりの方が確かめるようにみてみま
 したが、あらためてびっくりです。それは、青色と緑色では、
 がかなり違うことです。データばかりか、値段も約倍です。
 ちなみに、次のようになってます。
         順電圧    動作電流
   緑LED  2.05V    15mA
   青LED  3.5V     15mA
                   (5mAでした。)
 今更、と言われそうですが、やはり未熟者です。
 今回は、結構小さめの基板にもりこんだので、細かい作業
 に時間がかかりました。

 

 久しぶりに、ポリウレタン導線をひっぱり出してきました。
 半田付けにコツがいりますが、絶縁されているので、
 接触させても大丈夫です。まあ、極力、接触、交差のないよう
 にしますが。
 配線をしていて、CNCで、基盤のパターンの切削をされてい
 た諸兄のこと思いだし、切削の方法をちょっと調べて見ました。
 元データーを作るのがちょっと、大変でしょうかね。
 ガーバーデータ作成→→Gコードへ変換の手順になるよう
 です。

---Mach3のToolpathdisplay画面の操作---

 今まで、Mach3を操作していて、左ドラグで、立体表示になり
 回転できることは分かってましたが、あらためてマニュアルを
 読んでみました。といっても眺めただけですが。
 次のことが何となく分かりました。
    左ドラグ---切削画像の立体の回転。
    左ダブルクリック---画像をもとに戻す。
    シフトキー+左上方ドラグ---切削図形の拡大
    シフトキー+左下方ドラグ---切削図形の縮小
    右ドラグ----------切削図形の表示位置移動

 

 画像にとって見ました。
 今日も、また、一つ勉強しました。

---手パ(手動パルスジェネレーター)切り替え器制作(3)---

 実際にプログラムのコーディングをして、PICに書き込んで
 動かしてみました。
 PICを始められた方が最初に取り組むLEDを点灯させる
 プログラムと大きな違いはありません。

 

 一応、プログラムで、チャタリング防止のルーチンをいれて
 いますが、タクトスイッチだけだと、タイミングによって影響
 を受けます。画像の右側の基盤には、シュミットトリガーを
 組み込んだタクトスイッチがセットしてあります。
 シュミットトリガーを組み込んだものは、誤動作も少なく動作
 しました。
 シュミットトリガーを組み込んだスイッチでは、4つのLEDを
 順次点滅させています。スイッチを押すたびに、隣のLED
 に移ります。
 左の基盤に組み込んであるタクトスイッチは、3つのLED
 を順次点滅させます。後半の画像ですが、チャタリング
 をうまく吸収できなかった画像になり、一瞬光っただけで
 となりに移ってしまいました。
 一応動作したプログラムをアップします。

 MPG.C

 メインでは、割込等の初期設定だけで、TIMER0の割込の
 ルーチンで、ほとんど処理してます。
 かなり冗長な部分が多いですが、一応うごいたものです。
 今回、動かすにあたって、画像には入っていませんが、
 基板のタクトスイッチで点灯させるLEDが、電源投入して
 1,2秒するとおかしな動きをします。
 シュミットトリガーを入れたスイッチの方は、問題がなく、
 接続を反対にすると、症状がうつりますので、基板の
 ハードの問題のような気がします。

---手パ(手動パルスジェネレーター)切り替え器制作(2)---

 ロータリースイッチの機能をPICに分担させるのに、ちょっと
 工夫します。
 ロータリスイッチの場合隣り合った数字の移動しかできません。
 4接点だと4までの隣同士の数字にしか移動できません。
    1←→2←→3←→4
 1→→4はできません。
 スイッチ一つをPICに分担させると、ダブルクリック等の技を
           (「長押し」も可のアドバイス受けました。)
 検出しないと逆戻りをさせることはできませんので、次のよう
 にします。
 スイッチが1回押されるとカウンターを1加算するようにします。
 一方参照テーブルは、
   1←→2←→3←→4←→3←→2
 のように、6個作っておきます。
 このテーブルにカウンターを次のように割り当てます。
   1←→2←→3←→4←→3←→2
   ↓  ↓  ↓  ↓  ↓  ↓
   1  2  3  4  5  6
 こうすることで、カウンターを加算することで、常に隣の数字
 に移動ができます。カウンターが6になったら、にもどし
 ます。
 (1ではだめでした。割込処理を抜けるとき0にします。
  if(counter==6){counter=0;}は、swtch文の後です。
  割込処理のキーチェックで必ず、1加算されます。)

 これをCのプログラムにすると、

 

 みたいな感じになります。実際には、「待ち時間を作る」、
 「スイッチが押されたフラグのSWをクリアーする」等の
 細かい指示が必要です。
 また、もう一つスイッチを使うなら、2→→1、等の逆戻り
 もできますが、一つだけの予定なので、このままいきま
 す。

---手パ(手動パルスジェネレーター)切り替え器制作(1)---

 低価格の手パ(手動パルスジェネレータ=MPG)を購入しようと
 思いましたが、手持ちのジェネレーターがあるので、切り替え器
 と組み合わせて、ケースにいれてみようと思います。
 ロータリースイッチを使おうと思いましたが、忘却防止のため、
 手持ちのPIC(16F88)を使って、切り替え器を作ります。
 軸の切り替えに一応4(X,Y、Z、4)出力。スピード?の切り替え
 に3(1倍、10倍、100倍)出力。これだけで、7ポート7線です。
 ロータリースイッチ使うと、同じ数だけポートが必要ですので、
 跳ね返りスイッチ2個をそれぞれの切り替えにわりあて、
 出力は、プログラムで処理します。
 入力COMMONを入れて、合計で
 9ポート8線ですみますので、多少余裕があります。
 それぞれの出力にLEDの表示もしますので、PICから直接
 ドライブすると出力電流がオーバーしそうなので、今回、
 トランジスタアレイ(ダーリントンドライバー)を使うことにし
 ました。TD62004APGを使います。多少大げさな選定だと
     (選定を間違ったようです。正解はTD62003でしょうか)
 思いますが、大は小を兼ねる?でやって見ます。
 細かい数値の意味の読み取りができないので、困ります
 が、まあ、トライアンドエラーで、いつもの通りやって見ます。
  PIC→TD62004APG→フォットカプラー→SS
             |
             →LED
 の構成で考えます。
 このTD62004APGは、優れもので、内部に抵抗があります
 ので、PICの出力を直接接続できるようです。

 

 7チャンネルなので、今回の目的にちょうどです。
 昨日、今回は他にもほしいものがあったので、○ツに注文
 しました。肝心のカプラー忘れました。
 それと、多芯ケーブルをどうしましょうかね。
 7芯+電源+グランド等で、9芯のものが最低でも必要です。
 ○タロウのロボットケーブルは、30Vの10芯2mで、
 2600円程度します。ケーブルが一番高いです。
 PICのプログラムは、一定時間ごとに割込をかけて、二つ
 のスイッチの判定をして、それに応じて、出力を順次切り
 替えればいいので、それほど難しくはないかなと思います。
 さて、また、PICの復習からでしょうか。

---手パ(手動パルスジェネレーター)の接続 (7)---

 あれこれ探していて、こんなページを見つけました。
 ここには、VBのスクリプトだと思いますが、
 
 の記述があります。ここに括弧書きで倍率の表示があります。
   Slect step value 1→→1.00(100倍)
   Slect step value 2→→0.1 (10倍)
   Slect step value 3→→0.01(1倍)
 でいいのでしょうか?
 「手パ(手動パルスジェネレーター)の接続 (5)」で
 取り上げた諸兄の設定には、
   #6  5   267:Select Step value 3      2-1
   #7  6   266:Select Step value 2      2-2
 の設定があります。3が1倍、2が10倍ということなので
 しょうか。
 詳細の記述があるHPがなかなか見つかりません。

---手パ(手動パルスジェネレーター)の接続 (6)---

 手動パルスジェネレイター(以下手パ)の設定について、
 将来、接続するために、いろいろ調べています。
 前回までのコラムで、ハードの接続、MACHの設定と自分
 なりにまとめてきましたが、どうしてもとけない疑問があり
 ました。
 それは、各軸を移動するにあたってのスピード?だと思い
 ますが、「X1、X10、X100」のMACH側の設定方法です。

 OEM Buttonsの一覧表を眺めても、「X1、X10、X100」の
 記載はありません。関係しそうなのが、

 

 ぐらいしか、私の英語力では、みつかりませんでした。
 やっと、ヒントの書いてあるHPをみつけました。
 このHPに、「X1、X10、X100」のための設定と思われる画像が
 ありました。

 

 この項目と関係するとなると、OEM_Buttonsの表に、関係の
 ありそうな項目があります。

 

 ちょうど、10の項目あります。
 もしかして、直接指定するのではなく、設定した表の項目を
 指定するように、するのでしょうか。
 もちょっと調べて見ようと思います。

---パルスジェネレーターによるテスト (3)---

 実際にうごかしてみました。プルアップでよかったのか疑問
 でしたが、プルアップの回路でよかったようです。
 ブレッドボードで仮組で動作させてみました。
 オシロで確認しました。DIRの信号は、パルス状にしか、
 オシロ上では確認できないので、LEDをいれてみました。

 

 CW(時計方向)では、LEDが点灯しますが、
 CCW(反時計方向)では、LEDが消灯します。
 ユニバーサル基板に組んでみます。

 

 あまり体裁はよくありませんが、実際に組み込んでみたもの
 です。
 これをステッピングモーターに接続して回してみます。

 

 ゆっくりですが、手パの動作に従って、CW、CCWと追従して
 回ります。
 それにしても、先達は、すごいです。

---パルスジェネレーターによるテスト (2)---

 ○ECさんの回路を参考に、回路図を書きました。
 ○ECさんの回路では、4013のDフリップフロップのICを使っ
 てますが、○月では、SN74HC74のICの取り扱いしかないの
 で、これを使います。
 真理表を見てみると、

 

                     
 のようにSET・RESETとPRE・CLRの条件が反対になってます。
 SN74HC74は負論理?のようです。
 ある方に紹介いただいたサイトには、
  負論理のもうひとつの意味は、前図74HC74の-Qのよう
  に、1と0の論理レベルが反対になっていることを表す場
  合です。
  この場合にはLowで1、Highで0の意味であることを表して
  います。
                            
 記述があります。この辺をよく考えないで、PRE・CLRをプル
 アップする回路にしてしまいました。
 Highで思った動作になるのですが、Highが0だと、なにも考
 えずにグランドに落とせば良かったのでしょうか。
 まあ、これも勉強です。下記のような回路で、出力をオシロで
 みてみたいと思います。

 

   (ICはHC74HC74の間違いでした。)
 どうなることやら。
 回路図では、プルアップの抵抗をいれていませんが、
 実際の配線では、プルアップ抵抗念のためにいれておき
 ました。