---卓上フライス盤 X2系統 ---

 諸兄のHPでX2と呼ばれる卓上フライス盤の記事が
 目立ちます。10万以下で,ヤフオク等で販売されて
 いるので,手頃なようです。最近は,スーパーX2と呼
 ばれるX2の欠点を改造した(マイナーチェンジ?)
 ベルトドライブのものが売られています。63000円程度。

 

 はじめは何も分かりませんでしたが,同じ規格?
 のものが外国にあるようです。
これらのX2系向けに,コンバージョンキットとして改造の
  キットが,

 littlemachineshop.com
で,販売されています。
 ベルトドライブ化のキットとか,エアスプリング化のキットが
 販売されてます。
===ベルトドライブキット===

 

 ===エアスプリングキット===

 

 さすがアメリカと思ってしまいます。
 
 
 税込み5万円引きで,ということで,飛びついてしまった我が工房の
 リトルミーリング9にもこのベルトドライブキットをつけてみました。
 ダメ元でアメリカから取り寄せつけてみました。
 モーター取り付け穴の加工精度の悪さがあったものの,
 ぴったり装着できました。やはり,リトルミーリング9もX2系
 のフライス盤ですね。
 同じ規格の製品と値段を比べるとちょっと複雑な気に
 なります。日本のメーカーということで購入しましたが,
 もしかして,安い輸入品だったりしてと思います。
 ちなみに,Grizzlyのmini-millとパーツ番号まで,一緒
 でした。
 これが,
 リトルミーリング9です。(定価 185000円)

 

 Grizzlyのmini-millです。(定価 654$--80円換算52320円)
 
 

 3種類のフライス盤,SX2は,後発のものですが,リトルミーリング9
 とGrizzlyのmini-millは色違いの同じもののように見えます。
 これらのX2系統のフライス盤は,どんな関係なんでしょうねえ。
 出所は一緒なんでしょうかね。

---久しぶりの更新です。世の中 DRO---

 コンピューターが普及して,DIYの世界にもかなり前から,
 デジタルの波が押し寄せています。
 ご多分に漏れず我が工房の道具たちも,その影響を受け
 ました。特に,テーブルソーでは,デジタルの表示,
 DRO(デジタルリードアウト)が必須です。かなり前に,
 設置しました。

 

 もう一つは,ちょっと前にバージョンアップしたルーターテ
 ーブルのルーターリフトにつけています。

 

 どちらも1/10mmまで,表示できますが,1/10mm
 はあまり活用出来ていません。
 木と木を隙間なく接合するのには,どのくらいの精度が
 必要か分かりませんが,金工の世界に比べるとアバウト
 のような気がします。
 金工の世界では,1/100mmの精度やそれ以上
 の精度が問題になってるようです。
 あるホームページには,DROをフライス盤につけるのに,
 3/100mmまで調整したとありました。きっとそのくらい
 の精度が関係するのでしょうかね。
 ちなみにピタゴラスの定理で,ちょっと計算してみると,
 300mmで1mm平行を狂わせると,DROの表示は,
 SQRT(300×300+1×1)=300.0016・・・
 になり,ほんのちょっと多くなります。木工の世界からは,
 問題のない数字のようにも思えますけど,きっと,影響
 あるんでしょうね。

---原点カメラ(センターカム)作成 1---

 
 とりあえず,だいたいのイメージを図面にしてみました。

 

 緑が基盤で,黒が,レンズの付いているボックスで,暗い
 灰色がレンズです。
 図面にはいれていませんが,オレンジのながナットで,中心の
 マウント部分の傾きを調整して,中心を合わせる予定です。
 大きな形のバネが手に入らないようなので,オレンジのナット
 の上の部分に小径のバネをいれて,支える予定です。
 分解して,採寸して書きました。灰色の部分は,アルミの予定です。
 次の写真が分解して,基盤を取り出したところです。

 

 基盤部分の拡大です。

 

 この基板を組み込むための台座をCNCで作ります。

---粗悪品 原点カメラ(センターカム)---

 過日,ドリルプレスやCNCで使うため,原点カメラなるもの
 を購入しました。結構な値段がしましたが,届いてみてびっ
 くりでした。どう見ても,商品にはほど遠いものでした。

 

 おまけに,調整を繰り返していたら,イモネジの一つが
 きかなくなりました。購入もとに問い合わせをすると,有料
 修理とのこと。とんでもない買い物をしました。
 心ある会社なら,きっと,このくらいの修理も無料で行うんでしょうね。
 結局満足いかないので,アルミを削って,自分で作ることにしました。
 経過を掲載します。
 製造中止になってましたが,WEBCAMを安く手に入れました。
 BUFFALOのBWC-30L01というカメラです。1000円ちょっとで
 買いました。

 
 

