Linux
Arduino,
Ubuntu,
LabVIEW,
Wine,

Ubuntu MATE 17.10でWindows版LabVIEW2017を起動しArduinoと接続する

LinuxからLabVIEWを使いたかったので、Wineを経由して起動し、Arduinoとの接続を確認した。

参考URL :

https://forum.winehq.org/viewtopic.php?f=2&t=27320 (WineのUSB接続)
https://wiki.winehq.org/Wine_User%27s_Guide#Serial_and_Parallel_Ports (同上)
http://guruguru123.hatenablog.com/entry/2015/06/25/233238 (ArduinoとLabVIEWの接続)

導入手順 :

1.ソフトウエアのインストール

Ubuntu MATE 17.10にWineをインストールする。フォント導入のためwinetricksもインストールする。

sudo apt install wine-development winetricks

Wineにフォントをインストールする

winetricks allfonts

winecfgを起動し、WindowsのバージョンをWindows10に設定する。

Screenshot at 2017-11-19 09-12-17.png

ここでLabVIEW2017日本語版(32bit)をダウンロードし、ファイルをダブルクリックするとWine経由でLabVIEWのインストールが始まる。

http://www.ni.com/download/labview-development-system-2017/6682/en/

同様にWine経由でVISAドライバ(Windows版)、 JKI VI Package Manager (VIPM:Windows版)をインストールする。

http://www.ni.com/download/ni-visa-5.0.3/2251/ja/
https://vipm.jki.net/download

2.LabVIEWとArduinoの接続の設定

VIPMを起動し、Digilent LINXを選んでインストールする。

Screenshot at 2017-11-19 15-51-37.png

インストール後、LabVIEWを起動する(Ubuntuのアプリケーションメニュー→その他→LabVIEW2017(32ビット)で起動)とライセンスの入力を求められるので、ライセンスキーを入力する。
(ログイン画面に移ろうとするが失敗する)

LabVIEWのトップ画面が現れたら、Ardiuno(Ardiuno Unoを使用した)をPCにUSB接続する。

端末(Ubuntuのアプリケーションメニュー→システムツール→MATE端末)を起動する。
lsusbによりArduinoがUbuntuに認識されていることを確認する。

lsusb

また、usbポートがWineのcomポートに割当てられていることを確認する(下図参照)。

ls -l ~/.wine/dosdrives

Screenshot at 2017-11-19 09-16-42.png

この図では/dev/ttyUSB0がcomポート33番に割り当てられていることを示している。

3.LabVIEWからArduinoの制御をおこなう

LabVIEWのメニューからツール→MakerHub→LINX→Generate Firmware Librariesを選択し、ファームウエアを生成する。

Screenshot at 2017-11-19 09-38-35.png

ArduinoがPCと接続されていることを確認する。

LabVIEWのメニューからツール→MakerHub→LINX→LINX Firmware Widzardを選択し、Arduinoへファームウエアの転送をおこなう。

Wizardの手順に従い、Arduinoの機種名(Unoなど)、comポート番号(2.で調べたもの、図の場合はcom33)などを入力する。
最後にFinishのボタンをクリックするとArduinoにファームウエアが転送される。
(ArduinoのLEDが点滅することを確認すること)

ファームウエアが転送されると回路図と緑のボタンのついたフォームが表示される。
回路図のとおりにArduinoにLEDを接続するか、テスターであたるなどして、
フォームのボタンをクリックしたときArduinoの指定のピンでLEDが点灯(5Vが出力される)することを確認する。

Screenshot at 2017-11-19 08-08-36.png

4.トラブルシューティング

.NETのインストールが失敗するときは、winetricksから.NETをインストールし、再度LabVIEWをインストールする。

winetricks dotnet462

ArduinoがLabVIEWから制御できないときは、Ubuntuでログインしているユーザーの所属グループを確認する。USB(シリアルポート)の制御のためには、ユーザーがsysかdialoutグループに所属していることが必要である。

また、USBttyがcomと繋がっていない場合はシンボリックリンクをはる。
(LabVIEWが起動していることを確認すること)

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com33

Wine上のLabVIEWは動作が緩慢なので、処理が止まって見えたり、画面が真っ黒になってもしばらく待って様子を見ること。

VISAのインストールに失敗するときはwinecfgでWindowsのバージョンをWindowsXPにする。

.NETのインストールで、

”ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path.”

とエラーが出て失敗するときは、sambaとwinbindをインストールするとよい。