Bärbar spelkonsol (ARM MCU Team) (2 / 6 steg)

Steg 2: Bitmapp konvertering programvara



Sedan början av projektet visste vi att det var omöjligt för oss att använda alla typer av färg format på bilder som vi vill visa. För att uppfylla specifikationerna och respektera de tekniska begränsningarna, behövde vi valde ett fast format och sticka med den. Det färgformat som krävs är RGBA med 16-bitars pixlar och 12 bitars färg och 4 bitar öppenhet komponent. Att veta att detta format inte är en standard ett, vi var tvungna att utveckla en konvertering programvara för att skapa bilder av detta format. En annan fördel med sådan programvara är möjligheten att ändra vissa egenskaper hos bilden, till exempel transparens.

Vi valde C++ som ett programmeringsspråk och vi använde QT skaparen för grafik-biblioteket. I C++ är en programvara utveckling språk som vi är vana vid och vi visste att filen streamss skulle bli lätt att hantera. Vi lyckades läsa de bilder som vi ville ändra utan problem. Tack vare programvaran QT Creator och Qt-bibliotek skapade vi ett mycket enkelt grafiskt gränssnitt att användning av programvaran mycket intuitivt.

Den programvara som vi har utformat är mycket användbart för att ändra format på bilder om vi vill kunna använda dem i FPGA-kort. Bilderna att konvertera måste vara i formatet BITMAP 24 bit av tre skäl:

  • Denna typ av format inte komprimera bilderna. Eftersom den bild som vi vill lagra i FPGA blir inte komprimeras, en expanderas bild kommer att bli nödvändigt.
  • FPGA bildbehandling för komprimering/dekomprimering (JPEG/MPEG) redan finns som öppen kärna IPs, men det är mycket svårt att genomföra. Det är därför det är lättare att behandla bilder som redan expanderas. Vi bör notera att överdriven storleken av denna typ av bilder inte är ett problem på grund av tillgängligt minne zon och hastigheten på dataöverföring via DMA.
  • Dess kvalitet är överlägsen 16 bitar.
  • Den finns överallt (en hel del tillgänglig programvara som "Färg" kan konvertera alla typer av bilder i BITMAPP 24 bitars format).
  • Öppenhet är inte tillgänglig. Vilket ger oss större flexibilitet i hanteringen av öppenheten i vårt eget sätt.

Vi nämnde tidigare öppenhet förvaltningen. I själva verket skapades vår programvara också för att kunna fastställa de öppenhet färgerna i en viss bild. Eftersom våra grafikkort kan hantera upp till 4 oberoende uppvisning lager, är det viktigt för oss att kunna ändra genomskinligheten för en bild eller ange en transpareny färg på itn annars multilayer displayen medför ingen vinst.

Vi har två olika alternativ för denna öppenhet:

  1. Den första består av att göra en serie av färg (5 högsta) ogenomskinlig. Ex: Göra bakgrunden av en sprite transparent
  2. Den andra består av att välja insyn i alla färger inte tar i beaktande i alternativet nummer ett. Ex: Att bilden av en brand 50% öppet för att förfina dess animering.

Förfarande

Första steget: Läsa in bilden och välja rätt parametrar för konfiguration.

Vi börjar med att välja bilden för att konvertera och sökvägen till där vi vill spara den. Sedan sätta vi öppenhet parametrarna som vi förklarade i föregående avsnitt. När bilden har lästs in, startar programvaran genom att läsa den första byten i den givna bilden. Dessa byte innehåller dimensionerna av bilden och kommer inte att kopieras i utdatafilen eftersom FPGA kortet inte tar hänsyn till dessa uppgifter men använder bara uppgifterna motsvarar en bildpunkt. Efter förvärvet av första byte av bilden, kan programvaran starta konverteringen.

Steg: Konvertera bilden.

I denna andra fas kommer programvaran endast läsa varje byte definiera färgerna på en pixel för att sätta det i ett 16-bitars format. Det är en enkel process med en rätt binära förskjutning av 4 bitar för att kunna ha 4 bitar per färg i stället för 8-bitars. Vi Lägg till dessa 12 bit og färger 4 bitar av genomskinlighet med hjälp av parametrarna definieras i början av förfarandet.

Tredje steget: Ställa in rätt format på bilden.

Detta sista steg består på Justera data. Matrisen BITMAPP lagrar pixlar i fallande ordning med tanke på nivån som linjer. Sedan specifikationerna för det bildformat som vi vill införa en stigande ordning pixlar, måste vi ordna pixlarna i rätt ordning. Vi stötte på samma problem för bit beställa. Vi korrigerade det genom att ändra 0xRGBA till 0xGRAB.

När bilden är i formatet ville, är det enda som återstår att överföra bilden till av FPGA med STM32 mikrokontroller.

Se Steg
Relaterade Ämnen

Bärbar spelkonsol (GPU Team)

SammanhangFör vårt engineering projekt ville vår handledare vi att möta utmaningar för att utforma en verklig-tid system med relativt hög prestanda på begränsade resurser (minne, bandbredd).Specifikationerna kräver en spelplattform med följande hårdv...

Raspberry Pi bärbara spelkonsol

Bygga denna bärbara spelkonsol är kanske det roligaste jag haft med en Raspberry Pi. Och det är inte bara att bygga som är kul; Jag har nu fått en fullt fungerande spelkonsol, så jag kan spela alla mina favorit gamla arkad spel, on-the-go!Det finns e...

Raspi Pip-boy, bärbar spelkonsol / dator

