ホーム ソリューション CANopen経由でホストからSmart Displayを制御する方法 (ゲージ制御例)

CANopen経由でホストからSmart Displayを制御する方法 (ゲージ制御例)

May 04,2022

イントロダクション

これまでの Smart Display の紹介では、製品自体の機能や特長を中心に説明してきましたが、お客様の最終製品において、ホスト側から Smart Display をどのように制御するかについては、詳しく取り上げていませんでした。本記事ではゲージを例に、物理コントローラーおよびホスト(Arduino)からのデータを Smart Display モジュールへ送信し、表示を更新する方法を紹介します。

本例では、4.3インチ CAN Bus 対応 Smart Display に240度ゲージを表示し、ホストから制御します。ホストには Arduino Mega 2560、CAN Bus Shield、Rotary Angle Sensor を使用します。必要な構成機器は以下のとおりです。

  1. 4.3インチ CAN Bus 対応 Smart Display
  2. Arduino Mega 2560
  3. CAN Bus Shield
  4. Rotary Angle Sensor
  5. CAN Bus Dongle
  6. GUI Builder
 

システム構成図

Smart DisplayのCANopenホスト制御システム構成図

ステップ 1:GUI Builderでプロジェクトを設計

1.1 新規プロジェクトを作成し、GUI Builderで4.3インチディスプレイのBlankテンプレートを選択します。

GUI Builderで4.3インチSmart Displayの新規プロジェクトを作成

1.2 ResourceパネルのBackground Style 0で、黒い画面の画像ファイルを選択します。

GUI BuilderのBackground Style 0で黒い背景画像を選択

1.3 Gauge Editウィンドウで、針の回転角度を設定します。

►まず、Gauge Style 6のModifyボタンをクリックします。

GUI BuilderでGauge Style 6を編集

►選択すると、Gauge Editorウィンドウにゲージのプレビューが表示されます。

GUI BuilderのGauge Editorに表示されたゲージプレビュー

►"Show Details"にチェックを入れると、針の回転に関する詳細情報を確認できます。

GUI Builderでゲージ針のShow Details設定を表示

►針の最小角度と最大角度は、Degreeエリアの +/- ボタンで調整できます。

GUI Builderでゲージ針の最小角度と最大角度を調整

Value Rangeでは最小値と最大値を設定します。CAN Bus経由で値を受信すると、その値が針の最小回転角度と最大回転角度に対応するようにマッピングされます。

GUI BuilderでゲージのValue Rangeを設定

►ゲージの設計が完了したら、Test Valueのスライダーを右方向へドラッグして動作を確認します。Test Valueを大きくすると針の角度も増加し、設定した最大値に達すると針も最大角度まで移動します。

GUI BuilderのTest Valueでゲージ針の回転を確認

ステップ 2:プロジェクトのビルドとアップロード

2.1 上記の設定が完了したら、Page Infoシートに切り替え、Gauge Style 6を画面中央へドラッグします。

2.2 USB2CAN経由でPCとSmart Displayを接続し、"Connect Device"、"Upload the Project"の順にアイコンをクリックします。リソースおよびページ設定がGUI BuilderからSmart Displayモジュールへアップロードされます。

GUI BuilderでSmart Displayに接続してプロジェクトをアップロード

GUI Builderのプロジェクトアップロード進捗画面

2.3 画面が起動画面から操作画面に切り替わり、4.3インチ CAN Bus 対応 Smart Displayに以下の画面が表示されれば、アップロードは正常に完了しています。

プロジェクトアップロード後の4.3インチSmart Displayに表示された240度ゲージ

ステップ 3:Arduinoホストをプログラミング

Smart DisplayのCANopen制御に使用するArduinoホストのプログラミング

3.1 GUI BuilderのPageシートに切り替えます。CANopenの構造では、Gauge Style 6のインデックスはobject 0(0x2000)に対応します。Arduinoホストからオブジェクトの状態をポーリングまたは変更するには、対象オブジェクトのインデックスを把握しておく必要があります。詳細は以下のサンプルコードを参照してください。

3.2 Arduinoホストでは、"ConfigSmartDisplay"関数を使用して、object 0のtype、x/y位置、style、configuration、および背景画像を設定できます。また、Arduinoホスト側で追加設定を行わず、Smart DisplayがオンボードFlashに保存されている既存のオブジェクトデータ(GUI Builderからアップロード済み)を読み込み、設定済みのオブジェクトを画面に表示することも可能です。

ArduinoコードによるSmart Displayのオブジェクトパラメータ設定

ArduinoのConfigSmartDisplay関数によるオブジェクト設定例

3.3 ArduinoホストがRotary Angle Sensorの値の変化を検出すると、対応する値をCANopen経由でSmart Displayへ送信します。

以下のプログラムで、主要なコマンド構造のIDおよびsub-indexを確認してください。このプログラムでは、Rotary Angle Sensorから受信した値の変化に応じて、ゲージの値(object index 0)を更新します。

ArduinoのCANopenプログラムによるSmart Displayのゲージ値更新

付録:プロジェクト設定資料

上記プログラムの詳細については、以下のGitHubリポジトリを参照してください:https://github.com/Smart-Display-Series/SmartDisplay_CANbus_Arduino_Examples。下記の動画では、実際のハードウェア構成と動作をご確認いただけます。

 

WINSTAR GUI Builderを無料でお試しいただけます。 申請フォームに必要事項をご入力いただくと、GUI Builderのダウンロードリンクをメールでお送りします。

ディスプレイ ソリューションについてのご質問はあるのでしょうか。 お問合わせ!

配信申し込み

Winstar からの最新情報を受け取ります。

お問合わせ

価格/データシート/一般的なお問合せ

技術的なサポート

技術情報についてはお問合せください。

go top
お問合わせ
close

私たちはあなたのプライバシーを大切にします

「すべてのクッキーを許可」をクリックすると、サイトのナビゲーションを向上させ、サイト使用状況を分析し、マーケティングおよびパフォーマンスの取り組みを支援するために、クッキーをデバイスに保存することに同意したことになります。この件に関する詳細情報は、ポリシーをご覧ください。プライバシーポリシー

私たちはあなたのプライバシーを大切にします

Winstarおよび特定の第三者は、www.winstar.com.twでクッキーを使用しています。クッキーの種類、目的、および関与する第三者に関する詳細は、以下および当社のクッキーポリシーに記載されています。「すべて許可」をクリックして、当社のクッキー使用に同意し、ウェブサイトでの最良の体験を得てください。また、設定を変更するか、必要なクッキーを除きクッキーを拒否することもできます。

同意設定の管理

常にアクティブ
必須なクッキー

これらのクッキーは、ウェブサイト内を移動したり、プライバシーの設定、ログイン、フォームの記入などの機能を使用できるようにするために不可欠です。

分析用クッキー

「統計クッキー」とも呼ばれるこれらのクッキーは、ウェブサイトの使用方法に関する情報を収集します。たとえば、どのページを訪れ、どのリンクをクリックしたかなどです。詳細を確認してください。