FC2ブログ

スポンサーサイト

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

LinuxCNCのライブイメージでインストールしたPCからBeagleboenのMachinekitを立ち上げる

machinekitの入っているDebianイメージなBeaglebone(Black or Green)をUSBを使いLinuxCNC公式のライブイメージのインストールされたPCに接続、コンソールを開き

ssh -X machinekit@192.168.7.2

と入力、Enter。

初回だとAre you sure you want to contimue connecting (yes/no)?
と聞かれるのでyesと入力、Enter。

Machinekitのパスワードを聞かれるのでMachinekitと入力、Enter。

すると、コンソールのカーソル前の所がmachinekit@beaglebone:~$ となりコンソール入力がBeagleboneのMachinekitになります。

で、この状態からMachinekitを立ち上げるのですが、

machinekit

と入力、EnterするとMachinekitが立ち上がり、どのConfigファイルで立ち上げるが?の選択画面が表示されます。
因みにlinuxcncと入力してもMachinekitが立ち上がります。

GUIでの表示はWindowsでのMobaXtermを使った時と違いデスクトップそのものを表示するわけではなく、あくまで基本コンソール。
GUIで必要なウインドウが有る場合、そのウインドウ部分だけが表示されます。

下の画像はクリックすると別ウインドウにて大きく表示できます。
この画像はX11forwarding (上記の接続)を使いLinuxCNCの動いているPCにUSBにてBeagleboneGreenを接続、Machinekitを立ち上げて同一デスクトップ上に2つのAxisを置いてみました。

linuxcnc and machinekit

多分アドレスを変更すれば数個のMachinekitを立ち上げることもできるのではないかと思います。

また、Machinekitを立ち上げたコンソールは入力を受け付けないので、もう一つコンソールを開き、もう一つSSH~と入れると、Bealgebone側のコンソールがもう一つ。

LinuxCNCのライブイメージをインストールしたPCにはUbuntuMateの18.04も入れてあるのでソレのコンソールでも試して接続を確認しています。

基本的なLinuxの仕組みを使用しているようなので、UbuntuやDebianなLinuxで有れば、大抵上記コマンドでBeaglebone のコンソールに繋ぐことができるのでは?と思います。

MahcinekitとLinuxCNC、並べて操作すると、BeagleboneのMachinekitのもっさり感が際立ってしまいます。
その辺はIntelATOM系のPCと比べても処理速度の差が出てしまいますね。

Beaglebone系のMachinekit、今の所誰でも手に入れて同じハードウエアの状態で作動させることができる貴重なボードなんですが、出来ることなら、デスクトップPCでLinuxCNCを作動、操作したほうが、見た目も作業効率も良いと思います。
スポンサーサイト

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

旧Cut2DとCut3DはLinux上のWineで動く

Vectric Forum内スレッドBoard index ‹ VCarve Pro & Desktop ‹ VCarve - Generalより
Vectric works in Linux

LinuxCNCのLiveイメージでインストールできるDebian上にWineをインストール。Cut2Dがデスクトップとプロに分かれる前のバージョンをインストール、無事起動。ちゃんとパスまで出力できました。
もちろん、新し目のLinuxのWineでもWine側の文字化け等は有りましたが、それも修正できて、ちゃんとCut2D3D共々インストール、作動できました。

また、LinuxCNCのポストプロセッサはLinuxCNC公式フォーラム内Vectric Cut2Dにリンク有り。
LinuxCNC公式Wiki内にもCam Postのページ内に 5. Vectric cut2D / cut3D / vcarveとして有る。


Mach3の設定をLinuxCNCへ

LinuxCNC公式フォーラム内 スレッド User Interfaces > Other User Interfaces > Mach3 Linuxcnc equivalence より。

LinuxCNC2.7のStepConfigWizardにて、Mach3の設定ファイル ~.xmlを読み込みLinuxCNCの設定に変換できます。
やってみたらできました。
ただ、コレはパラレルポートを使用しているMach3の設定ファイルをLinuxCNCのパラレルポートを使用する設定に置き換えるものでSmoothStepper等を使っていると使用できないご様子。

また、このスレッドの最後の方にMach3もLatencyTestをしている、、、と。
インストールして一番最初に動かすアレですね。


FreeCADでツールパス。



https://www.youtube.com/watch?v=M99VshffvDYより。

現在配布されているLinuxCNCのLiveイメージのDebianの古いバージョンでは古いFreeCADしかインストールできませんが、最新?のUbuntu等のLinuxディストリビューションでFreeCADをインストールすると、NCで使えるGコードを生成出来るPathWorkbenchが使用可能です。

Fusion360も、一定の売上がない場合において、無償使用が可能ですが、FreeCADもまたアリなのかも。

Beagleboneblack(green)のI/Oに流せる電流値のメモ

このブログでは所々でBeagleboneblack(green)を取り上げてますが、このMachinekit(LinuxCNCフォーク)が動くこのボード、ピンヘッダのI/Oは基本マイコン直結です。

TI製のAM3358とゆうマイコンが使われているのですが、そのデータシート内にI/Oに流して良い電流が記述されています。
データシートを読むのが一番確実なのですが、手っ取り早く「Beaglebone sink source current」で検索
GoogleGroup内のスレッド「Maximum current on GPIO?」が引っかかりました。
その中のベストアンサーに

Source 6mA, sink 8mA, with the following pins limited to sourcing 4mA:

· P9_19 gpio0[13]
· P9_20 gpio0[12]
· P9_24 gpio0[15]
· P9_26 gpio0[14]
· P9_41 gpio0[20]
· P9_42 gpio0[7]

と記述されています。

このsink soure電流の値はデータシート上のP.91のDC Electrical CharacteristicsのAll other LVCMOS pins (VDDSHVx = 3.3 V; x = 1 to 6)にはI_OH=6mA、I_OL=6mAの場合の最低最高電圧が定義され記述されています。Sink,Source共6mA時の電圧が定義されてるので、この値以下で有れば最低最高の電圧が出る、って事になります。

割に簡単に扱えるマイコンボードのArduinoからすると、GPIOの電圧も低いし、Sink,Source共流しても壊れない電流もとても低いです。

出力ピンのシンク、ソース電流はWeb上に解説が多々有ると思うのでそちらに任せます。

Beagleboneblackとかをステッピングモータードライバ、その他モータードライバ等Beagleboneblackの電源電圧以上になる回路に接続する大抵の場合、Beagleboneblack本体の基板、更にはボードにUSB接続で繋いであるPCの保護用にフォトカプラ等で絶縁をすると安全です。

Aliexpress等で販売されている安価なステッピングモータードライバユニットは、割とフォトカプラで絶縁されているものが多いのですが、信号入力端子、フォトカプラの発光側に繋がる回路上の抵抗の抵抗値が330Ω位の物が多く、3.3Vの電圧を繋ぐと10mAも流れてしまいます。

安価なステッピングモータードライバに使われているフォトカプラは6N137で割と高速に作動しますが、少々古め?のフォトカプラなので、フォトカプラ内の発光ダイオードが受光側に検知されるだけの発光するのにかなり電流が必要です。
BeagleboneblackのI/O直結では、Beagleboneblack自体の出力ピンが壊れてしまいます。

BeagleboneblackのI/Oの出力できる電流以上の電流が必要な場合、HCやAHCなどなどのロジックICのバスバッファを使ったり、レベル変換の付いたHCTなど、チョイと電流量が多い場合はトランジスタアレイのシンクドライバやソースドライバICを使います。


フォトカプラによる絶縁に関して言えば、秋月電子で現在販売しているTLP2361を使うのもよいかもしれません。
推奨作動条件が入力側の発光ダイオードが2mA~6mA、出力側がインバーターロジック出力で、電源電圧の標準が3.3Vと5Vとなっているので、絶縁と共に外部回路入出力に使うと5Vへの電圧変換にも使え便利です。






RaspberryPiとLinuxCNCのリンク、メモ

RaspberryPiではBeagleboneBalck(Green)のようにCPUと独立して動くプログラマブルなリアルタイムユニット(RPU)が無いので、外部にリアルタイムで動くユニットが何かしら必要になります。


PICnc-V2

LinuxCNCからフォークされたMachinekitで使うPICを外部リアルタイムユニットとして使用。

spi-fpga-driver

RaspberryPiやBeagleboneBlackがSPI通信を使ってPluto-PとゆうFPGAボードを外部リアルタイムユニットとして使うPluto_spi_stepperとPluto_spi_servoのファームウエアとMachinekit側の設定ファイル等々。MESA7I90HD Parallel/SPI Anything I/O cardのhm-2stepper-7i90HDとゆうLinuxCNC側のini、HALファイルも。

RaspberryPi公式フォーラム内LinuxCNCスレッド

RaspberryPi上でLinuxCNCを動かす事を目的としたスレッド。
ビルドされたRaspberrypi用のLinuxcncのイメージがあったかも(うろ覚え)

RaspbianXenomaiBuild

LinuxCNC公式のRaspbianベースのXenomaiリアルタイムカーネルパッチの当たったLinuxCNCイメージの作成ページ。

HM2_RPSPI

LinuxCNC公式manualページ。RaspberryPiのSPI用のHM2ドライバ。このページによると72ピンのI/Oを持つMESAの7i90を最大5枚(360I/O)接続可能。推奨はRaspberryPi上に2つ有るSPI通信器に各一つづつ。(筆者未確認)

Parallel robots, machine tools and more内のLinuxCNC on a Raspberry Pi

RaspberrypiへのLinuxCNCのインストールの記述。
preempt-rtなRTカーネルパッチらしい。


LinuxCNCで使うリアルタイムカーネルパッチもRTAIやPreempt-rt、Xenomaiなどなど、有るのでちょいと注意が必要。
LinuxCNCフォークなMachinekitはXenomai。

現在のPCへインストールできるライブイメージが公式にUPされている2.7の場合、RTAIリアルタイムカーネルパッチ。
大本のLinuxCNCの場合、ゆくゆくはpreempt-rtへの移行を進めている様子。

現在テスト段なDebian Stretch、RT-PREEMPT、LinuxCNC 2.7.x用の画像のテスト内にあるライブイメージでは記述の通りPreempt-RT。

このPreempt-RT、どうも今までのRTAIなリアルタイムカーネルパッチで極端にレイテンシが少ないIntelAtom系のマザーボードではレイテンシが逆に大きい結果。
LinuxCNC公式フォーラム内では、i3とか割と新し目のCPUの載ったマザーボードではソコソコのレイテンシとなる御様子。
MESAの7I92M I / Oイーサネットカードを使う場合、Rtpreemptなリアルタイムカーネルパッチ。

以前Raspberrypiを使ってLinuxCNCを作動させた時にはPluto-P向けのFPGAのファームウエアをIntelのMAX10用のコンフィグファイルに書き直し作動。



安価にボード単体にてLinuxCNC or Machinekitを使いたいのであれば、BeagleboneBlack(Green)が最安。
RaspberryPiは外部に何らかのリアルタイムユニットとなるMCUorFPGAが必要になる、が、Beagleboneを使った時よりもGUIの表示はスムーズ。


ただ、LinuxCNC自体、処理の遅れ(latency)には厳しいけれども、PCの処理としては最新PCが必要なほど重い処理をしているわけではないので、古PCに軽いOS、パラレルポートさえ有れば動かぬこともないので、、、。


BeagleboneBlack(Green)には、外部I/Oピンが沢山。
元々Beagleboneに使われるTIのSitaraプロセッサ自体がNC制御その他モーター、機械駆動系のコントローラーとして使用してもらう前提で開発されたプロセッサ。
だからCNC制御コントローラーに向いている。



そもそも、Mach3,4でなく、LinuxCNCを使うってのは、、、、根本的な所での違いは1ms単位のフィードバック制御ができる所で単なる3軸Gコードプレーヤーで有るのならばGRBLでも良いような気はしないでもない。

LinuxCNCのドキュメント、MESAのIOボード、IOボードに繋ぐドーターボードのインターフェースを見ていると、DCモーターや3相モーターとエンコーダーを繋ぎ、サーボ制御自体をPC上(LinuxCNC上)で行うこと(フルクローズドループ制御)ができる事がLinuxCNCの一つの大きな特徴。

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

シマリス技研さんのレーザーに関する記事

シマリス技研さんが、中華レーザー 彫刻機を購入されて、レーザーに関する記事をUPされています。

レーザ彫刻機の調達
レーザ彫刻機と目の保護
レーザ加工機でマーキング

このブログでは、レーザーマーカー、レーザーカッターの類の運用に関しての記事は、私自身レーザー系での加工の専門でもなんでもないので控えておりますが、そっち方向の専門?であるシマリス技研さんが記事とされたので、少々書かせていただきます。

レーザーでのマーキング、カット等、中華部品のお手軽さから結構日本のWebページ上で見受けられます。
切削加工と違い加工工具として物理的に物がぶつかる事による加工ではなく、エネルギー自体を加工物にぶつけて加工するレーザー加工は、実質的に燃える物なら燃やして、金属等なら溶融、蒸発しています。
当たり前のことですが、加工時の材木樹脂金属等々から立ち上がる煙、匂いもアレですが、人間が吸ってあまり良いものではないはずです。

レーザーとゆう強い光が物にぶつかる事により、熱に変換され、加工するものなので、レーザーの出力が強ければ特に、その反射光も、モノにぶつかり熱に変換されます。ですので、その運用時には、燃えない箱の中に納めておいたほうが安全です。
海外のWebサイト、動画等々で剥き出しレーザーがありますが、オススメできません。
ちゃんとしたメーカーのCO2レーザーカッターとか、可視光でない波長のレーザーの場合、保護用の箱の覗き窓部分に使われている材料は、CO2レーザーの波長をカットするフィルタの付いた物だと思われます。(その為箱を閉めないと加工できない)


シマリス技研さんの記事中の目の保護、とても重要です。
2桁Wの出力、反射の多い金属の加工と言われてますが、単純に強い光は余り目に良いものではありません。

