VTI Sint-Laurentius De school voor Wetenschap, Techniek en Technologie Pr. Thuysbaertlaan 1 9160 Lokeren www.vti-lokeren.be
[email protected]
GEÏNTEGREERDE PROEF Automatische schuifdeur
Industriële informatie & communicatietechnologie SCHOOLJAAR 2010-2011 Coppieters Glenn
VTI Sint-Laurentius De school voor Wetenschap, Techniek en Technologie Pr. Thuysbaertlaan 1 9160 Lokeren www.vti-lokeren.be
[email protected]
GEÏNTEGREERDE PROEF Automatische schuifdeur
Industriële informatie & communicatietechnologie SCHOOLJAAR 2010-2011 Coppieters Glenn
Pagina 4 van 36
Inhoudsopgave 1.
Inleiding ........................................................................................... 6 1.1.
Voorwoord ................................................................................... 6
1.2.
Omschrijving ............................................................................... 7
1.3.
Programma.................................................................................. 7
1.3.1.
Assembler .............................................................................. 7
1.3.2.
C# ........................................................................................ 7
1.4.
Website ....................................................................................... 8
1.5.
Blokschema ................................................................................. 8
2.
Hardware .......................................................................................... 9 2.1.
Elektrisch schema ......................................................................... 9
2.2.
Ultrasone sensor ........................................................................ 10
2.2.1.
Algemene informatie over ultrasoon ........................................ 10
2.2.2.
PING)))™ Ultrasonic Distance Sensor ...................................... 10
2.2.3.
Werkingsprincipe ultrasoon .................................................... 11
2.2.4.
Schakeling & meting ............................................................. 11
2.3.
Opamp ...................................................................................... 13
2.3.1.
Ideale opamp ....................................................................... 13
2.3.2.
Reële opamp ........................................................................ 13
2.3.3.
Niet-inverterende versterker .................................................. 13
2.4.
H-brug ...................................................................................... 14
2.4.1.
Algemene informatie over een H-brug ..................................... 14
2.4.2.
Schema H-brug .................................................................... 14
2.5.
Microcontroller: PIC16F877 .......................................................... 16
2.5.1.
Algemeen ............................................................................ 16
2.5.2.
Pin Assignment ..................................................................... 16
3.
Programma ..................................................................................... 17 3.1. 3.1.1.
Hoofdprogramma .................................................................. 17
3.1.2.
ISR (Interrupt Service Routine) .............................................. 19
3.2. 4.
Assembler ................................................................................. 17
C#............................................................................................ 25 Logboek.......................................................................................... 28
Juni................................................................................................... 28
Pagina 5 van 36 Mei ................................................................................................... 28 April .................................................................................................. 28 Maart ................................................................................................ 28 Februari............................................................................................. 28 Januari .............................................................................................. 29 December .......................................................................................... 29 November .......................................................................................... 29 5.
Bronnen.......................................................................................... 30
6.
Datasheet ....................................................................................... 31
Pagina 6 van 36
1. Inleiding 1.1.
Voorwoord
In de afgelopen twee jaar I²CT op het VTI te Lokeren heb ik heel wat geleerd. Eerst en vooral wil ik mijn medeleerlingen bedanken voor de steun en de hulp. In mijn voorbije jaren op het VTI heb ik geleerd dat wanneer je iets wilt bereiken je ervoor moet gaan en niet stoppen wanneer je vast zit. Ik zou graag de heer Jan Baeyens, de heer Luc Hoof en de heer Wim Baert willen bedanken voor hun hulp bij deze GIP en hun raad. Ik heb enorm veel bijgeleerd door bezig te zijn met mijn GIP. Glenn Coppieters
Pagina 7 van 36
1.2.
Omschrijving
Wanneer er een persoon dicht genoeg bij de ultrasone sensor komt, zal de deur automatisch open gaan. De ultrasone sensor is bovenop de deur gemonteerd. Deze sensor zendt ultrasone golven uit, door middel van weerkaatsing kan je de afstand meten. De deur wordt bestuurd door een motor, deze motor wordt aangestuurd met een PIC16F877 microcontroller en een schakeling met een Hbrug. De microcontroller zal meten of de afstand tussen de persoon en de ultrasoon sensor dicht genoeg is om de deur open te laten gaan. Alle communicatie wordt gedaan via RS232/USB en is verbonden met de PC en met een microcontroller. Er zal ook een GUI beschikbaar zijn waaraan u kunt zien of de deur momenteel open of gesloten is.
1.3.
Programma
1.3.1.
Assembler
Het programma dat gemaakt is zorgt ervoor da de ultrasone sensor voorwerpen/personen detecteert, daarna wordt er een signaal naar de computer gestuurd om de deur al dan niet open te laten gaan. Alle communicatie wordt gedaan via USB/RS232.
1.3.2.
C#
De status van de deur wordt weergeven op het scherm, en er wordt ook weergeven hoeveel personen er door de deur zijn gegaan. De afstand die de ultrasone sensor meet wordt weergeven in een venster.
Pagina 8 van 36
1.4.
Website
Fig. Website, klik op de afbeelding voor de website te openen http://users.telenet.be/coppietersglenn
1.5.
Blokschema
Fig. Blokschema
Pagina 9 van 36
2. Hardware 2.1.
Elektrisch schema
Pagina 10 van 36
2.2.
Ultrasone sensor
2.2.1.
Algemene informatie over ultrasoon
Ultrageluid, ultrasoon geluid en ultrasone trillingen betreft geluid waarvan de frequentie te hoog is om gehoord te worden door het menselijk oor. Het ultrasone geluidsgebied begint vanaf ongeveer 18 kilohertz en loopt tot 800 megahertz (MHz). Ultrasone trillingen worden meestal opgewekt door omzetting van elektrische- of magnetische energie in mechanische energie, maar kunnen ook bij vlammen of in fluitjes ontstaan.
2.2.2.
PING)))™ Ultrasonic Distance Sensor
Deze ultrasoon sensor PING))) is van parallax en is zeer makkelijk te verbinden met de microcontroller omdat het maar één I/O pin heeft. Wanneer de sensor actief is zal de “burst indicator LED” (LED boven ACT) aangaan voor een zéér korte tijd. De spanning die aangelegd moet worden is 5V (gelijkstroom) en de stroom mag maar maximum 35mA (30m A gewoon) zijn.
Pin lay-out GND
Ground (Vss)
5V
5 VDC (Vdd)
SIG
Signaal (I/O pin)
Pagina 11 van 36
2.2.3.
Werkingsprincipe ultrasoon
De ultrasone sensor zendt cyclusgewijs een korte, hoogfrequente geluidsimpuls uit. Deze impuls plant zich met de geluidssnelheid voort door de lucht. Zodra de impuls op een object stoot wordt hij teruggekaatst om als echo opnieuw de ultrasone sensor te bereiken. Op basis van het tijdsinterval tussen het uitzenden van de geluidsimpuls en het ontvangen van het echosignaal kan de afstand tot het object berekend worden. Geluidsnelheid is de snelheid waarmee geluidstrillingen of geluidsgolven zich voortplanten. Voor lucht bij kamertemperatuur (20 °C) is de geluidssnelheid ca. 343 meter per seconde. Een echo is een verschijnsel waarbij geluidsgolven die afkomstig zijn van een bron door een object teruggekaatst worden richting de bron.
2.2.4. MPLAB meting
Schakeling & meting
Pagina 12 van 36
TMR1-module Voor het tellen van het tijdsinterval tussen het zenden en het ontvanger wordt er gebruik gemaakt van TMR1 (16-bits teller, zie fig.1.1) deze teller bevat twee 8bit registers (TMR1H en TMR1L) waarnaar je kunt schrijven en waarvan je kunt lezen. Om TMR1 te activeren moet je in het T1CON register bit0 (TMRON) enabelen, de teller begint nu elke klokcyclus te tellen. Als je gedaan hebt met tellen moet je TMR1 stoppen door bit0 uit te zetten. De waarde die TMR1 heeft komt in TMR1H en TMR1L terecht. formule: s = v x t t: waarde van teller x 0.0000002 v: 343 m/s (geluidssnelheid bij 20°C). s: afstand in meter (m) wanneer de afstand berekend is moet je deze nog delen door 2.
Fig. 1.1: TMR1 Watch
Fig. Ultrasone sensor met opamp
Pagina 13 van 36
2.3.
Opamp
2.3.1.
Ideale opamp
Een ideale operationele versterker heeft:
Een oneindig grote openlusversterking Ao Een oneindig hoge ingangsimpedantie Een uitgangsimpedantie gelijk aan 0, kan dus oneindig veel stroom leveren
2.3.2.
Reële opamp
In de praktijk zijn de eigenschappen minder dan ideaal:
Versterkingsfactor circa 105 en hoger, Ingangsimpedantie ter grootte van mega-ohms Ingangsstroom mag verwaarloosd worden
2.3.3.
Niet-inverterende versterker
Eigenschappen
Versterking: A = 1 + (R2 / R1) Ingangsimpedantie: zeer hoog Uitgangsimpedantie: laag
Werking: De weerstanden R2 en R1 vormen samen een spanningsdeler die ervoor zorgt dat op de inverterende ingang dezelfde spanning komt te staan als op de niet-inverterende ingang.
In mijn schakeling maak ik gebruik van het IC LM324N, hiervan gebruik ik alleen opamp(1). De opamp is geplaatst als een niet-inverterende versterker.
Pagina 14 van 36
2.4.
H-brug
2.4.1.
Algemene informatie over een H-brug
Een H-brug is een elektrische schakeling die toelaat om de polariteit te verwisselen. De polariteit wordt bepaald door de stand van vier transistors. Een H-brug maakt het bijvoorbeeld mogelijk om een gelijkstroommotor in beide richtingen te laten draaien.
Parameter
Waarde
Voedingsspanning (Vss)
5V
Stroom
24 mA
2.4.2.
Schema H-brug
Op de volgende pagina staan twee voorbeelden hoe je een motor naar links kunt laten draaien of hoe je een motor naar rechts kunt laten draaien.
Pagina 15 van 36
0 1 1
1 0 1
Pagina 16 van 36
2.5.
Microcontroller: PIC16F877
2.5.1.
Algemeen
De PIC16F877 microcontroller is een 40-pins controller geproduceerd door Microchip. Hij kan geprogrammeerd worden door gebruik te maken van de bijgeleverde software: MPLAB IDE. De gebruikte programmeertaal is assembler. De 16F877 is een RISC-controller: Reduced Instruction Set Computer. Dit wil zeggen dat de controller beschikt over een kleine set („Reduced‟) simpele basisinstructies. Om complexe opdrachten uit te voeren, moeten verschillende simpele instructies gecombineerd worden. De controller werkt aan een externe klok van 20 MHz (intern 5 MHz). De PIC beschikt over een USART („Universal Synchronous Asynchronous Receiver Transmitter‟) en kan dus via RS232 communiceren. De PIC is het centrale onderdeel van de sturing. Hier komen signalen binnen (digitaal of analoog), en gaan andere signalen weer naar buiten.
2.5.2. PORTB RB0 RB1 RB2 RB3 RB4 RB5
Pin Assignment Verbonden met… SIG pin van ultrasoon sensor SIG pin van ultrasoon sensor Pin 2 H-brug Pin 3 H-brug Rode lamp Groene lamp
Pagina 17 van 36
3. Programma 3.1.
Assembler
3.1.1.
Hoofdprogramma
Pagina 18 van 36 Hierin worden alle subroutines aangeroepen, zoals configuratie van inputs en outputs, configuratie van interrupts, RS232 initialisatie. In de loop wordt er een puls van 5µs verzonden en wordt er naar ISR gesprongen wanneer er een stijgende flank ontvangen wordt.
Pagina 19 van 36
3.1.2.
ISR (Interrupt Service Routine)
De timer wordt gestart wanneer er een stijgende flank ontvangen is. Wanneer deze flank terug laag wordt, wordt het tellen gestopt. Daarna wordt de inhoud van de timers (TMR1H en TMR1L) verzonden via RS232.
Pagina 20 van 36
RB1 wordt voor 5µs hoog gezet en daarna terug laag.
Pagina 21 van 36
Wordt er een „O‟ ontvangen van de PC dan zal de deur open gaan voor 3 seconden en zal de groene lamp branden. Als de deur al open was blijft de deur verder open voor 1 seconden en wordt er opnieuw gemeten. Wordt er geen „O‟ ontvangen van de PC dan zal de deur dicht gaan. Als de deur al dicht was wordt er om de 200ms gemeten naar nieuwe waarden. (zie volgende code)
Pagina 22 van 36
Pagina 23 van 36
IOconfig: RB0 wordt ingesteld als input al de rest staat als output. RA0 staat als output (LED op microcontroller). InitRS232: Instellen van RS232. De baudrate wordt ingesteld. Alsook de instellingen voor verzenden en ontvangen en het instellen van de RX-interrupt staan in dit bestand.
Pagina 24 van 36
Instellen van interrupt op stijgende flank bij RB0 en enable globale interrupts.
Pagina 25 van 36
3.2.
C#
Pagina 26 van 36
Pagina 27 van 36
Pagina 28 van 36
4. Logboek Juni 2011/06/15: Webdesign examen, aanpassen website + afwerken dossier
Mei 2011/05/13: Website aanpassen: invoegen van film over mijn GIP 2011/05/06: Alle componenten op plank zetten en GIP afwerken 2011/05/04: H-brug in werking stellen samen met de motor en microcontroller
April 2011/04/16: H-brug bestellen + Dossier bijwerken 2011/04/01: C#: weergeven van afstand in meter
Maart 2011/03/02: Gebruik maken van TMR1-Module (16-bits teller) 2011/03/02: Aanpassen van website 2011/03/29: C#: ASCII naar integer
Februari 2011/02/11: Ultrasone sensor: testen van schakeling en assembler 2011/02/16: Schrijven van programma voor ultrasone sensor assembler 2011/02/18: Probleem oplossen: teller overflow 8-bit teller, oplossing: 16-bit teller gebruiken
Pagina 29 van 36
Januari 2011/01/02: Website updaten 2011/01/03: Gebruik maken van CD-Drive als deur en motor 2011/01/05: Elektrisch schema opstellen: H-brug, opamp en ultrasoon sensor 2011/01/16: Dossier GIP bijwerken 2011/01/27: Infrarood sensor testen
December 2010/12/03: Informatie website aanpassen 2010/12/09: Begin examenperiode 2010/12/24: Einde examenperiode
November 2010/11/07: Eerst voorstel indienen van GIP 2010/11/16: Research ultrasoon sensor 2010/11/30: Schets maken van mijn schuifdeur
Pagina 30 van 36
5. Bronnen Het ultrasone werkingsprincipe http://www.microsonic.de/nl/Interesting-facts.htm Ultrasoon geluid http://nl.wikipedia.org/wiki/Ultrageluid H-brug schakeling http://nl.wikipedia.org/wiki/H-brug_(elektronica) Microchip http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf
Pagina 31 van 36
6. Datasheet
Pagina 32 van 36
Pagina 33 van 36
Pagina 34 van 36
Pagina 35 van 36
Pagina 36 van 36