Jetson NanoでON/OFFのデジタル信号を出力する方法

  • URLをコピーしました!

今回はJetson NanoのGPIOを使ってデジタルのON/OFF信号を出力する方法を解説します。前回、解説したPWM信号でを使って制御するモーターの回転方向を制御するための信号として、デジタルON/OFF信号が必要となっため調べてみました。

Jetson NanoのPWM信号の出力方法は以下の記事で解説していますので、あわせてご覧ください。

また、以下のページでJetsonの活用方法について解説していますので、あわせてご覧ください。

目次

環境

ハードウェア:NVIDIA Jetson Nano 4GB 
JETPACK SDK:4.6.2

今回、JETPACKはJetson Nanoの最終サポートバージョンである4.6.2を使用しました。
インストール方法は以下の記事で解説していますので、あわせてご覧ください。

Jetson Nano本体は4GB版を使用しました。

ハードウェアの接続

今回も特に制御対象等は接続せず、Jetson NanoのGPIOの端子をオシロスコープで直接計測します。

GPIO16、GPIO18、GPIO22、GPIO24番ピンとGNDをオシロスコープのプローブに接続しました。この状態でプログラムからON/OFF信号を出力して波形を確認します。

今回使用したオシロスコープはOWON製のものです。アマゾン等でも購入することができます。

デジタルIOの実装方法

デジタルIOの制御方法はoutputメソッドの第1引数にピン番号、第2引数に信号の状態を「0」または「1」で指定します。

GPIO.output(output_pin1, 0)

作成したソースコード

今回作成したソースコードは以下の通りです。
2秒間隔で各端子の出力信号をON/OFFするプログラムです。

import Jetson.GPIO as GPIO
import time

#DIOピンを指定
output_pin1 = 22
output_pin2 = 24
output_pin3 = 16
output_pin4 = 18

#GPIOのpin指定方法を設定
GPIO.setmode(GPIO.BOARD)

#出力ピンに設定
GPIO.setup(22, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)


try:
	while True:
		#GPIOの出力を0にする
		GPIO.output(output_pin1, 0)
		GPIO.output(output_pin2, 0)
		GPIO.output(output_pin3, 0)
		GPIO.output(output_pin4, 0)

        # 0.5s間スリープする
		time.sleep(2)

        # GPIOの出力を1にする
		GPIO.output(output_pin1, 1)
		GPIO.output(output_pin2, 1)
		GPIO.output(output_pin3, 1)
		GPIO.output(output_pin4, 1)
		
        # 0.5s間スリープする
		time.sleep(2)
finally:
	#CTRL+Cで停止
	#GPIO初期化
	GPIO.cleanup()

実行結果

実行した結果をオシロスコープで計測した状態です。
オシロスコープが2チャンネルですので、GPIO16、18番の写真のみですが、正しく3.3VのON/OFF信号を出力できていることが確認できましまた。

まとめ

今回はJetson NanoのGPIOを使ってデジタルのON/OFF信号を出力する方法を解説しました。リレー回路やLEDなど色々なものを制御するのに役立ちますので、ぜひ活用してみてください。

それでは、また次の記事でお会いしましょう。

\ 機械学習を学びたい人には自宅で学べるUdemyがおすすめ! /

講座単位で購入できます!

参考

よかったらシェアしてね!
  • URLをコピーしました!
目次