Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de...

64
Geïntegreerde proef Racing Game 2020-2021 Naam: Hube Knaepkens Klas: T3EI6

Transcript of Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de...

Page 1: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

Racing Game2020-2021

Naam: Hube Knaepkens

Klas: T3EI6

Page 2: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Voorwoord

Ik ben Hube Knaepkens, 18 jaar en woon in Geel Ten Aard. In mijn vrije tijd ben ik vaak bezig met programmeren, gamen of iets anders computergerelateerd. Daarnaast vind ik skateboarden ook zeer tof om te doen. Een feestje ga ik normaal ook niet uit de weg maar door welbekende omstandigheden zijn de feestjes tot een minimum beperkt de laatste tijd.

De eerste 2 jaren van mijn middelbare school carrière heb ik op het Sancta Maria Instituut in Kasterlee gezeten waar ik STEM volgde. Al snel had ik door dat de richting me niet veel interesseerde omdat we veel te veel bezig waren met verschillende soorten wetenschappen. Omdat er geen betere optie was, heb ik de 2 jaar dan toch maar voltooid om in het 3de middelbaar naar het Sint Jozef in Geel te gaan waar ik in Mechatronische Wetenschappen ben gestart. De richting viel me opnieuw niet echt mee hoewel sommige leerstofdelen of vakken me al wat meer interesseerden. Wat me wel motiveerde was dat de leerkrachten tegen me bleven zeggen: “Hube, in het 5de jaar gaat er een speeltuin voor u open”. Door deze uitspraak heb ik me door het 3de en 4de geloodst en belandde ik in het 5de jaar Elektronica-ICT, het beste wat me ooit is overkomen.

Ik wil Geert Boeckx bedanken voor de goeie motivatie in het 3de en 4de jaar, Pedro Wyns voor het aanleren van bijna al de elektronica die ik nu ken en Thomas Smets voor het aanleren van al het programmeren en websites maken dat ik tot nu toe kan. Deze dingen gaan mijn verdere carrière mooi meegenomen zijn.

Hube Knaepkens Racing Game 2

Page 3: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Inhoudstafel

Voorwoord....................................................................................................2Inhoudstafel.................................................................................................3Figurentabel.................................................................................................51 Inleiding.................................................................................................62 Blokschema...........................................................................................73 Situatieschetsen....................................................................................84 Componenten........................................................................................9

4.1 Computer.........................................................................................94.2 Micro-controller................................................................................9

4.2.1 Raspberry Pi Zero W................................................................94.2.2 Arduino Pro Micro..................................................................104.2.3 Besluit....................................................................................11

4.3 Joystick controller...........................................................................114.4 Car controller..................................................................................124.5 Dashboard......................................................................................124.6 LED-strip.........................................................................................14

5 Game Design.......................................................................................155.1 Project aanmaken...........................................................................155.2 Functies / Animaties.......................................................................17

5.2.1 Checkpoint systeem..............................................................175.2.2 HUD animatie........................................................................185.2.3 Respawn vehicle....................................................................20

5.3 Map design.....................................................................................215.3.1 De map..................................................................................215.3.2 Opties....................................................................................215.3.3 Besluit....................................................................................24

6 Controllers...........................................................................................256.1 Joystick controller...........................................................................25

6.1.1 Joystick..................................................................................256.1.2 Drukknoppen.........................................................................266.1.3 Calibreren..............................................................................266.1.4 Virtuele joystick.....................................................................27

Hube Knaepkens Racing Game 3

Page 4: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20216.2 Car controller..................................................................................28

6.2.1 Frame....................................................................................286.2.2 Beeldscherm..........................................................................286.2.3 Stuur + Pedalen.....................................................................296.2.4 LED-strip................................................................................306.2.5 Dashboard.............................................................................33

7 Problemen...........................................................................................357.1 Joystick output error.......................................................................357.2 E-paper incompatible met Arduino.................................................377.3 Potentiometer stuur defect............................................................387.4 Drukknoppen montage fout...........................................................39

8 Prijslijst + Vermogen berekening........................................................409 Bestellijst Car controller.......................................................................4110 Besluit...............................................................................................4211 Gebruikte bronnen............................................................................4312 Bijlagen.............................................................................................44

12.1 Unreal Engine 4 code..................................................................4412.2 Arduino C code............................................................................55

12.2.1 Joystick controller..................................................................5512.2.2 Car controller.........................................................................56

Hube Knaepkens Racing Game 4

Page 5: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

