HOE%LAAT%KOMT%MIJN%TRAM?-



Vergelijkbare documenten
Workshop Arduino voor beginners deel 2

Deel 8: stappenmotoren en interrupts

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

Tweede workshop Arduino

RCL Arduino Workshop 1

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC

Arduino Zuid-Limburg Workshop 2

1. Testdata TA sensor met Ohmse belasting

Jeroen uit. Extra informatie. Voor de lunch. Arduino zo aangesloten om mijn code te laten werken. (versie voor lunch) (code voor de lunch)

Arduino Workshop 1 Zuid-Limburg

Oefening 1 - Seriële communicatie via USB

Infographic De infographic geeft in grove lijnen het overkoepelend concept weer Your home remotely controlled Zie de infographic hier naast.

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Arduino[4KIDS] Maak je eigen muziekinstrument!

Bij manueel trein elke keer vanaf spoor 1 te starten, dus altijd twee ritten. StartLED gaat aan en pas uit als trein op 1 arriveert.

Automatische spoel installatie voor legionella preventie. NTKC - Bennie ten Haken 27 Mrt

Workshop Arduino - deel 2

delay(1000); // Eén seconde pauze digitalwrite(pin, LOW); // zet 'pin' uit delay(1000); // Eén seconde pauze }

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Programmeermethoden NA. Week 4: Files & Functies

Arduino Programmeer handleiding

LabVIEW 8.5. Voor beginners. Adriaan Brebels

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

Programmeren met Arduino-software

Weerstation. Wireless connectie PC en Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 APC module installeren. 2.1 Zenden en ontvangen

Naam + Klas: Laptop Nr: Cijfer:

Alflex Products B.V. LRN-010-x-C. Payload specificatie

RF Monitoring: Handleiding

Programmeermethoden NA. Week 6: Lijsten

Werkbladen voor Arduino workshop 1

Inleiding Programmeren 2

th_elt Hardware & Software

Arduino : Morse Voltmeter

Monopoly: Howest edition

Arduino. Arduino UNO. Sam Decoster. CoderDojo Roeselare. Sam Decoster

Programmeermethoden NA

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

Vakgroep CW KAHO Sint-Lieven

Inleiding Programmeren 2

Automatische Installatie op IIS server

WORKSHOP ORANGE PI & PYTHON v september 2017

Weerstation. Weerdata versturen naar HiSPARC C.G.N. van Veen. HiSPARC. 1 Weerstation Data. 2 HiSPARC database. 2.1 Data uitlezen en manipuleren

Programmeermethoden NA

Remote Powercontrol for TCP/IP networks

Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar

Uitwerkingen. Python Assessment

UtlGefOpen Documentation

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Knowledgeable Referenceable Personable Accountable Scalable

Configuratie programma tbv. MJK Instrumentie

Javascript oefenblad 1

Domein API Handleiding

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8


De MySQL C API. Variabelen in C Functies in C Pointers in C

Handleiding HCS VB5248

KAEDU : Outputs en inputs

Handleiding NodeMCU. Handleiding NodeMCU l Pagina 1

Solcon Online Backup. Aan de slag handleiding voor Linux

// hier wordt de functie: ZegHallo aangeroepen

Niet-numerieke data-types

BIPAC 7402G g ADSL VPN Firewall Router. Snelle Start Gids

HANDLEIDING. Dit document beschrijft de installatie, configuratie en gebruik van de Netduino Plus 2 monitoring oplossing

SHINELAN Stappen installeren ShineWiFi Growatt HANDLEIDING. Installeren ShineWiFi

Handleiding. Instructies voor het koppelen van NinjaTrader met het LYNX Handelsplatform (TWS)

Beknopte handleiding SQ Vieuw software

ContentSearch. Deep dive

De Deskline configurator Advanced handleiding

Seriële bluetooth verbinding ATmega128

Installatiehandleiding TiC Narrow Casting Manager

MTracer SPT10. korte handleiding. Versie 0.1. RHO-DELTA Automotive & Consumer Products BV Villa California Building Escudostraat XV BARENDRECHT

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

Workshop Arduino voor beginners. door TkkrLab Enschede

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino

myguard 7202 / 7202G (802.11g) Security ADSL2+ Router Snelle Start Gids

R10 instellen via de Web Interface

Om een ander voorbeeld aan te halen waar er wel een opsplitsing van toepassing is:

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

ASRemote WebService. Via deze webservice kunt u:

Arduino CURSUS. door Willy - 09-juni-2017

Handleiding Installatie ADS

ES1 Project 1: Microcontrollers

Procedure Reset tv-toestellen:

DIA Opdracht 4 (Arjan Dekker)

Sumo-robotcompetitie. Uitlegsessie 15 maart 2011

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

Download Location: Dit is de lokatie waar de PDF bestanden tijdelijk geplaatst zullen worden. Dit is een plaats op uw eigen harde schijf.

Installatie Handleiding voor: TiC Narrow Casting Certified. System Integrators

Configuratiehandleiding

Handleiding HCS VB5238

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

Raspberry Pi Interfacing.

Scripting 2 TUTORIAL EEN APP ONTWIKKELEN VOOR ANDROID MET PROCESSING. ellipse(screenwidth/2, screenheight/2, 140,140); DOOR THIERRY BRANDERHORST

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

BIPAC-5100 / 5100W. (Draadloze) ADSL Router. Snelle Start Gids

