Le pointage de base

telecommande.jpg

Pour rappel, le pointage de base se fait avec le manche gauche de la télécommande.

  • rotation de la tourelle avec le mouvement droite-gauche en "tout ou rien"
  • réglage de l'élévation du canon par un mouvement oscillant de haut en bas en tirant le manche vers l'arrière via une couronne biseautée en rotation continue, l'action "manche en avant" étant assignée au tir du canon.

Ce système présente deux problèmes majeurs :

  • si on rate la cible en élévation, on est obligé d'attendre un cycle d'oscillation complet pour y remédier ;
  • la rotation de la tourelle est très rapide, interdisant un pointage précis.

Améliorations

IMGP5372bb.jpg

Pour y remédier, la gestion des moteurs est confiée à l'Arduino via un shield de commande de moteurs basé sur un pont en H de type L298. Ce dernier permet de gérer deux moteurs et d'en faire faire varier la direction et la vitesse.

Mouvement des moteurs

IMGP5375bb.jpg

  1. carte de commande des moteurs de rotation/élévation
  2. moteur de rotation de la tourelle
  3. moteur de tir

Dans l'épisode précédent, le mouvement "manche en avant" avait été libéré en réassignant le tir du canon au bouton K de la télécommande. On peut donc le réassigner au moteur d'élévation afin de pouvoir l'orienter dans les deux sens.

Pour atténuer le "tout ou rien" de la télécommande, on donne une vitesse progressive aux moteurs grâce au PWM, du mini au maxi : ainsi les petits déplacements s'effectueront lentement, permettant un pointage précis, tandis que les grands déplacements s'effectueront toujours à grande vitesse. En bonus l'accélération progressive de la tourelle lui donne un air bien plus réaliste.

Interception du signal

tank-schematic.png Cliquer pour agrandir - source

Il faut donc intercepter le signal envoyé aux différents moteurs. Le schéma électrique de la carte électronique de réception nous apprend qu'à chaque direction du manche correspond un pin qui établit une tension de 7v avec un pin commun.

IMGP5376bb.jpg

  1. optocoupleur de récupération des signaux envoyés à la tourelle (rotation, élévation, tir)
  2. optocoupleur d'interception du signal du bouton de changement de mode (voir épisode précédent)
  3. régulateur de tension 5v
  4. transistor de commande du moteur de tir

Là encore pas de masse commune avec le reste du circuit (voir épisode précédent), on lit donc les signaux envoyés par la carte avec un optocoupleur et on les transmet à l'Arduino via 4 pins. J'ai trouvé un optocoupleur 4 voies tout à fait adapté, en plus il a des faux airs de microprocesseur, ça donne un aspect super professionnel à tout le montage alors que c'est juste une collection d'interrupteurs.

Il n'y a plus ensuite qu'à traduire ces signaux en ordres aux moteurs de rotation et d'élévation. Avec le shield de commande choisi, pour chaque moteur un pin détermine sa direction et un pin en PWM sa vitesse. On rend cette dernière progressive avec une incrémentation dans le code. Le manche gauche-droite reste assigné au moteur de tourelle et le manche haut-bas gère le moteur d'élévation.

Petite limite, on ne peut savoir a priori si l'action sur le manche d'élévation fera monter ou descendre le canon, cela dépend du sens de la pente de la couronne biseautée.

Tir en roulant

On l'a vu dans l'épisode précédent, le tir avec le bouton K nécessite de couper les moteurs momentanément pour désactiver une affreuse simulation de recul. Cela signifie qu'on ne peut plus tirer en roulant. C'est certes inutile mais néanmoins amusant.

Comme tout est géré par l'Arduino, on peut ajouter un mode supplémentaire qui permet de garder le fonctionnement par défaut du char : élévation du canon oscillante et tir par le manche gauche en avant, ce qui est possible en roulant. dans ce mode, l'action de pousser le manche de gauche envoie l'ordre d'actionner le moteur de tir plutôt que le moteur d'élévation du canon.

On a donc désormais trois modes :

  • mode 0 : laser éteint, tir en roulant possible, élévation du canon oscillante ;
  • mode 1 : laser allumé, tir en roulant possible, élévation du canon oscillante ;
  • mode 2 : laser allumé, tir uniquement par le bouton K, élévation du canon à 2 sens.

Indicateur de mode

indicateur_de_mode.jpg

Pour ne pas s'emmêler les pinceaux entre les modes, une Led RVB indique dans lequel on se trouve : bleu pour le mode 0, vert pour le mode 1, rouge pour le mode 2. La Led est surmontée d'un petit capuchon translucide pour en améliorer la visibilité récupéré sur un tube d'homéopathie, comme quoi ça peut servir à quelque chose, il ne faut jamais désespérer.

On a donc maintenant un char qui peut, à la demande, pointer de manière précise et aisée. Mais c'est encore améliorable!

Le code

Télécharger le code

A suivre...