2012年12月30日日曜日

発振管のイメージ


CO2レーザの発振管はこんな基本デザインで行こうかと考えております。



ワンタッチコネクタに10mmファイのパイレックスガラス管と銅管をジョイントします。銅管はそれぞれ100%反射ミラーとハーフミラーを取り付け、さらに両端の電極へのコンタクトを兼ねます。
異径チーズの3つ目のジョイント(6mmΦ)は、チューブを介して真空引きとレーザガス導入に使います。で、ガラス管部分をさらに大径のガラス管かアクリル管に入れて水冷できるようにします。



ワンタッチコネクタは正圧負圧両方でシールができますので便利です。
課題はオプティカルキャビティ(光共振器)を構成するためのミラーの調整機構ですね。もちろんお金をかければ何とでもなるのですが、そこは知恵と工夫で安く仕上げたいと思います。
春先までには発振にこぎつけたいところです。

高電圧部品入手


 自作CO2レーザの計画を話したところ、会社の同好の士がテレビと部品を提供してくださいました。ありがたやありがたや。
ということで、これです。

早速分解。目的はフライバックトランスです。


これ。真ん中の黒い塊ね。


その他の基板も含めておいしくいただきました。
たくさん有用な部品を回収できそうです。


こちらが頂き物の部品。
耐圧が高かったり、大電流だったりします。セメント抵抗は「好きでしょ」ということでつけてくださいました。 は い 、 好 き で す 。

  1.  ファーストリカバリダイオード MA655
    データシートはこちら。順方向サージ電流150Aとか。
  2. パワーMOSFET 2SK1034
    データシートはこのあたり。かわいらしいほうのMOSFET。
  3. パワーMOSFET 2SK1531
    データシートはこちら。500V Pulse60A という頼もしい石です。



電圧発生回路については、Google先生に聞きましょう。危ない世界なのであまり詳細な説明はいたしません。


買ったもの


CO2レーザ作成に向けて準備開始。

レーザ管のパーツとして使用予定の銅パイプ。10mmΦ 1000mm品しかなかったので、ためしに50mmを二本切り出し。
東急ハンズにて 1000mm品が 660円。


シリコンOリング。
東急ハンズにて 2個で 140円。なんに使うかは後日解説。
下はついでに買ったM3ナット用のボックスドライバ。


異径を含むワンタッチ配管用チーズ。
モノタロウにて。昨日頼んで今日来た。年末なのにありがたいことです。
異径(10&6mmΦ)が @397円。ただのチーズ(6mmΦ)が @200円。


流量制限バルブ、on/offバルブ、1/4-6mmワンタッチ変換コネクタ。これもモノタロウ。
順に815円、@740円、143円。


ワンタッチジョイント用ポリウレタンチューブ。モノタロウ。
10mで673円とという激安。


真空ポンプ。モノタロウ。
どこのご家庭にも1台はある真空ポンプですが、我が家はちょっと贅沢に2台目を購入。もう一台は仕様上0.05MPくらいまでしか引けないので。
レーザ管作製には必須のものですね。 TwoStageで 15,010円とこれまた激安。


新プロジェクト: 自作CO2レーザー


CNCステージを作る過程で個人でも使えるような小型のレーザ加工機のことを知りました。
たとえばこれとか。
さらに、この手のものでも中華製がたくさん出回っていることがわかり強烈に欲しくなりました。このあたり。だいたい 送料込み$800くらいで売られているようです。
参考:http://www.youtube.com/watch?v=nq_Qkxyallo

これを買おうかともちょっと思ったのですが、ひとつ問題が。ガタイがでかいのです。とても私の部屋に置けるようなものではありません。(もちろん資金の問題もありますが....)

ということで、もう少し小さいものを作ることにしました。
レーザー加工機は、簡単に言えばレーザとCNCステージが組み合わさってるだけです。CNCステージは作っちゃいましたので、あとはレーザーがあればよいと。

