BACHELORARBEIT - Publication Server of ...

Die Seite wird erstellt Daniel Baur
 
WEITER LESEN
BACHELORARBEIT - Publication Server of ...
BACHELORARBEIT

                                                ➢ <
                                        Herr

                               Xuanwei Wei

Konzeption und Entwicklung einer Anwendung
zur Grafikübertragung auf das E-Paper Display
                        der Firma Waveshare

                            Mittweida, 2020
BACHELORARBEIT - Publication Server of ...
BACHELORARBEIT - Publication Server of ...
Fakultät Elektro- und Informationstechnik

                          BACHELORARBEIT

   Konzeption und Entwicklung einer
Anwendung zur Grafikübertragung auf
 das E-Paper Display der Firma Wave-
                               share

                                        Autor:
                                          Herr

                                 Xuanwei Wei

                                 Studiengang:
             Elektro -und Informationstechnik

                              Seminargruppe:
                                  EI16wA2-BC

                                   Erstprüfer:
                   Prof. Dr. -Ing. Michael Kuhl

                                  Zweitprüfer:
                          B. Sc. Kevin Blümel

                                 Einreichung:
                         Mittweida, 16.07.2020

                     Verteidigung/Bewertung:
                               Mittweida,2020
BACHELORARBEIT - Publication Server of ...
Faculty Electro-and Information Technology

                                BACHELOR THESIS

  Conception and development of an
application to transfer graphics to the
      E-Paper Display of the company
                            Waveshare

                                             author:
                                                  Mr

                                       Xuanwei Wei

                                  course of studies:
                Elektro-and Information Technology

                                     seminar group:
                                        EI16wA2-BC

                                     first examiner:
                         Prof. Dr. -Ing. Michael Kuhl

                                  second examiner:
                                B. Sc. Kevin Blümel

                                        submission:
                              Mittweida, 16.07.2020

                               defence/ evaluation:
                                     Mittweida,2020
BACHELORARBEIT - Publication Server of ...
Bibliografische Beschreibung:

Xuanwei Wei:
Konzeption und Entwicklung einer Anwendung zur Grafikübertragung auf
das E-Paper Display der Firma Waveshare.
Die Bachelorarbeit wurde im Wesentlichen während der Lock-Down-Zeit
der COVID19-Pandemie erstellt. Die Hochschule war in der Zeit geschlos-
sen bzw. es war nur ein sehr begrenzter Zugang möglich. Praktische Auf-
bauten und Experimente konnten damit nur in sehr eingeschränkter, häus-
li-cher Umgebung mit minimalen Mitteln durchgeführt werden.
Dies ist bei der Bewertung der Arbeit zu berücksichtigen.
gezeichnet: Prof. Dr.-Ing. Michael Kuhl

Mittweida, Hochschule Mittweida, Fakultät Elektro -und Informationstech-
nik,
Bachelorarbeit, 2020

Referat:

In diesem Projekt geht es hauptsächlich um eine Anwendung zur Grafik-
über-tragung auf das E-Paper Dis-play der Firma Waveshare.
Die vom Autor erstellte Software ermöglicht die Verarbeitung des Bildes,
und dann werden die Bilddaten über die serielle Schnittstelle an die Hard-
ware übertragen, die das elektronische Papier zur Aktualisierung des Bild-
schirms steuert, um das Bild zu erhalten.
BACHELORARBEIT - Publication Server of ...
BACHELORARBEIT - Publication Server of ...
Inhalt                                                                                                                               I

Inhalt

Inhalt        I

Abbildungsverzeichnis ................................................................................................ III

Tabellenverzeichnis ..................................................................................................... VI

Abkürzungsverzeichnis .............................................................................................. VII

1             Einleitung ....................................................................................................... 1

2             Projektaufgabenstellung ............................................................................... 3

3             These.............................................................................................................. 4

4             Stand der Technik ......................................................................................... 5

4.1           Einführung von Bildern .................................................................................... 5
4.1.1         Begriff.............................................................................................................. 5
4.1.2         Pixel ................................................................................................................ 6
4.1.3         DPI .................................................................................................................. 6
4.1.4         Farbmodus ...................................................................................................... 7
4.1.5         Grafikformate .................................................................................................. 9
4.1.6         Unterschied ................................................................................................... 10

4.2           Bildalgorithmus .............................................................................................. 12
4.2.1         Einführung ..................................................................................................... 12
4.2.2         Hauptalgorithmen .......................................................................................... 12

5             Umsetzung ................................................................................................... 17

5.1           Gesamtkonzept ............................................................................................. 17

5.2           Software ........................................................................................................ 18
5.2.1         Integrated Development Environment ........................................................... 18
5.2.2         GUI................................................................................................................ 19
5.2.3         Opencv.......................................................................................................... 19
5.2.4         Ablaufdiagramm der Software ....................................................................... 20
BACHELORARBEIT - Publication Server of ...
II                                                                                                                         Inhalt

5.3           Hardware ...................................................................................................... 27
5.3.1         Mega2560 ..................................................................................................... 27
5.3.2         E-Paper Display ............................................................................................ 28

6             Inbetriebnahme ........................................................................................... 34

6.1           Debugging der seriellen Schnittstelle ............................................................ 34

6.2           Debugging der statischen Übertragung ........................................................ 36

6.3           Debugging der dynamischen Übertragung ................................................... 37

7             Versuchsdurchführung .............................................................................. 38

7.1           Versuchsaufbau ............................................................................................ 38

7.2           Versuchsdurchführung .................................................................................. 39
7.2.1         Die erste Phase (ohne serielle Schnittstelle) ................................................. 39
7.2.2         Die zweite Phase (mit serieller Schnittstelle) ................................................. 43
7.2.3         Schwarz-weiß Bild ........................................................................................ 45
7.2.4         Schwarz-Weiß-Rot Bild ................................................................................. 47

7.3           Auswertung ................................................................................................... 48
7.3.1         Auswertung für die erste Phase (ohne serielle Schnittstelle) ......................... 48
7.3.2         Auswertung für die zweite Phase (mit serieller Schnittstelle) ......................... 49

8             Schlussfolgerung und Ausblick................................................................. 51

8.1           Schlussfolgerung .......................................................................................... 51

8.2           Ausblick ........................................................................................................ 52

Literaturverzeichnis .................................................................................................... 53

Anlage Teil 1:Aufgabenstellung .............................................................................. 56

Anlage Teil 2: Konfiguration der Umgebung............................................................. 57

Anlage Teil 3: wichtige Code in Visual Studio.......................................................... 59

Selbstständigkeitserklärung ...................................................................................... 63
BACHELORARBEIT - Publication Server of ...
Abbildungsverzeichnis                                                                                                         III

Abbildungsverzeichnis

Abbildung 1 Lena Söderberg Dieses Foto von ihr ist im Bereich der digitalen
Bildverarbeitung weit verbreitet. [1] ................................................................................... 5

Abbildung 2 Pixel [3].......................................................................................................... 6

Abbildung 3 Vergleich von ppi (links) und DPI (rechts) [4] ................................................. 7

Abbildung 4 CMYK [7] ....................................................................................................... 8

Abbildung 5 PNG [9].......................................................................................................... 9

Abbildung 6 JPG [9] .......................................................................................................... 9

Abbildung 7 Bitmap [10] .................................................................................................. 10

Abbildung 8 (a) Originalvektorgrafiken, (b) 8-fach vergrößerte Vektorgrafiken, (c) 8-fach
vergrößerte Bitmaps [11] ................................................................................................. 11

Abbildung 9 Das durchschnittliche Dithering [14]............................................................. 13

Abbildung 10 Random Dithering [14] ............................................................................... 13

Abbildung 11 8×8 Bayer-Dithering -Muster [14] ............................................................... 14

Abbildung 12 Rekursionsformel1 ..................................................................................... 14

Abbildung 13 Rekursionsformel2 ..................................................................................... 14

Abbildung 14 Ergebnis .................................................................................................... 15

Abbildung 15 Ein 1-Bit-Bild der David-Statue, gedithert mit dem Floyd-Steinberg-
Algorithmus [16] .............................................................................................................. 15

Abbildung 16 Fehlerdiffusion .......................................................................................... 15

Abbildung 17 Verbindung zwischen Hardware und Software........................................... 17

Abbildung 18 Visual Studio [18] ....................................................................................... 18
BACHELORARBEIT - Publication Server of ...
IV                                                                                             Abbildungsverzeichnis

Abbildung 19 Qt Designer ............................................................................................... 19

Abbildung 20 Opencv [19] ............................................................................................... 19

Abbildung 21 Meine Haupt-GUI ...................................................................................... 20

Abbildung 22 Schritt 1 ..................................................................................................... 20

Abbildung 23 Schritt 2 ..................................................................................................... 21

Abbildung 24 Schritt 3 ..................................................................................................... 22

Abbildung 25 Schritt 4 ..................................................................................................... 23

Abbildung 26 Schritt 5 ..................................................................................................... 24

Abbildung 27 Schritt 6 ..................................................................................................... 25

Abbildung 28 allgemeine Ablaufdiagramm ...................................................................... 26

Abbildung 29 Funduino 2560 [20] ................................................................................... 27

Abbildung 30 E-Paper Display [21] ................................................................................. 28

Abbildung 31 serielle Schnittstelle öffnen ........................................................................ 34

Abbildung 32 Test bei LCD1602 ..................................................................................... 35

Abbildung 33 U Test bei LCD1602 .................................................................................. 36

Abbildung 34 statischen Übertragung ............................................................................. 36

Abbildung 35 Bild in Viertelgröße .................................................................................... 37

Abbildung 36 Aufbau für GUI .......................................................................................... 38

Abbildung 37 Mein Vaterfenster (Hauptfenster) .............................................................. 39

Abbildung 38 Mein Kindfenster (Nebenfenster) ............................................................... 39

Abbildung 39 Ein Bild Von der Katze auswählen ............................................................. 40

Abbildung 40 Auswahl der drei Farbe ............................................................................. 40

Abbildung 41 das gemischte Bild bekommen .................................................................. 41
Abbildungsverzeichnis                                                                                                      V

Abbildung 42 das gedithered Bild bekommen.................................................................. 41

Abbildung 43 Dithering 1 ................................................................................................. 42

Abbildung 44 Dithering 2 ................................................................................................. 42

Abbildung 45 Taste mit Hardware ................................................................................... 43

Abbildung 46 U Test bei E-Display (1 Zeile) .................................................................... 43

Abbildung 47 U Test bei E-Display (10 Zeile) .................................................................. 44

Abbildung 48 U Test bei E-Display (alle Zeile)................................................................. 44

Abbildung 49 Halb Bild .................................................................................................... 45

Abbildung 50 normales schwarz-weiß Bild 1 ................................................................... 46

Abbildung 51 normales schwarz-weiß Bild 2 ................................................................... 46

Abbildung 52 Schwarz-Weiß-Rot Bild mit Fehler ............................................................. 47

Abbildung 53 Schwarz-Weiß-Rot Bild ohne Fehler .......................................................... 47
VI                                                                                  Tabellenverzeichnis

Tabellenverzeichnis

Tabelle 1: Die Beziehung zwischen Pixeln und Bits ........................................................ 29

Tabelle 2: Die Beziehung zwischen Pixeln und Bytes ..................................................... 29

Tabelle 3: Die Beziehung zwischen Pixeln und Bits (Schwarzweißverarbeitung) ............ 30

Tabelle 4:Die Beziehung zwischen Pixeln und Bytes (Schwarzweißverarbeitung) .......... 31

Tabelle 5: Die Beziehung zwischen Pixeln und Bits (Dreifarbenverarbeitung) ................. 32

Tabelle 6: Die Beziehung zwischen Pixeln und Bytes (Dreifarbenverarbeitung) .............. 33
Abkürzungsverzeichnis                                       VII

Abkürzungsverzeichnis

OpenCV——Open Source Computer Vision Library

IDE——Integrated Development Environment

DPI——Dots per Inch

CMYK——cyan, magenta, yellow, key (black)

E-Display—— elektronisches Display

VS——Visual Studio

GUI—— graphical user interface

ASCII——American Standard Code for Information Interchange
Einleitung                                                                                  1

1 Einleitung

Bildverarbeitung ist die Technik, Bilder zu analysieren, zu verarbeiten und zu manipulie-
ren, damit sie visuellen, psychologischen oder anderen Anforderungen entsprechen. Bild-
verarbeitung ist eine Anwendung der Signalverarbeitung auf den Bereich der Bildgebung.
Die meisten Bilder werden heute in digitaler Form gespeichert und daher bezieht sich die
Bildverarbeitung in vielen Fällen auf die digitale Bildverarbeitung.

Noch vor einigen Jahrzehnten wurde der Großteil der Bildverarbeitung von optischen Ge-
räten im analogen Modus durchgeführt. Aufgrund der dramatischen Zunahme der Ge-
schwindigkeit der Computerentwicklung werden diese Techniken jedoch rasch durch digi-
tale Bildverarbeitungsmethoden ersetzt. Im Allgemeinen sind digitale Bildverarbeitungs-
techniken universeller, zuverlässiger und genauer. Sie sind auch einfacher zu implemen-
tieren als analoge Methoden. Für die digitale Bildverarbeitung wird dedizierte Hardware
eingesetzt, und Computerarchitekturen beispielsweise haben in dieser Hinsicht großen
Erfolg. Heute sind Hardwarelösungen in Video- und Bildverarbeitungssystemen weit ver-
breitet. Kommerziell erhältliche Bildverarbeitungsaufgaben werden jedoch immer noch
weitgehend in Softwareform implementiert und laufen auf universell einsetzbaren Perso-
nal Computern.

Bekannte Bildbearbeitungsprogramme auf dem PC sind "Adobe Photoshop", "GIMP",
"OpenCV" und so weiter. Diese Softwareprogramme ermöglichen Ihnen fortgeschrittene
Bildverarbeitung wie "geometrische Transformationen", "Farbverarbeitung", "Bildüber-
blendung", "digitales Wasserzeichen auf Bildern". Die konvertierten Bilder werden schließ-
lich über die serielle Schnittstelle auf die Hardware hochgeladen.

Um ein Programm zur Verarbeitung und Verwendung von Bildern selbst zu entwerfen,
benötigen Sie notwendigerweise ein Werkzeug als Träger.

Das GUI erscheint. Eine grafische Benutzeroberfläche ist eine computergesteuerte Be-
nutzeroberfläche, die grafisch dargestellt wird. Die weit verbreitete Verwendung der GUI
ist eine der größten Errungenschaften in der Entwicklung der heutigen Computer, da sie
die Verwendung von nicht spezialisierten Benutzern erheblich erleichtert, die sich nicht
mehr eine große Anzahl von Befehlen merken müssen, sondern sie einfach über Fenster,
Menüs und Schaltflächen bedienen können.
Projektaufgabenstellung                                                                3

2 Projektaufgabenstellung

