Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Analoog signaal naar NMEA

Pagina: 1
Acties:
  • 307 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Inleiding:

Ik vaar nogal actief op een bepaalde bekende zeilboot.

Nu hebben we een meetinstrument,dat analoge waarden uitgeeft en dat moet naar NMEA vertaald worden.

NMEA is een soort databus waarover alle boordapparatuur met elkaar praat.

Er is geen computer aan boord, slechts een heel klein beetje 12 volt stroom.

Ik ben zelf electronisch handig en kan wel een beetje proggen, maar dit overtijgt mijn kunde.

Een mogelijk oplossing is het gebruik van een gehackte router, omdat daar linux op kan draaien.

Het is ook erg gemakkelijk mogelijk dat de sensor zichzelf als externe geluidskaart identificeert via usb. De twee waarden zijn dan links en rechts audio.

het gaat om erg laagfrequente meetwaarden <1Khz en een output van ongeveer 1 hz.

Het systeem moet wat eenvoudige gemiddelden over een periode kunnen berekenen.

kan iemand mij een hollewipper richting oplossing geven?

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Is het simpelste niet van een µC te nemen, eentje met ADC. Daar het analoog signaal op en dan een progje in je µC dat het omzetten doet en op de IO gooit? Gemiddelden berekenen kan ook wel, met wat extra geheugen en misschien een RTC als je echt over maanden redelijk accuraat wilt weergeven.

Wat je daar vermeld over usb kan ik effe niet volgen, wat voor sensor is dat? En hoe kan die als usb geluidskaart werken? Of zou je het zo willen maken?

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
wat is het bereik van het analoge signaal, en is het signaal nog gecodeert? (PWM ofzo)

U vraagt, wij antwoorden.


Verwijderd

Topicstarter
ok, uitgebreider:

het is een IMEMS sensor.

Sensor, evt versterking enzo is geen probleem, dus de range van de sensor (zonder versterking max een keer 100mV) is niet zo belangrijk.

TI heeft heel erg fijne ic'tjes, die ik al vaker heb gebruikt. Het zij IC'tjes die direct op usb werken en dan een geluidskaart vormen, inclusief ADC's en DAC's. Leek me een handige schakeling, omdat die routertjes vaak USB poorten hebben.

Meting met 0,1Ksamples/seconde is voldoende. Gemiddelden over een seconde, 10 seconden en 3 minuten zijn voldoende.

Op een boot zitten zgn "repeaters". Dit zijn displays die willekeurige locaties op het NMEA kunnen weergeven (snelheid, windrichting, positie, noem maar op). Zet je je data dus op de NMEA, dan kan de repeater het uitlezen. Verder kan een evt. ander apparaat de data ook gebruiken.

Een uC lijkt me helemaal perfect. ik heb alleen nog nooit noemenswaardig ermee gewerkt.


Misschien ook handig te vermelden: Een ludieke of zakelijke vergoeding is absoluut bespreekbaar als iemand wat kan klussen!

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
NMEA is gewoon een standaard protocol, geheel gebaseerd op standaard seriele hardware, dus die kant van het verhaal is zeer simpel.

De andere kant, dat is al iets lastiger, dan moet je idd. een AD converter hebben, maar om dit met een router te gaan doen, dat lijkt me een beetje ver gezocht.

Zoek eens op microchip (PIC) of Atmel en nmea, volgens mij moet je daar wel het nodig over kunnen, aangezien er wel meer gehobbied wordt. (Het is vast al ergens te krijgen, compleet gebouwd, of anders als bouwpakketje)

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
TheGhostInc schreef op dinsdag 25 juli 2006 @ 15:28:
NMEA is gewoon een standaard protocol, geheel gebaseerd op standaard seriele hardware, dus die kant van het verhaal is zeer simpel.

De andere kant, dat is al iets lastiger, dan moet je idd. een AD converter hebben, maar om dit met een router te gaan doen, dat lijkt me een beetje ver gezocht.
Dat de NMEA een standaard protocol is maakt het nog niet simpel! Ok, de hardware mag dan niet moeilijk zijn, maar de manier waarop er gecommuniceerd wordt is wellicht niet zo simpel...
Daarbij komt dat het NMEA protocol niet vrij is. Alle documentatie zal dus aangeschaft moeten worden, en deze is verre van goedkoop. Wellicht kun je een hele boel van internet halen, als je dat wilt.

Het omzetten van analoog naar digitaal is nou juist iets wat behoorlijk simpel te doen is met een uC. De meeste beschikken wel over een ADC en anders zijn die wel los verkrijgbaar (ligt er ook een beetje aan welke resolutie de TS voor ogen heeft).

Dus als je goede documentatie hebt van de NMEA standaard is het wellicht niet zo moeilijk om te realiseren, zo niet dan wens ik je veel succes dan mag je nl. het hele protocol gaan reverse engineren.

Verwijderd

Topicstarter
maxim DS80C390.

2 CAN bussen (=NMEA)

Doet die het?

Maar dan nog. Ik kan m vastsolderen en er naar kijken... verder kan ik er niks mee...(ohja, en pootjes tellen!)

Verwijderd

Topicstarter
NMEA doen ze heel moeilijk over, maar 99% is al wijdverspreid en gereverse engineerd. Ik heb iig de contacten om daar aan te komen.

Het gaat nu du om: analoog draadje -> iets <--NMEA

Bas

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Tsja, als je de protocollen hebt die nodig zijn dan zou ik gaan voor een oplossing met een uC (een microchip PIC, of een Atmel). Deze zijn in staat om een analoog signaal om te zetten in een digitaal. Tevens zit er (meestal, of in ieder geval door de juiste uitvoering te kiezen) een U(S)ART module op die de communicatie via RS232 kan verzorgen (evt. uitgebreid met een max232 of equivalent.)

Verwijderd

Topicstarter
zie twee posts hierboven.

Ik ben niet lui, wil graag dingen leren, waardeer jullie hulp enorm, maar hier kan ik natuurlijk niks mee...

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Wat je ook kan doen is als je de functies kent, zelf een ADC kopen, en daaraan een eigen digitaal ontwerp (logische poorten, multiplexer's en flipflop's) hangen, berekend op de functies.
Ik weet niet of het een heel ingewikkelde omzetting is, maar misschien dat je in die richting kunt.

Een µC is natuurlijk simpelste, ergens een progger maken of kopen. Of een schema maken waarmee je in circuit kan proggen.

µC kan je meestal wel gewoon in C programmeren. Voor het schema moet je al weten hoe die bus er uit ziet, hoeveel signalen bevat de bus en zo? De timing is meestal ook belangrijk.

En dan moeten de andere apparaten op de bus ook weten wat je nieuwe apparaat doet, wat soort gegevens die doorstuurd en zo. Moeten er adressen toegewezen worden? En werkt die bus met IRQ's of met polling?

Allemaal dingen waarmee rekening mee moet gehouden worden en die het maken van zo een toestel niet simpel maken.

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Wat wil je dan weten, ik geef je de merken van de microcontrollers waarnaar je kunt kijken.
Ga naar www.microchip.com en zoek eens tussen de uC's...
Eentje die ik je kan aanraden is een 16F88, deze heeft alles aan boord om dit te kunnen doen en is goedkoop. Het enige wat je moet doen is zelf het programma schrijven dat je in de uC zet. (daarvoor heb je een programmer nodig, die zijn heel makkelijk zelf te bouwen, of misschien is er hier wel iemand die dat voor je wil doen als je het vraagt ;)) ). Programma's kun je in veel verschillende talen schrijven (C, Pascal, Basic, assembly). Als je daar hulp bij nodig hebt dan kun je dat wel weer hier vragen.

Verwijderd

Topicstarter
Ik heb al een aantal keren geprobeert met uC's te werken, maar dat werdt steeds een catastrofe. Vandaar mijn interesse voor de router.

Ik heb direct in de topic start aangegeven waarom ik het vroeg. Het is meer dan ik zelf kan. Ik heb nog nooit een regel c geschreven, laat staan dat ik even zo'n progje uit mijn mouw schud.

Ik heb het grote nadeel van een academische opleiding: Ik weet exact hoe het werkt en hoe het zit, maar kan niets in de praktijk brengen. Ik kan leuke poppetjes op beeld laten verschijnen in java, maar zou niet weten hoe je een input uitleest.

Ik wil echt wel proberen om c te leren (sterker nog, ik ben eergisteren begonnen), maar het is niet een "hobbyprojectje" waar ik veel tijd in kan besteden. Ik geef liever iemand een leuke vergoeding als hij/zij me op weg kan helpen en dingen in een uurtje doet die mij weken kosten.

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Ok, ik begrijp dat het niet allemaal even makkelijk is, maar met een beetje goede wil komen we een heel eind...

