Tragbare Spielkonsole (ARM-MCU-Team) (2 / 6 schritt)

Schritt 2: Bitmap-Konvertierungs-Software


Seit Beginn des Projekts wussten wir, dass war es für uns unmöglich, alle Arten von Farbformate auf die Bilder zu verwenden, die wir anzeigen möchten. Um die Spezifikationen zu erfüllen und die technischen Zwängen zu respektieren, mussten wir wählten einen festen format und bleiben sie dabei. Das Farbformat erforderlich ist mit 16-Bit-Pixel und 12-Bit-Farbe und 4 Bit-Transparenz-Komponente die RGBA. Wissend, dass dieses Format kein standard ist, mussten wir eine Konvertierungs-Software zu entwickeln, um Bilder von diesem Format zu erstellen. Ein weiterer Vorteil einer solchen Software ist die Möglichkeit, einige Eigenschaften des Bildes, wie die Transparenz ändern.

Wir entschieden uns für die C++ als Programmiersprache und wir für die Grafikbibliothek QT Creator verwendet. Die C++ ist eine Software-Entwicklung-Sprache, die wir dienen und wir wussten, dass die Datei Streamss einfach zu handhaben wäre. Wir es geschafft, die Bilder zu lesen, die wir ohne Probleme ändern wollten. Dank der QT Creator-Software und der Qt-Bibliothek haben wir eine sehr einfache grafische Oberfläche, damit die Nutzung der Software sehr intuitiv.

Die Software, die wir entwickelt, ist sehr nützlich für das Format der Bilder ändern, wenn wir sie erfolgreich in die FPGA-Karte verwenden möchten. Die Bilder konvertieren muss das BITMAP 24-Bit-Format aus drei Gründen:

  • Diese Art von Format komprimieren die Bilder nicht. Da das Bild, das wir in den FPGA gespeichert werden sollen werden nicht komprimiert werden, eine Bild dekomprimiert werden.
  • FPGA Bildverarbeitung zur Kompression/Dekompression (JPEG/MPEG) bereits vorhanden ist als open-Core IPs, aber es ist sehr schwer zu implementieren. Deshalb ist es leichter zu verarbeiten von Bildern, die bereits dekomprimiert werden. Wir sollten beachten, dass die übermäßige Größe für diese Art von Bilder kein Problem wegen der verfügbaren Speicherbereich und die Geschwindigkeit der Datenübertragung via DMA ist.
  • Seine Qualität ist besser als 16 Bits.
  • Es steht überall (ein Großteil der verfügbaren Software wie "Farbe" kann jede Art von Bildern in BITMAP-24-Bit-Format konvertieren).
  • Transparenz ist nicht verfügbar. Das gibt uns mehr Flexibilität im Umgang mit der Transparenz in unseren eigenen Weg.

Wir erwähnten das Transparenz-Management. In der Tat wurde unsere Software auch geschaffen, um in der Lage, die Transparenz der Farben eines bestimmten Bildes eingestellt werden. Da unsere Grafikkarte bis zu 4 unabhängige Anzeige-Layer handhaben kann, ist es entscheidend, dass wir in der Lage, die Transparenz eines Bildes ändern oder legen Sie eine Transparenz Farbe sonst mehrschichtigen ausgestellten Itn bringt keinen Gewinn.

Wir haben zwei verschiedene Optionen für diese Transparenz:

  1. Die erste besteht aus eine Reihe von Farbe (maximal 5) undurchsichtig machen. Bsp.: Machen Sie der Hintergrund eines Sprites durchsichtig
  2. Die zweite besteht die Transparenz aller Farben, die nicht unter Berücksichtigung in der Option zu wählen. Bsp.: Machen Sie das Bild von einem Feuer 50 % transparent um die Animation zu verfeinern.

Verfahren

Erster Schritt: Laden das Bild und wählen Sie die richtigen Parameter der Konfiguration.

Wir beginnen Sie wählen das Bild konvertieren und den Pfad, wo wir es retten wollen. Anschließend setzen wir die Transparenz-Parameter, die wir im vorherigen Abschnitt erläutert. Wenn das Bild geladen wurde, startet die Software durch das Lesen des ersten Bytes des jeweiligen Bildes. Diese Bytes enthält die Abmessungen des Bildes und wird nicht in die Ausgabe-Datei kopiert werden, da die FPGA Karte nehmen nicht berücksichtigt diese Daten aber verwendet nur die Daten, die ein Pixel entspricht. Nach der Übernahme des ersten Bytes des Bildes kann die Software die Konvertierung zu starten.

Zweiter Schritt: Konvertieren das Bild.

In dieser zweiten Phase wird die Software nur jedes Byte definiert die Farben eines Pixels um steckte es in eine 16-Bit-Format lesen. Es ist ein einfacher Prozess mit einer direkt binäre Verschiebung des 4-Bit, 4 Bit pro Farbe anstelle von 8-Bit haben zu können. Wir zu diesen 12 Bit Og Farben 4 Bit Transparenz mit den Parametern hinzufügen zu Beginn des Verfahrens definiert.

Dritter Schritt: Das richtige Format des Bildes einstellen.

Dieser letzte Schritt besteht über die Anpassung der Daten. Die BITMAP-Matrix speichert die Pixel in absteigender Reihenfolge unter Berücksichtigung der Linien. Seit die Spezifikationen des Bildformats, die wir wollen, dass einen aufsteigender Reihenfolge der Pixel zu verhängen, müssen wir die Pixel in der richtigen Reihenfolge zu ordnen. Wir traf das gleiche Problem für die Bitfolge. Wir korrigieren es durch den Wechsel von 0xRGBA zu 0xGRAB.

Sobald das Bild in das gewünschte Format ist, ist nur noch das Bild in den RAM des FPGA mit der STM32-Mikrocontroller übertragen.

In Verbindung stehende Artikel

Tragbare Spielkonsole (GPU-Team)

Tragbare Spielkonsole (GPU-Team)

KontextUnsere Tutoren wollte für unsere engineering-Projekt uns den Herausforderungen der Gestaltung ein Echtzeitsystem mit relativ hoher Leistung auf begrenzte Ressourcen (Speicher und Bandbreite).Die Spezifikationen erfordern eine Spieleplattform,
Raspi Pip-Boy, tragbare Spielkonsole / Computer

Raspi Pip-Boy, tragbare Spielkonsole / Computer

Hallo, möchte ich mein erste Himbeer-Pi-Projekt präsentieren.Ein Pip-Boy wie PC (wenn Sie eine Fallout-Fan sind, sehen Sie was ich meine)! :Übersicht :- Raspberry Pi Modell B + einen 2.8″ LCD 8bit parallel TouchScreen auf TONVERARBEITUNG verbunden.-L
Tragbare RetroGame Konsole (Raspberry Pi)

Tragbare RetroGame Konsole (Raspberry Pi)

Diese instructable ist für das FabLab machen Platz für die Fachhochschule Rotterdam geschrieben.Für diesen Kurs werde ich eine tragbare Spielkonsole in Kombination mit einem Raspberry Pi und eine benutzerdefinierte Shell machen.Für eine Zuordnung der
Ein tragbares Spielsystem zu machen-In Photoshop!

Ein tragbares Spielsystem zu machen-In Photoshop!

Dies ist mein erster instructable, die Besuche der mächtigen und außergewöhnlichen Welt von Photoshop, ich hoffe es gefällt euch!Ich war überrascht, dass es nichts dergleichen auf Instructables bis jetzt, so dachte ich, dass ich Ihnen mein Projekt ze
Tragbares All-in-One Game Console Box

Tragbares All-in-One Game Console Box