Ziel der meine Arbeit ist die Entwicklung einer Anwendung mit einem virtuellem Bedienin-
terface, Wenn man ein Bild in das Programm einfügen, kann das Bild in ein geeignetes
Format konvertiert und schließlich übertragen werden.

Auswahl einer JPEG Datei im Explorer Auswahlfenster, Konvertierung der Bildgröße pas-
send für das E-Display, Konvertierung in ein 3-Farben (auswählbar)Tiefenbild mithilfe des
Dithering“Floyed Steinberg”Algorithmus, Konvertierung der entstanden Bilddatei in ein zur
Übertragung an das E-Display passendes Format, serielle Kommunikation zur Übertra-
gung der fertig-konvertierten Datei an den Arduino, welcher das E-Paper Display steuert.

Teilaufgaben der Bachelorarbeit:

•   Begriffsbestimmung und Definition (Glossar, Schlüsselworte)
•   Einarbeiten in die Thematik Konvertierung einer Bilddatei in andere Formate
•   Verstehen von Bildkonzepten mit Dithering und Dreifarbenplatte
•   Einarbeiten in die serielle Kommunikation über USB
•   Ausarbeitung eines Programm-Ablaufplanes
•   Konzeption des Algorithmus mithilfe von Visual Studio
•   Implementierung und Inbetriebnahme der programmierten Bedienoberfläche
•   Bewertung, Darstellung und Dokumentation der Entwicklungsergebnisse
4                                                                                   These

3 These

Wenn man eine Computersoftware erstellt, muss man zuerst eine geeignete integrierte
Umgebung auswählen, um sie zu entwickeln. Die Wahl ist Visual Studio 2019 und Qt.

Der Betrieb und der Zweck dieser Software hängen mit der Bildverarbeitung zusammen,
da ich mich auch für eine Bibliotheksfunktion entschieden habe, die auf die Bildverarbei-
tung spezialisiert ist, OpenCV.

Der letzte Schritt ist die Datenübernahme. Die Programmierung des Slave-Computers
wurde in einer weiteren Bachelorarbeit durchgeführt [Konzeption und Entwicklung einer
Ansteuerung für ein 7.5inch E-Paper Display der Firma Waveshare mithilfe eines Mikro-
controllers]und durch „[Konzeption und Entwicklung einer Ansteuerung für ein 7.5inch E-
Paper Display der Firma Waveshare mithilfe eines Mikrocontrollers]“ wird auf die Quelle,
also die Arbeit von Huang, verwiesen. Herr Huang ist für die Programmierung des Sla-
vecomputers zuständig, und ich bin für die Programmierung des Mastercomputers ver-
antwortlich.

Schließlich arbeitetet man gemeinsam an der Übertragung über die serielle Schnittstelle,
um den Datentransfer erfolgreich abzuschließen.
Stand der Technik                                                                        5

4 Stand der Technik

4.1 Einführung von Bildern

4.1.1 Begriff

Das Bild ist die physische Reproduktion der menschlichen visuellen Wahrnehmung. Bilder
können mit optischen Geräten wie Kameras, Spiegeln, Teleskopen und Mikroskopen auf-
genommen und auch manuell erstellt werden, z. B. mit handgemalten Gemälden.

Bilder können auf Papiermedien, Filmen und anderen Medien aufgezeichnet und gespei-
chert werden.

Mit der Entwicklung der digitalen Erfassungstechnologie und der Signalverarbeitungstheo-
rie werden immer mehr Bilder in digitaler Form gespeichert. Daher bezieht sich der Begriff
"Bild" in einigen Fällen tatsächlich auf ein digitales Bild.

 Abbildung 1 Lena Söderberg Dieses Foto von ihr ist im Bereich der digitalen Bildverarbei-
                                    tung weit verbreitet. [1]
6                                                                        Stand der Technik

4.1.2 Pixel

Jedes Bild besteht aus Farbpunkten, die sich auf eine minimale Einheit in einem Bild be-
ziehen, die durch eine Folge von Zahlen dargestellt wird, die als Pixel bezeichnet werden.
[2]

                                     Abbildung 2 Pixel [3]

Wie viele Bytes enthält ein Pixel?

Ein Byte besteht aus acht Bits. 1B = 8 Bit. Byte ist die Grundeinheit zum Speichern von
Informationen. Wie viel Platz ein Pixel einnimmt, hängt davon ab, welcher Modus verwen-
det wird. Im Graustufenmodus entspricht ein Pixel einem Byte. Im RGB-Modus entspricht
ein Pixel 3 Bytes.

4.1.3 DPI

Die Auflösung ist ein wichtiger Indikator für Computermonitore, Bild, Drucker, Scanner
und andere Geräte. Die Einheit ist dpi (Dots per Inch).

Je mehr Punkte pro Zoll des Bildschirms angezeigt werden, je mehr Punkte, desto höher
die Auflösung, desto klarer das Bild.

Berechnen wir, wie hoch die Auflösung des Computermonitors ist. Stellen Sie die Anzeige
auf 15 Zoll (bezogen auf die diagonale Länge) ein und zeigen Sie bis zu 1280 × 1024
Punkte an. Da das Seitenverhältnis 4: 3 beträgt, die Breite 12 Zoll und die Höhe 9 Zoll
beträgt, beträgt die horizontale Auflösung des Monitors 106 dpi und die vertikale Auflö-
sung 113,8 dpi.

Die Auflösung eines allgemeinen Laserdruckers beträgt 300 dpi × 300 dpi, 600 dpi × 600
dpi, 720 dpi × 720 dpi. Wenn wir also das Bild mit dem Laserdrucker drucken, ist es viel
klarer als das Computerdisplay.
Stand der Technik                                                                        7

                 Abbildung 3 Vergleich von ppi (links) und DPI (rechts) [4]

4.1.4 Farbmodus
4.1.4.1 RGB

                                   Abbildung 7 RGB [5]

Das RGB-Farbenmodell ist ein additives Farbmodell [6], bei dem roten, grünen und blau-
en Licht auf verschiedene Weise addiert wird, um eine breite Palette von Farben zu re-
produzieren. Der Name des Modells kommt von den Initialen der drei additiven Primärfar-
ben Rot, Grün und Blau.

Typische RGB-Eingabegeräte sind Farbfernseh- und Videokameras, Bildscanner und
Digitalkameras. Typische RGB-Ausgabegeräte sind Fernsehgeräte verschiedener Tech-
nologien (CRT, LCD, Plasma, OLED, Quantenpunkte usw.), Computer- und Handy-
Displays, Videoprojektoren, mehrfarbige LED-Displays und Großbildschirme wie Jumbo
Tron.
8                                                                      Stand der Technik

4.1.4.2 CMYK

                                    Abbildung 4 CMYK [7]

Farbdrucker hingegen sind keine RGB-Geräte, sondern subtraktive Farbgeräte (typi-
scherweise CMYK-Farbmodell).

Das CMYK-Farbmodell ist ein subtraktives Farbmodell, das die technische Grundlage für
den modernen Vierfarbdruck bildet. Die englischsprachige Abkürzung CMYK, die auch in
vielen nicht englischsprachigen Ländern verwendet wird, steht für die drei Farbbestandtei-
le Cyan, Magenta, Yellow und den Schwarzanteil, der traditionell als Key bezeichnet wird.
[8]

4.1.4.3 Andere Farb-modi

Bitmap-Modus

Der Bitmap-Modus verwendet zwei Farben (Schwarz und Weiß) zur Darstellung der Pixel
in einem Bild. Da im Bitmap-Modus nur Schwarz-Weiß zur Darstellung der Pixel in einem
Bild verwendet wird, gehen bei der Konvertierung eines Bildes in den Bitmap-Modus viele
Details verloren.

Graustufen-Modus

Der Graustufenmodus kann bis zu 256 Graustufenstufen zur Darstellung eines Bildes
verwenden. Der Graustufenmodus hat nur einen Graustufenkanal, und die Farbe eines
Pixels wird durch acht Bits dargestellt.
Stand der Technik                                                                            9

4.1.5 Grafikformate

Es gibt viele Formate für Bilder, aber im Allgemeinen können sie in zwei Typen unterteilt
werden: Bitmap- und Vektorgrafiken.

Unsere häufig verwendeten BMP-, JPG- und anderen Formate sind Punktmatrixgrafiken,
während Grafiken in SWF, CDR, AI und anderen Formaten Vektorgrafiken sind.

   •    Das Bilddateiformat .PNG

                                     Abbildung 5 PNG [9]

    Die Abkürzung PNG steht für Portable Network Graphik. Dateien im Bildformat .PNG sind
verhältnismäßig groß, da sie Abbildungen mit einer sehr hohen Auflösung anzeigen. Die PNG-
Datei ist ein Rasterbild, d.h. sie es setzt sich stückweise anhand spezifischer Daten zusam-
men, um das gesamte Bild zu generieren. Dieses Dateiformat ist verlustfrei komprimiert, d.h.
es behält seine ursprüngliche Bildqualität bei, wenn die Bildgröße geändert wird.
   •   Das Bilddateiformat .JPG

                                     Abbildung 6 JPG [9]

    Als nächstes betrachten wir die JPG-Bilddatei. Das Bildformat .JPG ist dem Dateityp PNG
ähnlich, da es ebenfalls große Bilder in kleinere Dateien komprimieren kann. Worin besteht
nun der Hauptunterschied bei der Verwendung von JPG anstelle von PNG? Im Gegensatz zu
PNG kommt es bei JPG-Bildern leider zu Qualitätsverlusten bei der Komprimierung. Das be-
zeichnet man auch als verlustbehaftete Komprimierung und ist ein verbreitetes Phänomen für
Bildformate.
10                                                                             Stand der Technik

4.1.6    Unterschied

1.Verlustfreie Kompression und Verlustbehaftete Kompression

     •   Verlustbehaftete Komprimierung. Beim Komprimieren der Dateigröße geht ein Teil der
         Bildinformationen verloren, die Bildqualität wird verringert, und dieser Verlust ist irre-
         versibel. Wir können nicht alle Bilder aus einem verlustbehafteten komprimierten Bild
         wiederherstellen. Bild. Eine übliche verlustbehaftete Komprimierungsmethode besteht
         darin, benachbarte Pixel gemäß einem bestimmten Algorithmus zusammenzuführen.
     •   Verlustfreie Kompression. Nur beim Komprimieren der Dateigröße kommt es zu kei-
         nem Verlust der Bildqualität. Wir können die Originalinformationen jederzeit aus dem
         verlustfreien komprimierten Bild wiederherstellen.

2. Bitmap und Vektorgrafik

•    Bitmap, auch als Pixel Maps bekannt. Die kleinste Einheit, aus der eine Bitmap besteht, ist
     ein Pixel. Die Bitmap ist nach Pixel angeordnet, um den Anzeigeeffekt zu erzielen. Jeder
     Pixel verfügt über eigene Farbinformationen. Beim Bearbeiten des Bitmap-Bilds kann es
     bearbeitet werden Das Objekt ist jeder Pixel. Wir können den Farbton, die Sättigung und
     die Helligkeit des Bildes ändern, wodurch sich der Anzeigeeffekt des Bildes ändert.

                                       Abbildung 7 Bitmap [10]

•    Vektorgrafiken zeichnen nicht die Informationen jedes Punkts auf dem Bildschirm auf,
     sondern einen Algorithmus, der die Form und Farbe von Elementen aufzeichnet. Wenn Sie
     einen Satz von Vektorgrafiken öffnen, führt die Software Operationen an den Funktionen
     aus, die dem Bild des Bildes entsprechen, und berechnet das Ergebnis der Operation [die
Stand der Technik                                                                           11

   Form der Grafik Und Farbe], um es dir zu zeigen. Unabhängig davon, ob der Bildschirm
   groß oder klein ist, bleibt der Algorithmus, der den Objekten auf dem Bildschirm entspricht,
   unverändert. Selbst wenn der Bildschirm um ein Vielfaches gezoomt wird, bleibt der An-
   zeigeeffekt jedoch gleich (keine Verzerrung).

Beispiele für Anzeigeeffekte von Vektorgrafiken: (a) Originalvektorgrafiken, (b) 8-fach ver-
größerte Vektorgrafiken, (c) 8-fach vergrößerte Bitmaps. Die Vergrößerungsqualität von
Bitmaps ist schlecht, aber Vektorgrafiken können unbegrenzt vergrößert werden, ohne die
Qualität zu beeinträchtigen.

Abbildung 8 (a) Originalvektorgrafiken, (b) 8-fach vergrößerte Vektorgrafiken, (c) 8-fach ver-
                                   größerte Bitmaps [11]
12                                                                      Stand der Technik

4.2 Bildalgorithmus

4.2.1 Einführung

Im Laufe der Geschichte der Computer haben wir oft Echtfarbenbilder mit je 8 Bit R, G
und B verwendet. Die R-, G- und B-Bilder wurden auf vielfältige Weise verwendet.

Wenn wir solche Bilder jedoch auf einem Bildschirm mit begrenztem Farbraum anzeigen
oder auf einem Drucker ausdrucken, wird ein gestochen scharfes Bild nach der Anzeige
durch die niedrige Auflösung verschwommen oder verzerrt.

Deshalb brauchen wir die Halbtontechnologie, die uns hilft, die Reproduktion realer Bilder
zu maximieren.

Die Halbtontechnik, bei der es sich um eine Variation der Gesamtintensität handelt, die
durch Veränderungen in der Größe oder Dichte von Farbpunkten verursacht wird, führt zu
mehr Kontrast und erreicht das Ziel, mehr Farbtöne mit weniger Farbsimulation auszudrü-
cken. [12]

4.2.2 Hauptalgorithmen

Mit der Entwicklung von Halbtonalgorithmen lassen sich die meisten der heutigen Algo-
rithmen in zwei Typen unterteilen: Algorithmen für reguläres Dithering, repräsentiert durch
Bayer-Dithering, und Algorithmen zur Fehlerstreuung, repräsentiert durch Floyd Stein-
berg.

Beide haben ihre Vor- und Nachteile, und der Algorithmus wird oft auf der Grundlage un-
terschiedlicher Anforderungen an die Bilddarstellung gewählt.

4.2.2.1 Das durchschnittliche Dithering

Das durchschnittliche Dithering ist ein grundlegender zweistufiger Algorithmus für Halb-
tonbilder.

Sie besteht darin, einen bestimmten konstanten Grauwert, insbesondere den Mittelwert
der Bildpixel, zu wählen und diesen als globalen Schwellenwert bei der Entscheidung zu
verwenden, ob ein Pixel auf 0 oder auf 1 quantisiert werden soll.
Stand der Technik                                                                           13

Alle Pixel, deren Intensitätspegel über dem Mittelwert (der Schwelle) liegt, werden auf 1
quantisiert; alle anderen erhalten einen Wert von 0.

