BitmapU8GlibCreator

Salut à tous,

J'ai récemment eu l'idée d'apprendre à utiliser mon Arduino Uno avec un écran Graphique (GLCD), du coup je me suis orienté vers l'U8Glib mais arrivé au stade de la création de bitmap au format hexadécimal, je me suis rendu compte que l'opération était longue et fastidieuse si on s'efforce de faire le travail avec la calculette Windows x).
Du coup je me suis dit "Mais pourquoi pas faire un Soft pour ça !?",
et voila comment je me suis lancé dans un programme écrit en c++11 avec Qt ce qui donne :

BitmapU8GlibCreator

voila quelque screen :

screen1 :
http://uploads.siteduzero.com/files/391001_392000/391564.png

screen2:
http://uploads.siteduzero.com/files/391001_392000/391563.png

screen3 :
http://uploads.siteduzero.com/files/391001_392000/391565.png

screen4 :
http://uploads.siteduzero.com/files/391001_392000/391568.jpg

Ajout récent : X pour changer de couleur rapidement.

La nouvelle version est sortie :

Cette version est une réécriture complète de l'ancienne version, elle a été rebaptiser graphene pour l'occasion.Cette version n'a pas pour but d'ajouter de nouvelle fonction (sauf le zoom), elle a pour but de me facilité l'ajout prochaine de nouvelle fonction (le dessins avancer (faire des cercle,des carre écrire du texte ...).
Lien:

Windows 32 bit Installer : setup32
Windows 32 bit Portable : Graphene-32bit
Windows 64 bit Installer : setup64
Windows 64 bit Portable : Graphene-64bit

Linux 64 bit : Graphene-linux64.tar
Linux 32 bit : arrive bientot !

sous linux l'installation de Qt et de freetype est necessaire

2 bug sont connus :
windows:

  • La conversion de font avec la version installer peut échouer si vous n’êtes pas administrateur.

linux:

Voila merci de rapporter bug et suggestion.

Post anglais : BitmapU8GlibCreator - Displays - Arduino Forum

:astonished: bien joué !! XD

Merci :slight_smile:

La suite... Un convertisseur de police TrueType ???

JLB

C'est prévue !

LA version 1.5 est sortie avec la conversion de police true type !!

Merci c'est super pour ce qui comme moi veule faire des interface tactile !!!

Merci ! si tu as des suggestions ou des bugs a signalé n'ésite pas !

Salut,

Génial comme programme, trés pratique, merci :wink:

Du coup j'ai fait un petit article dessus pour présenter ton travail :

mr-pantalon:
Merci ! si tu as des suggestions ou des bugs a signalé n'ésite pas !

Quelques remarques / améliorations possible :

  • Boutons N&B en bas qui dépasse de quelques pixels :stuck_out_tongue:
  • Tu utilise un format de fichier maison (.mrb ?) non documenté -> pas top, reste sur du vrai bitmap ce serais beaucoup mieux :wink:
  • Ouvrir une bitmap et importer une bitmap = même chose ...
  • De même exporter une bitmap et sauvegarder une bitmap = même chose
  • "Voir le code hexa" -> click en droit en anglais, ça fait c*n quand même :wink:
  • Pas de bouton "Tout copier dans le presse papier" dans la fenêtre "voir le code hexa" -> dommage
  • Tu devrais limiter le nombre de valeurs hexa par ligne à (largeur_image / 8) sinon avr-gcc sortira une erreur de compilation sur de grande image
  • Fonction pour générer un .h -> ce serait bien qu'elle génère au choix : soit le .h pour drawBitmap (en RAM), soit le .h pour drawBitmapP (en PROGMEM)
  • De même que générer les prototypes drawBitmap ou drawBitmapP qui vont bien (avec les largeur/hauteur pré-calculé)
  • Exporter en XBM, c'est vraiment utile ?
  • Afficher la taille de la zone de dessin (= de l'image) en bas à coté des boutons serait pas mal
  • Pouvoir choisir la palette de couleur, U8Glib géré aussi des écrans couleurs, pas seulement N&B :wink:
  • Choix de la largeur / hauteur d'une nouvelle image dans une même fenêtre, et correction auto du multiple de 8 par le multiple supérieur
  • Affichage de la "grille" (ligne séparant les différents pixels), sinon c'est relou de dessiner point par point sur un petit écran sans zoomer
  • Outils de dessin avancé (ligne, rectangle, cercle, elipse, texte, ...) et de sélection
  • ...

Salut, merci pour l'article tes remarque vont être pris en compte dans une futur v2 (plantage du pc sans récupération des donnée = réécriture de 0,et sa va mettre un peu de temps rentrée iminante oblige :~ et le fait que j'ai un projet d'ide qui utilisera cmake et qui s'affranchira des sketch ).

