Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Piège photo
#1

Hello amis du libre

J'ai un petit projet photo et j'ai besoin de beaucoup d'aide en matière d'électronique et de programmation.

Alors voici le topo:
Le But:
Faire peur à un contemporain et capturer sa frayeur via une photo prise grâce au couple raspberry pi et sa caméra.

L'idée général du montage:
Déjà grâce au tuto de yaug ici j'ai une bonne base pour prendre la photo avec le déclenchement au passage précis de la personne.
La grosse étape qui est encore très flou pour moi à réaliser c'est le déclenchement d'un mécanisme pour effrayer la personne. Dans un premier temps je pense surtout à activer une lumière sur un "objet" effrayant et à lancer sur un haut parleur un son en rapport avec cette objet mais c'est de l'ordre du détail le son et l'objet en question, je m'intéresse surtout à la partie allumage du spot et lecture du son.

Un point sur le matos:
C'est là que je rame un peu, en dehors du matériel évoqué dans le tutoriel cité plus haut ( caméra + raspberry + capteur ultrason), yaug m'a parlé d'un relais pour l'allumage de la lampe, or je ne sais pas du tout quelle type de relais je dois choisir pour allumer un spot qui serais branché sur une prise classique 220V-16A, ni qu'elles sont les câbles nécessaires aux branchements entre le relais et le raspberry. Et pour ce qui est du son je pense qu'un simple câble jack relié à l'enceinte (qui soit dit en passant à l'ampli intégré) suffit à diffusé le bruitage.

Et enfin un peu de code:
Yaug à codé en python c'est un langage que je ne connais pas du tout, toutefois en partant de ses sources, j’espère pouvoir adapté son programme à ma situation en déclenchant la lumière de la même manière que la caméra capture une image.

Voilà j'espère avoir décris correctement mon petit montage et j’attends avec votre aide à commencer déjà par le matériel pour que je puisse m'équiper au plus vite :-)

A très vite !!

Adore les chats autant que je les crains ]Big Grin
Répondre
#2

Je te rassure, pour le python, je suis en cours d'apprentissage Smile

Pour le relai, tu as de la chance, j'ai passé ma soirée dessus.
Je suis en train de faire un tuto relai + lampe + rfid sur arduino
Donc ça se portera facilement sur le Raspberry Pi.

Pour le relai à choisir, tout a dépendre de ce que tu vas prendre comme système à activer.
Si c'est un spot énorme, ça risque de consommer pas mal et donc il faudra prendre un relai capable de le supporter.
Mais sinon tu prendras un relai de base, c'est facile à mettre en place.

Serial Organisateur d'aPIro
Bloggeur Bidouilleur
Ydle, domotique DIY basée sur un raspberry pi
Répondre
#3

C'est simple ce sera sûrement un PAR Led pour la faible consommation électrique mais j'hésite finalement en rédigeant la réponse car je pense au temps d'allumage qui doit être instantané, ce qui est important pour le relais c'est quoi ? La consommation en Watt ou la tension ? Ce serait un spot scénique PAR où le transformateur est intégré au spot .

Adore les chats autant que je les crains ]Big Grin
Répondre
#4

Bon j'ai un raspberry qui fonctionne j'ai aussi trouvé quelque pièces chez un vendeur d'électronique local, très sympa avec qui j'ai pu un peu discuter du projet et y voir plus clair. Du coup j'ai le relais, les résistances et la planche de prototypage. Le reste j'ai dût acheter sur le net car pas en stock. Du coup j’attends le reste pour la semaine prochaine avec impatience :-D ! J'ai une question toute bête, j'ai un appareil nikon qui peut être déclenché via une télécommande qui se branche en jack tout bêtement, du coup est-ce que la prise jack du raspberry n'envoie qu'un signal sonore ou pourrait-elle être configuré pour déclencher l'appareil ?

Adore les chats autant que je les crains ]Big Grin
Répondre
#5

Il va falloIr que tu bricoles un peu, car la prise jack n'est que pour le son
Mais j'ai déjà vu un prijet ou un lec commande sont appareil photot via le rasp et la prise jack, donc, c'est faisable :|

Serial Organisateur d'aPIro
Bloggeur Bidouilleur
Ydle, domotique DIY basée sur un raspberry pi
Répondre
#6

Intéressant, Je garde cette idée dans un coin si jamais le projet évolue :-).

Adore les chats autant que je les crains ]Big Grin
Répondre
#7

Bon j'ai cru avoir tout ce qu'il faut pour lancer le projet mais un truc semble m'avoir échappé, apparemment je ne peux pas juste contrôlé le relais avec un gpio, mais il faut un transistor avec. Alors à votre avis je dois m'en acheter un ou alors y'a t-il un moyen de contourner ce problème ?

