この記事は、「プログラミングが苦手な人用のプログラミング言語」として有用なLabVIEWの紹介記事です。
このブログを初めたころに似たような記事を書いていますが、記事が増えた今となっては様々な例を紹介できるようになったので、もう少し具体的に紹介できればと思います。
以下のような思いを持っている方は特に参考にして頂けるかなと思います。
- 新しい年になって何か趣味を探したいな
- 仕事に役立つスキルを身に着けたいな
- プログラミングに興味があるけれどよくわからないな / 昔挫折してしまったな
- LabVIEWって聞いたことはあるけれど、どんなことができるか具体的にわからないから始めるのが不安
- LabVIEWって今でも使われているの?役に立つの?
私自身は、かつてプログラミングという言葉を聞いただけで憂鬱になるくらいにはプログラミングそのものが苦手でした。きっと同じような思いを持っている方も多いと思います。
でもこれからの時代、様々な場面でプログラミングは避けて通れないかもしれません。
直接プログラムを書く必要があるわけではなくても、いまや義務教育の場である小学校でも今やプログラミングは必修科目となっており、「国語算数理科社会」と同じくらい必要であるとみなされていることからも、今後「知ってて当たり前のこと」扱いされる素養となる可能性は高いと思います。
ただ裏を返せば、しっかり学びさえすれば、小学生でも学べる、楽しめるのがプログラミングだ、とも言えます。
そんな考えを広めたく、大人には大人のやり方で、LabVIEWを通してプログラミングに慣れ親しむ人が多くなればいいなと思いブログ発信をしてきました(個人的にはLabVIEWは小学生でも扱えると思ってはいますが)。
これまで250記事以上紹介してきた中のほんの一部をピックアップしたのが本記事ですが、少しでもLabVIEWに興味を持ってもらえる方が増えるといいなと思います。
なお、プログラミング言語としてLabVIEWが至高の選択肢だ、という考えを広めたいわけではありません。
正直なところプログラミングを学ぶにあたって選ぶ言語は何でもいいと思いますが、「こんな言語もあるよ」ということをこうした記事で広めてもっとLabVIEWが広まることで、コミュニティがもっと広がり、自分より頭のいい人がツールキットやライブラリを作ってくれて私の趣味がもっと充実するようになればといいなと考えています。
LabVIEWを学ぶといいことあるの?
そもそもLabVIEWってどういうもの?
LabVIEWでできることを紹介する記事ではありますが、そもそも「プログラミングという言葉は聞いたことあるし、CとかPythonとかよく耳にするけれど、LabVIEWって何?」な方もいるかと思います(そういった方はこの記事になかなかたどり着けていないかもしれないですが・・・)。
LabVIEWは、グラフィカルにプログラムを書くことができるソフトウェアの名称ですが、このソフトウェアで扱える、プログラミング言語の一種ととらえることもできます。
なので難しいことは考えずに、「プログラミング言語そのもの」と考えても使用する上での不都合はありません。
プログラミング言語と聞くと、イメージされる多くはCとかPython、JavaScript等々になるかなと思います。
よくイメージされるプログラミング言語は「テキスト言語」ですが、LabVIEWは全く違います。
すごく大雑把に説明すると、LabVIEWは「アイコンとアイコンを線でつないでプログラムを書く」ため、テキストを羅列していくようなことをせず、見た目が大きく異なります。
下の図の右側に示している二つの画像の下側が、いわゆる「LabVIEWのプログラム」になっています(左右の画像で同じことを行わせているわけではないので単純に比較できるものではありませんが、あくまで見た目の違いとして認識してもらえればと思います)。
どれくらい違うかもう少し知りたい、という方は、テキスト言語の代表としてPythonと比較した記事が参考になると思います。
もちろん、LabVIEWを学んでないと、いくらこうした「他とは違う」という点を指摘されたところで実際にプログラムを読むことはできないと思いますが、LabVIEWはプログラム(実現したい処理の内容)を視覚的に表現するため、テキストを書いていくようなプログラミング方法で挫折した方にとってはLabVIEWの方がやりやすい、という感じやすいかなと思います。
あの機関でも使われている
いくら他のテキスト系言語と違うからといって、それだけでLabVIEWをやろうという気にはなりにくいかもしれませんね。
特に仕事に使うスキルとして考えた場合に、やはりこれが実際に使われているかどうかという点は気になるのではないでしょうか?
たくさんあるプログラミング言語でどれを学べばいいか、ということを考えるとき、一つの参考になるのは、世の中でどんな言語が使われているかを知ることかと思います。
ということで唐突ですがアメリカNASAの「2024年にNASAで働くための10のプログラミング言語」の記事を引き合いに出します。
本文の内容をすべて読む必要はないのですが、10番目に挙げられている項目をみてみてください。
LabVIEW、ありますね。
他にも有名な言語がある中で、なかなか健闘(?)しているものと思います。
宇宙開発を担う、誰もが知っている機関が推奨しているようなプログラミング言語、と聞くと、結構便利なプログラミング言語なんだな、というイメージが何となくするのではないでしょうか?
私が大学に行っていた時にも、研究機関でLabVIEWを使っていた人たちは多くいました。
そのため、一般的にはどちらかというとメジャーではない、でも知っている人は知っている、というような感じかなと思います。
LabVIEWの特徴
上で紹介した記事でも、10のプログラミング言語が紹介されていました。
じゃあ結局プログラミングするならどんな言語で始めてもいいじゃないか、と思われるかもしれませんが、その通りです。
別にLabVIEWでなければいけない、ということはないです。
ただ、それぞれの言語の特徴を知ることで、自分の目的にあった言語を選ぶことはできるかなと思います。
それぞれのプログラミング言語は、それぞれ得意なことがあります。
これは、他の言語でも同じことあるいは似たようなことができるけれども、この言語でやった方が楽、というような内容です。
数値計算、画像処理、ネットワーク活用、ゲーム作り、一言にプログラムを作ると言ってもその目的は様々あるはずで、趣味としてやるにしても一応目的を持った方が達成感が得られやすいですしね。
例えばPythonレベルになると、ユーザー数も多く、数多くの「モジュール」が公開されているので色々なことができる環境が揃っています。
いろいろな事がやりやすく、文法上コードも見やすいものになるため、「プログラミングを学ばないといけない!けど何をやったらいいかわからない」という人がやって、まず「選ばなければよかった」と後悔することは少ない選択肢かなと思います。
他にも、例えばウェブブラウザ上で何かを動作させるような処理を行わせるには、JavaScriptがまず挙げられることが多いでしょう。
ではそんな強力なライバル(?)がいる中でLabVIEWの特徴は何かということを挙げるとすると、以下のような感じかなと思います。
- プログラミング初心者に優しいけれど本格的なプログラムも書ける
- 並列処理の実装が楽
- ユーザーインタフェースを作りやすい
- ハードウェア操作がやりやすい
私個人としては、プログラミング初心者にとってPythonよりもLabVIEWがやりやすいと思いますが、これは個人個人で感じ方が違うとは思います。
でも、例えばLabVIEWはユーザーインタフェースを作りやすい、というかそもそもユーザーインタフェースを作らないとプログラムが書けないという点は特にPythonと比べると優位性が高いと思います(この点はPythonではなくC++と比べると似ている感覚を持つ方もいるかもしれません)。
また、そもそもLabVIEWが誕生した背景として、プログラミングに詳しくない研究者等が使用するのに適した言語を作ろうという経緯があるため、こうした研究者が扱うハードウェアである計測器の操作をしやすいということが挙げられます。
もちろん、LabVIEWの特徴はこれ以外にもあります。
ただ、いくらそういった特徴を並べても実際にプログラミング未経験だったりする方にはイメージが付けづらいと思うので、とりあえずは「それぞれの言語には得意なことがある」ということを頭の片隅に入れたうえで、LabVIEWでどんなことができるかを実際の具体例を次の項目で見て頂ければと思います。
LabVIEWでこんなことができる
では、これまで私のブログで公開してきた記事を挙げながら、LabVIEWでこんなことができるよ、ということを紹介していきます。
各紹介にはその内容を紹介した記事のリンクを貼っています。
具体的なイメージをつけることで、「こんなこともできるんだ」ということを知って興味をもったらその記事をのぞいてみてください。
ハードウェアの操作
LabVIEWといったらこれ、というユーザーもいるくらい、LabVIEWはハードウェア(主には計測器と呼ばれる機器類)を動かすのに強みがあると思います。
LabVIEWはハードウェアの操作を行うプログラムを作るのが他の言語と比べてやりやすいです。
その中でも最も簡単なのは、LabVIEWを提供しているNI社(今現在はEmerson社の傘下に入っていますが)が出しているハードウエアとの連携です。
1つの記事でざっくり、ハードウェアの操作を行うプログラムをLabVIEWでどのように構築するかをまとめた記事がこちらです。
もう少し細かい内容が知りたい、という方は以下のシリーズの記事の方が詳しい内容となっています。
ただ、それだけでは単に「自分のところで出しているソフトとハードの組み合わせだから当たり前じゃね?」という話になってしまうのですが、NI社が出しているハードウェアだけではなく、他のメーカーのハードウェアの操作もできます。
多くの場合、各ハードウェアのメーカーがLabVIEW用に「計測器ドライバ」と呼ばれるものを用意しており、これを使用してプログラムを書いていくことになります。
ただ、ハードウェアを操作するだけでは当然十分とは言えません。
例えば、ハードウェアを操作してデータを取得するようなプログラムについて、取得したデータをいかに保存しておくかはとても重要になります。
LabVIEWを使えば、様々な形式でデータを保存することができます。
また、データの解析についても、LabVIEWに標準で備わっている解析の機能を駆使することで対応することができます。
必要なデータを必要なフォーマットで保存し結果を解析するプログラムを、比較的時間をかけずに構築することができます。
また、後述するようにWordなどと連携ができるので、そのままレポートを作成するといった使い方もできます。
Pythonと連携
他のプログラミング言語との連携を行うための機能がLabVIEWに標準関数としてついています。
メジャーな言語であるPythonについては特にLabVIEWのバージョンが上がるごとに機能が追加されているような感があり、できることが増えています。
基本的なPythonとの連携であれば以下の記事が参考になると思います。
Pythonを仮想環境で扱っている方もいると思います。
例えばminicondaとの連携はLabVIEW 2023から可能になりました。
上記の記事で紹介した方法とは一部書き方が異なりますが、考え方は同じです。
LabVIEWはPythonよりもユーザーインタフェースを作りやすいと思います。
なので、既にPythonで何らかの計算処理を行うプログラムは持っているよ、という方がより使いやすいアプリを構築するのにLabVIEWと連携させて使用する、といった使い方ができます。
他サービスやプログラムとの連携
連携つながりで、LabVIEW外の様々なサービスと連携をさせることができます。
例えば、天気予報ができるアプリとか。
翻訳アプリなんかもできます。
Gmailを送ったり、LINEに通知を送るなんてことも。
音声合成ソフトと連携して、指定した文字を音声出力させることもできます。
これらは、それぞれのサービス、プログラムのapiを使用しているため、特別LabVIEWでしかできないということでもありません。
実際Python経由でサービスを実行するといった使い方をしているものもあるわけで「だったらPythonでよくね?」と思われるかもしれませんが、LabVIEWで作った他の機能と連携させてより便利なアプリケーションを作れる、というところに魅力があると思います。
(例えば、ハードウェアを操作するプログラムの中に、何か計測が終わったりしきい値を超えたようなときにメールやLINEの通知を出すといった具合ですね)
また、LabVIEWからMicrosoft OfficeのアプリであるWordやExcelと連携したプログラムを作るための関数もあります(アドオン扱いですが、LabVIEWの最上位エディションでは標準で付属)。
私のブログではあまり具体例は多く出していないのですが、後述するLabVIEWに付属するサンプルでは様々な例が用意されています。
画像処理ができる
LabVIEWで画像処理のプログラムを書くことができます。
この目的のために用意された有償のアドオンソフトウェアもあり、これを使った方がより簡単に素早くプログラムを作ることができるのですが、頑張ればある程度自力で作ることもできます。
アドオンを使用した場合には、カメラの操作なんかもできちゃいます。
カメラとしては、CameraLinkという規格に沿ったカメラのみならず、USBで接続できるカメラやPCに内蔵のカメラを扱うといったことが可能です。
画像解析を行うアドオン(上記、カメラを操作するためのアドオンとは別なので注意)を使用することで、ダイアログ形式で対話的にプログラムを構築するなんてこともできます。
画像解析とまでいかなくても、画像加工といった処理も行えます。
一方で、アドオンを使用しなくても画像を扱うこともできます。
アドオンを使用する場合と比べるとどうしても少し難易度は上がりますが、画像解析のプログラムを自力で構築する方法の例についても本ブログでいくつか紹介してきました。
また、画像に対しては機械学習を用いて画像分類のタスクを実装させることもできます(学習そのものはLabVIEWで行うわけではありません)。
こちらも、アドオンソフトウェアを使用する場合と使用しない(LabVIEWに標準関数で機械学習データを使用するものはないため、Pythonを介する)場合が考えられます。
Web applicationが作れる
厳密に言うとこれはLabVIEWではなくG Web Development Softwareという別のソフトウェアを使用しますが、プログラムの組み方、考え方はLabVIEWと同じです。
なので、LabVIEWでプログラムを組むことができる人は、この別ソフトを使用することでWeb Applicationも比較的簡単に構築することができます。
こちらの内容に特化したシリーズ物の記事も過去に作成していますので、興味がありましたら覗いてみてください。
また、LabVIEW側ではWeb Serviceを作ることができます。
HTTPのリクエストに対して応答をさせることができるため、Web Applicationと組み合わせてより便利なプログラムを構築することができます。
その他
上で紹介したものは、比較的「まじめな」用途ですが、LabVIEWで作れるプログラムはそんなまじめなプログラムだけではありません。
ゲーム要素を含んだプログラムを作ることもできます。
私のブログではまだ少ないですが、「LabVIEW ゲーム」などとネットで検索すると、色々なゲームが見つかると思います。
ここで紹介した記事はほんの一例です。
全ての記事の一覧は、ページ最下部の右の方にある「サイトマップ」から確認できるので、「お、なんだかLabVIEWおもしろそうじゃん」と思ってくれた方はぜひそちらからもどんなことができるか眺めてみてください。
もっと知りたい、そんなときにはサンプルをチェック
このブログでは、この記事が公開されている時点で250以上の記事があり様々なLabVIEWの使い方、解説を出していますが、LabVIEWには本来「サンプル」が豊富に用意されています。
後の項目でLabVIEWのインストール方法の記事も紹介していますが、LabVIEWをインストールするとそれらのサンプルを「サンプルファインダ」という機能から探して実際に実行できるので、こちらからも様々な具体例を探すことができます。
※LabVIEW以外にインストールしている無償ドライバソフトウェア等の有無によって、表示されるサンプルの数は変動します。
LabVIEWを始めようと思ったら
無償版ソフトウェアをインストール
ここまでの内容で、LabVIEW面白そう、と少しでも思ってもらえたらうれしいのですが、上で紹介したようなプログラムを組むにはいくらかLabVIEWの基本的な組み方は知っていないと作れません(こればかりはいくらLabVIEWが初心者に優しいと言えどどうしようもないですね)。
なので、どのようにLabVIEWを始めて学習していけばいいのかわからないとやはり不安ですよね。
そもそもLabVIEWはソフトウェアであるため、まずはインストールする必要があります。
LabVIEWは、本来はサブスクタイプの有償ソフトウェアなのですが、非営利、非学術目的であればCommunity Editionと呼ばれる無償版が公開されています。
無償版とはいえ有償版と同じ機能が使えるので、趣味でやる分にはこちらで十分だと思います。
今であれば、インストーラのダウンロードページからインストーラを入手してこれを使ってインストールができます。
使い方に慣れるには
インストールできたら、早速プログラムを作れる!かというと、そこはやはり多少の知識はどうしても必要となります。
実はここがある意味LabVIEWの弱点となり、独学するための情報が(他の言語と比べて)多くはありません。
正確に言うと、YouTubeだったり、英語だったりで調べれば情報は出てきますが、日本語で探そうとすると、結構苦労することと思います。
プログラミング言語を学ぶ、といった場合
- スクールに通う(トレーニングコースを受ける)
- 書籍を参考にする
といった選択肢があるかなと思いますが、LabVIEWについては、NI社が提供しているトレーニングを受けたり、オンライントレーニングを受講するなどの方法はあるものの、それなりに費用がかかることも事実です。
慣れてしまえばずっと長く趣味として続けられるので、初期投資と思ってやる分には全然ありだと思いますけれどね(私も上記トレーニングは受けたことがありますが、初心者用の内容になっているので、一通りの内容は学べます)。
そんななかで本ブログでは、初心者の方向けに一通りの機能を紹介したシリーズを公開してきました。
全体としてはなかなかなボリュームになっていますが、こうしたプログラミングの方法を学ぶこと、その過程自体も趣味の一環として楽しむくらいの気軽な気持ちで読み進めていってみてもらえるといいかなと思います。
なお、LabVIEW Community Editionはソフトウェアの表記が英語(作るプログラムの中身は日本語表記にすることはできますが)であり、この英語環境用に作った初心者の方向けのシリーズもあるので、こちらの方が便利かもしれません。
お好みの方でざっくりLabVIEWを経験し、その楽しさがわかればどんどんアイデアを形にする楽しさにはまってもらえればと思います。
本記事では、具体例を交えながらLabVIEWでできることを紹介してきました。
本文中でも話題に挙げた通り、LabVIEWは今でも需要のあるプログラミング言語です。
これを仕事で使用するのはもちろん、趣味の一つとして考えて使うユーザーがより増えて楽しさが伝わればうれしいです。
ここまで読んでいただきありがとうございました。
コメント