Salut!

Excellent travail! C'est presque exactement ça qu'il me faut pour mes GLCD, en fait, pour gagner du temps, j'utilise la CGRAM pour y coller des morceaux d'image de 8x8 px, ça va beaucoup plus vite ensuite pour l'affichage (un code caractère perso me colle instantanément 64 pixels d'image... (très pratique pour des icônes par exemple). Selon comment tu peux gérer ton LCD, il y a peut-être quelque chose à prendre : moi, c'est un TC6963C qui fait tourner la dalle LCD (je me demande si tu n'as pas le même...). J'utilise la page texte pour le fond et la page graphique pour ce qui bouge. le TC6963C affiche les deux pages en les superposant :


seuls les aiguilles et les textes en gros caractères sont du graphique, les icônes sont des caractères persos en mode texte (4 caractères par icône 16x16). Du coup, si une aiguille passe sur du texte, ça ne l'efface pas, toujours ça de moins à gérer. Avec le mode "EXOR", les pages graphique et le texte s'inversent sur les pixels communs.

Si ça te donne des idées... tu découpe tes bitmaps en carrés de 8x8 pour en faire des caractères persos, une fois implantés dans la CGRAM, l'affichage sera plus fluide... Par contre, inconvénient : les caractères de la page texte sont sur une grille de 8x8, donc on ne peut pas les mettre où on veut...

Salut merci de ta réponse je vais y réfléchir a cette méthode.

