Ik volg op school nog steeds de innovatieroute Smart Mobile. Een semester Smart Mobile bestaat uit twee periodes: de eerste periode maak je zelfstandig een app en in de tweede periode ontwikkel je in groepsverband een applicatie. Dit keer was de tweede periode aangebroken, dus het was de bedoeling dat we in een groepje een app gingen ontwikkelen.

De opdracht van de opdrachtgever was om een app te gaan ontwikkelen bestemd voor een pretpark. Het was de bedoeling om geen saaie ‘brochure’-app te gaan maken (de meeste bestaande pretpark-apps bieden niet veel meer functionaliteit dan de informatie die hun brochure staat) en daarnaast was het de bedoeling om data van de bezoekers te verzamelen.

Het bedenken van een concept was een lastig proces. Uiteindelijk zijn wij tot Pockit gekomen. Het doel van Pockit is om de belevenis van de attracties te verlengen. Een bezoeker kan een account aanmaken en een karakter kiezen. Vervolgens kan hij items gaan verzamelen. Bij elke attractie krijgt hij een item. Deze items kunnen thematisch bij een bepaalde attractie horen. Zo kan een gebruiker bijvoorbeeld bij een schommelschip een ‘papegaai van een piraat’ krijgen. De gebruiker kan vervolgens de verkregen items aan- en uitzetten en zo zijn karakter aankleden.

Het leuke is dat de gebruiker zijn karakter niet alleen op zijn telefoon ziet, maar zijn karakter ook geprojecteerd ziet wanneer hij in de rij staat te wachten voor een attractie. Het idee is dat de verschillende karakters die dan geprojecteerd worden met elkaar kunnen interacteren en acties kunnen uitvoeren. Zo kunnen ze bijvoorbeeld dansen of zwaaien. Ook wanneer de bezoeker naar huis gaat, kan de app nog leuk zijn. De gebruiker zou nog dingen met zijn karakter kunnen doen, zoals bijvoorbeeld iets als Talking Tom.

Nadat het concept bedacht was, konden we beginnen met de realisatie ervan. De realisatie kon worden onderverdeeld in 3 delen: de app zelf, een web-API waarmee de app kan communiceren en iets waarmee de projectie gemaakt kan worden. Binnen het project heb ik me vooral gericht op deze laatste twee elementen en de communicatie tussen de app en de API.

In de app is er gebruik gemaakt van iBeacons voor het uitdelen van items en het kijken of de gebruiker zich in de wachtrij van een attractie bevindt. Dit wordt vervolgens gecommuniceerd naar de API net zoals acties die de gebruiker in de app doet. Vervolgens haalt de projectie d.m.v. polling de laatste acties op waardoor de informatie realtime wordt weergegeven en automatisch wordt geüpdatet.

Hieronder enkele screenshots van het resultaat:

IMG_0024 IMG_0025IMG_0022 IMG_0023IMG_0020 IMG_0021

De projectie ziet er als volgt uit:

pockit

De opdrachtgever verkoos ons als beste app. We kregen als prijs een powerbank voor het mobiel opladen van onze telefoon. Ook kreeg iedere student een heel leuk blok met papier met op elk vel de omkadering van een mobiele telefoon bestemd voor paper prototyping. Bedankt hiervoor, heren van ICT Automatisering!

2015-07-10 23.14.00

 

Laatst kwam ik een leuk hebbedingetje tegen op het internet: de Youless. Youless is een apparaat waarmee je je stroomverbruik kunt monitoren. De Youless monteer je op je stroommeter, waarna hij het stroomgebruik gaat bijhouden. Ik vind het bewust zijn van je stroomverbruik belangrijk, dus had er maar eentje aangeschaft en gemonteerd in de meterkast. Dat laatste was nog lastig: de Youless maakt gebruik van een netwerkaansluiting en deze heb ik niet in de meterkast. Gelukkig had ik nog een Wireless Nano Router liggen, waardoor ik geen kabel naar de meterkast meer nodig had en waardoor de installatie daarna in de kortste keren was geslaagd.

2015-05-13 22.45.15

Na het fysiek aansluiten, moest de Youless nog ingesteld worden. De Youless leek in het begin problemen te hebben met het tellen van de pulsen. Dit bleek te maken te hebben met dat het contrast met de schijf en de zwarte streep niet voldoende was. Gelukkig was dit na wat tweaken snel opgelost.

Toen het tellen van de pulsen werkte, kon ik de Youless koppelen met Bidgely: een programma voor het bijhouden van de gegevens. Het koppelen ging heel gemakkelijk via de Youless webinterface. Het stroomverbruik wordt nu keurig gemonitord.

bidgely

 

 

 

Op school volg ik de innovatieroute Smart Mobile. Hierbij staat het maken van mobiele applicaties centraal. Na eerst een semester Android Development te hebben gevolgd, volg ik nu een semester iOS Development. Net zoals tijdens het semester Android was het de bedoeling om tijdens het begin van het semester een eigen app te ontwikkelen.

Mijn concept voor de app was het communiceren van afgelastingen. Bij mijn voetbalclub wil het nog wel eens voorkomen dat er wedstrijden of trainingen worden afgelast. Deze afgelastingen worden dan gecommuniceerd via de website. Dit heeft één groot nadeel: je moet de website in de gaten houden en deze controleren op nieuwe afgelastingen. Daarbij kan het voorkomen dat er wedstrijden worden afgelast wanneer je het niet verwacht, bijvoorbeeld wanneer het mooi weer is, maar de tegenstander heeft niet genoeg spelers waardoor de wedstrijd wordt afgelast. Het kan dan voorkomen dat je pas laat achter de afgelasting komt.

Om dit probleem op te lossen, wilde ik een app maken die een notificatie stuurt wanneer er een nieuwe afgelasting is. Het ontwikkelen voor iOS was voor mij een totaal nieuwe ervaring. Zo heb je voor het ontwikkelen van iOS-applicaties een Mac nodig: een computer waar ik nog nooit mee had gewerkt. Daarnaast is Apple een stuk strikter met richtlijnen voor het maken van apps en is het deployen van een applicatie een stuk lastiger, omdat je aan de slag moet met verschillende certificaten. Gelukkig mag het resultaat er wezen: de app werd als beste uit de klas beoordeeld door de docenten.

Hieronder enkele screenshots van het resultaat:

IMG_0014 IMG_0015 IMG_0016 IMG_0017 IMG_0018 IMG_0019 IMG_0012

 

 

Een tijdje geleden werd ik benaderd door mijn voetbalclub voor een nieuw idee. Ze wilden iets gaan doen met Narrowcasting. Het idee was om een groot beeldscherm in de kantine op te hangen waarop bijvoorbeeld standen, uitslagen en nieuws wordt weergegeven. Aan mij de taak om de technische realisatie hiervan te verzorgen. Ik heb daarom een eerste versie van de lichtkrant gemaakt die waarschijnlijk in het najaar in gebruik genomen gaat worden.

De lichtkrant is hier te bekijken. Hieronder enkele screenshots:

_-_2015-05-13_23.45.30

 

_-_2015-05-13_23.45.52

 

_-_2015-03-13_23.46.12

Vorig jaar toen we onze vakantie gingen boeken, waren we benadeeld door de reisorganisatie. We hadden een appartement op het oog, maar binnen de kortste keren hadden ze plotseling de prijs met 60 euro per persoon verhoogd. Toen we met de reisorganisatie belde, zeiden zij dat de prijs niet meer omlaag zou gaan, dus hadden we toch maar geboekt. Toen we een maand later nogmaals op de site keken, bleken de prijzen tot onze verbazing weer verlaagd te zijn. Een groter appartement was toen beschikbaar voor dezelfde prijs. Gelukkig kregen we na een belletje dit grotere appartement voor dezelfde prijs. Alleen was dit zonde van de teveel betaalde 60 euro.

Daarom besloot ik het dit jaar anders te doen. Ik wil niet teveel betalen voor dezelfde prijs. Ik heb daarom een programma geschreven die dagelijks alle prijzen van de site haalt en alle prijswijzigingen naar me toe mailt. En met succes: zo kreeg ik op een zaterdagavond een mailtje dat alle prijzen met 100!! euro waren verlaagd. Misschien vraag je je nu af: alle? Ja, alle prijzen. De prijzen lijken gebaseerd te zijn op een  soort van basisprijs die wordt opgehoogd/verlaagd naarmate vraag- en aanbod veranderd. Zo kan het voorkomen dat alle prijzen op een dag met enkele tientjes worden verhoogd of verlaagd, maar een verlaging van 100 komt zelden voor. Dit was voor mij dus de reden om direct de volgende dag te boeken. En dit zonder spijt, want de prijs is daarna niet meer zo laag geweest. Dit was makkelijk geld verdienen met een avondje werk.

 

gogoprijzen

 

Naast school werk ik alweer bijna twee jaar bij een automatiseringsbedrijf. Een doorn in het oog was al tijden de huidige website. Deze website was ouderwets en niet gebruiksvriendelijk. Daarom werd ik aangesteld voor het maken van een nieuwe website. De website moest modern en eigenzinnig worden. Dit is volgens mij aardig gelukt. De nieuwe website is hier te bekijken.

Welkom_-_Practicom_B.V._-_2015-05-13_23.59.02

 

Op school volg ik nog steeds de innovatieroute Smart Mobile. In het eerste deel van het semester moest je een eigen app ontwikkelen. De app die ik toen ontwikkeld heb, was PlayMyMusic. Nu in het tweede deel was het de bedoeling om in een projectgroep een mobiele applicatie te ontwikkelen. De opdracht die we kregen kwam vanuit een echte opdrachtgever. Hij wilde een applicatie die bestemd was voor thuiswerkers. De opdrachtbeschrijving was verder vrij breed, zodat je er nog veel kanten mee op kon.

