コンテンツにスキップ

129 UltraSound

超音波距離センサー(HC-SR04)

サンプルコードの動作

超音波距離センサーを電源ONにして、0.5秒ごとに測距します。

サンプルコード使用時の接続

FaBo BLOCKS #129 をFaBo BLOCKS 519 FaBo Jetson基板 5、6、22があるGPIOポートへ接続します。

センサーの動作電圧はDC5.0Vなので#519基板のスライドスイッチを5V側にします。

GPIO22は、省電力にするためのアナログスイッチとなります。

測距センサーの電源スイッチとなります。HighでON、LowでOFFとなります。

サンプルコード

# FaBo 129 UltraSound HC-SR04
# coding: utf-8
import Jetson.GPIO as GPIO
import time
import sys

#FaBo BLOCKS Jetson Nano #519 RJ11 GPIO Setting
Trig = 5                          
Echo = 6                          
PowerOn = 22

class Sensor():
    def __init__(self):
        GPIO.setmode(GPIO.BCM)             
        GPIO.setup(Trig, GPIO.OUT)         
        GPIO.setup(Echo, GPIO.IN)          
        GPIO.setup(PowerOn, GPIO.OUT)  
        GPIO.output(PowerOn, GPIO.HIGH)

    def getDistance(self):
        GPIO.output(Trig, GPIO.HIGH)
        time.sleep(0.00001)        
        GPIO.output(Trig, GPIO.LOW)

        signaloff=0
        signalon=0

        while GPIO.input(Echo) == 0:
            signaloff = time.time()

        while GPIO.input(Echo) == 1:
            signalon = time.time()

        return (signalon - signaloff) * 17000

sensor = Sensor()

while True:
    try:
        distance = sensor.getDistance()
        print("{:.0f}cm".format(distance))
        time.sleep(0.5)

    except KeyboardInterrupt:
        GPIO.cleanup()
        sys.exit()