Control Box pour simulateur vol / auto - Projet faisable ou pas ?

Bonjour,

Ici Zabuel, j'ai 36 ans.

Mon niveau : Plutôt débutant sur l'arduino (je n'ai fait que des petits projets) et pas super calé en électronique.

En revanche je passe beaucoup de temps sur le net pour chercher par moi même mais il reste toujours des doutes.

Le Projet

J'aimerais faire un boitier de contrôle pour X-plane (simulateur de vol) qui pourrait servir pour pas mal d'autres jeux également.

Voici ce que j'imagine faire (mais je ne suis pas assez calé pour savoir si c'est faisable).

  • Avec un arduino uno a priori (je dispose aussi d'un Mega, d'un Due, de nanos, de micros si ce n'est pas jouable)

  • 8 potentiomètre classique (réglages de divers potards Boeing 737 / Airbus A320, trims par ex..)

  • 8 potentiomètre sliders (Axes 2xThrottle, 2xRichess, 2xPropeller, flaps, spoiler...)

ça me donne 16 entrées analogique sur un "CD74HC4067" (pins 2,3,4,5 et A0)

  • 1 Ecran 4x20 (géré avec un 74HC595 pour utiliser 3 pin, j'ai trouvé un tuto pour faire un shield)
    Gestion affichage des fréquences, course, heading, infos divers) (pin 6,7,8 par exemple)

  • Une matrice d'entrées 8 x 8 via un MCP23017 (I2C) (20 boutons, 10 switch ON/OFF, 10 switch ON/OFF/ON, 2 x double switch avec led (équivalent à un switch ON/OFF), un switch de type clef (équivalent à un ON/OFF/ON), les 8 boutons des 8 rotary encoder ==> 64 entrées via pins A4 / A5

  • 8 encoder (rotary) géré par un MCP23S17 (donc que la partie rotation, la partie boutons étant géré sur la matrice) (port SPI).

Voila pour le projet.

Je vais pas innonder de questions car je fais mes recherche au fur et à mesure. J'ai fait un petit schéma pour la partie boutons (donc la matrice 8x8 via MCP23017)

Je voulais savoir s'il y avait des choses qui choquait sur le schéma (PJ), si je me plante complètement ou si c'était valable.

Sur le schéma il y a donc :

  • une matrice classique avec les diodes pour éviter l'effet ghosting
  • Des résistances de pull-down sur les entrées du MCP23017.
  • Deux résistances de pull-up sur les entrées A4 et A5 (i2C)
  • Qu'une partie des boutons pour avoir l'idée.

Mes questions

  • Les résistances de pull-down sont elle obligatoire sur mes entrées du MCP23017 ? Si oui quelle valeur mettre (1k, 10k ou autre) ?

  • Les deux résistances de pull-down (4.7k) sur A4 et A5 sont elles obligatoires également

Merci beaucoup ce n'est qu'un début j'ai encore beaucoup de choses à éclaircir mais ça va m'aider à avancer (je prends tout le temps nécessaire pour y arriver).

  • Est ce que mon schéma est potable, y'a-t-il moyen de l'améliorer pour faire un petit shield propre ?

Merci beaucoup à ceux qui prendront le temps de lire ce gros pavé et de répondre a une de mes questions, ça va me permettre d'avancer tranquillement sur mes recherches.

Lien vers le schéma (dropbox)

ShieldMcp23017.zip (33.4 KB)

Beau projet, bravo.
Pour l'écran, je suppose que tu penses à un LCD : autant passer à un petit OLED comme celui-ci (2€ chez Ali)


ou un petit TFT touch de 2.4 pouces (4€) ou plus en SPI qui te permettrait d'interagir avec l'affichage

voire même un Nextion, plus cher mais équipé d'un processeur et fourni avec un logiciel sur PC qui permet de construire une IHM plus simplement

Merci pour la réponse lesept.

Pour le TFT 2.4 : J'en ai un mais il prend tous les Pin de l'arduino (c'est un shield donc pas la même version que celui que tu me propose qui semble plus raisonnable) mais j'ai pas vraiment besoin d'un écran aussi grand et tactile pour ce projet et je voudrais pas que ce soit trop lourd point de vue code vu le nombre de boutons à gérer.

Pour le petit écran OLED : l'idée me plait bien j'en ai commandé 2 (ça sert toujours) mais j'ai un doute. Tu peux peut être m'éclairer sur ce point.

Je me demande si le fait d'avoir la matrice 8x8 à scanner + l'écran tous les deux sur le port i2C va pas poser de soucis.

Est ce que je risque pas de ralentir ma cadence de scan de la matrice en changeant régulièrement l'adresse sur le port i2c pour passer de l'écran à la matrice et inversement ?
d'autant plus si j'ai pas mal de choses à afficher ?
Pour la matrice (je ne sais pas encore comment ça marche mais je comptais utiliser les interruptions du composant MCP
pour éviter justement le scan de toutes les entrées sorties. (je vais me renseigner sur ce point mais ça pourrait aussi peut être (ou pas) poser problème pour avoir un écran en plus sur le bus)

Aprés c'est peut être idiot ce que je dis car de toutes façon je ne pourrai pas afficher sur l'écran et dans le même temps scanner mes boutons (je cogite en même temps... :o), je dois juste trouver le moyen le moins lent de le faire.

Pour l'instant je sais pas encore répondre à ces questions (c'est peut être la même chose au final).

Du coup, par sécurité je partais plutôt sur un LCD 4 x 20 sur 3 pin.

Ce qui est suffisant dans mon cas, ça laisse 4 lignes de 20 caractères.
Par contre c'est limité sur le type de contenu à afficher (que du texte).
Imaginons que je souhaite jouer à assetto corsa / project cars et que je souhaite afficher le rapport courant (bah ça sera moche sur un 4x20). (mais pas sur non plus que je puisse le faire sur le petit écran OLED).

Pour le Nextion, merci pour l'info. Je ne connaissais pas du tout c'est excellent ces écrans.

Aprés il faut voir les ressources que ça occupe sur un uno, je vais quand même avoir besoin de réactivité. En revanche je prend note pour d'autres projets éventuels !

J'hésite encore entre le petit OLED et le LCD du coup.

hésite pas si t'as des infos qui peuvent me faire changer d'avis, d'un point de vue place / fonctionnalité c'est intéressant ces petits écrans

Le Nextion me semble la Rolls des écrans. Trop cher pour moi, je n'ai pas encore testé. J'ai cru comprendre qu'il utilise son propre processeur, et donc il ne prend pas les ressources de l'Arduino (ou très peu, de la com essentiellement).

Pour la matrice, ça ne posera pas de problème : il faut la voir comme un clavier 64 touches. Tu peux regarder la bibliothèque keypad, qui marche très bien et est facile à utiliser. Par contre, cette bibli va te prendre pas mal de broches sur le nano (16 a priori) mais je pense que c'est jouable : les broches Ax analogiques (sauf A6 et A7) peuvent servir en digital.

Donc D2 à D13 + A0 à A3 ça te fera 16 broches pour le clavier. A4 et A5 pour l'écran I2C. Ca le fait, si tu n'as besoin de rien d'autre... On conserve D0 et D1 pour la communication série avec le PC.

Il y a ça mais cest un peu cher :

Je pense que quel que soit l'écran tu n'auras jamais de problème de ralentissement sur l'Arduino. Il faut comprendre un truc : pas de Windows sur Arduino !!! :slight_smile: Donc, pas de problème d'OS, écran bleu, tout ça.

S'il te faut d'autres IO, tu peux certainement utiliser le MCP23017 : je n'ai aucune expérience sur ce sujet donc je ne peux guère aider. Sur ce lien, je ne vois pas de résistance.

OK Merci pour ces infos.

Je viendrai mettre à jour le post avec l'avancée du projet de temps en temps.

Bonjour,

J'ai commandé 2 versions du composant 74HC4067 pour utiliser 16 entrées analogiques.

Il y a cette version

74HC4067

et celle ci

Version adaptée arduino

Et encore une autre plus classique mais que je n'ai pas trouvé sur "ali"

Ma question porte sur la première version (dans tous les cas je ne suis pas bloqué mais je suis curieux)

Le truc c'est que ce n'est pas un format trés "arduino friendly" (par rapport à l'autre modèle)

on ne peut pas le mettre sur une "breadboard" par exemple, ce sont des pates trés rapprochées (ça ne se voit pas forcément sur la photo mais c'est trés serré) et du coup

Je me demande si on peut travailler avec ce type de composant sur arduino ?

Je n'ai pas trouvé de socle ou le clipser. Et ça me parait bien compliqué à souder les pates sont vraiment trés rapprochées.

Une idée ?

Aprés y'a aucun problème j'ai l'autre version qui fera trés bien l'affaire mais bon ça peut être intéressant à savoir car ils sont un peu moins cher

Merci !

La première version c'est un circuit intégré, au format DIP je crois, en tout cas, ça se soude sur un PCB (printed circuit board, un circuit imprimé), donc pas utilisable directement avec un Arduino. Tu as tout intérêt, pour tous tes modules, à prendre des trucs adaptables sur breadboard. Ca te permettra de faire tes protos facilement. Ensuite si tu veux passer à des trucs plus compacts et plus pros, tu pourras utiliser les bidules à papattes comme celui-ci... Il te faudra des composants autour comme des capacités...

Super merci pour la réponse rapide !

Salut tout le monde,

A tout hasard est ce que quelqu'un a déjà utilisé ces potentiometres sur un Arduino ?

Potentiometre slider par cher (mais pas documenté).

Y'a plus de broches qu'il n'en faut et aucune doc même en cherchant la référence sur Google.

Du coup je sais pas trop comment ça se branche. J'imagine qu'il y a un GND, un VCC et un pin pour lire la valeur mais ou ?

J'ai voulu tester avec mon "ohmmètre" mais soit il est foutu, soit je sais pas m'en servir => il me sort n'importe quoi et les valeurs changent tout le temps sans rien toucher. (même quand j'essaie avec une résistance simple) (de la camelote snif)

Sinon j'ai commencé à imprimer des plaques pour mettre tous mes boutons (je commence à me rendre contre du gros pavé que ça va être ah ah), je vais souder pendant des années je crois.

Bonsoir,

je crois que tu confonds les broches de montage et broches du potentiomètre.

Si je me fie à la photo, seules les broches 1, 2 et 3 sont utiles.

1 : VCC
2 : GND
3 : OUT

Super merci.

Je vais tester ce câblage du coup.