Pages: [1] 2   Go Down
Author Topic: BitmapU8GlibCreator  (Read 6380 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 : http://www.mediafire.com/?1is5rvr0x6ccsga
Windows 32 bit Portable : http://www.mediafire.com/?qef8soldfck9htf
Windows 64 bit Installer : http://www.mediafire.com/?cvkhxsdhy0ipc33
Windows 64 bit Portable : http://www.mediafire.com/?7pjfrk7vu73272x

Linux 64 bit : http://www.mediafire.com/?01bdpsylb9f1wv1
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:
   - (ce n'est oas vraiment un bug) sous ubuntu avec le thème par défaut le menu aura une couleur proche du texte ce qui peut gêner la visibilité pour une solution : <lien url="http://www.siteduzero.com/forum-83-801171-7686248-qmenu-personalisee.html">http://www.siteduzero.com/forum-83-801171-7686248-qmenu-personalisee.html</lien>

Voila merci de rapporter bug et suggestion.

Post anglais : http://arduino.cc/forum/index.php/topic,114815.msg864055.html#msg864055
« Last Edit: September 04, 2012, 02:25:20 pm by mr-pantalon » Logged

Dans l'Espace
Offline Offline
Sr. Member
****
Karma: 1
Posts: 294
ArduinoBot builder \^^/
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-eek bien joué !!  smiley-lol
Logged

Proverbe Tibétain : Un mensonge est un saut du haut du toit

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci smiley
Logged

Near Paris in France
Offline Offline
Full Member
***
Karma: 0
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

JLB
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est prévue !
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Sr. Member
****
Karma: 3
Posts: 361
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Génial comme programme, trés pratique, merci smiley-wink

Du coup j'ai fait un petit article dessus pour présenter ton travail :
http://skyduino.wordpress.com/2012/08/11/arduino-u8glibcreator-le-dessin-sur-glcd-sans-prise-de-tete/

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 smiley-razz
- Tu utilise un format de fichier maison (.mrb ?) non documenté -> pas top, reste sur du vrai bitmap ce serais beaucoup mieux smiley-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 smiley-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 / smiley-cool 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 smiley-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
- ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-confuse et le fait que j'ai un projet d'ide qui utilisera cmake et qui s'affranchira des sketch ).
« Last Edit: August 28, 2012, 04:55:29 am by mr-pantalon » Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1392
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :

Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1392
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 !
Logged

Pages: [1] 2   Go Up
Jump to: