[Projet] Un tableau de bord numérisé

eti:
super bravo j'adore!
Une question me vient à l'esprit en voyant ceci. Sur une voiture plus moderne (je pense à ma 206+), pensez-vous qu'il est possible de réaliser un régulateur de vitesse en se connectant sur le port diagnostique OBD?
Je sais qu'on peut avoir la vitesse, mais est-ce qu'on peut commander le régime moteur (accélerer ralentir à la place du servomoteur+câble)?

Salut et merci...

Je dis peut-être une co**erie, mais j'ai lu quelque part que les ODB actuels possèdent déjà un régulateur en interne (pour ceux qui ont une commande électromécanique de l'admission). Il suffirait de l'activer (mais là, c'est par la concession, et autant acheter une voiture où c'est déjà activé, vu le prix d'un petit clic de souris qui active le régulateur...). Je ne connais pas trop ces trucs modernes donc je ne peux pas t'en dire plus. J'ai voulu m'intéresser aux prises diag des ODB, mais ça avait l'air un peu compliqué et n'ayant qu'une vieille guimbarde sans ODB, je ne suis pas allé plus loin. Mais si on connait les codes de commande, alors il suffit de se connecter en série dessus et de tester...

Quelque modifs encore, dans la gestion des graphiques...

Voilà ce à quoi j'arrive :

Bon, l'encadrement des compteurs km est un peu ambitieux, je ne crois pas qu'il soit nécessaire d'afficher un kilométrage de 9 999 999 km, 6 chiffres suffiront. de même pour le journalier, 999,9km c'est déjà bien assez (là, il peut afficher jusqu'à 6 553,5km... quoique, sur un long trajet, ça peut être intéressant de pouvoir dépasser les 1 000 km).

Pour le fun et que tout le monde comprenne ma gestion graphique, j'ai envoyé un code au LCD pour lui dire de n'afficher que la page texte :

Puis que la page graphique :

le driver interne du LCD (le T6963C) fait un EXOR entre ces deux écrans pour afficher le résultat final.

Comme ça, on voit mieux le "fond" d'écran en mode texte et le "calque" graphique par dessus avec les aiguilles et gros caractères.
On voit également que pour le compteur journalier, la virgule est graphique pour ne pas utiliser la virgule texte qui prend un caractère à elle toute seule et c'est vraiment pas beau...
Je suis bien content d'avoir réussi à coller mes icônes en mode texte/caractères persos ainsi que l'encadrement des compteurs, ça me simplifie grandement la gestion graphique quand l'aiguille passe sur une icône : je n'ai plus rien à gérer!
Ce qui est dommage, c'est qu'il faut envoyer les tables de caractères persos à chaque mise en route du LCD, mais c'est quand même rapide. Ces tables sont collées dans l'EEPROM du "serial back-pack" et transférées dans l'espace mémoire "character Generator" du LCD à l'initialisation.

Il va être temps que je commence à tester les commandes par port série, et trouver des choses à afficher dans la bande du haut du LCD, j'ai trois lignes de 20 caractères ou une zone de 160 x 24 pixels. Je pense que j'y mettrai conso et autonomie à droite et les modes "régulateur" / "limiteur" à gauche. j'ai déjà prévu des icônes pour ça...

Super_Cinci:
Il va être temps que je commence à tester les commandes par port série, et trouver des choses à afficher dans la bande du haut du LCD, j'ai trois lignes de 20 caractères ou une zone de 160 x 24 pixels. Je pense que j'y mettrai conso et autonomie à droite et les modes "régulateur" / "limiteur" à gauche. j'ai déjà prévu des icônes pour ça...

tu n'a pas un petit GPS ?
en dehors de la position il y a des infos derivées qui peuvent etre interessante en voiture
heure
vitesse

Artouste:
tu n'a pas un petit GPS ?
en dehors de la position il y a des infos derivées qui peuvent etre interessante en voiture
heure
vitesse

Bah... je compte essayer de faire tourner le timer2 du MEGA en RTC si j'arrive à souder directement un quartz de 32768 sur les pins du méga (car elles ne sont pas routées), et la vitesse, ben je la mesure "mécaniquement" sur la sortie de pont (là où se met le câble compteur).

Puis j'ai un second écran à programmer aussi (bien que je ferai un Ctrl-C/Ctrl-V du code du premier, il n'y à qu'à déplacer les aiguilles et faire d'autres jauges, zones de texte...)

Et surtout un banc de test à fabriquer, et le MEGA à programmer aussi, Bref, c'est pas fini!

Super_Cinci:
Après avoir passé deux jours à trier des poulets morts non vendables (donc direction usine à "knaki"), j'ai

Tu les as massacrés à coup de R11 ?

Bon, ben sinon ca avance bien...

Ouaip, ça avance. l'épisode poulet m'a permis de prendre du recul...

J'ai aussi utilisé le timer2 pour avoir une base clignotante à 1Hz pour faire clignoter jusqu'à 8 icônes, le rendu est d'un coup plus vivant (enfin en marche normale, aucune icône ne devrait clignoter, je ne verrai peut-être donc jamais mon joli code en fonction...)

Ben voilà, j'en ai trop mis...

en inversant la petite voiture et la conso, ça devrait le faire, et en mettant le temps restant un peu plus à droite... (il manque aussi une icône d'horloge)

quel boulet... je vais me coucher!

Y'en a un qui l'a fait !!!

A lire sur Delorean à vendre

:grin: =>[]

La R11 phase 1 s'y prête mieux, car elle a des doubles optiques à l'avant, la mienne est une phase 2 et ne ressemblera jamais à une deloreane! :

Les deux LCD sont maintenant fixés dans la boîte (c'était surtout pour qu'ils soient protégés le temps du développement, les verres se rayent trop facilement).

Bon, j'ai enfin branché le second LCD (qui dormait dans son sachet depuis plus d'un an), collé un bootloader dans son 168, fait un copier-coller du code du premier écran, quelques modifs rapides (principalement les x et y des "champs de valeurs"), le résultat est presque sans surprise...

Sur la photo, on voit le mega qui attend ses premières liaisons série avec les LCD (toute la réception / affichage est codé dans les LCD, mais je n'ai encore rien testé!).

pour le fun, quelques extraits de mon cahier de brouillon :

un peu de définissions, dessins d'icônes...

encore des icônes...

des tables de caractères...

le protocole série...

Je vous mets pas toutes les pages, il y en a pas loin de 60 bien noircies...

Il me tarde de faire mes premiers essais de contrôle des LCD avec le mega2560! Je pense utiliser ce petit boîtier maison comme clavier / écran pour choisir une fonction / code à envoyer au LCD, et un potar pour changer les valeurs :

Puis lundi, j'ai trouvé ceci dans une poubelle :

un pèse-monnaie et son imprimante thermique! le pèse-monnaie marche très bien, et pourrait me permettre d'avoir un capteur de poids super précis (ça pèse aussi les billets, et c'est capable de dire combien il y en a, et si dans le tas il y en a qui ne font pas le bon poids). Je ne vais pas tarder à l'ouvrir pour tenter de trouver la précision de la balance! Un joli LCD de 24 x 2, de quoi faire joujou!

Je me demande si je ne vais pas intégrer l'imprimante thermique dans la voiture... il faut encore que je trouve comment la commander, c'est un bête RX/TX, mais est-ce que c'est du simple ascii, ou du plus compliqué...

Super_Cinci:
La R11 phase 1 s'y prête mieux, car elle a des doubles optiques à l'avant, la mienne est une phase 2 et ne ressemblera jamais à une deloreane! :

Les deux LCD sont maintenant fixés dans la boîte (c'était surtout pour qu'ils soient protégés le temps du développement, les verres se rayent trop facilement).

Bon, j'ai enfin branché le second LCD (qui dormait dans son sachet depuis plus d'un an), collé un bootloader dans son 168, fait un copier-coller du code du premier écran, quelques modifs rapides (principalement les x et y des "champs de valeurs"), le résultat est presque sans surprise...

Sur la photo, on voit le mega qui attend ses premières liaisons série avec les LCD (toute la réception / affichage est codé dans les LCD, mais je n'ai encore rien testé!).

...

Puis lundi, j'ai trouvé ceci dans une poubelle :

un pèse-monnaie et son imprimante thermique! le pèse-monnaie marche très bien, et pourrait me permettre d'avoir un capteur de poids super précis (ça pèse aussi les billets, et c'est capable de dire combien il y en a, et si dans le tas il y en a qui ne font pas le bon poids). Je ne vais pas tarder à l'ouvrir pour tenter de trouver la précision de la balance! Un joli LCD de 24 x 2, de quoi faire joujou!

Je me demande si je ne vais pas intégrer l'imprimante thermique dans la voiture... il faut encore que je trouve comment la commander, c'est un bête RX/TX, mais est-ce que c'est du simple ascii, ou du plus compliqué...

Bonjour super-cinci
ça avance bien, mais selon l'adage "trop d'infos tue l'info" tu ne crois pas que 2 LCD bien (sur)chargés ça fait beaucoup ?
La thermique dans la voiture c'est pour t’éditer le ticket de ce que tu doit payer en fin de parcours ? :grin:
pas de ref sur l'imprimante ?

Au démarrage, les LCD affichent pratiquement tout, comme les trucs à pas cher, mais il y a la moitié qui disparaît en marche normale...

Pour la thermique, il faut demander un PWD chez ABLE pour peut-être trouver de la doc... Puis je crois qu'elle sera connectée à un arduino, mais pas dans la voiture... il y a déjà assez de bazar comme ça...

J'ai fini de recâbler ma boîte "terminal" sur une DB25, les 25 broches sont utilisées : 5 inters, un potar, le clavier, 2 leds et le LCD. Avec ça, je devrais pouvoir faire ce que je veux pour envoyer des codes aux écrans... Si j'ai assez de place en broches, je pense garder ce boîtier comme "terminal" déporter pour le réglage quand on est sous le capot...

Je suis sûr que vous aimeriez savoir câbler comme moi :

(une fois fermé, on s'en tape!) :smiley:

Salut à tous!

Alors comme j'aime bien que de temps en temps tout soit un minimum rangé, j'ai fixé mon "terminal maison" sur une planche, avec un mega2560, en laissant un peu de place pour une bread-board, histoire de pouvoir envoyer des données aux deux écrans.

Les deux départs (Serial1 et Serial2) vers les écrans sont en haut à gauche. L'espèce d'horloge sous le clavier est un potar multitour (10 tours) connecté à A0... J'ai crame le petit bleu (50cts), car il était en court-jus entre le +5 et 0, on ne peut pas tout réussir du premier coup...

J'ai deux champs sur la première ligne : numéro écran et numéro fonction, 4 champs "data" deuxième ligne. Un bouton fait défiler le curseur de champ en champ, "+" / "-" / "0"-"F" / potar pour modifier la valeur du champ, un bouton pour envoyer le code généré au bon lcd. Avec une fonction d'envoi continu en fonction du potar, ça devrait me permettre de jouer avec mes écrans un petit moment...

Dans la série boulet, le premier envoi vers un écran a bien marché, mais le second a merdé lamentablement... des caractères se sont mis à côté d'une icône clignotante... Ben oui, le timer balance ses INT à tout moment (~2Hz), et ça peut tomber en plein milieu d'une séquence d'écriture LCD, donc envoyer des codes foireux au LCD. Reprogrammation totale des deux back-packs en désactivant le timer pendant chaque écriture sur l'écran... Le clignotement sera peut-être moins fluide, mais il ne perturbera (plus?) l'affichage des données.

Mais le fait que l'écran réagisse à un envoi série montre que je ne suis pas loin du bout!

Reste donc maintenant à tester chaque fonction série. Une fois les écrans validés, je m'attaque à la programmation des comptages et autres réjouissances qui m'attendent...

A suivre...

A noter quand même cette histoire de contraste, car les mini-potars sont bien foireux, et j'ai la PIN OC2A du 168 qui ne sert à rien, il serait intéressant d'utiliser une PWM là-dessus à une fréquence de malade aec un bon passe-bas pour gérer le contraste. Quelqu'un a déjà essayé? il faut que je regarde quel genre de signal (si c'est une impédance ou un signal continu que le géné VSS attend) il faut envoyer sur la pin V0 du LCD, ça m'arrangerait bien, sinon, ça veut dire coller un potar extérieur, mais je crains le pire, ça va pas être joli...

Salut
Oui tu peux utiliser un PWM avec un filtre pour le constraste. Pas besoin d'un fréquence de malade, le 470Hz de base avec un filtre lent suffit.
Certains lcd demande une tension négative pour le meilleur contraste. Tu peux aussi faire ca avec une pompe de charge sur le pwm (2 diodes, 2 capas)

