Jan Holbrouck, Stijn Brysbaert

Slides:



Advertisements
Verwante presentaties
LCMS 1.3 Kort samenvatting “Wat is het verschil met CEDRIC?”
Advertisements

LRP PASTORALE EENHEID release 2.1 Koos Willemse.
Provinciale jeugdselectie ANTWERPEN
Work shop nieuwe functionaliteit Roy-data Nieuwe bevragings- en procesmogelijkheden release voorjaar 2014 Tjeerd Wierda.
Embedded systemen Embedded software.
Feedback applicatie Introductie in het gebruik Aanleiding •Wie? Het betreft de Autorisatie artsen en de eigen Huisarts van de Patiënt •Wat? Het betreft.
Databases via internet
VBS De Bron Meester Ronny Marc Horst
Door Ramòn Janssen, Tim Helwegen en Niels Killaars. Home Interaction System RJTHNK.
Beginnen met actieonderzoek Hoe pak je dat aan?
Licht mengen.
Greenfoot Workshop Bobby - Snake.
Welkom Webshop (PSH). Geachte klant, De online documentatie is vervangen in een webshop. Hier een korte beschrijving van de webshop, met daarin enkele.
Hoofdstuk 6: Controle structuren
Blok 7: netwerken Les 1 Christian Bokhove
Hulp op afstand Presentatie door Kick de Wolff Hulp op afstand Hulp op afstand Hoe kom ik van mijn SPAM af (afhankelijk van de beschikbare tijd) Hoe kom.
Game concept Samenvatting hoofdstuk 20 & 21. De waarde van esthetiek Het kan spelers aan trekken die het spel anders niet hadden gespeeld Het kan jouw.
Zet de telefoon aan en voer je pincode in.
Informatica Netwerken (1). Informatica Netwerken Verschillende afmetingen –LAN (Local Area Network) –MAN (Metropolitan Area Network) –WAN (Wide Area Network)
In vogelvlucht het wedstrijdformulier
Handleiding LoGiApp tbv Riwo Transport
1. Starten Zet de telefoon aan en voer je pin code in Als dit scherm verschijnt klik dan vervolgens op de Boordcomputer Icoon 2.1 Inloggen Log in door.
Magister voor ouders.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Hoe werkt een tracker eigenlijk ? In de ruimte zijn 24 GPS satellieten die in een baan om de aarde draaien op een hoogte van 20 km. Deze satellieten.
De PR van Inner Wheel Stilzwijgend of met tromgeroffel?
Groepsdynamica & Interactief communiceren
Windows niet meer naar huis laten bellen Hoe kunnen we beletten dat windows10 alles gaat verklikken aan grote broer thuis.
Inloggen >> Gegevensaanlevering en controle in Peridos In Release 3.3 van Peridos is er een nieuwe module gebouwd voor het aanleveren en bekijken van gegevens.
Bring Your Own Device OUDERAVOND BS D’N HEIAKKER DEURNE 3 JUNI 2014.
Gegarandeerde Aflevering. p. 2  Referte : unieke identificatie van berichten, vragen en antwoorden Vraag / Antwoord : De afzender dient voor elke vraag.
De PR van Inner Wheel Stilzwijgend of met tromgeroffel?
Presentatie nieuwe / aangepaste spelregels. Toelichting op de nieuwe spelregels met ingang van 1 juli 2016 Op 1 maart 2016 heeft de IHF de verschillende.
Uitleg bij de vragenlijst Veiligheidsbeleving
Internet of Things (IoT)
Navigatie Om ergens naar toe te gaan moet men de weg wel kennen.
Openen op 3-4 niveau Een hand met (erg) veel troeven is geschikt om daarmee nogal wat slagen te maken. Het betekent ook dat de tegenpartij daar niet zoveel.
Programmeren met Reeksen
Geert Hoogeveen Werken Met AVE Geert Hoogeveen
Basketball.nl app & mDWF
Hoe Kan je met vrienden en familie chatten in Gmail
Gameprogrammeren: Game Basics
Klik op een app voor meer informatie: -ZermeloZermelo -Its LearningIts Learning -OneDriveOneDrive -Kahoot!Kahoot! -QuizizzQuizizz -QuizletQuizlet -Aura.
Digitaal wedstrijd formulier
Digi(bord)boek project <titel project>
VeiligheidsRegioTwente
Versturen van data naar meerdere mensen
Big Data.
Webinar SharePoint Standaard Werkstromen
Big Data.
Kiezen met Kaarten.
ClupApp van HTV Berg & Dal
OPENINGSCASE: Het Okanagan-Skaha School District doet meer met minder door te profiteren van netwerken en internet.
3 vmbo-KGT Samenvatting Hoofdstuk 10
VIMTAG Keuzehulp voor het vinden van de juiste IP camera.
M5 Datacommunicatie Netwerklaag
Kiezen met Kaarten.
Wet op de privacy.
Golfregels 2019.
HANDLEIDING Stichting Schoenmakers Gilde Versie 1 – 15 december 2018.
Handleiding Prodas-app
Software Development fundamentals
Kiezen met Kaarten.
Sneak Preview voor CV&V Yvonne de Boer
Software Development fundamentals
Leren programmeren met Scratch
Software Development fundamentals
Netwerken & Internet 1.
EEN SPEL MAKEN MET SCRATCH
Wat is Bingel Raket? Gratis app voor iPad en Android-tablets
Transcript van de presentatie:

Jan Holbrouck, Stijn Brysbaert New Media – Beacon Game Jan Holbrouck, Stijn Brysbaert

Interactief spel Philips Hue Smartphones Azure IoT Hub Estimote Beacons Voor het maken van ons project hebben we twee new media devices met elkaar gekoppeld. Met de beacons en philps hue hebben we een interactief spel gemaakt met behulp van windows applicaties. Azure IoT Hub hebben we gebruikt voor de communicatie.

The Beacon Game Het spel

Het spel “Capture the point” principe 2 Teams 3 Checkpoints Beacon + Philips Hue = Checkpoint .Het spel is gebaseerd op het Capture the point principe, dit betekend dat je 3 checkpoints hebt. je krijgt punten per checkpoint die van jouw team is. Een checkpoint bestaat uit een philips Hue in combinatie met een Beacon. Om het spel te spelen, heb je 2 teams nodig van 5 personen. Je kan het echter ook met minder mensen spelen, zoals wij in ons demo zullen voortonen.

Regels - Doel 500 punten verzamelen Checkpoints veroveren Het doel van het spel is simpel: Je team moet sneller dan het andere team proberen om 500 puntente verzamelen. Dit kan je doen door checkpoints te veroveren, en te behouden.

Regels - Checkpoints Checkpoints veroveren In de meerderheid zijn Eens veroverd: niet verplicht aanwezig Neutraliseren (1 sec) Veroveren (2 sec) Veroveren + neutraliseren (3 sec) 1 punt / 2 sec / checkpoint Indien van jouw team Om checkpoints te veroveren, moet je in de meerderheid zijn aan een checkpoint. Een checkpoint heeft 3 standen: neutraal, van jouw team of van het andere team. Als een checkpoint van het andere team is, moet je het eerst neuraliseren vooraleer je het kan veroveren. Het neutraliseren gaat dubbel zo snel als het veroveren. Voor een neutraal checkpoint krijgt niemand punten. Voor een veroverd checkpoint krijgt het bezittende team 1 punt / 2 seconden. Als een checkpoint van jou is, en er staat niemand op, dan blijft die checkpoint behouden. Voor de duidelijkheid zal ik een voorbeeldsituatie tonen.

Voorbeeldsituatie In bovenstaande situatie heeft rood twee checkpoints en blauw één checkpoint. Dit betekend dat rood twee punten per seconde krijgt, en blauw maar één punt. Op checkpoint A zijn er drie mensen van het rode team aanwezig, en één iemand van het blauwe team. Dit betekend dat deze checkpoint behouden blijft door het rode team. Je ziet echter ook dat er op checkpoint B twee mensen van het blauwe team zitten, terwijl er maar één lid zit van het rode team. Dit betekend dat het punt na één seconde niet meer van rood zal zijn, maar neutraal zal worden (wit licht). Over verloop van tijd (aanpasbaar naar hoe je het wilt, momenteel ongeveer 5 seconden) zal checkpoint B niet meer neutraal zijn, maar van blauw zijn. Op checkpoint C, staan er evenveel leden van beide teams, wat resulteerd in een behouden stand van een checkpoint. Hetzelfde zou gebeuren als er van beide teams niemand aanwezig is. Speler 1 van het blauwe team, zit tussen de drie checkpoints in, en telt dus nergens mee. Ondanks speler 1, is dit een goede situatie voor het blauwe team, aangezien ze binnekort twee punten zullen hebben, als het rode team geen actie onderneemt.

Code - Variabelen Ik zal nu wat dieper ingaan op de code, zoals je hier ziet zijn dit ons globale variabelen. Deze hebben allemaal met de logica van het spel te maken. De cp1 staat voor de stand van checkpoint 1. 50 is neutraal, 0 is rood, en 100 is blauw. Dan hebben we nog voor elke checkpoint een variabele voor team 1 en voor team 2. Dit is een lijst van spelers die aanwezig is aan bij die checkpoint. INEUTRAAL en ICAPTURED wordt gebruikt om de stand van de checkpoint te bepalen. De score is vanzelfsprekend.

Code – Puntenberekening Zoals je hier kan zien, wordt calculatepoints uitgevoerd in onze timer, om de 2 seconden. Daarin wordt er voor elke checkpoint overlopen, van wie die is, en of er punten moeten toegekend worden. Om dit te berekenen, kijken we naar de lijsten van spelers aan checkpoints. Voor checkpoint 1 vergelijken we het aantal mensen in team 1, met het aantal mensen in team 2 aan de checkpoint. Als er meer van team 1 zijn, wordt de checkpointstand aangepast. Als de score 0 of 100 is, krijgt team 1 of team 2 score bij.

Infrastructuur

Infrastructuur

Estimote Beacons Localisatie

Estimote Beacons Platform Kleine computer Applicatie Processor Memory Bluetooth Sensoren Batterij Applicatie Een beacon is een klein apparaatje dat bestaat uit: ARM Processor Memory Bluetooth smart module Sensoren Temperatuur Bewegingssensor De beacon zendt voortdurend Bluetooth signalen uit die opgevangen kunnen worden door oa smartphones. Die signalen bestaan uit enkele gegevens, waaronder een MAC-adres en signaalsterkte Smartphones met compatibele app kan daarop reageren en adhv het MAC-adres weten welke beacon het is en via het signaal wat de afstand is. De batterij van zo’n beacon kan gemakkelijk 3 jaar meegaan, dankzij de Bluetooth low energy technologie Officieel zijn er enkel sdk’s voor android en ios, maar wij hebben een library gevonden de Universal Beacon Library for Windows 10 van Andijakl, dat beschikbaar is op github

Code In de constructor van de klasse wordt eerst de beaconmanager geinitialiseerd en wordt de watcher gestart, die voortdurend zal zoeken naar Bluetooth signalen

Daarna kan een methode opgeroepen worden die de lijst van beacons in de beaconmanager zal overlopen. Aangezien er meerdere apparaten gedetecteerd worden door de Bluetoothmanager zullen we filteren op MAC-adres zodat we enkel onze 3 beacons zien. Daarna zal, afhankelijk van de afstand, de juiste waarde in ons model gestoken worden en uiteindelijk zal dit doorgestuurd worden via de iot hub naar de centrale.

Philips Hue Visualisatie

Visualisatie Hue + Beacon = Checkpoint 3 standen Rood (Team 1) Blauw (Team 2) Neutraal (Niemand) Hue = teamkleur  Checkpoint veroverd De philips Hue gebruiken we ter visualisatie van de checkpoints. Zoals ik al eerder zei, vormen een Hue en een Beacon samen een checkpoint. Deze checkpoints hebben 3 mogelijke standen: Neutraal (wit), van team 1 (rood), en van team 2 (blauw). Als een Hue op jouw teamkleur staat, betekend het dat de checkpoint van jou is.

Code Deze code stuurt een webrequest naar de link van de router. We sturen in de body van de PUT request json mee. Deze json bevat of de lamp aan of uit moet staan, een HSB-waarde ( Hue, Saturation, Brightness) en de kleur van de lamp. Zo kunnen we due Hue’s besturen.

Azure IoT Hub Communicatie

Azure IoT Hub Communicatie Smartphone <-> Centrale Sent device to cloud Receive device to cloud Sent cloud to device Receive cloud to device De communicate tussen smartphone en centrale. De UWP app op de smartphone zal elke seconden een bericht naar de iot hub sturen met info over de afstand van de beacons. De centrale ontvangt alle berichten de alle devices die meedoen en verwerkt ze, zoals jan jullie eerder uitlegde.

Code - smartphone In de uwp app moeten enkele gegevens aanwezig zijn om te kunnen connecteren met de iothub. Elk device moet geregistreerd worden in de iothub. Hierdoor krijgt het een naam en key dat nodig zal zijn om berichten te kunnen versturen. De bovenste method toont hoe een bericht verstuurd wordt. We zullen eerst ons object omzetten in json en dan pas verzenden. De smartphone luistert ook hele tijd dmv een while lus naar eventuele berichten (dat kunnen meldingen zijn) van de centrale naar het device.

Code - centrale De centrale heeft de connectionstring van de iot hub nodig om berichten te kunnen versturen en ontvangen. Daarna wordt een while lus gestart die voortdurend nieuwe berichten zal ophalen en verwerken.

C# Geen processing

Geen Processing Processing & IoT hub Communicatie Smartphone – Centrale – Hue IoT hub Processing & IoT hub  UWP + Beacons + Hue + Console + IoT We hebben dus niet met processing gewerkt, om diverse redenen. Het is wel mogelijk, om via processing de Hue aan te spreken, maar om alles van communicatie zoals in de infrastructuur getoond via processing te doen, ontbraken er zaken. Er was nog geen library voor de IoT hub, en ook apps maken via processing en daarmee communiceren naar een UWP app leek ons niet mogelijk, en al zeker niet gedocumenteerd. Om deze redenen, hebben we dus alles via UWP gedaan, waar er wel documentatie en libraries voor waren.

Demo