失明は、、、、、明らかに目が見えなくなってしまうので明らかに解ると思うのですが始末が悪いのが視野が掛ける事。
私自身、一時期病気?で視野が欠け、眼科に通ったことが有るのですが、人間2つ目が有るので、欠けた部分を脳内であたかも見えている様に補完してしまうので(実際には欠けた所は見えていない)気づきにくく厄介です。
病気の場合は治る場合もありますが、レーザー光で網膜を焼いてしまうと、視野が欠けたままとなってしまいます。
もしかしたら、日本のWeb上でカバーも欠けずに自作、中華レーザーを運用されている方々の中には、、、と。

シマリスさんも書かれていますが、目の代わりにWebカメラ等々を。

ちなみに会社が社員に対して守らなければならない労働安全衛生法のレーザー光線による障害防止対策要綱(厚生労働省)のページを貼っておきます。

http://www.mhlw.go.jp/bunya/roudoukijun/anzeneisei/050325-1a.html

通常の刃物が回る加工機とはまた違った危なさ、が有りますが、きちんと安全対策をして使えば便利なものだと思います。

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

LinuxCNCで位置決め用のカメラを設定する。

linuxcnc_camera.png

上記の画像のように、LinuxCNCのAxis_GUI内に市販のUSBWebカメラを利用した位置決め用のカメラスクリーンを入れてみました。

LinuxCNCのWiki内の記述Embed Live Video to Axisでは、現状Liveイメージで配布されているdebianのLinuxCNC2.7のAxis_GUIにカメラスクリーンを入れることは出来ますが、画像のようにカメラ画像にオーバーレイするようにターゲットスコープ状のモノを配置することが出来ませんでした。

で、LiniuxCNCのフォーラム内を掘ってみると、CamView for Wheesy and Jessieとゆうスレッドが有りました。
2ページ目の下から2つ目の書き込み内のcampy.zipをクリックしダウンロード。
解凍した中にあるCamPY_READ.MEとゆうテキストファイル内に記してあるようにすれば、、、、、LinuxCNCのGUI内にエッジファインダーとして使えるカメラスクリーンを表示することが出来ます。

具体的には?各種ソフトウエアをインストールし、セットアップ用のCamPy_setup.pyとゆうスクリプトを実行、使用するConfigファイルのフォルダ内に解凍したディレクトリ内にあるcamview.gladeをコピー又は移動。
iniファイルの[DISPLAY]セクションに
EMBED_TAB_NAME = Camera
EMBED_TAB_COMMAND = gladevcp -x {XID} camview.glade
と記述するだけです。

外部ソフトウエア?とゆうかプラグインとゆうか、そんな感じで使うソフトウエアは、video4linux2とゆうようで、USB接続のカメラをコントロールするソフトウエアのご様子。


上の方のLinuxCNCのWiki,Embed Live Video to Axisにも書いてありますが、640x480程度の画像でも、使い方によりけりで結構正確な位置決めができるのでは?と思います。
もちろん、画像自体をモーションコントロールに使用することはできませんが、決まった位置への移動の他に、長さの解っている2点間をカメラのエッジファインダーで位置を計測、コンピュータ内の移動量と照らし合わせてキャリブレーション、とゆう使い方をすると良いと思います。
この事は単純にLinuxCNCに限らず、GRBLその他のNCコントローラーでもターゲットスコープをオーバーレイするUSBウェブカムで撮れるソフトウエアを使うことにより、キャリブレーションや正確な位置決めが行えるのでは?と思います。

ちょいと話しは逸れますが、RaspberryPiにUSBインターフェースを介さずに直接繋げるPyCameraが有ります。
USBインターフェースを使用せず、直接つなぐことで、結構なフレームレートでの表示が可能です。
PiCameraのAPIがPython等でしっかりしているので、上手に使うことが出来れば、、、とも思います。

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

PSoC5LPのGRBL

以前の記事にてSTM32のGRBLや、LPCのGRBL等々、元々のATMEGAでのGRBLの他MCUへの移植がGithubに上がっているのを紹介してみましたが、今回はPSoC5LPでのGRBLです。

bdring/PSoC_Grbl

Buildlog.Net Blog上で公開されてる作成記事?のソースが上記GithubのURL先に有ります。

作例は秋月電子で取り扱っているPSoC 5LP Prototyping Kitを使用しています。
このキット単体で書き込み器も付いているので、コレ一枚買うだけでPSoC GRBLになります。
また、開発環境であるPSoC CreaterはCortexMシリーズのMCUにしては珍しいメーカーご謹製で、Webサイトからダウンロードして使用出来ます。もちろん書き込み量の制限はありません。
このボードを素で使用するならば、I/O 電圧が5VとなっているのでArduino等を使っていた方は使いやすいのでは?と思います。


PSoC 5 Port Of the Grbl 1.1 CNC Controller


ブログ内の記事には、ロジックインプットのデバウンサの実装や、3軸のみならず、多軸化するような記事も。






デジタル信号を扱うようなモノを作ったり信号を云々するような用途にPSoC5LPはとても便利です。

ブログにはカレントダウン信号生成やLCDパネルによる表示を追加したりとゆうものが書かれてますが(多分記事通りやれば動く)、Github上には基本となるGRBLのソースコードが上がってるのみです。












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

BeagleboneBlackのHDMI出力の解像度変更

一つ前の記事「OSOYOOの3.5インチTFT HDMI タッチパネル液晶パネルを試す。」で使用したHDMI入力の出来る液晶パネルを取り上げましたが、ホントの所RaspberryPi3で使いたかった訳でなく、BeagleBoneBlackで使えないかしらん?と思い購入してました。

BBTFT7.jpg

BeagleboneBlack、PCと接続してMobaXtermにてX11Forwardingにて表示、リモートコントロールしてましたが、スタンドアロンでテスト用のNCコントローラーとして使う事ができればなぁ、と。
単純に、BeagleboneBlack側を何も設定せずにHDMIに繋げば、表示出来る最大解像度で表示はできます、が、文字等とても小さく、頑張っても読めないくらい。

BeagleboneBlackのHDMIに関してはこのブログ内の記事にて、過去にHDMI-VGA変換器を使ってディスプレイ表示や、秋月で売っているTFT液晶モジュール、ATM0430D5を使ってのディスプレイ表示などをしましたが、BeagleboneBlackのHDMIに関してRaspberryPi程メジャーではないためかWeb上の情報が極端に少なく、また少々前の記述が多かったので困りました。

色々とコネコネ探しましたが、結局の所elinux.orgBeagleBoneBlack_HDMI内のModesetting driverの記述通りに。
英語が不自由なので、その記述をWeb翻訳した所、難解?な翻訳で理解ができませんでしたが、実際の所この通りに。

その部分の、、多分このように伝えたかったのであろう訳(意訳?)を書いておきます。


最新(2017-04-09現在)のDebianイメージのデフォルトは、xorgのxorg-video-fbdevドライバを使用しています。
このドライバはxrandrを使用して解像度を変更することはできません。解像度を変更したい場合は、xorgコンフィグレーション /etc/X11/xorg.confを変更してxorg-video-modesettingドライバを使用します。多くの以下の手順は、あなたがmodesettingドライバを使用していると仮定します。
訳終わり。

