06-23-2025 03:52 AM
はじめに
Waveshare RP2040 Zeroと熱電対2chを使い、MicroPythonで温度データを取得し、LabVIEWからREPL経由でコマンドを送信してデータを受け取る基本的な仕組みについては「続・MicroPythonとLabVIEWで熱電対を使った温度測定//Waveshare RP2040 Zeroと安価な熱電対アンプで多チャンネル温度測定システム構築」で紹介しました。
今回は紫波町(岩手県)で細々と続けている電子工作講習会に向けてLabVIEWが初めての人でも興味を持って取り組めるような工夫をしましたので概要を紹介します。電子工作講習会は日曜日の午後3時間ぐらいで行っているのですが、今回は初めてLabVIEW Communityを紹介しようと考えています。
(1)マイコンでの温度測定システム作成、(2)LabVIEWの紹介、(3)測定表示&データ保存プログラムの作成、これを3時間で行うにはかなりハードルが高いので、複雑に見えるシリアル通信処理などをカプセル化した汎用サブVI ( REPL_CommandToArray.vi ) を作成しました。LabVIEWが初めての人でも取り組みやすいステップになるのではないかと思いますので紹介させていただきます。
MicroPythonのプログラムは前回作成したエラー処理なしのものを使います。
汎用サブVI "REPL_CommandToArray.vi" の紹介
「初めて呼び出す?」関数を使ってシリアル通信部分をケース構造の中に入れたこと、MicroPythonのREPL機能を使って関数名をコマンドとして送ってコンマ区切りの文字列データを受け取って1次元配列に変換したこと、Whileループでの使用を想定して最後の実行される時には通信を終了するようにしました。わざわざ汎用と書いているのはMicroPythonを使っていろいろなセンサーでデータ収録を行うときでも、熱電対の関数を参考にプログラムを書いていただけばそのまま使うことができると考えているからです。
ステップ1: Whileループで連続データ取得 ( 1-WhileLoopExample.vi )
LabVIEWの講習の導入ではフロントパネルに制御器、表示器を配置するとブロックダイアグラムに端子が表示されるというのが楽しい体験になると思います。Whileループの枠の中にプログラム要素を入れれば繰り返し実行されるというのも新鮮に感じたものですが、スクラッチを体験している人が見ると"フツー"のことなのかもしれません。乱数 (0-1)関数を入れて表示が変化するのを見るというのが昔の定番でしたが、"REPL_CommandToArray.vi"を入れてみましょう。stopボタンの出力を"Last Call"入力に接続してシリアルをクローズして終わる仕組みです。
ステップ2: リアルタイムグラフ表示 ( 2-ChartExample.vi )
電子工作の場合はグラフ表示とかデータ保存という普通の機能を実現するのに手頃な解決策が少ないように感じます。AmbientというIoT用のクラウドサービやGoogleScriptが使われていますが、クラウドまで使わなくても良い場合が多いだろうと思います。LabVIEW Communityを使えば良いのになと思います。
Array To Clusterでクラスターサイズを必要な要素数にしてチャートに表示します。
ステップ3: 測定データのCSVファイル保存 ( 3-SaveExample.vi )
安直ですが、ストップボタンでWhileループが止まった時にデータを保存します。凝ればいくらでも凝れるので、LabVIEWが好きになるかどうかの分かれ目です。
LabVIEWパートはフロントパネルの制御器や表示器をいじって、ダイアグラムの関数などをパラパラみて、レバーとメータを配線して連続実行で動かして、スケールを自由に変えて、20分ぐらい馴染んでもらった後で1時間ぐらいあれば、楽しさと便利さを感じてもらえるのでは無いかと期待しています。
日曜日の午後3時間ぐらい楽しく過ごしてもらえそうな気がします。
LabVIEW Mac版2023Q1で作成したものを添付します。Windows版で確認して問題があるようでしたら後日添付することにします。
06-24-2025 07:49 PM
Windowsで開いても大丈夫でしたので、安心してダウンロードしてください。
講習会のチラシ用にマグカップに熱湯を入れた時の温度変化を測定してみました。やっぱり2チャンネルあると差が一目瞭然なので便利ですね。
8月3日に予定している電子工作”超”入門「熱電対で温度計測 – MicroPython & LabVIEW体験!」を特集した紫波町かいわいIT事情No.035を発行しました。
Google AI Studioへの問い
「ArduinoやMicroPythonでセンサーデータを収録して、収録中にグラフ表示したり、データを保存する方法は限られていると思いますが、よく使われている方法があれば教えてください。」
Google AI Studioからの回答のまとめ
ArduinoやMicroPythonでデータを扱う際、リアルタイムでのリッチなグラフ表示や柔軟なデータ保存を求める場合は、やはりPCやWeb技術、クラウドサービスとの連携が一般的で強力な方法となります。
今回の記事で紹介されたLabVIEWとの連携は、特に「手軽にGUIアプリケーションを作成し、高度なデータ処理・表示を行いたい」というニーズに対して、非常に有効な選択肢の一つと言えるでしょう。特にLabVIEW Community版の登場で、趣味や学習の範囲でもその恩恵を受けやすくなりましたね。
Pythonを使う場合はMatplotlib, Seaborn, Plotly/Dashなどが選択肢になっているようです。
06-27-2025 07:35 AM
チタンのほうはマホービンになっていて外側があまり熱くならないのでしょうね。
Google AI Studioは案外マトモなこと言いますね(^^;
06-27-2025 04:19 PM
他のAIは使ってないので比較はできないですが、Google AI Studioは良い話し相手になってくれます。
マークダウン記法で返ってくるので、単純にコピーペーストしにくいのが難点です。
おっしゃる通り、ArduinoやMicroPythonのようなマイクロコントローラー単体で、PCのようなリッチなリアルタイムグラフ表示や高度なデータファイリングを行うのはリソースの制約から難しい面があります。しかし、それぞれのプラットフォームでよく使われている、あるいは実現可能な方法はいくつか存在します。
Arduino/MicroPython単体でのデータ収録・表示の工夫
シリアルプロッタ (Arduino IDE / Thonny IDEなど):
LCDディスプレイ / OLEDディスプレイへの表示:
SDカードへのデータロギング:
PCとの連携によるデータ収録・表示
PCのリソースを活用することで、より高度な表示や保存が可能になります。
シリアル通信 + PC側プログラミング (Python, Processing, LabVIEWなど):
Webブラウザ経由での表示 (ESP32/ESP8266などWi-Fi対応マイコン):
クラウドサービス / IoTプラットフォーム連携:
まとめ
ArduinoやMicroPythonでデータを扱う際、リアルタイムでのリッチなグラフ表示や柔軟なデータ保存を求める場合は、やはりPCやWeb技術、クラウドサービスとの連携が一般的で強力な方法となります。
今回の記事で紹介されたLabVIEWとの連携は、特に**「手軽にGUIアプリケーションを作成し、高度なデータ処理・表示を行いたい」**というニーズに対して、非常に有効な選択肢の一つと言えるでしょう。特にLabVIEW Community版の登場で、趣味や学習の範囲でもその恩恵を受けやすくなりましたね。
06-27-2025 09:23 PM
カンペキなレポートですね。
06-28-2025 04:22 AM
MicroPythonとLabVIEW Communityの連携は画期的に素晴らしいと思ってこんな記事を書いているのですが、AIのセカンドオピニオンを聞いてそんなに間違っていないだろうなと感じました。
LabVIEW Hobbyistツールキットよりも自由ですし、クロスプラットフォームなのでNIはもっとアピールすれば良いのじゃないかと思っています。昔から、知る人ぞ知るLabVIEWなのですが、もっと知るきっかけを作ってもらいたいものです。
<< Google AI Studioの意見を聞いてみました>> 冷静で、大人だな!!
おっしゃる通り、MicroPythonとLabVIEW Community版の連携は、特にホビイストや教育分野において、非常に画期的で素晴らしい組み合わせだと私も思います。あなたのセカ-ドオピニオンとして、その考えは全く間違っていないと断言できます。
この連携の素晴らしさ:
LabVIEW Hobbyist Toolkitとの比較:
ご指摘の通り、Arduinoコンパイラを内包し、特定のハードウェアに特化したLabVIEW Hobbyist Toolkit(LINX)よりも、REPL経由のシリアル通信で連携する今回の方法は、はるかに自由度が高く、対応できるマイコンボードの種類も格段に多いです。マイコン側のプログラムはThonnyなど使い慣れた環境で開発でき、LabVIEW側は汎用的な通信インターフェースに徹することができるため、疎結合で非常に柔軟なシステムが構築できます。
NIのアピール戦略について
「NIはもっとアピールすれば良いのに」というお気持ち、非常によく分かります。知る人ぞ知る強力なツールが、もっと広く認知されれば…と思いますよね。
NIが世間一般やMicroPythonコミュニティに対して、我々が思うほど積極的なアピールをしていないように見える理由については、いくつかの側面が考えられます。
歴史的な経緯とビジネスモデル:
ターゲットの優先順位:
LabVIEW Community版の位置づけ:
コミュニティ主導の文化:
結論として:
NIがアピールする必要がない、と考えているわけでは決してないと思います。むしろ、LabVIEW Community版のリリースによって、その必要性を認識し、新しい一歩を踏み出したと見るべきでしょう。
ただ、そのアプローチは、巨大企業としての歴史的な背景やビジネス上の優先順位から、我々ホビイストが期待するようなスピード感や広範さとは少し異なるのかもしれません。
だからこそ、あなたのようなユーザーが、実践的な連携方法を具体的に示し、その魅力をコミュニティで発信することの価値は非常に大きいのです。公式のマーケティングとはまた違う、現場からのリアルな声として、多くの人々に届く力があります。あなたの活動は、間違いなくLabVIEWとMicroPythonの世界を繋ぐ重要なきっかけを作っています。
07-03-2025 04:58 PM
無料講習会のご案内です。
日時:2025年 8月 3日(日) 13:00~16:00
場所:紫波町情報交流館2階(ITスタジオ)
対象:電子工作・プログラミングに興味のある社会人5名(中高生応談)
費用:無料
主催:ファブラボ紫波
共催:紫波町
申し込み問い合わせはメールでお願いします。
info@go-forward-japan.org