Forum: Compiler & IDEs Arduino-Library auf GitHub: Keine Dokumentation?


von Christian M. (Gast)


Lesenswert?

Ich quäle mich momentan ab mit den ePapers von Waveshare ab. Arduino ist 
ein Nano. Dabei versuche ich die GxEPD-Library von Zinng zu verwenden: 
https://github.com/ZinggJM/GxEPD
Ist es üblich, dass man sich da durch die ganzen .h und .cpp Dateien 
wühlen muss, um die ganzen Methoden zusammenzusuchen? Oder bin ich zu 
blöd, die Doku auf GitHub zu finden? Kennt jemand die Library konkret?
Danke und Gruss Chregu

von Michael U. (amiga)


Lesenswert?

Hallo,

naja, das hängt letztlich von Lust und Zeit des/der Programmierer ab.
Ich kenne beides. Nur eine Lib oder auch mit ausführlichen 
Funktionsbeschreibungen.
Bei der GxEPD sehe ich das nichtmal als Problem an.
Examples sind dabei, um den Kram überhaupt erstmal in Gang zu bekommen 
und ansonsten ost es ja erstmal nur die GxEPD.h, um zu schauen, für 
welche Funktionen er vielleicht kein Beispiel dabei hat. Sind bei ePaper 
ja naturgemäß nur relativ wenige. Mehr beschäftigt hat mich da, 
heruszufinden, was ein konkretes ePaper wirklich kann, speziell 
partialRefresh wird oft nur am Rande erwähnt.
Ich habe aber nur wenig damit rumgespielt und meist an einem ESP8266, 
sind mir ansonsten zu teuer und mir fehlt eine konkrete Anwendung.
Auf einem s/w 2,9" läuft eine Uhr mit Sekunden und der GxEPD, da springt 
er manchmal dann eben 2s. Geht zwar Dank partialRefresh ohne Flackern, 
aber der Display-Refresh dauert eben ein klein wenig länger als 1s...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Christian M. (Gast)


Lesenswert?

Danke Michael!
Ungefähr die gleichen Probleme habe ich auch. Die Beispiele laufen auch. 
Aber zum Beispiel drawExampleBitmap scheint überladen zu sein, einmal 
mit Bitmap und Size, und einmal mit Bitmap, Position und Grösse.
Aber weder damit noch mit drawBitmap (auch überladen) habe ich es 
geschafft, ein Bitmap neben dem momentanen Screeninhalt ein Bitmap dazu 
anzuzeigen.

Michael U. schrieb:
> erstmal nur die GxEPD.h

Danke für den Tip!

Gruss Chregu

von Noch einer (Gast)


Lesenswert?

Moin in die Runde,
ich habe auch meine Probleme mit dieser Library...
Bei mir spielt es auf einem NodeMCU ESP-32s und dem 2.9 ePaper mit 3 
Farben praktisch nicht. Gerade mit dem partialRefresh habe ich 
Schwierigkeiten.

Die Beispiele laufen natürlich, aber mehr auch nicht.

Kennt jemand eine bessere Lösung?

von Christian M. (Gast)


Lesenswert?

Ich bin jetzt einen Schritt weiter. Ich kann mit:
1
display.drawBitmap(grund, 127-56, 0, 56, 296, GxEPD_WHITE);
2
display.drawBitmap(pfeil, 127-56, r, 56, 17, GxEPD_WHITE);
3
display.updateWindow(127-56, r-1, 56, 19);

zwei Bitmaps zusammensetzen und (eingeschränkt) an eine Stelle im 
Display setzen. Probleme sind momentan:
-nach ein paar Pixel sieht man nichts mehr (64?)
-schwarze Balken und andere Artefakte bei jedem zweiten Durchgang 
sichtbar, neben dem aktualisierten Bereich
-Aktualisierung braucht >1s, warscheinlich normal bei einem grossen 
Bereich

Ich pröble mal weiter...

Gruss Chregu

von Michael U. (amiga)


Lesenswert?

Hallo,

