Bonjour,
Voilà je ne sais pas par ou commencer, mais bon je vais vous parler de mon projet principal des MFD pour le simulateur Falcon BMS.
Ce sont des écrans avec une vingtaine de boutons par écran branché en USB et pouvant être paramétré par des raccourcis clavier, chaque bouton doit envoyer un raccourcis clavier et donc ma première question comment dépasser les limites d'un module UNO, puisque j'ai besoin de 2 MFD avec chacun un minimum de 20 boutons a impulsion autour de chaque écran.
Aller c'est parti, merci d'avance.
(déplacé dans la partie générale du forum francophone)
En ne prenant pas un UNO ![]()
Ce n'est pas la bonne carte pour simuler des commandes clavier (vaut mieux un arduino avec un 32U4 ou SAMD ou ESP32) — il y a la bibliothèque Keyboard pour cela.
Ensuite pour gérer 20 boutons, il y a plein de façons de faire. Un matrice 5x4 par exemple ne nécessite que 9 pins et on gère cela avec la bibliothèque keypad. Sinon il y a des cartes avec plus de broches et bien sûr on peut aussi utiliser des circuits qui rajoutent des ports d'entrée sortie.
Ok je commence fort.....
Du coup par ou commencer, le plus abordable pour un total newbie, que me faut il pour commencer quelle est la méthode la plus simple parmi tes proposition, je vais essayer de débroussailler ça un peu en lisant mais toute aide sera la bien venue quand même, d'ailleurs je vais donner un peu plus d'explication sur ma demande.
Je vous conseillerais de ne pas mettre la charrue avant les boeufs et de consacrer un peu de temps à votre formation ➜ pour bien débuter avec l'arduino, un bon point de départ c'est de lire les tutos d'eskimon et de lire le tuto de base sur le C++ de Zeste de savoir
une fois que vous aurez fait vos armes avec cela, votre projet vous semblera bcp plus simple.
Prendre un Arduino Micro qui a ce fameux 32U4 au lieu du UNO comme processeur et utiliser les 2 bibliothèques que j'ai mentionnées. Pour l'écran ça dépendra de ce que vous voulez afficher.
Ok je penses que je vais suivre votre conseil, je vais me documenter et lire ce que vous me conseillez, d'ailleurs en passant désolé je crois bien que je vous ai tutoyé dans nos premiers échanges et je vous demande de m'en excuser.
J'ai commencé quelque recherche et je suis tombé sur un tuto qui ressemble à ce que je voulais faire à la base, mais si je peux faire la même chose avec des écrans dedans sans que cela me coûte une fortune.....
Bon je vais commencer par le début les tutos d'Eskimon et le c++
Je mets un lien ci-dessous qui montre ce que j'aimerais reproduire (MFD)
On peut parfaitement mettre plus de 20 boutons sur une uno. Voici un exemple avec 64 boutons
que j'ai testé. Il n'y a besoin que d'une seule broche.
Le problème n'est pas le nombre de boutons que l'on peut traiter mais le fait que la UNO n'a pas l'USB natif.
Pas de souci - vous pouvez me tutoyer sans problème. Je suis trop vieux pour passer au tu sur les forum, le vous me vient plus naturellement et penser à dire tu c’est trop de boulot ![]()
J’ai modifié votre post - quand vous voulez partager une vidéo YouTube vous pouvez juste mettre le lien ici et le forum embarque directement la vidéo (petit plus - ça permet de la voir ici sans la pub).
Dans cette vidéo il mentionne qu’il utilise un pro micro comme arduino - je ne sais pas ce qu’il a mis comme écran derrière - je suppose que c’est l’interface du jeu de pilotage.
Ok, merci pour lien de la vidéo, j'essaierai de m'en souvenir
En fait dans le simulateur (Falcon BMS) on peut extraire certain instrument soit sur un deuxième écran soit sur un autre PC sur le même réseau évidemment, dans la vidéo il a extrait les MFD sur un deuxième écran, fait un cache en contreplaqué et donc placé les rangées de bouton autour ce qui donne l'impression d'avoir des MFD avec écran, moi je vais (enfin j'aimerais) faire la même chose mais sur un LAPTOP,qui a un écran tactile mais je n'ai aucun logiciel d'extraction en tactile qui fonctionne correctement, d'où l'idée du Arduino mais aussi parce que j'aime bricoler et découvrir
Ok oui l’idée du cache ests bonne
Il suffit ensuite d’envoyer les bonnes commandes via USB
Oui et tout est là envoyer les bonnes commande, donc pour ça réussir à fabriquer quelquechose avec de l'Arduino, mais là même en lisant ce que vous m'avez suggéré ça ne sera pas simple, je ne suis pas prêt d'avoir un montage qui fonctionne....
si vous connaissez les commandes et qu'elles sont attribuées "en dur" et si vous savez câblez vos boutons sous forme de matrice, le code est très simple.
on teste si une touche donnée est appuyée et si oui on balance la séquence associée
#include <Keypad.h>
#include <Keyboard.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Keyboard.begin();
}
void loop() {
char key = keypad.getKey();
if (key == NO_KEY) return;
bool pressed = true;
switch (key) {
case '1': Keyboard.press(KEY_F1); break;
case '2': Keyboard.press(KEY_F2); break;
case '3': Keyboard.press(KEY_F3); break;
case '4': Keyboard.press(KEY_F4); break;
case '5': Keyboard.press(KEY_F5); break;
case '6': Keyboard.press(KEY_F6); break;
case '7': Keyboard.press(KEY_F7); break;
case '8': Keyboard.press(KEY_F8); break;
case '9': Keyboard.press(KEY_F9); break;
case '0': Keyboard.press(KEY_F10); break;
case 'A': Keyboard.press(KEY_F11); break;
case 'B': Keyboard.press(KEY_F12); break;
case 'C': Keyboard.press(KEY_ESC); break;
case 'D': Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('z'); break;
case '*': Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press('p'); break;
case '#': Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('x'); break;
default: pressed = false; break;
}
if (pressed) {
delay(100);
Keyboard.releaseAll();
}
}
ici j'ai mis n'importe quoi comme commandes
Je ne suis pas encore familiarisé avec ce langage, donc ma question qu'est ce que cela signifie "câbler sous forme de matrice" ?
Merci pour l'exemple de code
Sans que ce soit représentatif de l'organisation spatiale des boutons, c'est simplement organiser les connexions entre boutons sous la forme d'une matrice.
chaque bouton sera repéré dans la bibliothèque par sa ligne et colonne "théorique" pour détecter son appui.
ça vous permet de gérer par exemple une matrice de 5x4 = 20 boutons avec 5+4 = 9 fils.
Ok déjà merci pour les explications.
Je vais donc me retrouver avec 9 fils à souder sur le carte.
Cette carte que vous préconisé, c'est bien celle-ci ?
Bonjour arduinono25
Tu peux, aussi, gérer tes matrices au moyen de modules PCF8574:
Il est connecté en i2C (2 fils) et tu peux en chaîner 8.
Ca se gère avec la bibliothèque I2CKeypad
Cordialement
jpbbricole
oui - plus le GND
évitez les pins 0 et 1
Justement les pins 0 et 1 où sont ils ? Je ne les vois pas sur la carte ?
J'aurais aimé justement trouver un document qui expliquerais ou brancher quoi avec explication de chaque pin mais je n'ai rien trouvé.
Il y a des TX, RX, je suppose transmission réception ??? D'ailleurs ne seraient il pas mon 0 et mon 1 ??? mais que peut on brancher dessus par exemple, et même chose pour chaque pin, ou est-ce que je pourrais trouver cela.


