1. Jetson.GPIOライブラリー
Jetson.GPIOライブラリは、ライブラリがインストールされている場合は、追加のGPIO Pythonライブラリをインストールすることなく、GPIO、他の当事者は、適用Jetson.GPIO通常、プリインストールパスをアンインストールする必要があり、ナノプレインストールされて:
/ opt / NVIDIA / JETSON、GPIO
Jetson.GPIOを実行する前に、次の手順を実行する必要があり、GPIOの動作環境の構築
ステップ1を-セットアップのアクセス許可を実行するように設定を許可
sudo groupadd -f -r gpio
sudo usermod -a -G gpio jetbot #$USER
sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo reboot now
ステップ2 -のPythonコードの参照
を加えた後、次のPythonコード、それはRPi.GPIO(motorhatライブラリ等)インポートを呼び出すことができ
import sys
sys.path.append('/opt/nvidia/jetson-gpio/lib/python/')
sys.path.append('/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO')
import Jetson.GPIO
ステップ3:PythonのGPIOケース
GPIOモード
GPIO.setmode(GPIO.BOARD)
# or
GPIO.setmode(GPIO.BCM)
# or
GPIO.setmode(GPIO.CVM)
# or
GPIO.setmode(GPIO.TEGRA_SOC)
次のようにケースコードが検証(J41 PIN13を測定し、すべての2S、すなわち0/1/0/1高いセットをローに設定しました)
#!/usr/bin/env python
#BCM 是Broadcom SOC GPIO序列号,此处需修改为BOARD
#即Nano载板的40Pin GPIO序列号,参考上图<Nano_J41_40Pin.png>
#import jetson gpio
import sys
sys.path.append('/opt/nvidia/jetson-gpio/lib/python/')
sys.path.append('/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO')
import Jetson.GPIO as GPIO
import time
# Pin Definitions
output_pin = 13 #J41_BOARD_PIN13---gpio14/GPIO.B06/SPI2_SCK
def main():
# Pin Setup:
# Board pin-numbering scheme
GPIO.setmode(GPIO.BOARD)
# set pin as an output pin with optional initial state of HIGH
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
print("Starting demo now! Press CTRL+C to exit")
curr_value = GPIO.HIGH
try:
while True:
time.sleep(2)
# Toggle the output every second
print("Outputting {} to pin {}".format(curr_value, output_pin))
GPIO.output(output_pin, curr_value)
curr_value ^= GPIO.HIGH
finally:
GPIO.cleanup()
if __name__ == '__main__':
main()
2. HC-SR04超音波アプリケーション
#!/usr/bin/env python
#BCM 是Broadcom SOC GPIO序列号,此处需修改为BOARD
#即Nano载板的40Pin GPIO序列号,参考上图<Nano_J41_40Pin.png>
import Jetson.GPIO as GPIO
import time
# Pin Definitions
trig_output_pin = 13 #发射PIN,J41_BOARD_PIN13---gpio14/GPIO.B06/SPI2_SCK
echo_input_pin = 18 #接收PIN,J41_BOARD_PIN18---gpio15/GPIO.B07/SPI2_CS0
def main():
# Pin Setup:
# Board pin-numbering scheme
GPIO.setmode(GPIO.BOARD)
# set pin as an output pin with optional initial state of LOW
GPIO.setup(trig_output_pin, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(echo_input_pin, GPIO.IN)
#value = GPIO.input(echo_input_pin)
#print("Value read from pin {} : {}".format(echo_input_pin,value_str))
print("Starting Measure now! Press CTRL+C to exit")
try:
while True:
# Toggle the output every second
GPIO.output(trig_output_pin, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(trig_output_pin, GPIO.LOW)
pulse_start = time.time()
while GPIO.input(echo_input_pin)==0:
pulse_start = time.time()
pulse_end = time.time()
while GPIO.input(echo_input_pin)==1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print ("Distance" , distance)
finally:
GPIO.cleanup()
if __name__ == '__main__':
main()
3. JETSONナノGPIOいくつかの説明:
サポートPWM図書館はJetson.GPIO **しません
(そのような必要としてPWMをサポートしていませんが、I2C転送ボードの外部PWM信号PWMが必要)
ただし、ザ・CANボードで1.6 kHzのPWM信号は、Pythonとライブラリを持っていましたら〜まで生成制御I2C以下利用可能。
https://www.adafruit.com/product/815
あなたは、潜在的にHブリッジは、アプリケーションの電力要件を満たしているものは何でもにこれを接続することができます。我々はJetBotために使用されるモータドライバは、実際には、このチップと同一基板上に複数のHブリッジを組み合わせます。
https://www.adafruit.com/product/2927
PS:
NVIDIAフォーラム:
ナノGPIO Pythonサポート
https://pypi.org/project/Jetson.GPIO/
JETSONナノGPIO説明部分コードディレクトリと
GPIO DTS:
ハードウェア/ NVIDIA /プラットフォーム/ T210 / porg / DTS-カーネル/ porg-プラットフォーム/ tegra210-porg-GPIO-p3448-0002、a02.dtsi
P37-GPIO12-GPIO.B04
P22-gpio13-GPIO.B05
P13-gpio14-GPIO.B06
P18-gpio15-GPIO.B07
VDD-USB-HUB-EN-gpio151 GPIO.S07
IMX219 DTS:
ハードウェア\ NVIDIA \プラットフォーム\ T210 \ porg \カーネルDTS \ porg-プラットフォーム\ tegra210-porgカメラ-rbpcv2-imx219.dtsi