Le mod “Button box” permet de connecter jusqu’à 16 boutons via un petit PCB. On peut attribuer à chaque bouton une fonctionnalité spécifique (encodeur, touche clavier etc…).
Sommaire
1) Liste de course
Le mode “Button Box” nécessite
- Un MCP23017 (et non MCP23S17 !!!) (Amazon, Aliexpress)
- Connecteur GX12 4 pin (Amazon, Aliexpress)
- Fils et connecteurs dupont (Déjà présent dans la liste principale)
2) Câblage
Le câblage est simple : Il y a 4 pins d’entrée sur le PCB :
- le 5V va au 5V
- Le GND (ground) va à la masse
- Le SDA va au pin 2 de l’Arduino
- Le SCL va au pin 3 de l’Arduino
- A0, A1 et A2 doivent être tous les trois reliés à la masse.

5) Les fonctions
Chaque bouton peut effectuer une fonction particulière dont voici la liste :
0 – désactivé, le bouton ne fait rien. Idéal si vous ne l’avez pas câblé
1 – bouton simple : réagit comme n’importe quel bouton. Exemple : ath, lcd, centrer vue VR…
2 – encodeur rotatif : le bouton suivant doit être associé à la fonction 0.
3 – calibration : permet de réaffecter les vitesses de la boîte, voir explications plus bas
4 – inversion de la boîte : permute 1-2, 3-4, 5-6. Exemple : ancienne Ferrari
5 – reset pin : réinitialise les pins. Efface la configuration de la fonction calibration
6 – Flèche du haut
7 – Flèche du bas
8 – Flèche de droite
9 – Flèche de gauche
10 – Entrée
11 – Echap
12 – Activer/Désactiver le frein à main
13 – Passer de Analog Handbrake à Digital Handbrake
Et enfin on peut affecter à un bouton n’importe quelle touche du clavier.
4) Le code
Dans le code ( version >2.52), il n’y a pas grand chose à faire. Il suffit de :
1 – Ajouter la librairie disponibles ici. Après le téléchargement et l’extraction, ouvrir le logiciel Arduino, aller dans Sketch>Inclure une librairie>Ajouter une bibliothèque ZIP et de sélectionner la librairie.
2 – Activer le mod ButtonBoxMod: remplacer //#define ButtonBoxMod
par #define ButtonBoxMod
3 – Assigner à chaque bouton une fonction dans la liste :
int ButtonBoxPinAssignement[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
Par exemple avec : int ButtonBoxPinAssignement[16] = {1, 1, 2, 0, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
A0, A1 sont des boutons simples, A2, A3 correspondent à un encodeur rotatif, A4 la touche entrée et A5 la touche échap. Les autres touchent sont désactivées
5) Les fichiers 3D
Il n’y en a pas ! Pourquoi ? Parce qu’il est impossible de proposer quelque chose qui plairait à tout le monde ou qui soit entièrement personnalisable et aussi montable sur tout.
Deux options :
- Adapter une boîte déjà existante, on trouve pleins de projets sur internet.
- Dessiner votre propre boîte ! Si vous vous êtes lancé dans la fabrication de la boîte, vous serez déjà à l’aise avec l’impression 3D, pourquoi ne pas acquérir les bases du dessin sur ordinateur ?
Peut-être que je publierai un design de référence plus tard. Dans tous les cas : soudez des connecteurs dupont sur le PCB, cela permet de tester pleins de branchement sans consommer une carte à chaque test, et prévoyez un connecteur GX12 4 pin sur la button box pour pouvoir brancher et débrancher facilement la boîte.



2 thoughts on “Mod “Button Box” WIP”