ということでレーザを探しますと、レーザ管も単体で売られています。しかしながら、これまた結構な値段がします。電源も要ります。かき集めていると4-5万円になってしまいそうです。
結論、これはフルスクラッチだなと。
レーザの原理はまことに単純ですので何とかなるだろうと楽観して着手することに決定。

で、何のレーザーを作るかを検討しました。IRでそこそこのパワーがあるレーザとして...

  1. Nd:YAG--寿命や安定性は魅力だけどフラッシュランプやロッドを自作することがほぼ不可能。部品も高価。
  2. LDスタック--メンテフリーで一番簡単だけど、買ってつけるだけなので面白くない。お金だけの問題。自作とは言えないし。
  3. CO2--そこそこ簡単にできそうで比較的大出力、高効率。真空、高電圧、放電、レーザと心を揺さぶる単語が並ぶ。
ということでCO2レーザに決定。

情報と部品集めに入りました。実はもうそこそこ集まっているので順次紹介します。

買ったもの


買い物ばかりしております。インプットだけでアウトプット無し。

三端子レギュレータ
5Vと12V。特に理由はないのですが、安かったので。
カホパーツセンターで各100円。

Y端子とカシメ工具。
前から欲しかったのですが、カシメ工具のでかさがダサく感じてなんとなく先送りしていたもの。
大電流とか高電圧とか、ちゃんとしておいたほうが良い工作が増えてきたので(笑


フラックス
DealExtremeで。$2.0。


今日のスペシャル。トランス。
100,120,200,240Vの各電圧を、100,120,200,240にそれぞれ変換するという優れもの。10A品。
各電圧を相互に一度に出せるというところがすばらしいと思います。しかも中古1,980円と激安。発見次第飛びつきました。新品は2-3万円で売られています。
しかし重い!映画(エヴァQ)を見に行く前に何気なく寄ったPC-NET博多店で発見。あまりに重たくて持ちまわる気がしなかったのでコインロッカーを借りました。


リニアシャフト 10mmΦx 300mm
モノタロウで @561円と激安。CNCステージの二号機に向けて。


カウンタ(不明)
大小2こずつ。マルツ電波博多店にて。勉強用に。


今日のスペシャル2 温調半田ごて HAKKO936。
Aliexpressにて $50 と異常な安さ。安倍円安前だったので4,000円くらい。936は生産中止になっているので新品があるはずないのですが、中国製は多数売られています。海外用は生産が続いているのか、はたまた金型を流用したパチものかは不明。
モノは110V用で、コンセント形状が違うのですが、まあ何とかなるだろうと。どうせこて部分は24V駆動だし。
その後プラグケーブルを取り替えて無事に動作しました。



THKスライドパック
ヤフオクにて 1,000円だったかな。CNCステージの改良に向けた勉強用に。
結論だけ書くと使えません。スライド機構としては十分に高品質なのですが、CNCステージ用としてはガタが大きくて使えません。


リニアベアリングとシャフトホルダたくさん
上のリニアシャフトと組み合わせてCNC二号機に使用予定。
Aliexpressにて。 リニアベアリングが @$3.25、シャフトホルダが @$3.5。激安でございます。
リニアガイドに比べて遊びが大きいですが、十分に使えるレベル。点接触なのであまり大きな力はかけられません。









2012年12月15日土曜日

レベル調整可能なCNC加工テーブル


剛性のネックとなっていたX軸の強化はとりあえず行いました。
早速テストと行きたい所ですが、その前に加工台を作ることにします。加工台はX軸Y軸の動きと平行な面を作るための調整機構を作り込んだテーブルです。もちろんこれも格安で作ります。

材料は100円ショップで買ったMDF板と何かの木のブロック、プリンタを分解したときに出てきた何かのバネ、ナフコで買ったネジ数百円分といったところ。


まず木のブロックに下穴をあけM4の鬼目ナットを打ち込みます。


ベースの上にM4の長めのネジを立て、五円玉をワッシャにしてバネを挟み込みます。
お金を使うのはあまり良いことではありませんが、貨幣を加工しているわけではありませんので法律違反ではないはず ^^;)