とゆうことで、xorgのコンフィグレーションである /etc/X11/xorg.confファイル内のfbdevドライバを使用している所をmodesettingドライバを使用するようにすればいいとのこと。modesettingと書くと分かりづらいですが、ModeSettingドライバ、です。


ですが、私にはサッパリわかりませんでした。
ググる先生に問い合わせた所?出て来るページはuEnv.txtを書き換えるものばかり、、。

かなり探してDFLとゆうページに。
このページ内のBeaglebone Black (BBB) xorg.conf with Samsung S22B300とゆうページにほぼ回答となる記述が有りました。
このページの記述では、サムソンのHDMI入力の有るディスプレイの1280x1024解像度の記述ですが、コレを1024x768解像度に書き直したものがコレです。

/etc/X11/xorg.conf

Section "Monitor"
Identifier "Builtin Default Monitor"
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
EndSection

Section "Device"
Identifier "modesetting"
Driver "modesetting"
EndSection

Section "Screen"
Identifier "Screen0"
Device "modesetting"
Monitor "Builtin Default Monitor"
DefaultDepth 16

SubSection "Display"
Depth 16
Modes "1024x768_60.00"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Builtin Default Layout"
Screen "Screen0"
EndSection

ブログにベタ書きなので、表示段階でインデントがおかしくなってると思いますが、インデントをちゃんと入れると見やすいはず。

具体的に書くと、コンソールを開きsudo suして、nano /etc/X11/xorg.confと入力Enterキーを押してテキストエディタにて元の記述から上記の記述に変更、コントロールキー+xで変更を保存、再起動で前記事で使った小型液晶パネルの解像度のデフォルト値が上記の解像度に変更、表示されます。

Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync とゆう記述は、CTVコマンドを使い別コンソールを開いて

ctv 1024 768 60
と入力しEnterで出力される記述そのままです。
1024x768 60Hzです。

800x600 60Hzの場合には、
ctv 800 600 60
と入力します。

Modelineを変更したならば、Section"Screen"内のSubSection"Display"内のModesの記述も、Modelineで指定した解像度に変更します。コレが間違ってると、解像度が変更されません。
よく見ると、参照参照しているので、参照元と参照先が違うと解像度が変更されなかったりGUIが表示出来なかったりします。
このconfファイルは、HDMIモニタを繋いだBeagleboneのUSB入力をPCに接続させ、MobaXtermなどでX11forwardingでGUI操作にてコンソールを開いて書き換えることが出来るので、HDMI出力の表示ができなくても、OS自体は動いているので変更が可能です。

これで先のBeagleBoneBlack HDMIのページの記述通り、ModeSettingドライバを使用するようになりましたので、ページ内のForcing A Resolution(解像度の強制変更)ができるようになります。
ただ、X11forwardingでは記述内の
export~
が上手く行かなかったのでHDMIで表示している側のモニタ、BeagleboneBlackに繋いだマウスとキーボードでxrandr(エックスアールアンドアール)を実行しました。

下記画像は、上記confファイルに書き換え、再起動、コンソールを開きコンソールの表示フォントが小さいので大きく変更、の後、xrandrと入力Enterすると、使用できる解像度が出てきます。

コンソール、ターミナル、テキストエディタの文字サイズの変更はRaspberryPiのRaspbianのDebianで使用されているソフトと同じ物なので、RaspberryPiで検索すると沢山出てきます。
画像の文字サイズは16。

BBTFT6.jpg

BBTFT8.jpg

直上の画像、最後の行、
xrandr --output HDMI-0 --mode 800x600 --rate 60.
としてEnterを押すと、直下の画像のように強制的に表示解像度が変更出来ます。
BBTFT9.jpg


数枚、比較対象として、800x600と1024x768の表示の画像を置いておきます。



解像度800x600 60Hz
BBTFT10.jpg

解像度800x600 60Hz
BBTFT11.jpg

解像度800x600 60Hz
BBTFT12.jpg

解像度800x600 60Hz
BBTFT13.jpg

解像度1024x768 60Hz
BBTFT4.jpg

解像度1024x768 60Hz
BBTFT5.jpg

640x480も試してみたのですが、今回は?上手く行かず。


試してはいないのですが、HDMI入力の有る、更に、HDMI-液晶パネルブリッジが解像度の高い画像をスケーリングできる物がベアな基板と液晶パネルですが、もっと画素数が多い物もebayやAliで沢山売っているので、上記の記述で解像度の変更ができると思います。

また、普通の液晶ディスプレイでHDMI入力の有るものでも、同様だと思われます。

RaspberryPiのように、単純にフレームバッファを挟んでの解像度の変更が??なので、直接的な解像度の変更です。

タッチパネル部分は、、今回の液晶パネルの場合、xpt2046とゆうタッチパネルインターフェースなので、DLFとゆうページ内の記事にも接続方法等がある記述も有りますし、他ソースでも沢山あるので、多分作動させることが出来るでしょう。

また、DFLとゆうブログ、フレームバッファについての記述も有るので、もしかしたらRaspberryPiのようにフレームバッファを噛ましたディスプレイ表示も出来るのかもしれません。

当然の事ながらHDMI出力の無いBeagleBoneGreen 、GreenWirelessではこの記事は役にたちませぬ。











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

OSOYOOの3.5インチTFT HDMI タッチパネル液晶パネルを試す。

TwitterのTLで流れていたOsoyooの3.5インチTFT HDMIタッチパネル液晶を試してみました。

この液晶パネル、RaspberryPi用を謳っているのですが、他の小型液晶パネルのラズベリーパイ専用とは少し違い、HD画質までの信号を受ける事が出来、表示できます。また、HDMIケーブルで繋いだ場合、オーディオジャックが付いているのでアンプ等々を繋げばきちんと音も出ます。

TFTLCDパネル自体が480x320ピクセルしかないので、高い解像度の信号を入力した際に細かい文字とか表現できずに潰れてしまいます。用途次第ですね。

一応RaspberryPi用として設計されているので、タッチパネルはRaspberryPiに繋がないと使えません。
RaspberryPiに重ねると、Piの基板から電源を引き込むので、液晶パネル側のUSB電源にUSBコネクタで電気を供給しなくて済みます。

tft005.jpg

コレは1080iで出力した所。一応マウスでアイコンをポインティングできますが、メニューの文字は識別不可能レベル。チョイと実用には??だけれども、ラズパイカメラ繋いで画像表示させたり、Pythonで大きめにGUIを作り制御用のソフトを走らせたり、グラフを見たりには使えそう。
慣れればある程度かもしれません。

TFT007.jpg

コレは1280x1240で表示。1080iよりも、わかりやすい、、、かな。
tft006.jpg

1280x1024のメニュー。
カタカナ表示は読み取り可能、英文字はちょいと潰れ気味。
この解像度もやっぱりなんらかのアプリケーションを作動させる時に対人間のGUIインターフェースとして、、、。

tft003.jpg

WiiUのHDMI出力を繋いでみました。実質画素数は480x320なのですが、とても綺麗に写ります。

TFT004.jpg

この状態でSplatoonをしてみましたが、敵?があまりにも小さく照準がを定めるのが非常に難しく、、難易度が上がってしまいました。
基本ゲームなので、フォント等が大きめに作られているので、表示上の文字が潰れて見えないことはありませんでした。
また、リフレッシュレートも多分遅くは無く、チラつく事もありませんでした。

tft009.jpg

で、HDMI出力の有るマザーボードでのLinuxCNC。
今まで触ってきた液晶パネルのように、AXISのウインドウが収まりきらない事も無く、普通表示されます。
文字とかは一部見づらいのですが、数字等はなんとか。
Gコード等を別PCで作り、ただ単にGコードプレーヤーとして、Gコードのスタート・ストップ等細かい操作をしない状態でつかうのであれば、この程度のモニタでも十分に使えるのでは?

TFT008.jpg

ボードの裏側。カニチップが付いてます。このRTD2660Hとゆうデバイス、Webで検索すると結構使われているようです。

参考
RTD2660H HDMI/VGA/NTSC/PAL Driver Board

HDMI/VGA/AV RTD2660H Video Converter Board

HDMI/VGA/AV RTD2660H Video Converter Board - wiki

このあたりのボードと、対応したもう少し大きめの液晶パネルを組み合わせると丁度よいサイズのモニタが作れそうです。

今回はAmazonで購入。Aliとかで調べてみましたが極端な価格差はありませんでした。






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

中華VFDとスピンドル。

中華通販もしくはebay等で売られている中華VFDとスピンドルを駆動させてみました。
VFDは110Vの物、それにともなってスピンドルも。
この会社のVFD、海外では安価なことで広く使われているようで、CNCZoneや、その他サイトに設定方法について色々と書かれています。

LinuxCNCもHALのコンポーネントとして、このVFDのサポートをしてますし、知りませんでしたが、Mach3,4も、プラグインで、Machの画面上からスピンドルのOnOff、回転数変更ができるプラグインがあるようです。

このVFD多機能で、設定項目が多く、外部コントローラーを使用してかなり複雑な作動ができるご様子。
NC用途用としては、とりあえず回転数が割りと簡単に変更できることが必要なので、マニュアルを参考に可変抵抗にて回転数を可変させてみました。

動画上、音くらいでしか、スピンドルが回転しているかの確認ができませんが、ちゃんと回ってます。

RS485を用いると、各種設定や作動の操作ができるようですが、まだ、そんな段階ではないので、試しておりません。
USB-RS485ブリッジなインターフェースが海外通販等々でも、とても安価に販売されています。

国産のインバータで、単相100Vの1.5kWくらいの物、見当たりませんが、有るのでしょうか?







一応、ブログを始めた当初のに決めた記事番号1000番で更新停止とゆうのがとうとう来てしまいました。
さて、どうしましょうかね。
 

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

LinuxCNC用のMesaの外部I/Oボード(Ehernet編)

一つ前の記事では、パラレルポートのEPP通信接続でのLinuxCNC用外部I/OポートであるMesa7I90HD Parallel/SPI Anything I/O cardの接続?(書いてないような気がする)とHALピンが見えるまでのLinuxCNCへの設定を書きましたが、今回はEthernet接続での外部拡張I/O を取り上げます。

前回のボードだけ購入するのは送料的にもったいなかったため^^;
Ethernet自体、PCとの電気的絶縁(コネクタ内にトランスがある)が取れるのと、配線距離が稼げ信頼性が高いことから購入してみました。

購入したボードは7I92M Anything I/O Ethernet cardで、34本のI/Oが使用できます。

7i92m.jpg


ただ、今回はLinuxCNC公式のインストールイメージではHM2_ETHとゆうHostmot2ドライバがインストールされてません。素のDebian Wheezyからインストールし、Uspaceとゆう新しいRTAPIの実装のものを使います。

まず、Index of /cdimage/archive/7.11.0-live/i386/iso-hybridから、debian-live-7.11.0-i386-gnome-desktop.isoをダウンロード。私はウインドウズ上での作業でしたので、Windows用のUSBメモリにブータブルなISOファイルを書き込むソフト、Rufusを使い、ダウンロードしたISOファイルをUSBメモリに書き込み、インストールするPCへ。

LinuxCNCのライブディスクイメージ同様に使える(ハズ)で、USBメモリから、PCへインストール。

参考としたページはLinuxCNC公式のライブディスクイメージの有るGetting LinuxCNC内の7. Alternate Install Methods以下です。7.1. Installing on Debian Wheezy (with Preempt-RT kernel)以下の部分を参照しながらインストールを進めます。

注意として、OSインストール時にRootのパスワードを入力しないこと、と有ります。
また、Preempt-RT kernel とmoduleをsudo-apt getでインストールした後、再起動が必要です。

OSインストール、linuxCNC-uspaceインストールが終了し、LinuxCNCを立ち上げると、現時点での最新のLinuxCNC2.78が起動できます。

OSインストールの細かい所は端折ましたが、LinuxDebianのインストールに関してはWeb上に情報が豊富にあるので、ソレを参考にしていただきたいです。


この状態で単純にLanケーブルを接続し、、、、では、残念ながらボードとの通信はできません。
HM2_ETHの記述に依ると、PCとボード間の接続はケーブルのみを使用し、と、有るので、直接PCのEtherポートと7I92基板のEtherポートを繋ぎます。Lanポートを直接繋ぐ場合、昔であればクロスケーブルとゆう、入力と出力がクロスしたケーブルを使用したのですが、買いに行った所今時そのような商品はなく、通常のストレートケーブルに刺すアダプタとして、クロスケーブルとして使えるアダプタを購入、使用しました。

HM2_ETH内の記述に有るように、Ethernetのインターフェースに固定IPアドレスを設定します。
具体的には /etc/network/interfaces sudoしてテキストエディタを使用して追加編集します。

今回はPCのEthernetポートが一つしかなかったのと、 Private IPv4 address spaceを使用したので、記述自体は

auto eth0
iface eth0 inet static
address 10.10.10.1
  hardware-irq-coalesce-rx-usecs 0

としました。
変更を上書き保存し、再起動。

最後の行は
EthernetDriverでのIRQコアレーションのOnだそうで、

sudo ethtool -C your-ethernet-device-name rx-usecs 0
でもOnにできるようです。
殆どのシステムでパケット受信の待ち時間を短縮するようですが、NICとの相性?もあるようで、Marvel-chipset NICでは良くないらしくパフォーマンスの改善が無い場合は削除したほうが良いようです。

参考 Mesa Card: "No 7I92 board found" using mesaflash
  HM2_ETH

ここで、他Web上に有るように、PCを再起動せずにEthernetのみの再起動を行ってみましたが、エラーが出るばかり。
PC自体を再起動しましょう。

7I92上のジャンパスイッチのW5番を下にW6番を上に(ボードシルクの文字が読める状態で上下に)設定し、7I92自体の固定IPアドレスを10.10.10.10に設定しLanケーブルのクロスケーブルをPCと繋ぎ5V電源を供給します。


再起動したらコンソールを開き

