首页 > 解决方案 > 树莓派 HC-sr04 远距离控制音量

问题描述

我是编码新手。我有一个脚本检测距离(超声波HC-SR04),如何连接音乐音量?这可能很容易,但我被卡住了。我不知道如何通过子进程连接,我创建了一个脚本来提高和降低音乐的音量,并希望将其连接到与人类的距离

    #! /usr/bin/env python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
import signal
import sys


# use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BCM)

# set GPIO Pins
pinTrigger = 23

pinEcho = 24

def close(signal, frame):
    print("\nTurning off ultrasonic distance detection...\n")
    GPIO.cleanup() 
    sys.exit(0)

signal.signal(signal.SIGINT, close)

# set GPIO input and output channels
GPIO.setup(pinTrigger, GPIO.OUT)
GPIO.setup(pinEcho, GPIO.IN)

#GPIO.setup(pinTrigger2, GPIO.OUT)
#GPIO.setup(pinEcho2, GPIO.IN)

#GPIO.setup(pinTrigger3, GPIO.OUT)
#GPIO.setup(pinEcho3, GPIO.IN)

while True:
    # set Trigger to HIGH
    GPIO.output(pinTrigger, True)
    # set Trigger after 0.01ms to LOW
    time.sleep(0.00001)
    GPIO.output(pinTrigger, False)

    startTime = time.time()
    stopTime = time.time()
    #subProcess.call(["/usr/bin/mpg321","0001.mpr.mp3"])
    # speichert die startzeit
    while 0 == GPIO.input(pinEcho):
        startTime = time.time()

    # speichert die ankunftszeit
    while 1 == GPIO.input(pinEcho):
        stopTime = time.time()

    # zeitunterschied zwischen ankunft und start
    TimeElapsed = stopTime - startTime
    # multipliziert mit der Schallgeschwindigkeit (34300 cm/s)
    # und durch 2, weil der Schall hin und zurück geht
    distance = (TimeElapsed * 34300) / 2
    print("Distance Sensor 1: %.1f cm" % distance)
    time.sleep(1)




dist = distance
 
if(dist <= 0):
  subProcess.call(["/home/pi/volumeup.py]", stdout=devnull, shell=False)

if(dist > 300):
  subProcess.call(["/home/pi/volumedown.py"], stdout=devnull, shell=False)

标签: pythonraspberry-pisubprocessdistance

解决方案


推荐阅读