Noch einer schrieb:
> Moin in die Runde,
> ich habe auch meine Probleme mit dieser Library...
> Bei mir spielt es auf einem NodeMCU ESP-32s und dem 2.9 ePaper mit 3
> Farben praktisch nicht. Gerade mit dem partialRefresh habe ich
> Schwierigkeiten.

Die mir bekannten 2.9 ePaper mit 3 Farben können keinen partialRefresh.
Vermutlich, weil der dazu genutzte 2. Buffer für die 3. Farbe genutzt 
wird.
Ich habe nicht alle durchgeschaut, scheint aber bei den WaveShare 
Displays generell so zu sein.

Gruß aus Berlin
Michael

von Christian M. (Gast)


Lesenswert?

Bei der Hardware sehe ich nun so langsam durch. Siehe auch 
Beitrag "Suche Infos zu elektronischem Papier"

Michael U. schrieb:
> Die mir bekannten 2.9 ePaper mit 3 Farben können keinen partialRefresh.
> Vermutlich, weil der dazu genutzte 2. Buffer für die 3. Farbe genutzt
> wird.

Scheint bei Allen so zu sein.

Gruss Chregu

von Christian M. (Gast)


Angehängte Dateien:

Lesenswert?

Habe nun ein Programm auf's Nötigste heruntergebrochen, siehe Anhang.
Dasselbe habe ich aufgrund komischer Artefakte auch auf einem Mega 2560 
ausprobiert - mit genau den gleichen Effekten.

Die Probleme sind folgende (im Source dokumentiert):
- bei jedem zweiten Durchgang verschwinden die halben Striche der Skala, 
danach kommen sie wieder
- der Pfeil wandert runter, aber ab ca. 70 Pixel wird er unsichtbar

Man kann nur alles aus den Exemples ausprobieren...

Gruss Chregu

von Christian M. (Gast)


Angehängte Dateien:

Lesenswert?

Habe jetzt ein andere Library ausprobiert, die Waveshare-Hauseigene:
https://github.com/waveshare/e-Paper
Fazit: Viel einfacher, viel kleiner, funktioniert auf Anhieb.
Mein Projekt konnte ich jetzt in kürzester Zeit fertigstellen, eine 
funktionsfähige Version ist im Anhang. Es muss keine Lib mehr 
heruntergeladen werden! Alle Incs im ZIP!
Interessante Info im Source der Beispiele:
1
 /** 
2
   *  there are 2 memory areas embedded in the e-paper display
3
   *  and once the display is refreshed, the memory area will be auto-toggled,
4
   *  i.e. the next action of SetFrameMemory will set the other memory area
5
   *  therefore you have to clear the frame memory twice.
6
   */
Hat mir geholfen das ePaper besser zu verstehen und die Software 
entsprechend zu gestalten.

Gruss Chregu

von leo (Gast)


Lesenswert?

Christian M. schrieb:
> Angehängte Dateien:
>
>
>
>           epd2in9.zip (40,4 KB, 0 Downloads)
1
// #include Bitmaps
2
const unsigned char bild[4736] PROGMEM =
3
#include "Spannung_5.h"
Danke, aber obiges ist (trotz Kommentar) sehr poese.
Explizite Laenge von "bild", im .h-File geht's dann weiter, usw...

leo

von Christian M. (Gast)


Lesenswert?

leo schrieb:
> obiges ist [...] sehr poese

Ja, ich weiss! Ich muss zu meiner Verteidigung sagen, dass ich mich mit 
dem ganzen C/C++ Geraffel nicht gut auskenne. Bin schon froh, wenn es 
läuft.
Die Umwandlung von BMP nach C habe ich mit "BitmapToByteArrayConverter" 
gemacht, da fehlt dann halt einfach die Deklaration.

Gruss Chregu

von leo (Gast)


Lesenswert?

Christian M. schrieb:
>> obiges ist [...] sehr poese
>
> Ja, ich weiss!

Gib zumindest die Deklaration der Variable zum Rest. Wo das herkommt 
kannst du auch im Code kommentieren.

leo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.