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

Répondre
Avatar du membre
Christian
Coadmin
Coadmin
Messages : 4824
Enregistré le : 28 août 2007 21:54
Prénom : Christian
Localisation : Entre Alpes et Jura
Contact :

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

Message par Christian »

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
Arduino_IR.jpg (60.2 Kio) Vu 11829 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 du membre
Daniel
membre
membre
Messages : 6104
Enregistré le : 27 sept. 2007 11:33
Prénom : Daniel
Localisation : Privas (Ardèche, France)
Contact :

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

Message par Daniel »

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 du membre
Christian
Coadmin
Coadmin
Messages : 4824
Enregistré le : 28 août 2007 21:54
Prénom : Christian
Localisation : Entre Alpes et Jura
Contact :

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

Message par Christian »

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
essais_IR.jpg (86.69 Kio) Vu 11655 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 du membre
Christian
Coadmin
Coadmin
Messages : 4824
Enregistré le : 28 août 2007 21:54
Prénom : Christian
Localisation : Entre Alpes et Jura
Contact :

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

Message par Christian »

Suite et code pour Stepduino 1 avec LCD DFRobot et Kit IR chinois, voir ici > http://www.lenaturaliste.net/forum/view ... 786#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

Gilles BILLARD
membre
membre
Messages : 1472
Enregistré le : 13 févr. 2012 09:03
Prénom : azerty

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

Message par Gilles BILLARD »

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.
Répondre

Retourner vers « Pilotage des reflex et des APN compact »