Algemeen
Een groot deel van het project bestond erin de bestaande assembler
en Visual Basic programma’s aan te passen zodat ook met
grondsensoren gewerkt kan worden en ook het aantal IR en US sensoren
gemakkelijk opgevoerd kan worden. De assembler-code
voor de Master moet ervoor zorgen dat op het juiste moment de
metingen door de sensormodules uitgevoerd worden en dat de overdracht
van de gegevens naar de PC zonder problemen verloopt (flowshart
Master). De assembler-code voor de
Slaves heeft onder meer als functie de analoge signalen naar digitale
signalen om te zetten en de, door de master gevraagde, signalen
door te sturen (flow shart Slave).
Het Visual basic programma heeft als functie
de gebruiker gemakkelijk te laten communiceren met de sensoren
en het mogelijk te maken het programma eenvoudig te bedienen.
Alvorens het programma van vorig jaar te bestuderen, werd een
algemene inleiding tot Visual Basic gelezen (dit was nodig vermits
geen van ons drie reeds met dat programma gewerkt had). Vervolgens
werd het bestaande programma bekeken en aangepast aan de nieuwe
noden. Een nadeel dat hierbij ondervonden werd is het feit dat
er op onze computer geen visual basic aanwezig was en er telkens
tussen gebouw K en gebouw Z gependeld moest worden. Bovendien
was op geen enkele computer de help functie van Visual Basic ter
beschikking.
Terug naar boven
Master
Flowchart
Main program
Interrupt
Module 1 and Groundmodule
Code
Terug naar boven
Slave with US
Flowchart
Mainloop
SSP Interrupt
TMR Interrupt
Code
Terug naar boven
Slave with Groundsensors
Flowchart
Mainloop
Interrupt
Code
Terug naar boven
Visual Basic
De code die in Visual Basic geschreven werd, heeft als hoofddoel
het omzetten van de signalen die afkomstig zijn van de slaves
naar afstanden.
Per meting van een sensor worden er twee signalen doorgestuurd.
Van het eerste signaal worden de drie less significant bits behouden
door het inkomende signaal samen met het getal zeven (in binaire
waarde) door een AND poort te sturen. Van het tweede signaal worden
de zeven less significant bits overgehouden door het samen met
het getal 127 door een AND poort te sturen. Het eerste signal
wordt dan vermenigvuldigd met 128 en bij het tweede opgeteld.
Door deze bewerkingen te doen, wordt het oorspronkelijk signaal
van maximum 10 bits gereconstrueerd.
De bekomen gegevens worden reeds in de interface weergegeven,
maar moeten ook nog naar een afstand omgezet worden.
Voor de US sensoren is dit eenvoudig vermits het verband tussen
het signaal en de afstand tot het gedetecteerde voorwerp gegeven
wordt door de formule:
Afstand = TOF*c/2
Wat betreft de IR sensoren is de situaltie complexer. Om het
verband tussen het signaal en de afstand te vinden, werd experimenteel
voor verschillende afstanden de output opgemeten. Voor deze punten
werd het verband tussen output en afstand als lineair benaderd.
Dit kan in de code waargenomen worden.
Voor de grondsensoren dient er een waarde ingegeven te worden
die ervoor zorgt dat op de interface de tekst white verschijnt
indien de output van de grondsensor groter is dan die waarde en
er black weergegeven wordt indien de output kleiner is.
De rest van de code dient om de signalen afkomstig van de slaves
op te roepen, de resultaten in een file weg te schrijven en de
bediening van de verschillende knoppen die op de interfase aanwezig
zijn te regelen. De uitleg daarvan is als commentaar weergegeven
in de code.
Program
Code
Terug naar boven