Cela fait maintenant plus de 12 ans que notre lycée participe aux compétitions des trophées de la robotique. Les manettes ont beaucoup évoluées. Voici la dernière en date. Elle est basée sur un Arduino Nano muni d’un émetteur radio (puisque depuis l’an dernier les télécommandes peuvent être des radio-commandes) !

Cet article va décrire la manette utilisée par l’équipe Junior du club : BOBBY.

Voici les éléments de la description, qui jalonneront l’article.

Boitier

Les organes de commande que l’on a choisi d’implanter dans la manette sont les suivants (il ne faut pas se cacher que l’on s’inspire des manettes de type Playstation)

  • Un joystick sensible et ample de manœuvre. A main droite. (repère C)
  • Un jeu de 4 boutons indépendants, à main gauche montés en « diamant » (en losange). (repère E)
  • Deux jeux de 2 boutons en face avant, manipulés par les index gauche et droite. (repère F)
  • Un bouton rotatif (codeur incrémental) permettant de faire varier continuement une grandeur (repère D)
  • Un jeu de 4 boutons en diamant à main gauche à bascules (1 ou 2 boutons voisins seulement actionnables) (repère G)
  • 3 interrupteurs (en fait 1 + 2) (repère H

L’ensemble prend les positions suivantes :

La figure précédente illustre aussi les repères de :

  • A : Arduino nano avec sa connexion USB accessible en face interne du boitier.
  • B : Module radio qui sera décrit plus loin.

Le deux coquilles du boitier et les autres pièces mécaniques sont définies avec Solidworks. Les pièces sont fabriquées en PLA à partir des fichiers au format STL disponibles en téléchargement ici !  Vous y trouverez :

  • La coquille inférieure
  • La coquille supérieure
  • Le bouton rotatif (repère D) qui prolonge et rend ergonomique le mat du bouton que vous pouvez trouver ici !
  • L’ensemble à bascule 4 boutons (repère G)
  • Un support de bouton rotatif codeur à visser sur la coquille supérieure si vous ne le posez pas sur le circuit imprimé

Transmission

L’aspect transmission est transversal au projet. C’est à dire qu’il se porte sur plusieurs équipements :

  • Pour Junior, BOBBY au niveau de la manette et du robot principal.
  • Pour La Coupe de France, au niveau du robot principal BOLITTO et du robot secondaire.

De ce fait, il a été jugé préférable de l’aborder dans un article indépendant : ICI

Alimentation

L’alimentation de la manette doit respecter les contraintes suivantes :

  • Être autonome. On veut éviter d’avoir un fil à la patte, ce qui permet de libérer le pilote d’une entrave physique. On utilise là au maximum la possibilité offerte par l’emploi d’une RADIO-commande.
  • Fournir l’électricité nécessaire à faire fonctionner la télécommande pendant plus de 5mn (préparation + compétition). La consommation principale est due à l’Arduino : 40mA. Il faut donc au minimum 40mA . 0,12h = 4,8mA.h. Une petite batterie 7,4V de 500mA.h permettra de faire toutes les compétitions d’une journée !

C’est la solution retenue : Une batterie 7,4V NiCd que l’on reliera par un coupleur. Par exemple ce couple de chez Conrad !

Circuit Imprimé

Dans la manette, il y a 4 circuits imprimés. Commençons par les deux plus simples :

Paire Avant

Voici les schéma et aspects des circuits imprimés. Les liaisons à l’Arduino de la manette se fait par un connecteur 3 points.

Jeu de 4 boutons supérieurs

Voici les schéma et aspects des circuits imprimés. Les liaisons à l’Arduino de la manette se fait par un connecteur 5 points.

Les boutons poussoirs peuvent être achetés par lots. Comme celui-ci : que vous trouverez chez Amazon !

Le jeu de 4 boutons à bascules

Cette platine permet de réaliser l’équivalent des boutons fléchés d’une manette de type Playstation. C’est à dire que l’on peut manœuvrer aucun, un seul ou deux boutons voisins.

La particularité de cette solution est d’employer un seul signal analogique pour coder les combinaisons de ces appuis. On limite ainsi le nombre de signaux logiques à employer sur l’Arduino.

La figure suivante illustre le schéma de cette carte. Le tableau de gauche indique pour les 16 combinaisons possibles, les valeurs de la tension analogique SIGNAL résultante qui sera appliquée en AN0 de l’Arduino. La colonne POSSIBLE illustre les combinaisons compatibles avec les appuis de boutons voisins. On constate que toutes ces lignes portent des tensions différentes et donc des appuis que l’on pourra identifier. Le condensateur filtre les effets des rebonds lors des actions sur les poussoirs.

La figure ci-contre illustre le typon qui définit le circuit imprimés.

Il utilise des poussoirs CMS comme celui-ci.

Le circuit principal

Le circuit principal de la manette assure les liaison de l’Arduino Nano qui fait fonctionner la manette avec les différentes cartes « Boutons ». Le schéma ci-dessous illustre ces relations. Elle seront précisées en core dans la rubrique Programmation.

On constate que les 4 boutons « Formes » et les deux paires de boutons de la face avant sont reliés à U4, un expanseur de bus I2S PCF8574. Cette solution permet de grouper les 8 signaux logiques indépendants pour les manipuler qu’avec les deux signaux du bus I2C : SD et SCL câblés sur les ports A4 et A5 de l’Arduino Nano.

Les trois interrupteurs sont câblés en D5, D6 et D7 (avec utilisation des résistances de tirage au niveau haut) de même que les phases du codeur rotatif câblé en D2 et D4. D2 y sert en  source d’interruption. C’est à dire que les rotation du codeurs provoquent des interruptions qui serviront à augmenter ou diminuer (selon de sens de rotation) le compte du score estimé qui est transmis au robot pour affichage.

La figure suivante illustre le typon de ce circuit c’est à dire le dessin du circuit imprimé.

Pour fabriquer ces circuits

Le fichier compressé MANETTE-PCB.ZIP contient les répertoires des fichiers GERBER de fabrication de ces 4 circuits. imprimés.

Partie Programmes

Lecture des interrupteurs

La lecture des boutons via l’I2C

La lecture des boutons à bascules (analogique)

Lecture de la roue codeuse

Partie Transmission des ordres

Partie globale – tâche de fond

Télécharger ICI le programme complet !