beste medeCOers. Op mijn school (en op een aantal andere scholen in Nederland) draait momenteel het CanSat project. Het gaat om het bouwen van een soort "satteliet" ('tis meer een veredelde draadloze sensormodule) in een colablikje. Dit project is bedoeld om "die jeugd van tegenwoordig" weer in de techniek te intereseren. Nou was ik al in techniek geintereseerd, maargoed, ik doe mee.

er word gewerkt in teams, 1 team per school, en het is een competietie. Je mag overal informatie vandaan plukken, met als doel een zo goed mogelijke CanSat de bouwen.

er zijn een primaire en een secundaire missie: de primaire missie is het verzamelen van temperatuur en luchtdruk, en zo de hoogte te bepalen. verder mogen we als extratje de luchtvochtigheid meten. de sensoren, microcontroller etc zijn gegeven, de software in de controller niet. Deze sensoren werken, de data doorzenden met de zender werkt ook, dus de primaire missie werkt.


op www.cansat.nl staat nog meer uitleg over het project, maar dit was het kort samengevat.

verder is er een secundaire missie. deze is zelf te kiezen. de missie van het team waar ik in zit (ik doe uiteraard de elektronica en de software) bestaat uit een hoop gereken rond GPS gegevens. aan mij de eer om uit die GPS de gegevens te vissen met de microcontroller en deze door te laten sturen naar het grondstation.

ten eerste werkt dat grondstation niet helemaal mee, maar daar kom ik nog wel uit. maar ten tweede versta ik die GPS niet.

ik weet dat jullie een hekel hebben aan "het moet morgen af" schoolvragen. helaas moet dit morgen af. al is het ook geen ramp als het niet lukt :). mijn bedoeling met dit topic is dat ik een ieder geval OOIT een GPS kan verstaan door een een microcontroller aan te hangen. want mocht het ding de landing (12m/s) van de cansat overleven, dan ga ik er zeker mee doorprutsen :). en anders koop ik er mischien nog wel eens een.

wat is nou het probleem:

ik programeer in BasicAtomPro, het is de BasicAtom 24-m. best een leuk controllertje, best een leuke (maar best-wel buggy) programmeeromgeving, best wel duur spul allemaal, en best wel niet mijn eerste keuze, maar een gegeven paard moet men niet in de bek kijken, en het is wel erg gebruikersvriendelijk (op een windows manier helaas).

Nou kan ik daar aan software-serial doen (hardware serial kan ook maar toen kreeg ik een conflict met de debugger, wat niet aan de hardware serial lag, maar aan iets anders waar ik pas achter kwam toen ik al voor software serial had gekozen. en het is nauwelijks trager, dus ik laat het maar zo). zoals ik in mijn bronnen engelse bron
en uitgebreide duitse bron zag heb ik dat gedaan met 4800 bits per seconde, geen pariteit en een stop bit kan basic atom niet... dus of dat goed gaat weet ik ook niet. (hardware serial kan dat weer wel, dus mischien moet ik toch weer hardware serial gaan doen).

