Bartels Jochem
Geïntegreerde proef
Computer gestuurd domotica systeem
7TSO Industriële Computer technieken Schooljaar 2004 – 2005
Jochem Bartels
Computer gestuurd domotica systeem
KTA1 Gent Lindenlei 38 9000 GENT
1
1. Projectomschrijving Mijn geïntegreerde proef omvat het theoretisch bespreken van een zelf ontworpen project, wel bepaald een computer gestuurd domotica systeem (CGDS). Dit omvat het principe kunnen uitleggen, schema’s verklaren, praktisch maken, enz. . Mijn eindwerk bestaat uit twee delen: het praktische realiseren en het schrijven van een programma in het LabVIEW. Aangezien ik in deze opstelling gebruik maak van externe spanningen zoals 230V~, heb ik een volledige scheiding voorzien van mijn computer ten opzichte van deze spanningen. Het CGDS bestaat uit verschillende modules van 8 uitgangen die men d.m.v. een printerkabel kan koppelen aan de computer. De aansturing van deze module gebeurt via twee bussen. Deze twee bussen worden aangestuurd door mijn LabVIEW programma. Het LabVIEW programma wordt op zijn beurt gestuurd door een toetsenbord. CGDS = computer gestuurd domotica systeem
2. Blokschema
1) Het inlezen van mijn toetsenbord in de computer. 2) Het verwerken van de inkomende gegevens door het LabVIEW programma. 3) Het resultaat uitsturen naar mijn interfase. 4) De interfase stuurt externe apparaten zoals lampen, relais en motoren.
Jochem Bartels
Computer gestuurd domotica systeem
2
3. Hardware 3.1.
Schema’s interface
Jochem Bartels
Computer gestuurd domotica systeem
3
3.2. Werking interface 3.2.1
Werking bussen U kunt op de printerpoort 8 modules aansluiten. Deze modules kan men met elkaar verbinden d.m.v. een printerkabel (2x mannelijk). Als u de modules verbindt zal u de bussen doorverbinden. Ik maak gebruik van 2 soorten bussen, de keuzebus en de databus. De keuzebus gebruik ik om een keuze te maken tussen de verschillende modules. Elke module heeft hardwarematig een binaire code meegekregen bijv. de module die ik gemaakt heb heeft als code ”0II” meegekregen (module 0II of M011). Als het register op zijn EN (enable) een 1 (5V) krijgt dan zal deze de databus doorgeven. Maar het register op Module 0II heeft als code I00 gekregen. Onder code verstaan we dat de code die we op de keuzebus doorgeven 100 moet zijn. Voor de OC ingang van het register staat 1 END poort en 1 NIET poort om dit te registreren. De eerste keuzelijn inverteer ik en zet ik samen met de 2 andere keuzelijnen in een END poort. Het register zal alleen maar schakelen als er vanuit de computer een code 0II wordt verstuurd op de pinnen 1,14 en 16. Lijn 1 wordt hardwarematig geïnverteerd. . E = ABC A I 0 0 0
B x 0 x I
C x x 0 I
E 0 0 0 I
De databus bestaat uit 8 datalijnen die ik gebruik om de data naar de registers te brengen. Deze data zegt mijn registers welke uitgangen er van de geactiveerde module moeten inschakelen of moeten uitschakelen. 3.2.2
Registers Het register heeft als doel in mijn opstelling het bufferen en onthouden van de data op de databus. Hij zal de data op de databus pas onthouden en bufferen wanneer de keuzebus overeenstemt met de module. De OC (output enable) is bij mij rechtstreeks aan de massa gekoppeld en wordt zo dus uitgesloten. Als er een hoog signaal op de enable komt te staan en er staat een hoog signaal op de OC dan zal er aan de uitgang niets gebeuren. Als er op de OC en de enable alle twee een laag signaal staan dan zal er ook niets gebeuren. Het register zal pas zijn waarde inlezen als de enable op hoog staat en de OC op laag ( hardware matig).
Jochem Bartels
Computer gestuurd domotica systeem
4
3.2.3
Scheiding De uitgang van het register gaat via een voorschakelweerstand van 470Ω naar een optocoupler of een optotriac. Er is een scheiding tussen de computer en de belasting voorzien. De scheiding moet er voor zorgen dat bij overspanning of stroom de computer niet beschadigd kan worden. De scheiding gebeurt bij gelijkspanning door een optocoupler en bij wisselspanning door een optotriac. Een optocoupler of een optotriac heeft als eigenschap dat de ingang en de uitgang niet met elkaar verbonden zijn, dit zorgt dus voor een elektrische scheiding. OPTOCOUPLER
Jochem Bartels
OPTOTRIAC
Computer gestuurd domotica systeem
5
3.2.4
Aansturen van de belasting
3.2.4.1 Aansturen De uitgang van de optocoupler/optotriac gaat via een voorschakelweerstand van 100 Ω naar een triac of een transistor. Om rechtstreeks de belasting te sturen moeten we een onderscheid maken in wisselspanning en gelijkspanning. 3.2.4.2 Werking op AC De werking op wisselspanning is een stuk moeilijker dan op gelijkspanning. Op wisselspanning moeten we opletten voor de frequentie. Een halfgeleider laat meestal alleen gelijkspanning door. Bij wisselspanning moeten we twee halfgeleiders anti-parallel zetten. Voor de aansturing bij wisselspanning hebben we als scheiding een optotriac nodig. Anders zal de triac geen negatief signaal krijgen op de gate. Als ik hier een optocoupler in de plaats steek zal alleen de positieve helft van een sinus doorgelaten worden.
3.2.4.3 Werking op DC De werking bij gelijkspanning is een gemakkelijker dan als bij wisselspanning. Bij een belasting op gelijkspanning hebben we alleen maar een positieve puls nodig. Als we alleen maar een positieve puls nodig hebben maken we gebruik van een optocoupler. De Triac vervangen we naar een transistor. Men kan de optotriac ook gebruiken maar deze is in prijsklasse veel duurder. Wat we zeker moeten veranderen is de triac naar een transistor. Als we een triac gebruiken bij gelijkspanning zal deze niet meer uitschakelen totdat de spanning uitvalt.
Jochem Bartels
Computer gestuurd domotica systeem
6
3.3. Implementatie hardware 3.3.1 Bedradingschema DC
Labvieuw
Computer
Toetsenbord
LPT
printerkabel
CGDS Interfase Module 3
lampen
Mijn opstelling is opgebouwd uit een toetsenbord, pc, mijn module, voedingsbron en belastingen. Mijn toetsenbord wordt ingelezen in het LabVIEW programma. Als de gegevens verwerkt zijn door het programma worden ze doorgestuurd naar mijn module 3 van de CGDS interfase die een voeding moet hebben. Mijn interfase kan dan verschillende soorten belastingen sturen zoals lampen, een motor, een bel, enz… . U kunt aan mijn module nog een module hangen bv. module 7. Je kunt maximum 8 modules aan de uitgang hangen.
Jochem Bartels
Computer gestuurd domotica systeem
7
3.3.2. Printontwerp:
Jochem Bartels
Computer gestuurd domotica systeem
8
3.3.3. PC-poorten Ik werk alleen met de parallelle printerpoort. Wat wil zeggen dat deze een reeks bitjes tegelijk/parallel kan zenden. Voorlopig gebruik ik deze poort nog in een bidirectionele richting. Als we het over de aansluitingen hebben, hebben we het altijd over de aansluiting op de computer dus niet over de kabel. Hieronder zie je 2 plaatjes die dit duidelijk moeten maken. Het eerste plaatje Fig.1 stelt de aansluiting voor die je achter op de computerkan vinden of op mijn interfase. Plaatje Fig.2 stelt de aansluiting voor die aan de kabel zit die vervolgens weer naar de printer gaat of naar mijn printplaat.
Fig.1
Pin 1
Fig.2
Signaal lijn Strobe
Richting
Uitgangs-bit
Invert
Out
Control-0
Ja
In/Out
Data-0-7
Nee
In
Status-6
Nee
2-9
Data0-7
10
Ack
11
Busy
In
Status-7
Ja
12
Paper-Out
In
Status-5
Nee
13
Select
Nee
14
LineFeed
15
Error
In
Status-4
Out
Control-1
Ja
In
Status-3
Nee Nee
16
Init/Reset
Out
Control-2
17
Select
Out
Control-3
18-25
Jochem Bartels
Ground
-
Computer gestuurd domotica systeem
Ja -
-
9
25-PINS
naam
36-PINS
I/O?
adres
bit
hex
2
D0,,,
2
data
BA
0,,,
1,,,
dec 1,,,
9
,,,D7
9
data
BA
,,,7
,,,80
,,,128
15
Error
32
in
BA + 1
3
8
8
13
Select
13
in
BA + 1
4
10
16
12
PE
12
in
BA + 1
5
20
32
10
ACK
10
in
BA + 1
6
40
64
11
Busy
11
NIET in
BA + 1
7
80
128
1
Strobe
1
NIET I/O
BA+2
0
1
1
14
Auto Feed
14
NIET I/O
BA+2
1
2
2
16
INIT
31
I/O
BA+2
2
4
4
17
SLCT IN
36
NIET I/O
BA+2
3
8
8
18,,,25
GND
19,,,30
basisadressen PARALLEL
HEX
DEC
LPT1
378
888
LPT2
278
632
maximale belasting = 30mA
3.3.4. Randapparaten Als randapparatuur kunnen we aan de uitgang alles schakelen wat werkt op 220V met een stroom minder als 12A en 800V, dit wat wisselspanning betreft. Voor gelijkspanning kunnen we alles schakelen zolang het geen stroom trekt van meer dan 1.5A en 80V.
Jochem Bartels
Computer gestuurd domotica systeem
10
4. Software Voor het software gedeelte gebruiken we een grafische programmataal LabVIEW. 4.1. Front Panel
U kunt mijn frontpaneel opdelen in 2 delen: het inlezen en het uitsturen. Onder het inleesgedeelte valt het keyboard. Als ik op een toets druk zal de toets op mijn frontpaneel oplichten. Elke toets die ik indruk is verbonden aan een numerieke waarde, bijvoorbeeld toets “1” met 77. Zo heeft elke toets op het klavier een nummer meegekregen. Daarom is de toets 1 nummer 77. Deze 77 ga ik verder gebruiken in mijn eindwerk. Bovenaan mijn frontpaneel kan u de module keuze zien. Deze module keuze kan u instellen doormiddel van de toetsen F2, F3 en F4. Rechts aan mijn frontpaneel ziet u welke uitgang wordt gestuurd. Deze uitgang kan u kiezen met de toetsen 1, 2, 3, 4, 5, 6, 7 en 8. De enter toets op mijn frontpaneel dient voor het doorsturen van de datalijnen, dit moest ik doen omdat ik geen 2 verschillende adressen tegelijkertijd kan sturen. Ik kan dit wel kort na elkaar doen.
Jochem Bartels
Computer gestuurd domotica systeem
11
4.2. Block Diagram
Jochem Bartels
Computer gestuurd domotica systeem
12
4.3. Analyse programma
4.3.1
Inlezen toetsenbord
Jochem Bartels
Computer gestuurd domotica systeem
13
Het inlezen van het toetsenbord heb ik uit een example gehaald. Ik heb het deel dat diende voor het inlezen van het toetsenbord uit dit programma gehaald en de rest zoals het inlezen van de muis en de error omgeving gewist. Door enkele proefjes te maken in LabVIEW ben ik tot het besluit gekomen dat de code die binnen komt op de PS/2 poort eerst wordt omgezet naar een numerieke weergaven. De toets “1” wordt numeriek 77. Deze weergave wordt nog eens opgesplitst in het aantal toetsen dat je gelijktijdig kan registreren. U kunt zien dat ik dit array unbundel en hiervan de eerste numerieke lijn doorgeef. Door deze lijn te gebruiken kan ik maar één toets tegelijkertijd inlezen. Als u op een toets drukt op het keyboard gaat er op het paneel een numerieke code verschijnen (bijv. keypad nummer 1 = numeriek 77). Zo weet ik welke numerieke lijn naar welke pin op de printerpoort moet. Dat kan u ook in mijn programma zien, ik vergelijk de numerieke lijn met een zelf gekozen toets.
Jochem Bartels
Computer gestuurd domotica systeem
14
4.3.2
Aansturing van module 011 Het aansturen van de modules gebeurt via de printerpoort d.m.v. keuzebus. Zie verder punt 4.3.4 Aansturing van de keuzebus.
4.3.3
Aansturen van de databus
Voor het doorsturen van de data op de databus heb ik een case gebruikt. Deze case bestaat uit een true en een false. De true gebruik ik om de databus aan te sturen , de false gebruik ik om de keuzebus door te sturen. Het wisselen van de true naar false gebeurt via de enter toets. Dit heb ik moeten doen omdat ik niet adres 387 en 38A tegelijkertijd kan sturen (dit zijn hexadecimale waarden). Wanneer u op een datatoets op je keyboard drukt zal er een datalijn hoog gaan. Deze 8 datalijnen stuur ik uit via de printerpoort met adres 387 hexadecimaal (basis adres). Deze 8 lijnen worden naar mijn module gestuurd d.m.v. de enter toets.
Jochem Bartels
Computer gestuurd domotica systeem
15
4.3.4
Aansturen van de keuzebus
Het aansturen van de keuzebus heb ik gemaakt onder de false van de case. Het sturen van de keuzebus gebeurt via pin 1, 14, 16. Dit alles stuur ik uit op adres 37A hexadecimaal (basis adres +2).
Jochem Bartels
Computer gestuurd domotica systeem
16
4.3.5.
Geheugen (set reset)
Ik heb in mijn programma een set-reset moeten inbouwen, daarom heb ik een soort geheugen module in mijn programma gebouwd. Hij leest eerst de waarde en stuurt deze via een XOR poort naar een register en wordt bijgehouden. Als u nog eens op de drukknop drukt zal hij met de XOR poort deze 2 waarden vergelijken en het omgekeerde sturen. Zo krijgt u een set- reset. Ik heb er ook een vertraging moeten tussen zetten omdat mijn PS/2 poort sneller is dan mijn vingers. Het signaal komt zoveel keer per seconde binnen dat ik dat signaal heb moeten vertragen.
Jochem Bartels
Computer gestuurd domotica systeem
17
4.3.6.
Module
De aansturing van de keuzebus gebeurt in een vorig hoofdstukje maar om dit visueel duidelijk te maken heb ik een klein stukje programma toegevoegd. Als module 1 gestuurd wordt zal ook het lampje van module 1 branden.
Jochem Bartels
Computer gestuurd domotica systeem
18
5. Gebruikershandleiding 1) Sluit de module aan op de computer via de printerpoort. Dit kan je doen door middel van een printerkabel (2x mannelijk) 2) Open het LabVIEW programma en maximaliseer dit over je scherm. 3) Druk op run in de werkbalk
4) Vervolgens krijgt u dit scherm
Jochem Bartels
Computer gestuurd domotica systeem
19
5) Kies de module waarop u wilt werken (module 3). Dit doet u via het keyboard met de toetsen F2, F3 en F4. De F4 toets verandert de waarde met 1. De F3 toets verandert de waarde met 2 en de F2 toets verandert de waarde met 4.
6) Kies de uitgangen waarop u wilt werken. Dit doet u via het keyboard met de toetsen 1, 2, 3, 4, 5, 6, 7 en 8. Elke toets staat voor zijn uitgang, toets 1 staat voor uitgang 1.
Jochem Bartels
Computer gestuurd domotica systeem
20
7) Stuur nu alles door naar de module d.m.v. de enter toets.
6. Testen en resultaten De grootste testen: 1) In het begin ben ik begonnen met het opstellen van dit eindwerk. Het gebruik van de bussen had ik redelijk snel gevonden. Net zoals de aansturing en de scheiding. Iets waar ik wat langer heb op gezocht is het bufferen en het onthouden van de gegevens. Eerst heb ik dit met een demultiplexer willen doen maar al snel kwam ik erachter dat dit niet ging lukken. Het probleem hierbij was dat ik maar 1 uitgang tegelijkertijd kon sturen. Wou ik een andere uitgang sturen moest ik eerst de andere uitschakelen. 2) Bij het testen op wisselspanning heb ik lang gewerkt op de positieve puls van de wisselstroom. Dit totdat ik een optrotriac had gevonden. Bij het testen op de volledige wisselspanning heb ik een printerpoort opgeblazen, er was een groot massa probleem. Dit probleem was voorgekomen omdat ik niet de juiste massa gebruikte voor de juiste toepassing. Bij de negatieve puls van de wisselspanning is er 220V over mijn printerpoort komen te staan. 3) Bij het testen van de verschillende voorstellingen maakte ik gebruik van de COM poort. Deze COM-poort gebruikte ik voor mijn toetenbord in te lezen. Ik heb hier proeven op gedaan om dit in te lezen. Er was echter 1 probleem, het toetsenbord was te snel. LabVIEW kon deze gegevens niet volgen. Ik had hier 2 keuzes: ofwel proberen te vertragen ofwel er proberen voor te zorgen dat LabVIEW mijn bestaand toetsenbord op de PS/2 poort kon inlezen. Toen ben ik opzoek gegaan en heb in de voorbeelden van LabVIEW zoiets gevonden. Het bestond wel uit verschillende dingen zoals het inlezen van de muis, toetsenbord, joystick. Ik heb het programma voor het toetenbord hier kunnen uithalen. Ik heb op het scoopbeeld kunnen aflezen dat de frequentie van mijn toetsenbord zo’n 800 Hz is. Resultaten: 1) Mijn eindwerk is voor mij voor 99% geslaagd. Er is 1 probleem waar ik te weinig tijd voor had om dit op te lossen. Het probleem zit namelijk in de uitvoering. Er moeten minsten altijd 2 uitgangen actief zijn voor een correcte werking. olgens mijn voorlopige vaststelling is mijn programma en mijn printplaat perfect in orde. De fout zou ergens rond de register liggen. 2) Als u mijn printplaat soldeert zal u nog de uitgang van de END poort en de enable moeten verbinden d.m.v. een brug.
Jochem Bartels
Computer gestuurd domotica systeem
21
7. Besluiten Zoals ik reeds hiervoor gezegd heb is het goed gelukt. Dit wil natuurlijk niet zeggen dat u op mijn bussysteem geen andere modules kan schakelen. Eén van de mogelijke modules die er op kunnen volgen zijn inlees modules, waar je drukknoppen of ander schakelapparatuur op kan bevestigen.
8. Bibliografie -
Internet Multisim Ultiboard LabVIEW Microsoft office Microsoft office Visio Andere Windows programma’s
Jochem Bartels
Computer gestuurd domotica systeem
22