---WIN2000のノートPCをいじってます。---

 使わなくなったWIN2000のふるいPCをあれこれいじってます。
 とっくの昔にサポートは終わってますので,ちょっと不便です。
 特に,無線LANのクライアントマネージャをインストールしようと
 思ったら,対応がIE5.5以降ということで,使えないしまつ。
 それでも,IE5,5の本体を置いてあるサイトがあったので,
 そこから,DL後,バージョンアップして,クライアントマネージャ
 をインストールできました。
 

---LaVie Nx LW4501/2 で動きました---

 使わなくなったwindow2000の古いノートで,なんとMACH3
 が動きました。
 HPのNX6210はもしかして,パラレルポートの不具合があった
 のかもしれません。
 不具合を確かめるべく,ふるいプリンターを引っ張りだしました
  が,プリンターのケーブルがありません。
  パラレルポートは時代の遺物なんですねえ。

---ステッピングモーターとドライバーの試運転終わりました---

 オアリジナルマインドさんより購入したステッピングモーター
 と,ドライバーの試運転(動作確認)ができました。当初,
 パラレルポートの付いているノートで確認をしましたが,
 本体のパラレルポートでも,PCカードの増設ポートでも
 うまく動きませんでした。結局,デスクトップのPCでやっと
 うまく動きました。
 今回購入したステッピングモーターは,最大3Aの電流を消費
 するので,後で,ドライバーの設定を変える必要があります。
 同じノートで,ドライバーを動かしてる方もいるのに,残念です。

---木製CNC制作---

 木製のCNCを作るべく,部品を集めています。
 ステッピングモーター,コントローラーは,オアリジナルマインド
 より購入しました。今は,ボールねじや台形ねじをいろいろあさって
 ます。アメリカのEBAYには,ボールねじがごろごろ売ってますの
 で,うらやましい限りですが,その多くは日本製のようです。
 

---半田ごてタイマーが組み上がりました---

  あれこれやってましたが,やっと,半田ごてタイマーが組み
  上がりました。昨日だいたいできたのですが,RA0の端子
  とRA7の端子が思った動作をしてくれず,あれこれ,やって
  ましたが,原因が分かりました。RA0はイモ半田で,導通し
  ていませんでした。RA7は,ショートしていいて,常に5Vが
  でている状態でした。当初の予定では,自己保持リレーで,
  自分自身お電源も切る予定でしたが,あれこれやりました
  が,うまく行きませんでした。とりあえず完成ということで,
  後日,2回路のリレーを使って,再挑戦したいと思います。
  今までのタイマーと違って,残り時間が液晶表示で,分か
  こと,任意の時間が設定できること,残り時間がなくなると,
  一分だけ延長され,その間にスタートボタンを押すと,設定
  した時間だけ,繰り返せます。一分が過ぎると,半田ごての
  電源を切って,0の表示に戻ります。

  

  
  青の液晶表示がおしゃれだと思ってます。今のところ,
  一番右のスイッチは,ただの飾りです。