Je passe juste dire que la prochaine version sera baptiser "Graphene", elle aura exactement les même fonction que U8GlibCreator (je vais quand même peut être rajouter le undo et le redo) étant donner que c'est une réécriture complète qui me permettra plus tard de rajouter d'avantage de fonction comme dessiner des rectangle des cercle du texte directement dans le programme.Cette version sera disponible sur Linux 32 bit,64 bit,Windows 32 bit,64 bit (avec les versions de Qt recompiler pour l'occasion) directement a la sortie.

un ptit screen de l'avancement :

Très prometteur, tout ça!

Je suppose que tu as fait une fonction spéciale pour réencoder l'image? c'est surtout ce bout de code qui m'intéresse, car je si sais générer un fichier bitmap avec les fonctions de bases de visualstudio, il faut encore le redimensionner et le convertir en hexa NB simple...

De mon côté, j'ai rempli l'EEPROM de mon pauvre atmega168 de 55 patterns de caractères persos (soit 440 octets sur les 512 dispos...), ainsi que 34 caractères simples (des lignes) qui sont générés à la volée par du code. Le transfert des 81 caractères (648 octets en tout, soit près de 2800 commandes) dans la CG-RAM du LCD est presque invisible au setup (il faut encore que je mesure le temps que ça prend).

Je suis de près ton avancée! bon courage!

Très prometteur, tout ça!

Je suppose que tu as fait une fonction spéciale pour réencoder l'image? c'est surtout ce bout de code qui m'intéresse, car je si sais générer un fichier bitmap avec les fonctions de bases de visualstudio, il faut encore le redimensionner et le convertir en hexa NB simple...

De mon côté, j'ai rempli l'EEPROM de mon pauvre atmega168 de 55 patterns de caractères persos (soit 440 octets sur les 512 dispos...), ainsi que 34 caractères simples (des lignes) qui sont générés à la volée par du code. Le transfert des 81 caractères (648 octets en tout, soit près de 2800 commandes) dans la CG-RAM du LCD est presque invisible au setup (il faut encore que je mesure le temps que ça prend).

Je suis de près ton avancée! bon courage!

Merci, et oui j'ai fais une chtite fonction de conversion mais c'est tres simple suffit de chopper 8 pixel de le convertir en un nombre binaire et de le convertir en hexa.

sinon Graphene 1.0 est sortie !

Hello les fondu du code :slight_smile:

D'abord , bravo pour le dev , je vais tester cela dans 5 minutes mais la j'ai bloqué sur la photo de Super_sinci, car je souhaite faire a peut pres la meme chose , et comme j'entend parler ( ou voir plutot :slight_smile: ) de superposition entre texte et graphique , te serait il possible de me donner un petit cour la dessus ??
En effet je tourne un peut en rond depuis plus d'une semaine sur le "Comment proceder pour mon projet" , ce n'est pas tres compliqué , c'est pour realiser un tableau de bord pour mon 125TDR , car il va etre totalement transformé en "Street-Bike" je vous passe les details la dessus car ici c'est pour l'electronique et pas la mecanique :slight_smile:

Mon But etant de reunir tout un tas d'info sur la moto , soit sur une page sur un LCD 128x64 ( http://fr.hobbytronics.co.uk/lcd/st7565-128x64-graphics-lcd-rgb ), soit acceder a plusieurs pages ( quand j'aurais appris a sortir du code qui tient la route :slight_smile: ).
Pour le moment je me forme a l'utilisation d'un LCD que j'ai demonté d'un Nokia 3410 ,et qui tourne plutot bien : ( SANY0125.JPG & SANY0126.JPG ).
L'ideal serait d'arriver a un resultat comme sur l'image ideal-dash.png , les seuls elements dynamique seront la temperature Huile moteur , Compteur Vitesse , heure , et compte tours moteur . ( l'image est au format 102x72 pour le Nokia mais j'adapterais pour s'afficher sur le 128x64 )

Voila pour l'idee , je ne demande pas a ce que l'on me fasse tout cela "tout cru" , je demande juste comment donc afficher le fond du compteur et par dessus comment faire pour dessiner dynamiquement ( d'apres les valeurs vitesse, rmp et temp ), les données .
Comme ce sont des petites lignes qui vont s'afficher dans les jauges , je ne sais absolument pas comment m'y prendre ... PAreil pour les Chiffres du compteur vitesse ( je modifierais une police ou en creerais une nouvelle specialement pour ca )

Quelqun aurait il un petit exemple de jauge dynamique qui fait animer un graphique , que j'apprene la methode ? genre vu-metre ou autre ?

En vous remerciant pour votre travail , et votre future reponse .
cdt Laurent .

SANY0126[1].JPG

ideal-dash.png

Salut, je viens de télécharger Graphen est il est super, bon boulot :slight_smile:
Mais sur la version installateur Win32 il y a un bug quand on clique sur voir en hexadécimal (d’ailleurs tu as fais une faute, tu as écrit "Void" au lieu de "Voir" :P), le programme plante. Il n'y a pas ce bug sur la version zip.

Salut,
Apres une longue année d'absence (terminal oblige :P) j'ai commencer la réecriture du logiciel (et du peut de fonction actuelle) pour y ajouter :

  • Le dessin avec des formes (a la paint ;))
  • Un historique des modification (Ctr-z quoi ^^)
  • Le support des écran couleur
  • L'import d'image web
  • Le support des caractères personnalisés (déjà possible, création de la police avec un logiciel adapter puis conversion en bdf)
  • ... si vous avez des idées ne vous gênez pas

(d’ailleurs tu as fais une faute, tu as écrit "Void" au lieu de "Voir" smiley-razz)

Haha petite érreur d'inatention :stuck_out_tongue: