Piloter un APN ou un Arduino par une télécomande IR

Piloter un APN ou un Arduino par une télécomande IR

Messagede Christian » 25 Mai 2012 17:11

Bonjour,
Je regarde ce qui existe sur le Net à ce sujet.
C'est en fait assez simple ....

Un bon lien pour commencer : http://www.ladyada.net/learn/sensors/ir ... r_commands
Ici on montre comment piloter l'Arduino avec une télécommande IR Nikon et inversement (Arduino > Nikon)
On y explique aussi comment utiliser d'autres petites télécommandes plus complètes.

Arduino_IR.jpg
Exif et Meta MicroCartouche Arduino_IR.jpg (60.2 Kio) Vu 9586 fois


Voir aussi :
- Forum Snootlab : http://forum.snootlab.com/viewtopic.php?f=36&t=136 (+ liens internes et petit kit en vente chez ce fournisseur)
- kit sur EB, parmi beaucoup d'autres http://cgi.ebay.fr/IR-Remote-Control-In ... 3371b290c7
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Piloter un APN ou un Arduino par une télécomande IR

Messagede Daniel » 25 Mai 2012 20:23

Bonsoir,
est ce qu'il faut comprendre que ces télécommandes infrarouges comme le kit EB peuvent fonctionner simultanément à nos écrans et permettre le remplacement des boutons des écrans par ceux de la télécommande?

(si oui, je commande tout de suite!)
Daniel Nardin
sites: perso, microscopie , plongée Egypte et Réunion, orchidées du Doubs
matériel micro/macro/photo principal: microscopes Olympus BH, stéréomicroscope Nikon SMZ, reflex Nikon (D800 actuellement) +105macro, soufflet... , hybride Olympus EM5 mkII, compact OlympusTG-5 ...
Avatar de l’utilisateur
Daniel
membre
membre
 
Messages: 6035
Inscription: 27 Sep 2007 10:33
Localisation: Privas (Ardèche, France)
Prénom: Daniel

Re: Piloter un APN ou un Arduino par une télécomande IR

Messagede Christian » 31 Mai 2012 23:57

Bonjour Daniel, tous,
est ce qu'il faut comprendre que ces télécommandes infrarouges comme le kit EB peuvent fonctionner simultanément à nos écrans et permettre le remplacement des boutons des écrans par ceux de la télécommande?

Oui, je viens de tester, c'est pas mal du tout !
En plus on peut conserver l'usage des boutons du LCD DFRobot (pratique en cas de panne de télécommande ou trop de lumière parasite) .
Pour mes essais j'ai modifié (très peu en fait) le code Stepduino et monté un petit capteur IR que j'avais en stock. J'ai utilisé une télécommande de DVD Sony, cela fonctionne très bien et est beaucoup plus agréable que les boutons du LCD 5 bt ... (beaucoup trop dur à mon gout !)
Dès réception et essais du kit proposé je publierai le nouveau code.
(on le trouve aussi en France, livraison en principe plus rapide, mais presque 2x plus cher avec les frais de port : http://www.zartronic.fr/kit-t%C3%A9l%C3 ... p-181.html)

Montage, code et libraire : http://www.arcfn.com/2009/08/multi-prot ... brary.html

Ps: J'ai quand même un petit problème avec le Buzzer qui se met à siffler en permanence lorsqu’on l'appelle ... je pense qu'il doit il y avoir un conflit entre la libraire IR et la commande TONE ... à creuser, du côtés des timers j'imagine ...
J'espère que cela ne porte pas aussi préjudice à la variable "freqMot" et à la précision du moteur, mais à première vue non.

Montage test avec de la récup :

essais_IR.jpg
Exif et Meta MicroCartouche essais_IR.jpg (86.69 Kio) Vu 9411 fois
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Piloter un APN ou un Arduino par une télécomande IR

Messagede Christian » 23 Juin 2012 12:13

Suite et code pour Stepduino 1 avec LCD DFRobot et Kit IR chinois, voir ici > viewtopic.php?f=284&t=11092&p=59786#p59786
Bien amicalement, Christian
Microscope : Leitz Ortholux I - Stéréomicroscope : Novex AP5 - Divers bancs macro
Photos: Nikon (D70) D90, Canon A75, MicCam Tucsen 3 mpx
Soft: Photoshop - MicroCartouche - Helicon focus -Stepduino (stacking automatisé)
Site perso (ancien) ici

Avatar de l’utilisateur
Christian
Coadmin
Coadmin
 
Messages: 4790
Inscription: 28 Aoû 2007 20:54
Localisation: Entre Alpes et Jura
Prénom: Christian

Re: Piloter un APN ou un Arduino par une télécomande IR

Messagede Gilles BILLARD » 20 Juil 2013 12:31

Hello,
Comme je n'ai pas, dans mes tiroirs, de module récepteur comme celui de Christian, je suis allé a la déchetterie en prélever un sur le 1er téléviseur venu.
Bon, c'est pas tout a fait pareil, c'est d'une plus vieille technologie car l'électronique est sur un petit CI sous le récepteur mais ca fonctionne de la même manière, sur la même fréquence (c'est un HC 337M, doc ICI )
J'ai également choisi d'utiliser une petite télécommande genre celle d'une camera, du coup, les codes ne sont pas les mêmes... j'ai donc encore une fois modifié un peu le code de Christian pour déclarer en début de programme les codes qui vont bien et modifié le petit bout de programme qui les utilise.
En revanche, j'ai eu plus de soucis avec le fontionnement proprement dit; Alors que sur le petit bout de test que j'ai extrait du programme principal pour debugguer le capteur tout fonctionne comme prévu, une fois réintégré dans Stepduino ca n'allait plus du tout; des ordres passaient sans arret.... la cause probable est la durée de la boucle totale qui est trop longue et de durée variable selon le chemin, que mon capteur est parasité car j'ai oté le blindage (je suis trop curieux) et que l'ensemble produit des faux ordres. J'ai donc modifié un peut tout ca aussi et j'en ai profité pour intégrer le repeat des touches up et down pour faire avancer/reculer le moteur dans la recherche du second point de la course a effectuer avec la télécommande.

Le code du test du recepteur qui fonctionne tel quel, mais qui, une fois reporté dans Stepduino débloque pas mal :
Code: Tout sélectionner
#include <IRremote.h>

int RECV_PIN = 7;
int PinBuzzer = 8; // Buzzer
IRrecv irrecv(RECV_PIN);
decode_results results;
int lcd_key = -1; // key Joystick
//Code de la télécomman,de IR
// Pour préciser qu'un nombre est codé en hexa, ajouter "Ox" avant le nombre
const long  IrOK = 0xFF9867;
const long  IrUp =0xFFA857;
const long  IrDwn =0xFF18E7;
const long  IrLeft =0xFF6897;
const long  IrRight =0xFFB04F;
const long  IrShoot =0xFFE21D;
// key Joystick
const int btnRIGHT = 0;
const int btnUP = 1;
const int btnDOWN = 2;
const int btnLEFT = 3;
const int btnSELECT = 4;
const int btnShoot=5;


void setup()
{
  Serial.begin(115200);
  irrecv.enableIRIn(); // Démarre de récepteur
   pinMode(PinBuzzer, OUTPUT);
//P'tite mélodie de mise en route
buzz(PinBuzzer, 2500, 25); // Bip
  delay(100);
  buzz(PinBuzzer, 2000, 25); // Bip
  delay(100);
  buzz(PinBuzzer, 2200, 25); // Bip
  delay(100);
  buzz(PinBuzzer, 2500, 25); // Bip

  delay(100); // délai supplémentaire pour capter un ordre de télécommande
}

void loop() {
  if (irrecv.decode(&results)) {
     buzz(PinBuzzer, 2000, 25); // Bip
  delay(100);
    Serial.println(results.value, HEX);
    switch (results.value)
    {
      case IrUp:
      lcd_key = btnUP; // bt.2
      break;
      case IrDwn:
     lcd_key = btnDOWN; // bt.8
     break;
     case IrLeft:
      lcd_key = btnLEFT; // bt.4
      break;
      case IrRight:
      lcd_key = btnRIGHT; // bt.6
      break;
      case IrOK:
      lcd_key = btnSELECT; // bt.5
      break;
      case  IrShoot:
      lcd_key = btnShoot;  // bt.0
      break;
      default:
      lcd_key = 999;
    }
    Serial.println(lcd_key);
    irrecv.resume(); // Receive the next value
  }
}
// Buzz (remplace TONE qui crée des conflits avec la librairie IR a cause de l'utilisation commune du timer2)
void buzz(int targetPin, long frequency, long length) {
  long delayValue = 1000000/frequency/2; // Calcul de la demie-période du signal
  // en microsecondes
  long numCycles = frequency * length/ 1000; // calcul du nombre de périodes
  //// par rapport a la durée demandée (en millisecondes)
  for (long i=0; i < numCycles; i++)
  {
    digitalWrite(targetPin,HIGH); // pousse le piezzo
    delayMicroseconds(delayValue); // pendant une demie-période
    digitalWrite(targetPin,LOW); // relâche le piezzo
    delayMicroseconds(delayValue); // pendant une demie-période
  }
}
J'en ai assez des potentats d'une gauche qui se croit bienpensante et qui conduit notre pays a sa perte.
Gilles BILLARD
membre
membre
 
Messages: 1477
Inscription: 13 Fév 2012 09:03
Prénom: azerty


Retourner vers Pilotage des reflex et des APN compact

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité