Je possède un ampli Yamaha qui me donne toute satisfaction .
pour info : lien-Web-Yamaha  
je n'ai pas sa télécommande .... et je dois me lever pour modifier le son.
Je ne trouve pas la télécommande originale qui ne doit pas être bon marché.
Alors je vais tenter de réaliser avec Arduino un moyen de tourner le bouton de volume a partir d'une télécommande quelconque ! 
*********
il me faut 
une détection Ir
un Arduino Uno pour commencer avec les connections volantes
une télécommande quelconque  
un moteur Pas à Pas
une poulie + courroie (ou élastique)
Un boîtier 
l'interface de programmation Arduino
sous Linux dans mon cas .
ET 
faire le programme  
**************** 
La liste est faite..... c'est parti ! 
une détection Ir 
un arduino Uno pour commencer
Une télécommande quelconque
 et je prévois une deuxième télécommande qui traînait dans un tiroir
  un moteur Pas à Pas
Une poulie + courroie 
boutons + élastique
 le boitier    
l'interface arduino
 **************
Pour le programme je ne vais pas réinventer l'eau tiède
la méthode existe.  
il faut 
choisir les touches de la télécommande à utiliser
identifier le code de ces touches  
Définir l'action selon la touche pressée
---
Pour le programme 
il faut inclure les bibliothèques 
"Infrarouge"
et 
"moteur pas a pas" 
-- 
lire le code reçu  par la partie Ir
et
selon ce code 
actionner le moteur  vers la droite ou la gauche.
voici un exemple de code à recevoir et à traiter
Le programme final (trés court)
se trouve tout en bas.  
----
Passons au prototype
Je travaille sur une serviette cela me permet de 
tout faire pivoter d'un coup, c'est bien plus facile .
j'ai utilisé dans un premier temps un Arduino Uno + plus une plaque de connections et tout le câblage volant. 
--
voici la partie Ir et sa diode témoin (avec la commande de l'affichage 16*2) 
 là tout est câblé et fonctionnel.
il faut maintenant réduire le volume de tout cela 
utiliser un Arduino Nano
virer l'afficheur de test , la diode témoin puis souder le tout.
ici l'arduino Nano , bien plus petit. 
placer le tout dans le boîtier de pilule après avoir 
forer un trou pour le moteur
 vernir les bavures et rayures
 coller le moteur dans la boite
 et voilà 
Pour la poulie , le premier essai fut un échec puis j'ai utilisé des boutons de manteau , là ça marche !
---------
 le contrôleur du moteur 
le nano et ses connections 
 le détecteur ir
 Le tout dans sa boite et la première poulie. 
voici le tout en place , je dois repeindre la poulie 
J'ai repeint la poulie ... plus joli  , non ? 
Les vidéos montrant le fonctionnement  
(fonctionnent elles avec tous les navigateurs ????) 
avec la première poulie
et finalement avec la deuxième commande et la deuxième poulie
 Amélioration à prévoir 
tenter l'implantation sur Arduino Tyni et un I²C pour combler le manque de pattes du Tyni - A évaluer - 
Prévoir une touche autre sur la télécommande qui baisse le son d'un coup automatiquement et une autre qui le remet au même volume , en cas de coup de téléphone par exemple une fonction MUTE en quelque sorte 
Pour le moment l'appui prolongé ne fonctionne pas (je ne l'ais pas programmé) il le faudrait pour économiser les piles de la télécommande
-------------
Le programme  
#include "IRremoteInt.h"
#include "IRremote.h"
#include "Stepper.h"
const int RECV_PIN = 8; // reception pin 8
IRrecv irrecv(RECV_PIN);
decode_results results;
double stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 9, 11, 10, 12);
    // sequence des pin moteur
void setup() {
Serial.begin(9600); // initialisation liaison série
irrecv.enableIRIn(); // initialisation reception Ir
irrecv.blink13(true); // la diode implémenté clignote a la reception
myStepper.setSpeed(10); // pas du moteur
} // void setup
     
void loop() {
            
if (irrecv.decode(&results)){ // si reception trame correcte
Serial.println(results.value); // liaison pc
irrecv.resume(); / resume Ir
}
switch (results.value) { // debut de la structure code sylver crest kh 2311
   
case (16748655): // cas <<<<< autre touche
myStepper.step(-100);
break;
case (16756815): // cas volume -
myStepper.step(100);
break;
case (16724175): // cas volume +
myStepper.step(-100);
break;
    
case (16740495): // cas >>>>> autre touche
myStepper.step(100);
break;
case (1489202892): // cas commande blanche off = +
myStepper.step(-100);
break;
case (3925222132): // cas commande blanche on = -
myStepper.step(100);
break;
case (4294967295): // cas touche enfoncé longuement non fonctionnel
break;
} // fin switch
    
results.value= 0; // force l' arret du moteur en effaçant le code
    
    
} //void loop
void setup() {
Serial.begin(9600); // initialisation liaison série
irrecv.enableIRIn(); // initialisation reception Ir
irrecv.blink13(true); // la diode implémenté clignote a la reception
myStepper.setSpeed(10); // pas du moteur
} // void setup
void loop() {
if (irrecv.decode(&results)){ // si reception trame correcte
Serial.println(results.value); // liaison pc
irrecv.resume(); / resume Ir
}
switch (results.value) { // debut de la structure code sylver crest kh 2311
case (16748655): // cas <<<<< autre touche
myStepper.step(-100);
break;
case (16756815): // cas volume -
myStepper.step(100);
break;
case (16724175): // cas volume +
myStepper.step(-100);
break;
case (16740495): // cas >>>>> autre touche
myStepper.step(100);
break;
case (1489202892): // cas commande blanche off = +
myStepper.step(-100);
break;
case (3925222132): // cas commande blanche on = -
myStepper.step(100);
break;
case (4294967295): // cas touche enfoncé longuement non fonctionnel
break;
} // fin switch
results.value= 0; // force l' arret du moteur en effaçant le code
} //void loop
**********************************************************
c'est une bien petite réalisation qui permet d'approcher la programmation avec de l'Ir et des moteurs pas à pas, de tenter d'identifier le code Ir des différentes télécommandes 
Il faut maintenant l' améliorer ! 
Je suis preneur de toute suggestion ! 
Cdlt.
LN 03/2020
 








 



 






 



4 commentaires:
Salut, les vidéos fonctionnent avec Opéra.
Henri.
Salut, les vidéos fonctionnent avec Opéra.
Henri.
salut henry , sous linux et firefox les videos ne fonctionnent pas !
cdlt
lio
Coucou,
J'avais commencé un peu de faire de l'Arduino, c'est intéressant :)
Enregistrer un commentaire