スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

パルス列入力からのカラーTFT液晶の描画

少し前の記事にて、PSoC5LPプロトタイピングキットを使ってのTFT液晶パネルの表示をしてみましたが、何がしてみたかったかとゆうと、デジタルデータのリアルタイムでの可視化。
人間の認識できる速度を遥かに凌ぐデジタルデータ自体がどうなってるか、目に見えるようにしたかったのです。
認識しないと、判断できないので、、。。

PSoC5LPプロトタイピングキットを使ったのは、、、単に安かったから、、だけではなく、このPSoC、PLD付きのMCUとして非常に手軽にPLDを触ることが出来ます。
下手にFPGAやCPLDを触るよりお手軽に、ロジックで出来た部品を使うことが出来ます。また、FPGAやCPLDで使用するIPとゆう機能ブロック的なもの、も、開発環境であるPSoCクリエーター内にあり、このPSoC5LPを有効に使えるPLD部分を使った機能ブロックも豊富に使うことができます。

今回、32bitのUP/Downカウンタを少なくとも3つ、4軸NCなら4つ、ハードウエアブロックとして欲しかったのでPSoC5LPを使いました。比較的入手しやすいMCUでは、32bitのUP/Downカウンタが、多くても2つまで。
もちろん16bitタイマ、カウンタを使ってカウンタが溢れたらMCUの変数に+-1して、計算をさせれば問題なく作動するとは思いますが、折角32bitタイマ/カウンタが4つ乗るMCUがあるのでコレにしました。

MCU側での計数操作はめんどくさく感じたためです^^;



動画ですが、BeagleboneBlackを使ったLinuxCNCの各軸のStep/Dir信号を使って32bitUP/Downカウンタにて計数しているものを左上に表示。
で、その数値を使ってTFT液晶上に描画させています。
この表示はPC上の表示と異なり、実際にステッピングモーターや、サーボモーターを作動させる信号から作った経路画像なので、1ステップ何mmと定義した物が正確に動いていれば、このように動くはずです。
もちろん、刃物のオフセットは考慮されてませんから、この状態では、3軸NCルーター、フライスであるならば、刃物の中心位置になります。



こちらは初めの動画から、ちょっとプログラムを足して経路と現在位置が判るようにしたものです。

この2つの動画、LinuxCNCに付属している全く同じGコードでの再生です。
実のところ、1mm辺りのステップ数と、加速度と、移動速度は違います。
描画自体、ちょっと違いますね。。

設定の違いにより、このように実際のモーション自体も変化してしまいます。。

通常の加工時にモーション自体は、動いていってしまうもの、なので、なかなか認識しづらいのですが、実際のパルス列をつかった描画をしてみると、案外と違うことがよく解ります。
この辺り、コントローラー自体の設定と、Gコードの書き方具合いでかなりの違いとして出てくるものと思われます。
経路が微妙に違えば、加工される品物自体も変わってくるはず。。

詳しいことはLinuxCNCのマニュアルに詳しく書かれてます。

ホビーNCコントローラーの多くはLinuxCNCをお手本に作られているものも多く、LinuxCNCに限ったことではなく、基本的なところは同じようです。。

もちろん、Step/Dirなパルス列制御で出力しているNCコントローラーなら、同じよう計数、表示が可能で、UP/Downカウンタ部分をPSoC Creator内のコンポーネントQuadrature Decoderを使用することにより、直交エンコーダーの4x計数表示もできますし、カウンタにロジックを追加することにより、2パルス方式の信号も計数できます。

以前の記事「位置フィードバックさせたDCモーターをロータリーエンコーダーで操作。」などの、ロータリーエンコーダーの信号をモータードライバの入力のStep/Dirな信号に変換させることもロジックブロックを使えば出来ると思います。

また以前の記事、「DCモーターのサーボ制御」では、処理速度の速いSTM32F4を使いましたが、PSoCLP5でも、殆ど同じことが出来ると思います。


このPSoC5LPのプログラム自体は、カウンタの数値から、点を打つだけの単純なものです。
グラフィック液晶の表示さえできれば難しくは無いと思います。

下の動画で使ったPSoC5LPはPSoC5LPプロトタイピングキットの物と少し違い100ピンで、アナログ機能が少し劣る物。
I/Oピンに余裕があるので、NCマシンへのリミットスイッチとかのチャタリング抑制回路等を載せることが出来ます。今回は32bitタイマ/カウンタを4つ載せて、チャタリング抑制回路を幾つか載せたので、PLD部分であるUDBの余裕がそんなに多くありませんが、タイマの代わりにPWM回路を載せて、NCコントローラーからのON/OFF 信号での、PWM出力を、、とかとか。
扱いやすく、また、MCUも載っているのでこの作例のようにハードウエアカウンタを回したまま、MCU側で数値を読み取り、、、ってことが割と簡単にできたりします。

他MCUとかなり違うのですが、ロジック信号を扱うようなNC制御には、結構重宝するMCUだと思うので、他MCUとは別枠の手段として持っていても良いかもしれません。


実際の作動する信号を確認することはとても大事で、ホントの所はNCフレームにエンコーダーを取り付け、出力パルス分きちんと作動しているか、の検証までが一括りだと思います。
一応、ステッピングモーターは、1パルスの信号を送ると決まった角度動く事になっていますが、高マイクロステップを使った場合など、1ステップ動く力が、フレームの駆動抵抗に負けて実際には動いていない、とゆうこともあり得ます。
誤差が累積しないのがステッピングモーターの大きな特性ですが、使い方によっては、命令に対して上手く作動しないことも。。




必要な機材、必要な確認等々、加工に至るまでは、なかなか道が遠いようです。。










スポンサーサイト

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

コメントの投稿

非公開コメント

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

あきらひとし。

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

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

メールフォーム

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

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。