{"partition": "head_middle", "source_domain": "forum.arduino.cc", "digest": "sha1:DZDDLYHMAIK7BOMTFMZUFQHSZFVGCORO", "path": "/lustre/fsn1/projects/rech/qgz/uzq54wg/processed_redpajama/base_processing/output/fr/2014-15/000_00010.parquet"}
| Arduino Forum :: International :: Français (Moderators: Jean-François, Snootlab) :: [Projet] Un tableau de bord numérisé
Topic: [Projet] Un tableau de bord numérisé (Read 17801 times)
Super_Cinci Bretagne
[Projet] Un tableau de bord numérisé
Comme il n'est pas terminé, je ne le mets pas dans "réalisations et projets finis"...Bonjour à tous,Depuis plusieurs années, je traine dans ma tête un projet pour ma vieille auto (R11 1.4L 1987) :un tableau de bord électronisé pour remplacer celui d'origine.L'idée première était de remplacer la jauge à essence (qui prend pas mal de place) par un compte-tour. On trouve dans les R19, R21, et même d'autres R11 des TDB avec compte-tour, même gabarit. Puis de fil en aiguille, j'ai fait évoluer les choses, en pensant à un écran LCD, puis aujourd'hui, deux LCD graphiques en conservant les connecteurs d'origine si un jour je veux remettre un tableau de bord d'origine (on ne peut jamais se fier à l'électronique dans une voiture, c'est bien connu).Petit préliminaire...Depuis plus d'un an, ma R11 est équipée d'un UNO qui récupère le signal du capteur PMH, en déduit la vitesse de rotation du moteur, et calcul la vitesse de la voiture en 5ème (connaissant les rapports de boîte, périmètre des roues, il suffit de multiplier la vitesse du moteur par un simple facteur pour trouver la vitesse théorique). Ce UNO gère également un servo-moteur qui tire sur le mécanisme d'accélérateur (via une simple ficelle dans une gaine de frein de vélo) et propose un mode "régulateur de vitesse". Ca marche plutôt bien, on peut réguler à 70, 90, 110 et 130. C'est même assez précis, puisqu'en régulant à 90, la vitesse varie de 85 à 92Km/h, et le régulateur se coupe de lui-même dès qu'il détecte la position "pied-levé" du servo moteur (généralement aux alentours de 94Km/h, qui reste en dessous de la limite des radars automatiques ), et dès qu'on touche la pédale de frein ou d'embrayage, il se coupe aussi. 5 boutons et un LCD 16x2 en guise d'IHM :Une petite interface électronique qui se place à côté du moteur (mise en forme signaux PMH, alimentation servomoteur...)Le servomoteur modifié (ajout d'un engrenage et déport du potentiomètre pour plus de puissance) :Le système en lui-même :Bref, j'ai l'intension de combiner le régulateur et les écrans LCD autour d'un MEGA2560.Alors j'ai désossé un tableau de bord. découpe du plastique et fabrication d'une plaque de support des LCD (du CI double face, c'est super facile à travailler, et j'en ai plusieurs centaines de Kg...)Les deux LCD "presque" à leurs places, ils ne sont pas encore fixés :Puis, pour reprogrammer facilement les "serial back-pack" de sparkfun qui étaient complètement buggés d'origine, j'ai fait un shield maison pour arduino/ISP :Et un autre shield pour relier l'ATMEGA168 du LCD aux RX/TX/RESET/alim d'une carte UNO dépourvue du DIP 328 :Pour l'instant, j'en suis à la programmation des LCD. Distar (celui fabrique les LCD) n'a pas trop gazé, puisqu'il a forcé le driver T6963C en petite police de 5x7 sur une grille de 8x8. Le T6963C possède une police de 7x8 en interne, mais du coup inaccessible.Les LCD possèdent une RAM assez importante que l'on peut découper à sa guise en "pages". On définit donc une page graphique (un octet = 8 pixels) et une page texte (1 octet = 1 caractère). J'ai calculé qu'on peut obtenir 22 pages graphiques et autant de pages texte. On peut ainsi écrire dans une page, alors que le LCD en affiche une autre. Je ne détaille pas plus le fonctionnement des LCD, ça ferait plutôt l'objet d'un topic que j'avais déjà créé à ce sujet.Donc, dans l'idée, je programme le 168 du LCD pour qu'il dessine l'interface graphique voulue, et quand il reçoit une valeur par le port série, il l'affiche sous forme de texte ou de graphique. Côté MEGA2560, c'est super simple, car il me suffira d'envoyer par exemple les octets 0x15 puis 0x45 (0x15 pour "afficher vitesse" et 0x45 la valeur (69)) par port série, et le 168 se débrouille par la suite pour "bouger" l'aiguille sur l'écran et afficher "69 Km/h" à un endroit précis. Bref, je dispose d'une accélération matérielle assez puissante. j'accède aux LCD avec un port série pour chaque, c'est tout.Le côté ARDUINO :Le MEGA2560 va mesurer divers signaux et les transformer en valeurs à afficher sur les LCD. La liste non exhaustive :vitesse véhiculerotation moteurniveau réservoir essenceconsommation, autonomiekilométrage total et journalieravance à l'allumagetempérature moteurniveau / pression huilelambda échappement (taux CO / CO2)divers voyants du tableau de bordmessages d'alerte de fonctionnementMais aussi remplir certaines fonctions...remplacer le câble d'accélérateur par un potar et un servomoteurRégulation / limitation de vitesseenregistrement de données de parcoursmonitoring de fonctionnement du moteurinterfaçage avec un PC sur USB pour diagnostiques, relevés......A suivre!