Extra oefening Probeer de voorbeeldprogramma s uit de LeJOS tutorial en de samples die bij de LeJOS software geïnstalleerd zijn.

Arduino Opstartgids.

Code Voorbeeld Resultaat. print(6, end="") print(7) print(type(6)) <class 'int'> + optelling - aftrekking * vermenigvuldiging / deling 8 16 % modulo

Transcriptie:

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum OPEN%SOURCE,%OPEN%DATA%& HOE%LAAT%KOMT%MIJN%TRAM? SvenBoor&ArjenKremers GymnasiumNovum 12maart2013 1

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum VOORWOORD Ditprojectbegoninhetvoorjaarvan2012,meneerVanLeeuwen,natuurkundedocentoponzeschoolentevensonzebegeleider,lietonseencomputertjeziendatmakkelijkzelfteprogrammerenwas,deArduino.Dezecomputerslootprimaaanbijonzewensomietstedoenmetprogrammerenenpraktischbezigtezijn.MeneerVanLeeuwengafonseenArduinomeeommeeteexperimenteren.VervolgenshebbenwijmetdeArduinoeenverbeterdeversievaneenvalproefgemaakt.HetprogrammahebbenwegeschreveninC.Vervolgenshebbenweeenhardwareversievandeheleoplossinglatenmakenwaardoordeproefmetbehulpvande Arduinoalsmicroprocessordirectinzetbaarisindeklas. Eenaantaldisplaysaantramlijn15inDenHaagtoontalenkelejarengeenreisinformatiemeer. Ditbleektewordenveroorzaaktdoorgeslotensystemen.Erwasgeendocumentatievandedisplaysenvandeinterfaces.Hierdoorwashetnoodzakelijkdespecificatiesviareverseengineeringboventafeltekrijgen.DoordeArduino,alsopensourcecomputer,zijnwegaanonderzoekenofhetmogelijkwasommetdeArduinoeengoedkopeoplossingterealiserenomweeractuelereisinformatietetonen.Inditwerkstukhebbenwedatonderzochteneenoplossinggevonden. DeArduinobleeknietgenoegmogelijkhedentegevenoméndedatateontvangenente verwerkenénomdezeomtezettennaarhetrs232signaaldathetledxdisplayverwachtte. DaaromhebbenwedehulpingeroepenvandeRaspberryPi,eenbudgetXmicrocomputerwaarinwemeteenLinuxvariantdetaalPythonkondendraaien.WemoestenopeenservereenprogrammamakendatdeopendatastroommetactueleXreisinformatieinformatievoorbewerktevoordeafzonderlijkehaltes,zodatdedatastroomnaardehalteplaatszeerbeperktkanblijven.WehebbenonsdetaalPythoneigengemaaktenwarenzoinstaatvoorca. 100aanconsumenteninkoopsprijsdehaltesreizigersinformatietelatenweergeven.Het StadgewestHaaglandenenHTMzijngeïnteresseerdinhetimplementerenvandeoplossing, voorhetaanpassenvan200anderedisplaysinderegioloopteenanderproject.hetbudgetvoorditprojectis 300.000 400.000.RealisatiemetbehulpvanonsopenconceptisvoorHaaglandenveelvoordeliger. Eendemonstratievanhetprobleemenonzeoplossingistebekijkenvia http://vimeo.com/60644074ofdooronderstaandeqrcodetescannen. GraagbedankenwijmeneerVanLeeuwenenmeneerVanSoestvoordeondersteuningenbegeleidingvanonswerkstuk.MeneerVanSoestinhetbijzondervooralhetsoldereneneenpermanenteopstellingmakenvandevalproef.DaarnaastwillenwehethostingbedrijfCJ2 bedankenvoorhetsponsorenvaneenserverenjcdecaux,deexploitantvandeabri s,voorde medewerkingbijhetterbeschikkingstellenvanhetdisplay. 2

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum INHOUD Voorwoord...2! Inhoud...3! Inleiding...4! Valproef...5! Algemeen...6! Hardware...7! Onderdelen...7! Schakelschema...11! Problemen...12! Software...13! Programma...13! Verbeteringen...17! Handleiding...18! Tramdisplay...20! Probleemstelling...21! Realisatie...25! Programmatuur...34! Conclusie...48! Bronvermelding...49! 3

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum INLEIDING OpensourceenopendatazijntweebegrippendiedeafgelopenjarenoveralindeITwereld opduiken.maarwathoudenbeidenbegrippeninenwatkanmenermee? Ditprofielwerkstukishetverslagvanonsonderzoeknaaropendataenopensource.Dit onderzoekisgedaandoorhethoudenvanpraktijkproevenmakenintweelosseprojecten. Heteersteprojectdiendevooralalsreservevooralshettweede,groteprojectnietvandegrondzoukomenwegensonvoorzieneproblemen.Hetprojecthieldeennatuurkundigeproefinwaarbijdegravitatieversnellingvandeaardebepaaldkanwordenmetbehulpvandetijddateenkogeltjeeroverdoetomovereenbepaaldeafstandtevallen.Hetdoelvanhetprojectwasomdezetijdnauwkeurigtemetenmetbehulpvaneenzelfgeprogrammeerdeopensourcemicrocontroller.DezeopstellingkandandoordenatuurkundesectieophetGymnasiumNovumwordengebruiktbijhetonderwijs. Hettweedeprojectishethoofdproject.HetdoelisomeenoudLEDXschermdatoptramhaltestegebruiktwerdomvertrektijdenvantramsweertegevenennietlangerfunctioneerdenieuwleveninteblazendoorgebruiktemakenvanopendataenopensource. OPENDATAENOPENSOURCESOFTWARE OpenDatazijngegevensdievrijvanrechtervoorhergebruikterbeschikkingwordtgesteld. Meestaldoordeoverheid,maarookandereorganisatieskunnenopendatabeschikbaarstellen. OpenDatakandebasisvormenvoornieuwedienstenmettoegevoegdewaarde.Alsburgersenbedrijvenvrijkunnenbeschikkenoverdezeopendata,kunnenzenuttigenieuwetoepassingenontwikkelen.EenvoorbeeldisBuienradar,datgebruikmaaktvangegevensvanhetKNMI. KortommethetvrijgevenvenOpenData,kunneneconomischeactiviteitenwordenontplooid. Opensourcesoftwarebetekentdatdebroncodewaarindesoftwareisgeschrevenvrijbeschikbaaris.Iedereenkandebroncodelezen,aanpassenenverspreiden.Bijandere geslotensource softwareisdegebruikerafhankelijkvandeoorspronkelijkeleverancierenheeftzelfgeentoegangtotdebroncode.netalsopenstandaardenisopensourcesoftwarebelangrijkommeeropenheidinictsystementerealiseren. DecombinatievanOpenDataenopensourcesoftwarekunneneninnovatieeneducatieeen enormeimpulsgeven. 4

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum VALPROEF VANANALOOGNAARDIGITAAL 5

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum ALGEMEEN Metdevalproefdiebeschrevenwordtkandevalversnellinguitgerekendworden.Devalversnellingwordtbepaalddoordeafstanddathetkogeltjevaltendetijddiehetkogeltjedaaroverdoetnauwkeurigtemeten.Debeschrijvingisopgedeeldineenstukoverhardware, softwareeneenhandleidingoverhoedeopstellinggebouwdkanworden. Devalproefwerdinhetverledenalgebruikt,alleenwaseraltijdeengrootprobleemmetdetijdwaarneming.Deexternetimerwaarmeewordtgewerktisnamelijkerggevoelig.Vroegerwerddetimeropeen analoge maniergeactiveerd.ertreedtdaneenbounceeffectopbijhetindrukkenvaneenschakelaar.ditiseenstuiteringofschommelingvandespanningbijhetafschakelenvandestroom.detimerwerktalleenopdigitalesignalen,duskanalleeneenlaageneenhoogsignaalwaarnemen.deschommelingvandespanningisvoordetimereenwisselendaanxenuitsignaal,ditisnietnauwkeuriggenoeg.doornueenstukjeelektronicatoetevoegenkunnenwesoftwarematigdatbounceeffectondervangenzodathetgeenstorendewerkingheeft.hierbijwordtvoorhetaansturenvandetimergebruikgemaaktvaneendigitaalsignaal. 6

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 7 HARDWARE Dehardwarewordtindrieonderdelenbehandeld.Inheteersteonderdeelwordtuitgelegdwelkeonderdeleninhetcircuitzijnopgenomenenwelkefunctiezehebben.Inhettweededeelwordtuitgelegdhoedeverschillendeonderdelenmetelkaarsamenhangeneninhetlaatstedeelwordenproblemenmetdehardwarebehandeld. ONDERDELEN Hierondervolgteenlijstmetalleonderdelendieinhetcircuitopgenomenzijn. X Arduinomicrocontroller X 1rodeLED X 1geleLED X drukknop X spoel X luik X externespanningsbron X FET X diode X externetimer X weerstanden ARDUINO DeArduino 1 iseenprogrammeerbaremicrocontrollerdiesoftwarematigreageertopsignalenvansensorendieeropaantesluitenzijnenzelfsignalenafgeeftomanderehardwareaantesturen. LED S DeLED sinhetcircuitfungerenalscontrolelampjes.watdelampjespreciesaangeven,iste vindeninhetsoftwaregedeelteenindehandleiding. DRUKKNOP Dedrukknopisinhetcircuitopgenomenomdemetingtekunnenactiverenenteresetten. SPOEL Despoelisbedoeldomhetballetje vasttehouden tothetmomentwaaropdedrukknopwordtingedruktendestroomwordtonderbroken.despoelwerktmetbehulpvanhetprincipevanmagnetischeinductie.doorereenelektrischestroomdoorheentelatenstromenontstaateenmagnetischvelddathetstalenkogeltjevasthoudt.despoelheefteenkoperdraadmeteendoornedevan0,18mmeneenweerstandvan120,7ω. Vandespoelwarendevolgendegegevensbekend: X Diameterinwendig:12mm X Diameteruitwendig:30mm X Hoogte:15mm 1http://www.arduino.cc/ 2nl.wikipedia.org/wiki/Koperdraad

!"#$%&%'! =!!"#$%&'"(!!!"#$"%!&! =!30!!!!!12!!!! =!18!!!! Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum X Doorsnedekoperdraad:0,18mm X NietXmetallischekern X Geenredundantmagnetisme Detotalediameteristeberekenendoordeuitwendigediameterminusdeinwendigediameter tenemen. Hetoppervlaktevandedoorsnedevandespoelisalsvolgtteberekenen.!""#$%&'&!!"#$%! =!!"#$%&%'!!h!!!"#! =!18!!!!!15!!!! =!270!!!!! =!2,7!!"!! OpWikipedia 2 isopdepaginaoverkoperdraadhetaantalwindingentevindenbijeengegeven doorsnedevandekoperdraad.eenkoperdraadmeteendiametervan0,18mmgeeft2270 windingenpervierkantecentimeter.vermenigvuldigdatmethetaantalvierkantecentimeterdoorsnedediewijhaddenomhetaantalwindingentekrijgen.ditgetalmoetnoggedeeldwordendoortweeomdateenwindingzowelheenalsteruggaat,hijlooptimmersrondomdespoel.!! =!2,7!!2!!2270! =!3064,5!!"#$"#%&# Hieronderisinbeeldgebrachthoedezeberekeningtotstandisgekomen. 2nl.wikipedia.org/wiki/Koperdraad 8

