Men jag funderar på en varning/felkod om att jag bör välja BOARD resp BCM vilket jag är medveten om.
Vi har valt BOARD i detta fall och definierat detta i början av filen men varför meddelandet då?
Kod: Markera allt
#!/usr/bin/python3
from pydub import AudioSegment
from pydub.playback import play
import time
import os
import random as rnd
import RPi.GPIO as GPIO
trig_pin = 7
read_pin = 8
GPIO.setmode(GPIO.BOARD) #BOARD = J8
GPIO.setup(trig_pin, GPIO.OUT)
GPIO.setup(read_pin, GPIO.IN)
def play_sound():
song = AudioSegment.from_file("sound/S1.mp3", format = "mp3")
print ("Spelar testljud")
play(song)
def sound_library():
pass
def distance_check(): ### USING A HR04 ULTRA SOUND SENSOR VIA VOLT.DIVIDER
GPIO.output(trig_pin, 1)
time.sleep(0.00001)
GPIO.output(trig_pin, 0)
Start_time = time.time()
Stop_time = time.time()
while GPIO.input(read_pin) == 0:
Start_time = time.time()
sleep(0.005)
while GPIO.input(read_pin) == 0: #### SKALL VARA 1
Stopp_time = time.time()
elapsed_time = (Stopp_time - Start_time)
distance = (elapsed_time * 34300 / 2)
return distance
sleep(1)
def main():
try:
print ("Main playing sound")
play_sound()
time.sleep(1)
distance_check()
dist = distance_check()
print(f'Distance = {dist} cm')
except KeyboardInterrupt:
print ("Execution interrupted by user")
GPIO.cleanup()
while True:
if __name__ == '__main__':
main()
/home/pumpkin/scary/./halloween.py:15: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(trig_pin, GPIO.OUT)
Main playing sound
^CExecution interrupted by user
Main playing sound
Traceback (most recent call last):
File "/home/pumpkin/scary/./halloween.py", line 75, in <module>
main()
File "/home/pumpkin/scary/./halloween.py", line 66, in main
dist = distance_check()
File "/home/pumpkin/scary/./halloween.py", line 41, in distance_check
GPIO.output(trig_pin, 1)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)