[Projet] Un tableau de bord numérisé

Et pourquoi comme indiqué sur ta page wiki ne pas utiliser cet algo qui fait des cercles sans trous ? XD

Jean-François:
Et pourquoi comme indiqué sur ta page wiki ne pas utiliser cet algo qui fait des cercles sans trous ? XD

Algorithme de tracé de cercle d'Andres — Wikipédia

Pas mal, mais il semble que le périmètre est un peu "gras" aux alentours des angles de 45°... Mon pâté de 7x7px est quand même plus rapide, peut-être lui rajouter un seul cercle pour passer à 9 de diamètre?

Bon, pour les aiguilles, je m'arrête là :


une petite erreur s'est glissée dans mon calcul des petites aiguilles, voir le point en bas à droite qui est en trop sur celle du haut... j'ai pas trouvé où.

Maintenant, il faut que je m'occupe des icônes, en 16x16 (32 octets) ou 24x24 (72 octets), je ne sais pas encore, je pense que je vais les coller directement dans l'EEPROM du 168, comme ça, je m'affranchis du bouffage de ram pour les tableaux d'icônes, et je pourrai les changer en utilisant l'USB du système final. ça me laisse une capacité 10 à 20 icônes (selon la taille) par écran, largement suffisant.

edit : Un premier jet d'icônes en deux tailles (16x16 et 24x24) :

Reste plus qu'à les coder...

Super_Cinci:
Bon, pour les aiguilles, je m'arrête là :

C'est déjà un resultat pas mal et exploitable

Oui, et je commence à en être fier...

Bon, histoire de perdre du temps, j'ai codé quelques icônes en partant d'un bitmap (va falloir que je fasse un soft en VB qui me donne directement des tables, car c'est bien long...). Je trouvais plus joli en 24x24, donc je les ai faites en 24x24. Oui, sauf qu'en fait :

Ca prend de la place, et pas qu'en mémoire... donc super, je n'ai plus qu'à tout reprendre en 16x16, comme la dernière...

Je ne sais même pas si je vais garder les grandes sous la main, car il faudra de la mémoire, et d'ici là, j'aurai un petit soft qui me transforme un BMP en table d'octets...

EDIT : en 16x16, on va pouvoir en coller un peu plus...


Ces icônes serviront à décorer les petites aiguilles, et sûrement les pages de configuration (où là, je pourrais utiliser les grandes...)

Après avoir passé deux jours à trier des poulets morts non vendables (donc direction usine à "knaki"), j'ai bien eu du mal à me replonger dans le code...

J'ai voulu encadrer les compteurs totaliseurs et journalier...

Pas très concluant. Mais l'idée est là, car pour qu'au passage de l'aiguille sur les zones "sensibles", il faut mettre les graphiques dans la page "text", car rappelons-le, pour un écran, j'ai un écran graphique et un écran texte qui s'affichent ensemble avec un XOR entre les deux... L'idée : le "fond" est en page texte, et ce qui bouge en page graphique.

Donc en attendant de jouer avec les 128 caractères personnalisables, je suis revenu à la base :

Dans l'idée, les icônes seront dans la page texte, et en 4 caractères, je pourrai afficher une icône de 16x16 : gain de temps énorme, et possibilité de faire clignoter une icône (je pense à l'essence... :smiley: ).

Il me reste donc à coller en EEPROM ma table de caractères persos, j'ai déjà commencé à y travailler...

A suivre!

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)?

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)