Bonjour,
Je sollicite la communauté de développeur sur Python pour un projet de création d'une cagnotte de mariage avec detection d'une enveloppe.
Mon souhait est de pouvoir lancer un message vocal aléatoire lorsque d'une enveloppe est mise dans la cagnotte.
J'ai acheté un petit Raspberry, un capteur HC-SR04, et je dispose d'une petite enceinte.
Pour info, je suis dans me commerce et je ne suis pas du tout développer.
Je vais savoir copier des codes et les lancer mais pas d'autres choses. Clairement, je ne suis pas un codeur à la différence de vous!! Help
A ce stade, j'ai réussi à faire fonctionner le capteur ultrason et aussi un code pour faire un random sur une liste aléatoire.
Je souhaite maintenant combiner les deux et rajouter une commande de type si distance => 10, lancer la musique aléatoire.
Voici les deux codes que j'essai de mixer -
1) musique aléatoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import pygame, time import glob import random soundfiles = glob.glob("/home/pi/Desktop/Sons/*.wav") pygame.init() pygame.mixer.init() son = pygame.mixer.Sound(random.choice(soundfiles)) canal = son.play() while pygame.mixer.get_busy() > 0: time.sleep(1) pygame.quit()
2) Distance ultrason
Chaque code fonctionne... mais comment trouver la bonne formule pour les fusioner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) TRIG = 23 # GPIO02 ECHO = 24 # GPIO03 GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG, GPIO.LOW) GPIO.setwarnings(False) GPIO.output(TRIG, GPIO.HIGH) time.sleep(0.00002) GPIO.output(TRIG, GPIO.LOW) signaloff = time.time() while GPIO.input(ECHO) != GPIO.HIGH: signaloff = time.time() signalon = signaloff while time.time() < signaloff + 0.1: # timeout in 0.1 seconds if GPIO.input(ECHO) == GPIO.LOW: signalon = time.time() break GPIO.cleanup() time_passed = signalon - signaloff distance = 340 * 100 * time_passed / 2 if distance <= 500: return distance else: return None if __name__ == '__main__': while True: start_time = time.time() distance = read_distance() if distance: print ("distance: %.1f cm") % (distance) wait = start_time + 1 - time.time() if wait > 0: time.sleep(wait)![]()
Merci pour votre aide!!
A très vite,
Partager