goed. na het signaal te hebben geinverteerd (anders ontving 'ie niks) werkt dit min of meer, dat wil zeggen: ik krijg steeds wat hexadecimale waarden (ik wil het eigenlijk in asci hebben, maar dat wil niet met basicatom), maar wat ze betekenen: geen idee. als ik het opzoek zit er relatief vaan een 9 en een = teken in. terwijl ik geen enkele nmea string kan bedenken met een = er in...

deze data moet eigenlijk als asci op de grond aankomen. de zender weigert meer te zenden dan de sensorwaarden, waarom weet ik (nog) niet, maar dat valt denk ik nog wel te fixen.

het tweede probleem is dat de GPS (het gaat om een Holux GM210 GPS, gebaseerd op de Sirf2 chipset) verwacht dat er eerst een stuk data aankomt wat de boel start. wat hij verwacht weet ik niet, dit hoop ik morgen uit het standaardprogramma wat erbij zit af te leiden door deze aan een ander comppoort te handen en dan te luisteren naar wat 'ie zegt.

maar hoe zorg ik ervoor dat die data als asci op de grond komt?

en sowiso een heel belangrijke vraag: heeft er hier toevallig iemand niet ook al eens een GPS aan een microcontroller gehangen? ik kan me iets herrineren over iemand met een vliegtuigje "condor"?

of gewoon iemand met ervaring met GPS die me hiermee kan helpen?
voor m'n team moet het morgen af, (overmorgen CanSat naar delft, vrijdag lanceren op ASK het harde) maar ik wil gewoon meer leren over hoe met een GPS te communiceren, om later ook nog eens een GPS toe te kunnen passen in een hobbyproject. maar als het lukt voor de CanSat is natuurlijk helemaal mooi, want een complexe seccundaire missie die slaagt levert een hoge score op. (en eentje die faalt levert een lager score op dan een makkelijke missie die slaagt)

Op 27 mei 2007 23:13:24 schreef Lucky luke:
beste medeCOers. Op mijn school (en op een aantal andere scholen in Nederland) draait momenteel het CanSat project. Het gaat om het bouwen van een soort "satteliet" ('tis meer een veredelde draadloze sensormodule) in een colablikje. Dit project is bedoeld om "die jeugd van tegenwoordig" weer in de techniek te intereseren. Nou was ik al in techniek geintereseerd, maargoed, ik doe mee.

Leuk project!

ik programeer in BasicAtomPro, het is de BasicAtom 24-m. best een leuk controllertje, best een leuke (maar best-wel buggy) programmeeromgeving, best wel duur spul allemaal, en best wel niet mijn eerste keuze, maar een gegeven paard moet men niet in de bek kijken, en het is wel erg gebruikersvriendelijk (op een windows manier helaas).

Contradictio in terminus...

het tweede probleem is dat de GPS (het gaat om een Holux GM210 GPS, gebaseerd op de Sirf2 chipset) verwacht dat er eerst een stuk data aankomt wat de boel start. wat hij verwacht weet ik niet, dit hoop ik morgen uit het standaardprogramma wat erbij zit af te leiden door deze aan een ander comppoort te handen en dan te luisteren naar wat 'ie zegt.

Kun je van die Holux niet wat meer vinden? Evt. wat generic SirfII? Dat ding kan zowel NMEA (alleen de data dan...) nadoen als SirfII protocol voor zover mij bekend. Dat laatste is meen ik een binair protocol.

Overigens: het is een misvatting dat een GPS NMEA kletst. NMEA is een standaard die in de scheepvaart gebruikt wordt voor de koppeling van instrumenten. Gangbaar is NMEA0183 v3.0. Er zijn echter recentere ontwikkelingen. In de tupperware-bootjes gaat dat wat harder, omdat het daar meer 'gadgets' zijn en men daar geen gekeurde apparatuur nodig heeft. Overigens specificeert NMEA ook de hardware interface. Voor 0183 is dat inderdaad 4800n81 op RS422 protocol. En oh ja... Er hangt ook wel eens een GPS aan...

Als we er vanuit gaan dat je die Holux zo geconfiged hebt dat dat werkt (overigens doen de meeste Holuxen RS232 met NMEA strings; hang het ding eens aan je PC, dat is wat makkelijker om inzicht in het spul te krijgen), levert dat ding op een vast interval informatie. Daar hoef je normaal niets aan te doen (NMEA is 'shout & pray' by design). Als ik mij goed herinner, kan ik bij mijn LeadTek zowel het interval als de strings die ik hebben wil configureren. Het zou zelfs kunnen dat ik de bitrate in kan stellen (lang geleden dat ik ermee gespeeld heb op dit niveau). Het zou zomaar kunnen dat die Holux dat ook kan --> even neuzen naar Holux tools. Soms vind je wat in een stoffig hoekje op de FTP server van een fabrikant / importeur.

Overigens: Ik meen me te herinneren dat het korste interval 1 sec. is. Ik weet niet hoe lang een missie duurt, maar is dat genoeg? Hoe dacht je in een blikje GPS te gaan ontvangen?

Krijgen we de resultaten hier nog te lezen?

de kortste interval van de GPS weet ik niet. wel staat er in mijn engelse bron het een en andere over hoe je een hot start, warm start en cold start doet. ik denk dat ik de cold start doe, want daatrna zou dat ding volgens de spec's in 45 sec. up-and-running moeten zijn. in de tijd dat 'ie nog aan de computer hing heb ik wel gemerkt dat dat wat langer duurde, maar dat geeft niet. de lancering zal lang enoeg duren denk ik om die cold-start uit te voeren, en hoe snel 'ie daarna als ie uit de raket komt (de raket is van kunsthars en aluminium. precies het CanSat-uitwerpgedeelte is aluminium :() ligt aan dat ding zelf...

de missie (de afdaling) duurt 90 seconde,, uitgaande van een uitwerphoogte van 800 meter (maar het word waarschijnlijk 1km) en een CanSat met het maximumgewicht van 370 gram (deze is 230 gram)

het "een blikje is van metaal" probleem is opgelost door een stuk PVC pijp als blikje te gebruiken.

ik zal eens naar meer holux gm210 specifieke info zoeken. de afloop van het project poot ik uiteraard ook in dit topic.

Voor wat betreft die cold start: dat is niet relevant. Je moet die GPS toch ruim van tevoren aan zitten. Die plaatsbepaling is een benadering waar de ouput van de vorige bepaling als input voor de huidige gebruikt wordt. Als het ding zich snel verplaatst, duurt het langer. Het ging over het message interval...

Je antenne probleem is mogelijk opgelost. Hoop dat het 'appraat' dat voor de uitwerp zorgt (vliegtuigje?) niet te veel afschermt...

het gaat omhoog in een modelraket van de NAVRO (Nederlandse <iets-met-een-a?> Voor Raket Onderzoek. dat ding is van glasvezelversterkt kunsthars, de motor is wel van metaal (er word een mix van kaliumnitraat en sorbitol in verbrand), en het gedeelte dat de cansats uitwerpt ook.

die raket is 1M lang, 10cm in doorsnede, en weegt 10KG. ergens onder de neuskegel zit de parachute van de raket zelf, en een soort "houder" waar de CanSat's in zitten.

Als de Raket op hoogte is word eens deze houder er uit geduwd, en daarna weer de CanSat's uit de houder.

vervolgens zal die raket zelf waarschijnlij zijn parachute uitwerpen.

van die raket weet ik niet zo veel af, dat word allemaal voor "ons" (alle teams) geregeld door de navro, dus het kan zijn dat er iets niet klopt.

verder: zonder cold of hotstart doet de GPS helemaal niks... in ieder geval vind íe geen sattalieten... dus ik hoop dat het mét beter gaat. zoniet word het wel erg lastig natuurlijk...

[Bericht gewijzigd door Lucky Luke op ]

Hmz.. Spannend... Je zet dat ding aan en het start... Hoef je normaal niets voor te doen hoor...

Afijn, dit documentje vertoont sterke gelijkenis met soortgelijk spul van LeadTek. Verschil is dat LeadTek met RS232 niveau's werken en Holux dat met TTL lijkt te doen. LeadTek had destijds op hun site wel leuke tools voor die chipset staan. Zoek eens bij LeadTek.com.tw ofzo. Naar een wat ouder model van hun zoals een 9532.

Overigens lijkt bij de Holux het interval fixed op 1sec. te zijn. Voor jouw vluchtduur zal dat wel goed komen.

Die 9532 heb ik zelf. Als die in NMEA mode staat, begint die net zoals elke andere GPS die NMEA nadoet gewoon te brullen. Kijk overigens ook eens hier. Wellicht niet 1-op-1 bruikbaar voor jou, maar doe Holux zal niet vreselijk anders zijn.

dat eerste documentje had ik al, die 2e ken ik nog niet.

het ding heeft niet gereageerd op de start commando's. de LED gaat niet knipperen, dus er zijn of onvoldoende sattelieten, of de data is niet nauwkeurig genoeg...

dat 2e doc ga ik nog ff bekijken... maar ik vrees dat het gewoon een kwestie gaat worden van alles wat er uit komt doorsturen naar de grond.

verder: deze GPS heeft zowel een RS232 level en een TTL level aansluiting. Nou heb ik op de TU met iemand gepraat die zelf eens een GPS ergens aangehangen had waar 'ie normaal niet aan hangt, en die dat ook gelukt was. Hij deed ook de raketelektronica voor CanSat draagraket.

Hij heeft mij verteld dat
1) De TLL level i/o's een ander protocol zouden volgen dan de RS232 level i/o's en dat ik daarom de TLL niet kan gebruiken
2) er uit de RS232 level i/o's geen signaal hoger dan 5V kan komen, omdat een computer dat ook wel verstaat en de GPS gewoon niet hoger kan, omdat 'ie maar met 5V gevoed word. (uhm... max232?, dacht ik toen)

ik heb nu dus de RS232 level i/o gepakt en via 10K aangesloten (vertrouwend op de clampdiodes in de BasicAtom voor het wegwerken van te hoge spanningen, al weet ik niet eens zeker of dat ding wel clamp diodes heeft...)

ontvangen van data gaat goed maar als ik het om wil zetten in asci vind ik geen echt waarschijnlijke teksten... en sommige output staat niet eens in mijn asci tabel. (hij geeft output in HEX.)

geeft dat ding nou bytes, words of nog wat anders uit?

Je leest nu de data geinverteerd uit, RS232 is immers geinverteerd, je basic-atom niet.

Overigens mag je de ESD diodes hier niet voor gebruiken, zet 2 externe diodes bij.

dat worden dan dikke lompe 1n4007's... (ik neem aan: 2 per signaal, 1 van gnd naar singaal, 1 van signaal naar +?)... eens zien of ik ergens 4 1n4148 heb liggen. 2 heb ik er iig.

de "softwarematigeTXD" van de BasicAtom heeft ze niet nodig natuurlijk... ik snap 't al

ik lees de data ook in de atom geinverteerd, anders gaf deze een error.

2x inverteren lijkt me dat ik de data weer "gewoon" heb?
dus 1x de rs232 geinverteerde data, die geinverteerd word ingelzen, dan heb ik toch weer de gewone data?

afijn, ik ga gewoon maar data inlezen en doorsturen naar het grondstation, de analyse komt later wel. (en ik zal even die diodes toevoegen)

Op 28 mei 2007 16:35:27 schreef Lucky luke:
dat eerste documentje had ik al, die 2e ken ik nog niet.

Is ook bedoeld voor LeadTek, maar wellicht heb je er wat aan

het ding heeft niet gereageerd op de start commando's. de LED gaat niet knipperen, dus er zijn of onvoldoende sattelieten, of de data is niet nauwkeurig genoeg...

Mogelijk wil het ding echt SirfII mode doen. Kijk even in dat LeadTek document. Ik ken 2 varianten met LED: de ene knippert rood indien er geen fix is en groen indien die er wel is. De andere knippert alleen indien er een fix is. Rustig 5 minuten laten liggen op een plaats waar het ding voldoend 'zicht' heeft. In elk geval moet er data uit komen (als het ding NMEA mode doet). In die data staat dan weer... Dat het beest geen fix heeft...

dat 2e doc ga ik nog ff bekijken... maar ik vrees dat het gewoon een kwestie gaat worden van alles wat er uit komt doorsturen naar de grond.

Dat is op zich prima. Zolang dat iets is waar je wat mee kunt

verder: deze GPS heeft zowel een RS232 level en een TTL level aansluiting. Nou heb ik op de TU met iemand gepraat die zelf eens een GPS ergens aangehangen had waar 'ie normaal niet aan hangt, en die dat ook gelukt was. Hij deed ook de raketelektronica voor CanSat draagraket.

Hij heeft mij verteld dat
1) De TLL level i/o's een ander protocol zouden volgen dan de RS232 level i/o's en dat ik daarom de TLL niet kan gebruiken

Dat zou kunnen als het ding op de ene pin SirfII kletst en op de andere RS232. Lijkt me onwaarschijnlijk...

2) er uit de RS232 level i/o's geen signaal hoger dan 5V kan komen, omdat een computer dat ook wel verstaat en de GPS gewoon niet hoger kan, omdat 'ie maar met 5V gevoed word. (uhm... max232?, dacht ik toen)

Inderdaad. Ik heb hier nog een gemolde 9532 liggen (heeft 5.5 volt op gestaan, vond-ie niet leuk...), daar zit een ST232 in voor de level shifting

ik heb nu dus de RS232 level i/o gepakt en via 10K aangesloten (vertrouwend op de clampdiodes in de BasicAtom voor het wegwerken van te hoge spanningen, al weet ik niet eens zeker of dat ding wel clamp diodes heeft...)

ontvangen van data gaat goed maar als ik het om wil zetten in asci vind ik geen echt waarschijnlijke teksten... en sommige output staat niet eens in mijn asci tabel. (hij geeft output in HEX.)

Ik ken die processor niet. heeft dat ding een hardware-uart waar die GPS aan hangt? Dan gaat dat dus niet werken daar het spul niet kan syncen op een startbit. Als er al wat binnen komt, is het bagger.[/quote]geeft dat ding nou bytes, words of nog wat anders uit?[/quote]Bijna de hele wereld werkt in bytes. Dat meerdere bytes samen wat anders voorstellen is leuk, maar het blijven bytes.

Als die processor van jou een UART heeft, zit daar een probleem. Dat intern clampen is lomp, maar het zal er niet stuk van gaan als er 10k voor zit (je scoort er echter niet direct punten op als je het moet verdedigen). Inversie is makkelijk met een hoerentorretje (547 oid.). Weerstand, clampen naar GND, naar de tor (de BE overgang is de andere clamp diode). Tor met de E aan GND en de C met 10k aan 5V. Op de C heb je netjes een geinverteerd TTL compatilbe signaal.
Probeer dat eens. Zou zomaar kunnen dat het dan beter gaat.

de inversie word al softwarematig gedaan, dus ik ga er van uit dat de data bruikbaar is. gezien de Sat's morgen in de raketen worden geintegreerd heb ik geen tijd om meer te doen dan een paar 1n4148's toevoegen, de geheugenchip vervangen (data word opgeslagen in geheugen, alleen de data van de primaire missie, en dat geheugen is defect geraakt. (overspannen, later leek het nog te werken maar sinds gisteren faalt het) de batterij te laden, de boel in de behuizing te zetten en een protectie rond de aan/uit schakelaar te maken tegen ongewenst uitschakelen.

heel erg bedankt voor jullie hulp en meedenken, ik hoop dat we nuttige data uit die GPS kunnen halen, anders doen we onze seccundaire missie met de weinige gegevens die wel wel hebben (mbv. interpoleren de rest proberen te achterhalen), en desnoods doen we het op fictieve gegevens.

het gaat er nu om dat dat ding morgen kan vliegen. als het goed werkt is het mooi, maar beter dan goed kost te veel tijd, en als het niet werkt is het gewone domme pech, maar hebben we toch leuk eens een lanceerdag meegemaakt (er gaan ook allerhande gewone hobbyraketten de lucht in).

het ding zit trouwens niet op de harware seriele poort (ze noemen het geen UART, omdat 'ie niet echt Universeel te noemen is denk ik.)

morgen is de lancering! :)

die extra diodes heb ik uiteindelijk niet meer gedaan omdat er een spanningsregelaar was uitgefikt en ik die moest vervangen en de oorzaak zoeken.

het hoeft niet echt verdedigd te worden, en als dat wel zo is: ik heb het advies gekregen het niet beter dan goed genoeg te maken.

het is dus niet netjes de ESD diodes daarvoor te misbruiken, maar met die 10K ervoor kan het wel en het werkt.

er zitten wel meer dirty dingen in het design (een 78l05 die 70mA levert vanuit een 7,4V bron. het kan, maar zit op het randje)

het ding draait op een LIPO acu trouwens. zo ingewikkeld mee te werken is dat eigenlijk niet eens. wel duur. (modelbouwlipo en lader. totaal zo'n 40 euro) (maar he, wat zouden jullie doen als je een project mocht uitvoeren met 500 euro budget?)

Ik was dit topic een beetje vergeten, maar we hebben een succesvolle lancering en de eindbespreking achter de rug.

missies:
1) primaire missie
1a) temperatuur meten -> geslaagd
1b) luchtdruk meten -> geslaagd
1c) luchtvochtigheid meten -> geslaagd
1d) doorzenden naar grondstation -> geslaagd
2) seccundaire missie:
2a) ontvangen GPS data -> onbekend
2b) GPS naar atom communicatie -> geslaagd
2c) Interpretatie ontvangen gegevens -> mislukt (niet binnen missieduur*)
3a) terugvinden CanSat -> mislukt**
3b) eindpresentatie -> geslaagd

Uiteindelijk zijn mijn teamgenoten en ik op de 2e plaats van de Nationale CanSat competitie geeindigd!

*= Ik moet ze nog steeds eens gaan uitwerken, eigenlijk.
kwam er eerst totaal niet uit, na de eindpresentatie kwam er een engelstalige hoogleraar naar ons toe die wel wat herkende in onze data en het een en ander heeft uitgelegd. Het meest interesante daaruit was wel dat een commerciele GPS er boven een bepaalde hoogte of snelheid doodleuk mee ophoud, omdat er in de firmware in de GPS een limiet is ingesteld. Dit om te voorkomen dat een goekope GPS in een vliegtuig of sattaliet eindigt. De hoogleraar die het ons uitlegde heeft echter met succes een dergelijke GPS weten te gebruiken op grotere hoogtes dan die die een CanSat bereikt, maar wel met aanpassingen aan de firmware.

**= De CanSat is niet teruggevonden, en een poging van de millitairen om 'm uit te peilen is mislukt. De zender werkte nog na de chrash, de accu dus ook nog (onbeschermde LiPo van 1KM hoogte met zo'n 8 a 12 m/s naar beneden laten vallen en hij werkt nog...)

ergens op schietkamp 't harde ligt dus nog een grijs PVC colablikvormig voorwerp met daarin een GPS ontvanger, 433mhz zender, basic atom processor, LiPo accu, div sensors en overige missie-ondersteunende electronica.

Op 20 juli 2007 12:19:21 schreef Lucky luke:
Het meest interesante daaruit was wel dat een commerciele GPS er boven een bepaalde hoogte of snelheid doodleuk mee ophoud, omdat er in de firmware in de GPS een limiet is ingesteld. Dit om te voorkomen dat een goekope GPS in een vliegtuig of sattaliet eindigt.

Uit mijn hoofd : 60.000 feet en 1152mph. Ik denk niet dat je deze limieten hebt overschreden. In een vliegtuig doet ie het gewoon (ooit uitgeprobeerd), maar in een ICBM natuurlijk niet.

To help prevent civilian GPS guidance from being used in an enemy's military or improvised weaponry, the US Government controls the export of civilian receivers. A US-based manufacturer cannot generally export a GPS receiver unless the receiver contains limits restricting it from functioning when it is simultaneously
(1) at an altitude above 18 kilometers (60,000 ft) and
(2) traveling at over 515 m/s (1,000 knots)

Dus de combi is restricted. Maar bij de specificaties van sommige commerciele GPS devices zie ik dat ze op beide punten altijd een restrictie hebben.

de CanSat ging maar tot 1KM hoogte (1,4 uiteindelijk).

ik weet niet of bij het opstijgen die snelheidslimiet is gebroken, maar denk het niet. (al gingen die raketten wel hard! zoek maar op youtube op CanSat. Dat filmpje van rohz media is van het team waar ik in zat (die kernbom was niet mijn idee overigends).