Aufbau dieser tragbare Spielkonsole der All-in-One-Box war eine gute Entscheidung! Nicht nur macht es es einfach zu transportieren, es auch mein Spiel-System schützt und hält es organisiert.Dies ist nur eine Beschreibung, die komplette Instructable h
$20 tragbaren Raspberry Pi Spielekonsole

$20 tragbaren Raspberry Pi Spielekonsole

Es gibt Unmengen von Raspberry Pi Retro-Spiel Emulatoren rund um das Internet, aber die meisten sind recht teuer. Mit dem neuen $5 Raspberry Pi Zero in dieser Instructable, ich werde Ihnen zeigen, wie eine vollständig tragbare Batterie bauen angetrie
Der Name Zeichnung CNC

Der Name Zeichnung CNC

Diese instructable entstand zur Erfüllung der Projektanforderung der Makecourse an der University of South Florida (www.makecourse.com).In diesem Sinne ist das Ergebnis dieses Projekts eine CNC, das ist völlig in der Lage, Weg von GRBL, sondern um de
Macht Ihr Arduino/AVR mit einem Hand-Cranked Akku

Macht Ihr Arduino/AVR mit einem Hand-Cranked Akku

wenn Sie jemals Ihre Arduino oder AVR macht aus einer Batterie für Entwicklungstests wollte (Batterien haben verschiedene Power Lieferung Qualitäten als sagen, transformierten AC oder sogar eine geregelte Wand Warze in DC) testen aber waren müde, geh
Ein weiterer Arduino Schalter

Ein weiterer Arduino Schalter

Adaptive Berichterstattung Teile StückzählerEin Zähler, der die Maschine es anpassen kann ausgestattet ist und Berichtsdaten zurück an andere Standorte z.B. Supervisor RezeptionHier ist Zähler baute ich als einen funktionierenden Prototyp für ein Unt
Planet-Lander auf 4D Systems PoGa

Planet-Lander auf 4D Systems PoGa

die 4D Systems PoGa - tragbare Spielkonsole - ist eine anspruchsvolle Spielkonsole mit einem uLCD Bildschirm, Goldelox Mikrocontroller, einen uSD-Kartenleser und die regelmäßigen Kontrollen für Gaming (oben/unten/links/rechts für Ihre linke Hand und
Smart Home mit Arduino und Jubito

Smart Home mit Arduino und Jubito

Jubito ist eine Software, die ich entwickle auf JaNET Frameworkbasiert. Ein smart home-Server, der schafft Schnittstellen zwischen verschiedenen Hardware (wie Arduino) und Software-Komponenten, die die Möglichkeit, miteinander zu interagieren und las
Wie Sie Ihren PC (oder ein anderes Gerät) in einem Retro-Arcade-mit Lakka verwandeln

Wie Sie Ihren PC (oder ein anderes Gerät) in einem Retro-Arcade-mit Lakka verwandeln

Wenn Sie auf der Suche nach einer lustiges Art und Weise, einen alten PC verwenden, Lakka kann daraus eine erstaunliche retro-Gaming-Maschine. Diese einfache Einrichtung braucht Linux-Kenntnisse und können Sie sogar die Controller, die, denen Sie sch
Dual Pulse kapazitive Entladung Punktschweißer

Dual Pulse kapazitive Entladung Punktschweißer

Diese Instructables enthält Pläne für den Bau einer dual Puls kapazitive Entladung Punktschweißer, die 400 Ampere bei 60 Mikrosekunden ausgeben können.Schritt 1: TheorieEinführungDer Grund dafür ein tragbares kapazitive Entladung Punktschweißer, die
Solar Wetterstation Raspberry Pi

Solar Wetterstation Raspberry Pi

Angespornt durch den Abschluss meiner zwei vorhergehenden Projekte, die Kompaktkamera und tragbare Spielkonsole, wollte ich eine neue Herausforderung zu finden. Der natürliche Verlauf wurde eine Outdoor-remote-System...Ich wollte eine Raspberry Pi We