BACHELORARBEIT - Publication Server of ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
BACHELORARBEIT ➢ < Herr Xuanwei Wei Konzeption und Entwicklung einer Anwendung zur Grafikübertragung auf das E-Paper Display der Firma Waveshare Mittweida, 2020
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
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
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.
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
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
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
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