FigurentabelFiguur 1 - Blokschema............................................................................................................................................7Figuur 2 - Situatieschets.........................................................................................................................................8Figuur 3 - Dashboard..............................................................................................................................................8Figuur 4 - Laptop....................................................................................................................................................9Figuur 5 - Pi Zero Specs........................................................................................................................................10Figuur 6 - Pi Zero..................................................................................................................................................10Figuur 7 - Joytsick.................................................................................................................................................11Figuur 8 - Drukknop..............................................................................................................................................11Figuur 9 - Stuur + Pedalen....................................................................................................................................12Figuur 10 - e-paper...............................................................................................................................................13Figuur 11 - LCD Display........................................................................................................................................13Figuur 12 - LCD Display Specs...............................................................................................................................14Figuur 13 - LED-strip Specs...................................................................................................................................14Figuur 14 - UE4 Logo............................................................................................................................................15Figuur 15 - UE4 Uitleg 1.......................................................................................................................................15Figuur 16 - UE4 Uitleg 2.......................................................................................................................................16Figuur 17 - UE4 Uitleg 3.......................................................................................................................................16Figuur 18 - UE4 Uitleg 4.......................................................................................................................................17Figuur 19 - UE4 Uitleg 5.......................................................................................................................................18Figuur 20 - UE4 Uitleg 6.......................................................................................................................................18Figuur 21 - UE4 Uitleg 7.......................................................................................................................................19Figuur 22 - UE4 Uitleg 8.......................................................................................................................................19Figuur 23 - UE4 Uitleg 9.......................................................................................................................................20Figuur 24 - Map....................................................................................................................................................21Figuur 25 – Place Tool..........................................................................................................................................22Figuur 26 - Paint Tool...........................................................................................................................................22Figuur 27 - Landscape Tool..................................................................................................................................23Figuur 28 - Geometry Editing Tool.......................................................................................................................23Figuur 29 - Foliage Tool........................................................................................................................................24Figuur 30 - World Outliner Tool............................................................................................................................24Figuur 31 - Controller 3D model...........................................................................................................................25Figuur 32 - Joystick...............................................................................................................................................25Figuur 33 - Arduino Code 0...................................................................................................................................26Figuur 34 - Arduino Code 1...................................................................................................................................27Figuur 35 - CAR Controller Frame.........................................................................................................................28Figuur 36 - Bevestigingsplaat 3D..........................................................................................................................28Figuur 37 - Arduino Code 2...................................................................................................................................29Figuur 38 - Arduino Code 3...................................................................................................................................31Figuur 39 - Master Slave......................................................................................................................................32Figuur 40 - Dashboard..........................................................................................................................................33Figuur 41 - Dashboard IRL....................................................................................................................................33Figuur 42 - Arduino Code 5...................................................................................................................................33Figuur 43 - Arduino Code 4...................................................................................................................................33Figuur 44 - UE4 Error............................................................................................................................................35Figuur 45 - Arduino Code 6...................................................................................................................................35Figuur 46 - e-Paper Done.....................................................................................................................................37Figuur 47 - LCD Done............................................................................................................................................37Figuur 48 - Potentiometer....................................................................................................................................38Figuur 49 - POT fix 1.............................................................................................................................................38Figuur 50 - POT fix 2.............................................................................................................................................38

Hube Knaepkens Racing Game 5

Page 6: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

1 Inleiding

Voor mijn GIP heb ik gekozen om een Racing Game te maken met bijhorende controllers. Met één van de controllers kun je de game besturen via joysticks en de andere controller is een race omgeving waar je in kan zitten en de game besturen, vergelijkbaar met een Playseat.

Dit eindwerk lijkt me een toffe uitdaging en het bereid me ook goed voor op wat ik wil gaan verder studeren, namelijk Game Development aan de Howest in Kortrijk. Hierdoor voel ik me zeer gemotiveerd om voor deze GIP te werken.

Ik heb dit project aangepakt door eerst een werkend prototype van mijn game te maken. Hierna heb ik een ruwe versie van de controllers gemaakt. Daarna heb ik de game grafisch er wat mooier laten uitzien, ookal is dit niet het doel van mijn eindwerk. Als laatste heb ik beide controllers verder afgewerkt zodat ze goed ogend en volledig functioneel zijn.

Hube Knaepkens Racing Game 6

Page 7: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

2 Blokschema

Mijn eindwerk is een zelf gemaakte race game, geprogrammeerd in Unreal Engine 4, dat kan bestuurd worden met mijn home made controllers. Één van de controllers is gemaakt van een Arduino Pro Micro, 2 joysticks, drukknoppen en een 3D-geprinte body. De andere controller is een race omgeving met pedalen, een stuur en een LED-strip die van kleur verandert afhangend van de acceleratie van de auto. Er is ook een dashboard waar

Hube Knaepkens Racing Game 7

Figuur 1 - Blokschema

Page 8: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021je de gevoeligheid van het stuur kan aanpassen met 2 drukknopen. Dit word dan procentueel weergegeven op een LCD Display.

3 Situatieschetsen

Hube Knaepkens Racing Game 8

Figuur 2 - Situatieschets

Page 9: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Figuur 3 - Dashboard

4 Componenten

In dit deel van mijn scriptie ga ik de componenten die ik overwogen heb met elkaar vergelijken. Ook worden de componenten die ik uiteindelijk gekozen heb hier uitgelegd.

4.1 Computer

Omdat ik gebruik maak van Unreal Engine 4, heb ik een computer nodig, aangezien dit alleen op een pc draait. Mijn game ontwerp ik alleen maar voor Windows computers. De game die ik heb ontworpen is 3D, hierdoor is een krachtige pc aangeraden. Hoofdzakelijk moet de grafische kaart up to date zijn. Ik heb een 2de handse laptop gratis kunnen bemachtigen door één van mijn klasgenoten. De laptop in kwestie is de Acer Nitro 5. De specificaties van deze laptop zijn: 15.6” display, Intel Core i5-7300HQ 2.5 GHz, 8GB RAM, 1TB HDD en een Nvidea Geforce 1050 Ti.

4.2 Micro-controller

Hube Knaepkens Racing Game 9

Dashboard

Figuur 4 - Laptop

Page 10: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

Figuur 6 - Pi Zero

T3EI6 2020 – 2021Voor beide game controllers had ik een micro-controller nodig. Er waren twee logische keuzes, een Raspberry Pi en een Arduino. Ik moest de micro-controller in een controller body verwerkt krijgen dus nam ik de kleinste versie van de Raspberry Pi en Arduino. Voor die reden heb ik de Raspberry Pi Zero W en de Arduino Pro Micro met elkaar vergeleken.

4.2.1 Raspberry Pi Zero W

De Raspberry Pi heeft Input / Output pinnen en een micro USB-voeding, perfect voor mijn toepassing. Ik zou er nog wel een GPIO header op moeten solderen als ik deze zou willen gebruiken. De prijs is ook aanvaardbaar. De Raspberry Pi heeft geen ADC ingebouwd, dit onderdeel is wel zeer belangrijk voor mijn toepassing.Kenmerken Van de Raspberry Pi Zero W:

Prijs: € 11,50