Je me suis un peu mis au python aussi et j'ai concocter ce script dans un premier temps pour essayer le relais
Code :
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

# Set up #4 as an output
print "Setup #4"
GPIO.setup(4, GPIO.OUT)

var=1
print "Start loop"
while var<10:
    print "Set Output True"
    GPIO.output(4, True)
    time.sleep(1)

    print "Set Output False"
    GPIO.output(4, False)
    time.sleep(1)
    var+=1

trés largement inspiré de ce Tuto

Si vous voyez un truc qui vous parait incorrect faites le moi savoir.

Adore les chats autant que je les crains ]Big Grin
Répondre
#8

Quelques remarques :
  1. non que ce soit incorrect, mais en python, préfère une indentation de 4 espaces plutôt qu'un seul, c'est plus lisible ;
  2. avec ce code, tu n'entreras jamais dans la boucle ;
  3. utilise une constante pour le numéro de GPIO utilisé : si tu souhaites monter ton circuit sur une autre broche, ça te fera un seul endroit à modifier ;
  4. n'utilise pas la coloration syntaxique du JS pour du python Tongue .
Répondre
#9

David a écrit :Bon j'ai cru avoir tout ce qu'il faut pour lancer le projet mais un truc semble m'avoir échappé, apparemment je ne peux pas juste contrôlé le relais avec un gpio, mais il faut un transistor avec. Alors à votre avis je dois m'en acheter un ou alors y'a t-il un moyen de contourner ce problème ?

Non, a priori ca doit/peut marcher tel quel.

Attention par exemple a voir a partir de quelle tension ton relais reconnait un état haut. (surtout si c'est un relais 5V)
Certains relais ont besoins de > 3V .. et d'autres > 3.8V par exemple. (Suivant la logique TTL ou CMOS)
La sortie de la GPIO du Rasp donnera du 3.3V. Donc suffisant pour déclencher certains relais.. mais insufisant pour d'autres.
Dans ce cas tu peux généralement utiliser un "level shifter".
Répondre
#10

Effectivement j'ai fait quelque petites erreurs en recopiant de tête ( le code est sur le raspberry et il rentrait et sortait de la boucle ). J'ai essayé la coloration pour voir si c'était plus présentable ;-).
Sinon oui j'ai éxprés acheté un relais qui fonctionne avec du 3V.
Pour les branchements j'ai relié le relais au pin 6 pour la masse et 7 pour la GPIO, Voici le relais, Y'a t'il aussi un sens du courant sur la bobine du relais ? Et par curiosité qu'est ce qu'un level shifter ?

Adore les chats autant que je les crains ]Big Grin
Répondre
#11

ok.. Mais ca devrait fonctionner.. a verifier le code, le relais etc.. etc..
Tu peux tester avec wiringPi aussi

Pour le level shifter, par exemple:
http://shop.mchobby.be/fr/breakout/131-a...ique-.html
Répondre
#12

Alors j'ai fait des petits tests pour diagnostiquer par élimination.
Le relais fonctionne j'ai branché une pile bouton 3V dessus--->ok
La GPIO utilisé fonctionne avec une led branché ( une minute de silence pour ma vieille lampe de poche qui s'est sacrifié pour l'équipe) --->ok
Quelqu’un aurait-il une idée d'où peut venir le problème ?

Adore les chats autant que je les crains ]Big Grin
Répondre
#13

tu as branché une LED et le relais fonctionne.. doncle code fonctionne et le relais fonctionne.. (preuve qu'il n'y a pas besoin de transistor)
c'est quand tu branches quoi que ca ne fonctionne pas ?
Répondre
#14

Quand je branche le relais sur le raspberry rien ne se passe.
J'ai peut être pas assez détaillé tout à l'heure. Pour tester le relais j'ai brancher la bobine sur une pile 3V et l'interrupteur sur une ampoule ,l'ampoule s'allume donc ok.
j'ai brancher une led sur les pin gpio 7 et 6 du raspberry, la led s'allume donc ok mais quand je branche ces même pin aux bornes de la bobine du relais, rien ne ce passe.

Adore les chats autant que je les crains ]Big Grin
Répondre
#15

