mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian M. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich bin jetzt einen Schritt weiter. Ich kann mit:
display.drawBitmap(grund, 127-56, 0, 56, 296, GxEPD_WHITE);
display.drawBitmap(pfeil, 127-56, r, 56, 17, GxEPD_WHITE);
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)


Bewertung
0 lesenswert
nicht 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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Bewertung
0 lesenswert
nicht 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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht 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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
 /** 
   *  there are 2 memory areas embedded in the e-paper display
   *  and once the display is refreshed, the memory area will be auto-toggled,
   *  i.e. the next action of SetFrameMemory will set the other memory area
   *  therefore you have to clear the frame memory twice.
   */
Hat mir geholfen das ePaper besser zu verstehen und die Software 
entsprechend zu gestalten.

Gruss Chregu

von leo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Christian M. schrieb:
> Angehängte Dateien:
>
>
>
>           epd2in9.zip (40,4 KB, 0 Downloads)
// #include Bitmaps
const unsigned char bild[4736] PROGMEM =
#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. (Firma: magnetmotor.ch) (chregu) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.