TinyGクローンを作ってみる。

組み込み系マイコンを使用した割りとお手軽なCNCコントローラーの一つ、TinyGのクローンを作ってとりあえず、パルスを出してみました。

TinyG_Clone.jpg

Arduinoを使用するGrblや、LPC1768/69を使用するSmoothieボード、そしてこのATXMega192A3を使用するTinyG。
この3つはオープンソースとして、回路図からファームウエアまで公開されています。

私の場合、モータードライバ部分は別体としているので、コントローラーのみの基板を作成。


作成といってもユニバーサル基板に、MCUを作動させる電源、水晶、パスコン等々とUSBシリアル変換モジュールを取り付け、I/Oを外側に引っ張り出せるようにした簡単なものです。



国内入手性の悪いATXMega192A3以外の部品すべて秋月電子さんで入手可能。
USBシリアル変換モジュールはシリアル通信のみなので、小さなFT231XUSBシリアル変換モジュールを使用してみました。






この状態で、TinyGのファームウエアをダウンロードし、AtmelStudio6.1を使用しソースコードをコンパイル。
コンパイルしたバイナリファイルをAVRISP mkIIを使用し書き込み、です。

ATXmega192A3への書き込みは、Arduino等に使われるISPインターフェースではなくPDIインターフェースとなってますが、AtmelStudioでAVRISP mkIIを使用すると自動的にPDIインターフェースと指定。



TinyGを使用するにはフロントエンドとなるソフトウエアを使用します。

コマンドラインを入力のCoolTermとGUIを利用したtgFXが利用可能ですが、今回はtgFXを使用。




設定パラメーターをしっかり把握していないせいで多少てごずるもなんとかサンプルのGコードを作動させ、パルスを出力できました。
出力されたパルスは、設定が悪いのかどうなのか解りませんがパルス幅がとても小さく1μs以下。
最大出力周波数が50kHxとなっているので、立ち上がりエッジを検出するモータードライバならなんとかなりそうですが、駆動の遅いドライバICなどは難しいかも。。


Smoothieボードもそうなのですが、CNCコントローラーとしての能力は6軸まで制御とかなり高いのですが、フロントエンドとなるソフトウエアがまだまだ取っ付きづらい印象なので、Smoothieボードといっしょにゆっくり作動チェックを行っていきたいと思ってます。



この手のCNCコントローラーの最大のメリットといえばパラレルポートを使用せず、USB接続なのでノートPCなどでもCNCマシンの制御ができること。

現状、パラレルポートを使用したLinuxCNCやMach3のほうが使い勝手は良いと思われますが、将来的にはReprapのようにスタンドアロン型のCNCコントローラとしての発展を期待しています。。





オシロにてStepパルスを観察してみました。

上からx軸ステップパルス、500μs、y軸ステップパルス500μs、x軸ステップパルス500ns、y軸ステップパルス500nsです。

x軸ステップパルスにトリガーを掛けてあるので、y軸ステップパルスははっきり出てません。

ステップパルス幅は780ns。





追記。

海外通販にてATXmega192A3を購入しましたが、A3Uに比べてかなり割高。
もしかしたら、USBインターフェースが付いている、A3uや256A3uでも動くんじゃない?とか思って同時に購入。。
同じように変換基板に貼り付けてコンパイルしたものをAVRSPIMk2にて対応する設定にて書き込んで試したところ、、、、どうも、動いているご様子。。
多分、USBインターフェース回路は同一ピンでプログラムから指定して使用するトレラントとなっているのでは?との憶測。

詳細を調べなければ、ですが、もし同じように動くのであればArduino使用のGrbl+500円程度でコントローラー部は作成が可能。(自作で、ですが。。)




おおお!忘れてた。
TinyGだと、、、、、



のように、Androidタブレットを使用してのコントロールも。。
結局、USBを使って仮想シリアルにてGコード、その他コマンドを送ることができれば、コントローラはなんでも?よいのでは。。

私にフロントエンドとなるプログラムを書く能力は微塵もないので、とても残念ですが。。。






と、ゆうことで?TinyGでLチカしてみました。。



tgFXを使い、出力に余ってた74hc541を取り付けLEDを駆動。(多分バッファICは必要ない)
モーター制御用の出力ピン全てにLEDをつけてあります。

使い慣れてくると、2Dの描画ながら、結構面白いtgFX。
ちなみに、LチカしてるMCUはATXmega256A3U。
多分正常に動いてるんではないかと。。

加加速度設定ができるので、実際のNCマシンを駆動させると面白いと思います。。



マイコンで、一番最初にやるLチカ。こんなに重要です。。


10/1追記。
tgFXの設定にてLoPowerIdleとHighPowerIdleとモーター停止状態にモーターを励磁維持するかしないかの設定がありますが、この設定は単純にモーター停止状態時にモータードライバのイネーブル端子を利用して励磁状態をON、OFFしてます。
カレントダウンとはちょっと違います。
この出力ピンを利用してオープンドレインとし、モータードライバのVref電流を操作して励磁と弱励磁との切り替えのカレントダウン化すると。。。

まぁ、機械の構造にもよりますけど。。

更に追記。
最小ステップパルス幅が小さいので、モータードライバICを選ぶコントローラーだと、、、。
ファームウエア内のパルス幅を触れれば、、、ですが、そうでなければ74hc123などを使い、パルス幅を大きくしなければ。。


さらにさらに追記。

なんの具合かわからんけれどもtgFX作動が不安定な時がある。TinyG自体のもんだいなのかもしれないけど、よくわからん。。
スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

良いテーマですね

> ちなみに、LチカしてるMCUはATXmega256A3U。
> 多分正常に動いてるんではないかと。。

良い動きしていますね
ATXmega256A3U。の代わりに ATXMEGA256C3-AU
進化したような型番なのに安い
http://www.digikey.jp/product-detail/ja/ATXMEGA256C3-AU/ATXMEGA256C3-AU-ND/3678683

ここで動かなければ高い物になりますが

モーターの設定は仮に1ミリ/何パルスに設定していますでしょうか
パキパキ動いているので試したいです

高価なはず

データコンバータ A/D 16x12b; D/A 2x12b
http://www.digikey.jp/product-detail/ja/ATXMEGA256A3U-AU/ATXMEGA256A3U-AU-ND/3046477
DAも付いていますね
同じ型番でメモリーサイズのみ増えている物でないと
余計なトラブルになりますね
素直に此にすればうまくいきそうですね

Re: 良いテーマですね


> モーターの設定は仮に1ミリ/何パルスに設定していますでしょうか
> パキパキ動いているので試したいです

1/8マイクロステップの1回転1mm移動なので、1600step/revでしょうか。
一応tgFXでの最大マイクロステップは1/8。コマンドラインにてもっと細かくも出来るようです。

パルスの最大周波数が50kHz。
Mach3やLinuxCNCからみるとそれなり、ですが、それなり、の簡易な基板切削や彫刻機程度であれば最適なのかもと思い、この手のボードを触ってます。
ハードウエア的にはスムージーボードのほうが上だと思いますが、記事にも書いたとおり、フロントエンドとなるインターフェースが、このtgFXが良いため、、、です。。

Re: 高価なはず

> データコンバータ A/D 16x12b; D/A 2x12b
> http://www.digikey.jp/product-detail/ja/ATXMEGA256A3U-AU/ATXMEGA256A3U-AU-ND/3046477
> DAも付いていますね
> 同じ型番でメモリーサイズのみ増えている物でないと
> 余計なトラブルになりますね
> 素直に此にすればうまくいきそうですね

そうですね。

TinyG自体がどこまでの機能を使っているのかソースコードが読めないので理解しかねますが、A3とA3Uの価格差のほうがはるかに大きいのでA3Uを試してみました。

また、オリジナルTinyGは192A3ですが、256を使うことにより、余分なメモリ空間を使いSPIインターフェースを使用したりなんだりできるようです。
http://akb77.com/g/cnc/tinyg-controller-for-cnc/

また、TinyGが「つかえねー」となればATXmegaの試用ボードとしても使えるのでメモリは大きいことに越したことはないと思い、試し、で購入しました。。

Xmegaduinoなんてものもあるようですし。
https://github.com/akafugu/Xmegaduino


ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