こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
この記事では、Digilent社が公開しているサンプルを紹介します。このサンプルではArduino用のLCDディスプレーシールド「HD44780」を、携帯計測器「Digital Discovery」のロジックアナライザー機能を使ってデバッキングする手順の資料を公開しています。
Digital Discovery (136-8070) は携帯計測器「Analog Discoveryシリーズ」の姉妹品で、ロジックアナライザ ・ パターンジェネレータ一といったデジタル信号に特化した計測機能を1台で使用することができます。
この Digital Discoveryにより、組み込み系開発、そくにデジタル制御システムのデバッキングや視覚化、シミュレーションが行えます。LCDディスプレイのデバッグにはPythonを使用しています。
ステップ 1: LCDディスプレイをArduino Unoに接続
最初に、LCDディスプレイを以下の配線表に基づいてArduino Uno (769-7409) へ接続します。提供されているArduinoスケッチでは、ArduinoのLiquidCrystalライブラリを用いて、LCDの列数と行数を設定し、シリアル通信を初期化し、バックライトを有効にする設定をしています。
LCD側ピン | Arduino Uno側ピン |
---|---|
RS | 8 |
Enable | 9 |
D4 | 4 |
D5 | 5 |
D6 | 6 |
D7 | 7 |
Backlight control | 10 |
R/W | Ground |
ステップ 2: Digital Discoveryのジャンパーワイヤーを各端子に接続
LCDシールドをArduino Unoに接続した後、以下の配線表に基づいてシステム全体をDigital Discoveryに接続する必要があります。
Digital Discovery側ピン | LCDシールド側ピン |
---|---|
GND | GND |
DIN0 | EN |
DIN1 | RS |
DIN2 | D4 |
DIN3 | D5 |
DIN4 | D6 |
DIN5 | D7 |
注記: まずグランド (GND) を接続してください。
ステップ 3: LCDシールドをデバッグするためのPythonスクリプト
LCDシールドの制御信号をリアルタイムで計測収集し分析を行います。このスクリプトには次の4つのスレッドが含まれています。
- メインスレッド (GUI) は、機器を初期化し、GUIまわりの環境を整えます
- 収集スレッドは、Digital Discoveryからリアルタイムのデータを収集し、データをキューに挿入します
- RAWデータ処理スレッドは、キューからデータを読み取ります。ENの立ち上がりエッジでのみラッチし、データを別のキューに挿入します
- データ処理スレッドは、2番目のキューからラッチされたデータを読み取り、HD44780ディスプレイの動作をシミュレートします
ステップ 4: LCDシールドのデバッグ
Pythonスクリプトを実行します。RAWバッファまたはデータバッファが急速に満杯になる場合、サンプルレートを下げる必要があります。「Int」インジケータは、スクリプトにより初期化が検出されたかどうかを示します。値が「2」であれば初期化が正常に完了していますが、「0」または「1」の場合は処理が不完全であることがわかります。
LDCシールドに送信されたデータは、Digilent WaveForms Logic Analyzerで見ることができます。ロジックアナライザでは、EN信号の立ち上がりエッジにクロック信号付きのバスを追加します。次に、RS信号を別の信号として追加し、トリガモードをEN信号の立ち上がりエッジでトリガを実行するノーマルモードに設定します。
このプロジェクトの詳細、Arduinoスケッチ、Pythonスクリプトは、こちらのDigilentのドキュメントページで入手いただけます。