スポンサーサイト

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

RaspberryPI3でMachinekit/LinuxCNCを作動させてみた.

以前RaspberryPI2で使うために作ったAlteraのFPGA、MAX10を使用したLinuxCNC用のパルスジェネレーター、SPI−PlutoStepを使用し今度はRaspberryPi3を使用しステッピングモーターを駆動させてみました。作動確認です。



ステッピングモーターはユニポーラタイプのもの。ステッピングモータードライバICは東芝のTB67S149HGを使用しました。LinuxCNC上の設定として、1回転1mm6400パルスとし、1/32マイクロステップでの作動です。
IMG_3291.jpg


Machinekit/LinuxCNC、BeagleboneBlackでの作動の場合、Beaglebone自体がPRUとゆうCPUと独立して動くプロセッサを2つ内蔵しているので、ステップパルスの生成には、PRUを使い、このRaspberryPi3のように外部パルスジェネレーターとするプロセッサを外付け擦る必要は有りません。(一定以上のステップパルスor各種データ入力が別途必要な場合は有ったほうが、、。)
ですが、GUIでの操作、となると、もともとRaspberryPi2,3に載っているプロセッサがメディアエンジン的な機能を持ったものなので、表示がスムーズです。
ただ、BeagleboneでのMachinekit/LinuxCNCの方が、ジッタが少ないので、、、、、どちらを選択するかは用途次第、とゆうところでしょうか。




基本Machinekit、LinuxCNCそのものなので、LinuxCNCでもできるOコードを使用した繰り返し計算によるモーションの生成ができます。
単純な位置の指示ではなく、計算式によって動きが作りだされています。また、繰り返し処理も。
Gコードで同じモーションを生成すると、とても長いコードになると思います。



この動画上のコードも、先の動画上のコードと同じく、位置を計算式で求めて、繰り返しループにてモーションが生成されてます。
繰り返し処理を行うOコード、便利です。



PC自体の個体差によるジッタがあるので、PCでのLinuxCNCの作動はPC選び、マザーボード選びから、、、でしたが、BeagleboneBlackやRaspberryPI2,3のお陰で皆同じような条件での作動が可能となりました。
もちろん駆動するフレーム自体が自作なNC加工機の場合、多種多様なのですがコントローラーとして、同じものが手軽なお値段で入手できるようになったのはMachinekit/LinuxCNCのおかげ、でしょうか。

このブログでは、色々なホビーNCに使える安価に構築できるNCコントローラーを触り紹介してみていますが、実際のところ、モーションプランとか、内部数値の扱いや計算方法などこのブログ内では取り上げてませんが、細かいところで色々と異なっている部分があったりします。
異なっているので、いろいろな種類の割とお手軽に使えるNCコントローラーがあるわけです。

LinuxCNCの設定(iniファイル)では、NCコントローラー上の計算値による位置と、実際にモータードライバを駆動させるパルスジェネレーター内の位置の誤差の範囲を指定します。この誤差、計算上と実際では、確実に起こるものなのですが、他NCコントローラーではこの設定を見たことが、、、。

実際に駆動させるNCフレームの性能に加工性能は依存すると思いますが、NCコントローラー上でのモーションに関する数値の分解能はできるだけ高いほうが(実際にそれだけの分解能で動くかは別として)上記の計算上の誤差が小さくなると思うので良い気がします。
スポンサーサイト

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

コメントの投稿

非公開コメント

LinuxCNCについて

こんにちは。いつもブログを楽しく拝見させてもらってます。
LinuxCNCに興味を持っており、触ってみようと思っているのですが、
例えばBeagleboneBlackにLinuxCNCをインストールしておき、
パソコンやシーケンサからシリアル通信やソケット通信でコマンドを送ることで、
ロボットコントローラーのように振る舞わせることは可能なのでしょうか?
(モーションはスカラー/デルタ/Hexapod等を想定しています)
もし可能なら苦労することになっても踏み出してみようと思います。
ご教授頂けますと嬉しいです。
宜しくお願い致します。

Re: LinuxCNCについて

コメント有り難うございます。
LinuxCNCの設定として挙げたれたモーション自体は有るので、可能ではないかと思います(とゆうのは私がやってないため)

linuxCNC自体、ソースコード等まで見て見ると、色々なことが詳細にコメントされていますが、いかんせん英語で読み下して試してみるだけでも一苦労なのですが、ある意味、なんでもアリでどのようにでもなるようです。

一番問題となるのはデータの入出力で、モーションに関しては基本フルクローズドループで、1msとゆう制御ループが足かせ的になり、データの入出力が高速で確実でないと、、とゆう所でしょうか。

PCでPCIカードを使用したLinuxCNCだと、どうとでもなる状態です。

Re:Re: LinuxCNCについて

