8 voies TOR, Tout Ou Rien, procédure complète

Publié le par Pascal Coquet

Remerciements

  • Philippe Loussouarn a crée un skech pour carte Arduino Uno, pour piloter 8 relais avec un seul canal. Il a également développé sur son site très riche en ressources pour les modèlistes une solution avec 2 ATtiny 84 RC Navy  Alain Claverie également.
  • Mr Claverie propose un sketch utisant un bouton du clavier décrit plus bas et utilisable avec UNO et ATtiny 84 ou 85 bateaux.trucs.free.fr, sans oublier l'excellent Sitakiki de Christian Allain.

Je tente donc l'aventure car je n'ai pas les moyens de me payer un émetteur à 12 voies. (Je mettrais le clavier sur la 5° voie).

  1. Etape 1. Installer une version de l'IDE Arduino

Tout d'abord créez un dossier Arduino dans votre disque dur. (Comme j'ai commencé il y a quelques temps, j'ai installé le logiciel Arduino 1.0.5.). Toutefois cette version logiciel n'existe plus.

  • La dernière version Arduino est actuellement 1.8.5 téléchargeable ici : http://www.arduino.cc/en/Main/Software
  • Téléchargez-le et installez-le dans votre dossier Arduino
  • Il vous faudra lui adjoindre "ATTinyCore-master" pour reconnaitre les cartes ATtiny.
  • Ouvrez ce lien: https://github.com/SpenceKonde/ATTinyCore, puis cliquez sur "clone or download", et décompressez le ZIP dans le répertoire arduino/hardware
  • Pour l'ATtiny84, il est nécessaire de renommer 2 fichiers, dans le répertoire: arduino/hardware/AttinyCore-master/avr/variants ,il faudra renommer le fichier tinyx4_reverse en tinyx4, et renommer le fichier tinyx4 en tinyx4_reverse.
  1. Connectez la carte Arduino à un port USB de votre ordinateur
    - La carte est alors alimentée par le port USB, mais il est possible de mettre une alimentation externe de 7V à 12V. La commutation du +5V est automatique entre le +5V fourni par l'USB et le +5V issu de l'alimentation externe via un régulateur +5V présent sur l'UNO.
    Normalement si votre version Windows est postérieure à la version XP alors Windows va installer tout seul le driver. Si non, l'assistant d'installation devrait s'ouvrir.
  • Si votre carte Arduino n'est pas une carte officielle mais un clone, votre ordinateur ne va pas reconnaître la carte.Il faut alors installer les pilotes nécessaires.
  • Branchez votre carte au port USB de votre ordinateur.
  • Télécharger ici le programme CH341SER.EXE.
  • Exécutez le programme CH341SER.EXE.

Vérifions si votre carte est reconnue.

* Laissez votre carte branchée au port USB de votre ordinateur.
* Ouvrez le programme Arduino.
* Cliquez sur outil.
* Cliquez sur port série.
* Si ça a marché, vous devez voir apparaître le port com affecté à la carte. 

  • L'installation est maintenant terminée, débrancher UNO et éteindre le programme pour la suite
  • Etape 2. Vous devez connaître les valeurs du signal transmis au récepteur --> Méthode :
  • Utilisez une carte Arduino Uno Ver3 et son câble USB. La télécommande et le récepteur avec son câble JR 3 brins pour le connecter.
  1. Reliez l’Arduino UNO ver 3 au port USB PC
  2. Relier récepteur à la carte UNO (S=pin2 / Vcc=5v / Gnd)
  3. Ouvrir IDE 1.8.5 (ou autre)
  4. Aller dans outils/ type de carte/ Arduino UNO / Bauds 9600
  5. Téléverser le programme MesureSignalPC.ino dans la carte UNO
  6. Allumer l’émetteur de votre télécommande
  7. Aller dans outils/moniteur série (ou tapez Control+Maj+M) : Le moniteur s’affiche à l’écran du PC. Les valeurs du signal apparaissent toutes les secondes. Elles dépendent de la position du manche de la télécommande.

J’ai relevé la valeur du point milieu du manche puis ; 1/3 haut- 1/2 haut- 2/3 haut- point haut --- 1/3 bas – 1/2 bas – 2/3 bas –point bas. Ces valeurs sont suffisantes pour tracer un diagramme :

8 voies TOR, Tout Ou Rien, procédure complète

Etape 3 : Modification de la télécommande, le clavier-poussoir

