Closed martincornu closed 2 years ago
Problem still here with debounce time of 100ms and 2k external pullups
Room's door is open or close thanks to an electromagnet. So maybe the problem is due to Back ElectroMotiveForce (EMF). See https://progeny.co.uk/back-emf-suppression/ .
But this is strange because with the old python script (videoplayer.py), it didn't launched so often on electromagnet open. Maybe 1 on 20. Now it is every time.
Analyse des problèmes à date avec V1.4 :
Voici une analyse des bugs possibles :
A ce stade, voici les étapes de debug que l'on pourrait mener et les questions qu'on peut se poser :
L'alimentation de l'électroaimant est-elle séparée de celles de Arduino et Raspberry ? Il semble que les alimentations soient séparées mais c'est le même réseau électrique.
Tester de mettre en route la raspberry sans Arduino (Arduino débranchée) et voir si ça bug. Cela permettra de dire si le problème vient de l'Arduino ou de la Raspberry. Testé : la vidéo se déclenche toute seule en boucle même si l'Arduino est débranché.
Tester de mettre un pont diviseur de tension avec des résistances de 3k3 et 2k2 pour fournir du 3V3 par la sortie Arduino, plutôt que de mettre la sortie en haute impédance (peut-être perturbée par des parasites).
3.bis Si le pont diviseur ne fonctionne pas, tester de piloter un transistor.
Tester d'ajouter une diode de roue libre ou équivalent au montage des électroaimants.
Vérifier le signal du 3V3 côté rpi à l'oscilloscope lorsqu'on pilote les électroaimants.
Tester sur une pin différente de la raspberry pour voir si c'est une usure de la pin d'entrée raspberry.
Côté firmware, doit-on garder la dernière version avec le replay ? Cela a-t-il pu introduire des bugs ? Différentes possibilités :
Dans les cas 1. et 2. on testera le pont diviseur via Arduino et ajout d'un diode de roue libre ou équivalent sur les EA. On peut donc faire les modifications hardware et tester les firmware les uns après les autres en commençant par le dernier 1.4.
La piste des parasites générés par les back EMF des électroaimants s'éloigne car il y a des protections incluses avec les électroaimants (MOV) et les relais (diode de roue libre).
Voici le plan de debug :
Prochains essais grâce aux conseils de l'auteur de cet excellent article :
Le problème a été résolu en connectant la raspberry aux boutons avec un filtre anti-rebond basé sur deux MAX1768EUT. L'Arduino a été supprimé du système. L'alimentation de la raspberry a été séparée de celle des électroaimants. La raspberry a été mise dans une cage de Faraday.
Video is launching automatically when players put the hook on and it opens the room's door. It is maybe due to bounce effect on the rpi input.
What we could try: instead of wait for edge, use add_event + callback with debounce delay.