4.2.2 Arduino Pro Micro

De Arduino heeft ook alle elementen die ik nodig heb voor een controller. De Arduino kost een beetje meer dan de Raspberry Pi. Deze controller heeft al wel voorgesoldeerde GPIO pinnen. Het grootste voordeel van de Arduino is dat deze een ADC ingebouwd heeft. Een ADC dient om analoge componenten in te lezen, zoals mijn joysticks en potentiometers.

Hube Knaepkens Racing Game 10

Figuur 5 - Pi Zero Specs

Page 11: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

Figuur 7 - Joytsick

T3EI6 2020 – 2021Arduino Pro Micro kenmerken:

Prijs: € 17,23

4.2.3 Besluit

Ik heb voor de Arduino Pro Micro gekozen omdat ik een Joystcik library heb gevonden die ik kan gebruiken om de controller te programeren. Ook heb ik al ervaring met joysticks programmeren in Arduino C. Omdat ik de Arduino gebruik, heb ik dus ook geen ADC nodig

4.3 Joystick controller

Voor de eerste controller heb ik 2 drukknoppen en 2 joysticks nodig, dit word de joystick controller. Ik heb de goedkoopste Arduino compatibele knoppen en joysticks genomen met goede reviews, omdat dit voldoet voor mijn toepassing.

Kenmerken van de joystick:

Kenmerken van de drukknop:

Hube Knaepkens Racing Game 11

Page 12: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

4.4 Car controller

Voor mijn race omgeving heb ik een aantal dingen nodig, beginnend met een stuur en pedalen. Het stuur en de pedalen bevat potentiometers die de stand van van het stuur/pedaal door een analoog signaal naar buiten brengen. Ik heb deze kunnen overkopen van een vriend van mij. Beide het stuur en de pedalen werkt op 5V signaal van een usb 2.0 connectie. Op het stuur staan verschillende drukknoppen op die ik niet gebruik, ik heb alleen de potentiometers in het stuur en de pedalen nodig. Voor die reden heb ik alle andere aansluitingen afgeknipt en verwijdert uit het stuur.

Er moet natuurlijk ook nog een frame zijn waar je in gaat zitten. Deze heb ik gebruikt van een vorig project waar ik aan gewerkt heb. Er hingen nog

Hube Knaepkens Racing Game 12

Figuur 8 - Drukknop

Figuur 9 - Stuur + Pedalen

Page 13: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021een heleboel andere onderdelen aan die ik niet nodig had, deze heb ik gedemonteerd.

In de frame moet natuurlijk een beelscherm bevestigt worden. Op de ICT-dienst van mijn school heb ik een scherm meegekregen. Het is een standaard scherm met een resolutie van 1080x1920 en het heeft een refreshrate van 60Hz.

4.5 Dashboard

Voor mijn dasboard heb ik 2 drukknoppen nodig. Hiervoor neem ik standaard drukknoppen die in mijn Arduino starterkit kwamen.

Op mijn dashboard staat nog een e-paper waar ik de gevoeligheid van het stuur op weergeef. Ik had hier keuze tussen verschillende resoluties en of het een kleur display was. Ik heb gekozen voor een resolutie van 200 x 200 omdat dit groot genoeg was voor mijn toepassing. Ik heb voor de kleur display gekozen in plaats van dezwart-wit versie omdat dit wat mooier is voor het oog, de kleur versie koste ook maar 50 cent meer.

Kenmerken e-paper:

Hube Knaepkens Racing Game 13

Figuur 10 - e-paper

Page 14: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Na een aantal tests bleek dat de e-paper niet compatibel was met mijn de Arduino Micro, voor de volledige beschrijving van het probleem zie sectie ‘Problemen’ van mijn scriptie. De tweede optie voor een display was een LCD. Met deze optie ben ik uiteindelijk ook gegaan. De LCD is 16x2 groot, dit wil zeggen dat je 16 karakters per rij kan weergeven en je hebt 2 rijen.Deze LCD heeft me geen geld gekost, vermits deze op school nog voorradig waren.Kenmerken LCD Display:

4.6 LED-strip

Rond de frame hangt een RGB LED-strip (APA 102) die van kleur verandert naargelang de acceleratie van de auto in de game. Op school was nog een bruikbare LED-strip.

Kenmerken van de LED-strip:

Hube Knaepkens Racing Game 14

Figuur 11 - LCD Display

Figuur 12 - LCD Display Specs

Figuur 13 - LED-strip Specs

Page 15: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021De LED-strip heeft een 5V externe PSU nodig. Die hadden we ook nog op school liggen. De PSU die ik gebruik is 5V/3A. De PSU voldoet voor een 2 meter lange LED-strip zolang er niet naar alle LED’s de kleur wit word gestuurd, dit heb ik niet nodig voor mijn toepassing.

5 Game Design

Om een game te maken heb je eerst een game engine nodig. Hiervoor heb ik Unreal Engine 4 gekozen. Dit is een welbekende engine. Fortnite, Rocket League en vele andere bekende games zijn met deze engine gemaakt. Ook is dit de engine die word gebruikt in de hogeschool waar ik naar toe wil gaan.

Unreal engine is een grafische programmeeromgeving die gebaseerd is op C++. Dit wil zeggen dat je voor bepaalde schriftelijke regels code grafische blokken op je scherm hebt. UE4 geeft ook de optie om zelf C++ code te schrijven en dit te importeren.

5.1 Project aanmaken

Hube Knaepkens Racing Game 15

Figuur 14 - UE4 Logo

Page 16: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021Om een nieuwe game (project genoemd in UE4) te maken open je eerst Unreal Engine 4. Daarna klik je op New Project en selecteer je de Vehicle Advanced preset.

Als je deze preset hebt geselecteerd moet je nog een aantal opties