Après ces mesures qui permettent de connaitre la valeur du signal de la télécommande, on déconnecte les 3 fils d'une manette pour les brancher au clavier-poussoir.

Sur la Graupner MX10 les fils sont le rouge extérieur droit (+Vcc), le bleu central (signal) et le noir extérieur gauche (gnd) sur la manette du canal choisi. (ch4 en l'occurence)

 

Maintenant on branche le clavier-poussoir. En refaisant le test ci-dessus on doit retrouver les valeurs mini/maxi notées sur le diagramme suivant la position du bouton poussoir. Si ce n'est pas le cas il suffit de modifier légèrement la valeur des résistances. (470ohms par ex).

Voici le shéma original de Christian Allain avec des résistances de 500ohms :

8 voies TOR, Tout Ou Rien, procédure complète

Pour une meilleure intégration dans ma télécommande, je modifie ce shéma afin d'avoir 2 modules de 4 boutons-poussoir sur le canal 4. (J'm'suis creusé la tête pour respecter le shéma initial, crénon, pour arriver à ce shéma d'implémentation). Les boutons poussoirs à utiliser sont des Mini Momentary Push Button Switch SPDT NO NC 3 pins.

 

 

De plus j'intercale un commutateur de manière à faire fonctionner la manette du canal 4 soit de façon habituelle, soit avec les 8 boutons poussoir, suivant ce shéma. (je laisse le + et le -, seul le signal est commuté)

 

Etape 4 - Modification physique de la télécommande :

Pour le cablage j'utilise du fil de téléphone souple. Essayez autant que possible de faire des soudures propres. elles doivent être brillantes, si elles sont ternes elles sont simplement collées et finiront par créer un mauvais contact.

Ajout des 2 blocs d'inter-poussoir
Ajout des 2 blocs d'inter-poussoir
Ajout des 2 blocs d'inter-poussoir
Ajout des 2 blocs d'inter-poussoir
Ajout des 2 blocs d'inter-poussoir

Ajout des 2 blocs d'inter-poussoir

Etape 5 - Téléversement du sketch dans l'AT84

Matériel nécessaire :

1 Arduino UNO ver3 (bien prendre la ver 3)
1 Attiny84
6 jumpers mâle-mâle + 1 breadboard
1 condensateur 1µF

Et bien sur un ordi...

NOTE IMPORTANTE Si votre carte Arduino n'est pas une carte officielle mais un clone, votre ordinateur ne va pas reconnaître la carte. Il faudra alors installer les pilotes nécessaires comme ceci :

  1.  Ne lancez pas votre programme Arduino ou éteignez-le s'il est ouvert.
  2.  Branchez votre carte au port USB de votre ordinateur.
  3. Télécharger ici le programme CH341SER.EXE.
  4.  Exécutez le programme CH341SER.EXE

Cas 1- Vous avez déjà téléversé des sketchs dans un Attiny

