Le forum français des radios OpenTX ou FrOS
Le forum français des radios OpenTX ou FrOS
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

Reconversion d'une télécommande pour simulateur

2 participants

Aller en bas

Reconversion d'une télécommande pour simulateur Empty Reconversion d'une télécommande pour simulateur

Message par Invité Mer 17 Aoû 2016 - 14:42

Bonjour,
Souhaitant pouvoir m’entraîner au simulateur pendant la pause déjeuner, je me suis mis en quête de la télécommande la plus petite possible. Après avoir passé beaucoup de modèles en revue, mon choix s'est porté sur la E-Flite MPL4DSM.

Reconversion d'une télécommande pour simulateur Efl-ef10

Tout serait allé pour le mieux dans le meilleur des monde si elle avait su générer le signal PPM nécessaire au simulateur !
Renseignement pris sur le net, il apparaît que le microcontrôleur interne dialogue avec le module d'émission en PWM, donc pas de PPM en vue... Plutôt que de réfléchir à un convertisseur, j'en suis arrivé à la conclusion qu'il valait mieux refaire toute l'électronique en ne gardant que les potentiomètres des manches.
C'est là qu'intervient mon microcontrôleur préféré : l'Arduino ! Ça coûte pas cher, ça se programme en C, vraiment idéal.

L'idée est donc de lire la valeur des 4 potentiomètres sur 4 entrées analogiques différentes, la logique fera le reste.
(nous reparlerons de la LED à gauche un peu plus tard)

Reconversion d'une télécommande pour simulateur Schyma10

Le programme est très simple, il est constitué d'un boucle qui lit séquentiellement la valeur des potentiomètres sur une certaine fourchette (les valeurs sont arbitraires pour l'instant) :

Code:
voie01 = map(analogRead(A7),300,800,1000,2000);

Puis de générer les impulsions nécessaires en basculant la sortie de l'état haut à l'état bas pendant la durée représentant la position du manche :

Code:
digitalWrite(ppm, HIGH);
delayMicroseconds(initPulse);
digitalWrite(ppm, LOW);
delayMicroseconds(voie01-initPulse);

On envoie le canal 1, puis le 2, puis le 3, puis le 4, et on recommence indéfiniment.

Souhaitant alimenter la télécommande avec une batterie LiPo 2S, et ayant beaucoup de puissance de calcul en réserve, j'ai ajouté une petite fonctionnalité qui lit la tension de la batterie sur l'entrée analogique A2, à travers un simple pont diviseur (les deux R de 2.2k). L'Arduino fonctionnant en 5V, lui faire ingurgiter du 7V n'est pas très bon.
La valeur de A2 est convertie en numérique puis comparée à une valeur seuil (3.1 V par cellule) en deçà duquel la LED clignote.
On peut se le permettre car tout le montage est alimenté au travers d'un régulateur 5V intégré à l'Arduino. Les valeurs de référence des convertisseurs Analogique/Numérique sont après le régul, la prise de tension est faite avant.

J'ai fait les tests sur plaquette d'essai avec un Arduino Pro Mini, 4 potars, et le simulateur Heli-X, ça fonctionne nickel.
Etape suivante : attendre patiemment la radio achetée d'occasion pour 12 € et attaquer les modifs hard.
Si le sujet vous intéresse, je posterai des photos lundi prochain.

Je n'arrive pas à joindre le fichier, le forum me dit qu'il est incorrect, alors voici le code. Il est tout plein de commentaires pour ceux qui ne causent pas couramment l'Arduino.

Code:
/*
Génération de signal PPM pour simulateur, en ne réutilisant que les potentiomètres de la radio.
La LED est allumée fixe lorsque la radio est sous tension, ou clignote lorsque la tension de
la batterie (LiPo 2S) chute en dessous de 6,1 V.
- Jibeji 17.08.2016
*/

int ppm = 13;  // sortie PPM
int led = 2;   // Sortie LED

// Variables pour les 4 voies
int voie01 = 0;
int voie02 = 0;
int voie03 = 0;
int voie04 = 0;
// Durée du Pulse d'init
int initPulse = 300;
// Durée de la trame reset
int frameReset = 7000;  
// Référence de tension pour la conversion
float refVcc = 5.0;

void setup() {
   Serial.begin(9600);
   pinMode(ppm, OUTPUT);
}

void loop() {
   /* ------------------------------------------------------ */
   // Partie Voltmètre
   /* ------------------------------------------------------ */
   int TensionLiPo = analogRead(A2);
  
      // Débugage, à supprimer en fonctionnement normal
      // Affichage de la valeur lue et de la tension
      Serial.print("Lecture brute: ");
      Serial.println(TensionLiPo);
      Serial.print("Tension: ");
      Serial.print(TensionLiPo*refVcc/1024);
      Serial.println(" V");
      Serial.println("--------------------");
      // Fin débugage
  
   if (TensionLiPo > 640) {      // Tension supérieure à 6.1V ?
      digitalWrite(led, HIGH);   // Oui, LED allumée
   } else {
      blink_led();               // Non, LED clignote
   }

   /* ------------------------------------------------------ */
   // Partie lecture potentiomètres et envoi PPM
   /* ------------------------------------------------------ */
  
   // Mapping en fonction des valeurs des potentiomètres
   voie01 = map(analogRead(A7),300,800,1000,2000); // RUD
   voie02 = map(analogRead(A1),300,800,1000,2000); // ELE
   voie03 = map(analogRead(A6),300,800,1000,2000); // THR
   voie04 = map(analogRead(A0),300,800,1000,2000); // AIL
  
      // Débugage, à supprimer en fonctionnement normal
      // Affichage des valeurs corrigées
      Serial.print(voie01);
      Serial.println(voie02);
      Serial.println(voie03);
      Serial.println(voie04);
      delay(1000);
      // Fin débugage
  
   // Envoi du signal PPM
   // Voie 1 - Dérive
   digitalWrite(ppm, HIGH);             // Etat haut
   delayMicroseconds(initPulse);        // Durée d'init
   digitalWrite(ppm, LOW);              // Etat bas
   delayMicroseconds(voie01-initPulse); // Envoi valeur
  
   // Voie 2 - Profondeur
   digitalWrite(ppm, HIGH);
   delayMicroseconds(initPulse);
   digitalWrite(ppm, LOW);
   delayMicroseconds(voie02-initPulse);
  
   // Voie 3 - Gaz
   digitalWrite(ppm, HIGH);
   delayMicroseconds(initPulse);
   digitalWrite(ppm, LOW);
   delayMicroseconds(voie03-initPulse);
  
   // Voie 4 - Ailerons
   digitalWrite(ppm, HIGH);
   delayMicroseconds(initPulse);
   digitalWrite(ppm, LOW);
   delayMicroseconds(voie04-initPulse);
    
   // Trame reset
   digitalWrite(ppm, HIGH);
   delayMicroseconds(initPulse);
   digitalWrite(ppm, LOW);
   delayMicroseconds(frameReset-initPulse);
}
// Fin de la boucle, on recommence