Ons concept was het delen van je werkplek met behulp van een app. Op deze manier kunnen collega’s en andere geïnteresseerden kijken hoe je thuiswerkt en tips geven of er zelf inspiratie uithalen. Ze kunnen de werkplekken liken of disliken en tips geven in vorm van commentaar. Ook kunnen ze een werkplek toevoegen als favoriet, zodat ze een favoriete werkplek later makkelijk en snel kunnen terugvinden.

Tijdens het project heb ik me vooral bezig gehouden met het schrijven van de back-end en de technische realisatie van app. De back-end is een REST API, gebaseerd op Apify. Tijdens het ontwikkelen liep ik echter tegen veel beperkingen aan van deze libary, waardoor ik redelijk veel dingen heb moeten aanpassen/toevoegen. De communicatie tussen de API en Android is gerealiseerd met behulp van Volley.

Hieronder enkele screenshots van de applicatie:

2015-01-22 20.47.432015-01-22 20.48.102015-01-22 20.48.23

2015-01-22 20.50.252015-01-22 20.49.41

Laatst werd ik gevraagd of ik een applicatie kon maken voor een nieuw te starten activiteit. Tijdens deze activiteit wordt je opgesloten in een kamer en heb je 60 minuten de tijd om uit de kamer te ontsnappen. Je kunt jezelf uit de kamer bevrijden d.m.v. het oplossen van raadsels en mysteries. Voor deze activiteit ben ik gevraagd om een programma te ontwikkelen waarmee de schermen in de kamers op afstand bediend kunnen worden. Er moest op afstand een video gestart kunnen worden en er moest een mogelijkheid zijn om hints te sturen, zodat een medewerker een tip kan sturen indien personen in een kamer vastlopen tijdens het ontsnappen uit de kamer.

De backend van het programma is geschreven in Node.js en de applicatie communiceert m.b.v. Websockets met de schermen in de kamers. Hieronder enkele screenshots:

Kameradministatie_-_2015-01-12_11.03.48

Kamer_Display_-_2015-01-12_11.03.12Kamer_Display_-_2015-01-12_11.05.06

Op school volg ik de innovatieroute Smart Mobile. Dit houdt in dat ik me deze periode bezig heb gehouden met het ontwikkelen van mobiele applicaties voor Android. Elke student moest een eigen concept uitwerken tot app. Zo ook ik.

Mijn concept was kort samengevat het democratisch kiezen van muziek op feestjes. Dit houdt in dat de aanwezigen op een feest verzoekjes kunnen doen en kunnen stemmen op liedjes uit de afspeellijst. Hoe meer stemmen een liedje heeft, hoe hoger hij komt in de afspeellijst. Het liedje bovenaan in de afspeellijst wordt afgespeeld.

De afspeellijst wordt weergegeven en afgespeeld op een computer. Ik wilde dat de acties van een gebruiker direct zichtbaar zijn op het computerscherm. Dit wilde ik realiseren met Websockets. Ik had hiermee nog nooit gewerkt, dus het leek me een leuke uitdaging om ermee te experimenteren. In eerste instantie wilde ik de websockets realiseren m.b.v. de programmeertaal PHP. Dit wilde echter niet makkelijk lukken en daarom ben ik overgestapt op NodeJS: een taal die nieuw voor me was. Als database engine gebruik in MongoDB. Hiermee had ik ook nog nooit gewerkt. Om een idee te geven van de werking heb ik de volgende tekening gemaakt:

Backend

Binnen de applicatie zijn verschillende API’s van Google gebruikt. De muziek wordt afgespeeld met behulp van Youtube, bij het zoeken van de liedjes worden suggesties getoond en er worden thumbnails van de filmpjes weergegeven.

Een verplicht onderdeel in de applicatie was het gebruik van hardware (gps, accelerometer, licht sensor, gyroscoop etc.). Ik heb ervoor gekozen om NFC te gebruiken voor het openen/delen van de afspeellijst. Dit gebeurt met behulp van NFC-tags. De naam van de afspeellijst kan op de tag worden opgeslagen en door de tag bij het scherm ‘Selecteer afspeellijst’ tegen je telefoon aan te houden, wordt de afspeellijst geopend.

Hieronder enkele screenshots van de mobiele applicatie:

2014-11-06 21.55.392014-11-06 21.57.232014-11-06 21.57.432014-11-06 21.57.572014-11-06 21.58.472014-11-02-21.35.012014-11-06 21.58.342014-11-06 21.58.54

Hieronder een screenshot van de muziekcomputer:

player

 

 

Op school werken we elke periode een dag per week in een projectgroepje aan een project. Deze periode was het de bedoeling een Airhockey-game te ontwikkelen. Echter kon je ook kiezen voor eigen concept. Mijn groep had voor deze laatste mogelijkheid gekozen en had het idee om een spel gebaseerd op bomberman te maken. Het spel moest geprogrammeerd worden in de programmeertaal JAVA.

Vandaag was de oplevering van de eerste iteratie: een singleplayer-versie. Hierna is het de bedoeling het spel gedistribueerd te maken: een multiplayer-versie waarin spelers online tegen elkaar kunnen spelen. Hier gaan we de volgende periode mee aan de slag.

bombergame