aanklikken. Bij de eerste optie kies je of je een game wilt maken voor computers en consoles of mobile. Ik maak men game voor destop dus selecteer de optie Desktop / Console. Bij de tweede optie kies je de grafische kwaliteit waar je de game in wilt hebben. Ik heb een best krachtige pc en ik wil dat mijn game er mooi uit ziet, dus kies ik voor de optie Maximum Quality. Daarna heb je nog de optie om te kiezen of je starter content wil of niet. Hier klikte ik With Starter Content omdat dit makkelijker is om alleen een game te maken, zodat ik al wat basis materialen, obstakels, etc heb om een game mee te ontwerpen.

Nadat je al de opties hebt doorlopen, moet je nog de plaats waar je het project wilt opgeslagen aanduiden. Je geeft het project nog een naam. Neem een schijf waar veel plaats is om je project op te slagen want dit kan enkele GB’s groot worden.

Hube Knaepkens Racing Game 16

Figuur 15 - UE4 Uitleg 1

Figuur 16 - UE4 Uitleg 2

Figuur 17 - UE4 Uitleg 3

Page 17: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Als je dit allemaal hebt gedaan klik je op Create Project. Nu is je project aangemaakt en klaar om te beginnen designen.

5.2 Functies / Animaties

In de loop van het maken van mijn game heb ik heel wat functies en animaties ontworpen. Ik zal hieronder de belangrijkste dingen aanhalen. De volledige code vind u terug in de bijlagen.

De Vehicle Advanced preset komt al met een werkende auto model en wereld settings zodat deze optimaal zijn om een race game te ontwerpen. Als eerste heb ik alles in de map die mee wordt gegeven met de preset verwijderd, tot dat er alleen nog maar een simpel vlak overbleef met een skybox.

5.2.1 Checkpoint systeem

Daarna heb ik een checkpoint systeem gemaakt. Het checkpoint systeem bestaat uit vuur cirkels waar je in de juiste richting moet door rijden om te activeren. Als je door alle checkpoints bent gereden heb je een ronde afgelegd.

Hube Knaepkens Racing Game 17

Figuur 18 - UE4 Uitleg 4

Page 18: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021Op figuur 18 staat de algemene code om het checkpoint systeem te laten werken. Er zijn nog heel wat bijhorende functies maar die leg ik hier niet uit. De bijhorende functies zijn te vinden in de bijlage.

De code word geactiveerd als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door het checkpoint rijden. Dan checkt de code of je wel in de juiste richting door het checkpoint bent gereden. Dit doet hij door je snelheid en de oriëntatie van de wereld op de x-as te vergelijken met 0. Als deze condition True is, is het checkpoint gecleared en word dit checkpoint onzichtbaar.

5.2.2 HUD animatie

In de rechter boven hoek van het beeldscherm bevind zich een kader waarin belangrijke dingen worden weergegeven: ronde tijd, aantal rondes en veel meer.

Hube Knaepkens Racing Game 18

Figuur 19 - UE4 Uitleg 5

Page 19: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021Daarnaast heb ik ook nog een slide in kader ontworpen. Deze kader komt in beeld geschoven langs de rechter kant als je een nieuw lap record of race record hebt.Dit heb ik allemaal gemaakt in de HUD blueprint. Deze is terug te vinden in de User Interface map. Als je deze blueprint opent kom je in een soort videobewerker en animatie ontwerper. Figuur 21 is een screenshot van de HUD blueprint.

Eerst maakte ik mijn kader ontwerp. Daarna gebruikte ik de timeline om er animaties van te maken indien nodig. De software spreekt redelijk voor zichzelf hier en is niet moeilijk te volgen. In mijn kader heb ik heel wat variabelen staan die in de functies gebruikt worden. In de code van figuur 22 update ik deze variabelen naar de HUD blueprint

Hube Knaepkens Racing Game 19

Figuur 20 - UE4 Uitleg 6

Figuur 21 - UE4 Uitleg 7

Page 20: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021functies. Deze functies zal ik niet aanhalen maar zijn terug te vinden in de bijlagen.

5.2.3 Respawn vehicle

De RespawnVehicle functie laat de auto respawnen als deze ondersteboven ligt zodat de hele game niet herstart moet worden. Als de auto ondersteboven ligt en deze beweegt niet wordt hij terug naar het vorige checkpoint geteleporteerd.

In figuur 23 gebruik ik de functie RespawnVehicle die ik heb aangemaakt en voer ze uit als de auto ondersteboven ligt. De variabele Respawn Location komt overeen met het vorige checkpoint.

Hube Knaepkens Racing Game 20

Figuur 22 - UE4 Uitleg 8

Figuur 23 - UE4 Uitleg 9

Page 21: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20215.3 Map design

In bijna elke game ooit gemaakt, bevindt de speler zich in een map. Dit is in mijn zelf ontworpen game ook het geval. De map waar de speler zich in bevindt, is een race baan die zo snel mogelijk moet afgelegd worden met een auto.

5.3.1 De map

1. Tribune2. Kombocht3. Looping4. Brug5. Slalom parcours

5.3.2 Opties

In Unreal Engine 4 zijn er verschillende opties en mogelijkheden om de wereld te bewerken.

5.3.2.1 Place

De Place tool wordt gebruikt om objecten te plaatsen. Er zijn

Hube Knaepkens Racing Game 21

Figuur 24 - Map

Page 22: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021verschillende opties: Basic, Lights, Cinematic, .... Er is ook de mogelijkheid om objecten te importeren. Dit wil zeggen dat je zelf objecten ontwerpt of download van het internet en deze dan gebruikt om in je game te plaatsen. Met deze objecten maak je de voorwerpen in je map. In mijn geval is dit een baan, looping, brug, ....

5.3.2.2 PaintDe Paint tool wordt gebruikt om de geplaatste objecten te “verven”. Dit wil zeggen dat er heel veel verschillende opties zijn om het geselecteerde object te kleuren.