---Cのプログラムです。---

 冗長なプログラムですが,Cのプログラムです。PICに密接し
 た設定は,本の丸写しです。
 このプログラムは,タイムアップすると,無限ループに入る
 ようにしています。本番では,ここを,変更して,自分自身
 の電源を切るようにします。アセンブラーでは,各種フラグを
 ビット操作でしていますが,本プログラムでは,贅沢にフラグ
 にいint型の整数を使ってます。データーメモリに余裕がある
 のでこの方がすっきりします。ただ,計算スピードやら,コンパイル
 後のメモリ等については,よく分かりません。
 PICに密接した設定や,割り込みの処理のプログラムがまだ,
 よく分からないところがありますが,その他は,PC用のプログラム
 とあんまり変わりません。 
 /******************************************
99タイマーテスト
********************************************/
#include __CONFIG(UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS & INTIO);
int sw3;
int sw2;
int sw1;
int sw3_data;
int sw2_data;
int sw1_data;
int sw12_data;
int sec1_data;
int sec10_data;
int min1_data;
int min10_data;
int count;
int count1;
int start_stop;
int entyou;
int buzzer;
int dengen;
int sec1_data_w;
int sec10_data_w;
int min1_data_w;
int min10_data_w;
void count_up(void);
void InitInterTimer0 (void);
void WaitTime (int cnt);
void datahozon(void);
void datasaisettei(void);
void main(void){
CMCON=0X07; //1,2,17,18
PORTA=0xFF;
PORTB=0xFF;
TRISA=0x1C;
TRISB=0x00;
RA0=0;//ブザーoff
RA1=0;//電源オフ
RA7=0;//本体操作
sec1_data=0;
sec10_data=0;
min1_data=0;
min10_data=0;
sw3=1;
sw2=1;
sw1=1;
sw3_data=1;
sw2_data=1;
sw1_data=1;
sw12_data=1;
min1_data_w=min1_data;
min10_data_w=min10_data;
start_stop=0;//初期値ストップ
buzzer=0;
dengen=0;
entyou=0;
// タイマ0割込み設定関数の呼び出し
InitInterTimer0();
// 割込み全体の許可
GIE = 1;
for( ; ; ){
//キー入力チェック1
if(RA2==0){
sw3=0;// スタートストップ
}
if(RA3==0){
sw2=0;//SW2 一分
}
if(RA4==0){
sw1=0;//SW1十分
}
//LED表示
PORTB=0xf0 | sec1_data_w;//秒1位表示
RB4=0;
_delay(250);
RB4=1;
PORTB=0xf0 | sec10_data_w;//秒10位表示
RB5=0;
_delay(250);
RB5=1;
PORTB=0xf0 | min1_data_w;//分1位表示
RB6=0;
_delay(250);
RB6=1;
PORTB=0xf0 | min10_data_w;//分10位表示
RB7=0;
_delay(250);
RB7=1;
//キー入力チェック2
//スタートストップチェック
if(RA2==0){
if(sw3==0){
if(sw3_data==1){
sw3_data=0;
if(start_stop==1){
start_stop=0;
}
else{
if(min1_data_w>0 || min10_data_w>0){
datahozon();
}
start_stop=1;
buzzer=0;
}
}
}
}
else{
sw3_data=1;
sw3=1;
}
//**************************************
//1分操作
if(RA3==0){
if(sw2==0){
if(sw2_data==1){
sw2_data=0;
if(start_stop==0){
sec1_data_w=0;
sec10_data_w=0;
if(min1_data_w<9){ min1_data_w++; } else{ min1_data_w=0; } } } } } else{ sw2_data=1; sw2=1; } //************************************** //10分操作 if(RA4==0){ if(sw1==0){ if(sw1_data==1){ sw1_data=0; if(start_stop==0){ sec1_data_w=0; sec10_data_w=0; if(min10_data_w<9){ min10_data_w++; } else{ min10_data_w=0; } } } } } else{ sw1_data=1; sw1=1; } //**************************************** //同時操作 if(sw2_data==0){ if(sw1_data==0){ if(sw12_data==1){ sw12_data=0; if(start_stop==0){ min1_data_w=0; min10_data_w=0; } } } else{ sw12_data=1; } } else{ sw12_data=1; sw1=1; sw2=1; } //*******ブザーオンオフ********************************* if(buzzer==1){ if(min1_data_w==0 && min10_data_w==0 && sec10_data_w==0 && sec1_data_w==0){ if(RA0==0){RA0=1;} } if(min1_data_w>0 || min10_data_w>0 || sec10_data_w>0 || sec1_data_w>0){
if(RA1==0){RA1=1;}//電源オン
}
}
if(buzzer==0){
if(RA0==1){
RA0=0;
entyou=0;
sec1_data_w=0;
sec10_data_w=0;
datasaisettei();
}
}
}
}
// 割込みサービスルーチン
static void interrupt isr(){
//****************延長処理*********************
if(entyou==1){
if(count<1950){ count++; } else{ if(sec1_data_w>0){
sec1_data_w--;
buzzer=1;
count=0;
}
else{
if(sec10_data_w>0){
sec10_data_w--;
sec1_data_w=9;
count=0;
}
else{
RA7=1;//******************本体電源もオフ*********************
for( ; ; ){ }
}
}
}
}
//***************カウントダウン**************
if(start_stop==1){
if(count<1950){ count++; } else{ if(sec1_data_w>0){
sec1_data_w--;
buzzer=1;
count=0;
}
else{
if(sec10_data_w>0){
sec10_data_w--;
sec1_data_w=9;
count=0;
}
else{
if(min1_data_w>0){
min1_data_w--;
sec10_data_w=5;
sec1_data_w=9;
count=0;
}
else{
if(min10_data_w>0){
min10_data_w--;
min1_data_w=9;
sec1_data_w=9;
sec10_data_w=5;
count=0;
}
else{
count=0;
entyou=1;
start_stop=0;
sec1_data_w=9;
sec10_data_w=5;
}
}
}
}
}
}
//***********************カウントダウン終了********************
// タイマ0割込みフラグをクリア
T0IF = 0;
}
void InitInterTimer0 (void){
// クロック源を内部クロックに設定
T0CS = 0;
// プリスケーラをタイマ0に割り当て
PSA = 0;
// プリスケーラ値を2に設定
PS2 = 0;
PS1 = 0;
PS0 = 0;
// TMR0レジスタをクリア
TMR0 = 0x00;
// タイマ0割込みフラグをクリア
T0IF = 0;
// タイマ0割込みの許可
T0IE = 1;
}
// 待ち時間関数の呼び出し
void WaitTime (int cnt){
while(cnt > 0){
cnt--;}
}
void datahozon(void){
min1_data=min1_data_w;
min10_data=min10_data_w;
}
void datasaisettei(void){
min1_data_w=min1_data;
min10_data_w=min10_data;
}