sudo apt-get install mesaflash

し、最新のmesaflashに。

ここで、

sudo mesaflash --device 7I92 --addr 10.10.10.10 --readhmid

とコンソールに入力すると、現在7I92上のFPGAにコンフィグされたボードネームからピン番号、ピン機能その他詳細な情報が出てきます。

この記述、公式フォーラム内のどのスレッドに書いてあったか忘れてしまいましたが、7I92のマニュアルにも載ってません。

もちろんマニュアル通りの192.168.1.121とゆうアドレスを使ってもきちんと作動します。この場合Ethernetポートの固定アドレスはHM2_ETHのページ通り、192.168.1.1を設定します。

私の7I92Mは出荷状態にて、Stepgen,SSerialQCoutI/Obitが割り当てられてました。
どうも7i92_7i76x1D.bitとゆうFPGAのConfigファイルと同等な物。Hostmot2のソースファイル内のPIN_7I76_34.vhdとゆうファイルに定義されているピン配置と同じでした。

この割当自体は、Mesaの商品ページ内にMesaflashを使用してのFPGAのConfigの書き換え用ファイルが置いてあります。
また、この書き換え用のConfigファイル自体、事細かに設定変更ができるようにオープンソースとして公開されており、XilinxのISEにて、生成できるようです。

チェックとしてコンソール内にて

ping 10.10.10.10

とすると、PCと7I92が通信を始め、ボード上のグリーンのLEDがバイナリで接続回数を数えます。

pingの終了はコントロールキー+cです。


LinuxCNC公式 Editing MESA Bitfiles

7i92を使用したLinuxCNC自体のConfigファイルであるHALファイルとINIファイルは Questions: Mesa 7I92 Leadshine MX4660 4-Axis Stepこのページ内中頃の freeby.mesanet.com/7i92step.zip と書いたリンクをダウンロードすると入っています。

このHAL,INIファイルにて作動確認しました。
かなり前から有る、StepperのConfigと違い、PIDStepperとなってます。
Ether自体不良パケットが有った場合に、、、の保証?となるようです。

各所に記述が飛んでおり、なかなかにアレでしたが、全てLinuxCNCの公式内に記述があり、なんとか作動させることが出来ました。

国内のWebサイト上にはMesaのAnythingI/Oを使った記述は見かけないので、この際と思い、EPP、Ether接続な基板を試してみました。PCI PCIeを使用するボードは、既にPnconfWizardにあるので、なんとかなると思います。

今回のこの記事で、パラレルポートに依らないLinuxCNCの入出力が可能な事で、使用出来るPCも、パラレルポートの無いモノでも。
もちろん、今回のボードでは有りませんが、BeagleboneをUSB接続でx11forardを使い、Windows上からの操作もできるので誰も調べなかった?だけで、大概の通信方式の接続にての入出力が可能なことが判りました。

後の追加HALファイルやIniファイル等々は、公式の記述が纏まって書いてあるのでWeb翻訳なりを使い、また、日本のWebページ上にも、少々解説してある物もあるので、ソレを頼りにしてください。


外部パルスジェネレータとしてこのFPGAのボードを使うのは、通常25μS単位で動いているBase threadを使ったソフトウエアでのパルスジェネレートが、1000μS(1ms)単位のServo threadを使用するだけで(パルスジェネレーターを外部ハードウエアとするため)よくなり、Base thread自体の25μS単位で刻む処理、クロックの遅延、揺れ等を考慮しなくて良くなります。

参考 公式フォーラム内 7i92 setup help 中頃

コレはMachinekitを使うBeagleboneも、RPUとゆうCPUと独立した内蔵されているにも関わらす、別個で動いている外部パルスジェネレータ(として使っている)も、同じことです。
なので、PCと比べてどう考えても非力なARMプロセッサでも、LinuxCNCを動かすことが出来ています。
もちろん、Jitter自体少ないことに越したことはありませんが。



LinuxCNC自体、現在RTカーネルの種類と、通常のLinuxCNC、uspaceなLinuxCNCと、、、あと、DebianとUbuntuと、Debianの各種デスクトップとゆう、沢山の組み合わせで実行環境を選ぶことができますが、これだけ多いとどの環境を使っていいのか??と困りものです。

前回、今回の作動テストに使用したPCは、PCの中古屋で購入した富士通の企業カスタマイズなFMV-ESPRIMOとゆうもの。
CPUはかなり前のCore2DuoのE6550、2.33Ghzでの作動。チップセットは多分Q35。

今回、3つの環境をインストールしたので、それぞれLatencyhistgramで測ってみました。
このLatencyhistgram、グラフでの、Latencyの頻度を表示しますが、グラフ下のMaxとMinとゆう、最大遅延値も重要です。
また、負荷を掛けるために、画像上、ギヤが回っているウインドウを100個表示させています。(重なっているので分かりづらい)
このギヤ表示(動画)のウインドウはLatencyhistgramのウインドウ下部のGlxgearsとゆうボタンを押す事で、表示出来、表示させた個数、そのボタンの右側の数字として表示されます。


スクリーンショット - 2017年02月20日 - 21時30分33秒

コレはLinuxCNC公式のLiveディスクからインストールしたもの。デスクトップマネージャが軽いせいか、Glxgearsを100個表示させても、GUI操作自体の遅延も殆どありませんでした。パラレルポートからの出力設定時には、しょっちゅうでは有りませんが極稀にリアルタイム違反の警告が出ます。
外部I/Oパルスジェネレータを使用した時には、そのような警告は出ません。

2017-02-20-204323_1680x1050_scrot.png

コレはシマリス技研さんが公開しているLiveイメージをLinuxCNC2.78にUpgradeしたもの。Ubuntu自体Debianの軽めのデスクトップマネージャよりかなり重いので、Glxgearsを100個表示させた段階でGUIでの操作は不自由なくらい。LinuxCNC公式Liveイメージとヒストグラムの傾向は同じですが、Baseスレッドのヒストグラムの出方がちょいと違いますね。


2017-02-20-191803_1680x1050_scrot.png

コレは今回のテストに使用したLinuxCNC-uspace。MachinekitみたいにLXDEなデスクトップで試してみました。ヒストグラムのグラフ表示自体の傾向も全然違いますし、下の最大遅延値も違います。HM2_ETHを使ってEthernetでのドライバが有るのがunameなLinuxCNCしかありません。コレは、、どうも、LinuxCNCがMachinekitと枝分かれする際に出来たようで、パラレルポートでの出力もできますが、基本?外部パルスジェネレーターを使用すること前提なようです。
ただ、このような状態でも、外部パルスジェネレータとの通信自体、リアルタイム違反の警告が出てこないので、リアルタイム制御の範囲内に収まっているのでしょう。この状態でも、パラレルポートでの出力設定で作動させると、ホントに稀にリアルタイム違反の警告が出たりします。

uspaceでの作動、実はPOSIXとゆうUnixやLinuxの共通APIを使っているようです。

このRT-PREMPTを使用したもの、このブログ内でのMachinekitを用いたRaspberryPiでのFPGAを外部パルスジェネレーターとして使用しました。
残念?ながら、Bealeboneのリアルタイムカーネルがxenomaiなので、同じようにFPGAを用いた作動を試してみましたが上手くいかずでした。