(15!!!! +!6!!!)!!2! =!10,5!!!!!!"#$"#% =!!!!2!!!! =!!!!2!!10,5!!!! =!65,973!!!! =!0,065973!!!!!"##! =!!!"#$"#%!!!! =!0,065973!!!!3064,5! =!202,18!!! =!2,0218!h!!!! =!2,0218!h!!!69!!/h!! =!!139,5042!!! Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum Delengtevanéénwindingisongeveerdeomtrekvandespoel.Delengtevandehelekoperdraadmoetdanhetaantalwindingenmaaldelengtevanéénwindingzijn.Alsstraalwordthetgemiddeldegenomenvandebinnenstestraal,6mm,endebuitenstestraal,15mm. IndetabelopWikipediaisookaftelezenhoegrootdeweerstandisineenkoperdraadbijeen gegevendraaddikteperhectometer.bijeendraaddiktevan0,18mmisdit69ω/hm. VermenigvuldigditmetdeafstandinhectometeromdeweerstandinOhmtekrijgen. Afgerondopsignificantecijfersgeeftditeenweerstandvan140Ω. 9

Deschakelaarisinhetcircuitopgenomenomhetstalenkogeltjetedetecteren.Deschakelaar onderbreektdestroomalshijopenstaat,watwaargenomenkanwordendoordearduino. EXTERNESPANNINGSBRON Inhetcircuitiseenexternespanningsbronopgenomenomdespoelvaneenspanningvan30 volttekunnenvoorziendienodigisomdespoelgoedtelatenfunctioneren. FET DeArduinokandehogespanningdienodigisvoordespoelnietleveren,dusmoetereenexternespanningsbronwordenaangesloten.Dezemoetopeenapartcircuitwordenaangesloten,zodatdehogespanningooknietoverdeArduinokomttestaan,dusomdezespanningtelatenlopenofteonderbrekenmetdeArduinoiseenFETnodig. DIODE Naafschakelingvandestroomdoordespoelblijftereenstroomlopendoordespoeltotdathetmagnetischveldvandespoelwordtafgebroken.Ditkomtdoordatdemagneeteeninductiespanningopwekt.DezespanningkanoplopentotduizendenVolt.Deenergiekandanalleenwegdoormiddelvaneenvonkontlading,diewaarschijnlijkindeFETplaatsvinden.Dezekandaardoorkapotgaan.Ditistevoorkomendooreendiodetegengesteldparallelaandespoelintebouwen.Ophetmomentdatdestroomvanuitdespanningsbrondoordespoellooptgaatergeenstroomdoordediode,maarophetmomentdatdestroomwordtonderbrokenendespoeleenspanninggaatgenereren,kandezespanningteruggevoerdwordenviadediode. EXTERNETIMER Detimerisinhetcircuitopgenomenvoordetijdwaarneming.DeArduinobleekookprimainstaatomtijdwaarnemingtedoen.Vooralvankorteduur,zoalsinditgeval,wanttoengetestwerdovereentijdvantientallensecondenbleekereenredeljikgroteafwijkingtezijn.Voordemonstratiesindeklasisdegroteexternetimergeschikter,omdatdezedirectdewaargenomentijdlaatzienenergeencomputervoornodigisdiedeseriëleoutputvande Arduinoontvangt. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum SCHAKELAAR 10