早速のコメントありがとうございます。
ソースコードまで見られているのですね!
SmoothieBoardを使ってデルタで遊んでいたのですが、
少し限界を感じてLinuxCNCに興味を持ちました。
とりあえずBeagleboneBlackとディスプレイを購入してさわってみようと思います。
また質問させて下さい。
宜しくお願い致します。

Re: Re:Re: LinuxCNCについて

新規にご購入されるのですね、、、。
ディスプレイはちっこいLDCパネル(5とか7インチとか)はLinuxCNCの操作画面自体はみ出るので使いづらい、、かも。
内部数値を見るためにHalメーターとか他のWindowも開けたりするので設定を作成するまではある程度の画面の広さがあると楽かも。

Smoothieをご使用となると、使用用途は3Dプリンタですかね?

こんな感じ?のたたき台となる公開された設定を検索したほうが早いかもしれませんね。

https://designmakeshare.wordpress.com/2014/06/30/machinekit-delta-configuration-calibration/

Re: Re:Re: LinuxCNCについて

アドバイスありがとうございます。
コメントを見る前にBeaglebone Blackと7インチLCD Capeを手配してしまいました。
ただしRaspberryPi2も持っていますので本格的に調整するときは
HDMI入力付きのPC用モニターを使う予定です。

3Dプリンタやリニア軸式デルタ、直交軸であればSmoothieで十分です。
下記のような回転軸式デルタやHexapodが制御できたら社内用の装置に使えるのでは?と期待しています。
https://www.youtube.com/watch?v=ouyx65C7L-o
https://www.youtube.com/watch?v=2STkBhUiKwg

Re: Re:Re: LinuxCNCについて

こんにちは

お盆休みに色々さわってみようと思っています。
配布サイトを見ると下記の2種類があるのですが
どちらがおすすめでしょうか。(何が違うのでしょうか?)

microSD/Standalone: (machinekit) Classic
microSD/Standalone: (machinekit) Based on Debian Jessie (new)

宜しくお願い致します。

LinuxCNCについて

どもども。

OSのバージョンが違います。

ダウンロードリンクのURLを見ると解りますがClassicとなってる方は7.11でJessieとなってる方は8.5となってます。
7.~はwheezy、8.~はJessieです。
詳しくはRaspberryPiもDebianなので、検索してみてください。

新しい物は人柱的な所が有るので、私は一応双方触ってみた感じではOS自体BBBとの接続云々Classicの方がよかったような印象があります。
Machinekit/LinuxCNC自体は同じはずです。


色々なテストは少し古い物でしてたりします。

https://rcn-ee.online/rootfs/bb.org/testing/

このURLにアクセスすると古いビルド済みのイメージが入手できます。
日付をクリックすると、下の階層に移りその中の machinekit/ のデレクトリ内に古いものが有ります。
これは、OSのバージョンも以前の物ですが、Machinekit自体も、公開された当時の物です。

LinuxCNCについて

ありがとうございます。
Classicが実績も多く良さそうですが、
RaspberryPI2も持っていますので悩みます。
とりあえず何か入れて試してみます。

Hexapodについては下記の作者にメールを出してConfigファイルを頂くことができました。
(興味がありましたら、おっしゃって下さい)
https://www.youtube.com/watch?v=ouyx65C7L-o


Re: LinuxCNCについて

Pi2でのLinuxCNC、PicNCかSPI_Plutoをせねばリアルタイムで必要なモーション司令信号が遅いのが欠点ですが、
GUIでははBeagleBoneBlackよりも快適に操作できるので、双方ためしてみると良いと思います。

ラズパイのLinuxCNCに関してはラズパイ公式掲示板のLinuxCNCのトピックがとても参考になります(ページ数多いですが)
https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=33809


>
> Hexapodについては下記の作者にメールを出してConfigファイルを頂くことができました。
> (興味がありましたら、おっしゃって下さい)
> https://www.youtube.com/watch?v=ouyx65C7L-o

チャレンジャーですね^^;
設定ファイル、MCUとかのソースコードと違い、ライセンス云々あまり関係がないので出してくれたのかもしれません。
こころよい人で良かったですね。
設定の仕方、興味が有るのでこのコメント欄の名前部分のメールアドレスに送って頂けると有り難いです。

Re: Re: LinuxCNCについて

Configファイルの転送有り難うございます。

内容を見てみるとこの動画
https://www.youtube.com/watch?v=MTPkw5BNmVw
の元記事である、「Parallel robots, machine tools and more」
http://parallelrobots.blogspot.jp/2012/04/linuxcnc-hexapod-machine-tool.html
内で公開されているHalファイルとINIファイルをBeagleboneBlack用にModしたようなConfigファイルも有り、とても興味深いです。
ライセンス
アクセスカウンター
プロフィール

あきらひとし。

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

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

メールフォーム

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

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