バネ部分はこんな感じ。


先ほどの鬼目ナットを打ち込んだ板をステージとなる板の裏面に接着します。ステージ板には鬼目ナットと会う位置に貫通穴をあけておきます。


接着剤が固まったらベース板の上に載せて蝶ネジで固定。これで蝶ネジを締め込んだところがバネを押し込んで沈みます。バネのポイントは3箇所ありますので、これらの締め込みを調整することであらゆる傾きを補正可能です。.....と書くのは簡単ですが、調整は結構難しいかと。

鬼目ナットはステージ上に材を固定する際のアンカーをねじ込むために使います。


ではいよいよ回路基板を削ってみようと思います。


CNCステージのX軸強化


反省を受け、CNCステージの改造に着手しました。
まずは現状の把握。

こんな感じ。よわよわです。

まあ、何も考えずにY軸と同じ寸法でシャフト周りを作ったために、シャフトの間隔が絶対的に狭く、保持する機械部分の背が相対的に高くなってまったく持って頭の悪い構造となってしまっております。
ということで、まずはこの軸の強化を実行。

現状はこんな

横の部分に柱を立てて、


シャフトを渡します。


そこにスキャナから取り出したメタルブッシュを打ち込んだヒノキの板を通してY軸の移動部分に固定。


こんな感じにして上部の動きを抑える構造としました。


この改造で、手で押さえた時のたわみは非常に小さなものになりました。まだゼロというわけにはいきませんが、改造前よりはぜんぜんましです。
これでかなり動作は改善されるはずです。期待は膨らみますが、テストの前にもうひとつの改造というか追加を行います。それは加工台のレベル調整です。

CNCステージを作っての反省


CNCステージを作ってみてわかったことはいろいろありますが、痛感したのは剛性の大切さです。
考えてみれば当たり前なのですが、加工の際にはステージにそれなりの力がかかるということです。
たとえば木の板に電動ドリルで穴をあけるときのことを考えるとわかりやすいかな。穴をあけるときは、ドリルの刃を材に対してそっと触れさせるのではなく、ぐっと押し付けていますよね。そして場合によっては体重をかけて押し付けたりもします。こんな力がステージにもかかるということです。
これは押し付けの力を発生させるステッピングモータのトルクにも関係し、押し付けの力によって変形の応力を受けるステージの構造にも関係します。
今回作ったCNCステージはM6の送りねじを使っていますので、ステッピングモータが少々貧弱でもそれなりの送り強さを発揮してくれているようです。が、ステージの構造体の強度はそれに見合っておらず、刃物を材に押し付けたときに変形が生じています。
刃物の押し付けが弱いケース、たとえばダイヤモンド電着やすりのようなグラインダ系の刃物を持たせてプラスチックの表面を傷つけていくケースでは、それなりの精度で加工ができています。
また、ペンで絵を描くようなときも押し付けはほとんど発生しませんので、それなりのきれいなものができています。

動画はグラインダの例

ところが、木材の切削のようにある程度の押し付けが生じる場合、刃物を材に押し付けたまま前後左右に動かすとステージがたわんで思うような加工ができていないのです。


音が均一ではないのがお分かりいただけると思います。
刃物が材に押し付けられるとき、ある程度まではステージがしなって受けてしまうので材への押し付けが徐々にしか強くなりません。そしてしなりによる応力が材を削り込む力を上回ると急に材が削られて刃物が進みます。するとしなりが小さくなりますのでまたステージが応力を受けてしなって行き....というのを繰り替えすわけです。結果として刃物は尺取虫のように進むことになり、切り口はきれいになりません。また、当然これらのしなりはXYZいずれの方向にもありますので刃物の進路も直線になりません。結果として硬いものの加工はできないということになります。

