DIY

2016/07/17

Windows10 アップデート

評判の悪いマイクロソフトの対応、絶対にアップデートなんかしないと決めていたのだが、無料アップデートの期限が迫ってきたら、コロリと態度を変えてアップデートすることにした。

Dscf1049

実はアップデートを渋っていた理由の一つがこれ。
Dscf1053
アリババとaitendoで安く仕入れたUSB-シリアル変換のモジュール。これに使われているチップPL2303がwin10ではサポートされておらず、使えない。GPSの書き込み機やCWキーイングアダプタ、aitendoのArduinoとこれを使った機器がいっぱいあったので躊躇していた。どうも、このチップは模倣品がいっぱい出ていてチップメーカーもディスコンにしたかったらしい、なのでメーカからWin8以降に対応したドライバーを出さないのではないかと想像している。

ではなぜアップデートしたかというと、いつも閲覧している方々のサイトを見ていると、あちこちでアップデートされている。これを見ていて、マイクロソフトのサポート期間が延びるなら、アップデートしようかと欲を出したわけだ。
早速アリババにUSB-シリアル変換のモジュールのCH340版をオダーした。PL2303のモジュールはもったいないが仕方がない。CH340のモジュールでも送料込みで0.6ドルもしない。なので、サポート期間のほうをとったわけだ。
そんな長く、このパソコンを使うのかってこともあるんだけど・・・・

もう一つの懸念点は今使っているアプリが使えなくなること。特にPICやArudinoの開発環境が使えなくなるのは痛い。実際には、これは大丈夫であった。問題なさそうだ。TVのカードとか、プリンターなどハード回りが、Win10に対応していることを確認して、アップデートしてみた。結果は20分ほどでいとも簡単に完了した。
その後、ダイソーで買った300円USBハブが調子悪い。これも不思議で、これにキーボードを接続しているのだが、ログインの画面のパスワード入力だけがうまくいかない、ログインしてしまえばその後は問題なく使える。キーの応答が遅くて、場合によっては文字化けしているようだ。これを除くと、今のところ問題はない。

もともと、Win7で何の不自由もなかったのだが、邪まな理由からマイクロソフトの戦略に加担してしまった。


| | コメント (2) | トラックバック (0)

2015/01/18

XYテーブル5

中々、難しい。
Y軸のガタを補正したので「試し切り2」をやってみた。切削はMach3を使って、XYを連続して動かす。コーナーでもエンドミルを上げることなく、連続動作で切削していく。

【まず、ここから】
Dscf0008

【1回めの切削】
F値は50
Dscf0009

【2回めの切削】
Dscf0010

【3回めの切削】
Dscf0011

【4回めの切削】
この後、もう一回切削して合計5回で切り抜いた。
Dscf0012

この後、切削条件を変えて試し切り。
②はF値を30に落として、1回で切り抜く。バリが多い。
③は3回に分けて切削。
④はF値を50に戻す。5~6回で切り抜く。
⑤これが、今日の中では一番きれいだ。F=50で、5~6回で切り抜く。Z軸は手で操作するので一定にするのが難しい。アルミは柔らかいので、刃が食い込む。切削量を小さくすると綺麗に削ることができる。XYの軌跡はずれることがないので、何回かに分けて削りこんでいく。刃が食い込むと刃が振動してしまい、綺麗に切ることができなくなる。テーブルの剛性が求められるが、エンドミルとて、歪むであろうから切削量、送り速度の最適値があると思う。スピンドルの速度は簡単に変えることができないが、これも最適値がありそうだ。
Dscf0014_1

黄色い板は捨て板でMDF製だ。切削は結構難しい。今更ながらであるが。
Dscf0016


| | コメント (0) | トラックバック (0)

2015/01/17

XYテーブル4

ちょっとだけ、改造してみた。

【取り付け後】
Dscf0005

【取り付け前】
Dscf0895


ベアリングフォルダーを削りだしたが、これをアルミのLアングルを使って固定した。取り付けの要点は、モータ、このベアリング、プラスチック製ダブルネジの3点が固定されることになるため、一直線とならないと回転に支障をきたすことだ。
取り付けるときに、モータ、プラスチック製ダブルネジをまず固定しておき、次にベアリングのついたLアングルを固定する。この後、ベアリングフォルダー(アクリル製)のネジを固定する。このネジ穴は5mmφと大きめに開けてある。これで、加工精度のいい加減さを吸収している。

また、ベアリングの取り付け位置は、モータとプラスチック製ダブルネジののほぼ中間にしてある。これは、全ネジの変形で軸ブレを吸収する意味合いからだ。これで、手で回転ネジを回してみてもスムースに回すことができた。

そもそも、モータの取り付けには自作の異径ジョイントを使っているので、軸のブレがあるとうまくない。そこそこ、センターは出ているが、全ネジ自体もねじれがあったりするが、ネジが6mmφと細いことからネジが変形(本当に若干だが)して回転している。そんなにモータにも負担はかかっていないようで、それなりにスムースに回転させることができている。

さて、明日は「試し切り2」でもやってみようか。今日も非常に強い北風が吹いている。物置小屋 & 外はとても寒い。

| | コメント (0) | トラックバック (0)

2015/01/12

XYテーブル3

やっと、ボール盤にセットして、試し切りだ。

以前、Xテーブルの時に試し切りした1mm厚のアルミ板をもう一度削ってみた。精度はそこそこ出ているようだ。
Dscf0902

アルミ板を削ってみて、やはり切削方向によって、Y軸のガタが気になる。刃が食い込んで持っていかれるのだろう。その反対方向は定速度で送るので結構綺麗に削れる。手送りではこうは行かない。
Dscf0904

コントローラは進化していない。前回と同じ。
Dscf0906

Dscf0908

さて、ちょっとハードルが高いがY軸のガタを無くすためのベアリングホルダーを削りだす。PICでは円を削り出せないので、PCソフトのMach3を使う。Jw-CADで作画したものを、NCVCでGコードに落とす。今回は二重円なので直接、Gコードを描いても変わらないのだが、CADで図面を描いて変換をかけてコードを得ている。
Dscf0912

コードにはZ軸の制御もあるが、ここではスクリプトに合わせて、手動でエンドミルを下げる。アクリルだと食い付きが良すぎるので、慎重に何回も繰り返して削っていく。センターは4mm径のの穴を開けておく。ここを切削の原点にしている。ここに、ちゃんと戻れば脱調していないことがわかる。切削量が小さいせいか、脱調は全くない。ただ、Y軸のガタや、全体の剛性不足でドリルが振動することがある。この辺りが、木製+引き出しレールの限界かもしれない。しかし、この写真の通り、それなりに切削ができている。
Dscf0915

完成したのがこれ。反対側からベアリングをはめ込んでいる。これが抜けないように、写真手前は1mm径が小さくなっている。ベアリングも一発で所定のサイズに削りだすことができた。若干きつかったので、さらに0.1mm追加して削った。
Dscf0918

こちらは、反対側から見たところ。ベアリングをはめ込んでいる方だ。
Dscf0923

紙に書かれている長方形は、送り精度を確認するために、エンドミルに代わりにボールペンの芯を挟んで長方形を描いたものだ。テンションを一定にする機構がないので、ペンが斜めになってしまうところもあるが、それを補正しながら書いた。直角もちゃんと出ている。3回重ね書きをしているがズレはない。課題はY軸のガタと全体の剛性不足だ。もう少し、色々と試してみようと思う。
Dscf0931

カメラを手に持っているので、実際に切削は行っていないが、PCからの制御でテーブルを動かしている。XYが止まっているときは、Z軸を制御している時だ。ちゃんとしたCNCが欲しくなる。


| | コメント (0) | トラックバック (0)

2015/01/06

XYテーブル2

PCソフト Mach3を接続して動かしてみた。動画を撮影したのでご覧ください。

送り速度はF100を指定しているので、実際の切削時はもっと遅い値を指定することになると思います。1/8のマイクロステップでドライブしています。正方形も動かしてみたのですが、XとY軸が交互に動くため、この画像ほど面白くありません。XY同時に動くさまは見ていて飽きないです。

| | コメント (2) | トラックバック (0)

2015/01/03

XYテーブル1

Xテーブルが進化した。もう1軸増えて、XYテーブルになった。これで、平面のアルミパネルとかが、加工できることになる。(寒いので、物置にあるボール盤のところにはいけないが)

Dscf0894

PICで作ったコントローラを使い古しのMDFボードに仮止めした。基板のままだとショートしそうで、試運転も危なっかしい。さっさとケースに入れてしまえばいいのだが、このXYテーブルを使った簡易フライス盤でコントローラのケースを作ろうという魂胆なので、中々進まない。自分で自分を作ることになる。
Dscf0887

両面テープでMDF板に基板を貼り付けていく。まさにボードコンピュータだ。モータとの接続もちょっと不恰好だがACコード3本まとめて延長ケーブルを作った。これで何とかボール盤に乗せることができそうだ。
Dscf0890

