7 IC
De Computer als TV afstandsbediening
-1-
KTA-Gent
GEINTEGREERDE PROEF
DE COMPUTER ALS TV AFSTANDSBEDIENING
Arnoud De Kemel Industriële Computertechnieken Schooljaar 2004-2005 Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
-2-
1. Projectomschrijving 1.1. TV sturen van op een grote afstand en vanaf de PC. De hoofd bedoeling van mijn project is om een TV te sturen van op een grote afstand of met de PC zelf. Om dit te doen moeten we eerst het signaal kennen en dus het signaal van de afstandsbediening ontvangen. Dit doen we door een ontvang interface aan te sluiten aan onze computer via de serie poort. Deze zal het infrarood signaal omzetten naar een reeks pulsen. Deze pulsen ontvangen we dan met de computer en deze zetten we om naar een binaire code. Op deze manier weten we hoe ons signaal er uit ziet. En op deze manier kunnen we dan ook het signaal na gaan maken. Eenmaal we dit signaal na gemaakt hebben, gaan we dit sturen via de serie poort naar een infrarood led. Omdat 1 puls uit een pulsatie bestaat van 36Khz, moeten we ons signaal samenvoegen met het gegenereerd signaal van 36Khz. Wanneer we dit gedaan hebben, zal de infrarood led ons signaal overbrengen naar de TV.
Gebruikte hardware: • • • •
De seriële poort. Infrarood afstandsbediening. TSOP1736 ( ontvangen van het infrarood signaal ) IR-led ( sturen van het infrarood signaal )
Gebruikte software: •
Labview 7.0
2. Hardware 2.1. Blokschema
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
-3-
2.2. Schema’s interface 2.2.1.
Ontvangen
2.2.2.
Sturen
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
-4-
2.3. Werking 2.3.1.
Ontvangen
Om te beginnen moeten we eerst en vooral RTS en DTR hoog zetten. Nu krijgen we daar een 12 volt op. Bij de DTR gaat hij eerst door de diode 1N4148 omdat we dan enkel de positieve stroom doorlaten. Van daar uit gaan we naar een spanningsregelaar. Deze zet onze spanning van 12V om naar een spanning van 5V die we nu verder kunnen gebruiken. Hier over staat een condensator voor de pieken op te vangen. Met de 5V spanning gaan we nu onze TSOP1736 voeden. Deze component zet een infrarood signaal om naar een stroom puls. Hier over zetten we terug een condensator voor de pieken op te vangen. Onze RTS staat ook hoog, maar geschakeld met een weerstand tussen naar de CTS. Dit is een “pull up” weerstand. Deze dient letterlijke voor het signaal omhoog te trekken. Dit is nodig omdat onze TSOP een negatieve puls zou kunnen geven. Zo kunnen we op deze manier de pulsen gaan meten op onze CTS. 2.3.2.
Sturen
Voor het sturen moeten we een constante voeding van 5V op onze led aansluiten. Deze 5 volt halen we van een externe voeding. Deze kunnen we niet halen van onze spanningsregelaar, omdat onze infrarood led teveel stroom trekt. De 5V is nodig op de led omdat deze fel genoeg zou kunnen branden. Hier zit natuurlijk een weerstand tussen om de stroom te beperken zodat de led niet doorbrandt. De min klem van de infrarood led sluiten we aan op de collector van een transistor. De emitter sluiten we aan op de ground. De transistor is nodig omdat we moeten kunnen regelen wanneer de led brandt. Dus deze dient als een stoort schakelaar. Deze zal de stroom door laten en dus de led doen branden wanneer we een positief signaal op de basis geven. Ons signaal is afhankelijk van 2 signalen. Dus we moeten deze eerst samen brengen. En dit doen we door onze 36kHz die we van onze generator krijgen gaan te sluiten op een EN -poort, maar ook het signaal dat we sturen van de computer moeten we op deze EN -poort aansluiten. Nu krijgen we ons signaal van de computer, maar in pulsen van 36kHz. Dit signaal sturen door een NIET –poort naar de basis van onze transistor. De NIET –poort is nodig omdat ons geleverd signaal omgekeerd is dan het te sturen signaal. Eenmaal we het juiste signaal bekomen hebben, sluiten we dit aan op onze basis. De weerstand tussen de niet – poort en de basis is om de stroom te beperken.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
-5-
2.4. Implementatie hardware 2.4.1.
Bedradingschema
Voor de hardware op te stellen hebben we gekozen om dit op 1 bordje te maken. En dan ook 1 serie kabel te gebruiken. Want voor de 2 schakelingen gebruiken we niet dezelfde stuurdraden van de serie poort. Dus is het eenvoudig te combineren. Voor de 36kHz hebben we gekozen om deze te sturen via een frequentiegenerator.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
2.4.2.
De Computer als TV afstandsbediening
-6-
Seriepoort
We gebruiken de serie poort voor het sturen omdat we de 12V gebruiken, en deze sneller werkt dan de parallel poort. We sturen per draad aan, dus we hoeven geen rekening te houden met de baudrate. 2.4.2.1.
Pinning
De seriële poorten offset hex dec 80 128
9-PINS 1 2
naam DCD RXD
25-PINS 8 3
I/O? I I
adres BA+6
bit 7
3 4 5 6 7 8 9
TXD DTR GND DSR RTS CTS RI
2 20 7 6 4 5 22
O O I O I I
BA+3 BA+4
6 0
40 1
64 1
BA+6 BA+4 BA+6 BA+6
5 1 4 6
20 2 10 40
32 2 16 64
FUNCTIE data gedetecteerd ontvang data zend data DTE bedrijfsklaar massa DCE bedrijfsklaar aanvraag om te zenden klaar om te zenden oproepsignaal
basisadressen SERIEEL com1 com2 com3
HEX 3F8 2F8 3E8
DEC 1016 760 1000
com4
2E8
744
2.4.2.2.
Kleuren
DCD RXD
zwart bruin
TXD DTR GND DSR RTS CTS RI
rood oranje geel groen blauw paars grijs
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
2.4.3.
De Computer als TV afstandsbediening
-7-
Componenten
2.4.3.1.
TSOP1736
De TSOP1736 is een geminiaturiseerde ontvanger voor infrarood afstandsbediende systemen. Het gedemoduleerde uitgangssignaal kan direct gedecodeerd worden door een microprocessor. Het grote voordeel is de betrouwbare werking, zelf bij een omgeving waar zich storingen bevinden en de beveiliging tegen ongecontroleerde uitgangspulsen. Afhankelijk van de draagfrequentie van het signaal zijn er verschillende TSOP’s verkrijgbaar: Type TSOP1730 TSOP1736 TSOP1738 TSOP1754
f0 30 kHz 36 kHz 38 kHz 54 kHz
Type TSOP1733 TSOP1737 TSOP1740
f0 33kHz 36,7 kHz 40 kHz
Eigenschappen: • Fotodetector en versterker in 2 behuizing. • Actief lage uitgang. • Verbeterde behuizing tegen verstoring van elektrische velden. • 5V voedingsspanning; laag verbruik. • TTL & CMOS compatibel. • Continu ontvangen mogelijk. • Goede bescherming tegen omringend licht. • Internet frequentie filter. Pinning:
Basisschema:
* Enkel nodig om storingen op de voedingsspanning te onderdrukken. ** Getolereerde voedingsspanning: 14,5V < Vs < 5,5V TSOP in het project. De TSOP wordt in ons project gebruikt om het signaal om te zetten van een afstandsbediening naar een reeks pulsjes die we met de computer kunnen inlezen. Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
2.4.3.2.
-8-
78L05
De L7800 serie is een reeks van positieve regelaars die verkrijgbaar is in verschillende uitgangsspanningen. Dit maakt het mogelijk om te gebruiken bij verschillende toepassingen. Elk type heeft een stoombeperking, een thermische sluiting en een veilig gebied bescherming. Dit maakt de mogelijkheid om het component kapot te maken een heel stuk kleiner. Dit apparaat is gemaakt om een stroom van 1A te kunnen sturen. Maar hiervoor mag de temperatuur niet te hoog zijn. Eigenschappen: • • • •
Uitgangsstroom tot 1,5A Uitgangsspanning van; 5.2; 6; 8; 8.5; 9;12; 15; 18; 24V Thermische bescherming Kortsluit beveiliging
Pinning:
78L05 in het project: De 78L05 wordt in het project gebruikt voor geen externe voeding te moeten gebruiken. Hiervoor moet de spanning van 12V die afkomstig is van de serie poort, herleid worden naar 5V. Hiervoor gebruiken we de 78L05. 2.4.3.3.
1N4148
Dit is een diode die de stroom enkel doorlaat in 1 richting. Eigenschappen: • • •
Een snelle omschakel snelheid. Algemene doelen van de diode. Kleine horizontale bouw.
Pinning:
1N4148 in het project: De stroom enkel doorlaten in de positieve richting. 2.4.4.
Randapparaten
Voor onze opdracht hebben we volgende apparaten gebruikt: • • • • •
Philips TV Philips Afstandsbediening RC5 code 5V Voeding 35Khz generator
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
-9-
2.5. Problemen en oplossingen Voor de software hebben verschillende problemen gehad. Het grootste probleem was de timing. We moeten sturen in microseconden, maar labview zelf stuurt aan een maximum snelheid van 1 milliseconde. Hiervoor hebben we verschillende mogelijkheden uitgeprobeerd. We hebben geprobeerd de tijd in te korten door een meetkaart van labview te gebruiken. Op zich zou dit een mogelijke oplossing zijn. Maar dan zitten we met de timing buiten de kaart. Dan zouden we deze nog moeten inlezen hebben, en dit wil zeggen belasting van de computer wat tot gevolg heeft tot weer een vertraging. En zo zitten we weer met een probleem. Dus hebben naar een ander oplossing gezocht, namelijk het inlezen van een DLL bestand met timers.
3. Software Ons programma is gemaakt in LabVIEW. Hier hebben we vaak gebruik gemaakt van de verschillende loops en local variabelen. Dit om de voorwaarden te selecteren en meerdere keren dezelfde waarde te kunnen gebruiken. 3.1. Front panel
Het front panel bestaat uit verschillende onderdelen. Links zien we 2 stuur knoppen. De bovenste knop is voor het kiezen als we willen sturen via de computer, de 2de knop is om het programma te starten. In het midden zien we de bediening van het op afstand sturen. Hier zullen we zien welke knop er ingedrukt werd, maar hier kunnen we ook instellen als we 1 of 2 cijfers willen sturen. Het rechter deel is voor het sturen vanaf de computer. Hier kunnen we op de knoppen duwen, en zal de TV bediend worden.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
3.1.1.
De Computer als TV afstandsbediening
- 10 -
Signaal analyse
Voor het analyseren van het signaal hebben gebruik gemaakt van een aantal indicators. Deze zijn hier voorgesteld als lampjes, maar ook als cijfers. Het cijfer gedeelte is de ingelezen waarde van een halve puls. De lampjes stellen de volledige pulsen voor. Ofwel is deze hoog, ofwel is deze laag. Wanneer er geen enkel lampje brandt, dan is er een fout opgetreden. Rechts zien we dan nog “uitkomst” staan. Dit is de waarde van de onderste lampjes samengeteld, zodat we een numerieke waarde bekomen.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 11 -
3.2. Blok Diagram 3.2.1.
Overzicht programma
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
Industriële Computertechnieken
De Computer als TV afstandsbediening
- 12 -
Schooljaar 2004 - 2005
7 IC
Industriële Computertechnieken
De Computer als TV afstandsbediening
- 13 -
Schooljaar 2004 - 2005
7 IC
Industriële Computertechnieken
De Computer als TV afstandsbediening
- 14 -
Schooljaar 2004 - 2005
7 IC
Industriële Computertechnieken
De Computer als TV afstandsbediening
- 15 -
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 16 -
Zoals we zien bestaat het programma uit opeenvolgende stappen met veel verschillen herhalingen.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC 3.2.2.
De Computer als TV afstandsbediening
- 17 -
Analyse programma
Wanneer we ons programma bekijken zien we dat we verschillende loops hebben. De eerste loop dat we tegen komen is een while loop. Deze zorgt er voor dat ons programma blijft lopen.
Hierna komen we aan een case structure die bediend wordt door een knop. Deze knop dient voor het starten van de handelingen.
Hierna komen we aan een for loop. Hier moeten we instellen hoeveel keer deze lus moet doorlopen worden. Zo kunnen we kiezen tussen 1 cijfer sturen of 2 cijfers voor het op afstand sturen, of voor het meerdere malen doorlopen van het stuurprogramma.
Als we nu een keuze gemaakt hebben hoeveel keer de lus zal lopen worden, zal ook al de keuze vast staan voor de volgende case structure. Want deze kiest voor het sturen op afstand of voor het sturen van de pc. Bij het sturen van de PC is dit leeg, omdat deze zorgt voor het inlezen van het signaal.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 18 -
In het eerste deel van het ontvangen moeten we onze poort openzetten.
Wanneer we dit gedaan hebben, zetten we de DTR, TRS en de TXD hoog. Hierna zetten we al onze indicatie lampjes op 0. Op dit zelfde moment zetten we ons labview programma in real time.
Wanneer we dit gedaan hebben komen we in een while loop terecht. Deze loop blijft actief zolang de starbit niet juist is.
Deze bestaat terug uit verschillende stappen. De eerste stap is het wachten totdat de data laag komt te staan.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 19 -
Hier lezen we de CTS lijn in en we kijken of deze 0 is. Als dit zo is, dan verlaten we de loop en gaan we verder met onze programma.
De volgende stap is de timer op 0 zetten. Zodat we in de volgende stap kunnen wachten tot de helft van een halve puls. Wanneer dit zo is lezen we in de volgende stap CTS terug in, en bekijken we als de staat goed is. Dit doen we 2 maal, maar de 2de keer wachten we tot er een hele halve puls voorbij is. Zodat we iedere keer meten in de helft van een halve puls.
Wanneer dit gebeurd is, vergelijken we de waarden. Als deze niet voldoen aan de gewenste waarden, zullen we terug gaan controleren als deze aanwezig is. Als de waarden wel overeen komen, dan is de startbit goed, en zullen we doorgaan met het programma.
Wanneer de startbit goed is, gaan we over tot het inlezen van de toggel bit, de adres bits en de data bits. Het inlezen bestaat uit de teller op 0 zetten, te wachten tot een halve puls verstreken is, en dan de waarde inlezen. Dit doen we 24 keer.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 20 -
Nu hebben we de gegevens van elke halve puls. Nu moeten we deze gaan vergelijken als deze allemaal goed gemeten zijn. Dit kunnen we doen door te kijken als elke volledige puls uit 2 verschillende waarden bestaat. Wanneer onze 1ste halve puls 0 is en de 2de halve puls 1 is, aanschouwen we onze bit als 1. Wanneer dit omgekeerd is en we eerst een 0 hebben en dan een 1, aanschouwen we onze bit als 0. Dit doen we voor onze toggel bit, voor ons 5 adres bits en ons 6 data bits.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 21 -
Nu hebben we al onze waarden, en deze moeten we naar onze indicators schrijven. Dit doen we in de volgende stap.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 22 -
We wensen echter ook een numerieke weergave van ons ingelezen signaal. Dit kunnen we doen aan de hand van de optelling van de binaire waarden.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 23 -
Omdat we met enkel een numerieke waarde niet weten welke toets werd ingedrukt, hebben we een duidelijk front paneel gebouwd. Dit in de vorm van de bestaande afstandsbediening. Hiervoor moeten we de numerieke waarde van de toets toekennen aan de indicator van deze toets van ons frontpaneel.
Dit is het deel ontvangen. Vanaf nu gaan we verder naar het deel sturen. Dit is dus van toepassing voor het afstand sturen en voor het sturen vanaf de PC
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 24 -
Als eerste stap gaan we terug de poort openen. Daarna gaan we ons programma in real time zetten.
In de volgende stap gaan we 100 milliseconden wachten omdat het signaal lang genoeg zou blijven. Daarna gaan we onze 2de waarde van onze starbit sturen zodat de ontvanger weet dat het signaal begint.
Nu komt het er op neer dat we de rest van ons signaal sturen. Dit doen we door de timer op 0 te zetten, daarna een halve puls te wachten, en tot slot onze waarde 0 of 1 te schrijven. Dit moeten we doen tot dat we 28 waarden hebben geschreven.
Wanneer we dit gedaan hebben, moeten we enkel nog onze poort terug sluiten.
Maar natuurlijk kunnen we niet zomaar onze waarden kiezen die we naar buiten sturen. Deze moeten juist gekozen zijn om het juiste commando door te sturen. Daarvoor hebben we een case structuur met verschillende mogelijkheden gemaakt. Hier word vooraf de waarden ingesteld.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 25 -
Echter zijn dit niet alle waarden. Want we hebben ook nog vaste waarden voor de startbit.
En we hebben ook nog veranderlijke waarden die we niet op voorhand kunnen programmeren. Deze waarde veranderd iedere keer als er op een knop wordt geduwd. Dit hebben we opgelost door in een case de mogelijke waarden te programmeren, en deze te laten veranderen bij iedere keer dat er een waarde door gezonden wordt. Zowel bij het op afstand sturen als bij het sturen met de computer.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 26 -
Waneer we willen sturen van de pc zelf, moeten we kunnen detecteren wanneer een knop 2 keer wordt ingeduwd. Dit kunnen we met een event structure doen.
3.3. Gebruikershandleiding 3.3.1.
Afstand sturen
Wanneer we van op afstand willen sturen, dan moeten we dit instellen op ons front panel. Dit doen we door linkse keuze schakelaar op Afstand sturen te zetten. Deze knop zal nu blauw zijn. Wanneer dit het geval is, kunnen we op afstand sturen en hoeven we enkel nog op de start knop te duwen. Nu zal ons programma lopen en kunnen we op een knop duwen van onze afstandsbediening. Wanneer we 2 cijfers willen sturen, dan moeten we op de tekst ring op 2 zetten en terug op start duwen. 3.3.2.
Sturen
Voor het sturen vanaf de computer, moeten we onze keuze schakelaar op sturen zetten. Nu duwen we op start, en kunnen we op de knoppen duwen van de rechtse afstandsbediening om de TV te bedienen.
Industriële Computertechnieken
Schooljaar 2004 - 2005
7 IC
De Computer als TV afstandsbediening
- 27 -
4. Besluiten Op het eerste zicht leek het in het begin een eenvoudig te verwezenlijken opdracht. Maar wanneer je het eens van dichter bij bekijkt zie je dat er veel moeilijke stukken inzitten. Voor deze opdracht tot een goed einde te kunnen brengen hebben we veel verschillende methodes moeten uitproberen voor we tot een oplossing kwamen. Ik denk dat we uit deze opdracht zeker kunnen besluiten dat wanneer we met een tijd werken die korter is dan 1seconde, dat het moeilijk wordt om dit precies uit te voeren. Maar ondanks de problemen die we tegen gekomen zijn, hebben we toch ons doel bereikt om de TV te bedienen via de computer.
Bibliografie • •
•
Labview 7.0 Internet o http://www.xs4all.nl/~sbp/knowledge/ir/rc5.htm o http://www.ustr.net/infrared/infrared1.shtml o http://www.lirc.org/receivers.html o http://www.b-kainka.de/basis.htm PORT.DLL
Industriële Computertechnieken
Schooljaar 2004 - 2005