Hube Knaepkens Racing Game 22

Figuur 26 - Paint Tool

Page 23: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20215.3.2.3 Landscape

Met de Landscape tool kun je het landschap van een wereld bewerken. Dit houdt in dat er verhogingen en verlagingen in de wereld kunnen aangebracht worden. Enkele voorbeelden hiervan zijn: bergen, dalen, ... . In mijn game gebruik ik deze tool niet, mijn racing game vereist geen hoogteverschillen.

5.3.2.4 Geometry EditingGeometry Brushes zijn de meest basic manier om de map te bewerken. De Geometry Brush is het handigste om te gebruiken in het begin van het proces van het level te bewerken. Deze tool word gebruikt om dingen uit te snijden en op te vullen.

Hube Knaepkens Racing Game 23

Figuur 27 - Landscape Tool

Figuur 28 - Geometry Editing Tool

Page 24: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20215.3.2.5 Foliage

De Foliage tool is een manier om de Static Mesh van een Actor of geometry te bewerken. Dit wil zeggen dat je het “skelet” van een object verder kunt bewerken. Dat object kan gaan van een boom tot een kat.

5.3.2.6 World OutlinerDe World Outliner geeft alle acties weer die je hebt gebruikt in het aanpassen van de map. Dit is zeer handig om te zien hoe je in een eerdere moment een bepaalde bewerking hebt gedaan. Het aanpassen van foutieve stappen is ook een groot voordeel van deze tool.

5.3.3 Besluit

Mijn racing game heeft een zeer simpele map. Dit is omdat het doel van mijn eindwerk niet het grafische gedeelte is maar wel het programmeren van mijn game en bijhorende controllers.

Hube Knaepkens Racing Game 24

Figuur 29 - Foliage Tool

Figuur 30 - World Outliner Tool

Page 25: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20216 Controllers

6.1 Joystick controller

Voor mijn joystick controller heb ik 2 drukknoppen vooraan de controller en 2 joysticks midden op de controller. Als eerste stap heb ik een 3D model gemaakt van mijn controller in Autodesk Inventor. Ik heb deze laten 3D printen. Hierna heb ik op een breadboard een prototype van mijn controller gemaakt. Ik gebruik de Arduino Pro Micro om de inputs van mijn componenten om te zetten in een output dan mijn computer via USB kan inlezen als virtuele controller.

6.1.1 Joystick

Een joystick bestaat uit 2 potentiometers die een analoog signaal naar de output pinnen stuurt. De waardes gaan van 0 tot 1023. Deze waardes kan de arduino inlezen door middel van een ingebouwde ADC.

Een ADC staat voor Analoog Digitaal Converter. Deze zet analoge signalen om in digitale getallen, die kunnen worden opgeslagen als data of verwerkt in software. Een ADC heeft 2 hoofdfuncties: samplen en kwantiseren.Over een bepaalde tijd worden samples genomen van het analoge signaal dat er wordt binnengekregen. Een ADC heeft een aantal metingen per seconde. Dat heet samplerate. Bij elke sample meet de ADC de waarde van het analoge signaal en zet deze om in binaire getallen. Een ADC is te vergelijken met een voltmeter: deze meet bij elke sample het analoog signaalniveau. Dit getal wordt afgerond en geeft een binair getal op de output. Het afronden word kwantiseren genoemd. Bij een ADC

Hube Knaepkens Racing Game 25

Figuur 32 - Joystick

Figuur 31 - Controller 3D model

Page 26: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021kun je de bitdiepte kiezen, deze bepaalt tot hoeveel getallen na de komma er wordt afgerond.

In Figuur 27 staat er welk command er gebruikt wordt om de analoge waardes van de joystick om te zetten in een binair getal van 0 – 255. Dit getal wordt omgezet door de joystick librarie in een virtuele controller. Deze regel code kan je ook in de afbeelding zien.

6.1.2 Drukknoppen

Mijn controller heeft 2 drukknoppen. Deze kunnen worden gebruikt om gas te geven of te remmen in plaats van de rechter joystick, afhankelijk van de gebruiker zijn voorkeur. Het inlezen van de drukknoppen wordt gedaan door een digitale input zonder weerstanden omdat deze al ingebouwd zijn in de drukknoppen. In figuur 26 gebruik ik een simpele if/else statement om te zeggen, als deze knop ingedrukt word moet op de virtuele joystick knop … ingedrukt worden. Ik gebruik knop 7 en 8 op de virtuele joystick.

6.1.3 Calibreren

Als de Arduino nu aangesloten wordt op de computer met een USB naar micro USB-kabel werkt de controller nog niet. Eerst moet de controller nog gekalibreerd worden in Windows. Dit doe je door naar Configure USB Controller te gaan in Windows settings. Na een simpele kalibratie werkt de controller naar behoren. De auto in de Racing Game kan nu bestuurd worden met de controller.6.1.4 Virtuele joystick

Hube Knaepkens Racing Game 26

Figuur 33 - Arduino Code 0

Page 27: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021Hier zal ik het belangrijkste stukje code van de joystick controller toelichten. Dit stuk code leest eerst de analoge waardes van de joystick in en zet deze om naar een joystick positie (0-1023,255-0). De laatste lijn code zorgt er voor dat deze positie naar een virtuele joystick geschreven word. Deze virtuele joystick kan Windows begrijpen. De volledige code bevind zich onderaan in de bijlagen.

6.2 Car controller

Hube Knaepkens Racing Game 27

Figuur 34 - Arduino Code 1

Page 28: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021Als tweede controller heb ik een race auto omgeving met stuur, pedalen en dashboard. Dit is allemaal verwerkt in een aluminium frame waar een scherm en speakers in hangen. Achter de stoel staat de computer waar de game op draait. Hieronder ga ik elk onderdeel apart bespreken.

