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
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
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
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?
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
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
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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.