2019年8月31日土曜日

CO2レーザー その21(Z軸可動化Ⅷ:修復・装着・試射)

前回「その20」の最後で、
レーザー管ホルダーが夏の暑さで熱中症で曲がってるのを見つけて、
ガックリした続きであります。
これは、今年の2月に完成したばかりのホルダーのショット!
ショックはかなり大きく、
盆は特別行事で落ち着かず、ちょこちょことやってはいたのですが
記録のまとめも放置してて、半ば逃避状態であります(-_-;)
やっと立ち直ってきたのでようやく再開です^^;
記録を溜めてたので、とても長~くなりました。

まずは、「その20」で操作基板を装着した所で終わってたので
昇降ユニットを取り付けて上下させてみます。
...一応、動きました。
がしかし、上側、Limit SWに当たる手前で止まります(T_T)
写真では見え難いですが、後ちょっと3~4mm、上がらないのです。
一旦、分解して~
赤枠部が当たっているようなので、
ちょっと削ります...ダメです。
よ~く調べると
第3ミラーマウントの下側が出ていて
レンズマウント取り付け用のネジが切ってありますが、
そのネジ山に鏡筒が微妙に引っ掛かっているようです。
第1鏡筒だけを下から当ててみると
微妙にネジ山に当たって引っ掛かります。
動きモノは、色々トラブル出ますね~
右がオリジナルのレンズマウント
左の第1鏡筒、既に黒く塗っていますが
その内径、だいぶクリアランス取ってたつもりでした(-_-;)
半径で約0.5mm広げるべく
マジックで色塗りしてます。
第1鏡筒をプリントし直してもいいのですが
部屋が暑くて3Dプリンタを引っ張り出してくる気力が出ません(-_-;)
キッチンにて手作業で削ることにします。
削りました~!
今度は、引っ掛かりもなく大丈夫そうです。
その後、全体を組み立てて本体に装着して、動作チェック!
最上部まで上がるようになりました^^;
さ~て、見たくないけど
曲がったホルダー、どうやって修復しようか?
赤丸部のボルトを右側の鉄板(赤矢印部)に貫通させて固定する手もあるのですが
その鉄板が薄くて全く頼りにならないのです(T_T)
このベース板ごと頑丈にした気もするくらいです。
最初にこれ組んだ時、赤線の様に下から支えた方がいいかもなあ~
と、ちらっと頭を横切った気もしますが、後の祭り状態です(-_-;)
持ち上げるしかないかな~?
持ち上げて補強する方向で行きます。
門型のパーツ(青の)を追加することにします。
まだ暑さが続くのでジンワリ元に戻してやろうという作戦です(-_-;)
まずは、簡単そうな突貫工事で!
9mm厚のフルカタ集成材を手引鋸で切り出しました。
うまいこと装着!
...できた様に見えますが、
今日は、いつもほど気温が高くなかったのがいけないのか、
ちょっといきなりの矯正が強すぎたのか、
熱中症に続いて、入れる時に骨折(赤丸部)してしまいました(T_T)
ここでまた、落ち込むのであります_| ̄|○
これは、もはや、プリントし直すしかありません。
でも、骨折した下側のマウントをABSで作り直すにしても
補強しないと、少なからずまた曲がりそうなので
こんなボルト買ってきました!
んで、下側マウントのモデルを修正します。
ボルトを下から差し込んで補強する構造にしました。
上の方にM4のネジ山を建てます。
結局、芯棒入れるのでABSじゃなくてもいいやろ~と
PLA(Geeetech White)で0.2mmスライスで2個作りました。
M4用の横穴もなかなかキレイにできました。
FR4ベッドの食い付きもいいです。
200℃、ベッドは、1stのみ70℃、後は、50℃に下げてプリント。
中央下角の3つのテーパー付きの穴から補強ボルトが入ります。
その先端は、モデルでM4ネジにしていますが、
僅かに径が小さいのでM4タップを建てます。
ボルトが5mm程長いので、この電工ペンチでカットします。
ネジ山を潰さずにカットできます。
写真は4本ですが、全部で6本やりました。
M3は、両手で握って切れるのですが、M4ともなると
片方の柄を床に当て、他方を上から押さえ、体重かけないと切れません。
でもスパッと切れて気持ちいいです。
M4のネジ山作ってるのは、奥の10mmだけで
挿入部は、モデルでΦ4.3にしてるので、入るはずなのですが
微妙な収縮の差で穴によってスルッと入る深さが異なってます。
3本ともねじ込みました。
こっちが上側です。
下側、ボルトの頭が出っ張っているので
棒ヤスリで削ります。
2個、完成です!
これで猛暑でも曲がらないでしょう!
レーザー管を外したものの、写真上側は壁でして、
最初に置いてたコタツの上と違って、後ろ側に回り込めないので
とても作業し難い、ちょっと中腰気味になるので腰も痛くなってきます。
次は、曲がったマウントを外すのですが
忘れてた~
排気口(赤枠部)を取らないと
マウントを固定しているボルト(緑丸部)が外せないのです(T_T)
排気口は、ボルトとナットで、これまた後面からなのです。
面倒くさ~
腰もどんどん痛くなる、今日は休憩して明日かな~(-_-;)
更に、壁際なので普通の長さのドライバーが入らな~い(-_-;)
仕方ないので、机の下に広めの板を敷いて、本体を手前に引きました。
レーザー管は、スポンジマットに乗せて
赤丸部に付いていたマウントをやっと取り外しできました。
手前に引いても前屈姿勢になるのでどうしても腰が痛くなる~(T_T)
ふうふう言いながら(-_-;)
新しいマウントを取り付け完了
M4ボルトを3本も入れてたので、もうこの作業はやらなくていいでしょう!
プリントしたマウントは、ほぼ垂直に立ち上がっているはずですが
左の鉄板とに隙間があります。
ペラペラで垂直じゃないんです(T_T)
レーザー管を外した状態で、光軸調整をしていきます。
この時の日誌、「逆から光軸調整」を読み返して復習してから
レンズを外した第3ミラーの下にレーザーマーカー取付けて照射します。
白いのは、モバイルバッテリー、
レーザーマーカーは、光軸傾きの微小な選別品です。
結局、第2ミラーだけ僅かに調整して、
第2ミラー(左側)、第3ミラー(右側)と
第1ミラー(穴の向こう側)を最も近づけた状態
拡大
黒点は、遠ざけた状態で付けてます。
最も遠ざけた状態。
いいんじゃないでしょうか^^;
左は、第1ミラー。
レーザー発射口(陰極)付近にアルミのLアングルを置いて
レーザーマーカーにマジックで黒点を付けて
そのアルミアングルをレーザー管の陽極側付近(右奥)に持っていき
発射口(陰極)付近と陽極部付近でレーザーマーカーのドット位置が
ズレてないことを確認します。
第1ミラーも再調整しなくていいようです。
これでレーザー管を筐体に平行に取り付ければ、
レーザー軸とレーザーマーカー軸が合うハズです。
逆からの光軸調整が終わったので
最初に作った木製の補強板も入れて、レーザー管を取り付けます。
奥が発射口(陰極)
上方から
左が発射口(陰極)
レーザーマーカーが、レーザー発射口のほぼ中央になるように
発射口側のホルダーを上下させて調整します。
反対側のホルダーも筐体から同じ高さに調整します。
横方向は、前回調整位置からズレてないハズなので大丈夫でしょう。
第2ミラーのすぐ横から、第1ミラーに写った発射口を撮影します。
発射口のほぼ中央にレーザーマーカーが当たってそうです。
これで光軸調整完了です。
暑いは、腰は痛いはで、随分時間がかかりました。

夏の間は、水道からは、給湯器の切り忘れかと思う程のお湯が出るし
レーザーの冷却水は、完全にお湯になってたので抜いてたのです(-_-;)
やっとというか、急に秋が来て涼しくなったきて、
水道からも水が出てくるようになってきた。
で、冷却水が腐らないように
TMさんに銅板を入れるといいってのを教えていただきましたm(_ _)m
ホームセンターで見つけた、この銅釘を入れることにします。
全部入れときます!
ちょっと少なかったかな?
今回は、1発でドンピシャにはならず、再度のミラー調整は、不要ですが
レーザー管の位置を少し調整して、第3ミラーに貼ったテープに照射!
濃いドットが近づけた時、薄いのが遠ざけた時、まあよさそうです。
出力40%です。
昇降ユニットを取り付けます。
左右(X軸方向)は、さほど動きませんが
前後(Y軸方向)の動き(クリアランス)が大きすぎます。
元のマウントの穴が大きいのです。
どうやってユニットのノズルの位置決めしようか?
まずは、一番奥(写真で上方向)にピッタリでやってみるしかなさそう。
昇降ユニットのレンズ部分にテープを張って装着し
出力40%で照射!
取り外して、レンズ部のテープを確認します。
ほぼ中央なので大丈夫でしょう!
Y軸方向は、ドンピシャ真ん中です。
またレンズを付けずに昇降ユニットを装着して
今度は、ノズルの先端にテープを張って照射!
ノズルの先っぽ、これで、
エアを細い穴から強く出したかったのですが
それにしても、ちょっと小さくしすぎました(-_-;)
まあ許せるレベルでしょう。
ドンピシャに合わせる気力がでない~(-_-;)
いよいよレンズ装着です!
この前作ったアルミのリングネジにレンズを嵌め込んでいるので
絶対に素手で触らないようにピンセットで掴んで装着します。
ピンセットで回せるように凹みを付けといて良かった^^;
中のレンズマウントは、レンズが熱くなっても多少は耐えれるように
アルミのフレキシブルカプラーで作ったこれが入っています。
これだけ作るのにかなりの時間を費やしてます。
あれこれここが、製作記録です。
装着完了!
いい感じです。
キャリッジ(第3ミラー部)に取り付けます。
出力30%でレーザー照射!
写真撮り忘れ(-_-;)たけど、良さそうです!
で、ようやく昇降ユニットの上下テストをしようとしたら
また、もうちょっとの所で最上部に届かず
Limit SWに当たりません。
仕方ないので、Limit SWを少し下げることにします。
既にLimit SWの位置が最低までいってるので
基板ごとちょっと斜めにして、テスターを見ながら調整しました。
まあ、予定より2~3mm程度、上がらなくなっただけなので
そこまで分厚い部材を置くわけでもないし、問題ないでしょう。
エアブローのホースも付けます。
シリコンチューブなので十分くっつかないと思うけど
一応、ノズル部の穴にボンドつけときます。
ノズルが上下するので、ホースを後ろ側から回すようにして
横からは、こんな感じ。
螺旋状に配管したので
これでノズルが伸び縮みしてもエアホースが追従してくれるでしょう。
左端が第2ミラー
昇降テストを動画で!
下げてLimit、上げてLimit、少し下げてHOMINGしています。
設計では、ノズルの下の黒点が、焦点位置、ノズル先端から14mmです。
ノズルマウントアルミ板の下からステージの最下部まで約100mm
この位置から約50mm下げれるようになってます。
ステージ最下部にベニア板を置いて
指の厚みが、約15mmなので、ノズル先端が指に当たるまで下ろします。
準備OK!
出力30%にセットして
TESTボタンで一瞬照射!
焦点が合ってるようで、ノズル左側に煙が立ってます。
これは、照射の瞬間、ノズルの真下に小さな赤い点が見えます。
40%では、レンズなしでもこれが出ますが、
30%出力では、レンズで集光してないと、出ません。
焦点もいいとに合っているということです^^;
こりゃ便利になりそうだ!
試射は、これだけでは面白くないので
CO2レーザー その10(初カット)」を読み返して
久々にInkscape 0.92.2を立ち上げます。
すっかり忘れています(-_-;)
20mmの縦ラインを14本、約5mm間隔で引きました。
ソフト「M40 Whisperer」で、Cutは、赤にすることになっています。
この時点は、ページサイズが、デフォルトの A4です。
[Resize Page to Selection]して
ページサイズの周辺を除去して図形に合わせます。
SVG形式(Vector)で保存します。
この時にInstallした、K40 Whispererを起動して開きます。
左上の原点基準に赤のLINE 10本が出ます。
K40 Whispererでは、
:Raster Engrave(面加工、ディザ階調)
:Vector Engrave
:Vector Cut
のルールがあり、色分けしていれば、同一ファイルで加工可能なのです。
レーザーパワーは、本体のコンソールで設定して固定なので、
夫々スピードだけを指定できるようになっています。
CO2 Laser Cutter本体とPCをUSBケーブルで繋いで
[Reset USB]します。
[Initialize Laser Cutter]するとHomingします。
X:20、Y:-10(Y軸は、手前なのでマイナスです)に移動して
ダンボールを焦がして線の太さを見たいだけなので
300mm/sで
出力30%でやってみます。
準備完了!
K40 Whispererの[Vector Cut]ボタンで開始します。
1本毎に手動でUPボタン短押して0.5mmずつ上げてるだけですが、
動画で!
いつの日かGRBLにしてGcodeで動かせるようにしたい。
順番は、K40 Whispererが勝手に決めてますが、最初の順番が変です。
エア出すの忘れてたので、時々、口で煙を吹き飛ばしてま~す(-_-;)
終わりました!
拡大
焦点深度が深いので
Laser Diodeの時みたいに差は見られませんが、
左より右の方が、僅かに線が細くなっているかと。
次は、ベニヤ板で20mmの円カットしてみます。
エアブローノズルの構造変えたので消火効果を見たいのです。
初カットの時と同じ
出力 50%にセット
80 mm/sにして
[Vector Cut]ボタンで開始します。
全景。
左側に冷却水の水槽、
ペットボトルは、エアブローのレギュレータです。
カバー開けてて反射してくると危険なので、奮発して買ったゴーグルします。
CO2レーザーの10.6μm専用OD+7でUS$ 19.85(44%OFF)

出力50%、  80mm/min
ん?初カットの時は、この設定で切れたのに、全然切れてない?
やけに焦げ線が太いし、焦点がズレてるのか?
動画をよく見ると
あちゃ~!振動でノズルがジワジワ下がっています(T_T)
消火性能は、よさそうで、しっかり消火されているようです。
それにしても、XY軸が1/4 Microstep駆動なので、すごい振動と音。
古そうなモータードライバのせいもあるのかな~?
仕方ない、ステッピングモーターの発熱が嫌だけど
モーター電流ONのままで保持するしかないですね~
リードスクリューがM3ネジだったら大丈夫だったのでしょうが...

ATTINY85のスケッチ、
CO2レーザー その19(Z軸可動化Ⅵ:Limit SW)」の最終版
「CO2_Z-Axis_Move_K.ino」を修正します。
HOMING以外の
***
digitalWrite(nENABLE, HIGH); // ENABLEをDISABLE、MORTOR OFF
***
をコメントアウトするだけです。
これで、
・起動時:MORTOR OFF
・HOMING後:MOTOR OFF
・上下ボタン押下:MORTOR ONを保持
長いですが、一応、記録で残しておきます。
ポカミスが見つかったので1箇所修正(★2)しました(-_-;)
詳しくは、こちら
***CO2_Z-Axis_Move_L***
//***************************************************************************
// CO2 Laser Cutter Z-Axis Mover
// DigiSpark (ATTINY85)
// 抵抗分割して3-KEYをADCで検出
// PB1(Step):470KΩ+Diode(Pluse 立下りなまり対策)
// PB4(LimitSW):4.7KΩ程度のPullUp必須(内部Pull-Up不安定対策)
// Delayなしでは、1 PUSHで1mm以上移動するので
// 0.1sec以上の同一KEY押下でSTEP信号を出し、1STEP毎に0.1secのDelayを入れる。
// 0.3sec以上の同一KEY押下でNo Delayして連続移動にする。
// Limit SW 0.5mm(13step)戻って2sec 停止
// Homing 上昇してLimit SW CLOSEで停止、Limit SW OPENまで下がる、1sec停止
// 短押し 1step ⇒ 13step(0.4875mm≒0.5mm)に変更
// ★1:振動で下がるので、Mortor電流をOFFしないことにする
// ★1:HOMING後のみMORTOR OFF、上下調整後は、ONのままにする
//
// 注意 see https://digistump.com/wiki/digispark/quickref
// Digital 2 is analog (ADC channel) 1 = pin7 今回は、これ
// Digital 3 is analog (ADC channel) 3 = pin2
// Digital 4 is analog (ADC channel) 2 = pin3
// Digital 5 is analog (ADC channel) 0 = pin5
//***************************************************************************

#define Direction 0 // PB0 for Direction HIGH: UP、LOW: DOWN 
#define Step 1 // PB1 for Step Pluse
//#define KEY_Detect 2 // これは間違い!! ADC ch2 = PB4 = pin3
//#define KEY_Detect 1 // ADC ch1 = PB2 = pin7・・・2020.4.4修正★2
#define KEY_Detect A1 // ADC ch1 = PB2 = pin7・・・2020.4.4修正★2
// ★2 2020.4.4 Analog ch指定ミス 「1」⇒「A1」
#define nENABLE 3 // PB3 for nENABLE 
#define LimitSW 4 // PB4 for Limit-SW(Upper & Lower)
#define nRESET 5 // PB5 for nRESET

int DontMoveCount = 0; // 非動作期間カウント
int MaxDontMoveCount = 500; // これで約0.5秒
short ContenuousMode = 0; // 0:シングル動作、1:連続動作(未使用)
#define None_Key 4
#define UP_Key 1
#define DOWN_Key 2
#define HOME_Key 3
short KeyPosition = None_Key; //  今押したKEY 4:None Key、1:UP、2:DOWN、3:Home
short last_KeyPosition = None_Key; // 前押したKEY 4:None Key、1:UP、2:DOWN、3:Home
int SameKeyCount = 0; // 同一KEY押下時間カウント
short WaitCount = 0;   // Single Step移動時の無効化時間カウント
short WaitCountIncrease = 10; // 1LOOPの時間が約10msecになるようにする

void setup() {
  // initialize
  pinMode(Direction, OUTPUT);       // DIRECTION
  pinMode(Step, OUTPUT);       // STEP
  pinMode(KEY_Detect, INPUT); // ADC ch1(PB2)でKEY検出
  pinMode(nENABLE, OUTPUT); // nENABLE
  pinMode(LimitSW, INPUT); // LimitSW ("_PULLUP"は効かない)
  digitalWrite(LimitSW, HIGH); // 一応これで内蔵PullUpをActiveにする
  pinMode(nRESET, INPUT);        // Reset(固定だが覚書)
  // 初期値設定
  digitalWrite(Direction, HIGH); // UP
  digitalWrite(Step, LOW);
  digitalWrite(nENABLE, HIGH);  // Motor Disable
  analogReference(DEFAULT);  // Reference = VCC(5V) (念の為)
}


void loop() {
  KeyDetect(); // ADCのKEY状態をScan
  MoveProcess(); // KEY押下時間判定して移動処理
}

//**********************************************
// 抵抗分割のKEYは、ADCで検出(1pinキー回路)
// UP  : 0.0V(0~1.0V)
// DOWN: 1.76V±20% (1.4~2.2V)
// HOME: 3.0V±20% (2.4~3.6V) ・・・ 最上部に移動
// INPUT: 5V ・・・ ADC: 1024 なので
// UP  : 0 to 205
// DOWN: 286 to 451
// HOME: 491 to 738
//**********************************************