6.2.1 Frame

Ik heb gebruik kunnen maken van een bestaand frame afkomstig van een niet-afgewerkt go-cart project van het vorig schooljaar. Om het frame aan te passen naar mijn huidig project ben ik begonnen met alles te demonteren van motoren: assen, lagers, zonnenpanelen, ... .

6.2.2 Beeldscherm

Om het scherm te bevestigen aan het frame gebruik ik een plaat uit MDF, 6mm dik. Deze bevestigingsplaat heb ik eerst 3D getekent int Autodesk Inventor, later heb ik deze gelasercut. Onderaan in de plaat bevindt zich een gat voor de voedings– en HDMI-kabel. De plaat is tussen de 2 grote verticale balken geschoven. Het scherm word vastgeschroefd op de plaat door middel van de op maat gemaakte gaten in de bevestigingsplaat. De bevestigingsplaat word weergegeven op figuur 29.

6.2.3 Stuur + Pedalen

Hube Knaepkens Racing Game 28

Figuur 35 - CAR Controller Frame

Figuur 36 - Bevestigingsplaat 3D

Page 29: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021In mijn race omgeving hoort er natuurlijk ook een stuur met bijhorende pedalen. Deze zijn afkomstig van een xbox 360. Om ze te laten werken met mijn game heb ik alle overbodige draden los geknipt en de draden die ik wel nodig had, heb ik verlengd en naar een Arduino Micro omgeleid.

Voor deze controller heb ik dezelfde library gebruikt als mijn joystick controller. Ik heb hetzelfde principe gebruikt met dit verschil dat ik de joystick potentiometers vervangen heb door de potentiometers van het stuur en de pedalen. In figuur 30 zie je de loop die mijn code doorloopt.

Figuur 37 - Arduino Code 2

Zoals bij de joystick controller lees ik de potentiometers in met dezelfde code. Als het rempedaal ingedrukt wordt van waarde 100 tot 500 is de virtuele knop 8 ingedrukt. Dit heb ik in mijn game gemapt naar de rem. Als het rempedaal helemaal word ingedrukt (waarde > 500) wordt de virtuele knop 8 losgelaten en wordt de gaspedaal variabele naar -100 gezet. Dit komt overeen met achteruit rijden. Door deze code kun je door het

Hube Knaepkens Racing Game 29

Page 30: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021rempedaal licht in te drukken remmen. Als je het pedaal helemaal indrukt, stop je bruusk en rijd je acherruit.

6.2.4 LED-strip

In de frame hangt ook een LED-strip die veranderd van kleur afhankelijk van de versnelling van de auto. Hoe meer het gaspedaal ingedrukt wordt, hoe roder de LED-strip kleurt. De LED-strip gaat van groen naar rood.

6.2.4.1 Soorten

Er zijn 2 soorten LED-strips: analoog en digitaal. Ze worden op aparte manieren bestuurd.

Een analoge strip komt voor in mono color (1 kleur) of in RGB (volledig kleuren spectrum). Een LED-strip is opgedeeld in verschillende segmenten met metalen contactpads waar de aansluitkabels op vastmaakt kunnen worden. De LED-strip kan aan gelijk welke pad afgeknipt worden om in verschillende stukken op gedeeld te worden. Voor elk segment zijn de LED’s in serie geschakeld, dat betekent dat de stuur spanning optelt. Al die segmenten zijn dan parallel geschakeld zodat ze allemaal de zelfde spanning krijgen tot op het einde van de strip. De stroom daarentegen loopt wel op met elk segment dat je toevoegt aan de LED-strip. Al de LED’s op de strip gedragen zich dan als één LED. Ze zijn niet adresseerbaar, je kan ze dus niet apart aansturen.

Op de LED-strip zijn RGB LED’s en driver chips aanwezig, zodat de LED’s individueel controleerbaar zijn. Het voordeel is dat deze LED’s wel adresseerbaar zijn; je kunt gelijk welke LED in gelijk welke kleur laten oplichten. Zoals de analoge strip kan de digitale strip op eender welke plaats afgeknipt worden om meerdere LED-strips te vormen. Om de digitale strip aan te sturen is een micro-controller nodig. Al het werk gebeurt in de software. Je kiest welke LED’s welke kleur moeten hebben en stuurt het via de data-pinnen naar de LED-strip.

Hube Knaepkens Racing Game 30

Page 31: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

De LED-strip die in dit project wordt gebruikt is een digitale APA 102. Ook was alleen maar een digitale LED-strip beschikbaar was op school. Omdat dit een APA type strip is, kan er veel sneller data worden verzonden dan het 800KHz protocol van een WS type strip. De APA strip maakt namelijk gebruik van SPI om zijn data te verzenden. Deze is gekozen omdat hij gesofisticeerder is dan een analoge LED-strip.

6.2.4.2 Kleur weergeven

Figuur 38 - Arduino Code 3

Om mijn LED-strip aan te sturen maak ik gebruik van de FastLED library. In figuur 31 staat de formule: Color = (30 – (POTgas/2). Deze formule heb ik bedacht om mijn LED-strip van groen naar rood te laten gaan afhankelijk van de positie van het gaspedaal. De formule heb ik kunnen opstellen door verschillende waardes te testen en te kijken welke kleur ze weergaven. Dan heb ik een verband gezocht tussen de gaspedaal waarden van de potentiometer en de weergegeven kleur. De for-loop stuurt de variable Color naar elke LED van de LED-strip.

6.2.4.3 SPI

Hube Knaepkens Racing Game 31

Page 32: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021De LED-strip maakt gebruik van SPI om zijn data te ontvangen. SPI staat voor Serial Peripheral Interface. Het is een synchrone seiriële verbinding of datalink tussen twee componenten. SPI werkt met het principe van een Master en een Slave.

Benamingen:SCLK: seriële clock, wordt geleverd door de masterMOSI: Master Output Slave InputMISO: Master Input Slave OutputSS: Slave Select

De communicatie tussen de master en de slave gebeurt in een full duplex, dit wil zeggen dat er op hetzelfde moment in 2 richtingen kangecommuniceerd worden. Het beginnen van de communicatie kan alleen maar door de master gebeuren. Met SPI is het mogelijk om meerdere verbindingen te hebben, op voorwaarde dat de slaves een andere Chip Select hebben. De Chip Select ook wel Slave Select genoemd van een component is het adres dat de master nodig heeft om naar deze component data te sturen. Als er naar een bepaalde Slave wordt gestuurd zal deze zijn Slave Select lijn een logische 0 worden, is de master klaar met sturen, dan wordt de Slave Select lijn van de component terug een logische 1.

De LED-strip die aan mijn framebevestigd zit, maakt dus gebruik van SPI om te communiceren met de Arduino Micro. Om deze LED-strip aan te sturen sluit je de SCLK, MOSI, MISO en SS pinnen aan en download je een

Hube Knaepkens Racing Game 32

Figuur 39 - Master Slave

Page 33: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021SPI library. Deze library kan voorgeprogrammeerd zijn in de micro-controller, dit is bij de Arduino Micro het geval.

6.2.5 Dashboard

Onder het stuur is een dashboard bevestigd. Hierop staat een LCD met 2 drukknoppen. Met deze drukknoppen kun je de gevoeligheid van het stuur aanpassen, wat procentueel wordt procentueel weergegeven op de LCD

Voor het dashboard gebruik ik een Arduino UNO. Dit zou ook kunnen met mijn Arduino Micro, maar dan zou er een gebrek aan pinnen zijn als alle andere componenten zijn aangesloten. Daarom is voor het dashboard een aparte micro-controller gebruikt. Het dashboard werkt hier perfect mee.

Het Arduino programma leest de drukknoppen in na gegeven tijdsinterval. Dan past het de variabele Sens aan met een simpele if/else-statement. De variabele Sens geeft de sensitivity/gevoeligheid van het stuur weer. In een ander deel van de code(figuur 35 + 36) staat dat de waarde van de

Hube Knaepkens Racing Game 33

Figuur 40 - Dashboard

Figuur 41 - Dashboard IRL

Figuur 43 - Arduino Code 4

Figuur 42 - Arduino Code 5

Page 34: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021potentiometer wordt vermenigvuldigd met de variabele Sens oftewel met (2-Sens) om een andere stuurgevoeligheid te bekomen in het spel.

Hube Knaepkens Racing Game 34

Page 35: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

7 Problemen7.1 Joystick output error

De joystick controller die ik gemaakt had, werkte in andere games zoals Dirt 3, maar niet in deze racing game.

Om het probleem op te lossen, heb ik eerst geprobeerd om andere inputs te gebruiken in Unreal, namemijk GenericController inputs i.p.v. GamePad inputs.

Dit resulteerde in mijn auto die toertjes reed uit eigen beweging. Hieruit kan ik afleiden dat de game andere waardes binnenkreeg dan ik naar buiten stuurde met mijn controller. Toen heb ik in het Arduino programma zo geprogrammeerd dat, zodra ik mijn joystick naar een positie bewoog, deze de uiterste toebehorende waarde nam. Bijvoorbeeld: bij jet naar boven duwen van de controller, stuurde ik meteen de maximale waarde(255) als uitgang op de y-as.

Dit werkte niet, Hieruit leerde ik dat er een fout moest zijn in het overgaan van Windows naar mijn game en niet in mijn controller die foute waardes op de output gaf. Ik besloot mijn Xbox ONE controller aan te sluiten, deze werkte perfect met mijn game. Na het probleem te googelen kan, ik

Hube Knaepkens Racing Game 35

Figuur 44 - UE4 Error

Figuur 45 - Arduino Code 6

Page 36: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021besluiten dat ik Windows moet laten denken dat mijn controller een Xbox controller is. Hiervoor heb ik een Xbox controller emulator gedownload en in de game files geplaatst. Na een korte set-up van mijn assen en knoppen te mappen werkt de controller nu volledig.

Hube Knaepkens Racing Game 36

Page 37: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20217.2 E-paper incompatible met Arduino

Een ander was dat de e-paper niet goed samenwerkte met de Arduino Micro die ik gebruik om deze aan te sturen. Het probleem zat niet in de werking op zich, maar in het feit dat de Arduino niet genoeg opslaggeheugen had voor de e-paper afbeeldingen. Een e-paper heeft namelijk een afbeelding nodig die wordt omgevormd naar cpp-bestand dat instructies bevat voor de e-paper om zijn pixels zwart of wit te maken. Aangezien de Arduino Micro een micro-controller is heeft deze geen externe opslagruimte buiten zijn Flash Memory. In het geval van de Arduino Micro is dit maar 32 kB waar al 4kB van gebruikt wordt door de bootloader.

Voor mijn toepassing had ik een e-paper nodig die de gevoeligheid procentueel weergeeft en had ik dus meerdere afbeeldingen nodig die naar cpp-instructies werden omgevormd. De arduino Micro kon er maar 1 tegelijk opslagen.

Na uren zoeken op het internet kon ik geen goede oplossing vinden. Ik heb als alternatief een LCD Display gebruikt. Een LCD heeft namelijk geen afbeelding nodig. Deze maakt gebruik van een library om tekst weer te geven op zijn LCD Display.7.3 Potentiometer stuur defect

Hube Knaepkens Racing Game 37

Figuur 46 - e-Paper Done

Figuur 47 - LCD Done

Page 38: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021In het stuur dat ik gebruik om mijn race game te besturen, zit een potentiometer om de positie van het stuur te bepalen.

Een potentiometer is een variabele weerstand: de waarde kan worden gewijzigd door de as te draaien, dus werkt een potentiometer als een soort spanningsdeler. Door de as te draaien kan het signaal opgesplitst worden en in verschillende richtingen (aarde of output) gestuurd.

Tijdens het testen brak de potentiometer plots af alsook het bevestigingssysteem. Dezelfde soort potentiometer was niet meer voorhanden op school. Ik heb dan maar niets beter gevonden dan de potentiometer die op figuur 41 word afgebeeld zodanig af te vijlen, zodat deze in het stuur zou passen. Na wat prutswerk en hardhandig deze in het stuur te duwen, paste hij goed. Ik heb een nieuw bevestigingsplaatje gemaakt, dat ik kan vastschroeven in de gaatjes die al in het stuur aanwezig waren. Dit word weergegeven op figuur 42 + 43. De stuur contraptie werkt even goed als van te voren en ik heb er nog geen enkel probleem mee gehad.

Hube Knaepkens Racing Game 38

Figuur 48 - Potentiometer

Figuur 49 - POT fix 1

Figuur 50 - POT fix 2

Page 39: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20217.4 Drukknoppen montage fout

Op het dashboard zitten 2 drukknoppen om de gevoelgheid van het stuur aan te passen. Die gevoeligheid wordt dan weergegeven op een LCD.

Dit concept van dashboard werkte volledig toen het nog een prototype was op een breadboard. Na het volledig monteren van mijn Car controller werkte de drukknoppen van het dashboard opeens niet meer.

Na het uitmeten van alle draden bleek dat de drukknoppen wel de nodige spanning kregen, hier lag het probleem dus niet. Op advies van mijn leerkracht heb ik het aansluitschema getekent, toen werd het opeens zeer duidelijk, De draden waren op verkeerde volgorde aangesloten. Op figuur ‘x’ ziet u het juiste aansluitschema.

Om een drukknop juist aan te sluiten kom je van de 5V naar een weerstand R1 van 390 Ohm dan de drukknop zelf, daarna een aftakking naar de DataPin een een microcontroller, als laatse een R2 van 4K7 die met de ground is verbonden. Mijn fout was dat ik de DataPin achter R2 had gesoldeert. Door deze van plaats te wisselen werkt alles nu naar behoren.

Hube Knaepkens Racing Game 39

Figuur 51 - Drukknop Schakeling

Page 40: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 20218 Prijslijst + Vermogen berekening

Hube Knaepkens Racing Game 40

Figuur 52 - Prijslijst

Figuur 53 - Vermogen berekening

Page 41: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

9 Bestellijst Car controller

Figuur 54 - AL45/45L 4G

 

50cm (2x) 

45cm (1x) 

96cm(x2) 

139cm(x2) 

 

 

AL008: afdekplaat voor profiel 45x45 

(4x) 

 

 AL053 

 verstevigingsprofiel 45 - 360mm (2x) 

 

 AL041 

 zwee 45 verzinkt staal (6x) 

 

Hube Knaepkens Racing Game 41

Page 42: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

10 Besluit

Tijdens mijn GIP heb ik mijn volledige gedachtegang kunnen realiseren dat ik in het begin van dit schooljaar had, dit houd in: Een racing game met bijhorende controllers. Éen van deze controllers is een joystick controller te vergelijken met een PlayStation controller en de andere een race omgeving die je kan vergelijken met een Playseat.

Als er personen geïnteresseerd zouden zijn om mijn GIP na te bouwen, raad ik het volgende aan, neem voldoende de tijd om alles zorgvuldig te documenteren zodat je niks vergeet van de dingen die je al voltooid of geprobeerd hebt.

Hube Knaepkens Racing Game 42

Page 43: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

11 Gebruikte bronnen

https://forum.arduino.cc/index.php?topic=408812.0https://www.analog.com/media/en/technical-documentation/dsp-book/dsp_book_Ch15.pdfhttps://www.youtube.com/watch?v=bDikklGx-tMhttp://www.geekmomprojects.com/gyroscopes-and-accelerometers-on-a-chip/https://github.com/MHeironimus/ArduinoJoystickLibraryhttps://www.tweaking4all.nl/hardware/arduino/arduino-ws2812-led/https://www.instructables.com/Getting-Started-With-E-Paper-Display-Modules/https://forum.arduino.cc/index.php?topic=487007.0https://www.waveshare.com/wiki/1.54inch_e-Paper_Modulehttps://www.youtube.com/watch?v=-XbwDC2AOOw&feature=youtu.behttps://community.particle.io/t/e-ink-display-doesnt-work/36047https://forum.arduino.cc/index.php?topic=485561.0https://www.youtube.com/watch?v=OPaCF-XJhqchttp://components101.com/displays/16x2-lcd-pinout-datasheethttps://www.instructables.com/Intro-to-LED-Strips/https://www.luxalight.eu/nl/producten/led-strip/luxalight-long-life-led-strip-hd107s-digitaal-spi-rgb-beschermd-high-pow

Hube Knaepkens Racing Game 43

Page 44: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

12Bijlagen

12.1 Unreal Engine 4 code

Hube Knaepkens Racing Game 44

Page 45: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 45

Page 46: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 46

Page 47: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 47

Page 48: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 48

Page 49: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 49

Page 50: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 50

Page 51: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 51

Page 52: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 52

Page 53: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 53

Page 54: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 2021

Hube Knaepkens Racing Game 54

Page 55: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 202112.2 Arduino C code12.2.1 Joystick controller

Hube Knaepkens Racing Game 55

Page 56: Voorwoord€¦  · Web view2021. 3. 1. · De code word geactiveert als je auto overlapt met de hitbox van het ckeckpoint m.a.w. door de checkpoint rijden. Dan checkt de code of

T3EI6 2020 – 202112.2.2 Car controller

Hube Knaepkens Racing Game 56