Spektrum & Arduino

 

Comment lire les données d’un récepteur de radio-commande avec un Arduino ?

La class ci-dessous permet d’obtenir une plage de valeurs -configurable- image de la consigne fournie par la commande.

Testé sur les récepteurs Spektrum AR6200 et AR8000, il est toutefois possible d’adapter les constantes du fichier Header pour un équipement non standard.

Le fonctionnement de cette class est extrêmement simple. Il suffit d’indiquer le PIN d’entrée du canal et les valeurs min/max attendues.

Un inconvénient toutefois, la méthode principale fonctionne en asynchrone. En conséquence, il ne faut pas perdre de vue que chaque lecture de canal prend au minimum 2ms. On pourrait développer une version utilisant les interruptions, cependant, les Arduino UNO n’ont que 2 entrées d’interruptions prioritaires alors que les récepteurs de modèles réduits ont souvent besoin de 4 à 8 canaux.

 

[dg columns=”1″ ids=”847″]

 

Fichier Header:

...

PERIODE : Détermine le timeOut de le mesure pulseIn(). Il correspond à la durée d’une période PWM. Un servomoteur standard est cadencé à 50Hz. Donc la période est de 20ms.

PWM_MIN & PWM_MAX : Déterminent la durée de l’état haut du signal PWM en fonction de la position. En général, les servomoteurs requièrent 1ms pour l’état fermé (0°) et 2ms pour l’état ouvert (180°)

INIT_MIN & INIT_MAX : Déterminent les Valeurs initiales de calibration. Volontairement minimisées, elles seront auto-ajustées au fils des mesures. Cette fonctionnalité est optionnelle.

Le constructeur SPEKTRUM admets 3 paramètres:

  • Le PIN (pinCanal) correspondant au canal du récepteur.
  • La valeur minimale (valeurMin) attendu pour une consigne basse.
  • La valeur maximale (valeurMax) attendu pour une consigne haute.

La class SPEKTRUM comporte 2 méthodes :

  • lire() : déclenche la mesure de la voie.
  • mapCanal() : effectue une règle de 3 entre la donnée brute reçu du récepteur et la plage de valeurs attendues.

 

Signal PWM utilisé pour commander un servo-moteur standard

 

 

Fichier Code:

...

 

 

Exemple d’utilisation:

...

 

Grég(ory) Viénot Écrit par :

Artificier de passion, Electronicien de formation, Informaticien de métier, Scientifique en herbe, Gamer en carton.

4 Comments

  1. Vincent Chabrand
    20/04/2017
    Reply

    Super librairie !
    je viens de la tester avec une télécommande Spektrum DX6i et un récepteur OrangeRX, et ça marche nickel !
    Merci beaucoup pour ton travail !
    Vincent

  2. Stephan
    22/05/2018
    Reply

    Bonjour Grégory,
    Il y a un point que je ne maitrise pas, je ne sais pas où brancher mes sorties récepteur, je crois que je n’ai pas tout compris…
    Merci pour votre aide

    Stephan

  3. Stephan
    22/05/2018
    Reply

    Désolé, je viens de me rendre compte de ma bêtise….

Répondre à Stephan Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *