Post on 20-Aug-2020
1
24/4/2009
Lessius – De Nayer Instituut | Dries Hulens
COÖRDINATOR: WIM DAMS
CANSAT DRIES HULENS
2
3
Inhoud Inleiding ................................................................................................................................................... 5
Sensoren .................................................................................................................................................. 6
GPS – Module ...................................................................................................................................... 6
NMEA ............................................................................................................................................... 7
Vochtsensor ....................................................................................................................................... 10
Code ............................................................................................................................................... 11
Acceleratiesensor .............................................................................................................................. 12
Code ............................................................................................................................................... 14
Temperatuur sensor .......................................................................................................................... 16
I²C temperatuur sensor ................................................................................................................. 16
Code ............................................................................................................................................... 17
Analoge temperatuur sensor ........................................................................................................ 18
Code ............................................................................................................................................... 18
Zender – Ontvanger ............................................................................................................................... 20
Antenne ............................................................................................................................................. 20
Voeding .................................................................................................................................................. 22
5V voeding ......................................................................................................................................... 22
3,3 Volt voeding ................................................................................................................................. 23
Labview .................................................................................................................................................. 24
Parachute .............................................................................................................................................. 27
Foto parachute .................................................................................................................................. 28
CanSat ................................................................................................................................................ 28
PCB’s ...................................................................................................................................................... 29
Sensor print ....................................................................................................................................... 29
ADuC Print ......................................................................................................................................... 29
GPS print ............................................................................................................................................ 30
5V voeding print ................................................................................................................................ 30
3V voeding print ................................................................................................................................ 31
Acceleratie sensor print .................................................................................................................... 31
Temperatuur sensor print ................................................................................................................. 31
Bronnen ................................................................................................................................................. 32
Blokschema’s ......................................................................................................................................... 33
Code ....................................................................................................................................................... 35
4
5
Inleiding Een CanSat is een kleine satelliet ter grootte van een blikje Cola. Dit blikje wordt door een raket of
luchtballon tot een hoogte van 1 km gebracht, hierna wordt de CanSat los gelaten en valt hij naar
beneden. Aan de CanSat is een parachute bevestigt zodat hij niet neerstort. Dit blikje moet een
aantal sensoren bevatten om metingen te doen tijdens de val. Één maal per jaar wordt er een
wedstrijd georganiseerd door de Universiteit in Delft. Diegene met de meest indrukwekkende Cansat
wint de wedstrijd.
Ik heb deze Cansat niet gemaakt om mee te doen aan deze wedstrijd maar omdat ik dit semester
met verschillende sensoren wilde leren werken. Hierom heb ik de Cansat uitgerust met een GPS,
vochtsensor, acceleratiesensor en 3 temperatuursensoren. Hiernaast wilde ik ook leren werken met
I²C, hierom heb ik temperatuursensoren gebruikt die werken met I²C. Doordat ik nu een I²C bus op de
Cansat heb kan ik hem uitbreiden met zoveel sensoren als ik zelf wil.
Door deze CanSat te maken heb ik veel bijgeleerd over de verschillende sensoren en de manier
waarop ze werken. Ik heb ook een aantal schakelingen ontworpen waardoor ik bepaalde sensoren
beter kon uitlezen. Door het vele oefenen op het maken van printplaten heb ik dit nu ook goed onder
de knie.
In de uiteenzetting van dit werk ga ik stuk voor stuk uitleggen hoe ik mijn CanSat ontworpen heb.
Tevens zal ik ook alle gebruikte sensoren toelichten.
6
Sensoren
GPS – Module Om de CanSat terug te vinden na de val uit de parachute heb ik gebruik gemaakt van een GPS-
module. Deze gps-module komt uit een palmtop. Aan de GPS module hing een connector die ik heb
verwijderd. Deze connetor had 4 aansluitingen: rood, zwart, groen en grijs. De rode en zwarte
aansluiting waren logischerwijs voor de voeding bedoeld. Door het signaal te meten op de groene en
grijze aansluiting kwam ik tot de conclusie dat de groene aansluiting de output was en de grijze
aansluiting de input van de satelliet. Hierna heb ik de GPS op volgende manier aangesloten:
De RS232 connector heb ik aangesloten op mijn palmtop en uitgelezen met Hyperterminal. Ik kon
volgende informatie lezen:
7
NMEA
Via wikipedia heb ik gevonden wat voor informatie een GPS ontvangt. Het gebruikte protocol bij GPS
systemen is NMEA, dit werd oorspronkelijk gebruikt aan boord van schepen om gegevens te laten
uitwisselen. Dit protocol is geschikt om via seriële verbindingen informatie te versturen. Volgens het
officiële protocol gaat dit met 4800 baud.
Het precieze protocol is beschermd materiaal en kan via het National Marine Electronics Association
(NMEA) tegen betaling verkregen worden. Er zijn talloze beschrijvingen van sentences te vinden op
het Internet.
Het protocol bestaat uit losse berichtjes (sentences) waarin bepaalde gegevens gegroepeerd zijn. De
sentences bestaan in principe alleen uit leesbare ASCII characters en de 'Carriage Return' en
'Linefeed' characters. Een sentence kan maximaal 82 tekens lang zijn, inclusief de $ en de CR/LF.
Er zijn vele tientallen verschillende NMEA-sentences mogelijk en nog veel meer als je de fabrikant-
eigen uitbreidingen meeneemt (beginnen met een $P). Niet alle NMEA-sentences zijn echter altijd
even nuttig en worden daarom ook niet standaard weergegeven. (NMEA-sentences zijn vaak wel
aan- of uit te zetten). Op het einde van een NMEA-sentence word een checksum meegezonden om
de ontvangen data te controleren.
Dit zijn de meest voorkomende:
* $GPRMC Recommended minimum specific GNSS data
De meest nuttige informatie in 1 NMEA-sentence. Hierin staan de coördinaten, tijd, datum,
grondsnelheid en -richting en of de data "Valid" is.
* $GPGGA Global positioning system fixed data
Hierin staat onder andere de tijd, de breedte- en lengtegraad, Noord/Zuid, Oost/West, de hoogte,
aantal satellieten, HDOP en of er een "fix" is en zo ja of dat een 2D of 3D-fix is.
* $GPGLL Geographic position - latitude / longitude
Een vrij korte NMEA-sentence met de coördinaten en de tijd.
* $GPGSA GNSS DOP and active satellites
Informatie over de gebruikte satellieten, diverse DOP-waardes en of er een "fix" is.
* $GPGSV GNSS satellites in view
Gedetailleerde informatie over de satellieten die in beeld zijn. Dit kan zelfs verdeeld zijn over
maximaal 3 NMEA-sentences.
* $GPVTG Course over ground and ground speed
Deze (vaak korte) NMEA-sentence geeft aan wat de koers en snelheid (in knopen en/of km/u) is.
8
Ik ga maar 1 zin uit de informatie gebruiken, de GPGGA zin. Hieruit zal ik de Noord en Oost-lengte
uithalen en de hoogte. Om deze zin uit het hele pakket te filteren heb ik een kleine routine gemaakt
die controleert of de eerste letters van de zin ’GPGGA’ zijn. Hierna heb ik een routine gemaakt waar
je als argument een getal meegeeft. Dit getal is het aantal komma’s dat je wil negeren. Hierna zal hij
de waarde na de laatste komma afprinten. Zo heb ik de juiste waardes uit de string gehaald. In de
volgende zin kan je zien dat de verschillende waardes door komma’s gescheiden zijn.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4 ,M,46.9,M,,*47
Hieronder zie je de betekenis van elke waarde. GGA Global Positioning System Fix Data 123519 Fix gemaakt op 12:35:19 UTC 4807.038,N Latitude 48 deg 07.038' N 01131.000,E Longitude 11 deg 31.000' E 1 Fix quality: 0 = invalid 1 = GPS fix (SPS) 2 = DGPS fix 3 = PPS fix 4 = Real Time Kinematic 5 = Float RTK 6 = estimated (dead re ckoning) (2.3 feature) 7 = Manual input mode 8 = Simulation mode 08 Number of satellites being tracked 0.9 Horizontal dilution of position 545.4,M Altitude, Meters, above mean sea level 46.9,M Height of geoid (mean sea level) above WGS84 ellipsoid empty field) time in seconds since last DGPS update (empty field) DGPS station ID number *47 the checksum data, always begins with * Om mijn geschreven code te testen laat ik de GPS coördinaten op het display weergeven.
9
De data die de GPS uitstuurt is een RS232 signaal met spanningsniveaus tussen plus en min 3 tot 15 volt. Omdat ik een aparte pcb heb gemaakt voor de controller moest ik de spanningsniveaus beperken tot 0 en 5 volt. Omdat ik het gebruik van een MAX232 wat overkill vond (omdat ik in eerste instantie maar in 1 richting wou omzetten) heb ik een schakeling ontworpen die juist hetzelfde doet als een MAX232.
Op het schema kan je zien dat het
signaal via een transistor word
teruggebracht tot 0 en 5 volt. De diode
staat er voor de flanken van de data
stijl te laten verlopen. De data moet in
de code wel geïnverteerd worden.
Na nader inzien heb ik toch een
MAX232 moeten gebruiken omdat ik
ook ging zenden met de seriële poort.
Ik heb dit schema wel getest en heb de
volgende meting gedaan.
Hierop kan je zien dat de flanken stijl genoeg zijn en dat de spanningsniveaus nu 0 en 5 volt
bedragen.
10
Vochtsensor Om de vochtigheid van de lucht te meten heb ik een vochtigheidssensor van Vishay kunnen samplen,
met name de ‘HUMIDITY-SENS-E’. Deze sensor veranderd zijn capaciteit naarmate de vochtigheid
veranderd. De sensor kan een luchtvochtigheid meten tussen 10 en 90%, hierbij veranderd zijn
capaciteit met 0,4pF per 1%. De sensor bestaat uit een plaatje isolatie met langs beide kanten een
laagje goud. De diëlektrische constante van de isolatie veranderd naarmate de vochtigheid van de
lucht, waardoor de capaciteit van de sensor veranderd. De isolatie is bevestigd tussen 2 veren in een
plastieken behuizing, hierdoor kan het geen kwaad moest de behuizing wat nat of vochtig worden,
omdat het plaatje niet rechtstreeks in contact staat met de behuizing.
Om deze verandering in capaciteit te meten heb ik een schakeling ontworpen met een 555 timer.
Dit is een monostabiele multivibrator, dit wil zeggen: als men een ingangspuls aanbied zal de uitgang
een bepaalde tijd hoog zijn. Deze bepaalde tijd word bepaald met C1, wanneer men C1 vergroot zal
de uitgang langer hoog zijn. Nu heb ik op de plaats van C1 de vochtigheidssensor gezet. Dit wil
zeggen: hoe vochtiger, hoe langer de uitgangspuls duurt.
Pin 2 en 3 zijn aangesloten op de controller, dit is wat er gebeurd in de controller:
- Pin 2 even laag maken.
- Pin 3 word nu hoog, we beginnen te tellen tot pin 3 terug laag word.
- Als pin 3 terug laag is stoppen we met tellen.
- Waarde van de teller opslaan en doorsturen.
De controller is zo geconfigureerd zodat hij aan volle snelheid draait. Zo kunnen we ook tot een
hogere waarde tellen bij het meten van de tijd van de puls op pin3. Dit wil zeggen dat we een
nauwkeurigere waarde bekomen.
11
De waarde die we nu uiteindelijk bekomen reken ik niet om in een procentuele waarde omdat ik er
nog niet ben achter gekomen hoelang een puls juist duurt bij een bepaalde capaciteit. Doordat de
waarde in grafiekvorm op de laptop komt kan je wel zien of de lucht vochtiger word naarmate de
hoogte of niet.
Ik heb volgende waardes kunnen afleiden:
pf HR%
140 85%
125 50%
115 10%
Dit is een stuk code waarmee ik een teller laat lopen zolang de outputpuls van de monostabiele
multivibrator hoog is:
Code main: mov R7,#255h ;Waardes voor delay in de regis ters zetten mov R6,#255h clr P2.0 ;Pin P2.0 laag maken om zo de 555 te set ten setb P2.0 ;De pin mag terug hoog worden anders bl ijft
de uitgang van de 555 hoog lcall int lcall lcd mov teller,#000H ;teller resetten lus1: djnz R7,lus1 ;vertragingslus. Als we deze kl einer maken kunnen we sneller me ten. djnz R6,lus1 ljmp main int: jb P2.2,tellen ;zolang de pin hoog is kunnen we tellen ret ;als de pin laag is stoppen we met tellen tellen: inc teller ;in deze routine tellen we ljmp int lcd: mov a,#003h ;en de waarde afbeelden op het lc d lcall outcharlcd mov a,#00dh lcall outcharlcd mov a, teller lcall outbytelcd ret
12
Acceleratiesensor Ik wou graag weten welke G-krachten de Cansat ondervind tijdens zijn val, ook of hij recht naar
beneden valt, of op zijn zij valt. Hiervoor heb ik een Acceleratiesensor van Analog Devices kunnen
bemachtigen. Meer specifiek de ADXL330. Dit is een acceleratiesensor die de G-kracht meet in 3
richtingen. Hij heeft een bereik van -3,6 to 3,6G. Deze is zo gevoelig dat ik zelf kan zien in welke
positie de Cansat op de grond ligt. De waarde van de G-kracht komt uit de sensor als een analoge
spanning. Deze spanning is bij 0G 1,5V en stijgt met 300mV per G.
Je kan de sensor het best bekijken als een isolatieblokje dat in een kubus van metaal hangt. Twee
overeenstaande platen van de kubus vormen dan een condensator waarvan de waarde veranderd
wanneer het blokje tussen de plaatjes schuift. Deze capaciteitsverandering word door de chip zelf
omgezet naar een variërende spanning.
Deze 3 uitgangsspanningen meet ik met 3ADC’s van de ADuC en reken ik dan om op volgende wijze:
5V = 4096d 0V = 0d 10mV = 8d 0,0012V = 1d 1,5V = 1250 = 0G
1.Gemeten waarde – 1250 bv 1G = 1,8V = 1500 – 12 50 = 250 2. Uitkomst / 25 250/25 = 10 of 1,0G
Voorbeelden:
0G = 1,5V = 1250 -> 1250 – 1250 / 25 = 0 = 0G
1G = 1,8V = 1500 -> 1500 – 1250 / 25 = 10 = 1,0G
2G = 2,1V = 1750 -> 1750 – 1250 / 25 = 20 = 2,0G
3G = 2,4V = 2000 -> 2000 – 1250 / 25 = 30 = 3,0G
Wanneer de we onder 0G gaan moeten we hiermee reken ing houden en doen we 1250 – gemeten waarde ipv gemeten waarde – 1250. Hierdoor komen we hetzelfde uit maar dan voor negatieve G-Kr achten.
13
De accelerometer is 4x4mm groot en telt 16 pinnen. Voor deze chip heb ik een print geëtst waar de
banen een stukje onder de chip doorlopen. Voordat ik de chip op de pcb heb gesoldeerd heb ik eerst
de banen vertind, vervolgens de chip op de juiste plaats geplakt en hierna baan per baan even warm
gemaakt met de soldeerbout. Doch maakte deze ergens geen goed contact en heb ik er minidraadjes
moeten aansolderen om de verbinding te maken. Na het testen of alles werkte heb ik de sensor
ingegoten met 2-componentenlijm zodat deze goed vastzat op de PCB. Normaal moet je na het
solderen van de sensor op een pcb de print een aantal uur in een speciale oven leggen. Na dit proces
is de print en sensor pas echt klaar voor gebruik.
Nu de sensor op een aparte pcb staat kan ik hem in mijn breadboard prikken om er zo testen op te
doen. Op volgende figuur kan je zien wat de uitgang is onder verschillende posities.
14
Met g-kracht of g-force wordt in tegenstelling tot wat de naam suggereert niet een kracht aangeduid.
Het is een versnelling die wordt uitgedrukt in de gravitatieversnelling. De "g" staat hier dan ook voor
het gebruikelijke symbool voor de zwaartekrachtsversnelling. Deze bedraagt in Belgie ongeveer 9.81
m/s². Een g-kracht van 1g is dus een versnelling in grootte gelijk aan de valversnelling. Hierdoor dat
de sensor 1G meet wanneer hij niet beweegt. Dit is de ‘aantrekkingskracht of zwaartekracht van de
aarde’ die je meet.
Code
Code van de acceleratiesensor:
start: setb sconv ; start conversion
waitbt: jb sconv, waitbt ; wacht tot conversion is voltooid mov a,#00dh ;lcd instellen lcall outcharlcd mov a,ADCDATAH ;hoogste waarde inlezen anl a,#00001111b ;laagste 4 bits mov R1,a ;dit in R1 steken mov a,ADCDATAL ;laagste waarde in R0 steen mov R0,a clr c mov a,R1 cjne a,#004h,verder1 ;controlleren waarde boven 0G of -0G ljmp next
verder1:jnc plus ;>0G ga naar plus ljmp minn ;<0G ga naar min
next: mov a,R0 clr c cjne a,#0E2h,verder2 ljmp minn
verder2: jnc plus ljmp minn
plus: mov R3,#004h ;eerst 1250 van af trekken mov R2,#0E2h lcall sub16 ;uitkomst staat nu in R2,R1, R0 mov R3,#000h ;dan gaan we dit getal delen door 25 mov R2,#025d lcall div16 ;delen door 25 mov a,#'+' lcall outcharlcd ljmp print
minn: mov a,R1 mov R3,a mov a,R0 mov R2,a
15
mov R1,#004h mov R0,#0E2 lcall sub16
mov R3,#000h ;dan gaan we dit getal delen door 25 mov R2,#025d lcall div16 mov a,#'-' lcall outcharlcd ljmp print
print:mov a,r3 mov r1,a mov a,r2 mov r0,a lcall hexbcd16 ;deze waarde nog omzetten naa r BCD mov a,R0 lcall outbytelcd
lus: djnz r7,lus ;klein vertragingslusje ljmp start
16
Temperatuur sensor
I²C temperatuur sensor
Ik meet de temperatuur in de satelliet, op de voedingsprint en buiten de satelliet. Omdat ik met I²C
wilde leren werken heb ik dan ook gekozen voor temperatuursensoren die werken via het I²C
protocol. Ik heb van Texas Instruments de ‘TMP100’ kunnen samplen. Deze sensor heeft een
temperatuurbereik van -55°C tot 125°C en een resolutie van 12 bit. De sensor werkt van 2,7V tot
5,5V dus kan je deze in verschillende applicaties gebruiken. De temperatuursensor is in smd
uitvoering geleverd dus dacht ik in eerste instantie voor elke sensor een klein printje te maken.
Omdat ik de sensor gemakkelijk wou kunnen verbergen heb ik gewoon draden op de chip gesoldeerd
en het adres hardwarematig ingesteld. Het adres kon je instellen door 2 adres pinnen te verbinden
met GND, VCC of floating.
Uit de datacheet kon ik afleiden hoe je de sensor moest aanspreken.
17
Eerst moet je een startcoditie genereren, dit doe je door de data te veranderen terwijl de klok hoog
is. Hierna stuur je het adres door. Dan krijg je een ack van de geselecteerde sensor.
In het begin had ik problemen om deze ACK te ontvangen, dit komt omdat ik deze inlas op de 9de
klokpuls, maar deze komt pas tussen de 9de en 10de kolkpuls. Hierna moeten we 8 nullen sturen,
hierdoor is de sensor ingesteld om alleen te kunnen lezen. Nu is de sensor gedigitaliseerd. Nu kunnen
we data lezen, dit doen we door terug een startcoditie te sturen. Hierna sturen we opnieuw het
adres van de desbetreffende sensor. Nu krijgen we de eerste 8 bits data doorgestuurd, hierna
moeten we een 0 als ACK naar de sensor sturen. Nu stuurt hij het 2de deel van de data door. In het 2de
deel staat of het de temperatuur xx,0 of xx,5 is. Nu sturen we terug een AKN en daarna de
stopconditie. Als we de sensor nu opnieuw willen uitlezen moeten we hem niet opnieuw initialiseren.
Nu kunnen we ook de andere sensoren uitlezen door het adres van de sensor in de code te
veranderen.
Code tempiic: lcall iicstart ;startcoditie sturen
mov a,adres ;adres van de sensor moven in acc lcall iicoutbyte ;sensor aanspreken clr a clr c lcall iicoutbyte ;instellen op READ ONLY jc tempiic ;kijken of we ACK ontvangen nu is hij geinitialiseerd lcall iicstart ;startconditie mov a,adres ;adres moven in acc orl a,#00000001b ;op read zetten ipv op write lcall iicoutbyte ;sensor aanspreken jc tempiic ;zien of we ACK krijgen lcall iicinbytea ;data deel 1 inlezen lcall hexbcd8 ;omzetten naar bcd lcall outbyte ;doorsturen naar laptop mov a,#',' lcall outchar ;komma afprinten lcall iicinbytea ;2 de deel van data inlezen cjne a,#000h,voliic ;als dit niet gelijk is aan nul is het 0,5 ljmp printiic
voliic: mov a,#050d ljmp printiic
printiic: lcall hexbcd8 ;2de deel omzetten lcall outbyte ;doorsturen naar laptop lcall iicstop ;stopconditie sturen mov a,#00Ah ;LF zetten achter getal lcall outchar mov a,#00dh lcall outchar ret
18
Analoge temperatuur sensor
Omdat ik ook een analoge temperatuursensor had liggen heb ik deze ook even getest, maar
uiteindelijk zal ik deze niet gebruiken. Het is een sensor van Analog Devices, de AD22103. Deze
sensor heeft een bereik van 0 tot 100°. De uitgang van de sensor veranderd 28mV/°C. Hiervoor heb ik
een printje gemaakt zodat ik de sensor op mijn breadboard kon zetten. De uitgang van de sensor heb
ik aangesloten op een ADC van de ADuC. De waarde reken ik op volgende manier op:
2^12 = 4096 Dit wil zeggen bij 5 volt aan de ingang krijg ik de waarde 4096 Bij nul volt aan de ingang krijg ik de waarde 0 Dit wil zeggen: 0,0012V => 1 De temperatuursensor geeft voor 0 graden 0,25V => 2 08 De temperatuursensor geeft voor 100°C 3,05V => 2542 om dit nu om te reken naar een temperatuur doe ik h et volgende: (2542 - 208) /23 en nu kom ik een getal tussen 0 en 100°C uit. Met een fout van 0,014%
Code
temp: mov adccon2, #00010110b ;adres 1
temp1: setb sconv ; start conversion
waitbttt: jb sconv, waitbttt ; wacht tot conversion is voltooid
mov a,#'T'
lcall outchar
mov a,ADCDATAH ;hoogste waarde inlezen
anl a,#00001111b ;laagste 4 bits van eb u
mov R1,a ;dit in R1 steken
mov a,ADCDATAL ;laagste waarde in R0 steen
mov R0,a
clr c ;hier test ik of de waarde niet onder de 208
komt
mov a,R1 ;want dit wil tog zeggen 0° en de tempsens werkt niet onder 0
cjne a,#000h,verder11 ;als hij dus onder de 208 komt stuur ik 0 naar buiten
mov a,R0 ;anders stuur ik de temperatuur naar buiten.
cjne a,#208d,verder12
verder12: jnc verder11
mov a,#'0'
lcall outchar
clr c
ret
verder11: mov R3,#000d ;eerst 208 van af trekken
mov R2,#208d
lcall sub16 ;uitkomst staat nu in R2,R1, R0
mov R3,#000h ;dan gaan we dit getal delen door 23
mov R2,#023d
lcall div16
mov a,r3
19
mov r1,a
mov a,r2
mov r0,a
lcall hexbcd16 ;deze waarde nog omzetten naar BCD
mov a,R1
lcall outnib ;alleen laagste 4 bits weergeven
mov a,R0
lcall outbyte
mov a,#00Ah ;LF zetten achter getal
lcall outchar
mov a,#00dh
lcall outchar
ret
20
Zender – Ontvanger Ik heb een zender en ontvanger op 866Mhz. Deze zouden een afstand van 4,5km MAX moeten halen.
Op deze zender/ontvanger kan je RS232 of TTL aansluiten. De zender staat op de cansat gemonteerd.
Ik stuur een RS232 signaal vanuit de aduc. Ik stuur men data naar de zender met een baudrate van
4800 omdat dit ook de baudrate is van de GPS. Ik heb de zender en ontvanger getest en ik heb
ongeveer 2KM (vogelvlucht) ontvangst in een dicht bebost gebied. Dus dit is behoorlijk goed. De
zender/ontvanger kan zowel als zender en ontvanger fungeren. Wanneer men niets naar de
zender/ontvanger stuurt werkt hij als een ontvanger, wanneer je iets naar de zender stuurt, werkt
deze als zender. De zender/ontvanger heb ik kunnen kopen op http://www.ideetron.nl
Hij heeft een vermogen van 50mW en verbruikt 100mA maximum. De zender/ontvanger bevat ook
een antenne, mr. Bauwels heeft mij uitgelegd hoe een antenne uitstraalt. Dit is op volgende manier.
Antenne Wanneer de ontvanger nu juist onder de satelliet staat zal de straling niet invallen op de ontvanger.
Wanneer we de antenne horizontaal plaatsen zal de ontvanger deze straling wel ontvangen.
Ontvanger
Ontvanger
21
Zoals je kan zien heeft de zender/ontvanger meerdere aansluitingen. Dit is omdat je zowel TTL niveau
als RS232 niveau kan ontvangen of versturen. Via jumpers kan je RS232 of RS485 instellen, eveneens
als de baudrate.
De ontvanger heb ik ingebouwd in een mooie behuizing. Hierop heb ik een RS232 connector
gemonteerd voor de communicatie en een USB connector voor de voedingsspanning. Een USB poort
kan maximum 200mA leveren, de Z/O verbruikt maximum 100mA dus dit levert geen problemen. Zo
kan ik de ontvanger op mijn laptop aansluiten zonder een extra voeding nodig te hebben.
22
Voeding
5V voeding De hele CanSat zal werken op 5V. Hiervoor heb ik een voeding/verdeel printje gemaakt waarop ik
gemakkelijk 5V kan aftappen. De voeding bestaat uit 2 spanningsstabilatoren (7805) die elk 1A aan
kunnen. De schakeling gaat nooit 2A trekken maar ik wou niet dat de componenten warm werden en
zo de temperatuur sensor zouden beinvloeden. Achter elke 7805 staat ook een indicatieled zodat je
kan zien of hij aanstaat. Eerst had ik het probleem dat de 7805 aan het oscilleren was. De
uitgangsspanning lag dan rond de 8V maar dit was snel opgelost door parallel over de ingang een
condensator van 330nF te zetten.
23
3,3 Volt voeding Mijn analoge temperatuursensor en acceleratiemeter hebben een werkspanning van 3,3V. Om deze
spanning te bekomen heb je speciale chip’s. Omdat ik een LM317 had liggen heb ik deze gebruikt. Dit
is een spanningsregelaar waarmee je de spanning kan regelen van 1,2V tot voedingsspanning. Deze
heb ik afgeregeld tot 3,3V. Deze regulator kan ongekoeld een stroom van 1A leveren.
24
Labview Om de gegevens die de satelliet doorstuurt duidelijk te kunnen weergeven heb ik een programma in
Labview gemaakt. Hierin kan je De GPS gegevens bekijken, de hoogt, de G-krachten in 3 richtingen,de
vochtigheid en de temperaturen. Dit allemaal in grafieken. Bij het stoppen van het programma
worden alle gegevens nog eens opgeslagen in een tekstdocument. Ik heb eraan gedacht om deze ook
op te slagen in een html bestand, zodat deze via mijn website live te bekijken zijn.
De layout en het programma kan je op volgende 2 pagina’s bekijken.
25
26
27
Parachute Op internet heb ik een programma gevonden waarmee ik de diameter van mijn parachute kan
berekenen. Hierbij kwam ik uit op een diameter van 1,7 meter. Hierna heb ik een schets gemaakt hoe
de verschillende delen van de parachute er moesten uitzien. Op volgende afbeelding kan je dit zien.
Dit is 1 van de 12 delen van de parachute, het deel is zo getekend zodat de parachute ,als hij aan
elkaar genaaid is, een perfecte vorm heeft. Hiervoor moest er aan het uiteinde van het deel een
bepaalde boog worden gevormd. Dit heb ik uit testjes ondervonden.
28
Foto parachute En dit is dan de parachute die helemaal uit het stof geknipt is en aan elkaar genaaid is. Je kan zien dat
hij al goed werkt want de luchtbel blijft gevangen onder de parachute.
CanSat
29
PCB’s Alle PCB’s heb ik zelf ontworpen, geëtst en gesoldeerd. Ik heb er ook een greencoat opgespoten, dit
geeft de print een professioneel uitzicht en beschermt de print tegen corrosie.
Sensor print
ADuC Print
30
GPS print
5V voeding print
31
3V voeding print
Acceleratie sensor print
Temperatuur sensor print
32
Bronnen NMEA http://nl.wikipedia.org/wiki/NMEA-0183 GGA http://www.gpsinformation.org/dale/nmea.htm#GGA Modelbouwraket http://www.drra.nl/index_nl.html Analog Devices http://www.analog.com/en/index.html Vishay http://www.vishay.com
33
Blokschema’s
34
35
Code