Wat voor signaal komt er van je IMEMS af? is dit een continue analoog signaal?
(ik geloof dat een IMEMS een (soort) snelheidsmeter is??)
Ik neem aan dat je daar een datasheet van hebt? misschien kun je daaruit de benodigde gegevens halen. Of geef even aan of die datasheet online staat (en waar).
Dit signaal kan in princiepe rechtstreeks aangeboden worden aan een uC.

D.m.v. programma kun je de data middelen, etc. daarna uitvoeren via NMEA protocol.
Als ik het goed heb maakt het NMEA protocol gebruik van zogenaamde sentences, op de volgende manier opgebouwd:
$(data type), data, data, data, etc, evt. checksum

Nu moet je dus ook weten welk data type je moet (mag) verzenden voor je apparaat. Dat zal waarschijnlijk in de documentatie staan van NMEA of misschien weet je het zo.

Als de bovenstaande informatie ook bekend is, moet de rest niet meer zo moeilijk zijn..

Verwijderd

Topicstarter
Die IMEMS geeft gewoon een continu signaal van 18mV/G af (accelerometer). Ik heb genoeg ervaring om daar een versterker bij te klussen die je een 0-5 V digitaal signaal geeft voor de maximale range.

Dat omzetten naar digitaal is ook geen probleem. Heb het al vaker met audio gedaan.

Ik zal dus zelf weer aan de pruts moeten

Dat van die sentences klopt:

http://www.interfacebus.com/NMEA-2000_Standard.html

Ik wil zelf el een programmer bouwen. Wie heeft er een goeie (simpel) aanrader?

Bas

Bedankt zo ver allemaal

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Ik denk dat je best eerst gaan kiezen welke µC je wil gaan gebruiken.

ga je voor atmel, microchip, ...
Elk merk heeft andere µC, en zal dus ook een andere progger nodig hebben.

Ik denk dat dit zowat de meest simpele is. Is voor Atmel's.
Ik heb hier nog een eagle schematje liggen moest je geinteresseerd zijn.

Verwijderd

Topicstarter
Hoe selecteer ik zo'n unit?

En nog een extra zin om het geen oneliner te maken ;)

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Je moet eerst weten wat je nodig hebt.

Input:
Eerste is een ADC. Het is het simpelste om de ADC in je µC dus dat heeft die al nodig.
Voor de rest geen input nodig denk ik dus gaan we het hierbij laten.