Hej, skulle jag vilja presentera min första hallon-pi projekt.En Pip-boy som personlig computern (om du är en Fallout fläkt, du ser vad jag menar)! :Översikt :- Hallon-pi modell B + en 2,8 LCD 8bits parallella TouchScreen ansluten på GPIOS.-Lxde Desk...

Hur man bygger ett Nintendo N64 bärbar spelkonsol System

N64 emulatorer fungerar inte bra, förvänta stamning med video, framerate frågor kompatibilitetsproblem. Det enda sättet att spela N64 spel ordentligt är på original hårdvara; faktum.Att göra en handheld bärbar i grunden innebär följande:* ta bort all...

Hur man gör en handheld bärbar Nintendo 64 N64 spelkonsol - iNto64

någonsin velat göra din Nintendo 64 (N64) gaming konsolen till en handheld bärbar enhet för "på språng" spela?Detta system kör av Li-ion batterier som är kraftfull nog att köra systemet och är även laddningsbara celler.Med denna serie av omfatta...

Bärbara RetroGame konsolen (Raspberry Pi)

Detta instructable är skriven för FabLab att göra kursen för Rotterdam University of Applied Sciences.För denna kurs ska jag göra en bärbar spelkonsol i kombination med en Raspberry Pi och ett anpassat skal.För en skoluppgift tvungen jag att göra obj...

Göra ett bärbara spelsystem-i Photoshop!

Detta är min första instructable som besöker den kraftfulla och extraordinära världen av photoshop, jag hoppas du gillar det!Jag blev förvånad att det fanns inget som detta på instructables förrän nu, så jag tänkte jag skulle visa er mitt projekt som...

Bärbar allt-i-ett spel konsol rutan

bygga den här All-i-en bärbar spelkonsol du var ett bra beslut! Inte bara gör det lätt att transportera, det skyddar min spelsystem och håller den organiserade.Detta är bara en beskrivning, Visa den kompletta Instructable här!Varför bygga något sådan...

Hur du sätter din dator (eller annan enhet) till en Retro Arcade med Lakka

Om du letar efter ett roligt sätt för att använda en gammal PC, Lakka kan förvandla det till en fantastisk retro gaming maskin. Denna lätt installation kräver inte någon avancerad Linux kunskap, och du kan även använda de domänkontrollanter som du re...

Planet lander på 4D Systems' PoGa

4D system PoGa - bärbara spelkonsol - är en sofistikerad spelkonsol som innehåller en uLCD skärm, en Goldelox mikrokontroller, en uSD-kortläsare och de regelbundna kontrollerna för spel (upp/ner/vänster/höger för din vänstra hand, och A / B för din r...

Smarta hem med arduino och jubito

jubito är en programvara som jag utvecklar jaNETramverk. En smart home server som skapas gränssnitt mellan olika hårdvara (som arduino) och programvarukomponenter, att förmågan att interagera varandra och låt mig tillgång automatiseringar och mer öve...

Raspberry Pi Solar väderstation

Sporrad av slutförandet av mina två tidigare projekt, den kompaktkamera och bärbar spelkonsol, ville jag hitta en ny utmaning. Det naturliga förloppet var ett utomhus remote system...Jag ville bygga en Raspberry Pi väderstation som kunde hålla sig ut...

Avlägsen kontrollerade relay

I detta projekt ska jag visa dig hur man gör en billig fjärr kontrollerade relä med en sändare och mottagare. Denna trådlösa relay kan användas på något och du kan upptåg dina vänner genom att ansluta den till en lampa och skrämma dem ;)Steg 1: Delar...

Öppna och modding ett Li-ion batteri och ansluter i en gadget att ladda vid behov

varför är detta användbart? När du gör en elektronik projekt, som en bärbar handhållen video spel konsolen system, det är inte lätt att hysa ett stort batteripaket innanför höljet; men om batteriet kan delas upp i två delar, det innebär att det är my...

Hur man gör en Sega DreamCast-konsol till en ackumulatorn driv handheld portable

första pic är av den färdiga artikeln, enligt sista sidan i guiden.INLEDNING:Det har bara varit om ett dussin sådana enheter i förflutnan från olika datorbyggare, en av dem var min för några år sedan. Därför tänkte jag det skulle vara trevligt att gö...

Namnet ritning CNC

Detta instructable skapades enlighet projektet kravet på Makecourse vid University of South Florida (www.makecourse.com).Med detta i åtanke är slutresultatet av detta projekt en CNC som helt klarar av att köra bort av GRBL, utan att uppfylla kraven i...

Driva din Arduino/AVR med ett Hand-Cranked batteri

om du någonsin velat driva din Arduino eller AVR från ett batteri för utveckling testning (batterierna har olika makt leverans kvaliteter än, säg, transformerad AC eller ens en reglerad vägg vårta i DC) testning men var trötta för att gå igenom batte...

En annan Arduino Counter

Adaptiv rapportering delar batch räknareEn räknare som kan anpassas till maskinen är monterad och rapportera data tillbaka till andra platser t.ex. handledare skrivbordHär är counter jag byggt som en fungerande prototyp för ett företag jag arbetade e...

DIY LED-tecken med MAX7219 Dot Matrix modul STM8S003F3 MCU för AVR PIC MSP430 Arduino ARM STM32

för att tillfredsställa DIY elektronikhobby, ICStation har utvecklat MAX7219 Dot Matrix modul. Det använder Max7219 chip som gör ett bra jobb på besparingen av MCU i /. Det inte bara kan kontrollera varje punkt individuellt, men också kan förlängas u...