Donc on a:
- 3V (d'une pile) sur le relais, le relais fait "contact" et une ampoule (alimentée par ???) s'allume...
- Une LED entre la GPIO4 (pin 7) et la masse (pin 6) ..et le script fait bien clignoter la LED...

Effectivement tout a l'air ok...
Pourtant un truc cloche.. Peut etre nous faire un shéma de ces tests pour identifier ou pourrait etre le pb...
Répondre
#16

Oui tu as bien résumé, au passage je te remercie pour tes réponses et ton soutien. Smile {)
Je pense qu'en fait la GPIO4 ne sort pas une tension suffisante (je ne trouve plus mon multimétre pour en être sûr )car j'ai également essayer de brancher le relais sur la pin 1 de 3.3V et il fait contact ( l'ampoule brancher sur du 220V s'allume).
Je pense que le transistor va se faire indispensable ou même le level shifter, de toutes façon je compte acheter un kit cobbler car je trouve que les connexions que j'ai acheté ne sont pas génial.

Adore les chats autant que je les crains ]Big Grin
Répondre
#17

J'insiste avec le transistor mais c'est suite à la lecture de ce site mais il se peut que j'ai compris de travers. Sinon le site que tu as cité pour le level shifter livre-t-il rapidement ?

Adore les chats autant que je les crains ]Big Grin
Répondre
#18

Il faut un transistor pour amplifier le courant s'il n'est pas suffisant de base pour "activer" le relais.


Ton relais semble indiquer: 360 mW /3V -> P=U.I -> I=P/U -> 0.360 / 3 = 120mA ?
Est ce qu'i faudrait 120mA a ton relais pour "declancher" ?
Normalement il ne faut pas tirer + de 50mA sur les GPIOs.
http://elinux.org/RPi_Low-level_peripherals#Power_pins
Donc attention a ne pas griller le Rasp.
Mais peut etre les 360mW ne veullent pas dire cela.. .?

Un exemple du célèbre idleman d'un relais sans transistor sur la meme GPIO que toi.
http://blog.idleman.fr/raspberry-pi-07-a...-pas-cher/
(risque aussi de griller le Rasp)

J'ai moi aussi un montage qui fonctionne parfaiement sans transistor
Répondre
#19

Ok donc c'est sûrement un problème d'intensité, du coup quelle est la solution ?
Je me suis aussi intéressé à l'exemple de idleman, mais j'en ai conclu que ça carte relais devait fonctionner avec un transistor sur chaque relais vu quelle est alimentée par le pin 5V du raspberry en plus de la GPIO4 . Peut-être que je me trompe mais c'est ce que j'en ai déduit.

Pardon de vous mettre la pression mais j'aimerais être au point pour ce samedi (si il y a des membres qui habitent l'Alsace il seront les bienvenues à l'expérimentation en direct) donc si vous avez une proposition pour faire fonctionner le relais (celui-là ou un autres que je devrais acheter) faites le moi savoir s'il vous plait Smile, je suis perdu, je ne vois pas comment contourner ce problème...

Adore les chats autant que je les crains ]Big Grin
Répondre
#20

Bon ben j'ai acheté un transistor et suivit ce schéma http://www.susa.net/wordpress/2012/06/ra...sing-gpio/
et ça marche nikel ! Demain je branche le capteur de mouvement et je testerais tout ça en même temps.
Bonne nuit les libertins ;-)

Adore les chats autant que je les crains ]Big Grin
Répondre
#21

cool..
J'ai du avoir de la chance avec mes relais (pris un peu au pif).. Big Grin
Répondre
#22

Veinard Wink
Bon cette fois j'ai un soucis avec le script de yaug sur son tuto, il se lance mais rien ne se passe . je pense que c'est un défaut de contact avec les gpios ( ça a fonctionné une première fois mais j'ai ctr + c pour sortir de la boucle et depuis des que je le lance rien ne se passe ). j'ai commander un kit cobbler pour être sur de mes contacts, ça commence à m'énerver de bidouiller avec les fils de connexion pas adaptés.

Adore les chats autant que je les crains ]Big Grin
Répondre
#23

Si tu as fait un Ctrl+C, tu n'as sans doute pas relâché proprement tes GPIO. Ils continuent à être utilisé par le processus que tu as tué.
Pour relâcher un GPIO utilisé en lecture, ouvre une console et saisis la commande suivante :
Code :
[== Indéfini ==]
su -c 'echo XX > /sys/class/gpio/unexport '
en remplaçant XX par le numéro du GPIO utilisé précédemment.
Remplace /sys/class/gpio/unexport par /sys/class/gpio/export pour un GPIO utilisé en écriture.
Répondre
#24

ALors il me dit
bash: line 0: echo: write error: Invalid argument
Et pour les GPIO utilisé sur le précédent script la console me signalé qu'ils étaient utilisé mais lancé quand même le script

Adore les chats autant que je les crains ]Big Grin
Répondre
#25

Il est vivant !! :-) Ne lui manque plus que la parole. Quelqu'un connaît la librairie pour lire un fichier audio directement avec python sans ouvrir de lecteur média ?

Adore les chats autant que je les crains ]Big Grin
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)