CNCフライスを作ることを思い立った当初の目的は、電子回路基板の切削加工でしたので、まずまずこれでも大丈夫なのかもしれませんが、あまりに余裕がなく、安定性に不安があります。
ということで、これらの反省を元に改善が必要だという結論に至りました。

NT福岡3


ニコニコ技術部勉強会の記事が参加された方によって投稿されております。
みら太のCNCも写真に撮っていただいております。ありがたや。

ということでリンク。
オレ工房さん みら太の対面での展示でした。お疲れ様でした。

写真がいっぱい

次回も何か作って参加したいです。

買ったもの


仕事が急に忙しくなったものでしばらくお休みしておりましたが、その間も淡々と買い物は続く(笑
ということでまとめてアップ

リニアガイド
ヤフオクで何種類か安いものをゲット。どれも一つ 1,000 円で落札できました。
CNCを一台動かしてみていろいろなことがわかったので、今後の改良のために勉強することに。


分解してみていろいろとわかりました。やはりがたつきのないステージを作ろうと思ったらこの手のアイテムを使うのが速くておいしいようです。安くはないけど。


ドレメルの多機能ガス半田ごて。高山質店で 3,000 円で購入。
まだ使ってないけど、なにやら便利そうな感じ。


RYOBI のハンディリューター。アマゾンで 7,000 円くらいだったかな。
今まで使っていたリューターを分解してCNCに使ってしまったもので ^^;)


ヤフオクで落札したエアリューター。1,600 円くらい。36,000 rpmまで回るとか。
使ってみると歯医者さんに行った様な気分になれます。ジェット機のような音。
CNCに使ってみましたが、良い感じです。あとで動画をうpします。


太いホットメルト。 DealExtreme で $12 くらいだった。
細いのは持っていたんですが、いまいち安っぽかったので。...これも高級品というわけではありませんが。


クラフトのこぎり。
やっとMDFをまっすぐ切れるようになりました。コメリで 1,200 円くらいだったかな。


ギアプーラー。Aliexpressで $18 くらい。ステッピングモータからギアを引っこ抜くために購入。
まだ使ってない.....


5Pコネクタたくさん。
いや、ちゃんとしたコネクタが使ってみたくて。これもAliexpressで。$15 くらいだったかな。
店の兄ちゃんから「ピン入れ忘れたので追っかけで送ったよ」メールが来てた。もう10日くらい待つけどまだ届いてない。


コネクタ用のカシメペンチ。カホパーツセンターで 4,980 円。PH, XH のどちらにも対応しています。


静音コンプレッサ。アマゾンで 22,000 円。コンプレッサはこれで 4代目。これまでレシプロ、ダイアフラム、レシプロと使って来て、今回はレシプロ二気筒タイプになりました。
さすがに静音というだけあってそれほどうるさくはありません。が決して静かでもありません。安物のダイアフラムコンプレッサの耳をつんざくような爆音に比べれば雲泥の差ですが、夜の室内で使うにはちょいと気が引けます。
初めて 30L タンクのタイプを買いましたが、でかいですな。



2012年11月25日日曜日

買ったもの


加工用の生プリント基板、PCBカッターが届きました。


DealExtremeで。一枚56円というところ。
品質はいまいちですが、練習用にいいかなと。



PCB切削用のVカッター。
いろいろ条件出しをしているところ。うまくできるようになったら報告します。
スピンドルの回転数とか、結構調整が難しい感じ。


こちらは アリババ で購入。



CNCフライスもようやく実用域に入ってきました。

PICを使ったUSART通信


閑話休題。
仕事でちょいと必要になったので、この週末はPICを使ってUSART通信の実験をしました。
おおむね思い通りに動くようになったので、防備録としておいておきます。
仕事がらみなので、写真は無しの方向で。