barbudor:
Salut
Oui tu peux utiliser un PWM avec un filtre pour le constraste. Pas besoin d'un fréquence de malade, le 470Hz de base avec un filtre lent suffit.
Certains lcd demande une tension négative pour le meilleur contraste. Tu peux aussi faire ca avec une pompe de charge sur le pwm (2 diodes, 2 capas)

J'ai vu pas mal de sujets à ce sujet... en effet, selon le type de commande, soit une PWM + LPF, soit une pompe de charge comme tu le dis. Dans mon cas, le "V0" est connecté à un potar entre le VCC et GND. par précaution, je mesurerai la tension (c'est du sparkfun, ne l'oublions pas...) Comme je ne compte surtout pas utiliser analogWrite() pour ça, je testerai plusieurs fréquences, je n'airai d'ailleurs pas le choix, car j'utilise déjà ce timer (le 2) pour gérer le clignotement des icônes, et il tourne à 1:1024, soit une fréquence de 61 Hz... je vais voir si je peux quand même pas le remonter un peu... ou basculer le clignotement sur le timer0 (je n'utilise ni delay() ni millis()...). Je n'ai pas le choix pour le contraste : je ne peux utiliser que la pin OC2A, toutes les autres sont déjà prises.

Ce matin, j'ai fait quelques activités manuelles...

J'ai percé mes 12 emplacements pour les voyants 12V et collé un vinyl noir mat sur la façade :

Puis posé les chaches des voyants et les écrans :

Et voilà le final :

Bon, en réel, il n'y a pas autant de reflets (le défaut des APN : ils mettent toujours en valeur les reflets). De plus, dans la voiture, il y a une grande casquette au-dessus.

Je suis assez fier de moi, l'ensemble se présente plutôt bien, le noir mat légèrement granuleux apporte vraiment un fini sympa! Je comptais faire des découpes à la machine dedans, mais finalement non, ça restera comme ça!

Bon, maintenant, il ne me reste plus qu'à programmer le MEGA2560 et faire l'interface électronique des capteurs (pis aussi aller chercher des capteurs en casse, je ne les ai pas tous...). Je crains le pire au niveau de la linéarité des capteurs. J'avais déjà fait des relevés sur la jauge carburant, on est bien loin d'un simple facteur... Si pour certains un générateur de courant peut arranger les choses, je crains de devoir utiliser des tables de conversions...

Super_Cinci:
Bon, en réel, il n'y a pas autant de reflets (le défaut des APN : ils mettent toujours en valeur les reflets). De plus, dans la voiture, il y a une grande casquette au-dessus.

Je suis assez fier de moi, l'ensemble se présente plutôt bien, le noir mat légèrement granuleux apporte vraiment un fini sympa! Je comptais faire des découpes à la machine dedans, mais finalement non, ça restera comme ça!

sympa comme rendu, mais pour moi il manque un HA comme affichage :grin:
et si il n'y en a pas , je ne monte pas ! 8)

J'en ai vu un il y a bien... fiou! 20 ans... dans une fiat panda 4x4... Il y avait deux cadrans, avec dans chacun une petite voiture (face et profil) qui s'inclinait grâce à un pendule mécanique (à l'époque, les capteurs gyro électroniques étaient peu fiables et réservés à la NASA).

Mais je n'en monterai pas tant que je n'aurai pas terminé l'asservissement par servo du becquet arrière et des ailerons...

Artouste:
sympa comme rendu, mais pour moi il manque un HA comme affichage :grin:
et si il n'y en a pas , je ne monte pas ! 8)

Tu peux utiliser le mien XD

Jean-François:
Tu peux utiliser le mien XD

Le vélo de JF est encore plus "tunné" que la pire des R11 :grin:
Tu as un IMU pour le contrôle d'assiette ?
Vélo pendulaire pour compenser dans les virages ?

salut

voir l'article là : http://www.ledauphine.com/drome/2010/04/27/pascal-rambaud-a-invente-la-swing-car-...-un-vehicule-inspire-du-velo-et-de-la-caisse-a-savon

A+

barbudor:
Le vélo de JF est encore plus "tunné" que la pire des R11 :grin:
Tu as un IMU pour le contrôle d'assiette ?
Vélo pendulaire pour compenser dans les virages ?

J'ai une centrale inertielle que j'avais utilisée pour faire cet HA, mais ce n'est pas monté sur mon vélo.... qui n'est pas encore un tilting trike :grin: