スポンサーサイト

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

LinuxCNCのHALコンポーネントを使用しての温度入力。

取り敢えずの取り敢えずで、LinuxCNCを使用しての3DプリントをしてみましたがLinuxCNC自体で制御してるのはステッパモーターのみで、エクストルーダーの温度制御自体はシマリス技研さんのやり方に乗っかった形の温調ハンダゴテのヒーターと回路をそのまま使う方法。

元々、ReprapのマザーマシンとしてRepStrapとしてLinuxCNCを使用した3軸CNCマシンが使われていたので、LinuxCNCだけでも、エクストルーダーの温度制御が出来るはず。

とは思ってたんですがLinuxCNCでのデータ入力は結構面倒なのを知ってたので先送りにしてました。^^;

LinuxCNCはリアルタイム制御を売りにしているかなり硬派なCNCコントローラーソフト。。
モーション系の信号は信号出力するデバイスのフィードバックを確認して作動してるので、(パラレルポートの場合フィードバックはエミュレート)データをバッファしているUSBとかは基本サポート外。モーション系以外の反応速度が遅くても良い信号(各種AD値やデータ、MPG等)の入出力はUSBを使用して出来るようですが。。


RepStrapとして使われてた時の情報がまだWeb上にあるので、今回はソレを利用させていただき以前の記事「LinuxCNCのパラレルポートでADCとサーミスタを使い温度入力、閾値にて出力。。」のLinuxCNC側の部分のインストールを覚書程度に^^;





ハードウエア自体は記事中のgihubのリンクにある物をほぼそのままの作りました。
が、githubの記事のHAL Module(HALコンポーネント)のインストールの仕方が

「LinuxCNC元作業ディレクトリのsrc / HAL /コンポーネントにコンポーネント/ディレクトリの内容をコピーし、いつものようにビルドします。」(機械翻訳)

となってるので???です。

src/hal/components なんて、どこにある??となってしまいますが、最初からLinuxCNCがインストールされているUbuntuのディスクイメージでは、こんなファイルありません。
実は、何もない素のUbuntuからインストールするときにLinuxCNCのソースファイルをダウンロードして、コンパイルするのですが、その時のソースファイルの事だと思われます。。

じゃぁ、後からコンポーネントをインストール出来ないのか?とゆうと、そうゆうわけではありませんでした。。

また、このブログ上では公開してなかったのですが、NE555を使用し、パラレルポートでの温度入力も試してみました。
温度の値の補正までは行かなかったのですが、数値は入力されていました。
参考ページ:
TEMPERATURE PID CONTROL - PART DEUX
RepStrap CNC sous LinuxCNC

こちらのコンポーネントは、temperature2frequency.comp内 LinuxCNCのコンポーネント記述で使えない関数があり、このコンポーネントはインストール出来ませんでした。関数を数式に治せば多分行けるのではないかと思います。

このコンポーネントがなくても、実際のハードウエアを使用した入力では問題ないのでハードウエアを作って試してみても面白いかもしれません。




LinuxCNC自体、各種HAL(Hardware Abstraction Layer)コンポーネントの色々な機能を使用して作動しています。
一般的な3軸フライスタイプとかは、LinuxCNCをインストールした状態ですでに各種HALファイル、Iniファイル等が入っており、あとは実際の加工機に合わせて記述を書き直し使います。

初期状態で入っている設定内のものならインストール時にあるHALコンポーネントで事足りるとは思いますが、自己で作成したコンポーネントも利用出来るようです。

ここで「できるようです」と書いているのは私が実際に作成したコンポーネントを使ったわけではないからです。
さらに、コンポーネント自体に使われている関数や書式がLinuxCNC自体のバージョンにより微妙に変わっているので、サンプルとしてLinuxCNCのドキュメントやWikiにあるコンポーネントファイルでも、そのままインストールできたりできなかったり、、、。(たとえば、Wiki内にあるShift Register Port Expander内にあるコンポーネントファイルなどは2.5ではインストールできませんでした。。)

コンポーネントをインストールするには通常のLinuxCNCのみではなく、linuxcnc-devをインストールする必要があります。
LinuxCNCの開発者用には、コンポーネントをコンパイルしてインストールするCOMPコマンドが入ってます。

システム管理のSynapticパッケージマネージャーを開いてlinuxcncで検索、検索結果の中のlinuxcnc-devの前のチェックボックスを選択にして、インストール指定をし、摘要ボタンを押すとインストールされます。

もう一つの方法として、端末を管理者権限でapt-getしてインストールする方法があります。
詳細はComp HAL Component Generator(英文)に詳しく書いてあります。


Githubのcdsteinkuehler/LinuxCNC-RepRapからファイルをzipファイルでダウンロード。

Ubuntu内のホーム内ダウンロード内にダウンロードされるので解凍。

解凍されたフォルダ内のcomponentsフォルダをホーム内に移動。

components内のADC2Temp.compとI2C.compをホーム内に移動。

ホーム内にマウスの右クリックのフォルダの作成を使ってフォルダを作成、名前をhaにする。

作ったhalフォルダ内にthermistors.hを入れたままcomponentsフォルダを移動。

端末を開き、

sudo comp --install ADC2Temp.comp と入力、改行。

パスを入力。 すると、インストールされます。

このhalフォルダを作成することでPCを騙して?るんだと思います。たぶん^^;

ホームフォルダ内にADC2Temp.comp と thermistors.h を置いておくとインストールできません。

あとはもうひとつのコンポーネント、I2C.compのインストール。

comp --install I2C.comp と入力、改行。。

で、インストールされるはずです。。


NE555を利用した温度入力の方は上記のテスト用コンポーネント以外、そのままの記述で入力できたと思います。


あとは、ハードウエアに合うように、HALファイルやiniファイルカスタムGUIのxmlファイルとかをいじるだけです^^;


使用したOSは10.04でLinuxCNCは2.5です。




HALコンポーネントを自分で作れるようになると、色々と出来る用になると思うのですがプログラマブルなものが苦手な私としてはなかなかに手がでませんT.T


動くユーザーコンポーネントとLinuxCNCのバージョンとかを教えてくれると有り難いです。。また、動かないものも。。
スポンサーサイト

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

コメントの投稿

非公開コメント

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

あきらひとし。

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

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

メールフォーム

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

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