それから、11/23日の金曜日は ニコニコ技術部吸収勉強会3 にCNCステージ持って参加してきました。参加者は30人くらいかな。結構な盛り上がりで楽しかったです。
もうすぐ動画がうPされるはず。

と言うことで、ソース。

******************main関数部**********************

//
// compiler: MPLAB XC8 Compiler
// 2012/11/24

// Configration
// RA0: RS for LCD
// RA1: read/write for LCD
// RA2: enable for LCD
// RB1: RX
// RB2: TX
// RB4-7: LCD data port

#include <pic.h>
#include <stdio.h>
#include "lcd.h"

#define _XTAL_FREQ  8000000
#define interval 200 // set here checking interval

__CONFIG(CLKOUTEN_OFF & FOSC_INTOSC & FCMEN_OFF & IESO_OFF & BOREN_ON &
                PWRTE_ON & WDTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF) ;
__CONFIG(PLLEN_ON & STVREN_ON & WRT_OFF & BORV_HI & LVP_OFF);

void putch(unsigned char); // defined function by printf
unsigned char TxData[16]; // data buffer for quotation
unsigned char RxData[20]; // data buffer for receive
char cnt; // variable for for-loop
char rcnt=0; // variable for receiving data count
char Lcd1Serial0=1; // switch for controling out put way
char Power; // for bar graph

void putch(unsigned char tx_data)
{
if(Lcd1Serial0)lcd_putch(tx_data);
else
{
while(!TXIF); // sending quotation via serial
TXREG=tx_data;
}
}

void interrupt ReceiveData()
{
if (RCIF == 1) // confirm USART interruption
{
RxData[rcnt] = RCREG; // receive data
RCIF = 0; // rest flag
}
rcnt++; // increment
}
void main()
{
    OSCCON=0b01110010; // internal clock 8MHz
    ANSELA=0b00000000; // No analog for PORTA
    ANSELB=0b00000000; // No analog for PORTB
    TRISA=0b00100000; // Set I/O according to configuration
    TRISB=0b00000010; // Set I/O according to configuration
    PORTA=0b00000000; // reset out put
    PORTB=0b00000000; // reset out put

lcd_init(); // initialize LCD screen
//__delay_ms(1000);

//Lcd1Serial0=1;
//printf("connection");
//lcd_goto(0x40);
//printf("   checker");
//__delay_ms(3000);
//lcd_clear();

コマンド部分は削除 ^^;

TXSTA  = 0b00100100 ; // asynchronous, 8bit, no-parity bit
RCSTA  = 0b10010000 ; // serial port enable, continuous receive enable
SPBRG  = 25; // baud rate 19200 error 0.16%
RCIF = 0; // reset USART interruption flag
RCIE = 1; // enable USART interruption
PEIE = 1; // enable peripheral interruntion

GIE  = 1; // enable general interruntion

while(1)
{
Lcd1Serial0=0;
for(cnt=0; cnt<=15; cnt++)putch(TxData[cnt]); // quotation
Lcd1Serial0=1;
lcd_goto(0x40);
printf("."); // show checking indicator

__delay_ms(interval);
//lcd_clear();
if(rcnt>=19)
{
Power=(RxData[12]-16)/3; // ignore low level & set number of bar
if((Power<=2) | (Power>=65))Power=0; // ignore low level

lcd_goto(0x40);
printf(" "); // erase "."
lcd_goto(0x00);
printf("                "); // erase bars
lcd_goto(0x00);
for(cnt=0; cnt<=(Power); cnt++)putch(0xFF); // renew bars

if(RxData[12]<=0x03)RxData[12]=0x00; // ignore low level
lcd_goto(0x4E);
printf("  "); // erase number
lcd_goto(0x4E);
printf("%d",RxData[12]); // show received data in number
rcnt=0;
}
__delay_ms(interval);
}
}
***********************LCD.c**************************

