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.

Nom : unnamed.jpg
Affichages : 155
Taille : 202,3 Ko

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

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)
Chaque code fonctionne... mais comment trouver la bonne formule pour les fusioner

Merci pour votre aide!!

A très vite,