void KeyDetect() {
   // 0 以上 ~ 205以下:UP
  if ( (0 <= analogRead(KEY_Detect)) && (analogRead(KEY_Detect) <= 205)) {
    KeyPosition = UP_Key;
  }
  
  // 286 以上 ~ 451以下:DOWN
  if ( (286 <= analogRead(KEY_Detect)) && (analogRead(KEY_Detect) <= 451)) {
    KeyPosition = DOWN_Key;
  }

  // 491 以上 ~ 738以下:HOME ・・・ Limit SW 直前まで上がる
  if ( (491 <= analogRead(KEY_Detect)) && (analogRead(KEY_Detect) <= 738)) {
    KeyPosition = HOME_Key;
  }

   // KEYを押してない時は、5V(VCC)になる
   // 一定カウント超えたらnENABLEをHIGHにしてモーター電流停止
   // SW ALL OFF 739~1023
  if ((739 <= analogRead(KEY_Detect)) && (analogRead(KEY_Detect) <= 1023)) {
    KeyPosition = None_Key;
  }
}


void MoveProcess(){
    if (last_KeyPosition == KeyPosition) { // 前KEYと同一KEY押下の場合
     SameKeyCount = SameKeyCount + WaitCountIncrease; // ① 1loop分増加
     // 同一Positionに最低閾値~300msec定位していればシングルstep移動命令
     // 同一KEY押下が約100~300msecであれば、シングルstep動作
       if ( 1000 <= SameKeyCount && SameKeyCount < 3000 ) {
          if ( WaitCount == 0 ) { // KEY変化の最初
            ContenuousMode = 0;  // シングル移動モード
            MoveControl();  // 
            WaitCount = WaitCount + WaitCountIncrease;  // 1loop分増加
          } else { // 2回めに同一KEY検出したら290 Wait
          // 一定期間(300msec弱)不感時間を設ける為のカウンタ
            WaitCount = WaitCount + WaitCountIncrease;  // 1loop分増加
              if( WaitCount > 2900) {
                 WaitCount = 0;
              }
          }
          // KEY押下時間SameCountが100未満の場合、①のカウントUPのみ
        }
      // 同一Positionに約300msec以上定位していれば連続移動命令
        if (SameKeyCount >= 3000) {
          // Step Pluseを出し続ける連続モード
          ContenuousMode = 1; // 連続移動モード
          MoveControl(); // delayなしでMoveする
        }
     } else { // 前KEYと異なるKEY押下の場合
    // 初めてのKeyScan時の初期化処理
    // ノイズも含め全ての検出は、最初にここを通る
       last_KeyPosition = KeyPosition;
       SameKeyCount = 0;
       WaitCount = 0;
    }
}


