Visualisatie Ondergrondse Parking
Didier Vandeputte
Voorwoord In het laatste luik van de opleiding Elektronica-ICT dient er een masterproef verwezenlijkt te worden met bijhorende scriptie. Hierdoor kan de kennis van theorie en specifieke projecten doorheen de jaren toegepast worden in een eerder multidisciplinair geheel. Vooraf kan iedere student een project kiezen in opdracht van een bedrijf of Hogeschool. Ik had de voorkeur voor een opdracht vanuit een bedrijf, aangezien deze samenwerking een enorme meerwaarde voor beide partijen biedt (aanpak, kennis, uitrusting, flexibiliteit, ...). Al enkele jaren had ik een sterke interesse ontwikkeld in het domein elektronica toegepast in een automotive omgeving (detectiemogelijkheden & visiesystemen, communicatieverloop- en media, ...) waardoor het Ieperse bedrijf Melexis mijn aandacht wekte. Met mijn vooropleiding leek hun voorstel voor deze masterproef een perfecte combinatie van de theoretische en praktische kennis in de deeldomeinen hardware en software. Het idee werd aangereikt door Dhr. B. Leterme (externe promotor) en ondersteund door Dhr. B. Samyn (intene promotor). Beiden worden bedankt voor hun grote bijdrage in het ontwikkelen van het systeem. Dit beslaat zowel de innovatieve ideeën, begeleiding en tijd vrij maken voor het beantwoorden van vragen. Verder binnen het bedrijf wordt ook Dhr. Niville bedankt voor het regelen van een infosessie, rondleiding en tips rond het gebied van cameradetectie alsook vele anderen voor de voorziening van elektronische componenten & toestellen, het regelen van de eerste contacten en het verzorgen van een aangename sfeer binnen het bedrijf. In de Hogeschool wordt B. Samyn ook specifiek bedankt voor de ondersteuning bij het halen van planning en deadlines, prototypes uit testen a.d.h.v. Arduino microcontrollerboardjes, ... Verder worden ook enerzijds Dhr. X. Vanhoutte vermeld voor de hulp bij het realiseren van testprinten, en anderzijds Dhr. J. Beke voor tips bij dataverwerking en communicatie bij FPGA. Tenslotte wil ik nog verschillende collega’s & vrienden bedanken (D. Daenens, J. Vandeputte, J. Deconseth, S. Muylle, ...) voor het aanbieden van cursussen, ideeën rond hardware & software, familie & buren bij het uittesten van detectiemodules alsook verantwoordelijken van verschillende bestaande ondergrondse parkeerorganisatie voor het verlenen van informatie. De steun en hulp was van ieder van hen doorheen dit jaar belangrijk voor de succesvolle realisatie van dit geheel.
Didier Vandeputte, juni 2012
I
Visualisatie Ondergrondse Parking
Didier Vandeputte
Samenvatting Het Ieperse bedrijf Melexis breidt uit met een nieuw gebouw en bijhorend extra aantal werknemers. Om het toenemende probleem van parkeervoorziening op te lossen, wordt er een ondergrondse parking gebouwd waarbij de student hierin een voertuigdetectie- en visualisatiesysteem realiseert. Eerst wordt er aandacht besteed aan bestaande ondergrondse parkings. Hierbij wordt rekening gehouden met enkele voordelen (meestal duidelijke signalisatie) en nadelen (soms foutieve detectie). De student start hieruit om de beste signalisatie- en detectiemogelijkheden te testen & te ontwikkelen met uiteraard een veel lagere totaalprijs. Het gedeelte detectie van voertuigen (en personen) is een belangerijke pijler van de thesis en wordt voor algemeen gebruik afzonderlijk gepubliceerd (‘Studie & onderzoek sensoren’). Het bedrijf vraagt specifiek naar een detectiesysteem dat ieder voertuig van bovenaf detecteert. Na het theoretische overzicht van alle bruikbare types (met voor- en nadelen), worden er 3 uitvoerig getest. Een IR temperatuursensor (van Melexis) en een metaaldetectiesensor (houdt rekening met het magnetisch veld van de aarde) bieden geen duidelijk detectieonderscheid bij beïnvloeding van andere voertuigen & omgevingstemperatuur. Enkel een ultrasone afstandssensor biedt een stabiele oplossing. Ook wordt een foutieve detectie door aanwezigheid van een persoon verholpen. Wegens de grotere afstanden in de parking dient de communicatie met de verschillende modules digitaal te verlopen. Hierbij worden verschillende mogelijkheden overlopen (optisch, SPI, I²C, bussystemen zoals CAN & RS485, ...) waarbij het bussysteem RS485 tot de beste methode wordt verkozen. Het aantal vrije plaatsen in de parking wordt door een controller bijgehouden en aan de ingang buiten wordt dit getal via een LED wall weergegeven. Ook de toestand van iedere parkeerplaats wordt boven ieder voertuig gevisualiseerd, rekening houdende met stroomverbruik, kostprijs en duidelijkheid. Afhankelijk van het tijdstip en beweging in de parking dient de verlichting geregeld te worden. Tenslotte wordt er naast het dimentioneren van een voeding (met berekende verliezen) ook een overzichtsscherm gerealiseerd dat de toestand van ieder aanwezig voertuig visualiseert. Dit wordt enerzijds geplaatst aan de ingang binnen voor het instromend verkeer en anderzijds via het netwerk verstuurd naar de kantoren van het bedrijf, waardoor een overzicht op ieder moment en plaats kan opgevraagd worden.
Trefwoorden: voertuigdetectie, sensoren, buscommunicatie, ondergrondse parking, Melexis Ieper
II
Visualisatie Ondergrondse Parking
Didier Vandeputte
Abstract Hier moeten de 2 paginas van de aparte abstract komen (hier lukt het niet om met de correct ingestelde marges te werken!)
III
Visualisatie Ondergrondse Parking
Didier Vandeputte
IV
Visualisatie Ondergrondse Parking
Didier Vandeputte
Inhoudstafel Voorwoord ......................................................................................................................... I Samenvatting .................................................................................................................... II Abstract ............................................................................................................................III Inhoudstafel ...................................................................................................................... V Lijst van symbolen en afkortingen ................................................................................... VII Lijst van figuren.............................................................................................................. VIII Lijst van tabellen .............................................................................................................. IX
1. Inleiding.......................................................................................... 1 1.1. 1.2. 1.3. 1.4.
Melexis ............................................................................................................... 1 Opdrachtomschrijving ......................................................................................... 2 Onderzoeksvraag ............................................................................................... 2 Opbouw .............................................................................................................. 2
2. Literatuurstudie en technologisch onderzoek ............................ 3 2.1. Literatuurstudie....................................................................................................... 3 2.1.1. Sensoren ...................................................................................................... 3 2.1.2. Communicatiemedium .................................................................................. 4 2.1.2.1. Analoge overdracht ................................................................................ 4 2.1.2.2. Digitale bedrade overdracht ................................................................... 4 2.1.2.3. Digitale draadloze overdracht................................................................11 2.1.3. Signaalverwerking .......................................................................................12 2.1.3.1. PLC.......................................................................................................12 2.1.3.2. FPGA ....................................................................................................13 2.1.3.3. Microcontroller ......................................................................................15 2.2. Technologisch Onderzoek .....................................................................................16 2.2.1. Eindkeuze sensoren ....................................................................................16 2.2.2. Signaalverwerking .......................................................................................18 2.2.3. Bestaande Realisaties .................................................................................19 2.2.3.1. Ondergrondse Parking Schouwburgplein Kortrijk ..................................19 2.2.3.2. Ondergrondse Parking Shoppingcenter K Kortrijk .................................19 2.2.3.3. Ondergrondse Parking Gent Zuid .........................................................20 2.2.3.4. Ondergrondse Parking Brugge ‘t Zand ..................................................20
3. Methoden ..................................................................................... 21 3.1. Parking gegevens ..................................................................................................21 3.2. Algemeen Blokschema ..........................................................................................23 3.3. Hardware...............................................................................................................23 3.3.1. Individuele detectie & signalisatie parkeermodule .......................................23 3.3.1.1 Sensoren ...............................................................................................23 3.3.1.2 Signalisatie ............................................................................................40 3.3.1.3 Buscommunicatie...................................................................................44 3.3.1.4 Slave controller ......................................................................................47 3.3.2. Bewegingsmelder ........................................................................................50 3.3.3. Visualisatie aantal vrije plaatsen d.m.v. LED wall ........................................52 3.3.4. Regeling verlichting .....................................................................................57 3.3.5. Mastercontroller...........................................................................................58 3.3.6. Visualisatie aantal vrije plaatsen d.m.v. overzichtsscherm ...........................60 V
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.7. Voeding .......................................................................................................60 3.3.7.1 Algemeen ..............................................................................................60 3.3.7.2 Berekening.............................................................................................60
4. Resultaten .................................................................................... 63 4.1. Hardware...............................................................................................................63 4.1.1. Schema bewegingsmeldermodule ...............................................................63 4.1.2. Schema LEDWallmodule .............................................................................64 4.1.3. Schema parkeerplaatsmodule .....................................................................65 4.1.4. Schema mastermodule ................................................................................66 4.2. Software ................................................................................................................67 4.2.1. Flowchart parkeerplaatsmodule ...................................................................68 4.2.2. Flowchart bewegingsmeldermodule ............................................................69 4.2.3. Flowchart LEDwallmodule ...........................................................................70 4.2.4. Flowchart mastermodule .............................................................................71 4.3. Overzichtsschema ..........................................................................................72 4.4. Volledige installatie ondergrondse parking .....................................................73
5. Conclusies ................................................................................... 74 Literatuurlijst ....................................................................................................................75 Bijlagen ............................................................................................................................. a 1. Testcode sensoren .................................................................................................... a 2. Configuratiemogelijkheden LEDdrivers bij signalisatie parkeerplaatsmodules ........... e 3. Uitwerking testprint sensoren en LEDsturing .............................................................. f 4. Soortelijke weerstandslijst materialen ........................................................................ g 5. Foto’s realisatie LEDwall ........................................................................................... h 6. Overzicht ASCII-code tabel met toekenning functies ................................................... i 7. Planning ...................................................................................................................... j
VI
Visualisatie Ondergrondse Parking
Didier Vandeputte
Lijst van symbolen en afkortingen ADC : ASIC : CAN : CMOS: DSP : EDGE : EEPROM : EHF : EMC : EMI : ESD : FET : FOV : FPGA : GPRS : HUD : I²C : LIN : (P)LCC : LSB : MEMS : MOST : PIC : PIR : PLC : PLD : PWM : RFID : SM Bus : SMD : SoC : SOIC : SPI : TTL : TQFP : UMTS : VGA : VHDL : WCSP :
Analoog naar Digitaal Convertor Application Specific Integrated Circuit Controller Area Network Complementary Metal Oxide Semiconductor Digital Signal Processing/Processor Enhanced Data rate for GSM Evolution Electrically Erasable Programmable Read-Only Memory Extremely High Frequency ElektoMagnetische Compatibiliteit ElektroMagnetische Interferentie Electro Static Discharge Field Effect Transistor Field Of View Field Programmable Gate Aray General Packet Radio Service Head Up Display Inter-Integrated Circuit Local Interconnect Network (Plastic) Leadless Chip Carrier Least Significant Bit Micro-Electro-Mechanical System Media Oriented Systems Transport Peripheral Interface Controller Passief InfraRood Programmable Logic Controller Programmable Logic Device Pulse Width Modulation Radio Frequency Identification System Management Bus Surface-Mounted Device System on Chip Small-Outline Integrated Circuit Serial Peripheral Interface bus Transistor Transistor Logica Thin Quad Flat Pack Universal Mobile Telecommunications System Video Graphics Array Very high speed integrated circuit Hardware Description Language Wafer Chip-Scale Package
VII
Visualisatie Ondergrondse Parking
Didier Vandeputte
Lijst van figuren Figuur 1.1 : Logo Melexis .................................................................................................. 1 Figuur 2.2 : Opbouw analoge transmissielijn ..................................................................... 4 Figuur 2.4 : Aansluiting connector bij RS-232 ................................................................... 4 Figuur 2.5 : Signaalverloop bij RS-232 .............................................................................. 5 Figuur 2.6 : Multipoint communicatie met RS-485 ............................................................. 5 Figuur 2.7 : Principe bussysteem ...................................................................................... 6 Figuur 2.8 : SPI-verbinding tussen Master en Slave ......................................................... 6 Figuur 2.9 : I²C-verbinding tussen Master en Slave .......................................................... 6 Figuur 2.10 : Data-overdracht tussen Master en Slave ..................................................... 7 Figuur 2.11 : Opbouw CAN-netwerk ................................................................................. 7 Figuur 2.12 : OSI-model.................................................................................................... 8 Figuur 2.13 : Logische toestanden bij CAN ....................................................................... 8 Figuur 2.14 : Opbouw bij standaard en extended frameformaat van CAN ......................... 9 Figuur 2.15 : Multiplexering ..............................................................................................10 Figuur 2.16 : Types bij glasvezelkabel .............................................................................11 Figuur 2.17 : Overzicht draadloze netwerken ...................................................................11 Figuur 2.18 : PLC Siemens & Phoenix Contact ................................................................12 Figuur 2.19 : Opbouw FPGA ............................................................................................13 Figuur 2.20 : Opbouw Embedded System........................................................................14 Figuur 2.21 : Opbouw Microcontroller ..............................................................................15 Figuur 2.22 : FPGA BASYS testboard, Digilent ................................................................18 Figuur 2.23 : Microcontroller Arduino Uno testboard, Arduino ..........................................18 Figuur 2.24 : Overzichtsscherm Schouwburgplein Kortrijk ...............................................19 Figuur 2.25 : Installatie in shopping K Kortrijk ..................................................................20 Figuur 2.26 : Installatie in parking Gent Zuid ....................................................................20 Figuur 2.27 : Installatie in parking Brugge ‘t Zand ............................................................20 Figuur 3.1 : Tekening ondergrondse parking ....................................................................21 Figuur 3.2 : Algemeen Blokschema .................................................................................23 Figuur 3.3 : Testopstelling sensoren ................................................................................23 Figuur 3.4 : IR-temp. sensor MLX90614(X)-(X)BA met 2 FOV’s ......................................24 Figuur 3.5 : MLX90614 PWM-aansluiting .........................................................................25 Figuur 3.6 : MLX90614 PWM-uitgangssignaal .................................................................25 Figuur 3.7 : MLX90614 SM Bus-aansluiting .....................................................................25 Figuur 3.8 : MLX90614 SM Bus-aansluiting .....................................................................26 Figuur 3.9 : Aansluiting MLX90614 met Arduino ..............................................................26 Figuur 3.10 : Opgemeten temperaturen met Arduino .......................................................27 Figuur 3.11 : EVB90614...................................................................................................27 Figuur 3.12 : Opgemeten temperaturen met EVB90614 ..................................................27 Figuur 3.13 : Uitgewerkte afstanden met ultrasone afstandsdetectie ...............................29 Figuur 3.14 : Aansluiting LV-MaxSonar-EZ1-MB1010 met Arduino ..................................30 Figuur 3.15 : Aansluiting LV-MaxSonar-EZ1-MB1010 met omvormingskabel ..................31 Figuur 3.16 : Opgemeten afstanden LV-MaxSonar-EZ1-MB1010 Range programma ......31 Figuur 3.17 : Registertabel van AMR-sensor HMC5883L, Honeywell ..............................33 Figuur 3.18 : Testopstelling met HMC5883L ....................................................................34 Figuur 3.19 : Aansluiting AMR-sensor HMC5883L, Honeywell met Arduino .....................34 Figuur 3.20 : Meetwaarden Z-as HMC5883L ...................................................................35 Figuur 3.21 : Meetwaarden Magnitude HMC5883L ..........................................................36 Figuur 3.22 : Hoekdetectie bij AMR sensor HMC5883L ...................................................36 Figuur 3.23 : Meetwaarden hoekdetectie HMC5883L ......................................................37 Figuur 3.24 : AMR sensor bij toepassing parkeermeter....................................................39 Figuur 3.25 : Individuele signalisatie parkeerplaats ..........................................................40 Figuur 3.26 : RGB LED met Common Kathode- en Anode ..............................................40 VIII
Visualisatie Ondergrondse Parking
Didier Vandeputte
Figuur 3.27 : LED Driver TLC5952, TI ..............................................................................40 Figuur 3.28 : Keuze referentieweerstand ...............................................................41 Figuur 3.29 : Instelling SIN van LED driver TLC5952 .......................................................42 Figuur 3.30 : Energiezuinigere signalisatie.......................................................................42 Figuur 3.31 : Typisch RS-485 bussysteem circuit ............................................................44 Figuur 3.32 : Datasnelheid i.f.v. totale buslengte..............................................................45 Figuur 3.33 : Differential bus transceiver SN65HVD3088E .............................................45 Figuur 3.34 : Communicatieschema tussen master - en slave controller ..........................47 Figuur 3.35 : Communicatie datastream tussen master en slave controller ......................48 Figuur 3.36 : ASCII datastream tussen de master en de 1e parkeerplaats .......................48 Figuur 3.37 : Differentiaalspanningen op de RS485 bus ..................................................49 Figuur 3.38 : Plaatsing bewegingsmelders.......................................................................50 Figuur 3.39 : Blokschema bewegingsmeldermodule ........................................................50 Figuur 3.41 : Overzicht toestanden bij slave naar master communicatie ..........................51 Figuur 3.40 : Overzicht sensoradressen bij master naar slave communicatie ..................51 Figuur 3.42 : LEDwalls voor visualisatie vrije plaatsen .....................................................52 Figuur 3.43 : Schema aansturing LEDwall .......................................................................53 Figuur 3.44 : Blokschema LEDwallmodule .......................................................................55 Figuur 3.45 : Overzicht aantal vrije plaatsen met codes bij master slave communicatie ...55 Figuur 3.46 : Solid State Relais PVG612SPbF................................................................57 Figuur 3.47 : Communicatieschema tussen mastercontroller & PC overzichtsscherm .....58 Figuur 3.48 : Optische transceiver MLX75608, Melexis ...................................................58 Figuur 3.49 : Opbouw overzichtsscherm ..........................................................................60 Figuur 3.50 : Energieverlies voeding door buslengte........................................................61 Figuur 3.51 : Vermogenbepaling voeding met totale busverliesweerstand .......................62
Lijst van tabellen Tabel 1.1 : Overzicht Bussystemen.....................................................................................9 Tabel 3.1 : Energiebesparend uurschema bij shiftregeling................................................22 Tabel 3.2 : Overzicht temperatuursmetingen indoor & outdoor.........................................28 Tabel 3.3 : Toestandentabel voor de LED uitgangen van de visualisatieprint .................44 Tabel 3.4 : Ingangsimpedantie i.f.v. aantal gebruikers, belasting bij bus RS-485............45
IX
Visualisatie Ondergrondse Parking
Didier Vandeputte
1. Inleiding 1.1. Melexis De locatie en realisatie van de masterproef is in opdracht van Melexis. Melexis [1] is een technologisch bedrijf dat semiconductors en sensor ic’s ontwerpt & verdeelt voor hoofdzakelijk (7 van de 8 miljoen componenten per maand) de automotive industrie (transceivers in CAN, LIN, MOST, FlexRay, … - netwerken, temperatuursensors voor automatische klimaatregeling, ...), maar wordt ook gebruikt in consumentenelektronica, de algemene industrie (IR & RFID – sensors, ...), draadloze - en optische technologie (optische transciever IC’s in autosleutels, HUD en CMOS-camera’s, ...), ... . De producten kunnen zowel op aanvraag van de klant als vanuit eigen idee gerealiseerd worden. Het beursgenoteerde bedrijf is al meer dan 20 jaar actief met 750 enthousiaste werknemers en heeft vestigingen in meer dan 10 landen waaronder in het gedeelte Europa (hoofdvestigingen in Ieper en Tessenderlo, Frankrijk, Duitsland, Zwitserland, Bulgarije en Oekraïne), Amerika en Azië (China, Japan, Hong Kong en de Filipijnen). Hun missie is : “To provide innovative micro-electronics for our customers` challenges with a passion for achieving mutual success”. We engineer the sustainable future and make cars safer & greener. Het ontwikkelde systeem als masterproef wordt gebruikt in de hoofdvestiging (maatschappelijke zetel) Ieper. In deze vestiging worden er visualistiecontroles uitgevoerd (benaming & Icpootjes) op de componenten afkomstig van de producerende landen in Azië. Vervolgens worden ze aan temperatuur-uithoudingstesten onderlegd (vb. 50°C+150°C). Na een laatste controle worden de componenten dan verpakt (vacuüm en ESD-beveiligd) die bestemd zijn voor o.a. bestukkingsmachines van klanten en distributeurs. In de vestiging in Tessenderlo worden de meeste producten ontwikkeld (elektronische schema’s berekend, gesimuleerd, software). Hierbij worden de componenten op een wafer geplaatst, de voorbode van een IC, en vervolgens getest in de vestiging in Ieper. Hieronder volgen de contactgegevens van de vestiging in Ieper :
Melexis Ieper NV Rozendaalstraat 12 B-8900 Ieper, Belgium Phone + 32 57 226 131 www.melexis.com Figuur 1.1 : Logo Melexis
1
Visualisatie Ondergrondse Parking
Didier Vandeputte
1.2. Opdrachtomschrijving Het bedrijf [1] heeft een jaarlijkse gemiddelde groei van 10%. Hierdoor zal er in 2013 in de vestiging van Ieper een nieuw gebouw geplaatst worden. Zo zal de productie naar het nieuwe gedeelte verhuizen en wordt er meer ruimte voorzien voor wafer testing alsook grotere kantoorruimtes. Bij deze is er ook een uitbreiding van het aantal werknemers. Op de site is de voorziene parking weldra te klein en is er een mogelijke oplossing voor dit nijpend probleem : de realisatie van een ondergrondse parking. In het algemeen wil een bestuurder steeds zo weinig mogelijk tijd verliezen bij het zoeken van een vrije plaats (ook bij voorkeur gratis, al wordt de parkeerkost toch doorgerekend via andere manieren aan de gebruiker [2]) en verkiest hij een eenvoudige, gebruiksvriendelijke, veilige en goed overzichtelijke parking. Het integreren van elektronica als moderne technologie kan een oplossing bieden voor deze tevreden gebruiker. Volgende doelstellingen/eisen worden gesteld aan het te ontwikkelen systeem : Het aantal vrije parkeerplaatsen tellen en visualiseren (m.b.v. kleuren) op verschillende displays : - buiten de parking aan de ingang : “# VRIJ/BEZET” - binnen de parking : duidelijk overzichtsscherm welke plaatsen vrij/bezet zijn De detectie realiseren met sensoren van het bedrijf (indien mogelijk na een studie). Verder moet het overzichtsscherm ook geplaatst worden in het bedrijf. Rekening houdende met de afstand (lengte en hoogteverschil), de gebruikte materialen in de parking, ... moet er onderzocht worden wat de beste communicatiemogelijkheden zijn en indien mogelijk ook opnieuw met ontwikkelde componenten van het bedrijf.
1.3. Onderzoeksvraag Hoe kan er bij de realisatie van een ondergrondse parking m.b.v. elektronica gezorgd worden voor een verhoogde gebruiksvriendelijkheid, overzichtelijkheid, ... bij gebruikers en tegelijk zo efficiënt mogelijk gebruik maken van middelen (aantal componenten & functionaliteit, vermogenverbruik & kostprijs, afstand & snelheid bij communicatie, ...) en dit geheel als nieuwe standaard voor andere toekomstige ondergrondse parkings ?
1.4. Opbouw In deze masterproef is er een duidelijke verdeling tussen de studie/het onderzoek en realisatie. Rekening houden met bestaande realisaties en conclusies is ook uiterst belangrijk. Om de gedachtengang te volgen die leidt tot het uiteindelijke resultaat, komen hieronder de pijlers van de scriptie: Deel 1 : Studie en onderzoek Deel 2 : Toegepaste methoden Deel 3 : Resultaten van de uitgewerkte methoden weer Deel 4 : Besluitvorming van studie & realisatie
2
Visualisatie Ondergrondse Parking
Didier Vandeputte
2. Literatuurstudie en technologisch onderzoek In dit belangrijk luik is er eerst het studiegedeelte naar de verschillende mogelijkheden en oplossingen voor de keuze van de types sensoren die kunnen gebruikt worden, welke mogelijke programmeerbare signaalverwerkende controllers er zijn voor deze toepassing en welke communicatiemogelijkheden er zijn tussen de ondergrondse parking en de bovengrondse kantoren in het bedrijf. Vervolgens in onderzoeksgedeelte wordt hieruit de best mogelijke oplossing bepaald en tenslotte ook bestaande realisaties bezocht met hun bijhorende voor- en nadelen als ideeënbron voor visualisaties. Dit geheel zou een antwoord kunnen bieden op de voorgaande onderzoeksvraag.
2.1. Literatuurstudie 2.1.1. Sensoren In dit gedeelte wordt er een studie gedaan naar verschillende types sensoren die kunnen gebruikt worden in de parking om wagens te detecteren. Dit gedeelte (samen met onderzoek naar sensoren) werd na verloop van tijd afzonderlijk geplaatst en is terug te vinden als afzonderlijk deel ‘Studie & onderzoek sensoren’. Dit wordt niet alleen beslist om de compactheid van de scriptie te garanderen, maar aangezien er zowel een theoretische als praktische aanpak is van de verschillende types sensoren, kan dit ook perfect als leidraad, als referentie gebruikt worden voor andere mogelijke projecten en masterproeven. De uiteindelijke keuze met bijhorende verantwoording om een bepaald type sensor te gebruiken is specifiek voor dit project en is bij het gedeelte onderzoek terug te vinden.
3
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.1.2. Communicatiemedium Als communicatiemedium tussen enerzijds het signaalverwerkend medium en de parkeerplaatsmodules (sensor en signalisatie) en anderzijds met het overzichtsscherm in de kantoren van het bedrijf kunnen vele oplossingen gebruikt worden. Hieronder volgt een korte opsomming bij analoge en digitale overdracht met bijhorende protocollen en bussystemen.
2.1.2.1. Analoge overdracht Als eerste methode voor communicatie-overdracht is er de klassieke analoge kabelverbinding met twisted pair. Dit kan voorgesteld worden door onderstaande figuur 2.2 [3]. Een stukje kabel bestaat uit enkele parasitaire componenten : een draadweertandswaarde, inductantie en capacitantie en zijn afhankelijk van de lengte van de kabel : de draadweerstandswaarde is 0,34Ω/m (bij 25°C), de inductantie 0,01µH/m en de capaciteit voor vb. een coax-kabel typisch 40pF. Stel bij een afstand van 100m zijn de verliezen niet meer te negeren : 34Ω en 1µH. Ook is er bij grotere afstanden de invloed van heengaande en reflecterende golven in de lijn die extra reflecties veroorzaken. Naast de opgelopen vertragingen vanwege de afstand is er ook grote invloed van omgevingsruis (externe magnetische velden door motoren, etc). Daarom kan een analoge twisted pair enkel gebruikt worden bij korte afstanden. Figuur 2.2 : Opbouw analoge transmissielijn
2.1.2.2. Digitale bedrade overdracht 1) RS-232 & RS-485 Dit protocol RS-232 (Recommended Standard 232) is een standaard voor een verbinding tussen data link toestellen d.m.v. seriële binaire data. Het is in staat om zowel synchroon als asynchroon aan data transmissie te doen. Het protocol werkt naast GND met 2 data lijnen die instaan voor het ontvangen (RX) en verzenden (TX) van data [4]. De GND is steeds rond deze lijnen gevlecht om ruis te verminderen. De aansluitingen met de connector (DB9) aan het gedeelte van het signaalverwerkend medium wordt in figuur 2.4 gevisualiseerd. Het protocol kan dus in full duplex mode werken zodat transmissie in beide richtingen terzelfdertijd mogelijk is. Het protocol definieert dat de spanning voor een logische 1 en een logische nul mag variëren. Voor een logische 0 mag de spanning variëren tussen +3V +15V en voor een logische 1 tussen -3V -15V waarbij het gebied rond de 0V niet toegelaten is (zie figuur 2.5). Doordat dit protocol gebruik maakt van standaard hogere spanningen dan bij IC’s zijn er dus speciale drivers nodig voor de omvorming van signalen in logische levels waarmee de IC’s kunnen werken. Figuur 2.4 : Aansluiting connector bij RS-232
4
Visualisatie Ondergrondse Parking
Didier Vandeputte
De dataoverdracht bij dit protocol bestaat uit 8 databits, een startbit en een stopbit. Deze laatste 2 bits zijn nodig aangezien de data niet op commando van een klok geregeld wordt, maar dus asynchroon. Deze startbit kan bij de ontvanger eenvoudig herkend worden aangezien de toestand vooraf telkens neutraal (idle) is. Bij de databyte wordt er opgemerkt dat de eerste bit telkens de LSB is. Er is de mogelijkheid om een pariteitsbit toe te voegen als foutcontrole op de data. De stopbit wordt telkens aangeduid met een logische ‘1’. Figuur 2.5 : Signaalverloop bij RS-232
Maximale snelheden tot 1,5Mbps kunnen bereikt worden en dit bij afstanden tot 15m (2500pF). Echter kan een hogere kabellengte verkregen worden als deze een lagere parasitaire capacitantie bezit. Bij een UTP CAT-5 kabel is de typische capaciteit slechts 57pF/m waardoor de maximale lengte 44m wordt. Dit zijn echter lengtes met een gemiddelde snelheid van 20Kbps. Door de baudrate te verminderen (= snelheid van het aantal paketten data vb 1 byte) kunnen afstanden tot 150m (9600KBaud) of meer (900m bij 2400KBaud) gehaald worden. Een nadeel van RS-232 is dus de verlaagde snelheid bij hogere kabellengtes, de invloed van ruis en de point-to-point communicatie. RS-485 biedt hiervoor enkele verbeteringen aan [4]: deze heeft een lengte van 100m (12000 Kbps) tot 1200m (100Kbps) aangezien de spanningsverschillen bij logische niveaus kleiner zijn (0v+5V t.o.v. GND) en een multipoint communicatie met max. 256 gebruikers (afh. van de belastingseenheid zie p.45). Het probleem van ruis wordt opgelost door i.p.v. het signaal te vergelijken t.o.v. GND (bij RS-232), bij RS-485 het verschilniveau te bekijken tussen 2 signaallijnen. Bij een mogelijk storing komt dit op beide kabels terecht en is het verschil minimaal, m.a.w. de storingen zullen elkaar opheffen. Dit alles bij unshielded twisted pair. Uiteraard bij twisted (STP) en foiled (FTP) kunnen nog hogere snelheden en afstanden bereikt worden. Een nadeel van RS-485 is dat er geen full duplex werking is maar standaard slechts half duplex bij 2 signaaldraden ofwel optioneel via 4 signaaldraden (TD+, TD-, RX+, RX-) toch full duplex. Verder is de datastream bij RS-485 dezelfde en wordt dit eerder gebruikt in de industrie als controlesystemen, regelsystemen, data-acquisitie, PLC’s, microcontrollers, … en als basis voor bepaalde andere bus PLC-protocols. Zoals voorheen verteld is het grootste plusplunt van RS-485 t.o.v. RS-232 de multipoint-verbinding. RS-423 (hogere snelheden en afstanden dan RS-232) en RS-422 (hogere snelheden en afstanden dan RS-232 en RS-423 maar beiden lager dan RS-485) bestaan ook maar bestaan beiden uit een multidrop-verbinding d.w.z. 1 master en tot max. 10 slaves. Aangezien geen bidirectionele communicatie aanwezig is met een verminderd aantal gebruikers, is deze ook benadeeld t.o.v. RS-485. Volgende figuur 2.6 toont het principe schema van het RS485 netwerk met de verschillende nodes waarvoor praktisch gezien differential transceiver IC’s (zie gedeelte methoden) kunnen gebruikt worden. Tenslotte dient er telkens nog een 100Ω 120Ω terminalweerstand geplaatst te worden om reflecties op de bus te minimaliseren. Figuur 2.6 : Multipoint communicatie met RS-485
5
Visualisatie Ondergrondse Parking
Didier Vandeputte
2) Bussysteem Aangezien RS-485 wel communicatie voorziet tussen meerdere gebruikers wordt dit aanzien als een bussysteem. Dit bestaat typisch uit meerdere nodes, stubs met een backbone als verbinding, zoals weergegeven in figuur 2.7. Bussystemen hebben het voordeel dat er minder bekabeling aanwezig is, eenvoudig wijzigingen kunnen aangebracht worden, extra gebruikers kunnen toegevoegd worden, alsook het opsporen van defecten. Hierna volgen enkele besproken bussystemen zoals SPI, I²C, SMbus en CAN. Figuur 2.7 : Principe bussysteem
a) SPI Deze communicatiestandaard gebruikt synchrone seriële data tussen 1 master en meerdere aangesloten slaves. Er wordt hierbij gebruik gemaakt van 4 signaaldraden (MOSI (Master Out Slave In), MISO (Master In Slave Out), SCLK (Serial Clock) en CS (Chip (of Slave) Select)) en is gevisualiseerd in figuur 2.8.
Figuur 2.8 : SPI-verbinding tussen Master en Slave
Na de kloksynchronisatie tussen de gebruikers zal de master de communicatie starten met 1 gebruiker door de chipselect van deze slave op ‘Low’ te plaatsen. Een eerste nadeel bij SPI is dat er geen slave controle is zodat de master mogelijk communiceert met een onbestaande slave. Vanwege de hoge klokfrequentie wordt SPI best enkel gebruikt bij korte afstanden, wat een 2de nadeel is. b) I²C Dit type is gelijkaardig met synchrone SPI, maar gebruikt hiervoor slechts 2 signaallijnen (SCL en SDA). De richting van de data tussen master en slave gebeurt dan via de adressering met bijhorende acknowledge bits. Onderstaande figuur 2.9 toont de I²C-verbinding tussen 1 master en verschillende slaves.
Figuur 2.9 : I²C-verbinding tussen Master en Slave
Als de master wil communiceren met een slave wordt er eerst een startbit, gevolgd door een 7 bit adressering van de slave en tenslotte een write (0) - of read (1) bit geplaatst als er data geschreven of gelezen wordt naar de slave. Bij ontvangst bij de slave wordt er een acknowledge bit gestuurd waarna de echte dataoverdracht tussen beiden kan starten. Opnieuw is telkens de MSB de eerste bit van de reeks. Dit geheel wordt voorgesteld in figuur 2.10. Eerst wordt een startbit (S) gestuurd (SDA wordt actief 6
Visualisatie Ondergrondse Parking
Didier Vandeputte
laag terwijl SCL hoog blijft). Nadien wordt de klok actief laag en start de dataoverdracht. Deze wordt gesampled als de klok terug telkens hoog is. Tenslotte volgt een stopbit bij de overgang van een actief hoge datalijn en een hoge kloklijn. Klokfrequenties hebben een waarde tot 100KHz3,4MHz. Spanningsniveaus zijn gelegen tussen 1,5V3V met een gemiddeld vermogen van 15mW (typisch 3mA).
Figuur 2.10 : Data-overdracht tussen Master en Slave
Snelheden worden gehaald tussen 10Kbits/s 100Kbits/s tot zelfs 3,4Mbits/s. Ook dit type is eerder bedoeld voor kleine afstanden maar als de baudrate, datasnelheid verlaagd wordt, kunnen grotere afstanden bereikt worden. c) SMbus Dit is ook een bussysteem met 2 signaallijnen dat afgeleid is van I²C (met zelfde hardware en adressering). De klokfrequentie is tussen 10KHz100KHz. De spanningsniveaus zijn gelimiteerd tussen 0,8V2,1V maar met een voedingsspanningsbereik tussen 3V5V en een gemiddeld vermogen van 1mW20mW (0,35mA4mA). Verder is ook nog een error checking gedeelte toegevoegd wat I²C voordien niet bezat. d) CAN Dit busprotocol werd oorspronkelijk gebruikt in de auto-industrie (wordt vandaag in praktisch iedere wagen toegepast, maar ook in vrachtwagens, treinen, vliegtuigen (blackbox) etc.), maar wordt nu ook toegepast in industriële automatisatie zoals PLCtoepassingen, liften, robots, en andere embedded systems. Dit protocol is een netwerk dat modules, nodes (bestaat uit microcontrollers, Electronic Control Unit) met elkaar seriëel laat communiceren via een half duplex systeem [5, 6]. Het protocol maakt ook gebruik van twisted pair verbindingen waardoor deze minder storingsgevoelig zijn (differential mode). Men bereikt snelheden tot 1Mbit/sec bij een 40tal meter. In figuur 2.11 is een principevoorstelling van het busprotocol getekend.
Figuur 2.11 : Opbouw CAN-netwerk
Zoals ieder netwerk bestaat ook CAN uit verschillende lagen uit het OSI-model (zie figuur 2.12). Hoofdzakelijk 2 lagen worden bij CAN gebruikt (fysieke- en datalinklaag) en worden hierna kort besproken.
7
Visualisatie Ondergrondse Parking
Didier Vandeputte
De fysieke laag zal bestaan uit een elektrisch circuit dat een CAN-module op de bus connecteert. Dit aantal is nagenoeg beperkt. Deze CAN-bus bestaat uit twee gevlochten draden (twisted pair), CAN-High (CAN-H vb. 3,5 V) en CAN-Low (CAN-L vb. 1,5 V). De data op de bus is dus differentieel en kan 2 toestanden bezitten : dominant (logische 0) en recessief (logische 1). Dit wordt weergegeven in figuur 2.13. Om reflectie in de CAN-bus kabel tegen te gaan, worden er 2 afsluitimpedanties, terminators, van 120Ω aan gesloten. De verbinding tussen iedere CAN-module en de CAN-bus zelf gebeurt met een db9-connector.
Figuur 2.12 : OSI-model
Figuur 2.13 : Logische toestanden bij CAN
De datalink laag (bevat Logical Link Control en Medium Acces Control) handelt over het versturen en ontvangen van berichten. Bij CAN gebruikt men het multimasterprincipe. Dit wil zeggen dat iedere module op het netwerk, op eigen initiatief, berichten op de bus kan plaatsen en ontvangen (in tegenstelling tot master-slave principe bij de meeste andere busprotocollen). Dus als een module een bericht verstuurt dat eigenlijk maar voor één bepaalde module bedoeld is, ontvangen alle andere modules dit bericht ook. Na ontvangst beslist elke module, via een persoonlijke filter, acceptance filter, of het bericht wel voor hem bedoeld was en als hij het bericht verwerkt. Er is dus geen adressering aanwezig. Aangezien er de mogelijkheid is dat verschillende modules tegelijk een bericht kunnen versturen, wordt er dan gebruik gemaakt van een arbitragesysteem. Deze zorgt ervoor dat slechts één zender tegelijk toegang krijgt tot het plaatsen van berichten op de bus want iedere module heeft een bepaalde prioriteit. Indien er meerdere zenders tegelijk willen zenden, krijgt de zender met de hoogste prioriteit de bus toegewezen. Berichten met een lagere prioriteit worden onderbroken. Dit gebruikte arbitragesysteem heet CSMA/CD + AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority) dat ook gehanteerd wordt in Ethernet LAN netwerken.. Een CAN-bericht wordt in een vast formaat, frame, verstuurd. Er zijn 4 verschillende frames mogelijk : - Data frame : Dit is een bericht waarin actuele data verstuurd wordt voor andere modules - Remote frame : Dit is een frame zonder data. Het bevat het verzoek om aan andere CAN-modules een data frame te sturen. - Error frame: Dit frame wordt verstuurd wanneer een CAN-module een fout op de bus gedetecteerd heeft. 8
Visualisatie Ondergrondse Parking
Didier Vandeputte
- Overload frame: Dit frame wordt verstuurd indien er meer tijd nodig is tussen de verschillende data frames (of remote frames) als een bepaalde module een langere verwerkingstijd nodig heeft. Er zijn dan ook nog 2 frameformaten : een standaard frameformaat met 11 bit ID en een extended frameformaat met 29 bit ID (zie figuur 2.14). Dit laatste frameformaat bezit dus meer bits en heeft bijgevolg een lagere overdrachtssnelheid en vereist een hogere bandbreedte. Tenslotte kan deze snelle seriële bus snelheden halen tot 1Mbit/s en max. 30-40 gebruikers bij 40m. De afstand kan verhoogd worden met een dalende snelheid vb 500m bij 125Kbps). Dit busprotocol kan dankzij de foutdetectie & correctie actief zijn bij extreme omstandigheden voor de fysieke laag.
Figuur 2.14 : Opbouw bij standaard en extended frameformaat van CAN
e) Overzicht Bussystemen
Tabel 1.1 : Overzicht Bussystemen
9
Visualisatie Ondergrondse Parking
Didier Vandeputte
3) PLC bussystemen Bij bussystemen zijn er ook een aantal typisch voor PLC-systemen zoals Fieldbus, Interbus, Profibus, ... en gebruiken telkens 3 lagen van het OSI-model (laag 1, 2 en 7) [6]. De Fieldbus gebruikt ethernet als busverbinding en kan zo hoge snelheden halen tot 100MBps met praktisch ongelimiteerde gebruikers met een max. afstand tot 2000m. Interbus (Phoenix Contact) dient max. 256 gebruikers op een afstand tot 400m. Profibus (Siemens, met 2 aansluitdraden) haalt tenslotte snelheden tot 500Kbps met afstanden tussen 200m (32 gebruikers, zonder repeater) tot 800m (127 gebruikers met repeater). De verdere structuur van deze bussystemen behoort niet tot de essentie van deze thesis en wordt bijgevolg niet verder behandeld. 4) Multiplexing Als er enkel een unidirectionele signaaloverdracht is tussen 1 master en verschillende slaves, kan i.p.v. met een hexadecimale adresseringscode ook gebruik gemaakt worden van multiplexering van de slaves. Hierbij is het rekening houden met de complexiteit van de binaire adrescodering naarmate het aantal slaves. Dit wordt voorgesteld in onderstaande figuur 2.15.
Figuur 2.15 : Multiplexering
5) Optisch Het medium waarvan de kwaliteit het minst afhankelijk is van omgevingsruis (EMC en overspraak gerelateerd) en bijgevolg hoge snelheden kunnen behouden blijven bij grote afstanden is via het licht. Een optische glasvezelkabel of fiber optic bestaat uit één of meerdere glasvezels. Elke vezel bestaat uit een kern en een mantel gemaakt uit zuiver kwartsglas of kunststof [8]. Veelal wordt infraroodlicht doorgestuurd. Het is belangrijk bij het insturen van licht dat deze de kabel binnendringt onder een bepaalde hoek. Want indien de hoek van het licht t.o.v. de horizontale (=acceptantie kegel) groter is dan aanbevolen zal het signaal verloren gaan. De bandbreedte van het optisch medium is groot, zodat hogere bitsnelheid mogelijk zijn. Wegens de hogere prijs voor deze kabel wordt in een netwerk meestal enkel de backbone optisch uitgevoerd. Er zijn drie types van glasvezelkabel te onderscheiden (zie figuur 2.16). Ten eerste is er de multi mode stepindex. Deze kabel heeft een relatief grote kabeldoorsnede waardoor meerdere lichtstralen onder verschillende hoeken de kabel kunnen binnentreden. Hierdoor zal er verspreiding van licht in de kern ontstaan. Afhankelijk van de lengte van de kabel zal het licht meer gereflecteerd worden tegen de randen waardoor er telkens meer en meer spreiding ontstaat. De bandbreedte is hierbij beperkt tot 200 MHz. De mono mode stepindex heeft een dunnere kern dan deze hierboven beschreven waardoor de lichtstralen recht de kabel binnentreden en er geen verstrooiing van licht is. Wegens de hogere bandbreedte van 3 tot 50 GHz is dit type meer geschikt voor digitale signalen t.o.v. het vorige. Hiervoor is echter een dunne lichtstraal zoals een laser nodig, waardoor 10
Visualisatie Ondergrondse Parking
Didier Vandeputte
de kostprijs stijgt. Ten derde is er ook nog de multi mode graded index. Deze heeft een kern waarbij de brekingsindex variabel is waardoor het ingestraalde licht afbuigt. Hierbij is de afstand die het licht aflegt aan de buitenkant van de kabel groter dan in het midden. Daar staat tegenover dat de brekingsindex van het glas in het hart groter is. Door de lage brekingsindex zal de snelheid van het licht aan de randen groter zijn dan in het midden van de kern en zal in zijn geheel de vervorming zoals bij multimode step index laten verminderen. De bandbreedte is hier gemiddeld van 200 MHz tot 3 GHz.
Figuur 2.16 : Types bij glasvezelkabel
6) Ethernet (LAN) Ter vervollediging kan uiteraard de signaaloverdracht tussen master en slaves via het ethernet als bussysteem gebruikt worden. De uitgebreide structuur van ethernet behoort echter niet tot de essentie van deze thesis en wordt bijgevolg niet verder behandeld.
2.1.2.3. Digitale draadloze overdracht Voor overdracht kan er ook gebruik gemaakt worden van draadloze media. Figuur 2.17 geeft een overzicht van enkele types met de snelheid i.f.v. de afstand [7]. Draadloze netwerken zijn echter gevoeliger voor reflecties en interferentie waardoor dit geen aanrader is voor een ondergrondse parking. Volgende types worden opgesomd maar dus niet verder behandeld in deze scriptie. Figuur 2.17 : Overzicht draadloze netwerken
WLAN (IEEE802.11; zendfrequentie 2,4GHz; snelheden 2Mbps250Mbps) Bluetooth (IEEE802.15.1; zendfrequentie 2,4GHz; snelheden tot 1 Mbps; o.a. gebruikt voor draadloze vervanging van IR-signalen met afstanden 10m100m (met speciale transceivers) met max. 7254 gebruikers) Zigbee (IEEE802.15.4; snelheden tot 250Kbps; afstanden standaard 10m tot max. 100m; max 256 gebruikers) Wimax (IEEE802.16; zendfrequentie 2Ghz 11GHz; snelheden max. tussen 100MBps (dynamic) 1Gbps (static); afstanden tot 50Km) RFID (snelheden max. 115Kbps; afstanden 3m100m; max. 256 gebruikers) Wireless MeterBus GSM-netwerken zoals GPRS, EDGE, UMTS, ... (point-to-point gebruik, max. afstand >1Km) 11
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.1.3. Signaalverwerking
2.1.3.1. PLC Voor een grondige studie is ook aan enkele collega’s (richting EM, ET, Automatisatie, ...) rondgevraagd naar enkele ideeën. Dit project is duidelijk ook realiseerbaar met een PLC als signaalverwerkend medium. In Howest wordt er veel gebruik gemaakt van 2 types, merken PLC : Siemens (Simatec S7-300) en Phoenix Contact (zie figuur 2.18).
Figuur 2.18 : PLC Siemens & Phoenix Contact
De PLC bestaat typisch uit enkele analoge, digitale, relais- en I/O-uitbreidingskaarten voor de aansluiting van de signalen met een 24V DC-voeding. Voor de seriële communicatie tussen de PLC en I/O’s (vb. sensoren, lampen, ...) kan er gebruik gemaakt worden van enkele typische PLC-communicatieprotocols en veldbussen zoals Profibus, Fieldbus, Interbus, CAN, Ethernet (of draadloos), RS232, ... Voor de programmering kan er bij de Siemens PLC gebruik gemaakt worden van de standaard software omgeving via een ladderdiagram etc. Bij Phoenix Contact is er ook de mogelijkheid om de software te realiseren met externe programmeertalen zoals Visual Basic, ... . Uiteraard heeft de PLC intern een microcontroller. Voor dit project is enkel deze controller nodig en zijn de vele kaarten met hoge voedingsspanning en grote isolatie voor hoge stromen overbodig. Want het is niet de bedoeling alle sensoren op deze kaarten rechtstreeks aan te sluiten maar via een bussysteem (of evt. multiplexering). Aangezien het project slechts gebruik maakt van zwakke stromen en spanningen die best rechtstreeks verbonden worden via een kleine signaalverwerkende controller, is een PLC dus overbodig en wordt dit niet gekozen.
12
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.1.3.2. FPGA Een FPGA is een controller waarvan de werking geprogrammeerd kan worden (vb. instelling van 100.000 tot 2 miljoen gates). Het heeft t.o.v. een klassieke PLD een complexere opbouw met een hogere densiteit. Het voordeel is dat een FPGA via een upgrade herconfigureerbaar is als het al ingebouwd is in een bepaald systeem. Een FPGA bestaat uit verschillende bouwstenen (zie figuur 2.19) [9] : Figuur 2.19 : Opbouw FPGA
Configurable Logic Blocks (CLBs) Input/Output Blocks (IOBs) Block RAM Multiplier Blocks Digital Clock Manager (DCM)
Het belangrijkste en grootste onderdeel zijn de CLBs. Deze bestaan uit look-up tables (LUT’s) die de logische functies en data bevatten (instelling van flipflops, NAND- of XORpoorten etc.). Een CLB is onderverdeeld in verschillende slices (vb. 4) met verschillende LUT’s per slice (vb. 2). Er is overigens de mogelijkheid om verschillende LUT’s in cascade te plaatsen om een grotere schuifregisters te creëren. De IOBs regelen de data tussen de Input/Output pinnen en de logica van de CLBs. De datastromen kunnen unidirectioneel, bidirectioneel of tri-state ingesteld worden, zijn meestal in TTL- of CMOSstandaard. Dit wordt veelal verdeeld in verschillende banken (vb. 4). Het RAM Block zorgt voor de data-opslag van de FPGA, uitgevoerd in enkele Kbits (vb. 18 Kbit) en is onderverdeeld in verschillende subblokken (vb. dual-port mode). De multiplierblocks kunnen datastreams van enkele bits met elkaar vermeningvuldigen. Zo kan vb. 2 18bit woorden vermenigvuldigd worden tot 1 36bit woord. De DCM zorgt voor vertragingen, vermenigvuldigingen, delingen en faseverschuivingen van kloksignalen. Het is mogelijk dat het kloksignaal op verschillende plaatsen in de FPGA wat vertraging oploopt (door setup en hold tijden) en dit wordt gecompenseerd door een faseverschuiving te genereren. Een DCM is typisch enkele malen is uitgevoerd op een FPGA. Tenslotte zal een programmeerbaar netwerk, Interconnect, al deze bouwstenen met elkaar verbinden (= routing). Een goede routing is belangrijk om mogelijke vertragingen tussen verschillende blokken te minimaliseren.
13
Visualisatie Ondergrondse Parking
Didier Vandeputte
De hardware beschrijvende taal voor een FPGA is VHDL (gestandardiseerd door IEEE in ’87 met updates doorheen de jaren, of Verilog). In tegenstelling tot klassieke programmeer talen met een typisch sequentiël verloop, wordt bij VHDL een structuur opgebouwd uit verschillende delen die gelijklopend (concurrent) zijn. Vooreerst worden de Inputs/Outputs gedeclareerd (entity), vervolgens de mogelijkheid om subprogrammas etc. op te roepen en tenslotte de beschrijving van de logica. Ook is er de mogelijkheid om het geheel te simuleren (vb. met Modelsim). Een vergelijkbaar type met een FPGA is een ASIC. Een ASIC bevat dezelfde logische bouwstenen en beschrijvende taal als een FPGA. Een ASIC wordt echter gebruikt voor bepaalde specifieke toepassingen (zoals in GSM’s, huishoudelektro, ...) t.o.v. de algemeen gebruikte FPGA. Want een FPGA wordt meer gebruikt als prototype, voor kleinere hoeveelheden, lagere snelheden, hoger energieverbruik en hogere productiekosten dan een ASIC. Tenslotte is er doorheen de jaren meer en meer de combinatie gemaakt van een FPGA en microprocessor die in het geheel een SoC vormt. Deze combinatie van seriële en parallele uitgevoerde processen bestaan uit geheugens (zoals ROM, RAM, EEPROM, Flash, ...), digitale, analoge en andere bouwstenen en worden meestal ook met VHDL geprogrammeerd. De combinatie van deze hardware en software elementen vormen samen een embedded system geheel dat een specifieke taak uitvoert. Veelal is dit opgebouwd uit een input gedeelte zoals sensoren, signaalverwerkingsgedeelte en een actuatorgedeelte dat de uitgangen regelt (zie figuur 2.20). Figuur 2.20 : Opbouw Embedded System
Een embedded system is de algemene benaming voor het geheel van elektronische bouwstenen die nodig is voor de specifieke werking van dit project. Bij het gedeelte onderzoek zijn veel besproken sensoren (zoals IR-temperatuursensoren, ...) een embedded system bestaande uit deze bouwstenen. Typisch voor sensoren (e.a. automotive en consumentenelektronica) wordt er meer en meer gesproken over MEMS [6] : miniatuurversies van deze embedded systems. Dit maakt een grote opmars aangezien o.a. sensoren steeds kleiner moeten worden en hebben een grootte van enkele µm mm. Dit zorgt voor een oppervlaktevermindering tot 95% (met bijhorende energiezuinigheid voor batterij-gevoede toepassingen) t.o.v. klassieke embedded systems
14
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.1.3.3. Microcontroller Als 3e mogelijkheid voor een signaalverwerkend medium kan gekozen worden voor een microcontroller. Deze vertrouwde oplossing (ontstaan in 1970s) is hedendaags in veel embedded toepassingen aanwezig (specifieke functies of meer algemeen zoals een DSP) en bestaat telkens uit volgende onderdelen (zie figuur 2.21) : Figuur 2.21 : Opbouw Microcontroller
Microprocessor (Central Processing Unit) : dit is de kern van een controller en is individueel aanwezig in een computer Geheugen : - ROM of (E)EPROM (lezen van data) - RAM (duurder & vluchtig t.o.v. ROM, opslaan van vairabelen etc. en is in minder grote hoeveelheid aanwezig) Peripherals : Input/Output voor communicatie met buitenwereld - Binair - Seriël - Analoog (ADC’s en DAC’s als extra) - Display Clock Software : programmering kan via C (# of ++, high level), Asembler (low level), Pascal, Basic (high level), ... Een gekende uitbouw van een microcontroller is een PIC (Microchip Technology). Dit type is populair door de voordelen van een lage kost, wijd verspreid, veel uitleg via application notes. De data is uitgevoerd in bytes en de adressering gebeurd in hardware stacks met bijhorende instructiesets. Microcontrollers bestaan in verschillende afmetingen en uitvoeringsvormen (afh. van architecture, busgrootte, prijs, ...). Enkele voorbeelden van hedendaagse fabrikanten wordt hieronder opgesomd : Altera, Arduino, Atmel, Dallas-Freescale-National-NXP Semiconductor, Intel, Microchip, Motorola, Nec, Parallax, STMicroelectronics, Texas Instruments, Xilinx, Zilog, …
15
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.2. Technologisch Onderzoek 2.2.1. Eindkeuze sensoren Bij het gedeelte sensoren van het technologisch ondezoek wordt van ieder besproken type sensor in het studie gedeelte onderzocht welke er momenteel door fabrikanten worden aangeboden. Ook dit gedeelte bevindt zich (samen met studie naar sensoren) in het afzonderlijke deel ‘Studie & onderzoek sensoren’. Op basis van het aantal componenten die nodig zijn voor een werkend geheel, de kostprijs met bijhorend vermogen verbruik, implementatiegebruik, ... wordt er een keuze gemaakt welke sensor (of combinatie van) de voorkeur biedt. Ook wordt er rekening gehouden met het feit dat, als Melexis enkele sensoren produceert, die kunnen gebruikt worden in de realisatie. Deze uiteindelijke eindkeuze (die dan geïmplementeerd wordt bij het gedeelte hardware van deze scriptie) voor een bepaald type sensor te gebruiken is specifiek voor dit project en is hieronder uitgebreid terug te vinden. Dit is het belangrijkste gedeelte bij het onderzoek van de sensoren. Hierin zal de beste (combinatie van) sensor(en) gekozen worden (keuze uit : IR temp. sensor, IR lichtstraal onderbrekingssensor, afstandssensor IR of ultrasoon, metaaldetectie, bewegingsdetectie, gewichtsdetectie en camera) voor onze toepassing : het detecteren van wagens. Om een stabiel detecterend systeem te realiseren, is het niet voldoende om detectie te laten uitvoeren door slechts 1 van de besproken types sensoren wegens verschillende omstandigheden. 1. Het gebruik van een IR temperatuur sensor is een goed voorstel voor 1 van de detectiesystemen. Als een wagen het parkeervak binnen rijdt, zal de sensor de temperatuur van dit object opmeten. Deze waarde wordt vergeleken met de ingestelde gemiddelde temperatuursrange van het oppervlak van een wagen (vb. 15°C+35°C). Bevindt zich deze daar in, dan wordt zo het object gezien als een wagen en is er een detectie. Zo wordt er 1 vereiste gelegd op het object en kan vb. een persoon niet gedetecteerd worden. 2. Echter kan de oppervlaktetemperatuur van een binnenkomende wagen buiten het voorgestelde temperatuursbereik vallen (vb. bij extreme vriestemperaturen, na een lange tocht, blootstelling in felle zon, ...) Daarom is het noodzakelijk een 2 e sensor te gebruiken : een metaal detecterende sensor. Want deze zal onafhankelijk van de temperatuur constant via inductie het metaal van de wagen detecteren. Deze detectiemogelijkheid is echter niet feilloos aangezien enerzijds andere omringende voertuigen eventueel de opgemeten waarde kunnen verstoren. Anderzijds kan een groot metalen object verschillend van een voertuig ook een foutieve detectie veroorzaken. Daarom de voorkeur voor een combinatie van beide sensoren. 3. Het gebruik van een IR lichtstraal onderbrekingssensor kan gebruikt worden maar is eerder af te raden : wegens een vereiste in de parking (zie 3.1 Parking-gegevens), mag er geen sensor geplaatst worden in de grond (type IR afzonderlijke zender & ontvanger, is dan ook de reden waarom een gewichtssensor niet kan toegepast worden) en kan er enkel via reflectie (type IR zender/ontvanger in 1 & reflector) zo een object waarnemen dat zich wel/niet de straal onderbreekt. Aangezien er geen gebruik mag gemaakt worden van een losse reflector in de grond, kan er enkel gebruik gemaakt worden van een reflecterende ondergrond (evt. d.m.v. bepaalde verfsoort). 16
Visualisatie Ondergrondse Parking
Didier Vandeputte
Er is echter de mogelijkheid dat door het vele gebruik van de parking zo na verloop van tijd zwarte bandensporen op de reflecterende ondergrond komen te staan. Hierdoor wordt het risco gelopen dat bij genoeg verontreiniging de straal continu onderbroken wordt en zo verkeerdelijk “een wagen” gedetecteerd kan worden. Het afzonderlijk gebruik van deze sensor is al helemaal uit den boze aangezien een voorwerp of persoon ook gedetecteerd kan worden. Ook in combinatie met een IR temperatuur sensor is dit niet geschikt aangezien beide IR stralen van beide sensoren elkaar kunnen verstoren. Enkel in combinatie met de inductieve sensor is er een minimale bijdrage. 4. Een vervolmaking van het detectiesysteem (naast de IR temp. sensor en de metaaldector) is de afstandssensor. Deze zal de afstand detecteren tussen de wagen en de sensor. Is deze binnen een bepaalde range, kan zo ook een wagen gedetecteerd worden. Dit heeft als een toevoeging het voordeel dat het voorwerp een minimale hoogte moet hebben en bij wijze van spreken “een warme metaalplaat” niet aanzien kan worden als wagen. De vereiste is wel dat het een ultrasone afstandssensor is, want opnieuw met een IR versie kan deze en de IR temp. sensor elkaar verstoren. Uiteraard is deze ultrasone afstandssensor geen grote aanvulling en kan deze later nog in vraag getrokken worden. 5. Een bewegingssensor kan voor de toepassing het detecteren van wagens niet gebruikt worden, aangezien deze echter enkel bewegingen detecteert (veranderingen van IRstraling binnen het FOV van de sensor). Het heeft dan ook geen grote bijdrage om deze te combineren met andere sensoren. 6. Tot slot was er bij de detectietypes ook de mogelijkheid om een camera te gebruiken die de aanwezigheid van een wagen kan detecteren. Dit zou het voordeel leveren dat slechts 1 toestel nodig is t.o.v. 1 of meerdere sensoren per parkeerplaats. Er is echter een belangrijk nadeel aan verbonden : de personen en wagens (kenteken) mogen niet zichtbaar gemaakt worden. Er mag dan ook geen beeldmateriaal gelogged worden en al dit om de privacy van de werknemers te behouden. Wegens dit gevoelig punt wordt het gebruik van een camera eerder afgeraden. 7. Besluit : met de opgesomde voor- en nadelen wordt er gekozen bij voertuigdetectie : - IR temperatuur sensor : MLX90614, Melexis 1-2 € productiekost per 100 stuks bij Melexis - Ultrasone afstandsensor : LV-MaxSonar-EZ1-MB1010, MaxBotix 16,84 €/stuk (bij 60 stuks, MaxBotix) - Metaal detecterende AMR-sensor : AS-V20NA-R, Murata 0,58 €/stuk (bij 100 stuks, Mouser) Totaal = 1-2 € + 16,84 € + 0,58 € = 19 € per parkeerplaats De parking telt ±60 parkeerplaatsen : 1140 € totaal (5000 € budget Melexis) Voor personendetectie wordt er gekozen voor : Bewegingssensor : EKMC1603112, Panasonic 9,97 €/stuk (bij 10 stuks, Mouser) Afh. van de oppervlakte van de parking en specificaties van de sensor : 6-10 stuks voor de oppervlakte van de parking = 60 €-100 € 17
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.2.2. Signaalverwerking Naast de detectie van voertuigen (en personen) en visualisatie (LEDwalls en display), is uiteraard ook de signaalverwerking een belangrijk onderdeel (zoniet het belangrijkste) van het geheel. Uit de 3 besproken types uit het studiegedeelte is een FPGA een mogelijkheid en kan praktisch gebruikt worden met een bijhorend BASYS testboard van Digilent die in de Hogeschool aanwezig is (zie figuur 2.22). Figuur 2.22 : FPGA BASYS testboard, Digilent
Het testboard gebruikt als FPGA het type Spartan3E-100 TQ144 (100.000 programmeerbare schakelende transistoren in een 144p. behuizing) van Xilinx. Naast een externe voeding of via USB, heeft deze een instelbare klokfrequentie (25MHz 100MHz) en een rechtstreeks VGA-aansluiting (met 256 kleuren) om een extern scherm op aan te sluiten. Het board heeft tenslotte 32 verschillende I/O’s (schakelaars, drukknoppen, LED’s en 7 segm. Displays), ... maar zijn echter niet serieel.
Een 2e mogelijkheid is het gebruik van een microcontroller. Een microcontrollerboard, Arduino Uno van Arduino (zie figuur 2.23) is in de Hogeschool aanwezig voor gebruik (25,10€ (incl. tax en verzending) besteld bij de fabrikant, 31,01€ bij Farnell). Het board gebruikt de microcontroller Atmega 328 (32KB flash geheugen, 2KB RAM geheugen en 1KB EEPROM) en is vergelijkbaar met het BASYS testboard en bezit 14 (gedeeltelijk seriële (=voordeel), SPI) I/O-pinnen met 6 analoge inputs en een 16MHz klokfrequentie. Figuur 2.23 : Microcontroller Arduino Uno testboard, Arduino
18
Visualisatie Ondergrondse Parking
Didier Vandeputte
2.2.3. Bestaande Realisaties Om de parking te voorzien van gebruiksvriendelijke, duidelijk zichtbare en efficiënte technologie voor de gebruikers, wordt eerst gekeken naar enkele bestaande realisaties. Hierbij wordt rekening gehouden met de plus - en minpunten van iedere parking, om zo eventuele fouten te verbeteren en zelf een geslaagd geheel te creëren.
2.2.3.1. Ondergrondse Parking Schouwburgplein Kortrijk Startende vanuit Kortrijk (waar HOWEST gelegen is), is de dichtst bijzijnde ondergrondse parking deze op het Schouwburgplein (395 parkeerplaatsen, in handen van Parko Kortijk). Tot voor kort (voor september - oktober 2011) werd volgende (klassieke) technologie gebruikt voor een telsysteem en visualisatie: naast een slagboom aan de ingang is een inductieve lus in de betonnen ondergrond aanwezig (>250€/stuk voor 2 kanalen excl. plaatsing) die een bovenliggende wagen detecteert. Hieraan is een intern telsysteem gekoppeld voor de toekenning van parkeerticketten aan bestuurders. Dit systeem zal zo het totaal aantal vrije plaatsen tellen en via een kleine LED-wall buiten de parking aan de bestuurders visualiseren en/of algemeen als vrij/volzet aangeven. Bij een 2e bezoek (december 2011) is er een update plaats gevonden van het systeem: op een 2e LED-wall (zie figuur 2.24) wordt het aantal vrije plaatsen gevisualiseerd per niveau (de parking bezit 3 niveau’s). Eerst werd persoonlijk vermoed dat per niveau enkele optische IR-straal sensoren gebruikt worden bij de verschillende niveau overgangen. Indien deze stralen doorbroken worden bij het passeren van een voertuig, worden zo de aantallen voor de verschillende niveaus bepaald. Na contactopname met deze vestiging werd dit principe vroeger inderdaad gebruikt, maar was niet altijd volledig nauwkeurig (vb. foutieve telling bij bumperkleven van verschillende voertuigen). Om dit op te lossen werd opnieuw in de overgangsstukken tussen verschillende niveau’s gebruik gemaakt van inductieve lussen op de ondergrond (>450€/stuk excl plaatsing). Bij het binnenrijden van een wagen aan de slagboom wordt het aantal vrije plaatsen op het 1e niveau gedecrementeerd (-1). Indien het voertuig zich echter naar het 2e verdiep verplaatst, wordt het aantal van het 1e niveau geïncrementeerd en bij het 2e niveau gedecrementeerd. Dit principe geldt ook voor het 3e niveau en is in geheel omgekeerd voor het verlaten van de parking. Er is echter bij het laatste bezoek persoonlijk ondervonden dat dit telsysteem niet altijd volledig nauwkeurig is (aantal vrije plaatsen op het scherm komt af en toe niet overeen met de werkelijke vrije plaatsen). Naast dit nadeel, is er geen individuele detectie & signalisatie van iedere parkeerplaats (vb. zie volgende parkings), hetgene wat specifiek gevraagd werd bij deze masterproef. Hierbij zijn inductieve lussen al aangehaald als financieël onhaalbaar voor alle parkeerplaatsen. Figuur 2.24 : Overzichtsscherm Schouwburgplein Kortrijk
2.2.3.2. Ondergrondse Parking Shoppingcenter K Kortrijk De nieuwste ondergrondse parking in Kortrijk is deze van het Shoppingcenter K (Steenpoort 2). Aangezien hier veel parkeergelegenheden zijn (1050 plaatsen), is een goede signalisatie noodzakelijk. Men is hierin geslaagd want, zowel bij het binnenrijden van de parking als bij ieder knooppunt, wordt het aantal vrije plaatsen (ook voor bestuurders met beperkingen) duidelijk op LED-walls weergegeven. Dit is absoluut een groot pluspunt aan deze locatie. Het telsysteem wordt hier gerealiseerd d.m.v. een sensor die boven iedere individuele parkeerplaats is bevestigd en zo wagens die in en uit een plaats rijden detecteert. Ook is er telkens een indicatie als de plaats wel (groen)/niet (rood) beschikbaar is. Zowel de sensor als indicatie is in 1 behuizing geplaatst. Er is 19
Visualisatie Ondergrondse Parking
Didier Vandeputte
echter 1 nadeel aan verbonden: de sensor/indicatie module staat telkens ver weg van de rand van de inrit van iedere parkeerplaats, waardoor de signalisatie minder duidelijk is als men vanop afstand er langs rijdt. Dit wordt weergegeven in figuur 2.25.
Figuur 2.25 : Installatie in shopping K Kortrijk
Deze parking is in handen van het internationale parkeerbedrijf Qpark en zorgt voor professionele parkeergelegenheden in verschillende steden in België + 9 andere landen in Europa. Het bedrijf zorgt iedere keer voor een goede afwerking van het totale pakket waaronder veiligheid, verluchting, verlichting, toegangscontrole, ... en heeft hiervoor al vele prijzen doorheen de jaren verkregen.
2.2.3.3. Ondergrondse Parking Gent Zuid Een 3e bezochte parking is de locatie Gent Zuid (nabij Capitole, 1038 plaatsen) en is vergelijkbaar met de locatie van shopping K in Kortrijk. Hier is de sensor los van de signalisatie per parkeerplaats, waardoor deze signalisatie dichtbij de rand kan geplaatst worden voor duidelijker gebruiksgemak. De behuizingen van beide modules zijn identiek waardoor dit de productiekosten kan laten dalen. Opnieuw is de signalisatie zeer duidelijk in groen (pijltje)/rood/blauw wat een groot pluspunten aan deze locatie is. Enig minpunt is de visualisatie van het aantal vrije parkeerplaatsen die in deze locatie iets minder duidelijk is. Tenslotte is deze parking in handen van het internationale parkeerbedrijf Interparking en is een stevige concurrent van Qpark. Dit alles wordt weergegeven in figuur 2.26.
Figuur 2.26 : Installatie in parking Gent Zuid
2.2.3.4. Ondergrondse Parking Brugge ‘t Zand Deze 4e bezochte parking is de locatie ’t Zand in Brugge (1369 plaatsen) en is sterk vergelijkbaar met de locatie van Gent Zuid, aangezien deze (net zoals de parking in Zaventem (alle gedeeltes samen ±11000 plaatsen)) ook gerealiseerd is door Interparking. Afhankelijk van de positie van de parkeerplaats t.o.v. de hoofddoorgang, kan de sensor en signalisatiemodule per parkeerplaats in 1 of in 2 aparte behuizingen uitgevoerd zijn. De signalisatie is opnieuw zeer duidelijk. Dit alles wordt weergegeven in figuur 2.27.
Figuur 2.27 : Installatie in parking Brugge ‘t Zand
Na contactopname met de verschillende vestigingen van Q-park en Interparking kan er algemeen besloten worden dat de detectie van voertuigen hier meestal gebeurt d.m.v. afstandsdetectie (IR of ultrasoon) en/of metaaldetectie. Echter is proefondervindelijk getest bij verschillende vestigingen dat een persoon onder de sensor ook af en toe foutief gedecteerd wordt als “een voertuig”. Dit kleine probleem zou eventueel kunnen opgelost worden m.b.v. een extra sensor (vb. IR-temperatuur sensor). 20
Visualisatie Ondergrondse Parking
Didier Vandeputte
3. Methoden In voorgaand gedeelte onderzoek & studie werden de verschillende mogelijkheden onderzocht bij sensoren, bestaande realisaties, signaalverwerkingseenheid en communicatie. In dit komende gedeelte wordt er telkens beslist welke onderzochte methode het best toepasbaar is. Vooreerst wordt er stil gestaan bij de specificaties van de parking. Op basis hiervan volgt het blokschema van het elektronisch systeem. Vervolgens wordt zowel de hardware als software hieruit behandeld.
3.1. Parking gegevens Om een idee te krijgen welk(e) type(s) sensor(en), welke soort(en) visualisatie(s) en welke communicatie er moet gebruikt worden, is het belangrijk eerst te weten hoe de parking is opgebouwd. Want uiteraard bepaalt deze informatie de samenstelling van de totale installatie. De ondergrondse parking biedt plaats aan een 60tal wagens. Door het geringe aantal is dit uitgevoerd op 1 niveau met afmetingen 40 x 36m. Belangrijk voor de sensoren is dat iedere parkeerplaats een maximale hoogte bezit van 3,10m tot het plafond. Overigens heeft iedere parkeerplaats een standaard lengte van 5,4m (max. 6m) en een breedte van 2,6m (max. 3m3,35m). In onderstaande figuur 3.1 wordt de architecturale tekening van de parking weergegeven.
Figuur 3.1 : Tekening ondergrondse parking
21
Visualisatie Ondergrondse Parking
Didier Vandeputte
Verder wordt er met volgende eigenschappen van de parking rekening gehouden bij het ontwerp van het elektronisch systeem : 1a) Deze ondergrondse parking is enkel bedoeld voor werknemers van het bedrijf waarvan een gedeelte van deze werknemers in een ploegensysteem werken. Zo moet er voor de ochtendshift (7u tot 13u), middagshift (13u tot 17u) en nachtshift (17u tot 7u) telkens individueel kunnen ingegeven worden wat het minimaal aantal vrije parkeerplaatsen moeten zijn. Deze wisselende groep heeft immers voorrang op bestuurders die een volledige dag (of langer) blijven. 1b) Om energie te besparen moet het systeem afhankelijk gemaakt worden van deze shifts. Zowel het geheel als enkel de verlichting in de parking, moet op bepaalde tijdstippen kunnen in- en uitgeschakeld worden. Zowel manueel als met een bewegingssensor ter plaatse, manueel op afstand in het bedrijf en via onderstaande tabel 3.1. Hieruit wordt geresulteerd dat het systeem en/of verlichting slechts 8,5h/24h = 35% per dag actief moet zijn wat op jaarbasis een serieus onkostenvoordeel biedt.
Tabel 3.1 : Energiebesparend uurschema bij shiftregeling
1c) Rekening houdend met het feit dat de parking dus niet bestemd is voor bezoekers, kan er nog later een optionele uitbreiding aan toe gevoegd worden : de werknemers kunnen pas toegang krijgen tot de parking als ze in het bezit zijn van een elektronische identificatiebadge (RFIDtag). Deze badge wordt immers al gebruikt bij toegangscontrole binnenin het bedrijf. 2a) Verder hoeft er geen integratie te zijn van een aantal extra optische rook- en brandmelders, want deze zijn in een apart systeem al aanwezig (incl. bluswatersystemen). Uiteraard moet er wel rekening mee gehouden worden dat de behuizingen van de sensoren en visualisaties waterdicht zijn als deze dichtstbijzijnde sproeisystemen in werking treden. 2b) Tenslotte mag er in het grondvlak van iedere parkeerplaats geen sensor voorzien worden. Natuurlijk is er wel de mogelijkheid om vb. reflecterende materialen of bepaalde verfkleuren te gebruiken. 3)
Er hoeft geen geschiedenis van de gebeurtenissen van het geheel (lichten aan/uit, aantal vrije/bezette plaatsen op bepaalde tijdstippen, ...) bijgehouden te worden. Het geheel is dus een stand-alone systeem en hoeft dan ook niet verbonden te worden met het aanwezige bedrijfsnetwerk. 22
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.2. Algemeen Blokschema De voorgaande beschrijving is voor alle eenvoud omgezet in een algemeen blokschema met 4 hoofddelen : detectie, communicatie, signaalverwerking en visualisatie. Dit schema is hieronder gevisualiseerd in figuur 3.2.
Figuur 3.2 : Algemeen Blokschema
3.3. Hardware 3.3.1. Individuele detectie & signalisatie parkeermodule Dit belangrijk gedeelte bevat het testen en opbouw van de gebruikte hardware voor het detecteren en signaliseren van iedere parkeerplaats.
3.3.1.1 Sensoren In dit gedeelte volgt eerst de bespreking van de aansturing van de 3 types sensoren die gekozen werden voor voertuigdetectie in het besluit van het onderzoeksgedeelte (a: IRtemperatuur sensor, b: ultrasone afstandsensor, c: metaalsensor). Daarna volgt het individueel testen bij aanwezigheid van een voertuig (hoogte: 0,5m2m, evt. ook persoon) via de testopstelling van figuur 3.3 waarbij de sensoren zich zowel verticaal als diagonaal t.o.v. het object bevinden. De afstand tussen de sensoren en het object is gerespecteerd volgens de specificatie van de ondergrondse parking. Deze heeft volgens de opstelling een hoogte van 3m.
Figuur 3.3 : Testopstelling sensoren
23
Visualisatie Ondergrondse Parking
Didier Vandeputte
1. IR-Temperatuursensor a) 2 zones opmeten De gekozen IR temp. sensor MLX90614 is verkrijgbaar in verschillende varianten. Zo kan type MLX90614(X)-(X)BA (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) 2 verschillende temperatuurzones tegelijk opmeten die telkens een typische FOV van 70° bezitten. Tussen de 2 FOV’s is er een hoek van 40° (zie afzonderlijk deel ‘Studie & onderzoek sensoren’). Er wordt nu bepaald of men deze sensor kan gebruiken in de parking met de gegevens van p. 21. Aangezien de sensor de mogelijkheid heeft om 2 verschillende objecten tegelijk te meten, werd eerst voorgesteld deze te voorzien tussen 2 parkeerplaatsen. Dit idee zorgt echter voor een hogere kost (meer complexiteit met bekabeling en langere montage, meer printplaten en behuizingen, ...) waardoor dit idee afgekeurd werd. Voor o.a. de eenvoud en kostenbesparing is het dus gewenst dat de parkeermodule uit 1 geheel bestaat (incl. detectie, communicatie en signalisatie, zie p.23) waardoor deze per parkeerplaats noodzakelijk is. Hierdoor kan de sensor boven 1 parkeerplaats bevestigd worden en zowel het object onder en de parkeerplaats ernaast detecteerd. Dit voorstel wordt uitgewerkt in figuur 3.4. Met wat basiswiskunde (o.a. Pythagoras en sinusformules) zijn de afmetingen berekend. Hieruit volgt dat er enkele problemen opduiken met de voorgestelde configuratie : De 1e FOV zal naast het onderliggende object ook nog de 2 omringende parkeerplaatsen registreren die voor een mogelijke beïnvloeding kunnen zorgen (parkeerplaats gem. 2,6m breedte en de 1e FOV bestraalt 4,2m). Bij de 2e FOV is dit echter nog een groter probleem (tot 13,3m bestraling = ± 5 parkeerplaatsen tegelijk). Aangezien de temperatuurmetingen zeer nauwkeurig moeten gebeuren en de beïnvloeding van de verschillende parkeerplaatsen met elkaar te groot is, kan deze configuratie bij de voorgestelde hoogte in de parking niet gebruikt worden. Bij kleinere afstanden (en/of kleinere FOV) zou dit type wel functioneel kunnen zijn zoals de toepassing waarbij deze is geplaatst in de middenconsole van een voertuig en de omgevingstemperatuur binnenin kan instellen a.d.h.v. de simultane, opgemeten oppervlakte temperatuur van de inzittenden.
Figuur 3.4 : IR-temp. sensor MLX90614(X)-(X)BA met 2 FOV’s
Na het vorig besluit wordt er gekozen voor de standaard types MLX90614ESF-AAA (+5V voeding) of MLX90614ESF-BAA (+3,3V voeding). De data van de sensor kan verkregen worden via PWM en SM Bus. De aansturing hiervoor wordt kort hierna behandeld. 24
Visualisatie Ondergrondse Parking
Didier Vandeputte
b) PWM-instelling Deze standaard instelling zorgt via 1 uitgangslijn voor een digitaal signaal met constante frequentie (max. 1KHz) waarvan de variabele duty cycle de temperatuur representeert. Bij deze instelling bezit de opgemeten temperatuur een range tussen -20°C+120°C en een nauwkeurigheid van 0,14°C. Figuur 3.5 visualiseert de aansluiting met de sensor en onderstaande figuur 3.6 de opbouw van het PWM-uitgangssignaal. Figuur 3.5 : MLX90614 PWM-aansluiting
Met T = PWM-periode [ms] = startbuffer (altijd actief hoog) met tijdsduur 12,5% van de periode T [ms] = data 050% van periode T [ms] = error signaaldeel 025% van periode [ms] Figuur 3.6 : MLX90614 PWM-uitgangssignaal
Met onderstaande formule 3.1 kan hieruit de opgemeten object temperatuur bepaald worden (berekeningen worden uitgevoerd in de controller) : (3.1) Met
= Berekende opgemeten temperatuur (object 1 of 2 of ) [°C] & = overeenkomende herschalingscoëfficiënten bij EEPROM voor de uitgangstemperatuur Vb.
= -15°C &
= 35°C / °
°
° ) = +22°C
c) SM Bus-instelling Dit protocol is gebaseerd op het I²C seriël bus protocol en wordt typisch gebruikt voor vb. temperatuur sensoren. T.o.v. PWM heeft deze bij dezelfde temperatuursrange een verhoogde nauwkeurigheid (0,01°C i.p.v. 0,14°C) met dus een hogere resolutie (12 bit i.p.v. 10 bit) met datasnelheden tussen 10KHz en 100KHz. Niet tegenstaande het nadeel dat de communicatie 2 digitale signaallijnen bezit (met telkens 2 pull-up weerstanden vb. 4K7, zie figuur 3.7), wordt deze instelling geprefereerd wegens enerzijds betere specificaties. Anderzijds is er de mogelijkheid dat men met deze 2 signaallijnen verschillende slaves (max. 127 sensoren) kan aansluiten die communiceren met 1 master (controller), in tegenstelling tot PWM waar er voor iedere slave een extra verbinding nodig is. Figuur 3.7 : MLX90614 SM Bus-aansluiting
25
Visualisatie Ondergrondse Parking
Didier Vandeputte
Hieronder volgen de stappen voor de communicatie tussen 1 master (controller) en 1 slave (MLX90614).
Figuur 3.8 : MLX90614 SM Bus-aansluiting
1) Start communicatie : Master spreekt slave aan d.m.v. slave-adres (7b.+ startconditie & write bit = 2b.) en wacht op reactie van de slave. 2) Enkel de aangesproken slave bevestigt de verkregen data (ACK, 1b.). Indien geen bevestiging zal de master na enige tijd opnieuw zijn aanvraag versturen. 3) De master verzendt vervolgens 8b. data zodat de slave hierna zijn opgemeten temperatuur zal verzenden + de slave bevestigt de verkregen data (ACK, 1b.). 4) Typisch aan SM Bus wordt stap 1) (herhaaldelijke startconditie 1b. + slave adres 7b.) herhaald, terug doorgestuurd maar met het verschil dat er een read bit i.p.v. een write bit aanwezig is + de slave bevestigt de verkregen data (ACK, 1b.). 5) De slave stuurt het 1e gedeelte van de data : 8 LSB’s + de master bevestigt de verkregen data (ACK, 1b.). 6) De slave stuurt het 2e gedeelte van de data : 8 MSB’s + de master bevestigt de verkregen data (ACK, 1b.). 7) Vervolgens zendt de slave een PEC. 8) Tenslotte bevestigt de master dit en eindigt de communicatie met een stopconditiebit. 9) Nadat de communicatie is afgelopen zal de controller nu de temperatuur bepalen a.d.h.v. de verkregen data. d) Testen Test 1: De sensor communiceert via de SM Bus-instelling (SDA en SCL + ontkoppelcondensator 100nF) en wordt uitgetest volgens de verticale opstelling van figuur 3.7. De test is uitgevoerd buiten op een zonnige dag (±20°C) en met een donker voertuig (hoogte ±1,5m).
Volgens de datasheet (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) en ondersteunende tutorial [10] wordt de sensor (type MLX90614ESF-BAA) aangesloten aan een arduino microcontroller volgens figuur 3.9. Voor de gebruikte code wordt verwezen naar bijlage 1. Het testprogramma visualiseert de opgemeten temperatuur (°C) van de sensor in een extern venster. Figuur 3.9 : Aansluiting MLX90614 met Arduino
26
Visualisatie Ondergrondse Parking
Didier Vandeputte
Volgende figuur 3.10 visualiseert de opgemeten temperaturen : - zonder object (gemiddeld 20,4°C) - bij detectie van een persoon (praktisch geen verschil aangezien de afstand tussen sensor en persoon 1m1,5m bedraagt, lichte temp. daling door huidoppervlakte temp. <20°C, gemiddeld 20,0°C) - het binnenrijden van een voertuig, gemeten ter hoogte van de capeau zorgt voor een verhoging van de temperatuur tot max. 23°C - het binnenrijden van een voertuig, gemeten ter hoogte van het dak en heeft een licht gedaalde temperatuur tot gemiddeld 21,3°C. Figuur 3.10 : Opgemeten temperaturen met Arduino
Het bedrijf stelt ook het testbord EVB90614 (zie figuur 3.11 en afzonderlijk deel ‘Studie & onderzoek sensoren’) met bijhorende software ter beschikking voor het testen van de sensor. Deze module zorgt voor de visualisatie van de opgemeten temperatuur van het object ( ) alsook de algemene omgevingstemperatuur ( ). Onderstaande figuur 3.11 visualiseert opnieuw dezelfde tests. Figuur 3.11 : EVB90614
Figuur 3.12 : Opgemeten temperaturen met EVB90614
Ook hier is er weinig verschil tussen het meten van geen object en een persoon (het verschil kan evt. groter zijn in een indoor ruimte waar de windcirculatie minder rol speelt) maar wel een groot verschil t.o.v. het opmeten van een voertuig (Δ± 3°C, praktisch geen verschil tussen dak en motorkap). 27
Visualisatie Ondergrondse Parking
Didier Vandeputte
Test 2: Na de zonnige test met een omgevingstemperatuur van 20°C, volgt nu een koudere test waarvan de sensor diagonaal schuin boven een object is geplaatst (zie figuur 3.7) en gemeten met de controller volgens figuur 3.9. - zonder object bedraagt de gemeten omgevingstemperatuur 1,8°C3,1°C. - bij detectie van 3 personen (lengte : 1,6m1,9m) bedraagt de opgemeten temperatuur 1,9°C2,5°C. - bij detectie van 2 voertuigen (lengte : 3,8m4,5m; hoogte : 1,5m) in koude toestand bedraagt de opgemeten temperatuur 1,7°C2,8°C. - bij detectie van 2 voertuigen in warme toestand (15’ draaiend voor simulatie aantal km’s gereden) bedraagt de opgemeten temperatuur 2,9°C3,5°C. Test 3: Na de outdoor tests (waarbij de omgevingstemperatuur en hoeveelheid zon een grote rol spelen) volgt nu een indoor test in de ondergrondse parking Schouwburgplein in Kortrijk (zie p.66). De positie van de sensor is gelijk met deze van test 2. De hoogte is echter verminderd tot 2,2m (i.p.v. 3m). - zonder object bedraagt de gemeten omgevingstemperatuur 13,3°C13,7°C. - bij detectie van 3 personen bedraagt de opgemeten temperatuur 13,6°C14,8°C. - bij detectie van 2 voertuigen in koude toestand bedraagt de opgemeten temperatuur 14,3°C15,8°C. - bij detectie van 2 voertuigen in warme toestand bedraagt de opgemeten temperatuur 16,1°C16,5°C. e) Besluit Als er gekeken wordt naar de resultaten van de verschillende tests, kunnen er volgende overzichten (tabel 3.2) gemaakt worden bij het temperatuursverschil tussen voertuig, omgeving & persoon :
Tabel 3.2 : Overzicht temperatuursmetingen indoor & outdoor
Een besluitvorming hierbij is niet eenvoudig. Enerzijds heeft de outdoor test de juiste hoogte van de parking van het bedrijf, maar speelt de omgevingstemperatuur een grote rol. Bij de parking van het schouwburgplein is dan de omgevingstemperatuur meer vergelijkbaar met de parking van het bedrijf maar is de hoogte kleiner (wat belangrijk is voor uitgestraalde warmte bij temperatuursmetingen). Er is over het algemeen weinig verschil tussen de uitgestraalde temperatuur van een persoon en de omgeving in indoor en outdoor, wat een voordeel is bij de detectie. Bij voertuigen is een voertuig eerst altijd warmer dan de omgeving maar daarna daalt deze tot ze (bijna) gelijk is. Deze conclusie kan ook genomen worden bij het verschil tussen een voertuig en een persoon. Hieruit kan algemeen besloten worden dat detectie van voertuigen op basis van temperatuur moeilijk tot bijna onmogelijk is, aangezien de verschillen meestal te klein zijn. Er moet immers rekening gehouden worden met minima en extrema en invloed (in het begin van de meting) van weersomstandigheden zoals zon, vorst & 28
Visualisatie Ondergrondse Parking
Didier Vandeputte
sneeuw, aanwezigheid van airco, hoogte van het voertuig die ook de straling beïnvloedt, ... Hierdoor wordt deze temperatuursensor MLX90614 niet gebruikt in de module en wordt er verder getest met de andere sensoren.
2. Ultrasone afstandssensor a) Algemeen Een ultrasone afstandssensor bestaat uit verschillende delen : een pulsgenerator (typisch 40KHz400KHz voor afstandsdetectie), een ultrasone transducer die de golf uitstuurt en het weerkaatste signaal terug opvangt, daarna een versterker dit dit verzwakte signaal terug vergroot en tenslotte een controller waarvan een teller de tijd bepaalt tussen het zenden en ontvangen van het signaal en hierbij de berekening van afstand uitvoert. Dit geheel is aanwezig op de ultrasone afstandsmodule LV-MaxSonarEZ1-MB1010 van MaxBotix (zie afzonderlijk deel ‘Studie & onderzoek sensoren’). Deze heeft een afstandsbereik tussen 15cm (6 inch) max. 6,45m (254 inch) en waarvan de data verkrijgbaar is in 3 uitgangsvormen : seriële -, PWM- of analoge uitgang. De seriële uitgang bezit een RS-232 formaat met 8 bits : R(=ASCII start bit), 3 ASCII karakters voor de representatie van de gemeten lengte, carriage return, geen pariteitsbit, 1 stopbit, ... en 9600 baudrate. De PWM uitgang heeft een nauwkeurigheid : 57,9µs/cm (147µs/inch) en de analoge uitgang heeft een nauwkeurigheid : Vcc/512 = 3,86mV/cm bij 5V (9,8mV stapgrootte/inch). Tenslotte is de maximale uitleesfrequentie 20Hz (om de 50ms kan de afstand opgevraagd worden) en een totale eenmalige setup tijd van 400ms. b) Testen Het aansturen van de sensor gebeurt opnieuw volgens de opstelling van figuur 3.3. De voorgestelde figuren zijn in onderstaande figuur 3.13 herwerkt voor specifieke afstandsdetectie. De afstanden voor de diagonale detectie zijn opnieuw berekend a.d.h.v. elementaire basiskennis wiskunde (o.a. Pythagoras en sinusformules). Het nut van de plaatsing van de sensor diagonaal schuin boven het object heeft dezelfde reden als reeds besproken: de parkeermodule moet uit 1 geheel bestaan (incl. detectie, communicatie en signalisatie) waardoor voor een goede zichtbaarheid van de signalisatie, deze module geplaatst moet worden aan de rand van de parkeerplaats.
Figuur 3.13 : Uitgewerkte afstanden met ultrasone afstandsdetectie
29
Visualisatie Ondergrondse Parking
Didier Vandeputte
Test 1 : Analoge uitgang Volgens de datasheet (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) met ondersteuning van een tutorial [11] wordt de sensor aangesloten aan een arduino microcontroller (zie figuur 3.14). Hierbij wordt de analoge uitgang van de sensor gebruikt om de gemeten afstand op te nemen. Indien er een object gelegen is met een afstand van 1 tot 2,5m verticaal (of 1,41 tot 3,54m diagonaal) t.o.v. de sensor (zie figuur 3.13), zal enkel dan de rode LED actief zijn. Bij het uittesten van de sensor is ondervonden dat niet iedere gemeten waarde correct is. De verschillen met de correcte waarden kunnen af en toe relatief groot zijn (piekwaarden tot enkele meter). Dit zou kunnen leiden tot het ongewild omschakelen van toestand van het object. Om dit probleem op te lossen worden er telkens 3 metingen na elkaar uitgevoerd en, indien ze binnen elkaars tolerantie bevinden (stabiel resultaat met Δ20cm = ±10cm), wordt het gemiddelde van de 3 waarden bepaald en met deze waarde verder gewerkt om wel/geen detectie te verkrijgen. Indien de waarden te verschillend zijn (onderlinge verschil met iedere gemeten waarde >5cm), dan wordt er telkens opnieuw gemeten. Voor de gebruikte code wordt verwezen naar bijlage 1. Figuur 3.14 : Aansluiting LVMaxSonar-EZ1-MB1010 met Arduino
Met de besproken aanpassing van het aantal meetwaarden per toestandsbepaling, komt de werking volledig overeen met de omschrijving : - Zonder object (of objecten < 0,45m = >2,55m t.o.v. de sensor verticaal of 3,55m diagonaal) is de LED inactief. - Bij detectie van een persoon is deze voor de sensor ‘onzichtbaar’ waardoor de LED inactief blijft (99% van de metingen). Dit komt doordat een gemiddelde persoon (0,25m x 0,60m) slechts een gedeelte van het detectieoppervlak van de sensor (±0,9m x 0,9m) vult. Hierdoor zal telkens 1, 2 of alle 3 de gemeten waarden verschillend zijn (1,2 gemeten waarden is de afstand tot het hoofd van de persoon en 1,2 gemeten waarden is de afstand tot de grond) waardoor de controller telkens de sensor opnieuw laat meten tot er een stabiel gemiddelde komt. Ondertussen is de LED telkens inactief. - Bij detectie van voertuigen (getest met hoogte 1,5m) is er correcte detectie en is de LED continu actief. Deze testen zijn uitgevoerd outdoor en in de besproken ondergrondse parking (afstanden zijn dan aangepast tot de gewenste resultaten). Er is ingesteld dat een object dat aanwezig is tussen een hoogte van 2m en de sensor niet gedetecteerd kan worden. Dit heeft het voordeel dat, bij installatie of herstelling aan de sensormodule waarbij er rechtstreekse aanwezigheid is voor de sensor, deze bij bewegingen niet continu van toestand verandert. Dit geldt ook voor ongewenst gedierte of andere voorwerpen voor de sensor, sabotage van de sensor d.m.v. plaklint, ... .
30
Visualisatie Ondergrondse Parking
Didier Vandeputte
Test 2 : Seriële uitgang (RS-232) De fabrikant MaxBotix voorziet ook een programma om de opgemeten afstand van de sensor te visualiseren via een grafiek op het scherm. Hierbij wordt de RS-232 data gebruikt (Transmit TX en Receive RX) voor communicatie-overdracht met een TTL-naar-USB-omvormingskabel (TTl-232R-5V, FTDI). Voor de aansluiting wordt verwezen naar figuur 3.15.
Figuur 3.15 : Aansluiting LV-MaxSonar-EZ1-MB1010 met omvormingskabel
Het voorgestelde programma op de site kan geen visualisatie brengen van de opgemeten afstand van de sensor. Dit is ofwel de fout bij de sensor omdat er geen dataoverdracht is, ofwel de fout van het visualisatieprogramma. Er wordt met een terminal programma (visualisatie van karakters bij seriële communicatie op bepaalde poorten) gekeken naar de data van de TX pin van de sensor. Onderstaande figuur 3.16 geeft de gemeten data weer en bevestigt de samenstelling die besproken werd op o.a. p. 29. Hieruit kan besloten worden dat het programma niet werkt maar belangrijker is dat de gestuurde data wel juist is.
Figuur 3.16 : Opgemeten afstanden LV-MaxSonar-EZ1-MB1010 Range programma
c) Besluit Voor de volledige correcte werking van de detectie is gekozen voor de instelling met analoge uitgang en heeft de voorkeur boven RS232 en PWM. Aangezien de sensor rechtstreeks verbonden is met de controller, afstanden beperkt zijn tot enkele cm’s, de omgeving minder grote ruisinvloed bezit (productiemachines >100m veraf), ... spelen EMC-problemen een minimale rol waardoor het gebruik van de digitale uitgangen geen strikte noodzaak is. Ook is voor deze toepassing uiterste nauwkeurigheid van minder belang (rangedetectie bepaling).
31
Visualisatie Ondergrondse Parking
Didier Vandeputte
3. Metaaldetector a) AS-V20NA-R, Murata Ook dit type is getest volgens de opstelling van figuur 3.3. Deze sensor bezit een actief lage uitgang, d.w.z. bij geen detectie van een metaalobject in de omgeving (enkele meter afstand), zal de uitgang van de sensor de voedingsspanning (+3,3V) bedragen. Helaas bij het herhaaldelijk testen detecteerde de sensor geen metaalobject (of magnetisch veld) en zorgde voor geen actief lage uitgang (0V) waardoor de sensor geen correcte werking vertoonde. Hieronder volgen 2 mogelijke oplossingen : 1) Het bedrijf ontwikkelt momenteel prototypes voor een eigen AMR-sensor (MLX90281) met 3 assen te gebruiken in kompasmodules etc. Helaas is deze momenteel nog niet volledig in productie en kan dus nog niet gebruikt worden om te testen. 2) Er kan een ander type AMR-sensor door een externe fabrikant besteld worden zoals type HMC5883L, HMC1021 en HMC1051 (Honeywell). Type HMC5883L wordt verkozen wegens de aansturing met I²C waardoor deze mogelijkheid verder uitgewerkt wordt in het volgende gedeelte b). b) HMC5883L, Honeywell Algemeen : Zoals besproken in het vorig deel ‘Technologisch Onderzoek’ (p. 16), heeft dit type de voorkeur voor metaaldetectie vanwege de lagere kostprijs en eenvoudige aansturing (I²C). Het bezit 3 interne transducers om de veranderingen van het magnetisch veld in de 3 richtingen te registreren en een ASIC voor de digitale aansturing (zie afzonderlijk deel ‘Studie & onderzoek sensoren’). Vanwege de kleine 16p. (P)LCC-behuizing met kleine afmetingen (3,0mm x 3,0mm x 1,9mm), zijn eerst enkele tussenliggende bevestigingsprinten ontwikkeld en getest om een betere toegankelijkheid van de kleine sensor te verkrijgen. Enkele fabrikanten (Sparkfun, Robosavvy, Antratek, Modern Device, ...) bieden de sensor op een eigen bevestigingsprint zelf aan, maar vanwege de hoge kostprijs (min. 11,0€ (9,17£) excl. verzendingskosten en BTW max. 21,20€ volledig) werd dit niet gekozen en zelf ontwikkeld. Bij I²C hebben de 2 signaallijnen (SCL en SDA) opnieuw pull-up weerstanden nodig voor een stabiele actief lage en hoge toestand (2,2KΩ10KΩ). Vergelijkbaar met de aansturing van de IR-temp. sensor MLX90614 via SM Bus (zie afzonderlijk deel ‘Studie & onderzoek sensoren’), volgt hierna samengevat de communicatie tussen de controller (master, initialiseert altijd de communicatie) en de sensor (slave). 1) Master naar Slave : startconditie (S: SCL hoog en SDA laag, 1bit) + slave adres (7bit uniek adres per slave) + Read (=1) / Write bit (=0) : vb. Read = 0x3D, Write = 0x3C. 2) Slave naar Master : alle data veranderingen (SDA) nemen plaats als de klok (SCL) actief laag is. Nadat de slave iedere byte ontvangt van de master volgt een bevestiging (op de 9e klokpuls een ACK, NACK bij geen ontvangst). Eventueel kan een restartconditie uitgevoerd worden als er een nieuwe start aanvraag is bij afwezigheid van een voorafgaande stopconditie. 3) Master naar Slave : de master spreekt verschillende specifieke registers van de slave aan (*) met opnieuw telkens een bevestiging van de slave. 4) Master naar Slave : tenslotte wordt de communicatie beëindigd met een stopconditie (P) waarbij beide signaallijnen actief hoog zijn. 32
Visualisatie Ondergrondse Parking
Didier Vandeputte
(*) : 13 verschillende registers kunnen aangesproken worden, telkens met een 8 bit adres die in onderstaande figuur 3.17 wordt weergegeven.
Figuur 3.17 : Registertabel van AMR-sensor HMC5883L, Honeywell
Configuration Register A (CRA7CRA0) : - instelling aantal averaged samples per meting (1 8 samples (=default)) - instelling data snelheid (0,75Hz 75Hz voor continuous measurement mode, max. 160Hz voor single measurement mode, 15Hz = default) - instelling om een optionele selftest (**) van de sensor uit te voeren Configuration Register B (CRB7CRB0) : instelling van het bereik van de opgemeten veldsterkte met bijhorende versterking van het aantal databits (bereik +- 0,88 Gauss met versterking 1370 LSB/Gauss max. bereik +-8,1 Gauss met versterking 230 LSB/Gauss, default = +-1,3Gauss met 1090 LSB/Gauss en bit range -2048+2047) Mode Register (MR7MR0) : instelling continuous of single measurement mode - Single (=default) : zal de opgemeten data van de 3 assen naar de uitgangsregisters sturen en daarna naar idle mode overschakelen. Om terug de vorige mode te verkrijgen moet de data door de master gelezen worden of er moet opnieuw een meting plaats vinden. - Continuous : zal continu de opgemeten data in de uitgangsregisters sturen en deze per nieuwe meting overschrijven. Hierbij is er de mogelijkheid dat de master deze niet tijdig kan lezen. De data is beschikbaar vanaf 2/ (ingesteld in Config. Reg. A). - Idle : instelling toestand met laag vermogenverbruik (8µW (2,16V3,6V x 02µA) t.o.v. 0,4mW actief (2,16V3,6V x 0,1mA)) Data Output X-Y-Z MSB-LSB Register (D(X-Y-Z)R(A-B)7 D(X-Y-Z)R(A-B)0) : de opgemeten data van iedere as bestaat uit 16 bits waaronder 1 byte voor LSB en 1 byte voor MSB = 6 registers. Status Register (SR7SR0) : instelling optionele Lock- en Ready bit - Data output register lock : de mogelijkheid om de 6 uitgangsregisters te beveiligen voor het overschrijven van nieuwe data nadat 1/meerdere uitgangsregisters beschreven werden en worden terug unlocked als alle 6 uitgangsregisters volledig beschreven zijn en/of aanpassingen zijn uitgevoerd in het Mode Register. - Ready Bit : optionele input pin/bit die actief hoog is als alle 6 registers beschreven zijn (=0,25msec) en is voor de rest van de tijd actief laag. Identification Register A-B-C (IR(A-B-C)7IR(A-B-C)0) : optioneel als identificatie van de slave, wordt niet gebruikt. 33
Visualisatie Ondergrondse Parking
Didier Vandeputte
(**) Er is tenslotte ook een ‘Self Test’ aanwezig : om de goede werking van de sensor te testen, kan via deze instelling de momentele veldsterkte weergeven. Hierbij wordt er intern 10mA gestuurd door de 3 meetweerstanden (positieve of negatieve biasstroom kan ingesteld worden) waardoor een artificiëel magnetisch veld gecreëerd wordt (+1,1Gauss). Testen : De sensor wordt getest volgens de opstelling van figuur 3.18. Hierop is de positie van de X-, Y-, Z-as weergegeven en is primair ontworpen om via deze 3 assen hoekdetectie te bepalen voor de realisatie van een digitaal kompas. Voor de detectie van voertuigen is er slechts 1 as nodig en volgens deze opstelling is dit de Z-as. A.d.h.v. de datasheet (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) en ondersteunende tutorial [12] wordt de sensor aangesloten aan een arduino microcontroller volgens figuur 3.19. Voor de gebruikte code wordt verwezen naar bijlage 1. Er wordt gebruik gemaakt van een standaard I²C bibliotheek (wire.h) waarin de specifieke I²C commando’s uitgevoerd worden en waardoor deze niet in de testcode aanwezig zijn. Het programma vraagt de opgemeten data van de X-, Y-, Z-as op, herhaalt dit 5 maal, neemt van deze 5 Z-waarden het gemiddelde (minder grote extrema) en visualiseert dit getal continu in een extern venster. Figuur 3.18 : Testopstelling met HMC5883L
Figuur 3.19 : Aansluiting AMR-sensor HMC5883L, Honeywell met Arduino
In de setup van het testprogramma wordt naast de instelling van Continuous Measurement Mode, ook gekozen voor de maximale versterking (1370LSB/Gauss, of m.a.w. 729,93µGauss/LSB, en hieraan gekoppeld min. veldsterktebereik +- 0,88 Gauss) waardoor de afgelezen bits de hoogste waarde bezitten. Dit zorgt dat er het duidelijkst een onderscheid kan gemaakt geworden tussen wel/geen voertuig. De testen zijn enerzijds uitgevoerd bovengronds met de gerespecteerde hoogte 3,0m tot sensor. Anderzijds zijn er metingen doorgegaan in de ondergrondse parking Schouwburgplein in Kortrijk met een kleinere hoogte (2,1m) maar waar de invloed van andere voertuigen bekeken werd. De testen zijn herhaaldelijk uitgevoerd waarvan de positie van ieder object (persoon en voertuig) telkens werd aangepast (veraf/dichtbij) t.o.v. de sensor binnenin de afmetingen van de parkeerplaats. Ook werd de invloed van extra voertuigen naast het te meten object onderzocht. Voor een algemeen beeld van een voertuig werden volgende types gebruikt : compacte 3 deurs, lange break, 34
Visualisatie Ondergrondse Parking
Didier Vandeputte
grotere sedan, grote SUV en hoge monovolume. Volgende figuur 3.20 geeft grafisch de verschillende meetwaarden (in mGauss) weer.
Figuur 3.20 : Meetwaarden Z-as HMC5883L
In de 5 getoonde voorbeelden is duidelijk te zien dat (de maximale waarde van) een voertuig een verhoogde veldsterkte veroorzaakt. Hierbij is in 4 van de 5 gevallen af te leiden dat hoe groter het voertuig, des te groter de veldlijnen beïnvloed worden en deze een hogere waarde bezitten dan kleine voertuigen. Slechts in 2 gevallen is er een duidelijke kloof tussen de gemeten veldsterkte van de voertuigen en deze van de omgeving of van personen. Het detectiebereik van personen kan zorgen voor een overlap maar deze mogelijke foutieve detectie is van minder belang. Primair uit deze 5 metingen kan afgelezen worden dat er tussen de omgeving en voertuigen in 3 gevallen een grote kloof is en in de andere 2 gevallen een gemeenschappelijke grenswaarde. Verder is te concluderen dat de metingen op grotere afstand en in openlucht een kleinere spreiding bezitten dan bij de ondergrondse parking wegens de invloed van gewapend beton in deze parkings. Metingen a) zijn uitgevoerd met een gemiddelde waarde uit 5 metingen en b) niet waarvan de invloed het duidelijkst is bij de openluchtmetingen. Er is verder af te leiden dat de invloed van 1 of 2 voertuigen naast het te meten object erg groot is. Het is dus niet enkel hiermee moeilijk een algemene triggerwaarde te bepalen voor de aanwezigheid van een voertuig, ook zorgen de openluchtmetingen, die de hoogte van de specificaties van de parking van het bedrijf naleven, voor een groot verschil. Met deze 2 problemen is het onmogelijk een algemene concluderende triggerwaarde te bepalen als de sensor op deze grotere afstanden t.o.v. het object geplaatst is. Overigens zijn de metingen ook uitgevoerd met de default versterking (1090LSB/Gauss en bereik : +-1,3Gauss) en lagere versterking (330LSB/Gauss en bereik : +-5,6Gauss) maar gaven uiteraard een kleiner kloofverschil waardoor deze niet in deze scriptie zijn opgenomen.
35
Visualisatie Ondergrondse Parking
Didier Vandeputte
Uit de theorie (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) van de AMR-sensor kan a.d.h.v. de magnitude (opmeten van X-, Y-, Z-as) van gemeten voertuigen hun ruwe afmetingen achterhaald worden (groot (vliegtuig) klein voertuig (fiets)). Vervolgens heeft de aarde een veldsterkte met magnitude 600mGauss die bevestigd kan worden door extra metingen magnitude metingen a.d.h.v. onderstaande figuur 3.21. Tenslotte is theoretisch het magnitudeverschil tussen een persoon en een voertuig bij 1,5m afstand 13mG16mG tot max. 6m 1mG.
Figuur 3.21 : Meetwaarden Magnitude HMC5883L
Uit de verschillende voorbeelden in de figuur is het verschil tussen een klein en groot voertuig a.d.h.v. de magnitude af en toe net iets duidelijker dan met enkel de Z-as maar is sterk vergelijkbaar. De opgemeten veldsterkte varieert rond 600mG waarvan de gemiddelde waarde uiteraard stijgt bij meerdere voertuigen in de buurt van de sensor alsook de spreiding van de meetgegevens. De zeer grote spreiding bij 3 voertuigen is opvallend en werd ook bevestigd met andere versterkingsfactoren (= geen foutieve meting). Tenslotte overkoepelen de gemeten extrema van magnitudeverschillen tussen personen en voertuigen de theoretische gemiddelden. Als 3e mogelijke manier om een voertuig te detecteren kan er gebruik gemaakt worden van de opgemeten hoeken van de veldlijnen. Uit de theorie van de AMR-sensor zal een voertuig de evenwijdigheid van de magnetische veldlijnen van de aarde beïnvloeden. Afhankelijk van de hoeveelheid metaal van het voertuig zullen deze lijnen ombuigen waarbij de grootste verschillen optreden ter hoogte van de motorblok en de wielassen en ook in mindere mate bij het interieur, dak en koffer. Bij gebruik van de opgemeten X-, Y-, Z-waarden kan hier onderling de verschillende hoeken bepaald worden. Afhankelijk van de positie van de sensor volgens figuur 3.18, kan er via onderstaande figuur 3.22 de hoeken α, β en γ berekend worden.
Figuur 3.22 : Hoekdetectie bij AMR sensor HMC5883L
α=
= Bgtan
β=
= Bgtan
γ=
= Bgtan
(3.2) 36
Visualisatie Ondergrondse Parking
Didier Vandeputte
Aangezien de Z-as belangrijk is voor de afstandsbepaling, worden de hoeken en berekend voor het opmeten van de hoekvervorming in de 2 dimensies. De hoek meet het hoekverschil t.o.v. de verticale as bij het zijaanzicht van de wagen. De hoek meet hetzelfde maar gezien vanuit het vooraanzicht van de wagen. De hoek meet enkel hoe schuin het voertuig geparkeerd staat in de parkeerplaats (=bovenaanzicht) en wegens deze kleine hoek, is de bijgedragen informatie onbelangrijk. Uit de gemeten waarden voor en kan ook de resultante ( ² ² ) bepaald worden om met deze 2 hoeken tegelijk rekening te houden. Dit is weergegeven in onderstaande figuur 3.23.
Figuur 3.23 : Meetwaarden hoekdetectie HMC5883L
Theoretisch gezien bij normale verticale magnetische veldlijnen is de hoek 90°. Door invloed van voertuigen kan deze vb. tot 45°135° bedragen. Uit de gemeten waarden zien we bij de bovengrondse meting dat de hoeken de 90° benaderen (basisregels i.v.m goniometrie zorgen dat negatieve hoeken naar het juiste kwadrant omgevormd worden d.m.v. de hoek met 180° te vermeerderen). Het verschil tussen wel/geen voertuig is echter door de afstand tussen de sensor en het voertuig niet duidelijk. Ondergronds is in beide gevallen de spreiding groter dan bovengronds (zeer 37
Visualisatie Ondergrondse Parking
Didier Vandeputte
grote spreiding bij de aanwezigheid van 2 voertuigen rondom het gemeten voertuig). Ook zorgt de invloed van het gewapend beton, gereduceerde sensorhoogte e.a. dat er grotere meetverschillen zijn t.o.v. de bovengrondse meting. Ook zijn de verschillen tussen wel/geen voertuig al iets duidelijker. Echter zorgt de invloed van een 3e voertuig dat de triggerzone van een voertuig te verschillend is t.o.v. 2 voertuigen naast elkaar. Theoretisch gezien bij normale verticale magnetische veldlijnen is de hoek -45°. Door invloed van voertuigen kan deze vb. tot 0°-90° bedragen. Uit de gemeten waarden zien we opnieuw bij de bovengrondse meting de kleinste spreiding en ondergronds, vooral bij 3 voertuigen naast elkaar, een zeer grote spreiding. Bij deze laatste opstelling is er geen verschil tussen wel/geen voertuig en bij de andere 2 opstellingen iets meer duidelijkheid. Ook benadert de laatste opstelling in de rij het meest de theoretische hoek -45°. De totale gemeten triggerzone van een voertuig bedraagt -45,6°-75,3°. De resultante is theoretisch bij normale verticale magnetische veldlijnen 100° (als de ene hoek ideaal -45° en de andere 90° bedraagt). Opnieuw bezit de test met 3 voertuigen ondergronds de grootste spreiding en benaderen deze gemeten waarden meest de 100°. Aangezien deze de combinatie is van vorige hoeken en deze weinig duidelijkheid brachten, bezit deze resultante geen verbetering. Ook deze resultante kan niet gebruikt worden voor voertuigdetectie. Uit de metingen is de hoek tussen de gemeten voertuigen en de sensor (-)1,4°(-)25,1° en bewijst dat deze geen nuttige inbreng heeft bij de conclusies. Hierdoor heeft het geen nut de totale resultante te bepalen (die rekening houdt met de 3 gemeten hoeken) bij de 3 opstellingen omdat de spreiding slechts max. 3% beïnvloed wordt en het verschil bij een gemeten hoek max. 5%. Het is achteraf gezien eigenlijk wel te verwachten dat via hoekdetectie een voertuig niet kan gedetecteerd worden (vanop deze hoogte) aangezien de sensor 1 waarde per hoek kan meten en is dus een gemiddelde waarde van het hele voertuig. Aangezien de meeste hoekverschillen optreden rond de wielassen en motorblok, is het verschil dus miniem en uiteraard de aanwezigheid van een voertuig afhankelijk hiervan moeilijk te achterhalen. Dit probleem wordt versterkt vanwege de grote afstand met het gemeten voertuig. De beste resultaten kunnen verkregen worden door de sensor in de ondergrond ter hoogte van 1 van de wielassen te plaatsen. 4. Besluit Na de testen me de 3 types sensoren voor voertuigdetectie worden volgende conclusies samengevat genomen : Individuele voertuigdetectie op basis van temperatuur is niet aan te raden. Op basis enerzijds van de outdoortest die de hoogtespecificatie van de sensor respecteert en anderzijds de indoor ondergrondse parkingtest met een kleinere hoogte maar met een meer vergelijkbare temperatuur voor de parking van het bedrijf, is door de afstand het verschil tussen de omgeving en personen klein. Bij het binnenrijden van een voertuig in een parkeerplaats is de gemeten temperatuur relatief hoog t.o.v. de omgeving, maar daalt na enige tijd tot ze (bijna) gelijk is. Als 2e probleem bij het opmeten van de voertuigtemperatuur spelen de weersomstandigheden (zoals zon, vorst & sneeuw, ... ) alsook de aanwezigheid van airco, hoogte van het voertuig die ook de straling beïnvloedt, ... een grote rol waardoor er geconcludeerd wordt dat detectie van voertuigen op basis van temperatuur moeilijk tot bijna onmogelijk is, aangezien ook de temperatuursverschillen meestal te klein zijn. 38
Visualisatie Ondergrondse Parking
Didier Vandeputte
Individuele voertuigdetectie op basis van een metaalsensor kan ook moelijk uitgevoerd worden. Voor alle duidelijkheid is dit de conclusie voor detectie van een voertuig in een parkeerplaats telkens via 1 sensor en niet een veel gebruikte bestaande oplossing via een algemene metaallus met hieraan een telsysteem aan gekoppeld. Gebruik makende van de meetgegevens van de AMR-sensor is er niet altijd een duidelijk onderscheid tussen het al dan niet aanwezig zijn van een voertuig (rekeninghoudende met de extrema). Aangezien de opgemeten veldsterkte niet enkel afhankelijk is van de hoogte van de sensor, maar vooral van de aanwezigheid van het aantal omringende voertuigen, kan geen eenduidig richtwaarde gebruikt worden. Meer duidelijkheid kan verkregen worden als de afstand tussen sensor en voertuig kleiner is (vb. 1m) en kan als goedkope en compacte oplossing dienen ter vervanging van metaallussen. De positie van de sensor bij deze applicatie wordt gevisualiseerd in figuur 3.24. Aangezien vanuit het bedrijf er de verplichting is om de sensor boven het voertuig te plaatsen, kan dit voorstel (vb. sensor onder het voertuig met een afstand t.o.v. het voertuig < 0,5m) dus niet gebruikt worden. Overigens kan de sensor ook gebruikt worden voor het rangschikken van voertuigen van klein naar groot bij een constante omgeving. De sensor werkt na enkele testen uitstekend als positiebepaling voor digitale kompassen (primaire functie) maar is dus voor deze toepassing niet te gebruiken. Figuur 3.24 : AMR sensor bij toepassing parkeermeter
Naast het negatief resultaat van het besproken type van fabrikant Honeywell, kunnen ook enkele andere voorgestelde types uit het onderzoek van het afzonderlijk deel ‘Studie & onderzoek sensoren’ gebruikt worden. Zo waren de types HMC1021 en HMC1051 met telkens 1 as in combinatie met een hoge performantie en gevoeligheid typisch toegepast voor wagendetectie. Deze sensoren bevatten echter enkel de 4 transducer weerstanden met een analoge spanning waardoor erna nog enkele opamps en ADC’s nodig zijn voor communicatie met een controller. Wegens de hogere kostprijs van dit geheel werd dit laatste voorstel niet meer uitgevoerd. Tenslotte geniet de afstandssensor de voorkeur aangezien deze zorgt voor een duidelijk waarneming van een voertuig binnen bepaalde hoogte grenzen. Bij detectie van een persoon was er bij de 1e testen onstabiliteit (geen volledige opvulling van het detectieoppervlak) waarna een gemiddelde van enkele meetwaarden continu softwarematig bepaald werd en resulteert dat personen geen invloed hebben op de detectie van een voertuig. Dit werd gemeten met de analoge uitgang van de afstandssensor maar ook bij de seriële uitgang werd de datastream onderzocht waarvan een gedeelte voor de afstand ook duidelijk verandert (ASCII en HEX) als bevestiging van het verwachte resultaat. Aangezien bestaande ondergrondse parkings dit type sensor ook gebruiken (zie p. 20) waarbij er verondersteld wordt dat er ook een onderzoek is aan vooraf gegaan, lijkt deze sensor de beste keuze voor voertuigdetectie. Aangezien enkel deze sensor gebruikt wordt i.p.v. het voorstel bij het besluit van het gedeelte onderzoek, zorgt dit er voor dat de kosten van de sensormodule dalen met 11% per parkeerplaats en hierbij de totale kosten voor de hele parking dalen met 3%. Slechts 1/5 van het maximale totale budget wordt aan sensoren gespendeerd. Ultrasone afstandsensor : LV-MaxSonar-EZ1-MB1010, MaxBotix = 16,84€/stuk (bij 60 stuks, MaxBotix) per parkeerplaats (i.p.v. 19€ met 3 sensoren) bij het totale ±60 parkeerplaatsen : 1011€ totaal (i.p.v. 1140€, 5000€ budget) 39
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.1.2 Signalisatie Per parkeerplaats zal er een visualisatie aangebracht worden die de toestand van deze plaats weergeeft (zie figuur 3.25). Er zijn 3 mogelijke toestanden : Vrij : visualiseert een vrije parkeerplaats via groene knipperende LEDs (verhoogt zichtbaarheid voor personen met kleurenblindheid) die de vorm van pijlen weergeven Bezet : visualiseert een bezette parkeerplaats en wordt weergegeven door rode LEDs Handicap : enkel te gebruiken voor personen met een handicap en wordt weergegeven door blauwe LEDs Figuur 3.25 : Individuele signalisatie parkeerplaats
Voor dit te realiseren zijn er 20 LEDs per zijde nodig x 2 zijden (vooren achterkant) x 60 parkeerplaatsen = 2400 RGB LEDs. Een RGB LED bestaat uit 3 LEDs (rood, groen en blauw) in 1 behuizing met veelal 4 aansluitingen. De configuraties (Common Kathode- en Anode) zijn weergegeven in figuur 3.26. Er wordt gekozen voor type Common Anode waarbij de motivatie hieronder wordt beschreven. Figuur 3.26 : RGB LED met Common Kathode- en Anode
Om de LEDs aan te sturen wordt gebruik gemaakt van LED Driver TLC5952 (Texas Instruments) [14]. Deze kan maximaal 24 uitgangskanalen, LEDs schakelen of m.a.w. 8 individuele RGB LEDs. Deze component wordt voorgesteld in figuur 3.27. In deze figuur wordt afgeleid dat er voor de aansturing van de RGB LEDs gebruik gemaakt wordt van het type Common Anode. Hierbij is voor het oplichten een actief lage sturing nodig of m.a.w. de bits van het uitgangsregister die de overeenkomstige RGB LEDs representeren, dienen ‘0’ te zijn om iedere LED op te lichten.
Figuur 3.27 : LED Driver TLC5952, TI
De communicatie tussen het IC en een controller wordt voorzien via 4 ingangen : SIN : seriële data input bestaande uit 25 bits SCLK : op de stijgende flank wordt de data doorgestuurd (Fmax = 35MHz) LAT : door dit signaal wordt de data via de uitgangsbuffer (latch) naar de LEDs gestuurd BLANK : aan- of uitschakelen van alle LEDs (a.d.h.v. actief lage uitgang : ‘0’ = LEDs aan) 40
Visualisatie Ondergrondse Parking
Didier Vandeputte
Bij gebruik van meerdere IC’s voor de aansturing van meerdere LEDs, kunnen deze in cascade geplaatst worden door de SOUT uitgang te verbinden met de SIN ingang van het volgende IC. Dit is mogelijk aangezien de ingangsdata van het IC, SIN, via een schuifregister verbonden is met de uitgang, SOUT. De SOUT verbinding van het laatste IC kan terug gekoppeld worden om fouten detecteren (overflow) maar is in deze toepassing niet nodig. De voeding van het IC kan geleverd worden door vb. de controller (Vcc = +3,0V +5,5V, max. 50mA). Voor de aansturing van de LEDs moet er echter gebruik gemaakt worden van een individuele voeding met een grotere stroomvoorziening. De stroom door de LEDs (afh. van kleur rood, groen en blauw) wordt bepaald met een referentieweerstand ( ) en kan maximaal 35mA bedragen voor rood en groen, 26,28mA voor blauw. Het verband hier tussen wordt weergegeven in onderstaande figuur 3.28.
Figuur 3.28 : Keuze referentieweerstand
Rekening houdende met de opstelling van de individuele parkeerplaatssignalisatie (figuur 3.25), zijn er slechts 3 toestanden, gebruikte kleuren nodig (geen combinatie tot vb. max. wit) die het stroomverbruik enigszins limiteren : Vrij : 24 knipperende groene RGB LEDs Bezet : 40 rode RGB LEDs Handicap : 40 blauwe RGB LEDs In figuur 3.27 werden er als uitgang gebruik gemaakt van standaard LEDs in serie, maar aangezien in dit project type Common Anode RGB LEDs toegepast wordt (zie figuur 3.26), is deze configuratie niet mogelijk (vb. 1 LED driver met bij alle 8 uitgangskanalen telkens 5 LEDs in serie heeft). Deze kunnen enkel individueel of in parallel aangestuurd worden. Voor de aangewezen lichtsterkte per RGB LED (met bijhorende referentieweerstand) moet er rekening gehouden worden met het totale stroomverbruik en het aantal LED driver IC’s. In bijlage 2 wordt een overzicht met bijhorende besluit gegeven welke LEDdriverconfiguraties er mogelijk zijn bij het aansturen van de signalisatie van figuur 3.25. Hierbij wordt er gestreefd naar een standaard stroom van ± 20mA per RGB LED.
41
Visualisatie Ondergrondse Parking
Didier Vandeputte
De 25 bits SIN data beslaat zowel de instelling van de helderheid van het IC, Brightness Control, en de aansturing welke RGB LEDs met welke kleur oplichten. Tussen deze 2 opties kan gekozen worden door de waarde van de MSB. Voor de instelling van het IC, wordt eerst een gekozen reeks bits ingestuurd zodat men zeker is van de juiste data bij opstart. Bij de 2e stap volgt de instelling van de helderheid (naast hardwarematig via , ook softwarematig). Per kleur kan men via 7 bits (128 stappen) deze instellen van 0%100%. Naast deze 21 bits kunnen ook nog 3 bits ingesteld worden als controle op de uitgangsspanning van de LEDs (LED Open (of Short) Detection Voltage). Voor deze toepassing kan de helderheid maximaal ingesteld worden zodat er 25 actief hoge bits worden ingesteld. Tenslotte bij de 3e stap volgt de instelling van de uitgangs RGB LEDs. Na de 2e en 3e stap moet telkens het LAT-signaal hoog geplaatst worden, aangezien dan pas de geschreven data in het register via de uitgangsbuffer de LEDs rechtstreeks kan aansturen. Na de 1e stap is dit niet nodig. Deze informatie wordt kort schematisch weergegeven in figuur 3.29. Figuur 3.29 : Instelling SIN van LED driver TLC5952
In de verwezen bijlage 2 gebruikt het besproken voorstel C een LEDstroom bij toestand ‘Vrij’ (knipperend) van 0,42A, ‘Handicap’ 0,526A en in toestand ‘Bezet’ zelfs 0,70A. Maar met de bijhorende stuurelektronica voor detectie en signalisatie per module, kan de totale stroom per parkeermodule in de toestand ‘Bezet’ 1A1,5A bedragen waarbij de totale stroom teveel bedraagt bij 60 parkeerplaatsen (zie gedeelte 3.3.7 Voeding). Deze totale voedingsstroom, die overigens ook afhankelijk is van de diameter van de kabel met bijhorende verliezen, moet zeker beperkt worden voor een energiezuinigere voeding. Dit resulteert in een nieuw ontwerp voor de individuele parkeerplaats signalisatie die weergegeven wordt in figuur 3.30. Hierbij worden slechts 8 LEDs gebruik (4 LEDs x 2 zijdes, slechts 1/5 van het origineel concept) en voldoet 1 LED driver IC. Steunend op de tabel in figuur 3.28, wordt er gekozen voor een standaard 20mA LEDstroom voor rood en groen, 15mA voor blauw met een referentieweerstand 2,4KΩ. Voor de 3 toestanden worden volgende stromen verkregen : Vrij (groen knipperend) : 6 LEDs x 20mA = 120mA Bezet (rood) : 2 LEDs x 20mA = 40mA Handicap (blauw) : 2 LEDs x 15mA = 30mA Figuur 3.30 : Energiezuinigere signalisatie
Bij de toestand ‘Vrij’ met hoogste stroom, zal door het knipperen (een frequentie vb. 1Hz & dutycycle 0,5; bepaald door de BLANK-input van de driver) de gemiddelde stroom slechts 60mA bedragen. Men zou van de gedachte kunnen zijn om dit principe (stroom tijdens het continue gedeelte van de oplichtende LEDs op een hogere frequentie te laten schakelen (#KHz, niet merkbaar voor het menselijk oog) met dutycycle 0,5) toe te passen om de knipperende LEDs zodat de gemiddelde stroom opnieuw gehalveerd wordt tot 30mA & ook mogelijk toe te passen op toestand ‘Bezet’ (20mA gemiddeld) en toestand ‘Handicap’ (15mA gemiddeld). Echter wordt hierdoor ook de lichtsterkte gehalveerd (= dimmerwerking) waardoor dit principe niet kan gebruikt worden. Om het geproduceerd vermogen bij de LED signalisatie enigszins verder te reduceren, kan de gebruikte voeding wel schakelend werken. Tenslotte kunnen er nog 4 schakelaars aan het geheel toegevoegd worden, waarbij enerzijds de 3 verschillende signalisatie toestanden met 3 42
Visualisatie Ondergrondse Parking
Didier Vandeputte
schakelaars eenvoudig getest kunnen worden onafhankelijk van de waarden van de sensoren (evt. bij foutdetectie). Ook kan via een extra schakelaar de microcontroller gereset worden. Het schema hiervan + het testen van de sensoren is gerealiseerd op een testprint die eenvoudig op de testmicrocontrollerboard van arduino geklikt worden en bevindt zich in bijlage 3. Voor de softwarecode wordt deze ook gebruikt in de softwarecode voor de uiteindelijk controllerprint en wordt verwezen naar gedeelte Resultaten. Aangezien de 3 verschillende LED toestanden afhankelijk zijn van de waarde van de sensoren en de schakelaars, wordt in onderstaande tabel 3.3 een toestandentabel weergegeven die voor de 3 LED toestanden het verband legt met zijn variabelen (en wordt gebruikt in de softwarecode).
Tabel 3.3 : Toestandentabel voor de LED uitgangen van de visualisatieprint
Praktisch voor de RGB LEDs kan type BL-L515RGBC-CA (fabrikant evilmadscience.com, prijzen van 1,23USD/stuk 0,36USD/500 stuks) gebruikt worden. Dit type is een standaard 5mm 4p. trough hole RGB LED met common anode configuratie en een water clear lens typisch voor visualisatie op grotere afstanden met een 20° kijkhoek. Bij een overview van dit gedeelte werd eerst het voorstel uitgewerkt met 40RGB LEDs per parkeerplaatsmodule a.d.h.v. 3 LED drivers. Echter door het grote stroomverbruik (en de compactheid van deze parking t.o.v. grotere installaties bij andere bestaande openbare parkings) is er bij een meeting in december met de begeleiders gekozen om dit te veranderen naar 8 RGB LEDs en 1 LED driver. Vervolgens is bij een latere meeting in maart beslist dit voorstel opnieuw aan te passen: aangezien iedere module 6 groene LEDs gebruikt alsook 2 LEDs die zowel rood als blauw oplichten, is het gebruik van de LED driver (met de vele LEDaanstuurlijnen) overbodig gekomen. I.p.v. iedere parkeerplaatscontroller de tussenliggende LED driver aanstuurt met 4 signaallijnen, kan de controller nu rechtstreeks de LEDs aansturen met slechts 3 signaallijnen. Dus naast de vereenvoudiging van de aansturing en de lagere componentenkosten, is ook het totale stroomverbruik per parkeerplaatsmodule lager.
43
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.1.3 Buscommunicatie Voor de communicatie tussen alle individuele parkeerplaatsmodules en de hoofdcontroller met PC (overzichtsscherm) wordt er gekozen voor een buscommunicatiesysteem. Steunend op tabel 3.1 waarbij er rekening gehouden wordt met de voor- en nadelen van de besproken communicatietypes (max. aantal gebruikers, afstand, bedrading, ...) wordt er gekozen voor de eenvoudige, assynchrone RS-485 buscommunicatiestandaard. Aangezien de ondergrondse parking 60 tal wagens bezit met een totale luslengte van ±260m, is RS-485 voor deze toepassing zeker geschikt (max. 256 gebruikers met een maximale buslengte van 1000m (1219m als extrema). Deze heeft het voordeel dat er standaard met 1 bus (en 1 differential transceiver IC die gekoppeld is aan de hoofdcontroller) de parking kan uitbreiden met een extra ±200 parkeerplaatsen (later indien mogelijk). Zoals aangehaald in de studie rond RS-485, bestaat de communicatie tussen de verschillende modules uit een 2-wire twisted pair (vb. typische UTP-kabel). De signalen op deze 2 lijnen hebben een tegengestelde spanningswaarde (-7V+12V, verschilspanning t.o.v. GND >+200mV = ‘1’ (Mark), verschilspanning t.o.v. GND <-200mV = ‘0’ (Space)) om ruiseffecten (EMI) tegen te gaan en is zo de hoofdreden waarom deze grote afstanden haalbaar zijn. In figuur 3.31 is een typische RS-485 bussysteem circuit voorgesteld. Op deze figuur is er enerzijds de aanwezigheid van de 2 terminalweerstanden die beiden 100-120Ω bezitten om reflecties op de bus bij deze grote afstanden te minimaliseren. Anderzijds wordt iedere gebruiker voorgesteld door een 7p. element. Deze elementen zijn differential transceivers die dus de spanningssignalen tussen lijn A & B t.o.v. GND kunnen omzetten in databits om zowel te zenden (Driver, via ingangspin DI) als ontvangen (Receiver, via uitgangspin RO). Het bussysteem is half duplex zodat alle gebruikers niet tegelijk data kunnen verzenden. Hiervoor wordt bij het zenden van 1 gebruiker, driver (DE=1), de andere drivers momenteel uitgeschakeld (DE=0). Hetzelfde principe kan toegepast worden voor het ontvangergedeelte ( = 0 (actieve ontvanger) of = 1 voor desactivatie). De combinatie van deze 2 pinnen zorgen ervoor dat de gebruiker in een power shutdown mode gaat om het vermogenverbruik sterk te minimaliseren. Dit wordt eventueel in de praktijk uitgevoerd indien er weinig communicatie over de bus verloopt en het aantal vrije pinnen van de controller deze aansluiting toe laat). Figuur 3.31 : Typisch RS-485 bussysteem circuit
Het maximaal aantal gebruikers op de bus wordt bepaald door de belastingseenheid (unit load) en de ingangsimpedantie per gebruiker. Men kan tot maximaal 32 gebruikers schakelen als de belastingseenheid op 1 wordt gekozen = 12KΩ (of 15 KΩ bij andere bronnen). Wil men het aantal gebruikers verdubbelen, dan halveert deze belasting en verdubbelt evenredig ook de ingangsimpedantie. Bij 256 gebruikers, bedraagt de belasting slechts 1/8 en de min. ingangsimpedantie 96KΩ (zie tabel 3.4). Aangezien de parking 60 parkeerplaatsen telt, bedraagt de ingangimpedantie 24KΩ. Tabel 3.4 : Ingangsimpedantie i.f.v. aantal gebruikers, belasting bij bus RS-485
44
Visualisatie Ondergrondse Parking
Didier Vandeputte
Verder is de maximale stub-afstand (de lengte tussen een gebruiker en het aftakpunt van de bus, dient zo klein mogelijk te zijn) afhankelijk van de bitfrequentie van de data doorheen dit stuk kabel. Uit formule 2.2 van afzonderlijk deel ‘Studie & onderzoek sensoren’ is afgeleid dat de frequentie omgekeerd evenredig is met de golflengte (lambda). De maximale stub-afstand moet vele malen kleiner zijn dan golflengte/4. Indien niet is er sprake van een transmissielijn die zorgt voor de aangehaalde reflecties. Een (golf,stub)lengte van vb. 5m zorgt voor een max. frequentie van 15MHz. Dus om geen reflecties te krijgen, wordt de frequentie meerdere malen kleiner genomen (met bijhorende grote malen stubafstand) en de stubafstand ook klein gehouden zodat bij de voorgestelde lengte geen reflecties optreden bij snelheden tot #KHz#MHz. Uiteraard is ook de snelheid van de data afhankelijk van de totale buslengte. Aangezien deze lengte voor de toepassing ±260m bedraagt (±853feet met 1feet=0,3048m), wordt de datasnelheid gelimiteerd tot ±250KBps (zie figuur 3.32). Voor de toepassing van een ondergrondse parking hoeft het dataverkeer echter niet snel te verlopen en is succesvol getest met 10KBps (9600 baudrate). Figuur 3.32 : Datasnelheid i.f.v. totale buslengte
Om deze buscommunicatie praktisch uit te voeren, wordt er gebruik gemaakt van differential transceiver IC SN65HVD3088E (TI) en bezit volgende eigenschappen [15] : 32 tot max. 256 gebruikers (1 tot 1/8 eenheidsbelasting, vergelijkbaar met de theorie) Snelheden tot 20MBps (vergelijkbaar met de theorie) Laag verbruik (1nA shutdown mode0,3mA active mode, bij +5V voedingsspanning) en werkingstemperatuurrange -40°C+85°C Aanwezigheid van interne overspannningsbeveiliging (ESD) a.d.h.v. TVS-diodes (Tranzorb) aan beide signaallijnen Figuur 3.33 visualiseert dit type (8 pins SOIC behuizing, D package) met het bijhorende interne schema. Volgende types worden niet gebruikt vanwege het minder max. aantal gebruikers (en lagere snelheden) : SN65HVD3085/2E, SN65HVD485E, SN65LBC184, SN65176A/B, MAX(1)487, MAX485 en TL3695. Figuur 3.33 : Differential bus transceiver SN65HVD3088E
Praktisch wordt de dataoverdracht tussen de verschillende parkeerplaatsmodules gerealiseerd d.m.v. een handige plug-in fiche. In eerste instantie werd gedacht aan een RJ11-datakabel, maar aangezien de vereiste voor de buscommunicatie een twisted pair vraagt, wat een RJ11-datakabel niet bezit (enkel straight), worden andere mogelijkheden, combinaties gekozen : aangezien de voedingsvoorziening voor iedere module (zie p.61) ook gewenst via een plug-in fiche verloopt (i.p.v. duurdere en minder praktische uitvoering met klemmen en schroeven), wordt er voor 1 plug-in fiche gekozen met 4 aansluitingen. De fiche (male en female versie) wordt uitgevoerd met het type RJ11 (4P(=positions) 4C(=conductors) i.p.v. standaard 6P2C), max. 150VAC-DC & 1A en de kabel bestaande 45
Visualisatie Ondergrondse Parking
Didier Vandeputte
uit 4 draden (2 twisted pairs). Aftakpunten tussen iedere module en de bus (via Tverbindingsstuk (principe zie figuur 2.7, p.6) en is eventueel bij componentendistributeurs verkrijgbaar) worden niet gebruikt wegens eenvoudigere kablage, minder mechanische elementen = minder slijtage, lagere kostprijs, extra verliesweerstand per module (dus iets grotere voeding noodzakelijk), ... . Zo wordt i.p.v. 4 connectoren slechts 2 gebruikt per module (data+spanning INPUT & OUTPUT). Bij de 1e en laatste module op de bus wordt telkens intern in 1 van deze 2 male fiches een terminalweerstand geplaatst i.p.v. een aangesloten kabel. Bij het uittesten met de arduino µC prototypes, werd de RS485 master en 2 slaves op een testprint gemaakt. Hierbij werden transceiver IC’s van het type MAX485 (Maxim, PDIPbehuizing) gebruikt. Er verloopt constant communicatie (vraag & antwoord) tussen master & slave: de master spreekt een slave aan met zijn adres, deze slave bepaalt de toestand van zijn parkeerplaats a.d.h.v. zijn sensor, stuurt de data terug naar de master waarbij deze de informatie verzamelt en de cyclus continu laat herhalen. Net zoals bij de SN65HVD3088E, werd dus het IC eerst ingesteld om constant tegelijk te zenden & ontvangen (in de gedachte dat het zend- & ontvangstgedeelte compleet van elkaar gescheiden is). Dus werd de pin DE continu op +5V en op GND geplaatst. Maar hierdoor werkt het IC als een ‘spiegel’ die alle uitgezonden data terug in leest (mocht de R pin ingelezen worden door de Arduino). Dit probleem werd ontdekt a.d.h.v. de scoop toen de ontvanger geen data toegestuurd kreeg als zowel de zender als ontvanger IC aangesloten werden. De opgemeten data op signaallijnen A & B veranderde als de zender IC ook ingeschakeld werd en beide IC’s kregen een abnormaal verhoogde junctieen case temperatuur. Na het ontdekken van de fout werden de signaallijnen DE & met elkaar verbonden en als een externe pin TX / beschikbaar gemaakt die kon aangestuurd worden door de controller (= configuratie voor shutdownmode maar wordt niet gebruikt door de continue dataoverdracht). Dus bij het zenden van data moet de TX / pin eerst softwarematig ingesteld worden als actief hoog, na het zenden van de data wordt de transceiver terug actief laag ingesteld om te ontvangen en deze werking geldt zowel voor master als slave. Bij de praktische uitvoering van de buscommunicatie is er ook de mogelijkheid om dit uit te voeren met een coax-kabel. Deze heeft immers het grote voordeel van een grotere bandbreedte & datasnelheid. Aangezien dit type kabel typisch gebruikt wordt vanaf 1MHz als snelheid belangrijk(er) is, wordt deze bij de lage ingestelde snelheid van 9,6KHz niet gebruikt. Overigens heeft deze kabel een hogere aankoopprijs waardoor in deze toepassing geen coax maar wel TP wordt verkozen.
46
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.1.4 Slave controller Een microcontroller is het hart van iedere parkeerplaatsmodule en zal enkele taken op zich nemen: - de sensor aan sturen en data opnemen - momentele toestandsbepaling van de parkeerplaats - LEDs aansturen voor individuele parkeervisualisatie - deze status via het busprotocol doorsturen naar de mastercontroller (zie figuur 3.34) Figuur 3.34 : Communicatieschema tussen master - en slave controller
De communicatie tussen de master- en slavecontroller(s) verloopt als volgt: 1) slave: na 0,5sec noodzakelijke setup delay voor de afstandssensor, bepaalt deze sensor de toestand van de parkeerplaats. De afstand wordt 3 maal gemeten en vervolgens het gemiddelde bepaald om foutieve waarden en dus detecties te vermijden. Dit biedt een extra voordeel dat een persoon voor de sensor (geplaatst op 3m hoogte) ‘onzichtbaar’ wordt (een persoon vervult slechts een deel van zijn stralingszone waardoor deze constant afwisselt tussen de afstand met de persoon en de grond = flikkering en zal herbeginnen tot er een stabiele waarde bepaald wordt). Tussen iedere meting is er telkens 60 msec vertraging zodat deze stap ±0,12 sec. duurt. 2) master slave: de master spreekt de slave aan met zijn ingestelde adres 3) slave master: de aangesproken slave stuurt zijn gemeten toestand door naar de master en deze verzamelt de gegevens (= vraag & antwoord principe) 4) slave: afhankelijk van de gemeten toestand worden de LEDs ingesteld (groen knipperend = ‘vrij’, rood = ‘bezet’, blauw = ‘handicap’) De inschakelperiode van de sensor dient zo kort mogelijk te zijn om de ultrasone geluidshinder (40KHz) bij vb. dieren in de omgeving te beperken. Hierdoor duurt de overlopen cyclus 5 sec. waarbij de sensor ingeschakeld is gedurende stap 1 (0,12 sec. meting) en gedeelte van stap 4 (0,5 sec. opstart delay voor volgende cyclus). Dit zorgt dat de dutycycle een aanvaardbare 12,4% bedraagt. Om ervoor te zorgen dat bij de ingestelde toestand ‘vrij’ de LEDs continu knipperen, worden deze bij de 4e stap 5 maal ingeschakeld gedurende 0,5 sec. en ook 4 maal uitgeschakeld. Bij de stappen 1 t.e.m. 3 wordt er een delay toegevoegd zodat ook deze exact 0,5 sec. duren waarbij de LED is uitgeschakeld. D.w.z. dat er een maximale vertraging van 5 sec. plaats vindt tussen het detecteren van een toestandsverandering van de parkeerplaats en het visualiseren van de LEDs. Iedere seconde spreekt de master een nieuwe slave aan zodat de refresh rate van de parking 1 minuut bedraagt. Voor deze toepassing zijn de besproken vertragingen geen probleem (voortdurend in- en uitrijden van voertuigen tijdens de begin- en eindperiode van een werkdag zorgt voor een ongewenste voortdurende verandering bij de LEDwall en overzichtsscherm en wordt hierdoor beperkt). Bij de voorstelling van de 1e communicatieversie (maart) had deze een ander verloop. Hierbij zond de master de 60 slave adressen na elkaar door waardoor iedere aangesproken slave na elkaar hun opgemeten toestand terug door stuurde naar de master. Deze visie werd op aanvraag aangepast tot een meer logische vraag en antwoord principe die ook gebruikt wordt in andere bestaande bussystemen. Ook was iedere 47
Visualisatie Ondergrondse Parking
Didier Vandeputte
ultrasone sensor constant ingeschakeld aangezien de cyclustijd van iedere slave toen 1 sec. bedroeg (de sensor hoeft 0,62 sec. ingeschakeld te zijn en er werd op dat moment geen rekening gehouden met zijn dutycycle). De 2de versie heeft ook dit probleem geminimaliseerd. Het overzicht van de dataoverdracht wordt op onderstaande figuur weergegeven.
Figuur 3.35 : Communicatie datastream tussen master en slave controller
In bovenstaande figuur kunnen maximum 64 adressen = parkeerplaatsen aangesproken worden. Eerst werd voorgesteld dit aantal nog te verhogen maar aangezien de parking niet zal uitbreiden, lijkt een verhoging van het aantal adressen niet nodig. De essentie van de 20 b. datastream is het 6b. adres en de 2b. data. Bij het opbouwen van de communicatie werd er eerst gedacht dit als 1 datastream van 8b. dus in totaal 10 bits (incl. start- en stopbit) data te versturen. Dit werd getracht te versturen vanuit de arduino controller maar was foutief. De uitgezonden data kwam niet overeen met de gewenste data (willekeurige nullen en enen werden tussen geplaatst waardoor de datastream veel langer werd dan gewenst) toen deze werd opgemeten met de scoop. Dit probleem werd veroorzaakt doordat de gebruikte controllers enkel ASCII-data versturen & lezen bestaande uit 7 bit (data uit de seriële poorten altijd 8 bits met automatisch een extra ‘opvulnul’). Hierdoor werd er verplicht 2 datastreams gebruikt van 10 bits en werd er rekening gehouden dat ieder slave adres en alle informatie rond de toestand overeen kwam met een ASCII-karakter. Aangezien de software van de arduino test controllers het toelaat de verstuurde en ontvangen data te visualiseren op het scherm (de verzonden data kan enkel in ASCII gevisualiseerd worden), werd er gekozen voor enkel de 95 zichtbare karakters (dec. 32 126) te gebruiken van de totale 128 bestaande codes. Dit zorgt voor een verhoogde gebruiksvriendelijkheid bij de controle van de data overdracht t.o.v. een scoop. De datasnelheid is ingesteld op 9600 baud waardoor de bitperiode 104,17 µsec. bedraagt en de totale 20 bits dus 2,083 msec.
Figuur 3.36 visualiseert de data die verzonden wordt vanuit de master om de toestand van de 1e parkeerplaats op te vragen (in ASCII byte 1 (adres): spatie, byte 2 (toestand): ‘ ).
Figuur 3.36 : ASCII datastream tussen de e master en de 1 parkeerplaats
48
Visualisatie Ondergrondse Parking
Didier Vandeputte
Volgende figuur 3.37 toont het verschil in spanningsniveau’s tussen de verstuurde (willekeurige) data aan de zijde van de controller en aan de zijde van de RS485 bus d.m.v. gebruikte bustransceiver. Deze veranderen van 0V/5V naar 1V/3,5V (bevinden zich binnen de toleranties van de datasheet: 0,4V/4V). Ook wordt duidelijk de theoretische werking van de differantiaallijnen (niet-inverterende A+ & inverterende B-) van de bus gevisualiseerd.
Figuur 3.37 : Differentiaalspanningen op de RS485 bus
Uit het communicatieschema van figuur 3.36 wordt er opgemerkt dat de verstuurde en ontvangen data geen foutcontrole bezit zoals CRC (EXOR-bewerking van de voorafgaande bits). Dit is echter van minder belang voor deze toepassing want een mogelijke fout in de datastream zorgt voor geen levensbedreigende gevolgen (eventueel 1 of meerdere foutieve combinaties van parkeerplaatsen met hun toestand) en is bijgevolg weg gelaten. Tenslotte werd bij een vroegere brainstormsessie gestreefd naar energiebesparing door de slave microcontroller van iedere parkeerplaatsmodule in een slaapstand te brengen. Pas als deze aangesproken wordt door de master, zou deze geactiveerd worden. Dit zou kunnen gerealiseerd worden als de RS485 transceiver de ontvangen data analyseert en pas als het ontvangen adres overeen komt met het ingestelde van de parkeermodule, zal er een signaal verstuurd worden naar de microcontroller om de verdere signaalverwerking op te starten. Dit is echter geen mogelijkheid aangezien de RS485 transceiver enkel een datavertaler is (vertaalt de RS485 spanning van 2 diff. lijnen naar een spanningsniveau voor de microcontroller en omgekeerd) en bezit niet de mogelijkheid om een extern triggersignaal te versturen naar de controller om deze in te schakelen.
49
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.2. Bewegingsmelder De bewegingsmelder (EKMC1603112, Panasonic) wordt gebruikt bij detectie van personen. Dit is nodig als er rekening gehouden wordt met het shiftenregelsysteem (tabel 3.1) waarbij de verlichting uitgeschakeld wordt bij verschillende tijdstippen tijdens de dag voor energiebesparing. Met het gebruik van een bewegingsmelder zal zo de verlichting terug aan geschakeld worden indien er door een persoon of voertuig toch beweging gemaakt wordt. Plaatst men deze sensor op een hoogte van 3,10m (eigenschap van de parking) en naar beneden gericht, dan bedraagt de FOV op de grond 4,8m x 6m (getest volgens figuur 3.4 met een arduino microcontroller en LED). Volgens de plattegrond van de parking (figuur 3.1) zal er naast de 2 sensoren die geplaatst worden aan de ingang van de parking boven en beneden, ook nog maximaal ± 21 sensoren = totaal ± 23 om de maximale oppervlakte van de doorgangen te bestralen. Hierbij is echter geen rekening gehouden met het voordeel dat deze sensor bij een maximale theoretische 12m afstand (getest op 3,1m hoogte tot 12,5m afstand), een FOV kan bestrijken tot 13,8m (hor. 102°) x 11,6m (vert. 92°). Worden hierbij deze sensoren horizontaal bevestigd tegen de draagbalken van de parking, biedt dit het grote voordeel dat het voldoende is om het grootste gedeelte van de doorgang van de parking te vullen met slechts 8 (= 2 + 6) bewegingssensoren. Een voorstel voor de schikking wordt gevisualiseerd op figuur 3.38. Figuur 3.38 : Plaatsing bewegingsmelders
Net zoals de parkeerplaatsmodules (en de LEDwall), gebeurt de communicatie met de master via het busprotocol RS485 vanwege het afstandsverschil. Een blokschema van de bewegingsmeldermodules wordt in onderstaande figuur 3.39 gevisualiseerd.
Figuur 3.39 : Blokschema bewegingsmeldermodule
Opnieuw is er een vraag en antwoord principe tussen de master en iedere slave en verloopt als volgt: 1) master slave: de master spreekt de slave aan met zijn ingestelde adres (zie figuur 3.40) 2) slave : de sensor zal detecteren als er al dan niet veranderingen van IR-straling zijn binnen zijn FOV. Deze meting wordt opnieuw 3 maal herhaald om foutieve detectie te vermijden. 3) slave master : de aangesproken slave stuurt zijn gemeten toestand (zie figuur 3.41) door naar de master. Bij detectie zal ook een signalisatie LED bij iedere sensor oplichten (vb. 1 sec.) om aan te duiden dat de persoon gedecteerd wordt door het systeem. 4) master : deze verzamelt de gegevens van alle bewegingssensoren. Afhankelijk hiervan en het shiftenregelsysteem kan de verlichting in de ondergrondse parking ingeschakeld worden (vb. 1 sec. na detectie). 50
Visualisatie Ondergrondse Parking
Didier Vandeputte
Figuur 3.41 : Overzicht toestanden bij slave naar master communicatie Figuur 3.40 : Overzicht sensoradressen bij master naar slave communicatie
Tenslotte wordt net zoals bij de parkeerplaatsmodules, ook bij de bewegingssensormodules het ingestelde adres hardwarematig ingesteld. Dit heeft het voordeel bij eventuele herstellingen dat een nieuwe module kan geplaatst worden zonder het adres softwarematig te hoeven veranderen. Aangezien er 8 bewegingsmelders gebruikt worden, kan dit adres ingesteld worden via 3 schakelaars (= 8 bits).
51
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.3. Visualisatie aantal vrije plaatsen d.m.v. LED wall Om in de ondergrondse parking het aantal vrije plaatsen te visualiseren per parkeerrij, wordt dit gerealiseerd d.m.v. LEDwalls. De opbouw en locatie wordt weergegeven in onderstaande figuur 3.42.
a)
b)
c)
Figuur 3.42 : LEDwalls voor visualisatie vrije plaatsen
Om dit te bouwen zijn in totaal 1133LEDs nodig (11 x 103LEDs, waarvan a&b dubbelzijdig zijn) : a) - 60 Rood/Groene LEDs b) - 40 Rood/Groene LEDs - 144 Rode LEDs - 96 Rode LEDs - 414 Groene LEDs - 276 Groene LEDs c) - 10 Rood/Groene LEDs Totaal : - 110 Rood/Groene LEDs - 24 Rode LEDs - 264 Rode LEDs - 69 Groene LEDs - 759 Groene LEDs Vanwege het grote aantal LEDs en het feit dat de parking niet zo groot is, worden voorstel a) en b) voor visualisatie in de beide gangen niet gebruikt (wat in grote openbare parkings wel gebruikt wordt). Dus enkel wordt er aan de bovengrondse ingang van de parking met voorstel c) enkelzijdig aangeduid hoeveel plaatsen er vrij zijn of de parking bezet is. Dit zorgt dus voor de 103 LEDs. Het aantal vrije parkeerplaatsen in de parking worden via de 2 groene digits weergegeven + een groene pijl. Indien de parking volledig volzet is zal enkel het rode kruis weergegeven worden. Een extra toevoeging op aanvraag van het bedrijf : indien de parking slechts weinig aantal vrije plaatsen meer telt (vb. <=5), zal hierop extra aandacht worden gevestigd, doordat zowel dit getal als het rode kruis zullen oplichten. Er zijn verschillende mogelijkheden om de visualisatie aan te sturen en dit trachtende zo eenvoudig mogelijk te realiseren. Een 1e oplossing is de LEDwall te verdelen in 9 rijen en 21 kolommen (11 voor de groene pijl of rood kruis en telkens 5 voor de getallen). Hierbij zijn de anodes van alle LEDs van iedere rij met elkaar verbonden en ook de kathodes van alle LEDs van iedere kolom. Om dus een bepaalde LED aan te spreken hoeft de controller 1 bepaalde rij en kolom combinatie inschakelen. Echter door de vele schakelende elementen (vb. 30 stuks transistoren) waarbij er telkens 2 geschakeld worden, is dit een minder eenvoudige en goedkopere oplossing en wordt deze niet gekozen. 52
Visualisatie Ondergrondse Parking
Didier Vandeputte
Een 2e oplossing is het verdelen van de LEDwall in verschillende zones die moeten geschakeld worden. Zo kan de groene pijl als 1 geheel gestuurd worden, het rode kruis als 1 geheel en iedere digit (bestaande uit 27 groene LEDs) bestaat uit 13 delen (telkens opeenvolgend 3 gemeenschappelijke LEDs verbonden en 1 afzonderlijke). Dit zorgt er voor dat het aantal stuurlijnen verminderd is naar ‘slechts’ 28 wat nog steeds te veel is. De 3e en enige aanvaardbare oplossing is gebruik te maken van LED Drivers type TLC5952 (zie p. 40). Aangezien deze telkens 24 kanalen (=LEDs) maximaal kunnen sturen, worden er 5 drivers gebruikt voor de 103 LEDs aan te sturen (max. 120 LEDs aan te sturen). Er zijn immers 113 aanstuurlijnen nodig aangezien 10 gemeenschappelijke LEDs voor het visualiseren van het rode kruis (bestaat uit 34 rode LEDs) of groene pijl (bestaat uit 25 groene LEDs) zowel rood als groen dienen op te lichten. Aangezien de LED Drivers seriële data inlezen om de LEDs te schakelen, heeft het geheel heeft slechts 6 aansluitingen nodig : 2 voor de voeding en 4 voor de aansturing (SIN, SCLK, LAT en BLANK). De 5 drivers worden in cascade configuratie geschakeld waardoor de data (SIN) van de vorige driver wordt doorgeklokt naar de volgende (eerst insturen data driver 5, daarna 4, etc). De overige stuurlijnen (SCLK, LAT en BLANK) worden aan iedere driver parallel aangeboden. Bij het prototype is deze verbinding uitgevoerd met 6p. schroefconnectoren. Voor het praktisch gebruiksgemak en eenvoud wordt deze verbinding bij de finale versie gerealiseerd met een RJ45 (met netwerkkabel) klikverbinding. Volgende figuur 3.43 visualiseert het schema.
Figuur 3.43 : Schema aansturing LEDwall
53
Visualisatie Ondergrondse Parking
Didier Vandeputte
Opnieuw wordt bij iedere driver een referentieweerstand van 2K4 gebruikt die de stroom voor de rode en groene uitgangsgroep instelt op 20mA per LED en 15mA per LED voor de blauwe uitgangsgroep. D.w.z. dat 1/3 van de LEDs van de LEDwall ‘slechts’ ¾ van de ingestelde lichtsterkte heeft. In de praktijk echter is dit verschil niet merkbaar en zorgt ervoor dat de benodigde stroom voor de LEDs met 8% verlaagd wordt. Afhankelijk van het getal dat de LEDwall visualiseert, zal de voedingsstroom variëren. De minimale stroom wordt verkregen als er in de parking geen enkele parkeerplaats vrij is. Hierdoor zal op de LEDwall enkel het rode kruis verlicht worden. Aangezien hiervoor 21 LEDs 20mA vragen en 13 LEDs 15mA, is de LEDstroom 0,615A. Hiervoor zijn 3 LED Drivers nodig met een gemiddelde voedingsstroom van 15mA (max. 30mA) waardoor de totale minimale berekende voedingsstroom 0,66A (max. 0,71A) bedraagt. De maximale stroom van de LEDwall wordt verkregen bij het gevisualiseerde getal ‘88’. Samen met de groene pijl worden hiervoor 55 LEDs gebruikt die 20mA vragen en 24 LEDs 15mA. Samen met 5 LED Drivers is de totale maximale berekende voedingsstroom 1,54A (max. 1,61A). Echter voor de toepassing van deze ondergrondse parking is het maximaal aantal vrije plaatsen 60. Bij dit getal of ‘58’ is de stroom het grootst. Hierbij worden 51 LEDs gebruikt die 20mA vragen en 22 LEDs 15mA waardoor de totale maximale berekende voedingsstroom voor de ondergrondse parking 1,43A (max. 1,50A) bedraagt. Om de berekende grote stromen aan te kunnen zijn de voedingsbaantjes breder gemaakt tot 4mm en is de onderkant van iedere LED Driver a.d.h.v. enkele via’s verbonden met een gemeenschappelijk koelvlak om de warmteproductie van de junctie en behuizing te verminderen. Hieronder volgen de gemeten stroomwaarden en komen sterk overeen met de berekende waarden: - toestand bezet: 0,67A (theoretisch 0,66A0,71A) - 88 plaatsen vrij: 1,57A (theoretisch 1,54A1,61A) - 58 of 60 plaatsen vrij: 1,46A (theoretisch 1,43A1,50A) Ook Melexis biedt een LED Driver aan specifiek voor High Power toepassingen (0,1W1KW): MLX10801 & MLX10803. Hierbij kan de lichtintensiteit analoog of via PWM ingesteld worden alsook de maximale LED temperatuur (temperature shutdown). Deze instellingen gebeuren via een EEPROM of externe componenten. De LEDs dienen wel via een extrene MOSFET transistor geschakeld te worden. De instelling van de schakelfrequentie dient via een externe spoel te gebeuren. Dit IC wordt dan veelal gebruikt bij geschakelde voedingen zoals bij Buck- en Boost regulators (resp. omlaag en omhoog transformeren van de voedingsspanning waarbij de spanningen en stromen binnen een bepaalde range een schakelend gedrag vertonen vanwege het aanwezig schakeld element (MOSFET) in combinatie met een diode en spoel). Aangezien bij de LEDwall, iedere LED afzonderlijk ingesteld moet worden (µC) en bij de driver van Melexis enkel meerdere LEDs in serie kunnen geplaatst worden, wordt dit type niet gekozen. Deze LEDwall wordt praktisch uitgevoerd met afmetingen 30 x 15 cm (foto’s zie bijlage 5). Met deze oppervlakte (0,045m²) bedraagt de kijkafstand met de gebruikers in hun wagen volgens de normering voor signalisatieborden [16] een realistisch aanvaardbare 10-15m. Dit wordt geplaatst in een waterbestendige behuizing aan de bovengrondse ingang van de parking. 54
Visualisatie Ondergrondse Parking
Didier Vandeputte
In deze behuizing bevindt zich ook de voeding (+5V/1,5A) om de LEDwall rechtstreeks aan te sturen aangezien door de grote afstand met de mastercontroller er teveel vermogenverlies zou optreden. Net zoals de verlichting zal ook de LEDwall niet continu ingeschakeld zijn om energie te besparen. Het uitschakelen van deze aparte voeding zal gebeuren als enerzijds de controller geen data meer ontvangt van de master om het aantal vrije plaatsen te visualiseren (de bewegingssensoren in de parking hebben vb. na 15 min. geen personen meer gedetecteerd waardoor de verlichting is uitgeschakeld). En anderzijds is er in de behuizing van de LEDwall ook een bewegingssensor voorzien (= adres sensor 1 bij figuur 3.40, zelfde werking als bewegingsmeldermodule met extra signalisatieLED) en als er ook na vb. 15 min. geen detectie is gebeurd, zal dan pas de voeding uitgeschakeld worden. Indien er na een bepaalde periode dan toch een persoon voor de LEDwall staat, zal de sensor dit detecteren, de voeding terug inschakelen alsook dit melden aan de master om de verlichting van de ondergrondse parking terug in te schakelen. Voor alle duidelijkheid zal enkel de voeding +5V/1,5A de LEDwall aansturen. De slavecontroller, RS485 transceiver en sensor worden gevoed via de netwerkkabel van de RS485 bus (ter informatie : bij het inschakelen van deze voeding zal de toestand van de sensor pas na ± 30 sec. gestuurd worden naar de master = minimale opstarttijd sensor). Een blokschema van de LEDwallmodule wordt in onderstaande figuur 3.44 gevisualiseerd.
Figuur 3.44 : Blokschema LEDwallmodule
De data die de mastercontroller naar LEDwallmodule stuurt om het aantal vrije plaatsen te visualiseren (060), wordt in ondertaande figuur weergegeven. I.p.v. 61 getallen (= ASCII-codes) door te sturen, wordt via volgende oplossing dit grote aantal beperkt: de master stuurt 2 ASCII-codes die telkens 1 van de 2 digits van de LEDwall voorstellen. De 1e code bepaalt de waarde van de 1e digit (= tientallen, 06 = 7 ASCII-codes) en de 2e code de 2e digit (= eenheden, 09 = 10 ASCII-codes). Dit zorgt ervoor dat men slechts 17 verschillende adressen moet sturen om alle getallen weer te geven. Een overzicht van alle gebruikte ASCII-codes voor dit prject wordt geplaatst in bijlage 6. Figuur 3.45 : Overzicht voorstelling aantal vrije plaatsen met ASCII-codes bij master naar slave communicatie
Er zijn nog 2 extra functies toegevoegd die vanuit de mastermodule kunnen geregeld worden: enerzijds kan de LEDwall uitgeschakeld worden op aanvraag. Zoals hierboven beschreven als deze module geen data ontvangt van de master (verlichting uitgeschakeld), zal deze module enkel maar oplichten bij bewegingsdetectie. Uiteraard hoeft dit niet ongewenst te gebeuren op een weekend-dag waardoor de LEDwall ook manueel kan uitgeschakeld worden. Anderzijds kan ook de lichtsterkte van de LEDs vanuit de master manueel geregeld worden. Deze is in te stellen in 5 stappen (20-100%) 55
Visualisatie Ondergrondse Parking
Didier Vandeputte
en zorgen voor een onmiddellijke aanpassing. Indien ingesteld op 20%, zal de totale stroom die de voeding levert bij 58 of 60 plaatsen vrij slechts 0,35A bedragen (i.p.v. 1,46A bij 100%). Desondanks de LEDwallmodule in een waterbestendige behuizing is geplaatst aan de buitenzijde van de bovengrondse ingang van de parking, is er een grotere kans op temperatuurschommelingen waarbij de zwaktste schakel de performantie van het geheel bepaalt. De controller heeft het grootste temperatuursbereik (-55°C+125°C), daarna de RS485 transceiver, LED driver & LEDs (-40°C+80°C~85°C) en het kleinste bereik heeft de bewegingssensor (-20°C+60°C). Dus er moet gestreefd worden dat de temperatuur in de behuizing binnen het laatst vernoemde bereik plaats vindt. Om de LEDwall te voeden (max. +5V & 1,5A = 7,5W) kan er, i.p.v. een klassieke, lineaire voeding met bijhorende (warmte)verliezen (rendement 30-50%), gekozen worden voor een geschakelde voeding. Deze bestaat uit een spoel, condensator, diode en schakelend element (vb. FET) waarvan de dutycycle rechtstreeks het verband geeft tussen de in- en uitgangsspanning. Het type voor deze voeding zet een hogere DC-spanning om in een lagere = Buckconvertor. Voor kleine vermogen is dit veelal te verkrijgen als 1 component, voor iets grotere vermogens als een geheel met behuizing = adaptor en heeft praktisch een gemiddeld rendement van 66%87%. Niettegenstaande er al ervaring is opgebouwd in het realiseren van deze geschakelde voedingen (projecten vermogenelektronica), wordt er gekozen voor een afgewerkt geheel dat op de markt verkrijgbaar is. Dit heeft de voorkeur wegens compactheid, kostprijs, een hoog rendement en tenslotte moet er geen extra tijd gespendeerd worden bij de ontwikkeling hiervoor. Bij de selectie wordt er als zekerheid een hoger vermogen overwogen (+5V & 2A = 10W) waarbij het type DA12050EU-M (Emerson Network Power) de voorkeur krijgt. Deze keuze gebeurde op basis van zijn lagere aankoopprijs (11,42€/stuk bij componentendistributeur RS-components) in combinatie met compacte afmetingen (8cm x 6cm x 3cm) en aanvaardbaar rendement (73%, uitgangsrimpelspanning 50mV). Het element dat de spilfiguur is tussen de controller en de voeding wordt ook gebruikt bij de mastercontroller die de verlichting zal regelen. Hoe dit opgebouwd is wordt verwezen naar het volgende gedeelte. Een reflectie op de aansturing van de LEDwall : deze wordt succesvol aangestuurd via 5 LEDdrivers. Iedere driver kan 24 verschillende LEDs aansturen waardoor iedere LED van 103 in totaal (113 aanstuurlijnen) afzonderlijk kan in- en uitgeschakeld worden. Deze mogelijkheid is echter niet nodig voor de toepassing van een ondergrondse parking en lijkt het logischer om enkele LEDs tegelijk te laten oplichten vanuit 1 stuurlijn. Hierdoor kan er een combinatie gemaakt worden van de 2e en 3e voorgestelde oplossing : 1 stuurlijn voor het oplichten van de groene pijl, 1 stuurlijn voor het rode kruis, 13 stuurlijnen voor de eerste digit (7 lijnen voor telkens 3 LEDs in serie in te schakelen met 6 lijnen voor afzonderlijke LEDs) en 13 voor de 2e digit dus in totaal slechts 28 stuurlijnen. Aangezien de microcontroller dit aantal niet rechtstreeks kan aansturen worden 2 LEDdrivers gebruikt (2 x 14 stuurlijnen om de vermogendissipatie te beperken). De max. ingestelde stroom doorheen de LEDs bij de 3e oplossing was 20mA. De stroom voor het oplichten van de groene pijl dus 0,5A bedraagt (25 x 20mA), het rode kruis 0,68A (34 x 20mA) en per rij LEDs 60mA (3 x 20mA). Aangezien iedere LEDdriver maximaal 35mA kan leveren (voor kleuren rood & groen, zie tabel 3.28) of 26,3mA (voor kleuren blauw), zal er nog een stroomversterkend element moeten aanwezig zijn tussen iedere uitgangslijn van de drivers en de LEDs zoals een MOSFET of boostconvertor. Deze mogelijkheid zou de kosten kunnen verlagen alsook de vereenvoudiging van de aansturing verhogen. 56
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.4. Regeling verlichting Afhankelijk van de input van het shiftenregelsysteem (inlezen van het momentele tijdstip) en de bewegingsdetectoren zal de mastercontroller de verlichting in de ondergrondse parking regelen om energie te besparen (vb. ‘s nachts of in dalmomenten van activiteit). Aangezien de bouw van de parking tot op heden nog maar net is begonnen, is nog niets gekend over dit elektrisch gedeelte. Het is echter voldoende om onrechtstreeks de verlichting te schakelen a.d.h.v. een aanwezig relais dat zal gebruikt worden. Zo hoeft er geen rekening te worden gehouden met het type verlichting, hoeveelheid, voedingsspanning, ... om a.d.h.v. de vermogenspecificaties de gebruikte stuurcomponenten te definiëren. Niettegenstaande er een scheiding is tussen de stuurelektronica en het vermogengedeelte via het aanwezige relais, is er toch een voorkeur voor een volledige scheiding van het gehele elektronische systeem van dit project en de verlichting. Daarom zal er gebruik gemaakt worden van volgende elektronische elementen: enerzijds zal een optocoupler een IR-galvanische scheiding maken tussen het signaal van de controller en de verdere schakelelektronica. Anderzijds zal een MOSFET de verlichting (via het aanwezige relais) schakelen. Dit werd eerst praktisch uitgevoerd met een schakelend element zoals een POWERMOSFET (vb. IR540 die 20-100A kan schakelen) of een vermogentransistor (vb. BD244 die tot 6A kan schakelen). De beste oplossing is echter een Solid State Relais die zowel de galvanische scheiding (optocoupler) als het schakelend element (MOSFET) in 1 (kleine) behuizing combineert. Dit elektronisch relais heeft tal van voordelen t.o.v. zijn verouderde mechanische tegenhanger: - lagere kostprijs - compacter & lichter - schakelt vele malen sneller - schakelt geluidsloos t.o.v. een relais - minder slijtage of onderhoud door geen bewegende delen - ... Aangezien deze component ook gebruikt wordt voor het schakelen van de voeding bij de LEDwallmodule en tot 1,5A moet schakelen, wordt er gekozen voor volgende type: PVG612SPbF van International Recitifier. Deze 6 pins SMD SSR kan tot 60V & 2A schakelen (schakelfrequentie = ±1,125KHz en is afh. van IR-diode, temperatuurbereik voor werking: -40°C+85°C) en is meer dan voldoende voor deze toepassing (rekening houdende met de kostprijs : 4,83€/stuk bij Farnell te bestellen). Deze wordt in figuur 3.46 weergegeven. Figuur 3.46 : Solid State Relais PVG612SPbF
De stroombeperkende serieweerstand wordt bepaald op 100Ω zodat de IR LED een 1,3V doorlaatspanning bezit bij 10mA. Op de figuur is te zien dat de stroom door de 2 schakelende MOSFET-gedeeltes vloeit voor een maximale stroom, indien er maar 1 gebruikt wordt daalt uiteraard de maximale schakelende stroom naar 1-1,5A. De verliesweerstand bepaalt de resterende spanning aan de belasting. Deze is volgens de gegevens maximaal 150mΩ en proefondervindelijk bepaald op 60-120mΩ (afhankelijk van de belastingsstroom). Aangezien de LEDwall minimaal 4,78V nodig heeft, mag de maximale verliesweerstand bij een +1,5A stroom 330mΩ bedragen. 57
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.5. Mastercontroller Deze module is het hart van het hele parkeersysteem en zal volgende functies uitvoeren: opvragen & verzamelen van de verschillende toestanden van iedere parkeerplaats verwerken van dit aantal en deze visualiseren op een LEDwall aansturen verlichting a.d.h.v. energiebesparend tijdschema bij shiftregeling aansturen verlichting a.d.h.v. verschillende bewegingsmelders aansturen PC voor opbouw overzichtsscherm Zoals besproken verloopt enerzijds de communicatie met de parkeerplaatsmodules, LEDwall en bewegingsmelders vanwege de grote afstand via het busprotocol. Anderzijds zal de mastercontroller ook rechstreeks via stuurelektronica (zie vorige gedeelte) de verlichting aansturen. Bovendien zal hij 8b. seriële data sturen naar de PC met de gegevens van iedere parkeerplaats om het overzichtsscherm op te bouwen. Deze gegevens worden in figuur 3.47 gevisualiseerd.
Figuur 3.47 : Communicatieschema tussen mastercontroller & PC overzichtsscherm
Oorspronkelijk (tot aan de voorstelling in maart) was het idee voor het verwerkingsplatform van de data verschillend. De mastercontroller zorgde enkel voor de buscommunicatie met de verschillende modules. Daarna werd een extra FPGA gebruikt (zie gedeelte studie de Xilinx FGPA met VHDL-taal) die naast het schakelen van de verlichting voornamelijk de taak op zich nam voor het opbouwen van het overzichtsscherm via VGA. Aangezien het testbord geen seriële ingangen bezat, werd er gebruik gemaakt van een 8b. schuifregister (74HCT595 met signaallijnen CLK, OE & DATA) om succesvol de seriël naar parallel dataconversie te realiseren. Aangezien het overzichtsscherm zowel in de ondergrondse parking zelf als in de kantoren van het bedrijf moet aanwezig zijn is er een communicatiemedium nodig dat voor deze kopie kan zorgen. Aangezien het testbord geen netwerkverbinding bezit (alsook geen seriële buscommunicatielijnen en er een algemene restrictie is op draadloze communicatieoverdracht in de parking), werd er gekozen voor een optische verbinding (voordeel : langere afstanden hebben geen invloed op vervorming, vertraging, ruiseffecten, reflecties, ...). Dit kwam op aanraden van het bedrijf zelf aangezien deze enkele optische transceiver IC’s ontwikkelen. Een voorgestelde component die dataverkeer toe laat tot 25MBps is het type MLX75608 [41] (zie figuur 3.48). Hierbij zorgt een LED (zender) & PIN photodiode (ontvanger) voor de communicatie via een Plastic Optic Fiber met daarin een lichtsignaal met typische golflengte 0,65µm (rood licht). Deze wordt veelal gebruikt voor het dataverkeer in de wagen bij het infotainment systeem zoals navigatie, radio, tvschermen, etc (=automotive MOST-protocol). Figuur 3.48 : Optische transceiver MLX75608, Melexis
58
Visualisatie Ondergrondse Parking
Didier Vandeputte
Aangezien deze extra hardware oplossingen de kosten verhogen, is er overgestapt naar het idee dat de mastercontroller alle verwerking maakt. Het opbouwen van het overzichtsscherm gebeurt softwarematig via PC (communicatie tussen controller en PC via figuur 3.47) en kan via het netwerk naar verschillende gebruikers gestuurd worden. In eerste instantie werd verder gedacht ook de hardware mastercontroller te vervangen door de PC die softwarematig alle dataverwerking op zich neemt. Hierbij zou er een extra kleine module (of ingebouwd in een kabel) aangekocht worden die de die seriële data van de PC omzet in RS485 data. Dit zou een goed idee kunnen zijn maar er zijn echter 2 grote nadelen aan verbonden: - Aangezien niet enkel buscommunicatie nodig is voor het systeem, maar ook de verlichting hoeft geschakeld te worden, is er dus opnieuw een extra stuk hardware nodig (controller) die de conversie maakt van seriële data naar een schakelend contact. Zo wordt de kostenbesparing teniet gedaan. - Hierdoor is het beter om de controller rechtstreeks het denkwerk op zich te nemen want deze heeft een stabieler systeem dan een (mogelijke crashende) PC. Bij het opbouwen van iedere module, werden bij de prototypes gebruik gemaakt van het Arduino Uno microcontrollerboard. Deze bestaat uit een hoofdcontroller Atmega 328 en een subcontroller Atmega 16U2 van ATMEL. Deze subcontroller maakt de dataconversie tussen USB en het aansturen van de hoofdcontroller (seriële data TX en RX). Niet tegenstaande dat de aanwezigheid van deze subcontroller met randcomponenten en USB-poort handig kan zijn voor het eenvoudig en herhaaldelijk testen met het testboard, zijn deze niet nodig op de definitieve printen van iedere parkeermodule. De hoofdcontroller dient immers slechts 1 maal geconfigureerd worden. Er werd eerst voorgesteld om deze enkel te voorzien op 1 print vb. bij de mastercontrollermodule, zodat iedere hoofdcontroller, Atmega 328, uitgevoerd in een klassieke PDIP-behuizing in een 28 pins IC-voet kon ingeplugged worden om te configureren om dan vervolgens in de overeenstemmende slave module te plaatsen. Echter is dit een verouderde werkwijze met extra kosten (iedere module bezit een extra IC-voet) die verworpen werd. Een betere mogelijkheid is de hoofdcontroller uit te voeren in de 32 pins TQFP SMD-behuizing. Hierdoor dient iedere hoofdcontroller op de print zelf geconfigureerd te worden en dit kan men realiseren door een TTL-naar-USBomvormingskabel (TTl-232R-5V van FTDI, zie afzonderlijk gedeelte ‘Studie & onderzoek sensoren’) met headervoorziening op de print die zorgt voor plaats- en prijsvoordeel t.o.v. de oorspronkelijke subcontroller met randcomponenten en USB-poort. Tenslotte na het verkrijgen van iedere controller van de fabrikant en nog voor het inladen van het C-programma, dient eerst een bootloader met hex-file ingebracht te worden. Een hex-file (typisch voor microcontrollers) is een tekstbestand met hexadecimale machine code die de controller rechtstreeks aan stuurt via een bootloader. Deze bootloader zal immers de hex-file in het (niet vluchtig) flash-geheugen van de controller inladen en is dus noodzakelijk bij iedere opstart vooraleer het geschreven C-programma wordt uitgevoerd. De bootloader die de hex-file uitvoert, dient dus 1 maal bij iedere definitieve print ingeladen te worden. Dit kan typisch voor de controller Atmega 328 e.a. AVR-controllers van ATMEL via het SPI-protocol gerealiseerd worden. Dit wordt uitgevoerd tijdens de machinale bestukking door een externe firma die via enkele naalden op voorziene plaatsen op de print, de bootcode injecteert en, na het resetten van de controller, deze aan enkele testen zal onderwerpen.
59
Visualisatie Ondergrondse Parking
Didier Vandeputte
3.3.6. Visualisatie aantal vrije plaatsen d.m.v. overzichtsscherm Naast de LEDwall wordt ook een overzichtsscherm gebruikt om duidelijk aan de bestuurders te visualiseren hoeveel vrije plaatsen de parking momenteel bezit. Dit scherm zal hierbij een overzichtelijke plattegrond visualiseren (voorbeeld zie figuur 3.49). Dit scherm wordt niet enkel in de ondergrondse parking zelf geplaatst, maar ook in de kantoren van het bedrijf. Oorspronkelijk werd het scherm opgebouwd via het FPGA-bord en d.m.v. een optische verbinding naar het kantoor gestuurd. Dit voorstel werd naderhand afgekeurd waardoor het scherm softwarematig opgebouwd wordt via C#.net en via het netwerk doorgestuurd zodat er meer dan 2 kopies van het scherm kunnen verkregen worden. Figuur 3.49 : Opbouw overzichtsscherm
3.3.7. Voeding 3.3.7.1 Algemeen Deze voeding zorgt voor de energievoorziening van alle modules in het bussysteem: - 60 parkeerplaats slavemodules + 1 mastermodule voor het bepalen en doorsturen van de toestand van iedere parkeerplaats - 8 bewegingsmeldermodules om de parkingverlichting in te schakelen Alles modules bezitten een microcontroller en bustransceiver
3.3.7.2 Berekening Hieronder wordt bepaald hoeveel energie iedere module nodig heeft voor correcte werking: - 1 mastermodule: - 1 x Controller ATMega328: +5V/5-9mA max. (Active Mode) - 1 x RS485 differential transceiver IC SN65HVD3088E: +5V/0,3mA (Active Mode) - Overige passieve componenten (schakelaars & trimmers) Totaal > 30mA. Rekening houdende met passieve componenten en reserve wordt er max. 50mA bij +5V = 0,25W voorzien. - 60 parkeerplaats(slave)modules met per slavemodule: - 1 x Controller ATMega328: +5V/5-9mA max. (Active Mode) - 1 x RS485 differential transceiver IC SN65HVD3088E: +5V/0,3mA (Active Mode) - 1 x Ultrasone sensor: +5V/3mA - 8 x LEDs : - toestand Vrij: 120mA piek knipperend (= 60mA gemiddeld) - toestand Bezet: 40mA continu - toestand Handicap: 30mA continu - Overige passieve componenten (schakelaars & trimmers) Per slavemodule: > 133mA piek. Rekening houdende met passieve componenten en reserve wordt er max. 150mA piek bij +5V = 0,75W piek voorzien. - 8 bewegingsmeldermodules: - 1 x Controller ATMega328: +5V/5-9mA max. (Active Mode) - 1 x RS485 differential transceiver IC SN65HVD3088E: +5V/0,3mA (Active Mode) - 1 x PIR bewegingssensor EKMC1603112 : +5V/0,2mA - Overige passieve componenten (schakelaars) Per bewegingsmeldermodule: > 20mA. Rekening houdende met passieve componenten en reserve wordt er max. 30mA bij +5V = 0,15W voorzien. 60
Visualisatie Ondergrondse Parking
Didier Vandeputte
Oorspronkelijk werd de buslijn fysisch uitgevoerd met een kabel bestaande uit 2 TP’s, 2 RJ11 connectoren met draad ᴓ=0,8mm (opp.=0,5mm²). Deze diameter had dezelfde maximale afmeting als de breedte van de geleiders in de connector om zo een zo klein mogelijke weerstand te creëren wat belangrijk is voor het vermogenverlies in de kabel. Echter doordat de RJ11 connectoren in de 1e plaats ontwikkeld zijn voor gebruik met een flatcable, kon dit niet fysisch gemonteerd worden en is er over gegaan naar het gebruik van een netwerkkabel. Deze CAT5 UTP netwerkkabel met aan beide zijden een 8 pins RJ45 fiche bestaat uit 4 TP’s waarvan 1 TP voor de data en 2 x 3 draden voor de voeding. Bij het bepalen van de voeding is niet enkel de lengte van de buslijn belangrijk (±260m) maar ook o.a. de verliesweerstand. A.d.h.v. de formule van Pouillet (zie afzonderlijk deel ‘Studie & onderzoek sensoren’) en de lijst met de soortelijke weertandswaarde van materialen in bijlage 4, kan deze bepaald worden (T=15°C dus =0,0172Ωmm²/m, koperen geleider van de kabel heeft typisch ᴓ=0,51mm of opp.=0,204mm²): 0,084197Ω/m. Aangezien telkens de 3 geleiders met elkaar verbonden zijn wordt de totale verliesweerstand 3 maal kleiner = 0,0281Ω/m. De aansluitingsweerstand bedraagt 0,1Ω (dit gemiddelde wordt als standaard gebruikt in het bedrijf). Volgende figuur 3.50 toont schematisch de verliezen doorheen deze bus.
Figuur 3.50 : Energieverlies voeding door buslengte
Op de figuur zal de voeding na de master eerst de 8 bewegingssensoren voeden en daarna de 60 parkeerplaatsmodules. In de praktijk is dit echter afhankelijk van hoe de buslijn geplaatst wordt in de parking en welke volgorde iedere module heeft. Het schema wordt enkel gebruikt om eenvoudiger de berekeningen te maken. Rverlies Vcc = Rverlies GND = (260m x 0,0281Ω/m) + (69 x 0,1Ω) = 7,306Ω + 6,9Ω = 14,206Ω. De totale verliesweerstand wordt dus 28,412Ω. Er wordt geconcludeerd dat vanwege het groot aantal gebruikers dit gedeelte van de verliesweerstand in de buurt komt van het gedeelte te wijten aan de grote afstand. De voeding zal vanwege het verlies van lengte een hogere spanning moeten leveren dan degene die nodig is bij iedere controller (+5V/30 tot 150mA). De stroom wordt bepaald door de diameter van de kabel met bijhorende warmteproductie. 1. Eerst werd gedacht aan een spanningsregelaar vb. 7805. Deze zorgt voor een stabiele +5V uitgangsspanning met een ingang tot 20V. Aan deze werkwijze is echter 1 groot nadeel aan verbonden : De ingangsstroom = de uitgangsstroom waardoor Pin = Pdiss + Pout. M.a.w. stel bij een +12V ingang en +5V uitgang is er een +7V verliesspanning. Het vermogenverlies zal volledig via de koelplaat gedissipeerd worden waardoor deze oplossing sterk inefficiënt is. Indien er voor deze oplossing zou gekozen 61
Visualisatie Ondergrondse Parking
Didier Vandeputte
worden, wordt de totale stroomvoorziening voor alle modules: 60 x 150mA + 1 x 50mA + 8 x 30mA = 9,29A. D.w.z. door het eerste gedeelte buskabel tussen de voeding en de master controller loopt 9,29A, daarna 9,29-0,05A voor bewegingsmodule 1, daarna 9,29-0,08A voor bewegingsmodule 2, ... door het laatste gedeelte buskabel naar slave 60 loopt er enkel 150mA. Deze grote voedingsstroom in combinatie met de hogere voeddingsspanning zorgt voor een nog inefficiëntere oplossing (te hoog voedingswattage met een te grote warmteproductie doorheen de buskabel). Aangezien dit project een vereiste had om de energievoorziening minimaal te houden, wordt de volgende oplossing verkozen. 2. Een betere oplossing is het gebruik van een geschakelde DC-omvormer. Hierbij is het ingangsvermogen = uitgangsvermogen. Dit levert het voordeel dat de hogere ingangsspanning (vanwege het busverlies) bij een constant vermogen een lagere ingangsstroom oplevert. Hierdoor wordt de totale stroom voor de 60+1 modules sterk gereduceerd. Er kan onderzocht worden welke de voedingsspanning en -stroom moet zijn indien de laatste parkeermodule ook het vermogen van 0,75W kan verkrijgen. Onderstaande figuur 3.51 stelt dit visueel voor.
Figuur 3.51 : Vermogenbepaling voeding met totale busverliesweerstand
Het type schakelende voeding (DC-omvormer), die een hogere DC-spanning omzet in een lagere, heet een Buckconvertor (voor meer informatie zie gedeelte LEDwall). Aan dit laatste luik van de masterproef is de uitwerking nog volop bezig waaronder de verdere berekeningen en onderzoek naar bestaande convertors met hun verliezen. De volledig uitgewerkte versie kan terug gevonden worden op de CD-ROM.
62
Visualisatie Ondergrondse Parking
Didier Vandeputte
4. Resultaten In het studiegedeelte werd de verschillende mogelijke types sensoren, signaalverwerkingsplatformen en communicatiemethodes overlopen. Na het kiezen van de beste oplossingen werd in het onderzoeksgedeelte de verschillende elementen van het elektronisch systeem uitgediept, onderzocht & opgebouwd naar realisatie. In het gedeelte resultaten wordt vervolgens eerst de hardware van het geheel gevisualiseerd. Na deze basis volgt de software a.d.h.v. flowcharts. Foto’s van de prototypemodules worden teruggevonden op de CD-ROM. De definitieve versies zijn momenteel uitgestuurd voor ontwikkeling + behuizing waardoor het uiteindelijke resultaat niet kan gevisualiseerd worden.
4.1. Hardware 4.1.1. Schema bewegingsmeldermodule
63
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.1.2. Schema LEDWallmodule
64
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.1.3. Schema parkeerplaatsmodule
65
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.1.4. Schema mastermodule De vertragingstijd voor het inschakelen van de verlichting kan hardwarematig bepaald worden via vb. timer 555 maar, om kosten en plaats te besparen, zal dit softwarematig uitgevoerd worden (uiteraard blijft een trimmer aanwezig om de gewenste vertraging in te stellen). Deze kan ingesteld worden in 5 stappen: 1 - 3 - 5 - 10 -15 minuten.
66
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.2. Software Om het aantal bijlages te beperken wordt de aanstuurcode van de parkeerplaatsmodule, bewegingsmelder, LEDwallmodule en de mastermodule niet in zijn geheel bijgevoegd aangezien deze te uitgebreid is (wel terug te vinden op de CD-ROM). Om de werking van het programma toch weer te geven, worden flowcharts gebruikt en zijn hierna terug te vinden. Aangezien de prototypes van iedere module gebruik maakt van een Arduino microcontroller testbord, wordt de software gerealiseerd via C++ programmeertaal. De uiteindelijke modules zijn echter enkel uitgevoerd met de controller waardoor de hex-file (bestaande uit de bootloader & effectieve programma) die eenmalig in de controller ingeladen wordt, omgevormd moet worden naar C-taal. In het programma van de parkeerplaatsmodule is de inschakeltijd van de ultrasone afstandssensor belangrijk : een nadeel van deze sensor (naast de hogere aankoopprijs) is de lange opstartperiode : 0,5 sec (bij de 1e maal uitvoeren van het programma wordt dit geplaatst in de setup, hierna wordt deze opstartcyclus ingeschakeld op het einde van de programmacyclus bij het instellen van de visualisatieLEDs). De duur van de metingen is 0,12 sec. (Er moet minimum 60msec. gewacht worden tussen 2 metingen en er worden 3 metingen uitgevoerd voor een stabiele waarde) waardoor de sensor totaal 0,12 sec. is ingeschakeld. Aangezien er gestreefd wordt om deze sensor zo kort mogelijk in te schakelen in een volledige programmacyclus, zal deze 5 sec. duren, waardoor de sensor een aanvaardbare 12,4% ingeschakeld wordt. Dit wil ook zeggen dat bij detectie het maximaal 5 sec. duurt vooraleer de visualisatie LEDs hun toestand vernieuwen. Voor de toepassing van een ondergrondse parking is dit ook aanvaardbaar. Verder worden de programma’s van de andere modules opgebouwd met een typische volledige programmacyclus van 1 sec. Zo zal de bewegingssensormodule na maximaal 1 sec. detectie waarnemen en zijn toestand naar de mastermodule doorsturen. Ook zal de LEDwallmodule zijn informatie op de laten knipperen met een frequentie van 1Hz. Aangezien iedere seconde de toestand van een volgende parkeerplaats wordt opgevraagd, zal een volledige update van de parkeerplaatstoestanden van de parking 1 minuut duren (60 parkeerplaatsen). Dus wordt de LEDwall iedere minuut vernieuwd van masterdata. Hierdoor zal het ingestelde aantal minuten verlichting bij bewegingsdetectie (1 15 min.) voor de eenvoud het aantal herhalingen zijn van het mastermodule programma.
67
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.2.1. Flowchart parkeerplaatsmodule
68
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.2.2. Flowchart bewegingsmeldermodule
Aangezien de LEDwallmodule ook een bewegingssensor bezit, is de flowchart van de LEDwallmodule dan uiteraard gebasseerd hierop maar met extra functies toegevoegd voor het aansturen van de LEDwall.
69
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.2.3. Flowchart LEDwallmodule
70
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.2.4. Flowchart mastermodule
71
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.3. Overzichtsschema
72
Visualisatie Ondergrondse Parking
Didier Vandeputte
4.4. Volledige installatie ondergrondse parking
73
Visualisatie Ondergrondse Parking
Didier Vandeputte
5. Conclusies Aangezien de ondergrondse parking tot op heden nog in opbouw is, wordt het elektronisch systeem getest met slechts 3-5 voertuigen. Het opbouwen van de software & hardware van alle modules doorheen de maanden zorgt bij de testen voor de gewenste werking. Hieruit blijkt dat de juiste conclusies bij het gedeelte studie genomen werden. De ultrasone afstandssensor blijkt een goede keuze te zijn voor voertuigdetectie, in tegenstelling tot de testen met de IR-temperatuursensor en AMR-sensor. Het systeem is ook getest bij de volledige buslengte (±260m) waardoor ook het gekozen bussysteem, RS485, een goede oplossing biedt (i.v.m. I²C, SPI, SMBus, CAN, optisch, ...). Een niet vermelde bus is de LIN-bus en wordt reeds 20 jaar gebruikt in de auto-industrie als een goedkoop seriël netwerk (UART) ter vervanging van het complexere & duurdere CAN. De maximale buslengte is echter 40m (bij 19,2kbits/s) en het maximaal aantal gebruikers 16. Aangezien de parking 60+8 modules bevat & ±260m bekabeling, is een alternatief dus het LIN-netwerk waarbij er minstens 5 individuele buslijnen nodig zijn (i.p.v. 1 totale met RS485). Hierdoor zullen meer connectoren bij de master nodig zijn en is een aanpassing van de mastersoftware nodig. Met deze conclusies blijkt dat RS485 opnieuw de beste keuze is. Voor de keuze van het signaalverwerkingsplatform werd er al snel gekozen voor een microcontroller. Er werder geen specifieke eisen gesteld die groot belang hadden bij de keuze van een controller zoals het aantal in- en uitgangen, geheugencapaciteit, kloksnelheid, kleine afmetingen, ... waardoor voor de eenvoud gekozen werd voor een Arduino microcontroller testbord dat handig was voor het testen van de verschillende prototypes. Het doel was een werkend parkeersysteem te creëren voor een 60-tal voertuigen, rekening houdende met een beperkt budget. Vanwege dit lagere aantal en kostprijs werd bewust niet gekozen om een bestaand parkingsysteem te gebruiken zoals van Parko Kortrijk, Q-park, Interparking, ... . Na contactopname hiermee werd omgerekende kostprijs per parkeerplaats geschat op 150-250€. Dit is een relatief hoge waarde als men rekening houdt met het feit dat grote installaties toch een voordeel van kostenreductie bezitten. Voor dit project kan er enkel een prijsschatting gemaakt worden voor de installatie van het geheel + uitsturen van bestukking printen & behuizing en zal het totaal project wellicht 3000€ bedragen. Hierdoor zal de kostprijs per parkeerplaats geschat worden op 50€, wat een aanzienlijk verschil is. Deze masterproef werd eerst gedacht uitgevoerd te worden in 1 semester maar is door de omvangrijkheid verschoven naar 2, door o.a. volgende redenen : ten eerste had ik als enige verantwoordelijke de opdracht om met weinig restricties te zorgen voor een goed en betrouwbare detectie, visualisatie zowel hardware als software. Dit werd gestart met een groot studie- & onderzoeksgedeelte naar de verschillende mogelijkheden. Naast de theoretische uitwerking was ook de praktische testen van de verschillende aparte onderdelen van groot belang, want uiteraard is het systeem pas betrouwbaar bij een feilloze werking. Dit gedeelte op zich vulde al uiteindelijk een half jaar. Dus, om een deftig werkend systeem te ontwikkelen, is dit fysiek niet haalbaar in enkele maanden tijd. Het volgende half jaar werd besteed aan het debuggen van het volledig systeem. Vervolgens tijdens de opbouw van het systeem werden verschillende gedeeltes stap per stap uitgewerkt, getest en voorgesteld. Er werden telkens goede ideeën uitgewisseld met de begeleiders maar resulteerden in een soms late aanpassing van het concept (aansturing 74
Visualisatie Ondergrondse Parking
Didier Vandeputte
parkeerplaatsmodule bij communicatie & aansturing LEDs & detectie, ...). Verder zorgde de ontwikkeling van de LEDwallmodule voor extra vertraging (problemen bij hardware & software) waardoor uiteindelijk het overzichtsscherm niet meer op tijd is kunnen gerealiseerd worden (via C#.net i.p.v. oorspronkelijk met FPGA). Tenslotte heeft dit project mijn C++ kennis sterk verhoogd aangezien vanwege mijn vooropleiding de ervaring hierin beperkt was.
Literatuurlijst [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
Melexis, Jaarverslag 2010, 2010 D. C. Shoup, The High Cost of Free Parking, 1997 C. Stevens, Transmissietechniek deel 1, 2010 http://www.lammertbies.nl (bij studie RS-232, RS-485) T. Kaers, Ontwerp van een sensor meetsysteem, Implementatie via een CAN-bus, 2010 http://www.weighing-systems.com (bij studie Fieldbus, Interbus, Profibus, CAN) F. De Pauw, Draadloze – en mobiele communicatie, H11 Draadloze LANs, 2011 KATHO, Datacommunicatie, Glasvezel, 2008 H. Cokelaere & R. Hostyn, Digitale Techniek deel 2, 2004 http://bildr.org (tutorial bij IR temp. sensor MLX90614) http://www.instructables.com (tutorial bij Ultrasone afstandssensor EZ1-MB1010) Honeywell, 3-Axis Digital Compass IC HMC5883L, okt. 2010 http://www.sparkfun.com (tutorial bij AMR-sensor HMC5883L) Texas Instruments, 24-Channel Constant-Current LED Driver TLC5992, mei 2009 Texas Instruments, Low Power RS-485 transceiver SN65HVD3088E, mei 2009 http://www.altec.nl & http://www.publicoen.be (normering signalisatie LEDwall) http://www.engineeringtoolbox.com (bijlagen, emissiviteitslijst)
75
Visualisatie Ondergrondse Parking
Didier Vandeputte
Bijlagen 1. Testcode sensoren a. Testcode MLX9061614 met Arduino #include
// De aangepaste I²C bibliotheek wordt gebruikt voor de SMBus communicatie tussen deze //mastercontroller en de slave (IR temp. sensor MLX90614) int IRsensor_inschakelen = 10; // pin D10 int dev; int data_low = 0; int data_high = 0; int pec = 0; // Packet Error Code a.h.v. CRC-controle double temp_factor; double temp_data = 0x0000; float temp_celcius; String string_temp_scherm; int frac; // plaatsen van de komma in de data void setup(){ Serial.begin(9600); Serial.println("I2C communicatie wordt gerealiseerd om de opgemeten temperatuur te visualiseren ..."); pinMode (IRsensor_inschakelen, OUTPUT); string_temp_scherm = String ("\nDe opgemeten temperatuur bedraagt (graden Celcius) : "); i2c_init(); // I²C bus initialiseren PORTC = (1 << PORTC4) | (1 << PORTC5); // enable pullups } void loop(){ digitalWrite(IRsensor_inschakelen, HIGH); // voeding IR sensor MLX90614 inschakelen dev = 0x5A<<1; // Byte 01011010 = startconditie bit + slave adres en verschuiven naar links met 1 rang i2c_start_wait(dev+I2C_WRITE); // voorgaande + 1 write bit i2c_write(0x07); // Byte 00000111 wordt geschreven als commando zodat de sensor hierna zijn data (opgemeten //temperaturen) zal doorsturen i2c_rep_start(dev+I2C_READ); // Typisch aan SMBus wordt opnieuw de startconditie + slave adres herhaald + 1 read bit //doorgestuurd data_low = i2c_readAck(); // Byte "data byte low" wordt ingelezen door deze master controller en telkens met 1 bit //bevestigd (=Ack) data_high = i2c_readAck(); // Hetzelfde geldt voor "data byte high" pec = i2c_readNak(); // Vervolgens wordt de PEC van de slave ontvangen i2c_stop(); // Tenslotte volgt een stopconditie bit // De I²C communicatie is voorbij en nu volgt de dataverwerking tot de temperatuur in °C temp_factor = 0.02; // Resolutie voor de sensor is per LSB 0,02 graden per LSB temp_data = (double)(((data_high & 0x007F) << 8) + data_low); //byte 0111 1111 * "data byte high" om 1e errorbit te verwijderen en 8 rangen te verschuiven //naar links + "data byte low" eraan toevoegen temp_data = (temp_data * temp_factor)-0.01; // temperatuur = #bits x 0,02 graden/bit = #graden temp_celcius = temp_data - 273.15; // Gestuurde temperaturen van de sensor zijn uitgedrukt in Kelvin en dienen omgezet te worden // in °Celcius Serial.print(string_temp_scherm); Serial.print(temp_celcius); delay(1000); // 1 sec. vertraging om terug de temperatuur op te meten }
a
Visualisatie Ondergrondse Parking
Didier Vandeputte
b. Testcode LV-MaxSonar-EZ1-MB1010 met Arduino int Ultrasoon_in = 3; // pin A3 int Ultrasoon_out = 13; // pin D13 met standaard ingebouwde LED int afstand1_inch; float afstand1_cm; float afstand1_max; float afstand1_min; int afstand2_inch; float afstand2_cm; float afstand2_max; float afstand2_min; int afstand3_inch; float afstand3_cm; float afstandgem_cm; void setup() { pinMode (Ultrasoon_in, INPUT); pinMode (Ultrasoon_out, OUTPUT); Serial.begin(9600);} void loop() { // Af en toe meet de sensor een verkeerde waarde (= ongewild toestand plots verkeerd) en de //oplossing hiervoor is 3 metingen na elkaar uitvoeren. Indien deze ongeveer aan elkaar gelijk zijn //(range 20cm) dan pas wordt er gekeken wat de waarde is om de toestand van de LED te bepalen afstand1_inch = analogRead(Ultrasoon_in) / 2; // totale afstand (heen + terug) wordt dus gedeeld door 2 afstand1_cm = afstand1_inch * 2.54; // standaard uit sensor komt een analoge spanning die overeen komt met de afstand (stapgrootte //9,8mV/inch (3,86mV/cm) bij Vcc:+5V) met min. 6 inch(15cm)<=>max. 254 inch(645cm) Serial.print("\n\n\n\nDe gemeten afstanden tussen sensor en object:"); Serial.print("\nAfstand 1 (cm): "); Serial.print(afstand1_cm); afstand1_max = afstand1_cm + 10; // er wordt een range gemaakt van +20 cm (waarde 1 +10cm en waarde 1 -10cm) afstand1_min = afstand1_cm - 10; delay(60); // tussen 2 metingen moet er minstens 50ms gewacht worden afstand2_inch = analogRead(Ultrasoon_in) / 2; // een 2e afstand wordt opgemeten afstand2_cm = afstand2_inch * 2.54; Serial.print("\nAfstand 2 (cm): "); Serial.print(afstand2_cm); afstand2_max = afstand2_cm + 10; afstand2_min = afstand2_cm - 10; delay(60); afstand3_inch = analogRead(Ultrasoon_in) / 2; // een 2e afstand wordt opgemeten afstand3_cm = afstand3_inch * 2.54; Serial.print("\nAfstand 3 (cm): "); Serial.print(afstand3_cm);delay(60); if ((afstand2_cm < afstand1_max) && (afstand2_cm > afstand1_min) && (afstand3_cm < afstand1_max) && (afstand3_cm > afstand1_min) && (afstand3_cm < afstand2_max) && (afstand3_cm > afstand2_min)) // de 2e waarde moet zich bevinden in de range van de 1e, de 3e waarde moet zich bevinden in de // range van de 1e en 2e {// indien deze voorwaarde vervult is, wordt er verder gedaan met de rest van het programma afstandgem_cm = (afstand1_cm + afstand2_cm + afstand3_cm) / 3; if ((afstandgem_cm > 141 && afstandgem_cm < 354)) // LED is actief als er een object zich // bevindt binnen de range van 1m <=> 2,5m verticale hoogte {digitalWrite(Ultrasoon_out, HIGH); Serial.print("\nDe juiste afstand (schuin 141cm<=>354cm) wordt gemeten voor detectie & de LED brandt");} else {digitalWrite(Ultrasoon_out, LOW); Serial.print("\nDe juiste afstand (schuin 141cm<=>354cm)wordt niet gemeten voor detectie & de LED brandt niet.");}} else {Serial.print ("\n\n1,2 van de 3 opgemeten afstanden is foutief.");} }
b
Visualisatie Ondergrondse Parking
Didier Vandeputte
c. Testcode AMR-(metaaldetectie) sensor HMC5883L, Honeywell met Arduino // Pin instelling voor I²C SDA : Analog input pin 4 // Pin instelling voor I²C SCL : Analog input pin 5 #include <Wire.h> //I²C Arduino Library #define adres 0x1E // Byte 00011110, I²C 1bit startconditie + 7bit slaveadres van HMC5883 int x1, x2, x3, x4, x5, y1, y2, y3, y4, y5, z1, z2, z3, z4, z5; int z_gem; void setup(){ // Setup seriële & I²C communicatie PORTC = (1 << PORTC4) | (1 << PORTC5); // enable pullups voor pin A4 en A5 Serial.begin(9600); Serial.print("\nSetup instellingen van de HMC5883 AMR-sensor (3 axis digital kompas): "); Serial.print("\n1) Default: 8 samples averaged per meting + 15Hz (0,75<=>75Hz) data output rate"); Wire.begin(); // Eenmalige instelling van de juiste Operating Measurement Mode (Continuous of //Single) en versterking Wire.beginTransmission(adres); //Start communicatie met HMC5883 Wire.send(0x02); // Mode Register selecteren via pointer locatie 2 Wire.send(0x00); // Continuous Measurement Mode selecteren i.p.v. Single (=Default) die telkens //na meting in Idle Mode (laag stroomverbruik) gaat en terug moet wakker gemaakt worden met //het opvragen van de waarde door de master of de slave opnieuw laten metingen uitvoeren Serial.print("\n2) Instelling Continuous Measurement Mode"); Wire.send(0x01); // Configuration Register B selecteren via pointer locatie 1 Wire.send(0x00); // De versterking wordt op maximaal ingesteld (1370LSB's/Gauss en bereik +-0,88Gauss) zodat //de LSB's een maximale waarde hebben en het verschil tussen wel/geen voertuig zo duidelijk //mogelijk te onderscheiden is Serial.print("\n3) Instelling maximale versterking zodat verschil wel/geen auto duidelijk is (1370LSB's/Gauss en veldsterkte bereik +-0,88Gauss)"); Wire.endTransmission(); Serial.print("\nSetup instellingen zijn voltooid.\n"); } void loop(){ // Instelling waar de HMC5883 start met het lezen van data Wire.beginTransmission(adres); Wire.send(0x03); // Data output X MSB Register selecteren via pointer locatie 3 Wire.endTransmission(); // Inlezen van data van de X-, Y-, Z-as (telkens het MSB- en LSB-register) Wire.requestFrom(adres, 6); // alle 6 registers worden vast na elkaar aangesproken if(6<=Wire.available()){ x1 = Wire.receive()<<8; // X MSB : deze 1e byte MSB 8 bits opschuiven om erna de 2e byte LSB aan te plakken x1 |= Wire.receive(); // X LSB z1 = Wire.receive()<<8; // Z MSB z1 |= Wire.receive(); // Z LSB y1 = Wire.receive()<<8; // Y MSB y1 |= Wire.receive();} // Y LSB // Gemiddelde nemen van 5 Z-waarden : delay(70); // Bij ingestelde datarate van 15Hz moet er m.a.w. > 67msec. gewacht worden //vooraleer opnieuw gemeten data kan opgevraagd worden. //--------------------------------------------------------------------------------------------------------------------------------
c
Visualisatie Ondergrondse Parking
Didier Vandeputte
Wire.beginTransmission(adres); Wire.send(0x03); Wire.endTransmission(); Wire.requestFrom(adres, 6); if(6<=Wire.available()){ x2 = Wire.receive()<<8; x2 |= Wire.receive(); z2 = Wire.receive()<<8; z2 |= Wire.receive(); y2 = Wire.receive()<<8; y2 |= Wire.receive();} delay(70); //-------------------------------------------------------------------------------------------------------------------------------Wire.beginTransmission(adres); Wire.send(0x03); Wire.endTransmission(); Wire.requestFrom(adres, 6); if(6<=Wire.available()){ x3 = Wire.receive()<<8; x3 |= Wire.receive(); z3 = Wire.receive()<<8; z3 |= Wire.receive(); y3 = Wire.receive()<<8; y3 |= Wire.receive();} delay(70); //-------------------------------------------------------------------------------------------------------------------------------Wire.beginTransmission(adres); Wire.send(0x03); Wire.endTransmission(); Wire.requestFrom(adres, 6); if(6<=Wire.available()){ x4 = Wire.receive()<<8; x4 |= Wire.receive(); z4 = Wire.receive()<<8; z4 |= Wire.receive(); y4 = Wire.receive()<<8; y4 |= Wire.receive();} delay(70); //-------------------------------------------------------------------------------------------------------------------------------Wire.beginTransmission(adres); Wire.send(0x03); Wire.endTransmission(); Wire.requestFrom(adres, 6); if(6<=Wire.available()){ x5 = Wire.receive()<<8; x5 |= Wire.receive(); z5 = Wire.receive()<<8; z5 |= Wire.receive(); y5 = Wire.receive()<<8; y5 |= Wire.receive();} z_gem = (z1 + z2 + z3 + z4 + z5) / 5; Serial.print("\n\nz_gem: "); Serial.print(z_gem); Serial.print(" (z1: "); Serial.print(z1); Serial.print(", z2: "); Serial.print(z2); Serial.print(", z3: "); Serial.print(z3); Serial.print(", z4: "); Serial.print(z4); Serial.print(", z5: "); Serial.print(z5);Serial.print(")"); delay(70); }
d
Visualisatie Ondergrondse Parking
Didier Vandeputte
2. Configuratiemogelijkheden LEDdrivers bij signalisatie individuele parkeerplaatsmodules
Voorstel A gebruikt het meeste aantal LED drivers van de 4 mogelijkheden maar biedt ook een hogere LEDstroom, duidelijkheid van de LEDs. Eerst werd gekozen voor een stroom van 25mA door de rode en groene RGB LED en 18,75mA door de blauwe, maar gaf een grote stroom tot 1A bij de toestand ‘bezet’. Deze totale stroom werd verminderd tot 0,8A bij 20mA bij rood en groen, 15mA bij blauw. Zelfs nog een groter aantal drivers vb. 8 zorgt voor een heldere duidelijke signalisatie maar het aantal componenten zorgt voor een te dure oplossing met een bijhorende te grote oppervlaktevereiste en de grootste totale stromen van alle voorstellen waardoor deze niet gekozen kan worden. Voorstel B gebruikt 4 drivers i.p.v. 5 bij voorstel A en zorgt voor een lichte daling van de totale uitgangsstromen bij de verschillende toestanden. Dit voorstel gebruikt als enige echter 15 uitgangskanalen (aansturing van 5 RGB LEDs) i.p.v. de volle 24 kanalen (8 RGB LEDs) en wordt voor inefficiëntie niet gekozen. Voorstel C gebruikt net als B een stroom van 17,5mA door de rode en groene RGB LED en 13,14mA door de blauwe met bijhorende totale uitgangsstromen tot 0,7A bij de toestand ‘bezet’ maar door de volledige benuttiging van alle 24 uitgangskanalen per driver, kan dit gerealiseerd worden met slechts 3 drivers. Voorstel D heeft het voordeel dat er het minst aantal LED drivers nodig zijn maar hierbij is de stroom door de LEDs net iets te weinig voor een goede zichtbaarheid. Na een goede afweging van het aantal drivers t.o.v. de totale stroom per toestand en de bijhorende helderheid van de LEDs (visualisatie bij een ondergrondse parking), wordt gekozen voor voorstel C : 3 LED driver IC’s. e
Visualisatie Ondergrondse Parking
Didier Vandeputte
3. Uitwerking testprint sensoren en LEDsturing
f
Visualisatie Ondergrondse Parking
Didier Vandeputte
4. Soortelijke weerstandslijst materialen
Deze lijst is een combinatie van verschillende bronnen om zo gemiddelde, algemene waarde voor iedere stof te verkrijgen. De waarde bij koper wordt gekozen bij een temperatuur van ±15°C. Deze temperatuur geeft een betere benadering bij deze in een ondergrondse parking.
g
Visualisatie Ondergrondse Parking
Didier Vandeputte
5. Foto’s realisatie LEDwall
h
Visualisatie Ondergrondse Parking
Didier Vandeputte
6. Overzicht ASCII-code tabel met toekenning functies Van de 128 mogelijke ASCII-codes worden enerzijds de afdrukbare tekens (95) gebruikt in dit project. Deze geven immers een verhoogde gebruiksvriendelijkheid bij het debuggen van de software op PC t.o.v. een scoop. Tenslotte zijn nog 6 niet-zichtbare ASCII-codes gebruikt voor extra instellingen van de LEDwall. Een overzicht van welke code met welke functie in de RS485 datastream overeenkomt wordt hieronder geplaatst.
i
Visualisatie Ondergrondse Parking
Didier Vandeputte
7. Planning
j