たまたま今回はハードウエアの作動の為に色々な環境のLinuxCNCを試してみましたが、この先、LinuxCNC自体がどうゆう方向に行くのかは??で、今のバージョンで既に単なる3軸4軸5軸程度のGコードでの制御をするにはオーバースペック位の機能が有るので(下手すると産業用NCコントローラーにも載っていない機能が有ったり)、ムリにアップグレードせずとも、、とは思います。


LinuxCNC自体オープンソースで、ホビー用途向けのソフトウエアNCコントローラー開発の参考となってるはずで、LinuxCNC自体が開発完了してしまうと、他NCコントローラ自体の機能追加等々が、、、とも思うのでこれからも開発は続けられるのでしょう。

続きを読む

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

LinuxCNC用のMesaの外部I/Oボード

LinuxCNC、リミットスイッチ等々を各軸の+-やIndexに使ったり、ロータリーエンコーダーやリニアエンコーダーを使ったり、スピンドルのリアルタイム回転制御等々をすると、パラレルポートの入出力だけでは、とてもI/Oの数が足りません。また、PC自体のJitterの影響でStepconfWizardで生成するステッピングモーターへの司令パルスの周波数の上限が低くなったり、直交エンコーダー入力の最大入力周波数が低かったりします。

コレは元々PC上でのモーターのサーボ制御とLinuxCNCがフルクローズドループ前提のシステム設計となっていて、1ms以下の制御ループを回すために、25μS単位でのソフトウエアステップパルスジェネレータや、ソフトウエアPWMジェネレータを作動させるために出力する速度を制限しているようです。

使用するMCU内に、PRUとゆうプログラマブルリアルタイムユニットを内蔵するBeagleboneblack、Green等に使われるMachinekitには、この25μS単位で回るBaseスレッドが有りません。これはPRUが、パラレルポート出力のLinuxCNCで作動するソフトウエアパルスジェネレータや、ソフトウエアPWMジェネレータ部分の作動をするからです。
厳密に言えば、PRU自体PRUとゆう、マイコンであり、Beagleboneで使われるAM335xのメインで使われるマイコン部分とは別に作動して、Linuxが動いているメインのマイコンの負担を減らしています。また、AM335x自体にeQEPとゆうエンハンスド直交エンコーダーペリフェラルが3つ、ハードウエアとして載っているので、作動速度による直交エンコーダーの読取りの取りこぼしがありません。
モニタを繋がなければ、汎用GPIO自体は、OnOff、入力自体はServoスレッドの1ms単位での読取り、書き込み。UARTやSPI,I2Cといった通信器も、ユーザースレッドでの作動で、リアルタイムでなくなってしまいますが、ハードウエアとして内蔵しています。

RaspberryPi2や3でも、LinuxCNCは動きますが、RaspberryPi単体でのLinuxCNCの作動の場合、汎用GPIOを使用するので、パラレルポートを使用するPCみたいに、ソフトウエアステップパルスジェネレータ、ソフトウエアPWMジェネレータとなってしまうので、あまり速い信号を入出力する事ができません。
ただ、このブログ上で取り上げたRaspberryPi2,3と、FPGA,CPLDをPlutoStep/Servoとして作動させ、ステップパルスジェネレータやPWMジェネレータ部分を外部の~器として作動をさせることにより、RaspberryPi上でのLinuxCNCを普通に使うこともできます。また、Pluto~ではなく、FPGAやCPLDより安価なPICC32を使ったPICNCでも、同様な事ができるようです(PICNCは私が検証できず)。

LinuxCNCで使える一番安価?なMesaのFPGAカード、7I90HD Parallel/SPI Anything I/O cardを入手してみました。

7i90HD.jpg


ボード単価は$59で、$1=120円換算で7080円、但し一番安価なUSPSでの送料が$57.90掛かりましたので、14028円での入手価格となりました。支払いはクレジットカード払いです。
今回の入手はドーターボードや、パラレルポートへの接続ケーブル等の無いボード単体での購入でしたが、ケーブル類も一緒に購入しておくと、ボード作成やケーブル作成の手間が省けます。


以前には5I25 Superport FPGA based PCI Anything I/O cardとゆうPCIカードタイプのFPGAI/Oカードと、7I85S 4 Channel encoder, 8 differential output 1 channel Serial RS-422 interfaceとゆうドーターカードを購入し、高速入出力を試していて、国内Web上には余り情報が有りませんがLinuxCNCの最近のバージョンに含まれるPnconfWzardにて、I/Oその他Hal,iniファイルの生成が可能なようです。

今回は、このFPGAPCIカードよりも入出力が多いにも関わらず、少々安価なボードを。

この7i90HD、PCとの接続がパラレルポートのEPP通信での接続。圧倒的にPCIカードの方が通信速度が速いにも関わらず、ステップパルスジェネレータ等々のパルスジェネレータや、72ピンのI/Oなどを持っています。
EPP接続、とゆうことは、パラレルポートの無いPCではPCIやPCIeにてパラレルポートを増設すれば、となりますが、PCI系のFPGAI/Oボード自体もMesa自体が出しているので、そっちを購入したほうが良さげです。また、NetMos製のPCIパラレルポートチップでは、EPP通信自体をきちんとサポートされていないらしく、LinuxCNC公式のForum内のスレッドで注意を、とされていました。

EPP通信での外部パルスジェネレータとの、、となるとPlutoStep/ServoもPCのパラレルポートのEPP通信。通信器部分をSPIに置き換えたモノでRsaspberryPi2,3でのLinuxCNCの作動を確認してみましたが、この7i90HDも、どうもSPI通信が出来るインターフェースに置き換える事ができるようで、RaspberryPi2,3での使用や、odroidとゆう、beagleboneやRaspberryPiと同じようなARM_Linux上で作動をさせている方などなど、使い方によりけりでは有りますし、元のミニLinuxボードよりも7i90HDの方が高くつくような気がしないでもありませんが、そのような使い方も可能だそうです。興味がありましたら、上記キーワードで検索してそのあたり掘ってみると面白いかもしれません。

一応、現状LinuxCNC公式のディスクイメージとして公開されているDebianでのLinuxCNC2.7、また、シマリス技研さんのUPしているUbuntu12.04LTS上で動作するLinuxCNC2.6.0では、LinuxCNCのConfigurationSelector内のSampleConfigurations→by_interface→mesa→hm2-stepper→7i90と、サンプルコンフィグレーションが有ります、が、このサンプルでは作動しませんでした。
また、PnconfWizard内にも該当する7i90とゆう該当するボードの名前は選択することが出来ません。

このあたり、市販のソフトウエアだとクレーム殺到となるような事なのでしょうが、基本全てがオープンソースであるLinuxCNC、ソースコード読むなり、フォーラム内を検索するなり、なんとか自力で解決方法を見つけなければなりません。
5i25と7i85Sの時もまだ発売間もなく?PnconfWzard内に設定がなく、ちょいと困りましたが、今回も解決方法はフォーラム内に有りました。