void MoveControl() {
    switch ( KeyPosition ) {  // KEYに応じて処理
    case 1:  // UP
      DontMoveCount = 0;
      // UP処理
      // ここにLimit SW判定
         if ( digitalRead(LimitSW) == LOW ) {
           digitalWrite(Direction, LOW); // DOWN方向
             for (short i=0; i<=13; i++){
               SendStepPluse(); // 13step ≒0.5mm後退
             }
// ★1      digitalWrite(nENABLE, HIGH); // ENABLEをDISABLE、MORTOR OFF
            delay(2000); // 2sec停止
          }
      digitalWrite(nENABLE, LOW); // ENABLEをACTIVEする
      digitalWrite(Direction, HIGH);
      SendStepPluse();
    break;
    case 2:  // DOWN
      DontMoveCount = 0;
      // DOWN処理
      // ここにLimit SW判定
         if ( digitalRead(LimitSW) == LOW ) {
           digitalWrite(Direction, HIGH); // UP方向
             for (short i=0; i<=13; i++){
               SendStepPluse(); // 13step ≒0.5mm後退
             }
// ★1     digitalWrite(nENABLE, HIGH); // ENABLEをDISABLE、MORTOR OFF
           delay(2000); // 2sec停止
         }
      digitalWrite(nENABLE, LOW); // ENABLEをACTIVEする
      digitalWrite(Direction, LOW);
      SendStepPluse();
    break;
    case 3:  // HOME
      // HOMING処理・・・上側Limit SWまでUP
      DontMoveCount = 0;
      digitalWrite(nENABLE, LOW); // ENABLEをACTIVEする
      digitalWrite(Direction, HIGH);
      while (digitalRead(LimitSW) == HIGH) { // Limit SWに当たるまで
         SendStepPluse();
      }
      // Limit SWが働かないちょっと下まで下げる必要がある
      // DOWNにしてLimitSW:LOWで止める
      // Limit SW ONしたらOFFまで戻す
      if (digitalRead(LimitSW) == LOW) {
          digitalWrite(Direction, LOW); // DIRECTION DOWNへ反転
      // Limit SW OFFまで戻す
          do { // 最低1stepは戻したいのでdo
            SendStepPluse();
          } while (digitalRead(LimitSW) == LOW);
      }
      digitalWrite(nENABLE, HIGH); // ENABLEをDISABLE、MORTOR OFF
      // HOMEの時だけMOTOR OFFを残す
      delay(1000); // HOMEの後は、1sec停止
    break;
    case 4:  // None KEY(KEY押下なし)
      // nENABLEをDISABLEしてMOTOR OFF処理 ⇒★1やめ
      // 非動作期間カウントUP処理
      DontMoveCount = ++DontMoveCount;
      if ( DontMoveCount >= MaxDontMoveCount ) {
// ★1  digitalWrite(nENABLE, HIGH); // ENABLEをDISABLEする
        DontMoveCount = 0; // カウントリセット
      }
    break;
  }
}


//**********************************************
// STEP信号を1Step Pluse送出 F500固定
// 20step/回転、3mmリード=ピッチ、1/4 Microstepなので
// 20 ÷ 1/4 ÷ 3 = 26.667step/mm
// F500 = 500mm/min
// 26.667 x 500 = 13333step/min(1分間)
// 1秒間のSTEP数が、A4988のStepパルス周期になるので
// 13333 ÷ 60 = 222.22step/sec = 222.22Hz = 4.5 msec(HIGH/LOWの1周期)
// 4.5msec ÷ 2 = 2250μsec
// 1step=1/26.667mm=0.0375mm
//**********************************************
void SendStepPluse() {
  if (ContenuousMode == 0) {
    // シングル移動モードは、13step(≒0.5mm)
    // 移動後、 MoveProcess()で300msec弱、操作無効にしている
     for (short i=0; i<=13; i++){
       digitalWrite(1, HIGH);
       delayMicroseconds(2250);
       digitalWrite(1, LOW);
       delayMicroseconds(2250);
     }
  }
  else { // 連続移動モード
     // MoveProcess()でDelayしない、KEY押下中、連続してPluse送出
     digitalWrite(1, HIGH);
     delayMicroseconds(2250);
     digitalWrite(1, LOW);
     delayMicroseconds(2250);    
  }
}
******