int blink_led () {
   digitalWrite(led, HIGH);
   delay(200);
   digitalWrite(led, LOW);
   delay(200);
}  

Edit: faut de grammaire qui piquait les yeux


Dernière édition par Jibeji le Mer 17 Aoû 2016 - 15:32, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par LapinFou Mer 17 Aoû 2016 - 15:09

Intéressant. Je m'abonne pour voir si tu réalises le projet jusqu'au bout !
Reconversion d'une télécommande pour simulateur 2258904616

albino

_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum. Reconversion d'une télécommande pour simulateur 2258904616

Reconversion d'une télécommande pour simulateur Anim310                
↓↓↓↓ Merci de cliquer sur le gros lien rouge ↓↓↓↓                                          
[OpenTX-Doc] Base documentaire des radios OpenTX
Maintenant que vous avez tout lu, vous pouvez poser vos questions !  geek


OpenTX is user friendly!!! It's just selective about who its friends are....
Wink
LapinFou
LapinFou
Administrateur

Masculin Messages : 16992
Date d'inscription : 09/09/2014
Age : 49
Localisation : Falaise

https://opentx-doc.fr/

Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par Invité Mer 17 Aoû 2016 - 15:19

J'ai oublié la photo du montage de test :

Reconversion d'une télécommande pour simulateur Img_2413

Invité
Invité


Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par LapinFou Mer 17 Aoû 2016 - 15:30

Cela fonctionne déjà !! Reconversion d'une télécommande pour simulateur 818067345

albino

_________________
Pas de support par MP !! Pour garder l'esprit communautaire, on partage tout sur le forum. Reconversion d'une télécommande pour simulateur 2258904616

Reconversion d'une télécommande pour simulateur Anim310                
↓↓↓↓ Merci de cliquer sur le gros lien rouge ↓↓↓↓                                          
[OpenTX-Doc] Base documentaire des radios OpenTX
Maintenant que vous avez tout lu, vous pouvez poser vos questions !  geek


OpenTX is user friendly!!! It's just selective about who its friends are....
Wink
LapinFou
LapinFou
Administrateur

Masculin Messages : 16992
Date d'inscription : 09/09/2014
Age : 49
Localisation : Falaise

https://opentx-doc.fr/

Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par Kilrah Mer 17 Aoû 2016 - 19:28

Jibeji a écrit:Bonjour,
Souhaitant pouvoir m’entraîner au simulateur pendant la pause déjeuner, je me suis mis en quête de la télécommande la plus petite possible. Après avoir passé beaucoup de modèles en revue, mon choix s'est porté sur la E-Flite MPL4DSM.

Le problème c'est que les potentiomètres / manches de ces radios sont hyper pourris, et donc que la réponse est peu réaliste... donc l'intérêt est limité de l'utiliser en simu, au contraire ça peut te faire adopter des mauvaises habitudes.

Kilrah

Masculin Messages : 2181
Date d'inscription : 28/01/2014
Localisation : Suisse

Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par Invité Mer 17 Aoû 2016 - 19:34

J'ignorais cela.
Ceci étant, l'objectif premier est d'acquérir des réflexes en pilotage collectif (sans retour au neutre) pendant la pause déjeuner, j'aurai tout loisir d'approfondir avec la Taranis le soir.
Le montage est par ailleurs compatible avec n'importe quels potentiomètres, alors je pourrai changer de "boitier" si nécessaire.
Et puis tu sais, entre nous, la bidouille m'intéresse tout autant que le résultat. Wink

Invité
Invité


Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par Invité Lun 22 Aoû 2016 - 10:11

La télécommande m'attendait sagement dans la boite aux lettres lorsque je suis rentré de week-end hier soir, une petite soirée de bricolage et nous y voilà !
La précision n'est peut-être pas bonne, je ne suis pas assez doué pour en juger, mais le résultat est très satisfaisant. Reconversion d'une télécommande pour simulateur 2258904616

J'ai coupé (afin que les composants d'origine ne perturbent pas le fonctionnement) et réutilisé les pistes du PCB.

Reconversion d'une télécommande pour simulateur 2016-010


Un peu de charcutage du boitier piles pour y placer une LiPo 850 mAh en stock :

Reconversion d'une télécommande pour simulateur 2016-011


Et voici le résultat :


Invité
Invité


Revenir en haut Aller en bas

Reconversion d'une télécommande pour simulateur Empty Re: Reconversion d'une télécommande pour simulateur

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum