Modérateurs: Staff Home-Cinéma, Staff Juridique • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

Eteindre automatiquement son appli grâce à son colorimètre..

Message » 24 Déc 2009 1:05

.. et sauver des ours polaires, c'est possible !

Je cherchais un système pour éteindre automatiquement mon ampli audio/video quand je n'écoute plus la musique, et je me suis rappelé que j'avais quelque part un colorimetre HCFR capable d'émettre de codes de télécommande.

Après sniffage du port série, j'ai à peu près compris comment il fonctionnait, et j'ai pu mettre au point une appli qui :
* sert de télécommande
* éteint automatiquement l'ampli après un certain temps quand il n'y a pas de musique.

Image


L'appli se connecte en DirectSound à un périphérique d'enregistrement paramétrable modifiable dans l'écran, et fait une mesure de niveau toutes les n secondes (par défaut 300 donc 5 minutes).

* Quand le son dépasse un certain seuil, le volume et l'icone de l'application dans la notification bar sont verts.
* La première fois que le niveau baisse sous le seuil, on se met en warning : la couleur devient orange
* La deuxième fois , on passe au rouge et on envoie à l'ampli le code télécommande "power off"
* La troisième fois on recommence au cas ou la fois d'avant il y ait eu un pied/chien/etc devant l'émetteur IR du colorimètre.
* Après on attend que le niveau dépasse à nouveau le seuil (-60 dB par défaut)

De base l'application possède les 4 boutons du haut. Il est possible de rajouter autant de boutons que l'on souhaite en modifiant le fichier de config. Il suffit de récupérer le code IR grâce à l'appli du colorimètre, et rajouter le bouton dans le fichier de configuration
L'appli indique également le volume courant en -dB. La barre est graduée de -80dB à 0dB. Au-delà de -3dB, il y a saturation quelque part.

Le plus dur à été de parvenir à une bonne connexion audio entre l'ampli et le PC. Au début j'ai utilisé la sortie pré-out mais le niveau était très faible, bruité, sans compter les retours de masse dans le câble qui rajoutaient du ronflement.
Je me suis également rappelé que dans le placard où trainait mon colorimètre, il y avait aussi un transformateur HP/ligne utilisé en auto-radio de ce genre http://www.toutlehautparleur.com/antiparasite/monacor-fga22hq-p-2063.html , qui permettrait grâce à son isolation galvanique d'isoler les circuits ampli et pc. J'ai branché ce transfo sur la deuxième sortie HP de mon ampli et j'ai pu récupérer un bon signal.

Paramètres du fichier du config :

paramètres

<add key="ComPort" value="COM4" /> : le port COM du colorimètre, à récupérer dans le gestionnaire de périphériques
<add key="SoundLevelThreshold" value="-60" /> : le niveau en -dB qui sert de seuil. L'appli fait des mesures de 1 seconde tant qu'elle n'a pas trouvé 5 mesures consécutives du même côté du seuil. A régler en fonction de son niveau de bruit, niveau de l'ampli etc.
<add key="SoundPollingSecondsInterval" value="300" />: période de mesure. Par défaut 1 fois toutes les 5 minutes
<add key="EnableAmpShutdown" value="True" /> : active ou désactive l'extinction automatique de l'ampli

boutons standard

<add key="AmpOff" value="0000 006D etc" : mettre ici le code IR trouvé dans l'appli du colorimètre
<add key="AmpOn" idem
<add key="AmpVolDown" idem
<add key="AmpVolUp" idem

puis dans la section <CustomButtons>

On peut rajouter autant de boutons qu'on veut, avec le code associé. On peut aussi enlever les 3 qui sont présents.
A titre d'info les codes en place sont du Yamaha


Fonctionnalités techniques

* la gestion de télécommande et du volume tournent toutes les 2 dans leur propre thread, donc l'appli n'est jamais bloquée
* si on lance l'appli depuis une ligne de commande, elle y déversera ses messages de mesure.
* code 100% managé mais 32 bits à cause de managed directx qui ne supporte pas le 64 bits
* l'appli se loge dans la barre de notification et indique le volume en cours via tooltip
* l'appli sait gérer "l'appui long" sur les boutons de volume

Image

Voilà, si ça peut servir à quelqu'un et sauver quelques ours polaires en + :-)

PS : je peux aussi joindre le source si ça intéresse quelqu'un.

appli : http://rapidshare.com/files/325056019/GomAmpManager.zip
gomi
 
Messages: 14
Inscription: 29 Oct 2002 1:40
  • offline

Annonce

Message par Google » 24 Déc 2009 1:05

Publicite

 
Encart supprimé pour les membres HCFR

Message » 09 Jan 2010 17:41