Uitput:
Je wilt de gegevens op een NMEA bus zetten. Zo te zien ware der 2 signalen nodig, rx en tx.
Ik heb gezien dat het overeenkomt met een CAN bus. Dus misschien dat je dat zou kunnen gebruiken. Anders 2 standaard output pinnen die eventueel met extra hardware aan de bus gekoppeld kunnen worden.
De AT90CANxx van atmel zouden hiervoor misschien bruikbaar kunnen zijn.
Ik heb ook ergens gelezen dat elke µC met een U(S)ART ook kan aangezien dat NMEA gewoon een seriële bus is, en daar dan het NMEA protocol op gooien.
(Ik zou dan wel eentje met 2 UART's nemen of zo dat je ook nog je pc er kan aansluiten tegelijk.)
Maxim heeft ook een aantal µC met CAN bus, maar die zijn wat moeilijker om te programmeren dacht ik.
Een microchip micro PIC heeft meestal ook wel een UART dus zouden die ook voldoen.

Ik denk dat het gewoon een kwestie is van juiste ADC en dan een keuze maken.

Op CO staat nog een pic progger. Als je daarvoor een µC kunt vinden met een ADC kun je ook al beginnen.

Je moet de FAQ ook eens nalezen, het gedeelte van µC's dan toch.

[ Voor 7% gewijzigd door kluyze op 26-07-2006 19:07 ]


Verwijderd

Topicstarter
Heey! Thx. Zie nu de pic progger tut.

Omdat dat soort dingen achteraf pas duidelijk worden:

Wat is handiger om mee te beginnen? PIC of AVR?

Beide veel over te vinden, maar een pro/con zie ik nergens...

(NMEA = een CAN bus, ik zie veel AVR's met een CAN controller EN een ingebouwde ADC, is dat een argument?)

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Ik weet niet of het gelijk is, die link dat je gaf zei dat NMEA een uitbreiding was op CAN. Maar als dat alleen van protocol is dan maakt het niet uit, ik ken NMEA niet.

ADC zul je toch moeten gebruiken, dat de µC dat heeft is een groot pluspunt. Anders moet je die er nog bij zetten.
Als CAN kwa hardware identiek is aan NMEA zal een µC met CAN zeker mooi meegenomen zijn.
Dan moet je alleen zien hoe je die CAN-bus gaat aansturen.

Ik persoonlijk zou gaan voor een pic µC, gewoon om het feit dat die te sampelen zijn :p

Maar anders zou ik de goedkoopste nemen die de juiste features heeft :)

Dit zijn volgens mij alle pic µC die een CAN bus aan boord hebben.
(En ze hebben allemaal meerdere ADC's)

[ Voor 17% gewijzigd door kluyze op 26-07-2006 22:04 ]


  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Volgens mij is een CAN bus niet strikt noodzakelijk (maar pin me er niet op vast). Een normale U(S)ART zou ook moeten voldoen.
Dat geeft je iets meer mogelijkheden om uit te kiezen.
Als je wel de CAN bus wilt gebruiken, dan zul je inderdaad 1 uit het lijstje dat kluyze gaf moeten kiezen en je moet een extra chipje gebruiken. (MCP2551 of iets dergelijks).

Een picprogger is makkelijk zelf te maken...

Komt het aan op het schrijven van het programma. Je kunt alles in assembler schrijven, er zijn mensen die er bij zweren. je kunt ook een hogere taal nemen als C, pascal, basic o.i.d.
Er zijn op internet wel verschillende compilers te vinden. Ikzelf ben wel redelijk tevreden met de compilers van MikroElektronika.

Als je problemen hebt met programmeren moet je daar maar weer eens verder over vragen.

Verwijderd

Topicstarter
Meer dan dat ik weet hoe je het schrijft weet ik niet over de CAN bus.

Ik zal een progger knutselen (i heb er ook nog 1 liggen) en eens die politieledjes proggen.

Voor het proggen van de rest ga ik julle zeker nog lastigvallen.

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Bij de compilers (of eigenlijk IDE) van mikroelektronika zitten veel routines e.d. ingebouwd. Zo ook die voor CAN bus communicatie. Met een beetje de help lezen kom je al een heel eind en als je een voorbeeldje nodig hebt moet je het maar zeggen.

Verwijderd

Topicstarter
16f88 en 16f690 besteld....

Nu een amnier vinden om m via de laptop te proggen.. misschien toch maar die pickit2, alle programmers zijn voor seriele connectors...


Bas

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Hmm ja lastig als je geen seriele poort hebt. Wat je kunt proberen is een usb naar serieel kabeltje aanschaffen... Moet je wel een progger met externe voeding nemen/hebben, aangezien het zonder externe voeding nog wel eens wil mislukken als je via zo'n kabeltje probeert te werken...

Verwijderd

Topicstarter
ziet je progprogramma dat dan ook ale een seriele poort?

En, een parallel->serieel?

http://www.rentron.com/Myke4.htm <- of dit misschien?

Ik zal met die laatste eens een hex in zo'n pic proberen te proppen...

  • joopv
  • Registratie: Juli 2003
  • Niet online
Iemand heeft ooit de officiele NMEA 2.00 specs gepost als gewoon tekstbericht op Usenet, heel lang (11 jaar 4,5 maanden) geleden. Tegenwoordig moet je voor de officiele specs van de NMEA organisatie zelf een boel geld voor neertellen.

Als je goed zoekt in Google Groups kun je het gewoon terugvinden. Ik heb het hier ook (200k text).

Denk er wel aan dat je waarschijnlijk een RS485 interface moet maken.

[ Voor 61% gewijzigd door joopv op 27-07-2006 21:21 ]


Verwijderd

Topicstarter
Ehm.. omdat die dta illegeaal is, mag ik je vragen dit vooral NIET te sturen naar bas*@*cor-business.nl?

hoe zei jack sparrow dat? savvy?

  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Verwijderd schreef op donderdag 27 juli 2006 @ 18:51:
ziet je progprogramma dat dan ook ale een seriele poort?
Ja, je krijgt er een com-poort bij
En, een parallel->serieel?

http://www.rentron.com/Myke4.htm <- of dit misschien?

Ik zal met die laatste eens een hex in zo'n pic proberen te proppen...
Deze zal hoogstwaarschijnlijk ook werken, gewoon proberen...

Ooh ja, klik even op de link die * joopv gaf, dan heb je alles al dacht ik, ik zal de documentatie eens doorbladeren, kijken wat nuttig is...

Verwijderd

Topicstarter
}:O stupid me 8)7
Pagina: 1