11 SCHAKELSCHEMA Onderstaandeafbeeldinggeefthetschakelcircuitweer. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 12 PROBLEMEN Tijdenshetontwikkelenzijnweooktegeneenaantalproblemenaangelopen.Bijvoorbeelddatwedeexternetimereerstoppin1haddenaangesloten,maardoordeseriëleinterfaceteinitialiseren,dieookzijnsignaalnaarpin1stuurt,isdezepoortnietmeertegebruiken.Hijgeeftdannamelijkelke1/9600 e vaneensecondeeenpulsbijeenbaudratevan9600.alsdeseriële interfacenietgeïnitialiseerdwordtispin1welgewoontegebruikenvooreenpuls aan en uit. Eenanderprobleemwaarwetegenaanliepenwarendedraadjesomdeverschillendeonderdelenvanonscircuitmetelkaarteverbinden.Dezedraadjeszijnergkwetsbaarendooreendefectdraadjeinhetcircuitwordtdeheleopstellingonbruikbaar.Eenprobleemalsditismoeilijktevinden,omdatjenietsnelbedenktdatdithetprobleemkanzijnenereengrotehoeveelheidaandraadjesisgebruikt.

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum #define LED 13 //De LED die aangeeft of de opstelling klaar is voor een meting. #define FET 5 //De FET. Door deze aan of uit te zetten kan de spoel wel of niet onder spanning worden gezet. #define SWITCH 4 //De schakelaar waar het kogeltje op valt. #define BUTTON 2 //De drukknop die gebruikt wordt voor het resetten en het starten van de meting. #define ALERT 12 //Deze LED is het waarschuwingslampje dat aan gaat als de schakelaar open is. #define TIMER 8 //De externe timer die gebruikt wordt om de valtijd op te meten. unsigned long starttime; //De tijd in millisecondes op het moment dat de meting begint en het kogeltje wordt losgelaten. unsigned long lastresettime; //De tijd in millisecondes dat de opstelling voor het laatst is gereset. boolean balldropped = false; //De vlag die aangeeft of het kogeltje aan het vallen is. boolean isset = false; //De vlag die aangeeft of de opstelling klaar is voor een meting.! Onzegehelesetup&functieisalsvolgtingericht: 13 SOFTWARE PROGRAMMA OmdeArduinonaareigeninzichttelatenreagerenopsignalenmoetdecontrollergeprogrammeerdworden.EenArduinoXprogrammabestaatuittweebasisonderdelen,tweefuncties.Eénwordtaangeroepenbijhetopstartenvanhetprogramma.Ditisdesetupfunctie. Deanderefunctieisdeloopfunctie.Dezefunctiewordtnadeinitialisatievanhetprogramma continuaangeroepen. Aanhetbeginvanhetprogrammawordendebenodigdeconstantenenvariabelengedeclareerddienodigzijninderestvanhetprogramma.Depoortendiegebruiktgaanwordenzijnallemaalgedeclareerdindepreprocessor.Ditzorgtervoordatvoordatdecodewordtgecompileerd, klaargemaaktomtewordengebruiktdoordearduino,alleovereenkomstenindecodewordenvervangendoordetoegewezenwaarde.opdezemanierwordtergeengeheugenverbruiktvoordezewaardesopdearduino,maarermoetgoedgeletwordenopmogelijkefoutendiegemaaktkunnenworden.dezewordennamelijknietopgevangendoordecompiler. Eerstwordthieraangegevendatdeseriëlepoortmoetwordengeactiveerd.MetdezepoortkunnengegevenswordenverstuurdviadeUSBXpoortopdeArduinonaardecomputer,omweergegeventewordenophetscherm.Bijdeinitialisatievandeseriëlepoortmoetookwordenaangegevenophoeveelbauddezedraait.Eenbaudisdeeenheidvoorhetaantalbitsdatpersecondewordtverstuurd.Hierisgekozenvooreenbaudratevan9600baud.Ditisnamelijkeenveelgebruiktesnelheid,engoedvooronsgebruik. Daarnawordendegebruiktepinsgeïnitialiseerd.Dedrukknopendeschakelaarwaarhetkogeltjeopvaltwordenalsingangenvoorgegevensgebruikt.Zokunnendewaardesafgelezenworden.Deoverigeattributen,detweeLED s,defetendeexternetijdmeter,hebbeneensignaalnodig.omteschrijvennaardezepinnenwordenzealsuitgangengeactiveerd.

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum void setup() { // Initialiseer de Serial met een snelheid van 9600 baud. Serial.begin(9600); Serial.flush(); // Initialiseer de output en input pins. pinmode(led, OUTPUT); pinmode(fet, OUTPUT); pinmode(timer, OUTPUT); pinmode(button, INPUT); pinmode(switch, INPUT); pinmode(alert, OUTPUT); digitalwrite(fet, LOW); //Stuur een laag signaal naar de FET zodat de spoel niet aan staat. }! 14 Deloopfunctieiseenstukcomplexerenzalindelenwordenuitgelegd.Voorheteigengemaken deeigenduidelijkheidisdecodezelfookalingedeeldinmeerderemethodes. Deeersteselectiedieindeloopmethodewordtuitgevoerdbepaaldhoelangdeopstellingalklaarisvoorgebruikt.Vanwegeveiligheidsredenenenhetgebruikvaneenmagnetischespoelwordtdeopstellingnatiensecondesweeruitgeschakeld,zodathijopnieuwgeresetmoetworden.Nadezecheckwordtgekekenoferopdedrukknopwordtgedrukt,enofdeschakelaarnaarbenedenis. void loop() { if (millis() lastresettime > 10000) { unset(); } // Als de bal al losgelaten is hoeft de knop niet meer gecheckt te worden, maar dan moet de schakelaar gecheckt worden. checkbutton(); checkswitch(); }

void checkbutton() { /* Als de bal aan het vallen is wordt de functie vroegtijdig afgebroken. Als de knop niet is ingedrukt gebeurt er eveneens niets. */ if (balldropped) { return; } } if (digitalread(button) == HIGH) { if (isset) { dropball(); } else { reset(); } }! Alsblijktdathetkogeltjealaanhetvallenis,wordtdefunctieafgebroken.Ergebeurtverderniets.Anderswordtdepindieaandeknopbevestigdisgelezen,metdemethodedigitalRead,enbepaaldofhetsignaalhoogisendeknopdusisingedrukt.Aangeziendeknopgebruiktmoetwordenvoortweedoeleinden,hetresettenenhetlatenvallenvandekogel,volgternogeenselectie.Alsdeopstellinggeresetis,endusklaarisomtemeten,wordthetballetjelosgelatenendemetinggestart.DitgebeurtindedropBallfunctie.Isdeopstellingnietklaarvoorgebruik,danbegintdeprocedureomhetsysteemklaartemakeninderesetfunctie. dropball&werktalsvolgt:allereerstwordtnaardeseriëleuitgangeenstringverzondendatdemetingisgestart.deballdroppedwaardewordtnaartruegezet,zodathetprogrammaweetdatdemetingloopt.destarttijdvandeinternetimerwordtnaardehuidigetijdgezet.naarde TIMERpoortwordteenhoogsignaalgeschrevenhetgeeninhoudtdatdeexternetimerstartmettellen.ErvolgteenaanroepnaardeunsetXfunctie,waardoordespanningopdemagneetspoelwordtweggenomenenhetkogeltjevalt. void dropball() { Serial.println("Meting gestart"); balldropped = true; starttime = millis(); //Start interne timer. digitalwrite(timer, HIGH); //Start externe timer. unset(); }! Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum DecheckButton&functiezieteralsvolgtuit: 15

void checkswitch() { if (digitalread(switch) == LOW) { if (balldropped) { digitalwrite(timer, LOW); // Stop de externe timer. unsigned int delta = millis() starttime; // Meet de interne verlopen tijd. balldropped = false; Serial.print("Millisecondes: "); // Zend de waarde van de interne timer naar de Serial. Serial.println(delta); float seconds = float(delta)/1000.0; //De millisecondes worden omgerekend naar hele secondes. Serial.print("Gravitatieversnelling: "); Serial.print(((2*0.335)/(seconds*seconds))); //Hier wordt de gravitatieversnelling uitgerekend met de formule. 0.335 is de afstand die het kogeltje heeft afgelegd. Serial.println(" m/s^2"); } digitalwrite(alert, HIGH); //De rode LED wordt aangezet. unset(); //De opstelling wordt gereset. } else { digitalwrite(alert, LOW); } }! Heteerstedatwordtgecontroleerdisofdeschakelaaropenisofgeslotendoorhetsignaalwaartenemen.Deschakelaarisgeopendalshetsignaallaagis,wantdanisdestroomkringonderbroken,enhijisgeslotenalshetsignaalhoogisendestroomkringgesloten.AlsdeschakelaargeslotenishoeftalleendewaarschuwingsXLEDuitgeschakeldteworden. Ishijgeopend,danishetdevraagofdemetingbezigis.Alsdemetingnamelijkgestartis,danbetekenthetdathetkogeltjedoordeschakelaarheenisgevallenendusdeafstandheeftafgelegd.Numoetdetijdgestoptworden.Datgebeurtallereerstdoordeexternetimertestoppenmeteenschrijfoperatienaarlaag.Daarnawordtdeverlopentijduitgerekenddoordestarttijdvandemetingvandehuidigetijdaftetrekken.Dezeberekendewaardewordtnaardeseriëleuitganggestuurd.Degravitatieversnellingwordtvervolgensookuitgerekendmetdeformuleg! = 2s!/!t! engeprintnaardeseriëlepoort. HiernawordtzowelinhetgevalvaneenmetingalswanneerergeenmetingheeftplaatsgevondendeopstellinggeresetenderodewaarschuwingsXLEDaangezet.DezeLEDgeeftaandatdeschakelaaropenstaat. Nuvolgtdedocumentatievandelaatstetweefuncties,reset()enunset(): Deopstellingkannooitgeresetwordenalsdeschakelaaropenstaat.Ditwordtdusallereerstgecontroleerdenerwordteenberichtverzondennaardeserialalsdithetgevalis.BijdewerkelijkeresetwordtdegeleLEDaangeschakeld,omaantegevendatdeopstellingklaarisvooreenmeting.DeFETwordtookaangezetzodatdeereenspanningdoordemagneetspoellooptomhetballetjevasttehouden.DelaatsteresettijdwordtnaardehuidigetijdgezetenheterwordtaangegevendatdeopstellinggeresetismetdeisSet&waarde.Ervolgteendelayvaneenseconde,watervoorzorgtdatdemetingnietonmiddelijkbegint.Dedrukknopisnamelijkwaarschijnlijknogsteedsingedrukt. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum DecheckSwitchfunctieisalsvolgtingedeeld: 16

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum void reset() { if (digitalread(switch) == LOW) { Serial.println("Sluit de schakelaar"); } else { Serial.println("Reset"); digitalwrite(led, HIGH); digitalwrite(fet, HIGH); lastresettime = millis(); isset = true; } delay(1000); }! void unset() { digitalwrite(led, LOW); digitalwrite(fet, LOW); isset = false; } 17 InunsetwordtdeLEDdieaangeeftdatdeopstellingklaarisvooreenmetinguitgezet,samenmetdeFET.Hierdoorwordtdespanningvandespoelafgehaald.NaardeisSetwaardewordtfalsegeschreven. VERBETERINGEN Hetontwerpenvandeprogrammatuurverliepnietvolgensdebestemethode.Eenaanpassingvandeschakelinggingsteedsvoorafaaneenkleinetoevoegingaandecode.Opdezemanierwaszoweldeopstellingalshetprogrammaeenvoudigtetesten.Eennadeelvandezemethodeisdatmetnamehetprogrammanietoverzichtelijkwordtopgebouwd,waardoorenkeleslordighedenoverhethoofdzijngezien. Hierondervaltdemanierwaaropdedrukknopenschakelaarwordengecontroleerd.Eenbeterimplementatiewasgeweestalserzowelvoordeknopalsvoordeschakelaareenbooleanwasgedeclareerddiebijhieldofdeknopingedruktis,endatelkeiteratievanhetprogrammawordtgecontroleerdofdestaatvandeknopofschakelaarisveranderd.Alsdathetgevalis,wordtereenfunctieaangeroepen.Indezefunctiewordtdanvervolgenshetnodigegedaan.Dezemethodeisietsomslachtiger,maarveeloverzichtelijker,eneenbelangrijkprobleemwordtermeevermeden,namelijkdatsommigefunctieselkeiteratiewordenaangeroepenalsdatnietnodigis. Ditisookhetgevalbijdecontrolehoelangereenstroomdoordemagneetspoelloopt.Nadatdetiensecondendatdeopstellinggereedisverstrekenzijn,wordtcontinudeunsetfunctieaangeroepen,ookalisditslechtséénmaalnodig.

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 18 HANDLEIDING 1. Zorgervoordatdeelektronicaendedradenalsvolgtzijnaangesloten: Degroundvandetimer,deArduinoendeexternespanningsbronmoetenmetelkaarverbondenzijn.Deexternespanningsbronmoetaangeslotenwordenopdecontactenwaar 25V= bovenstaateningesteldwordenop25voltgelijkspanning.hetmetalenklepje,hetluik,moetwordenaangeslotenbij luik endespoelbij spoel. DebundelkabeltjesuithetkastjegaatrichtingdeArduinoenmoetalsvolgtopde Arduinowordenaangesloten: WitXgeel: 5V Zwart: Pin12 Blauw: Pin13 Oranje: Pin2 Rood: Pin4 Wit: Pin5 Derodeaansluitingvandetimermoetviaeenapartkabeltjeoppoort8vandeArduinowordenaangesloten. 2. Controleerofschakelaar geslotenisenofdetimeropdit ( )symboolstaatendrukopdestartknopvandetimeromdezegereedtemakenvooreenmeting. 3. Drukeenmaalopdeknopomdespoelteactiveren.Hetgelelampjegaatbrandenalstekendatjedemetingkuntstarten. Let%op:%destroomdoorspoelwordtna10secondenautomatischonderbrokenenjemoethemopnieuwactiveren.Ditisterveiligheidzodatdespoelnietteheetwordt. Alshetluikopenstaatgaathetrodelampjebrandentertekendatdemetingnietgestart kanworden. 4. Plaatshetkogeltjeindeonderkantvandespoel.Verhoogdespanningalsdezenietblijft hangentotdathetkogeltjenetblijfthangen. 5. Druknogmaalsopdeknopomdeproefuittevoeren.Hetkogeltjevaltophetklepjeenopdetimerverschijntdevaltijd.

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 19

20 TRAMDISPLAY HOELAATKOMTMIJNTRAM? Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 21 PROBLEEMSTELLING NakennisgemaakttehebbenvanmetdeArduinodeopensourcecomputer,zijnweopzoekgegaannaarnieuwetoepassingsmogelijkhedenvanopensource.OpYouTube 3 kwamenweeen interessantfilmpjetegenoverhetgebruikvanopendatainhetopenbaarvervoer. InditfilmpjeuitBostonkomtnaarvorendatdoorhetvrijgevenvanopenbaarvervoersdata, ontwikkelaarsinkortetijdeengrootaantalnieuwetoepassingengaatmaken.ookinnederland wordtvanaf2012actuelereisinformatievanhetopenbaarvervoeropenvrijgegeven. EentermdiewordtgebruiktvoordatadievrijbeschikbaarwordtgemaaktisOpenData.HetideevanOpenDataisdathetvrijbeschikbaarisvooriedereontwikkelaar.Ontwikkelaarskunnenmetbehulpvandezedatazelfapplicatiesenoplossingenontwikkelen. Optramlijn15toondendetramdisplaysalenkelejarengeenactueleinformatieopeenaantalhaltesinYpenburgenRijswijk.OnsleekhetleukomteonderzoekenofhetmogelijkwasommetbehulpvandezevrijgegevenopenXdataeennieuweoplossingtebedenkenomdedisplaysaantesturen. 3http://www.youtube.com/watch?v=URmKRTUXhxQ

BijHTMhebbenwenagevraagdwaaromergeenactuelereisinformatieopdedisplaysvanlijn 15werdgetoond.HTMgafåaandatsinds2010gebruikwordtgemaaktvanandereboordcomputersindetrams.Dezeboordcomputerbepaaltopbasisvano.a.GPSwaarhetvoertuigisopderouteenhoeveeldetramtevroegoftelaatis. Dedisplayslangslijn15wareneenintegraalonderdeelvanhetoudevoertuigvolgsysteem.Dezekondennietmeerwordenaangestuurdmetdenieuweboordcomputers,erzijngeenopenstandaardenbeschikbaaromdedisplaysaantesturen. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum WAAROMISERGEENREISINFORMATIE? 22

BijnaderonderzoekbleekdathetprobleemvanHTMinmeerregio svoorkomt.iederevervoerdermaaktgebruikvanhaareigenreizigersinformatiesystemen.daarwaarverschillendevervoerbedrijvensamenkomen,ishetnodigdegegevensuitmeerderesystementecombinerenopeendisplay.doorhetontbrekenvanstandaardsbetekendeditdatereengrootaantal(nxm)interfaceszoudenmoetenwordengerealiseerd. Sinds2002wordthetopenbaarvervoerindemeesteregio sinnederlandaanbesteed, waardoorerregelmatiganderevervoerdersineenregiokomenterijden.inhaaglandenredenvroegerallenbussenentramsvanhtmenconnexxion,tegenwoordigrijdenhtmbuzz,veoliaenarrivaindenhaag.dereizigerwilonafhankelijkvanhetvervoerbedrijf,goedereisinformatie. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum KNELPUNTENBIJREISINFORMATIE 23

Deoplossingomhetaantalinterfacestebeperkenishetstandaardiserenvandeinformatiestromen.Doorvanuitallevervoerdersdegegevensaanteleverenaaneencentraalpunt,wordthetaantalinterfacesteruggebrachttot1xninterfaces(n=hetaantalvervoerdersdatdataaanlevert). Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum OPLOSSING 24

Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum 25 REALISATIE DATA GOVI(GrenzelozeOpenbaarVervoerInformatie)iseenoverheidsinitiatiefmetalsdoeleenlandelijkedatabasetecreërenvooractuelereisinformatieafkomstigvanverschillendevervoerders.HetGOVIprojectisgestartin2007,enhadineersteinstantietotdoelgeïntegreerdereisinformatieteleverenvoordeweergaveopdisplaysbijhaltesenknooppunten. Omookophalteswaaronvoldoendereizigersinstappenomdeinvesteringindisplaysrendabeltemaken,isgezochtnaarmogelijkhedenomdereisinformatieookviamobielinternetteontsluiten.Vanaf2010isgeëxperimenteerdmeteeneersteBusXmobielprojectinNoord Brabant.Vanafmaart2012wordtereencontinuedatastroomactuelereisinformatiegeleverdvoorallehatesinhetGOVIgebiedaanOpenOV,eenstichtingdiezichtotdoelsteltomopenbaarvervoerdatabeschikbaartestellen. GOVIGEGEVENSSTROMEN VERVOERDER GOVI DeberichtenvandevervoerderrichtingGOVIbestaanuitgeplandevertrektijden(KV1),depositiesvanbussenentrams(KV6),vrijetekstenvooropdisplays(KV15)enuitvalofomleidingvanbepaalderitten(KV17).KVstaatvoor koppelvlak,eengegevensuitwisselingoververschillendeorganisaties. GOVI DRIS VanuitGOVIwordendegeplandevertrektijdenopeenbepaaldehalteindevormvanKV7 verstuurdnaarhetdrissysteem.eenkv8wordtelkekeeralsdeverwachtevertrektijd verandert,alseentramaankomtopeenhalteenalseentramvertrektvaneenhalteverstuurd. InKV8wordenookvrijetekstenenuitgevallenbussen&tramsdoorgegeven.

GOVIwasoorspronkelijkalleenbestemdvoorhetaansturenvanDRIS sen.metdeopkomstvan mobielinternetenappskwamerookvraagnaarinformatieopallehaltesinnederland.kv7/8 wasoorspronkelijkbedoeldomgebruikttewordenvoor5000haltesennietvoldoendeominformatieteverstrekkenoveralle50.000haltesinnederland.daaromisereenefficiëntereensnellereversievankv7/8ontwikkelt,namelijkkv78turbo.degroottevandeberichtenisopdezenieuwemanierveelkleineromdaterinplaatsvanxmlgebruikwordtgemaaktvanctx, eenbestandsformaatwaarindegegevensgescheidenzijndooreensluisteken( ). DeKV78TurboberichtenstroomwordtdoorgestuurdnaarOpenOV,eenorganisatiediezich inzetomalledatavanhetopenbaarvervoerinnederlandbeschikbaartestellenalsopendata. OpenOVdistribueertdezegegevensstroomvervolgensweernaaralleontwikkelaarsdieeenapplicatiemetdezedatawillenontwikkelen.VoorbeeldenvanapplicatiesdiemetbehulpvandezedatazijnontwikkeldzijnOVInfovoorAndroidenTranzzitenOpenbaarVervoervooriOS. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum KV78TURBO 26

Watbetekentditvooronsproject?DebeschikbaarheidvandeKV78turbostroomincombinatiemetopensourcehardwareensoftwarevormdendebasisomteonderzoekenhoeweactuelereisinformatieopdedisplaysvantramlijn15kunnenkrijgen.Tijdensdeuitvoeringhebbenwedevolgendestappendoorlopen: 1. Hoekomenweaanhetdisplayt.b.v.naderonderzoek? 2. Hoekrijgenweeentekstophetdisplay? 3. Hoekrijgenwereisinformatieopdisplay? 4. Hoelatenweallessamenwerken? 5. Beheer 6. Uitrol Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum STAPPENPLAN 27

28 Deeersteuitdagingwasomdebeschikkingovereendisplaytekrijgenzodatweermeekondengaantesten.Wezochtenbeginaugustus2012contactmethetStadsgewestHaaglandendieverantwoordelijkisvoorallebusXentramhaltesinderegioHaaglanden.Haaglandengafaandatergeenreservedisplaywasommeetetesten.StadsgewestHaaglandenverweesonsdoornaar JCDecaux,deexploitantvandeabri s.jcdecauxverweesonsweerdoornaardehtm.ditkastjenaardemuurgestuur,leerdeonsdathetbeheervandedisplaysiniedergevalnieteenduidigwasgeregeld.naflinkheenenweermailenbleekjcdecauxbereidomonstehelpen. Eenmonteurheeftonsgeholpenmethetdemonterenvaneendisplayuitdeabriop26 september2012.ditprocesheeftuiteindelijkbijnatweemaandengeduurd. Opdezemanierzathetdisplaybevestigdindekast. Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum HOEKOMENWEAANHETDISPLAY?