Diese Methode ist einfach zu implementieren, hat aber einen Nachteil: Die Quantisie-
rungskonturierung ist durchaus wahrnehmbar. [13]

                     Abbildung 9 Das durchschnittliche Dithering [14]

4.2.2.2 Random Dithering

Dies ist die Art von Dithering-Algorithmen. Als Produktionsmethode ist es nicht wirklich
akzeptabel, aber es ist sehr einfach zu beschreiben und umzusetzen. Für jeden Wert im
Bild erzeugen Sie einfach eine Zufallszahl 1…256; wenn sie größer als der Bild Wert an
diesem Punkt ist, zeichnen Sie den Punkt weiß, andernfalls schwarz. Dies erzeugt ein Bild
mit viel "weißem Rauschen", das wie ein Fernsehbild "Schnee" aussieht. Obwohl das
erzeugte Bild sehr ungenau und verrauscht ist, ist es frei von "Artefakten", also Phänome-
nen, die durch die digitale Signalverarbeitung entstehen.

                            Abbildung 10 Random Dithering [14]

4.2.2.3 Bayer-Dithering (Ordered Dithering)

Bayer-Dithering ist ein Algorithmus zur Bilddithering. Er wird häufig verwendet, um ein
kontinuierliches Bild auf einer Anzeige mit geringerer Farbtiefe darzustellen.
14                                                                    Stand der Technik

                      Abbildung 11 8×8 Bayer-Dithering -Muster [14]

Der Algorithmus reduziert die Anzahl der Farben, indem er eine Schwellenwertkarte M auf
die angezeigten Pixel anwendet, wodurch einige Pixel ihre Farbe ändern, je nach dem
Abstand der Originalfarbe von den verfügbaren Farbeinträgen in der reduzierten Palette.

                            Abbildung 12 Rekursionsformel1

Beginnen wir mit einer 2×2-Matrix

                                           0   2
                                       M1=[      ]
                                           3   1

Durch Rekursion gibt es

                            Abbildung 13 Rekursionsformel2

wobei Mn und Un beide 2n×2n Quadrate sind und alle Elemente von Un 1 sind. Nach die-
sem Algorithmus erhalten wir
Stand der Technik                                                                          15

                                  Abbildung 14 Ergebnis

Dies ist ein Standardmuster mit 16 Graustufen.

M3 (8×8-Array) ist eine Besonderheit und wird als Bayer-Dithertabelle bezeichnet. m4 ist
eine 16×16-Matrix. [15]

4.2.2.4 Floyd–Steinberg Dithering

Floyd-Steinberg-Dithering ist ein Algorithmus zur Bildditterung, der 1976 erstmals von
Robert W. Floyd und Louis Steinberg veröffentlicht wurde. Es wird häufig von Bildbearbei-
tungssoftware verwendet, z.B. wenn ein Bild in das GIF-Format konvertiert wird, das auf
maximal 256 Farben beschränkt ist.

     Abbildung 15 Ein 1-Bit-Bild der David-Statue, gedithert mit dem Floyd-Steinberg-
                                     Algorithmus [16]

Der Algorithmus erreicht Dithering durch Fehlerdiffusion, d.h. er schiebt (addiert) den
Restquantisierungsfehler eines Pixels auf seine Nachbarpixel, um später behandelt zu
werden. Sie verteilt die Schulden entsprechend der Verteilung (dargestellt als Karte der
benachbarten Pixel):

                               Abbildung 16 Fehlerdiffusion
16                                                                             Stand der Technik

Das mit einem Stern (*) gekennzeichnete Pixel gibt der aktuell gescannte Pixel an, und
die leeren Pixel sind die zuvor gescannten Pixel. Der Algorithmus scannt das Bild von
links nach rechts, von oben nach unten, wobei die Pixelwerte nacheinander quantisiert
werden. Jedes Mal wird der Quantisierungsfehler auf die benachbarten Pixel übertragen,
ohne die bereits quantisierten Pixel zu beeinflussen. Wenn also eine Anzahl von Pixeln
nach unten gerundet wurde, wird es wahrscheinlicher, dass das nächste Pixel nach oben
gerundet wird, so dass der Quantisierungsfehler im Durchschnitt nahe Null liegt. [17]

Im folgenden Pseudocode können wir den oben beschriebenen Algorithmus sehen. Dies
funktioniert für jede annähernd lineare Codierung von Pixelwerten, wie z. B. 8-Bit-
Ganzzahlen, 16-Bit-Ganzzahlen oder reelle Zahlen im Bereich [0,1].

for each y from top to bottom do

     for each x from left to right do

       oldpixel: = pixel[x][y]

       newpixel: = find_closest_palette_color (oldpixel)

       Pixel[x][y]: = newpixel

       quant_error: = oldpixel - newpixel

       pixel[x + 1][y   ] := pixel[x + 1][y   ] + quant_error × 7 / 16

       pixel[x - 1][y + 1] := pixel[x - 1][y + 1] + quant_error × 3 / 16

       pixel[x   ][y + 1] := pixel[x    ][y + 1] + quant_error × 5 / 16

       pixel [x + 1] [y + 1]: = pixel [x + 1] [y + 1] + quant_error × 1 / 16
Umsetzung                                                                                 17

5 Umsetzung

5.1 Gesamtkonzept

                Abbildung 17 Verbindung zwischen Hardware und Software

Als Designer und Benutzer ist es eine Herausforderung, zu entscheiden, welche GUI ver-
wendet und wie sie gestaltet werden soll.

Die grafische Benutzeroberfläche ist das Werkzeug für die Verarbeitung von Bildern und
deren Datentransfer.

Als integrierte Entwicklungsumgebung sind Visual Studio und qt sehr hilfreich für mich,
um die von mir gewünschte GUI zu entwerfen.

Die von mir gewählte Programmiersprache ist C++.

Die ersten 5 Schritte in der GUI kann ich einzeln durchführen.

Schritt 6 ist der Datentransfer, was bedeutet, dass ich mit Herrn Huang zusammenarbei-
ten muss, wenn es um die Hardware geht.
18                                                                              Umsetzung

5.2 Software

5.2.1 Integrated Development Environment
5.2.1.1 Einführung

Eine integrierte Entwicklungsumgebung (IDE, Integrated Development Environment) ist
eine Anwendung zur Bereitstellung einer Programmentwicklungsumgebung und enthält im
Allgemeinen Tools wie einen Code-Editor, einen Compiler, einen Debugger und eine gra-
fische Benutzeroberfläche. Es integriert eine integrierte Service-Suite für Entwicklungs-
software wie Code-Schreibfunktion, Analysefunktion, Kompilierungsfunktion und Debug-
ging-Funktion. Alle Software oder Software-Suiten (Gruppen) mit dieser Funktion können
als integrierte Entwicklungsumgebung bezeichnet werden.

5.2.1.2 Auswahl von IDE

Die IDEs, die ich für diese Aufgabe gewählt habe, sind Visual Studio und qt.

                              Abbildung 18 Visual Studio [18]

Microsoft Visual Studio (Visual Studio, als VS oder MSVS bezeichnet) ist eine Reihe von
Development Kit-Produkten der Microsoft Corporation. VS ist ein grundlegendes und voll-
ständiges Entwicklungswerkzeugset, das die meisten während des gesamten Software-
Lebenszyklus erforderlichen Tools umfasst, z. B. UML-Tools, Tools zur Codesteuerung,
integrierte Entwicklungsumgebung (IDE) usw.
Umsetzung                                                                                   19

5.2.2 GUI

                                 Abbildung 19 Qt Designer