bonjour,
super idée, j'adore !
une remarque plus une question.
la remarque : tu n'éteins probablement pas ton ampli, tu le mets en veille. tu ne sauve donc qu'un 1/2 ours :)
la question : avec quoi "écoutes-tu" ton ampli : une liaison directe PC-ampli (dans ce cas sur quelle entrée et sortie, il me semble comprendre entrée ligne de la carte son mais je ne comprends pas de quelle sortie ampli tu parles) ou un microphone ?
PS j'adore d'autant plus ton idée que j'avais imaginé un montage émetteur IR permettant d'allumer/éteindre progressivement une lampe au démarrage d'un film lancé par le PC mais mon montage n'a jamais marché. l'utilisation du colorimetre comme emetteur IR me remet cette idée en tete.
une adaptation de tes sources pourrait peut-etre m'aider si tu veux bien les mettre à disposition
merci
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 10 Jan 2010 0:27

Ben vu que l'ampli consomme 80W allumé, et 0.0W en veille (mesuré au Wattmètre), ça sauve quand même un bon pourcentage de l'ours :mdr:

Concernant le branchement je suis branché directement en parallèle sur les sorties enceintes avec un transfso de ce genre : http://www.toutlehautparleur.com/antipa ... -2063.html , et j'attaque l'entrée ligne sur le chipset Realtek de la carte mère. Le transfo n'a aucun impact sur la sortie vu qu'il fait 45 ohm d'impedance et l'enceinte 6 ou 8.
Tu peux aussi utiliser la sortie pre out de l'ampli mais chez moi c'était super bruité.

Au début j'étais branché en stereo, mais l'ampli coupait dans les séries quand on tombait sur du dialogue qui sort tout en centrale et rien sur les côtés. Du coup maintenant j'utilise un côté plus la sortie centrale (toujours sortie HP), et ça marche nickel.

J'ai mis le source là, c'est un projet visual studio 2008 en c#.
http://rapidshare.com/files/332881672/G ... Source.zip

Y'a une classe qui gère toute la partie infrarouge, y'a juste à instancier :
Code: Tout sélectionner
      irManagement = new GomIRMgt(appSettings.ComPort, irManagement_SendCodeDone);

le deuxieme paramètre est le nom de la fonction de callback appelée par le gestionnaire de télécommande quand il a fini l'envoi d'un code (c'est asynchrone)

puis envoyer le code
Code: Tout sélectionner
     irManagement.SendRemoteCode_Async(code);

code est la string trouvée pour un code infrarouge dans l'appli colorimètre

et attendre que le code soit parti pour recommencer
Code: Tout sélectionner
        private void irManagement_SendCodeDone(Exception e)
        {
            //fonction de callback qui est appelée par le gestionnaire de telecommande quand c'est fini
        }


Tu peux aussi envoyer un code "avec répétition" (genre volume)
Dans ce cas il faut faire
Code: Tout sélectionner
                irManagement.SendRemoteCodeWithRepeat_Async(code);

pour démarrer l'envoi d'un même code de manière répétée,

et
Code: Tout sélectionner
                irManagement.CancelSend();

pour l'arrêter...

... et attendre la fin avec l'appel de la fonction de callback

Voilà :-)
gomi
 
Messages: 14
Inscription: 29 Oct 2002 1:40
  • offline

Message » 10 Jan 2010 7:52

Super,
Ya pu qu'a ! (adapter ton produit à mon idée)
merci encore
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 10 Jan 2010 15:23

rebonjour,
c'est encore moi.
je viens de jouer un peu avec ton soft.
Finalement, je pourrais l'utiliser à mon propre usage sans avoir à redévelopper à partir de ton source sous réserves d'une "simple" modification de ton programme
Te serait-il possible que ton programme accepte un parametre sur la ligne de commande qui serait un code (d'une clé existante dans le .config) à envoyer :
ex : GomAmplifierManager.exe AmpOn
soit sur une instance déjà lancée soit dans une nouvelle instance qui dans ce cas se refermerait. ( la 1ere solution est plus simple pour les envois multiples car plus rapide d'execution).
(la finalité étant que mon automate logiciel (écris en autoit) envoie des commandes IR via ton programme)
merci par avance
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 10 Jan 2010 17:06

toujours moi,
en fait, avec autoit je sais appuyer sur les boutons même quand l'appli est dans la toolbar. je l'ai donc mis en œuvre avec comme 1ere application d'utiliser la télécommande donc je me sers avec girder pour émettre un volumeup/volumeDown vers l'ampli ( fainéant comme pas un; je clique vers l'avant de la salle sur mon capteur relié à girder, qui récupere la touche et la renvoie en fond de salle via Goma sur l'ampli) : je n'ai donc pas à prendre la télécomm. Ampli et à me tourner !!!
Et ca marche.
Sauf que l'émetteur du colorimètre est de piètre qualité, il faut quasiment être collé sur le récepteur IR pour que l'ampli reçoive sa commande. Je suis donc obligé de tirer un cable de la longueur de la pièce pour relier l'ampli au PC via le colorimètre
Pas glop

une remarque sur l'application : quand on la lance plusieurs fois, on obtient plusieurs processus. Au réveil de veille prolongée, j'ai un une anomalie sur la lecture du Volume
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 10 Jan 2010 17:46

Je fais une petite evolution qui
. met l'appli au premier plan quand on double clique sur l'icone
. a une check box pour désactiver/activer l'arrêt automatique de l'ampli.
. ne permet de lancer qu'une seule instance.

Je vais voir si je peux reproduire le probleme d'hibernate.

Concernant l'émetteur c'est vrai qu'il n'est pas très péchu. Je l'ai posé au-dessus de l'ampli, il dépasse juste de 1 ou 2 mm et ça suffit pour éclairer le récepteur IR de l'ampli. Et il voit aussi le VP juste en face pour permettre l'arrêt/démarrage.

Tu pourras aussi constater que le colorimètre n'est pas super véloce pour envoyer les commandes IR : augmenter et baisser le volume, ça va beaucoup moins vite qu'avec une vraie télécommande. Mais bon il n'a pas été développé pour ça :-)
gomi
 
Messages: 14
Inscription: 29 Oct 2002 1:40
  • offline

Message » 10 Jan 2010 18:18

Voilà une V2
http://rapidshare.com/files/333236131/G ... agerv2.zip

. appli au premier plan
. lancement d'une seule instance

je n'ai pas regardé le probleme de réveil, mais j'ai rajouté une checkbox qui permet de désactiver la partie analyse du volume, donc ça devrait résoudre ton problème par la même occasion
gomi
 
Messages: 14
Inscription: 29 Oct 2002 1:40
  • offline

Message » 10 Jan 2010 19:23

super, je prends dès que Rapidshare n'est plus surchargé et me laisse downloader tes 13k , je regarde et je te tiens au courant.
j'avais déjà mis dans le .conf
<add key="SoundPollingSecondsInterval" value="8000" />
<add key="EnableAmpShutdown" value="False" />
ce que devrait ressembler à la non-analyse du volume et non-extinction de l'ampli mais c'est là que j'ai eu le pb au reveil.
par contre je ne comprends pas ton évolution : le double clic sur l'icone mettait déjà en 1er plan le GUI.

PS j'ai effectivement noté la vélocité de la TC HCFR, mais comme tu le dis, elle n'est pas faite pour ça
A+
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 10 Jan 2010 19:33

Dis-moi si pour le réveil ça marche mieux.
Pour le premier plan ça ne marchait pas chez moi, si j'ouvrais quelques fenêtres et que je double-cliquais dans la toolbar, elle apparaissait mais derrière les fenêtres, ce qui n'était pas hyper pratique. Maintenant elle est top level donc ça marche.
Je suis sous W7, c'est ptet différent.
gomi
 
Messages: 14
Inscription: 29 Oct 2002 1:40
  • offline

Message » 10 Jan 2010 19:39

effectivement, de temps en temps la v1 apparait derriere les autres fenetres. Je n'arive toujours pas à recuperer la v2.
(j'espere que le clic via autoit sur un bouton alors que le gui est dans la toolbar ne fait pas apparaitre le GUI en 1er plan, ce ne serait pas cool pendant un film.)
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 11 Jan 2010 9:11

bonjour,
j'ai récupéré ce matin la v2. Effectivement la mise en 1er plan est meilleure. Il ne se lance bien qu'une seule instance.
Je t'en dirai plus ce soir sur la veille prolongée
bonne journée
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 11 Jan 2010 21:51

bonsoir,
Sans crier trop tot victoire, j'ai pu reveiller ce soir mon micro de sa veille prolongée sans tomber sur l'anomalie existante en v1.
je te tiens au courant.
bonsoir
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 31 Jan 2010 21:47

bonsoir,
je n'ai plus de pb au réveil de veille prolongée
Je me sers maintenant de ton GUI interfacé avec autoit pour lancer mes commandes par programme ! c'est SUPER. Je me suis acheté un variateur de lumière télécommandé par IR et je me sers de ton applic. pour éteindre automatiquement la lumière au début du film et rallumer à la fin.
juste une petite demande d'amélioration si tu as 5mn.
Y aurait-il possibilité d'avoir dans les touches custom le choix entre des touches à appui unique comme c'est le cas actuellement mais également des touches à pression continu comme les touches Volume Up et Down.
merci encore
michel
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline

Message » 05 Fév 2010 19:31

bonjour,
je viens d'installer ton appli sous win7 (x32 ET x64) et dans les deux cas , au lancement , j'ai "l'application a cessé de fonctionner". j'ai vérifié en installant le logiciel colorHCFR, j'accède bien au colorimètre et j'envoie bien le code en mode apprentissage
peux-tu venir à mon secours
michelB2
 
Messages: 1128
Inscription: 08 Sep 2003 9:42
Localisation: Nantes
  • offline


Retourner vers Le ColorHCFR