Vous pouvez donc y aller. Nous utilisons l’Arduino Uno Ver3 comme intermédiaire entre le PC et l’attiny84.

  • brancher l'usb à la UNO
  • Ouvrer votre logiciel Arduino.
  • Allez dans Fichiers / Exemples. Choigissez Arduino as ISP
  • Allez dans Outils. choisir Arduino as ISP (Attiny core)
  • Choisir type de carte Attiny 44/84
  • Si votre Attiny est neuve cliquez sur"graver la séquence d'initialisation"
  • Téléverser du PC vers UNO en cliquant sur le bouton de téléversement

                           UNO est maintenant prête à uploader la carte AT84

    Si tout s'est bien passé, allez à la suite ici

    Cas 2- Vous n'avez jamais téléversé dans Attiny

    • Vous devez installer la board.

    Si vous n'avez pas encore téléchargé Attiny Core-master, lisez la suite.

    Pour pouvoir programmer un Attiny84 il faut que le logiciel puisse interpreter le code pour celui ci. C’est pourquoi il faut installer la « board » correspondante à l’Attiny84. ( AT84 n'est pas une Arduino mais un processeur Atmel)

    Allez dans Fichier > Préférences et cliquez sur le bouton entouré en rouge ci dessous.

     

Une fenêtre va s’ouvrir. Collez dedans  " http://drazzy.com/package_drazzy.com_index.json " puis cliquez  sur « OK » et fermer la fenêtre des préférences en cliquant sur « OK » à nouveau.

Redémarrez le logiciel pour que les modifications soient prises en comptes.

Allez ensuite dans Outils > Boards > Boards Manager… Comme ci-dessous

 

Une fenêtre s'ouvre.

Tapez « attiny » dans la barre de recherche et normalement deux résultats devraient apparaître. Installez la premiere, ATTiny Core, grâce au bouton « install ». Une barre de progression vous indiquera l’avancement de l’installation.

Redémarrez votre logiciel. Vous pouvez maintenant revenir à la 5èm étape

6. Câblage en vue du téléchargement Voila, il ne reste plus qu'à rebrancher l'ordi à la carte Uno, copier le sketch ci-dessous dans votre logiciel Arduino et le téléverser !

  • Suivez simplement le schéma ci-dessous pour le téléversement. N’oubliez pas le condensateur de 10µF entre le reset et le gnd de l’arduino UNO afin d’empêcher le reset automatique lors de la programmation de l’attiny84.

 

Voici le sketch du 8 voies TOR :

/*======== COMMMANDE DE 8 SORTIES ON/OFF PAR 8 INTERS POUSSOIR  ===============
   Les 8 entrées relais sont connectés aux prise n°1,2,3,4,5,6,7,8
   La voie du récepteur est connecté à la prise n°0
   Un appui furtif sur un bouton fait actionné le relais correspondant  qui reste collé, un deuxième appui furtif sur le même bouton fait décoller le relais correspondant.
   ===================================================================*/
  int signal = 0;    // Signal recepteur commande aériens
  int val1;          // valeur du signal recepteur commande aériens
  int s1 = 1; int s2 = 2; int s3 = 3; int s4 = 4; int s5 = 5; int s6 = 6; int s7 = 7; int s8 = 8; // Declaration des sorties
  int e1 = 0; int e2 = 0; int e3 = 0; int e4 = 0; int e5 = 0; int e6 = 0; int e7 = 0; int e8 = 0; // declaration etat des sorties
  int mini = 1023;  // Mettre ici la valeur du signal notée à l'étape 2 lorsque l'on appui sur le bouton n°1
  int maxi = 1980;  // Mettre ici la valeur du signal notée à l'étape 2 lorsque l'on appui sur le bouton n°8

void setup()
{
  pinMode(s1,OUTPUT);  pinMode(s2,OUTPUT); pinMode(s3,OUTPUT); pinMode(s4,OUTPUT);          
  pinMode(s5,OUTPUT); pinMode(s6,OUTPUT);  pinMode(s7,OUTPUT); pinMode(s8,OUTPUT);            
}
  //======================== sous programme action_x =========================
 void action1_1()  { digitalWrite(s1,HIGH); }
 void action1_0()  {digitalWrite(s1,LOW); }
 void action2_1()  { digitalWrite(s2,HIGH); }
 void action2_0()  {digitalWrite(s2,LOW); }
 void action3_1()  { digitalWrite(s3,HIGH); }
 void action3_0()  {digitalWrite(s3,LOW); }
  void action4_1()  { digitalWrite(s4,HIGH); }
 void action4_0()  {digitalWrite(s4,LOW); }
 void action5_1()  { digitalWrite(s5,HIGH); }
 void action5_0()  {digitalWrite(s5,LOW); }

void action6_1()  { digitalWrite(s6,HIGH); }
void action6_0()  {digitalWrite(s6,LOW); }

void action7_1()  { digitalWrite(s7,HIGH); }
 void action7_0()  {digitalWrite(s7,LOW); }

void action8_1()  { digitalWrite(s8,HIGH); }
void action8_0()  {digitalWrite(s8,LOW); }

//====================================================================
  void loop()
{   
   val1 = 0;
  val1 = pulseIn(signal, HIGH),30000; //Lire pulse1 etn le stocker en tant que val1
  val1 = map(val1,mini,maxi,1090,1910);
  // val1=constrain(val1, 900, 2000)
   delay (50);
     if (val1 > 2000 || val1 < 1000 )  { val1 = 1500; }  
     if (val1 > 1000 && val1 < 1100 && e1 == 0)    { action1_1();  e1 = 1; val1 = 0;  delay(300);}
     if (val1 > 1000 && val1 < 1100 && e1 == 1)    { action1_0();  e1 = 0; val1 = 0;  delay(300);}
     if (val1 > 1120 && val1 < 1230 && e2 == 0)    { action2_1();  e2 = 1; val1 = 0;  delay(300);}
     if (val1 > 1120 && val1 < 1230 && e2 == 1)    { action2_0();  e2 = 0; val1 = 0;  delay(300);}
      if (val1 > 1240 && val1 < 1350 && e3 == 0)   { action3_1();  e3 = 1; val1 = 0;  delay(300);}
      if (val1 > 1240 && val1 < 1350 && e3 == 1)   { action3_0();  e3 = 0; val1 = 0;  delay(300);}
      if (val1 > 1350 && val1 < 1430 && e4 == 0)   { action4_1();  e4 = 1; val1 = 0;  delay(300);}
      if (val1 > 1350 && val1 < 1430 && e4 == 1)   { action4_0();  e4 = 0; val1 = 0;  delay(300);}
      if (val1 > 1550 && val1 < 1650 && e5 == 0)   { action5_1();  e5 = 1; val1 = 0;  delay(300);}
      if (val1 > 1550 && val1 < 1650 && e5 == 1)   { action5_0();  e5 = 0; val1 = 0;  delay(300);}
      if (val1 > 1680 && val1 < 1750 && e6 == 0)   { action6_1();  e6 = 1; val1 = 0;  delay(300);}
      if (val1 > 1680 && val1 < 1750 && e6 == 1)   { action6_0();  e6 = 0; val1 = 0;  delay(300);}
      if (val1 > 1760 && val1 < 1850 && e7 == 0)   { action7_1();  e7 = 1; val1 = 0;  delay(300);}
      if (val1 > 1760 && val1 < 1850 && e7 == 1)   { action7_0();  e7 = 0; val1 = 0;  delay(300);}
      if (val1 > 1860 && val1 < 2000 && e8 == 0)   { action8_1();  e8 = 1; val1 = 0;  delay(300);}
      if (val1 > 1860 && val1 < 2000 && e8 == 1)   { action8_0();  e8 = 0; val1 = 0;  delay(300);}
   }
 //============================ FIN DU PROGRAMME===========

Maintenant que votre carte est programmée vous pouvez installer l'AT84 dans le bateau avec les 8 relais  : Shéma de cablage

 

L'At 84 recoit le signal radio par le récepteur canal 4 (Analogique 0, broche 13) et transmet les impulsions aux sorties (broches 5 à 12) vers les entrées in1,2,3,4,5,6,7,8 des relais. Le tout est installé dans le bateau. Un régulateur  n'est pas nécessaire si le recepteur envoie du 5v.

  • Le gnd de l'AT84 doit impérativement être relié au gnd des relais

Voilà, votre télécommande 4 voies est devenue une 11 canaux ! Elle est pas belle la vie ?

Note interessante : je ne l'ai pas fait mais c'est une idée.. Vous pouvez installer par exemple 2 blocs de 8 boutons-poussoir respectivement sur les canaux 3 et 4, ce qui ajoute 16 fonctions ! Pour cela vous devez installer dans le bateau une Attiny 84 reliée au canal 3 qui commande un bloc de 8 relais et une autre Attiny 84 reliée au canal 4 qui commande un bloc de 8 relais et ainsi de suite...

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
B
Bonjour <br /> j'utilise aussi depuis plus de 6 ou 7 ans ce programme http://bateaux.trucs.free.fr/prg_attiny/huit_sorties_graupner.txt . <br /> J'en suis très satisfait. Il est honnête de citer Christian, mais peut être pourriez vous parler du concepteur de ce programme (ce serait la moindre des corrections). D'autant qu'Alain lui a mis un lien vers votre blog depuis des années. <br /> Christian lui cite à maintes reprises le site (bateaux trucs). Alain lui cite très souvent (SITAKIKI). Je rends hommage à leur honnêteté, et leur coopération. Peut être pourriez vous les imiter. Peut être devriez vous aussi faire de même pour toutes les autres choses qui ne sont pas de vous et que l'on retrouve sur d'autres sites depuis très longtemps.<br /> Merci
Répondre
L
C'est vrai que je n'avais pas mis les liens vers les les sites d'Alain Claverie, Christian Allain et Philippe Loussouarn dans cet article, par contre ils sont depuis longtemps sur ma page d'accueil Arduino. (j'avais d'ailleurs eu l'aide virtuelle et néanmoins précieuse de Christian Allain à cette époque). En tous cas l'erreur est réparée ils sont maintenant cités et leur liens figurent en tête de l'article. <br /> Quant aux autres choses qui ne sont pas de moi, et qui je pense méritent d'être vues, les concepteurs sont tous nommés. <br /> Merci de votre commentaire qui m'a permis d'améliorer ce blog.