Qt ist ein C++-Framework für die Anwendungsentwicklung. Es wird häufig zur Entwicklung
von GUI-Programmen verwendet. QT selbst hat seine eigene IDE.

Da Visual Studio umfangreicher und leistungsfähiger als qt ist, habe ich mich für die In-
stallation des qt-Plugins in VS entschieden. Dies erlaubt mir, die Qt-GUI im Visual Studio
zu entwerfen.

5.2.3 Opencv

                                 Abbildung 20 Opencv [19]

OpenCV ist eine Computer Vision-Bibliothek, die in C++ geschrieben ist.

OpenCV kann zur Entwicklung von Bildverarbeitungs-, Computer Vision-Programmen
verwendet werden.

Wenn meine Programmierung also mit Bildverarbeitung zu tun hat, ist OpenCV ein gutes
Werkzeug.
20                                                                Umsetzung

5.2.4 Ablaufdiagramm der Software
5.2.4.1 Mein GUI

                              Abbildung 21 Meine Haupt-GUI

Im ersten Schritt doppelklicken wir auf die Drucktaste "open".

Dann bekommt man das Original, deren Größe schon geändert wird.

                                  Abbildung 22 Schritt 1
Umsetzung                                                                            21

Nachdem man das Original bekommt, kann man das Bild in einer Farbenpalette wieder
bemalen. Die Farben des Bildes und ihre Anzahl der Farbe sind abhängig davon, dass
man welche Farben ausgewählt hat. Man kann das Original mit nur eine Farbe oder zwei
Farben oder drei Farben bemalen.

                                Abbildung 23 Schritt 2
22                                                                       Umsetzung

Nachdem man drei (zwei oder eine) gewählte Farben erhalten habe, drückt man Druck-
taste “Mixed Image“, dann erhaltet man „das gemischte Bild“.

                                 Abbildung 24 Schritt 3
Umsetzung                                                                          23

Anschließend kann man das gemischte Bild weiterbearbeiten. Mithilfe des „Floyed-
Steinberg Dithering Algorithmus“ kann man ein geditherte Bild bekommen.

                                 Abbildung 25 Schritt 4
24                                                                     Umsetzung

Am Ende macht man eine Verbindung zwischen Software und Hardware. Mit der Taste
„open Serial “kann ich die serielle Schnittstelle öffnen.

                                    Abbildung 26 Schritt 5
Umsetzung                                                                            25

Mit der Taste von Übertragung kann man in der Lage sein, dass man die Daten von Bild
in geeignetes Format auf Arduino senden.

Wenn Arduino alle meine Daten empfängt und die Daten fertig bearbeitet hat, wird das E-
Display aktualisieren. Die wird zeigen, was man gesendet.

                                 Abbildung 27 Schritt 6
26                                                              Umsetzung

Hier ist das allgemeine Ablaufdiagramm.

                       Abbildung 28 allgemeine Ablaufdiagramm
Umsetzung                                                                           27

5.3 Hardware

5.3.1 Mega2560

Die Hardware verwendet den MEGA2560, und obwohl er ein von Funduino hergestelltes
Board verwendet, sind seine Funktionen identisch mit denen von Arduino, denn später in
der Präsentation werde ich einheitlich den Arduino mega2560 anstelle des Funduino me-
ga2560 verwenden.

                             Abbildung 29 Funduino 2560 [20]

Das Arduino Mega 2560 ist ein Mikrocontroller-Board auf Basis des ATmega 2560 mit 54
digitalen Kanälen. Eingangs-/Ausgangsanschlüsse (15 davon als PWM-Ausgänge ver-
wendbar), 16 analoge Eingangsanschlüsse, 4 serielle UART-Anschlüsse. 16MHz Quarz,
USB-Anschluss, Batterieanschluss, ICSP-Header und Reset-Knopf. Schließen Sie einfach
über USB an einen Computer an oder verwenden Sie einen AC/DC-Transformator, und
schon können Sie loslegen.
28                                                                                 Umsetzung

5.3.2 E-Paper Display
5.3.2.1 Einführung

Für die Anzeige verwenden wir ein 7,5 Zoll großes e-Paper HAT (B) von Waveshare.

                              Abbildung 30 E-Paper Display [21]

5.3.2.2 Refresh-Prinzip

Das Prinzip der Bildschirmauffrischung ist mir sehr wichtig.

Ich muss wissen, wie die Anzeige aktualisiert wird, und wie sie aktualisiert wird, bevor ich
sie codieren kann.

Nachdem der Code geschrieben ist, kann ich Inbetriebnahme machen, um zu prüfen, ob
er richtig funktioniert.

•    Die Beziehung zwischen Pixeln und Bytes

Für Schwarzweißbilder kann dies auf diese Weise festgelegt werden:

Wenn es schwarz ist, wird es als 0 definiert, wenn es weiß ist, wird es als 1 definiert, dann
gibt es eine Möglichkeit, Farbe auszudrücken.

Schwarz □: 0 (Binär) Weiß ■: 1 (Binär)

Ein Punkt wird im Allgemeinen als Pixel in der Grafik bezeichnet, und die Farbe ist entwe-
der 1 oder 0, d.h. 1 Bit kann die Farbe identifizieren: 1 Pixel = 1 Bit, dann enthält ein Byte
8 Pixel.

Am Beispiel von 16 Pixeln unter der Annahme, dass die ersten 8 Pixel schwarz und die
letzten 8 Pixel weiß sind, kann davon ausgegangen werden, dass die Pixel 1-16 diesen 0
bis 15 Bits entsprechen, 0 bedeutet schwarz und 1 bedeutet Weiß:
Umsetzung                                                                                                                                29

        Pixel        1   2       3       4       5       6       7   8   9 10 11 12 13 14 15 16

         Bit         0   1       2       3       4       5       6   7   8       9       10 11 12 13 14 15

    Gespeicherte
                     0   0       0       0       0       0       0   0   1       1       1       1       1       1       1       1
     Binär-Daten

    Entsprechende
                     ■ ■ ■ ■ ■ ■ ■ ■ □                                           □       □       □       □       □       □       □
        Farbe

                     Tabelle 1: Die Beziehung zwischen Pixeln und Bits

Für einen Computer ist seine Datenspeichermethode zuerst von hoher Ordnung, dann
von niedriger Ordnung, und ein Byte hat nur 8 Bits, so dass es eine kleine Änderung gibt:

          Pixel              1       2       3       4       5       6   7   8       9       10 11 12 13 14 15 16

           Bit               7       6       5       4       3       2   1   0       7       6       5       4       3       2       1   0

      Gespeicherte
                             0       0       0       0       0       0   0   0       1       1       1       1       1       1       1   1
       Binär-Daten

Entsprechende Far-
                             ■       ■       ■       ■       ■       ■   ■   ■       □       □       □       □       □       □       □   □
           be

          Byte                                       0x00                                                    0xff

                     Tabelle 2: Die Beziehung zwischen Pixeln und Bytes

Dies erfordert nur 2 Bytes, um 16 Pixel darzustellen.

•     Schwarz-Weiß-Bildverarbeitung
30                                                                                        Umsetzung

Aufgrund der Einstellung des Controllers wird definiert, dass 0000b anzeigt, dass der ent-
sprechende Pixel schwarz ist, und 0011b anzeigt, dass der entsprechende Pixel weiß ist.
Es ist 4 Bit = 1 Pixel, und die unteren zwei Bits von 4 Bit sind gleichzeitig 0, um Schwarz
anzuzeigen. Andernfalls sind die niedrigsten zwei Bits von 4 Bit gleichzeitig 1, um Weiß
anzuzeigen. Andere Daten führen dazu, dass die Farbe des Pixels unsicher ist.

Hinweis: Für den Controller (Register) ist 1 Pixel = 4 Bit. Bei normalen Schwarzweißbil-
dern entspricht 1 Pixel immer noch 1 Bit. Bei dreifarbigen Bildern ist 1 Pixel = 2 Bit.

Daher ist es notwendig, die Bilddaten zu teilen, wenn die Bilddaten in das Register ge-
schrieben werden:

Binär: 1 = 0x03 (Schwarz), Binär: 0 = 0x00 (Weiß)

Das Register hält immer noch 4 Bits gleich 1 Pixel. Monochrome Bilddaten sind 1 Pixel
gleich 1 Bit. Nachdem ein Bit der Bilddaten gelesen wurde, werden sie daher in 4 Bits in
das Register umgewandelt.

Beispiel:

0x00: 2 Pixel ■ ■,0x03: 2 Pixel ■ □,0x30: 2 Pixel □ ■,0x33: 2 Pixel □ □

Am Beispiel von 4 Pixeln unter der Annahme, dass die ersten 2 Pixel schwarz und die
letzten 2 Pixel weiß sind, sieht die menschliche Logik folgendermaßen aus:

     Pixel (Bilddaten)             1                   2                   3                   4

      Bit (Register)       0   1       2   3   4   5       6   7   8   9   10   11   12   13       14   15

      Gespeicherte
                           0   0       0   0   0   0       0   0   0   0   1    1    0    0        1    1
       Binär-Daten

Entsprechende Farbe                ■                   ■                   □                   □

        Tabelle 3: Die Beziehung zwischen Pixeln und Bits (Schwarzweißverarbeitung)
Umsetzung                                                                                                31

Für einen Control ist seine Datenspeichermethode zuerst von hoher Ordnung, dann von
niedriger Ordnung, und ein Byte hat nur 8 Bits, so dass es wie folgt in dem Byte gespei-
chert wird:

              Pixel                  1                   2                   3                   4

               Bit           7   6       5   4   3   2       1   0   7   6       5   4   3   2       1   0

       Gespeicherte
                             0   0       0   0   0   0       0   0   0   0       1   1   0   0       1   1
        Binär-Daten

    Entsprechende Farbe              ■                   ■                   □                   □

              Byte                           0x00                                    0x33

       Tabelle 4:Die Beziehung zwischen Pixeln und Bytes (Schwarzweißverarbeitung)
•    Schwarz-Weiß- und Rot-Bildbearbeitung

Die oben erwähnte zweifarbige Anzeige zeigt, dass die oberen zwei Bits von 4 Bit nicht
verwendet werden. Diese beiden Bits können verwendet werden, um Rot anzuzeigen,
bzw.

00b: weiß, 01b: rot

Die oberen zwei Bits stehen für Rot und die unteren zwei Bits für Schwarz. Wenn der
Punkt rot ist, wird Schwarz nicht angezeigt, und der Wert der unteren beiden Bits wird
ignoriert, sodass Das Display die folgende Definition hat:

0000b: schwarz mit Istwert 0x0,0100b: rot mit Istwert 0x4

0111b: rot mit Istwert 0x4,0011b: weiß mit Istwert 0x3

Die Verarbeitung eines monochromen Bildes ist 1 Pixel in 1 Bit zu speichern, sodass ein
Byte speichert die Farbe von 8 Punkten, aber die oben genannte Verarbeitung ist 4 Bits
für ein Pixel:
32                                                                              Umsetzung

Zur einfachen Verständlichkeit wird davon ausgegangen, dass es 8 Pixel gibt. Um 8 Pixel
anzuzeigen, dann braucht 8 Pixel in rot und weiß, und 8 Pixel in schwarz und weiß. Da 1
Punkt von zwei Pixeln überlagert wird, und 8 Pixel in 1 Byte gespeichert werden, besetzen
Rot - Weiß und Schwarz - Weiß jeweils zwei Bytes (d.h. 1 Pixel = 2 Bits bei dreifarbigem
Bild). 1 in einem rot-weißen Bild ist rot und 0 ist weiß. 0 im Schwarz-Weiß-Bild ist schwarz
und 1 ist weiß.

                        Bit               7    6    5     4    3    2     1    0

          Gespeicherte Binär-Daten
                                          1    1    1     1    0    0     0    0
                  (Rot-Weiß-Bild)

            Entsprechende Farbe                            □    □     □    □

          Gespeicherte Binär-Daten
                                          0    0    1     1    0    0     1    1
             (Schwarz-Weiß-Bild)

            Entsprechende Farbe           ■    ■    □     □    ■    ■     □    □

              Farbüberlagerung                             ■    ■     □    □

        Tabelle 5: Die Beziehung zwischen Pixeln und Bits (Dreifarbenverarbeitung)
Umsetzung                                                                                                   33

Wie oben erwähnt, muss 1 Pixel, das in zum E-Paper Display übertragenen Daten ist, 4
Bytes belegen, sodass die Daten von 8 Pixeln zum Senden in 4 Bytes verarbeitet werden
müssen:

           Pixel                        1                   2                   3                   4

             Bit                7   6       5   4   3   2       1   0   7   6       5   4   3   2       1   0

  Entsprechende Farbe                                                                            

       Gespeicherte
                                    0100b               0100b               0100b               0100b
       Binär-Daten

            Byte                                0x44                                    0x44

           Pixel                        5                   6                   7                   8

             Bit                4   3       2   1   4   3       2   1   4   3       2   1   4   3       1   0

  Entsprechende Farbe                   ■                   ■                   □                   □

   Gespeicherte Daten               0000b               0000b               00iib               0011b

            Byte                                0x00                                    0x33

       Tabelle 6: Die Beziehung zwischen Pixeln und Bytes (Dreifarbenverarbeitung)

Da die Priorität von Rot hoch ist, sind die ersten vier Pixel nach der Überlagerung in der
obigen Tabelle alle rot. [21]
34                                                                          Inbetriebnahme

6 Inbetriebnahme

6.1 Debugging der seriellen Schnittstelle
Zuerst muss man lösen, wie man die serielle Schnittstelle öffnen.

Der wichtigste Punkt beim Einrichten der seriellen Schnittstelle ist, dass die Übertragungs-
rate der seriellen Schnittstelle im Programm und die Empfangsrate der seriellen Schnitt-
stelle von Arduino gleich sind. Wenn die beide Geschwindigkeit nicht gleich sind, funktio-
niert die serielle Schnittstelle nicht.

Wenn man die Drucktaste“Open Scan Serial”drückt, kann man einen Hinweis sehen,
ob er die serielle Schnittstelle geöffnet hat. Wenn nicht, entsteht eine Warnung.

Nach den Tests funktioniert die Öffnung der seriellen Schnittstelle gut.

                            Abbildung 31 serielle Schnittstelle öffnen
Inbetriebnahme                                                                         35

Nachdem wir die serielle Schnittstelle geöffnet haben, forschen wir weiter.

Zuerst muss ich beherrschen, wie ich die einfachen Zahlen oder Buchstaben auf das
Arduino übertragen. Das von mir verwendete Display ist ein LCD1602, dass das eine ein-
fache und nützliche Anzeige ist. Dann habe ich den Code für Anzeige geschrieben, und
das Bildschirm zeigt, was ich Im PC geschrieben.

Nach den Tests funktioniert die Übertragung der seriellen Schnittstelle gut.

                              Abbildung 32 Test bei LCD1602

