CNCがやっと完成の域に

 

長い間放っていたCNCがやっと完成の域に達しました。ProxxonのマイクロXYテーブルとドリルスタンドを利用し、3Dプリンタで打ち出したパーツを多用しました。

YテーブルがDefaultでは非常に短く、実用に耐えないので、Yテーブルの延長も3Dプリンタで打ち出しました。本来ならアルミの切り出しで新たに作り直すべきですが、ツールもないので、Webで検索したらアルミブロックで延長部分だけを追加している方がいた。これだ!と思いアルミではなく3d プリンタできれいに打ち出せば同じものが作れると思い、やってみた。この人はy軸のモーター側のベアリングホルダー兼ストッパーを延長yテーブルに変更し、ストッパを無くしているが、いい考えだ。自分はモーターの反対側にyテーブルを約30mm延長した。4回ぐらいカット&トライで作り直したが、うまくいった。メーカ側の設計図を見つけられなかったので、実体をカリパーで測定したが、どうも測定して3Dプリントすると、測定誤差とプリント誤差とが重なり、かなり違うものができてしまう。したがって、カット&トライがどうしても必要になる。可動部分が54㎜から70㎜となり、何とか実用に耐えるようになった。本来なら100㎜×100㎜くらいは欲しいところだが・・。今回はY軸の向こう側に延長したが、必要なら反対側にも同様に増設すれば、100mmにはなりそうだ。その際にはまた6Φの全ねじロッドが必要になるが。

Y軸の拡張部分
Y軸の拡張部分

白のPLAで出力したので、非常に目立つ。逆ねじのM6の送りロッドは長さが足りなくなったので、順ねじのM6に交換し、それに伴い内部の送りナットも順ねじに交換。(12Φの丸棒にM5 の下穴をあけM6でタップを切った。)

Y軸拡張2
Y軸拡張2

Z軸はずいぶん無様な形状をしているが、スピンドルモータの重量や切削時の横ブレに打ち勝つ強度を保つためにはこの程度の厚みと構造が必要だと思い、こんな箱状になってしまった。

Z軸
Z軸

一番苦労したのはZ軸。20Φの柱を何とか利用したかったので、LMF20UUを中国サイトから入手。異常に大きいのでかなりびっくりしたが、上下に2個つけた。入手してから気が付いたが、鍔のないLM20 を使って、ストッパーを3Dプリントしてもよかった。摺動部分はこれだけでは心もとないので、3Dプリンタのあまりの部品で6Φのリニアベアリングとスムースロッドで補助。

Z軸モーター
Z軸ステッピングモーター

すべての軸のステッピングモーターは秋月で一番安い¥800のギア付き。42㎜角ではこれが一番トルクが大きい。このモーターの性能/価格は中国のサイトでもかなわない。ただ、ギア付きなのでこれをうまく外す必要がある。そのためにギア抜きツール(AMAZONで入手)を使用した。このツールは強力で、ギアがきれいに抜ける。

撮ったビデオの容量が大きくUpladできないのでビデオをコンバージョンしたら映像と音声が同期しない現象が起きた。

まだ、穴あけしかテストしてないが、同じ基板に2度穴あけをしてみると全く同じところに、ドリルが通るので、バックラッシュも無いようだ。次はエンドミルを入手し基板パターンの切削をトライしよう。エンドミルは中国サイトに注文中。今は切削用モーターにはProxxonのハンドルータを使っているが、最高の20000rpmで連続で稼働させると音が非常にうるさい。 ブラシレススピンドルモーターが欲しいが、中国のサイトでも5000円から10000円くらいでなかなか踏ん切りがつかない。自作という手もあるがネオジムローターの入手が難しそうだが。さらにエンドミル用のコレットチャックをうまくつけられるかが難しそう。20000rpm以上で回そうとするとほんの少しの偏芯でも気になる。

やはり音と映像が同期していません。

今のところ、FirmwareはArduinoUNO互換のAitendo製にGRBL0.9j。ステッピングモータのドライバーはTB6650(全軸同じで1.2A  STOP50% 1/8駆動 減衰0%としたがこれが最適かどうかは不明) 3dprinterだと1/16稼働で十分のトルクが得られたが、1/16では音は静かだが脱調が激しい。コントローラーはgrbl controller3.6.1もしくは grblcontrol0.84(https://github.com/Denvi/grblControl/)(これは3Dで軌跡が表示されるので、見ていて面白い。)  最近grbl controller3.6.1T4(クリックでリンクに飛びます)が出て、同様に3Dが表示されるらしい。(テスト中)

grbl EEPROM の内容 ($$でコンソールより出力される)

Grbl 0.9j [‘$’ for help]
[‘$H’|’$X’ to unlock]
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=3 (dir port invert mask:00000011)
$4=1 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=44 (homing dir invert mask:00101100)
$24=300.000 (homing feed, mm/min)
$25=5.000 (homing seek, mm/min)
$26=5 (homing debounce, msec)
$27=5.000 (homing pull-off, mm)
$100=1600.000 (x, step/mm)
$101=1600.000 (y, step/mm)
$102=1600.000 (z, step/mm)
$110=400.000 (x max rate, mm/min)
$111=400.000 (y max rate, mm/min)
$112=400.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=120.000 (x max travel, mm)
$131=80.000 (y max travel, mm)
$132=70.000 (z max travel, mm)

 

 

 

ArduinoでBK1088ラジオ(2)

前回の記事BK1088をArduinoで制御で決め打ちしかできなかったものを、ロータリーエンコーダで選局できるようになったので、ソースを公開します。このソースのほとんどは鉱石ラジオと料理とさんもへあるさんのコードを参照させていただきました。BK1088 特有の初期化ルーチンは若干コード容量が増えますが、ArduinoUNOでも十分収まっています。ロータリーエンコーダは10KΩを介して100nFでチャタリングを防止しましたが、それほど効果が感じられません。FMの音質は良いのですが、AMはかなりノイジーでした。
ロータリーエンコーダでの選局時少しバックラッシュがあり、その周波数を一度行き過ぎて、戻ると正常に受信できるようですが、一応実用レベルだと思います。なぜか、割り込みの反応が少し遅いように感じます。割り込みではなく、直接エンコーダーを読み取ると非常に素直に反応しますが、その場合はラジオにノイズが入ってしまい、使い物になりません。(これをいつか改良したいと思います)

Bk1088 Arduino
Bk1088 Arduino

Arduinoはブレッドボード上にすでに移動して、clockを12MHzに変更し(16MHzの場合は5逓倍の東京FM80.0MHzが聞こえない場合があるため)、5V-3.3Vの変換もなくしました。Li-ion電池の3.7Vで動いています。

スケッチです。TXT文が開きます。
Arduino_BK1088

気圧ロガー

ラジオペンチさんが以前に紹介されていた気圧ロガーをくみ上げてみました。ArduinoとLCD MicroSDcard リアルタイムクロックRTC-8564 気圧計MPL-115A2の組み合わせで時間と気圧をMicroSDCardにロギングしています。前にラジオペンチさんが紹介されていた100円アナログ時計を使った気圧計を作ってみて非常に面白くて、しょっちゅう眺めていますが、『気圧』というほとんど感じることができないものを表示してくれるので余計に楽しくなります。
一気に全部のパーツをブレッドボード上に載せて組み上げるのも難しいと思い、一個ずつ確かめていく方法をとりました。LCDはAitendoでいま150円のDV-16284。信号線は1㎜ピッチのFFCなので使いにくいので、変換基板を作りました。(もう少しましな変換基板が出来たらEage schを公開します)。次はMPL-115A2。これは以前にアナログメーターで使っていたので、まずまず問題なくつながりましたが、最初ピンを逆に刺してしまい、壊してしましました。それでなのか、最近販売されているものはLEDがついているので、逆差しは防止できるようです。ただ、微小な温度変化も拾ってしまいそうなので、このLEDは功罪がありそうです。開発段階のトラブルは防げそうです。でも逆差ししても壊れないようなピン接続にしてほしいものです。

つぎはRTCですが、これもトラ技の付録をくみ上げたときにバックアップ電池をつけた小基板を作っていたので、それを流用。このRTC-8564はよく使われているDS1307 とほぼ同じですが、3Vでも5Vでも動くので便利。最後はMicroSDカード。変換基板を作って載せました。なかなかOKにならなかったがPINの差し違えでした。ArduinoはUNOですが、どういうわけかDuemilanoveではUploadは成功するのですが、動きませんでした。何のエラーも吐いていません。

気圧ロガー
気圧ロガー

今はDuemilanoveの基板にUNOのBootloaderを焼いたMPUで動いています。なぜ、Duemilanoveで動かないか、検証してみたいと思います。過程の詳細を出力する設定でUploadしてみたいと思います。

UNOで動いていますが、USBでも外部DC電源でも入れ方によって、動作しない現象が起こっています。その時はUNOのRESETを押しても動く気配がありません。でも3,4回電源を抜き差しすると動作するんですね。

I2CのどれかのデバイスかSDカードのRESETがうまき掛からないんじゃないかと推測しています。単体で動かしたときは、そんな現象はなかったので、他に何か原因があるのかもしれません。もう一つ気になっているのが、MicroSDカードの電圧をダイオード4個シリーズで5Vから作っていることです。3.7V位になっていますが、そのせいかもしれません。