メインコンテンツまでスキップ

reCamera Pro GPIO ピン使用ガイド

はじめに

この記事では、reCamera Pro 上で GPIO ピンを使用する方法について説明します。ピン番号の計算式を用いて目的の GPIO ピンを特定する方法、sysfs インターフェース経由でピンをエクスポートして方向とレベルを設定する方法、そして Python スクリプトを使用して GPIO 出力を制御したり入力レベルを読み取ったりする方法を学びます。

注記

reCamera Pro では、外部に露出している汎用 GPIO は 2 本のみであり、その出力電圧は 12V〜21V(DC-IN 入力に依存)となるため、ほとんどのデバイスには適していません。しかし、拡張インターフェース上の UART または CAN ピンを汎用 GPIO として再設定することができます。これらのピンは標準的な 3.3V レベルを出力します。

GPIO ピンの位置を特定する

まず、以下の画像を参照して、必要な GPIO ピンの位置を確認します。

拡張インターフェース図 CAN ピン図

ピン番号の計算式

GPIO ピン番号は、次の式を使って計算します。

GPIO bank × 32 + offset within bank

バンク内のオフセットは次のように計算します:グループ番号 × 8 + グループ内ピン番号

例えば、GPIO5_A2 の場合:

  • バンク番号は 5
  • バンク内オフセットは 0 × 8 + 2 = 2

したがって、ピン番号は次のようになります:

5 × 32 + 2 = 162

バンク文字と番号の対応は次のとおりです:

文字番号
A0
B1
C2
D3
......

GPIO ピンのエクスポート

まず、デバイスのターミナルにアクセスする必要があります。次のいずれかの方法で実行できます。

  1. SSH でデバイスに接続する
  2. WebUI のターミナル機能を使用する

GPIO sysfs インターフェースへ移動

cd /sys/class/gpio

GPIO ピンをエクスポートする

echo 162 > export

GPIO ピンの方向を設定する

ピンの方向は次の 2 つのモードをサポートします。

  • 出力:out
  • 入力:in(デフォルトモード)
echo out > direction

GPIO ピンのレベルを設定する

レベルは次の 2 つの状態をサポートします。

  • 高レベル:1
  • 低レベル:0
echo 1 > value

Python コードリファレンス

次の Python スクリプトは、GPIO ピンを制御して高レベルと低レベルを出力する方法を示しています。

import os
import time

GPIO = 162 # The GPIO pin number calculated earlier

GPIO_PATH = f"/sys/class/gpio/gpio{GPIO}"

def write_file(path, value):
with open(path, "w") as f:
f.write(str(value))

# 1. Export the GPIO
if not os.path.exists(GPIO_PATH):
write_file("/sys/class/gpio/export", GPIO)
time.sleep(0.1) # Wait for export to complete

# 2. Set to output mode (use 'in' for input mode)
write_file(f"{GPIO_PATH}/direction", "out")

# 3. Set high level
write_file(f"{GPIO_PATH}/value", 1)
time.sleep(1)

# 4. Set low level
write_file(f"{GPIO_PATH}/value", 0)
time.sleep(1)

# To read the pin level, you can use the following code:
# with open(f"/sys/class/gpio/gpio{GPIO}/value", "r") as f:
# value = f.read().strip()
# print(value)

リソース

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

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートオプションを提供しています。お好みやニーズに合わせて選べる複数のコミュニケーションチャネルをご用意しています。

Loading Comments...