#define _XTAL_FREQ 8000000
#include <htc.h>
#include "lcd.h"

#define LCD_RS RA0
#define LCD_RW RA1
#define LCD_EN RA2

#define LCD_DATA PORTB

#define LCD_STROBE() ((LCD_EN = 1),(LCD_EN=0))

/* write a byte to the LCD in 4 bit mode */

void
lcd_write(unsigned char c)
{
__delay_us(40);
LCD_DATA = ( c & 0xF0 );
LCD_STROBE();
LCD_DATA = ( ( c << 4 ) & 0xF0 );
LCD_STROBE();
}

/*
 * Clear and home the LCD
 */

void
lcd_clear(void)
{
LCD_RS = 0;
lcd_write(0x01);
__delay_ms(2);
}

/* write a string of chars to the LCD */

void
lcd_puts(const char * s)
{
LCD_RS = 1; // write characters
while(*s)
lcd_write(*s++);
}

/* write one character to the LCD */

void
lcd_putch(char c)
{
LCD_RS = 1; // write characters
lcd_write( c );
}


/*
 * Go to the specified position
 */

void
lcd_goto(unsigned char pos)
{
LCD_RS = 0;
lcd_write(0x80+pos);
}

/* initialise the LCD - put into 4 bit mode */
void
lcd_init()
{
char init_value;

init_value = 0b00110000;

LCD_RS = 0;
LCD_EN = 0;
LCD_RW = 0;

__delay_ms(15); // wait 15mSec after power applied,
LCD_DATA = init_value;
LCD_STROBE();
__delay_ms(5);
LCD_STROBE();
__delay_us(200);
LCD_STROBE();
__delay_us(200);
LCD_DATA = 0b00100000; // Four bit mode
LCD_STROBE();

lcd_write(0x28); // Set interface length
lcd_write(0xC); // Display On, Cursor OFF, Cursor Blink OFF
lcd_clear(); // Clear screen
lcd_write(0x6); // Set entry Mode
}
*********************LCD.h************************



/* write a byte to the LCD in 4 bit mode */

extern void lcd_write(unsigned char);

/* Clear and home the LCD */

extern void lcd_clear(void);

/* write a string of characters to the LCD */

extern void lcd_puts(const char * s);

/* Go to the specified position */

extern void lcd_goto(unsigned char pos);

/* intialize the LCD - call before anything else */

extern void lcd_init(void);

extern void lcd_putch(char);

/* Set the cursor position */

#define lcd_cursor(x) lcd_write(((x)&0x7F)|0x80)

******************************************************

以上。

2012年11月18日日曜日

削ってみました


本体と分けておいていた制御部を本体に載せました。
新たに100円ショップのMDFを 200mm 角に切り出し、回路を上に、電源を下に再配置しました。
空きスペースができた上面には、スピンドルドライバ用の基板とリミットスイッチ/原点検出周りの基板を載せるつもりです。


電源が一階(というか裏)に下りたので空きが確保できました。
ファンがX軸とぎりぎり ^^; ファンの風は基板側に吹き出すので切削粉が散らないかちょっと心配。


前から見るとこんな感じ。けっこうな面積を使っていますが、ここまでスピンドルが後退することはないのです。 わりとワークのエリアは狭い ^^;


で、作ったスピンドルで早速削ってみました。ミクさんです。
CDのプラスチックケース(おそらくポリスチレン)に先端が球状になっているミルをつかって削りました。
データはガリガリ博士(gari2)さんのモノを使わせていただいてます。データはこちら
JWcadのjwwデータをNCVCでCAMデータに変換しています。
MACH3がデモ版なので500ステップで停止します。その都度上から500行を削除してファイルを再読み込みさせ、つなぎつなぎで作業しておりますので時間がかかります。これは10分くらいかけて削りました。


いやあ、面白いです。
MACH3レジストすることにします。