Nigel AIの活用(エルチカ)

Nigel

Nigel™ AI(ナイジェルAI)は、NI(National Instruments)が提供する、テスト・計測分野に特化したAIアドバイザです。

LabVIEWやTestStandなどのNIソフトウェアに統合されており、開発・テスト・データ分析の各工程で、エンジニアの業務をリアルタイムに支援します。

今回は、Nigel AIを活用したエルチカ「LEDをチカチカ点滅させる」動作のプログラム開発を紹介します。

Nigel AI 使用例:ソフトウェア

Nigelに質問

チャット欄に自然な言葉で質問を入力します。

LabVIEWでLEDを500msごとに点滅させたい

Nigelの回答

Nigelの回答(エルチカ)

LabVIEWでLEDを500msごとに点滅させるには、Whileループと**Wait (ms)**関数、Boolean型のシフトレジスタを使うのが一般的です。以下の手順で実装できます。


実装手順

  1. フロントパネルにBoolean型のインジケータ(例:LED)を配置します。
  2. ブロックダイアグラムでWhileループを配置します。
  3. Whileループの中に**Wait (ms)**関数を配置し、500を入力します(500ms待機)。
  4. シフトレジスタを使って、LEDの状態(True/False)をループごとに反転させます。
  5. シフトレジスタの値をLEDインジケータに接続します。

代表的なブロックダイアグラム構成

要素説明
Whileループループ処理でLEDの点滅を繰り返す
Wait (ms)500msごとにループを1回実行
シフトレジスタ前回のLED状態を保持し、毎回反転
NOT関数Boolean値を反転(True⇔False)
BooleanインジケータLEDとしてフロントパネルに表示

注意点

  • ループを止めるために停止ボタンを用意するのが一般的です。
  • Wait (ms)関数を使わないとCPU使用率が高くなります。

参考LabVIEW例

LabVIEWのサンプルやテンプレートも活用できます。
「Search with Nigel」バーで「LED 点滅」や「Boolean Toggle」などで検索すると、関連するサンプルVIが見つかります。


よくあるミス

  • Wait (ms)を入れ忘れると、LEDが高速で点滅し、CPU負荷が高くなります。
  • シフトレジスタを使わずにLED状態を反転できない場合があります。

もし具体的なVI例や、サンプルコードが必要であればお知らせください。
また、LabVIEWのバージョンや、使いたいLEDの種類(物理LED制御 or フロントパネル上のLED)も教えていただけると、より詳細にご案内できます。

LED(ブール)の点滅プログラム作成

Nigelの回答を参考にLabVIEWプログラムの作成を行います。

回答の「実装手順」「代表的なブロックダイアグラム構成」に沿って、LabVIEWプログラムを作成します。

LED(ブール)の点滅プログラムーフロントパネル
フロントパネル
LED(ブール)の点滅プログラムーブロックダイアグラム
ブロックダイアグラム

プログラム実行

LabVIEWプログラムを実行します。

LED消灯

LED(ブール)の点滅プログラムーフロントパネル-OFF
LED(ブール)の点滅プログラムーブロックダイアグラム-OFF

LED点灯

LED(ブール)の点滅プログラムーフロントパネル-ON
LED(ブール)の点滅プログラムーブロックダイアグラム-ON

フロントパネルのLEDが500ミリ秒間隔で点灯と消灯を繰り返します。

Nigel AI 使用例:ハードウェア

次はハードウェアを指定します。

Nigelに質問

DAQ USB-6008でLEDを500msごとに点滅させたい

Nigelの回答

Nigelの回答

DAQ USB-6008で外部LEDを500msごとに点滅させるには、デジタル出力を制御するVIを作成します。以下の手順で実装できます。


必要なもの

  • NI-DAQmxドライバ(インストール済みであること)
  • USB-6008本体
  • LED(適切な抵抗を直列に接続)
  • 配線:USB-6008のDIOポート(例:P0.0)とGND

実装手順(LabVIEWブロックダイアグラム)

  1. DAQmx Create Channel(Digital Output)
    • 例:Dev1/port0/line0(P0.0)を指定
  2. Whileループ
    • ループ内でLEDのON/OFFを切り替える
  3. シフトレジスタ
    • 前回のLED状態を保持し、毎回反転
  4. DAQmx Write(Digital Bool 1Line 1Point)
    • シフトレジスタの値を出力
  5. Wait (ms)
    • 500msを指定
  6. 停止ボタン
    • ループを終了するために配置

ブロックダイアグラム構成例

ステップ関数・部品役割
1DAQmx Create Channel出力ラインを指定
2Whileループ点滅処理を繰り返す
3シフトレジスタ+NOT関数ON/OFFを交互に切り替える
4DAQmx WriteLEDに出力
5Wait (ms)500msごとにループ
6停止ボタンループ終了
7DAQmx Clear Taskタスク終了

配線例

  • P0.0(デジタル出力)→ LEDのアノード(+側)
  • GND → LEDのカソード(-側)
  • LEDと直列に330~1kΩ程度の抵抗を必ず入れてください(LED保護のため)

注意点

  • デジタル出力は5V/8.5mAまで。LEDの消費電流に注意してください。
  • 複数LEDを点灯させる場合は、各ラインごとに抵抗を入れてください。

参考LabVIEWサンプル

LabVIEWの「Search with Nigel」バーで
「DAQmx Digital Output」や「LED 点滅」などで検索すると、サンプルVIが見つかります。


よくあるミス

  • DAQmx Writeのサンプルモードライン指定を間違えると出力されません。
  • 抵抗なしでLEDを直接接続すると、USB-6008やLEDが破損します。

さらに詳しいサンプルや、VIの具体的な構成図が必要な場合はご連絡ください。

また、LEDの接続方法や配線図もご案内できます。どのDIOラインを使うかも教えていただけると、より具体的にサポートできます。

ハードウェア配線

Nigelの回答を参考にハードウェアを設置します。

回答の「配線例」に沿って、DAQとLEDを配線します。

回路例:USB-6008 DIO0─LED(+)─LED(-)─抵抗─USB-6008 GND

ハードウェア配線

DAQを使用したLEDの点滅プログラム作成

Nigelの回答を参考にLabVIEWプログラムの作成を行います。

回答の「実装手順」「代表的なブロックダイアグラム構成」に沿って、LabVIEWプログラムを作成します。

DAQを使用してLEDの点滅プログラムーフロントパネル
フロントパネル
DAQを使用してLEDの点滅プログラムーブロックダイアグラム
ブロックダイアグラム

プログラム実行

実行してみます。

LED消灯

DAQを使用してLEDの点滅プログラムーフロントパネル-OFF
DAQを使用してLEDの点滅プログラムーブロックダイアグラム-OFF
DAQを使用してLEDの点滅

LED点灯

DAQを使用してLEDの点滅プログラムーフロントパネル-ON
DAQを使用してLEDの点滅プログラムーブロックダイアグラム-ON
DAQを使用してLEDの点滅プログラムーON

LEDが500ミリ秒間隔で点灯と消灯を繰り返します。

まとめ

Nigel AIは単にコード生成するだけでなく、「なぜそのVIが必要なのか」を質問できるため、学習ツールとしても有効です。

エルチカ程度の基本的なプログラムであれば、Nigel AIは十分実用的な提案を行えました。
特に新人教育やLabVIEW学習においては、

  • 教科書
  • サンプルコード
  • AIアシスタント

を組み合わせることで学習効率が大幅に向上します。