Arduino UNOを書込機にして
この時の手順でATTINY85に書き込みます。
ステッピングモーター ONの停止状態でしばし放置してると
やっぱしモーターが、ちと熱いです。
上昇できるギリギリまで電流を下げます。
こんな所にボードを追加してるので、ちとやり難い(-_-;)
あまり下げれなかったけど、
指で触れる程なので50℃未満でしょう、よしとしておきます。
今日は、なぜか、50% 80mm/sでは、切れません(T_T)
60% 80mm/sにします。
レーザー管の陰極側に付けてる電流計の高圧電流は、7.5mAでした。
効率を10%とすると
10KV x 7.5mA x 10% = 7.5W
以前、高圧の解析した時は、50%で5mAだったのに
今は、40%で4mA、50%で6mAと増えてます。
前は、同じベニヤ板、50%で5mAで貫通してたので
入力電力に対してのレーザー発振効率が落ちてるのかな~?
焦点は、ほぼ合ってると思うのですが
60%でも貫通しませんでした(T_T)
所で、初カットのエアブローなし、ベニヤ板カット動画の1コマですが、
レンズ直撃しそうなくらい炎が上がる時もありました。
最初に作ったエアブローでは、
まだ、炎が、完全に消火できてませんでした。
今回のエアブロー、ホース断面積に対して出口面積を小さくしたので、
最後まで炎は出ず、消火性能バッチシのようです^^;
このベニア板、Laser Diodeなど沢山のテストしまくって傷だらけです。
一応、最適と思われる部材との距離を記録しておきます。
ノズル先端から17mmってとこです。
高さを簡単に調整できる治具も作らねば!
やっぱし、カットまでいきたいですね~
Feed 80mm/sのまま、出力70%だっ!
やっと抜けました。
動画で!
最後の方で煙がハニカムパネルの穴から出てるのが貫通の証です。
手間の小円は、Diode Laserで遊んだ傷跡(-_-;)
レーザー照射した側 
裏側。
2月にやった50% 80mm/sとほぼ同じ、首の皮一枚状態です。
ということは、パワーが、30%程低下していることになります。
軽くパリッと抜けました。
しかし、出力が大幅に低下していますね~(T_T)
初カットの時は、2月初旬だったので、やっぱ、温度かなあ~
終わってから温度を測ってみると
ステージ内は、カバーを外してて、28℃ちょっと
冷却水には、氷を5~6個入れてたのですが、
足らなかったようで、
ほぼ同じ、28.5℃ (´-﹏-`;)
こりゃ~高すぎですね~
レーザー管が劣化してるかも、気をつけないと逝っちゃいますね~
今日も雨、この部屋で洗濯物干して乾燥機つけてるんです。
部屋が涼しくなるまで待ちきれず、やったのでした(-_-;)
そういえば、思い出した!
その03」の時に見つけたCO2レーザー管の特性があるサイトのここ
レーザー管の扱い方が載ってて

「2.」に
「冷却水の温度は約18〜15℃。 30℃を超えるとレーザパワーが徐々に低下します。」
が載っています。
半年も経ってるので、すっかり忘れてました(-_-;)

だいたい、ソーメン食べる時ですら、お椀に氷を数個入れるのに
10リットル近くあるのに5~6個じゃ、
ちょっと考えれば、足りるはずないのが分からないといかんですね~(-_-;)
夏は、氷をかなり入れないといけないです。

冷却水の冷却システムがいりそうだなあ~
できる前に冬になるだろうなあ(-_-;)
冬は冬でちょっと温めないといけなさそうだしなあ~

2 件のコメント:

yoch さんのコメント...

フォーカス駆動かっこいいな〜。
XY軸を1/16ステップなどにすればZ軸をホールドしなくて済むかもしれないですね。
冷却はPCの水冷システムで銅イオン水利用しています。水温30度で、3mmのアクリルなら50%出力のF400で抜けますです。その代わりレーザー管をアイスノンで冷やしてます。

マーティーの工房日誌 さんのコメント...

yochさん、ずっと見ていただきありがとうございます。
リードスクリューをM3に換えたい所ですが、
気力が残っていません(-_-;)
銅イオン水ってのが売ってるんですね~!
レーザー管の温度がわかりませんが、50%でF400ですか!
黒のアクリルだとしてもかなり速いですね~
家のレーザー管、だいぶ使い込まれて劣化してるのかもです(T_T)
レーザー管、結構な値段だしな~