Hinsichtlich des Refresh-Prinzips des E-Displays begann ich mit dem Debugging und
schickte zunächst eine einfache Zeichenfolge.

Nach ASCII 0101 0101= U.

Erster Test mit 1602, nach dem Test ist der Upload tatsächlich UUUUUU.
36                                                                        Inbetriebnahme

                            Abbildung 33 U Test bei LCD1602

6.2 Debugging der statischen Übertragung
Der Unterschied zwischen statischem und dynamischem Transport besteht darin, dass
der Betrieb der statischen Übertragung darin besteht, die Bilddaten in Arrayform mit dem
Programmcode in den Programmspeicherplatz des Mega2560s hochzuladen. Es ähnelt
einem eingebauten Bild, das automatisch angezeigt wird, wenn die Stromversorgung ein-
geschaltet ist.

Nach dem Handbuch erhielten wir einen Code, der statisch im Arduino angezeigt wurde,
und dann führten wir Tests durch, um die statisch übertragenen Bilder zu erhalten. Die
Anzeige wurde etwa 40 Sekunden lang aufgefrischt.

                          Abbildung 34 statischen Übertragung
Inbetriebnahme                                                                          37

6.3     Debugging der dynamischen Übertragung
Dynamische Übertragung kann die Anzeige aktualisieren, ohne das Arduino-Programm zu
ändern. Mit anderen Worten, ich sende Bilddaten direkt aus meinem Programm heraus,
das Arduino empfängt meine Daten über die serielle Schnittstelle und verarbeitet sie und
steuert schließlich die Anzeige, um das elektronische Papier zu aktualisieren.

Wenn die Form der vom Computer gesendeten Daten nicht mit der vom Arduino empfan-
genen Form übereinstimmt, kann dies zu Fehlern in den Bilddaten und schließlich zu An-
zeigefehlern führen. Wenn zum Beispiel der untere Computer Daten mit einer Rate von
9600 empfängt, dann muss die Datenrate, die ich sende, ebenfalls 9600 sein. Wenn ich
mich dafür entscheide, unter 115200 zu senden, werden die Daten nicht korrekt übermit-
telt.

Zum Beispiel das Bild unten. Aufgrund des Formats der gesendeten Datenmenge wird
jeder Pixel des Bildes vierfach vergrößert, und die Anzeige zeigt nur ein Viertel der Größe
des Originalbildes.

                             Abbildung 35 Bild in Viertelgröße

Es gibt auch eine Reihe von Fragen und Erklärungen, auf die ich in “Auswertung” in Kapi-
tel 7 näher eingehe.
38                                                                      Versuchsdurchführung

7 Versuchsdurchführung

7.1 Versuchsaufbau

                                 Abbildung 36 Aufbau für GUI

Das Versuch ist in zwei Phasen unterteilt.

Das Ziel des ersten Schritts ist die Erfüllung der ersten vier Anforderungen an das Bild,
nämlich "Bild laden", "Farbbild bemalen", "Farbbild erhalten" und "Bild mit Dithering-
Algorithmus dithern".

Das Ziel des zweiten Schritts bezieht sich auf serielle Schnittstelle. d.h. "die serielle
Schnittstelle zu öffnen" und "das Bild korrekt in das von Arduino gesteuerte E-Display zu
übertragen".
Versuchsdurchführung                                                                  39

7.2 Versuchsdurchführung

7.2.1 Die erste Phase (ohne serielle Schnittstelle)

Fangen wir mit meinem Tasten an.

                        Abbildung 37 Mein Vaterfenster (Hauptfenster)

                        Abbildung 38 Mein Kindfenster (Nebenfenster)

Bevor man zur Übertragung der Daten gelangen hat, umfassen die Inhalt der GUI vier
Teile.

Der erste Teil ist, dass man ein Bild von dem Auswahlfenster (Dateidialog) öffnen. Dann
wird das Bild im geeigneten Format in das Programm geladen.

Der erste Schritt funktioniert gut.
40                                                                  Versuchsdurchführung

                        Abbildung 39 Ein Bild Von der Katze auswählen

Der zweite Teil ist, dass man das Bild nach der Auswahl neu einfärben. Man kann das
Bild mit einer oder zwei oder drei Farbe bemalen.

Der zweite Schritt funktioniert gut.

                             Abbildung 40 Auswahl der drei Farbe

Wenn man die Farbe schon ausgewählt hat, kann man die Drucktaste“Mixed Image”
drücken, dann bekommen wir eine gemischte Bild. Die Farbe des Bildes ist abhängig da-
von, dass man in der Farbenpalette ausgewählt haben. Das ist dritte Teil.

Der dritte Schritt funktioniert gut.
Versuchsdurchführung                                                                       41

                       Abbildung 41 das gemischte Bild bekommen

Der vierte Teil ist, dass man das neu eingefärbte Bild mit Algorithmus weiterbearbeiten.

Wenn man die Drucktaste “Dithered Image”drückt, erhalten wir das gedithert Bild.

                       Abbildung 42 das gedithered Bild bekommen

Wenn man das ursprüngliche RGB verwende, sehen die beide Bilder sehr ähnlich aus.

Der Grund dafür ist, dass jede Farbe in RGB 255 und 0 ist. Nach Floyed-Steinberg Dithe-
ring-Algorithmus gibt es keinen Fehler, so dass das Bild gleich aussieht.

Wenn ich andere Farbe benutze, bekomme ich sofort einen guten Vergleich.
42                                                                Versuchsdurchführung

Der vierte Schritt funktioniert gut.

                                       Abbildung 43 Dithering 1

                                       Abbildung 44 Dithering 2
Versuchsdurchführung                                                                 43

7.2.2 Die zweite Phase (mit serieller Schnittstelle)

Die folgenden drei Taste haben die Verbindung mit Hardware.

                             Abbildung 45 Taste mit Hardware

Nachdem man das Bild bearbeitet, muss man überlegen, wie man die Daten des Bildes
erfolgreich auf Arduino überträgt.

Als nächstes verwendeten wir E-Display. Wir senden zuerst nur eine Zeile (nur einmalig
01010101)

0101010101 steht für Schwarz-Weiß Schwarz-Weiß Schwarz-Weiß Schwarz-Weiß
Schwarz-Weiß. Die Farbe wird in der ersten Zeile des E-Displays korrekt angezeigt.

                        Abbildung 46 U Test bei E-Display (1 Zeile)
44                                                                       Versuchsdurchführung

Als nächstes senden wir 010101 bis 8 Zeile.

                        Abbildung 47 U Test bei E-Display (10 Zeile)

Schließlich Daten senden, bis der Bildschirm gefüllt ist.

                        Abbildung 48 U Test bei E-Display (alle Zeile)
Versuchsdurchführung                                                               45

7.2.3 Schwarz-weiß Bild

Die Anzeige kann insgesamt zwei Farben von Bildern zeigen.

Einer davon ist Schwarz-weiß.

Nachdem ich den Code verstanden hatte, den Herr Huang auf den Arduino geschrieben
hatte, schrieb ich den entsprechenden Code im Visual Studio, um die Daten zu senden.

Wenn man die Drucktaste “Transfer white and black”drückt, kann Arduino meine Daten
normal empfangen und dann verarbeiten. Das Arduino steuert das E-Display, um den
Bildschirm nach der Endbearbeitung zu aktualisieren.

Aus Fehler von Anzahlgesamt (640*384/8=30720) zeigt das Bild nicht vollständig.

                                Abbildung 49 Halb Bild

Nach der Änderung des Codes wurde ein normales Schwarzweißbild erhalten.
Sie können auch lesen