PnconfWzardにて、同じEPP通信でのPCとの接続の7I43-P FPGA based EPP Anything I/O cardの7I43を指定してHal,iniファイルを作り、HALファイル内のhm2_7i43とゆう記述をテキストエディタのSearch→Replace機能を使い全てhm2_7i90に置換。loadrt hm2_7i90,,,,,とボードを呼び出す記述のconfig=に続く”で囲まれた記述内のfirmware=hm2/7i43-2/svst4_4.BITとゆう記述を削除する事でLinuxCNCが立ち上がり7i90が使用可能となります。
この.BITファイルの指定、7i43ボード等、古めのMesaボードはlinuxCNC起動時にFPGA自体のConfigurationデータをPCから送り込み、FPGAをConfigurationしてました。新しめのMesaのボードはFPGAのConfigurationファイルをコンソール内で使用するmesaflashとゆうコンフィグレーションコマンド(ソフトウエア)を使い、ボード上のSPIEEPROMに書き込みます。
ですので、各種インターフェースとして使えるドーターボード上の機能に合わせて、FPGA内の~器をmesaflashを使用して書き込みます。この時、PCとのインターフェースができていれば、別途書き込み器は必要がないようです。

また、このBITファイル自体、XilinxのISEとゆうFPGAのIDEで作成されたもののようで、FPGA上に生成するStepGenやPWMGen自体のソースコードまで、オープンソースで提供されており、XilinxのIDEの使い方や、FPGAに明るい方ならば、このBITファイル自体をカスタマイズして生成も出来るようになってます。
ですので、8軸分のステップパルスジェネレータ等々個々で必要な外部回路をFPGAの容量の制限はありますが生成することが可能です。

また、PCI,PCIeの34I/Oのボードしか有りませんが、Plug-N-Go Kitsとゆう付属ドーターボード用のFPGAのコンフィグのなされたケーブル付きのボードも販売されています。




上の方にも書きましたが、フィードバック制御前提なソフトウエアの仕様の為、Mach3のUSBSmoothStepperのような、USB接続な外部パルスジェネレーターやUSBCNCのようなUSB接続は公式にはサポートされていません。

今回PnconfWizardで生成したHALファイルiniファイルを眺めていると、通常PC付属のパラレルポートを使った場合の設定Sarvoスレッドの更新速度が1ms指定となっている所が、LatencyTestで測ってPnconfWzardで設定したjitter値によってSarvoスレッドの更新速度が200μSとなっていたり、PC自体のレイテンシに応じた速いフィードバックループとなるように設定されていました。
また、ステッピングモーター単体使用の設定なはずなのに、emulatedEncoderは使用せず、PIDでのHAL記述。
このあたり、制御の仕方等々を、となると本の2,3冊分の記述量となってしまいますので、LinuxCNCのマニュアルを一通り読んでみることをお薦めします。


ソフトウエア自体オープンソースで、各種ホビー用ソフトウエアNCコントローラーに使われて、更に無償使用が可能なのですが、その能力を十分に使おうとすると、やはりソレナリに掛かってしまいますね。

コンピュータ数値制御自体、色んな要素が多々あり、時には矛盾を持ったシステムで、CADで図面を書いてGコードに変換して、NCコントローラーで作動、加工、、、、だけでは、本来の正確な加工は難しく、LinuxCNCと同等程度の設定が必要なはずだと思います。それでも、曲線部分は正確なトレースが難しく、、。



今の所LinuxCNCで一番コストパフォーマンスの高いのは、、、BeagleboneGrennでしょうな。。

続きを読む

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

MobaXterm以外でのWindows上からのMachinekit

MachinekitやLinuxCNCの事をちょいと調べていたら、LinuxCNC公式のForum内のrunning BBB + Machinekit newbie questionsとゆうスレッド。

BeagleboneでのMachinekit、Windowsのリモートデスクトップで繋がりますが、Machinekitを立ち上げると、ディスプレイが無い的なエラーでMachinekitが立ち上がりません。$DISPLAY環境変数のエラーのようです。

MobaXtermでは繋がるので、何が違うのか?と思ってたのですが、X11forwardingとゆう、X11の機能を使うご様子。


なんなんなん行く?とゆうサイトのX11 Forwardingとゆうページと、https://www.ja2yka.org/~hosono/とゆうサイトのXの飛ばし方とゆうページを参考にさせて頂きました。

上記のページを参考にXmingとXming-fontsをXming X Server for Windowsからダウンロード、インストール。

Xの飛ばし方のページの方のPuTTYの設定にて下記画像のように設定。

putty0.png

putty1.png

Xmingの設定は、MobaXtermがインストールされているせいか、Xmingのアイコンをダブルクリックしても立ち上がらず、、、だったので、そのままPuTTYで設定した接続にて接続。

すると、下の画像のようにコンソール画面が表示され、ユーザーネームとパスワードを入力、machinekitと入力し、Machinekitを立ち上げると、、

putty3.png

putty4.png

無事Machinekitが立ち上がり、作動しました。

MobaXtermでの接続と違いコンソール画面と、立ち上げたソフトウエアが別ウインドウで表示されます。
表示の更新がMobaXtermよりも速いように感じるのは気のせいでしょうか。


BeagleboneBlackはHDMI出力が付いているので直接HDMI出力を使い出力させてもいいと思いますが、BeagleboneGreenや、HDMI出力(モニタ出力、RGB出力)で使用しているピンの中にeQEP1、2とゆうハードウエアエンコーダーインターフェースの1番と2番が有るので、ソレを使う場合、直接駆動のモニタ出力は使用できなくなってしまします。

Machinekit(LinuxCNC)の設定云々をイジる時は、MobaXtermのように、デスクトップ自体を表示させてテキストエディタを幾つか開き編集をするほうが、便利だと思いますが、一旦設定が決まってしまえば、このようなアプリケーションのウインドウ単体で触れる接続を使うのも良いのでは?と思います。

Windowsに限らず、MacやLinuxマシンを使ってのBeaglebone,Machinekitの操作等々も、このX11Forwardを使って他PCへBeagleboneのウインドウを表示させることも出来るようです。


以前の記事、DE0-NANO-SoC FPGAでMachinekit/LinuxCNCでDE0Nano-SocでのMachinekitを紹介しましたが、MobaXtermを使いわけも分からずWindows上でウインドウが開きましたが、多分このX11Forwardを使っていたのでは?と思います。

私自身Linuxには不慣れで、、、。MachinekitやLinuxCNC自体も、機能が多岐に渡るので全てを把握する事はとても難しいことで、LinuxCNCの公式のWikiに書いてある事も、LinuxCNC自体が出来ることの極一部で、Wiki自体に書いてないことも、公式のフォーラム内に多数有ります。
特に新し目の特に重要で無い、特定の事柄はWiki内には記述が無く、フォーラム内に有ることが多いです。

人それぞれ、構築したNCフレームもそれぞれ、必要となる機能もそれぞれなので、フォーラム内を検索して情報を掘っていただけると有り難いです。

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

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

あきらひとし。

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

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

メールフォーム

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

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