LCD表示機も2行のものだとかなり苦しいので、4行x16のものにしてみた。まだプログラムが対応していないので、表示は2行のままだが。
Dscf0892

Dscf0893

さてこれが、Y軸の機構だ。写真奥手方向にボール盤の支柱がくるのでモータを出すことができない。X軸のテーブルとの間に埋め込むモータが、テーブルに当たってしまうので、X軸のテーブルを木工用のルーターで切り欠いた。
手前はY軸テーブルに以前作ったプラスチックによるダブルナットを固定している。この状態で静的な状態であればガタはない。しかし、ステップモータの軸受けに依存していて、そこにはかなりテンションはかかっているものの0.5mm程度の遊びがある。エンドミルで切削しているときに刃が材料に食い込むと持っていかれると思う。X軸の機構と同じようにベアリングを追加してガタが最小になるようにしなければならない。とりあえずアルミ板を切削して試してみようと思う。
Dscf0895

この写真はX軸テーブルの取り付け部分だ。プラスチック製ダブルナットのネジ受けをこのLアングルで固定している。
Dscf0896

全景はこんな感じです。周囲のいろんなものを一緒に写ってしまっているが2階の電子工作室兼オペレーティングルーム?。物が雑然とおいてある部屋になってしまっている。
Dscf0898

取り急ぎ、プログラムを修正して、送り距離1mmあたりのステップ数を設定してみたり、回転方向(LCD表示のプラスマイナス)をあわせた。早速ボール盤に取り付けてやってみたいところだが、寒いのとこの正月も色々とやることがあって進まない。かなりマイペースだ。

| | コメント (2) | トラックバック (0)

2014/10/13

Xテーブル14(コントローラ編)

PCB CADで遊んでいた。
これを使って設計したPICのコントロール基板をユニバーサル基板で組み立ててみた。レイアウトはCADで検討済なので簡単だ。部品の位置は完全には同じではないが、パターンの流れは検討済なので、いつもの様な「盛りそば」よりは少しましになった。基本的には平面で接続できるはずだから。2層板ではないので、その分はワイヤー配線をおこなう。信号線は、いつもの通り0.26mmφのポリウレタン線を使う。デジタル系の配線には持ってこいだ。電源ラインは、0.4mmφの銅線を使う。電話用の屋内配線ICTケーブルがあるので、この被覆を剥いて使う。剥きたては、銅が綺麗でハンダのノリもいい。

Dscf0747

Dscf0745

これを、モータドライバーのボードに接続してみる。パソコンを接続せずに、このコントローラを接続する。
Dscf0743

Dscf0741

取り敢えず、電気回路はできた。SWとかLEDを付ければできあがりだ。ケースに入れたいが、加工にはフライス盤 or CNCがほしいところだ。

プログラムももう少しブラシュアップする必要がある。これでやっとブレッドボードから卒業ができる。


| | コメント (0) | トラックバック (0)

2014/09/28

Xテーブル13(テーブル編)

巻線機もPICのプログラムの骨格はできた。UIのブラシュアップと、計算値があっているか検証が必要だ。

今回はXテーブルの精度を高めてみようと思う。JA1CVF岡田さんに色々と教わった中で、今までのものは、送りの精度、バックラッシュが全然ダメ。これをもう少し改善できないかと試みてみた。アイディアは以前からあったのだが、金属加工など工作になると重い腰が中々上がらない。

まずは、送りネジの改良だ。プラスチックのナットを使うと滑らかで、ガタのないものができる。無垢の材料から削りだしをしている方がいた。これは大変なので、何か代案はないかと探したのがこれだ。
6mmネジ付きの木工のダボ用のアンカー?だ。これを木に打ち込んで使う。アンカーを2つに切断して、この2つのネジの締め具合でバックラッシュをキャンセルして、送りの硬さ(摩擦の量)を調整する。これでバックラッシュ・ゼロが実現できる。耐久性も懸念されるが、取り敢えず、使ってみよう。
Dscf0713


これが元の部品。(6mmネジ付きの木工のダボ用のアンカー)
Dscf0739


これをコ型のアルミ製のチャネルを切断したもので挟み込む。両脇は、エポキシが流れないように壁を作る。
ネジの見えている部分には、エポキシが流れ込まないように、紐を巻いておく。
Dscf0715


エポキシを流し込む。2液性の接着剤だ。5分硬化のものを使っているが、なんでもいいと思う。
送りネジはこれで完成。
Dscf0720


軸受けが厄介だ。思案したあげく、ベアリングで受けることにした。普通に手に入る物で外形17mm、内径6mmのものを使う。軸に対して横方向の力を支えることになる。こんな使い方をしても大丈夫か定かではないが、とにかくガタが小さい。
17mmの穴をどうやって開けるか?CNCで加工したくなるが、そんなものは手元にない。ちょっと強引だがこんな物で穴を開けた。丁度良いサイズにならないので、後はヤスリ加工で仕上げた。
Dscf0721


仮組みをしてみた。小さなパーツなので切断する前にほとんどの加工を終わらせておく。2mm厚のアクリル板3枚+止め板が1枚の4枚で構成している。接着にはアクリルサンデーを使う。
Dscf0723


別の角度から。軸はアクリルで受けていることになる。強度が問題になるかもしれない。
Dscf0724


やっと出来上がったパーツ。ベアリングをアクリル板で挟みこむが6mm厚では若干の隙間ができるので、プラスチックの板で調整している。これで若干の圧をかけて挟み込む。
Dscf0725


手作り感、満載だ。加工は中々難しい。
Dscf0727


元々あった場所に組み込むため、ベアリング抑えの一部が切れてしまっている。組み込むためのクリアランスが厳しいため仕方がない。
Dscf0728


ベアリングをはめてみた。
Dscf0730


Lアングルに組み込んでみた。
Dscf0732


別の角度から。
Dscf0734

Xテーブルに置いてみた。今日は時間がなくて最後まで組み込むことができなかったが、動きはスムースだ。
Dscf0737


ほぼ、バックラッシュは無いところまで、できたと思う。軸受けに使っているベアリングも若干のガタがあるが小さいのでどうだろうか、これでやってみようと思う。これをなくすには、反対側の軸受けを上のものと同じにして、2つの軸受け間に予圧をかけてやれば、完全になくすことができると思う。CNCができた暁には?、もう一つ軸受けをけずりだしてみようか。


今回の改造前の機構はこちら

| | コメント (0) | トラックバック (0)

2014/09/23

Xテーブル12(PIC暫定完成版)

Dscf0708

PICによるXY軸制御のプログラムが完成したので、記録のため残しておく。

1.機能
・X軸またはY軸を数値入力により動かすことができる。
 (XまたはYの直線運動。1/10mm単位で入力可能)
・XY軸をそれぞれ数値入力し、同時に動かすことができる。
 (原点からX,Yまでの直線運動。1/10mm単位で入力可能)
・ボリューム(AD変換)により、軸移動速度を32段階に可変できる。
・緊急時に移動を停止するキーを実装。
・4x4テンキーによる数値入力
 (バックスペース、±キー付き)

2.ハードウェア
・4x4のテンキー
・実行、確定、緊急停止の3キー
 (緊急停止キーはOR接続でリミットスイッチを兼用)
・ステッピングモータドライバーはSLA7078
・16x2 LCD表示器(4bitパラレル接続)
・CPUはPIC18F26K22(クロックは8MHz。1Stepあたり最短約1mS)

3.その他
・モード切替を実装
 確定キーを押下したまま電源ONで「巻線機」モードに変更
 (巻線機機能は未実装)
 実行キーを押下したまま電源ONで「Mach3」モードに変更
 SLA7078の制御ポートを入力にすることで、パソコンを接続時にポートの衝突を回避するモード

回路図等ができたら、順次追加していきます。
プログラムはいつもの通り?スパゲッティ状態です。特にモード切替時のLCD表示がスマートではありません。継ぎ接ぎ感、満載です。

=============================================
ソース・ファイル一式
「20140923_x_y_xy2.zip」をダウンロード

=============================================
追記2014.10.11
回路図ができあがったので、掲載します。
Steppinmotorcont_sch_2

電子ファイルは、xpsというマイクロソフトのpdfのようなファイル形式です。
「SteppingMotorCONT.xps」をダウンロード
うまく見ることができない時は、一旦ファイルに保存してから、ビューアーで開いてください。

関連記事


| | コメント (0) | トラックバック (0)

2014/09/15

Xテーブル11

パソコンのCNCプログラムMach3はちょっとお休み。PICのコントローラをやっている。前回は、XまたはY方向にキー入力した数値分、ステップモータを動かすことができるところまで完成した。

今回は、XY方向に同時にステップモータを動かす。CNCであればXY軸に対して斜めに切削することができるようになる。このためには、直線補間という処理が必要となる。下記にその部分を抜き出したソースコードを記載する。

Xの毎ステップごとに計算して、Y軸を動かすかを都度判断する。きっちりと処理するならば、小数点を四捨五入処理を行うところだが、小数点処理は重たい、また、ステップモータ+全ネジの可動部を想定すると、そんなに厳格に処理する必要はない。変数をint型にして、小数点以下を切り捨てにする。前回計算値と比較して、商が整数値となった部分をY値としてY軸のステップモータを駆動する。最初にXとYを比較して、Xが大きければ、X側を1づつカウントアップしていく。Yが大きければ、Y側をカウントアップする。

この割り算を含む(ソースコードの1から4)の処理にかかる処理時間は約800uS。1パルスあたり1mS周期にしているので、これより高速にするためには、処理自体を見直すか、CPUのクロックを上げる必要がありそうだ。(@8MHz)

ソースコードは、
=======================================================================
if(Xstep>=Ystep) // Xの方が大きいので、Xを1step毎送る
{
for(cnt=1; X_step_L >= cnt; cnt++)
{
Y = (Y_step_L * cnt)/X_step_L ;
// 1 Yには割り算した結果、整数値が格納される
Y_stepOut = Y - Y_current ; // 2
Y_current = Y ; // 3
X_stepOut = X_step_L ;
// 4 1-4間の処理時間は800uS @ 8MHz X-TAL

//Xを1step出力する
X_pulse();

if(Y_stepOut == 0) //Yのデータが無いときに、Xパルスにspeedを反映する
{
SpeedCont(speed);
}else
{
//Yを計算した回数step出力する
for(cnt_y=0 ; Y_stepOut > cnt_y ; cnt_y++)
{
Y_pulse();
SpeedCont(speed);
}
}
// LED_0=~LED_0; //処理時間計測用
}
}else // Yの方が大きいので、Yを1step毎送る
{
for(cnt=0; Y_step_L >= cnt; cnt++)
{
X = (X_step_L * cnt)/Y_step_L ;
//Xには割り算した結果、整数値が格納される
X_stepOut = X - X_current ;
X_current = X ;
Y_stepOut = Y_step_L ;

//Yを1step出力する
Y_pulse();

if(X_stepOut == 0)
//Xのデータが無いときに、Yパルスにspeedを反映する
{
SpeedCont(speed);
}else
{
//Yを計算した回数step出力する
for(cnt_x=0 ; X_stepOut > cnt_x ; cnt_x++)
{
X_pulse();
SpeedCont(speed);
}
}
// LED_0=~LED_0; //処理時間計測用
}
}
=======================================================================

回路の全容はこんな感じだ。4x4のテンキーとパラレル(4bit)制御のLCDをつないでいるので、ポートが足りなくなってきた。speed制御も入れたいところだが、どうしたものか。
UIも前回のものに無理やり加えたので、いつもの様にプログラムがスパゲティー化してきた。ここまでプログラムは6KB強。I2C制御の残骸など不要なところも残っている。
今回直線補間の計算がうまく動作しなくて苦労した。デバックに使うprintfもどきのLCDに変数値の内容を表示させる関数を作ってデバックした。わかってしまえば単純なミス。LEDチカチカのデバックでは限界がある。やはり、ツールは重要だ。

Dscf0709

もう一つ、このツールが役に立つ。ロジアナだ。チャネル数やスピードはそんなに必要がない。シリアルのものをデバックするにはオシロスコープではちょっときつい。パルスが出るかどうかのチェックには使えるが、ロジックが正しいかどうか検証するには、このロジアナが欠かせない。

Xy_speed10_1
この画像でX軸3パルスに対して、Y軸は1パルスが送出されている。

Xy_speed10
パルス幅や周期を見ている。ドライバーの関数にはスピードを制御するためにspeed値を引数に設定できる。この辺りもこれで確認している。
また、わり算の処理時間を測定するにも別のポートに出力する処理を追記して、ポートのON/OFF時間を測定することで簡単にわかる。

さて、ベースとなる仕掛けができたので、これからどっちに進もうか。このXY制御を使って、フライス盤も可能だが、UIを追加すればハニカム巻の巻線機ができそうだ。X軸をコイルの巻線を駆動して、同時にY軸をハニカムの振り幅制御に使う、例のハート型のカムに相当する動作だ。UIがサクッとできればいいのだが、そうは簡単に行かない。


| | コメント (0) | トラックバック (0)

より以前の記事一覧