7

lundi 18 mars 2019

Heltec e-ink 1.54" avec Arduino UNO

La base pour utiliser cette écran e-ink

EDIT: Vous allez rire, j'ai passe deux jours a chercher de la doc pour cette écran. Puis en rédigeant cette article j'ai remarque qu'elle était disponible sur le site du constructeur ... et est du re rédiger cette article, et retirer pleinnnnnn d'indications ... C'est du boulot d’être con.

Heltec 1.54" e-ink

 Il était une fois, un petit malin. Il pensait que l’écran e-ink le moins chère et le moins connu de son site chinois était le meilleur choix ... Vous savez quoi ? Il avait tort.

Heureusement parmi les commentaire du produit, une personne a eu la bonne idée de citer la lib qu'il utilisait (merci a lui ...). Il indique aussi que la lib officiel ne fonctionne pas bien (sans blague).

La lib compatible est 🎊 EPD Waveshare 1.54 🎉, en plus elle est disponible dans le l'ib manager de l'IDE Arduino

Lien officiel du produit
Lien officiel de la documentation + sources

Infos du produit compatible de chez waveshare (Probablement la même base):

Time for action !

Un Arduino UNO classique, avec ses broches.

Le constructeur du notre écran, bien qu'un peut a cran (a non ça c'est moi) ... fournis la liste des pin. C'est sympa ça. Attention les épines, ça pique, alors faut pas ce tromper.

SDI = MOSI = D11; CLK = SCK = D13
VCC a connecter sur 3.3v et GND ... ba sur GND !
La lib de Waveshare, donne l'utilisation des pin reset et busy, mais elle ne sont pas dispo sur notre écran et totalement optionnel.

Le code d'exemple est relativement parlant, il n'y a donc rien a ajouter sur ce point. Si vous avez besoin de la liste des fonctions, ne regardez pas dans le .h, les commentaires étant dans le .cpp ...

Bon a savoir !

Il y a deux zones mémoires. Par ex, pour afficher une image de fond et un text, il faut charger les deux zones avec 'setFrameMemory' puis les afficher 'displayFrame'.

Pour afficher plusieurs zones, il faut définir une zone a éditer avec 'setWidth et setHeight', puis 'clear' cette zone avant d'y écrire.

Il n'est pas possible d'utiliser de larges zones a éditer, l'atmega de notre arduino n'a que 2048Bytes de ram, 1Byte = 8pixel. il y a 40k pixel sur cette écran, sélectionner tout l’écran prendrait 5000Bytes.

Il y a un bon exemple d'utilisation d'image dans la lib de chez waveshare, il faut juste garder en tête que l'image est en N&B et exprime en hexa. Vous pouvez utiliser cette outil en ligne au besoin.

Touts call a 'displayFrame', devrait, semble t il, etre précédé d'une attente de 300ms



éa, les amis.

PS: Dans cette article, il y a probablement pleins d’imprécisions et d'erreur, du fait que je découvre tout juste la techno. N’hésitez pas a corriger ;)

Aucun commentaire:

Enregistrer un commentaire