Skip to main content

reComputer Jetson ボードで 40 ピン GPIO を使用する方法

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

reComputer Jetson ボードで 40 ピン GPIO を使用する方法

このウィキでは、reComputer Jetson ボードの 40 ピン GPIO にアクセスして制御する方法を説明します。このウィキでは、例として reComputer J4012 を使用しています。ただし、他の reComputer Jetson ボードでも手順はほぼ同じです。

始める前に

reComputer Jetson デバイスの 40 ピン GPIO を使用する前に知っておくべき情報を以下に示します。

  • 各 GPIO ピンの電圧レベルは 3.3V です。
  • GPIO ピンの電流制限のため、GPIO を介して reComputer Jetson ボードに逆電力を供給することはできません。

GPIO 名を見つける

ステップ 1: reComputer Jetson ボードのデータシートを開きます。以下に、利用可能なすべての reComputer Jetson ボードのデータシートを示します。

ここでは、reComputer J4012 のデータシートを選択しました。

ステップ 2: 40 ピン拡張ヘッダー - J10 セクションに移動します。

ステップ 3: Default Usage / Description 列でデフォルトの使用法が GPIO であることを確認しながら、Header Pin # の名前を見つけます。

例えば、Header Pin 15 を確認します。その Default UsageGPIO です。

ステップ 4: 同じピンについて、Module Pin Name 列の名前を見つけます。この例では、GPIO12 です。

GPIO へのアクセスと制御

ここでは、Jetson ボード上の GPIO にアクセスするための 2 つの異なる方法を紹介します。これらは GPIO ラベルの直接的な可用性に基づいています。最初の方法では、デバイス内でコマンドを実行した後に GPIO ピンラベルを直接知ることができます。ただし、ピンラベルが直接表示されない場合は、2 番目の方法を使用します。

方法 1

この方法では、JetPack バージョンに含まれる GPIO 用の dts ファイルが既に適切にラベル付けされているため、デバイスから直接ピンラベルを取得できます。

ステップ 1: Jetson デバイスのターミナルに入り、以下のコマンドを実行します。

sudo su
cat /sys/kernel/debug/gpio

ステップ 2: 先ほど取得した Module Pin Name に対応する GPIO 番号 を見つけます。

この場合、GPIO12 に対応するのは gpio-268 です。

ステップ 3: ターミナル内で以下を実行して gpio-268 ピンをエクスポートします。

cd /sys/class/gpio
echo 268 > export

ステップ 4: 方向を設定し、値を設定します。ここで方向は in/ out、値は 0/ 1 に設定できます。

例えば、GPIO12 を HIGH に設定するには:

cd gpio268
echo "out" > direction
echo 1 > value

GPIO12 を LOW に設定するには:

echo 0 > value

ステップ 5: エクスポートした GPIO ピンをデフォルト状態に戻すには、以下を実行します。

cd ..
echo 268 > unexport

方法 2

この方法では、JetPack バージョンに GPIO 用の dts ファイルが含まれておらず、GPIO が適切にラベル付けされていない場合に使用します。そのため、別のドキュメント(pinmux)を参照してピンラベル情報を取得する必要があります。以下のリンクを SoM に応じて参照してください。

ステップ 1: 使用している SoM に応じて pinmux ドキュメントをダウンロードします。ここでは Jetson Orin NX/ Nano ドキュメントを選択します。

ステップ 2: 先ほど取得した Module Pin Name に対応する GPIO ラベル(Customer Usage 列)を見つけます。例えば、GPIO12 の場合、GPIO3_PN.01 に対応し、ここでは PN.01 を参照します。

ステップ 3: Jetson デバイスのターミナルに入り、以下のコマンドを実行します。

sudo su
cat /sys/kernel/debug/gpio

ステップ 4: 先ほど取得した GPIO ラベル に対応する GPIO 番号 を見つけます。

この場合、PN.01 に対応するのは gpio-433 で、これは GPIO12 にも等しいです。

ステップ 5: ターミナル内で以下を実行して gpio-433 ピンをエクスポートします。

cd /sys/class/gpio
echo 433 > export

ステップ 6: 方向を設定し、値を設定します。ここで方向は in/ out、値は 0/ 1 に設定できます。

例えば、GPIO12 を HIGH に設定するには:

cd PN.01
echo "out" > direction
echo 1 > value

GPIO12 を LOW に設定するには:

echo 0 > value

ステップ 7: エクスポートした GPIO ピンをデフォルト状態に戻すには、以下を実行します。

cd ..
echo 433 > unexport

Jetpack6+ の場合

方法 2 と同様に、別のドキュメント(pinmux)を参照してピンラベル情報を取得する必要があります。SoM に応じて以下のリンクを参照してください。

ステップ 1: 使用している SoM に応じて pinmux ドキュメントをダウンロードします。ここでは Jetson Orin NX/ Nano ドキュメントを選択します。

ステップ 2: 以前取得したモジュールピン名に対応する GPIO ラベル(Customer Usage 列の下)を見つけます。例えば、GPIO12 の場合、それは GPIO3_PN.01 に対応し、ここでは PN.01 を参照します。

ステップ 3: Jetson デバイスのターミナルに入り、以下のコマンドを実行します。

sudo apt update
sudo apt install gpiod

gpioinfo

ステップ 4: 以前取得した GPIO ラベル に対応する GPIO 番号 を見つけます。

この場合、gpiochip0 line85PN.01 に対応し、これは GPIO12 にも等しいです。

ステップ 5: 次に、gpioset コマンドを使用して GPIO の動作モードを設定できます。

# GPIO12 を HIGH に設定
sudo gpioset --mode=wait gpiochip0 85=1
# GPIO12 を LOW に設定
sudo gpioset --mode=wait gpiochip0 85=0
info

gpioset コマンドについてさらに学びたい場合は、以下を参照してください:
https://www.acmesystems.it/gpiod

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルをご用意しています。

Loading Comments...