PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anschluss an Computer



bieler
04.08.2008, 09:04
Hallo Zusammen,

Ich bin neu hier. Ich bin auch neu im Bereich Robotik / Sensorik, komme selbst aus dem Bereich Informatik / Programmierung. Daher habe ich auch für euch vermutlich ziemlich simple Fragen, welche ich jedoch mit meinem bisherigen Wissen und Recherchen im Internet nicht beantworten konnte.

Ich habe hier ein Gerät, welches ein Lineares analoges Signal von -4Volt bis +4 Volt ausgibt. Dieses Signal möchte ich nun mit dem Computer auswerten. Es gibt aber natürlich keine Schnittstelle direkt am Computer, welche dieses Signal auswerten könnte, daher brauche ich ein "zwischenmodul".
Ich vermute, dass hierfür ein Microcontroller nötig ist, habe aber keine Ahnung was für einer.
Die Anforderungen wären:
- Eine möglichst hohe Auflösung (schätzungweise 200 Stufen, wenn nicht möglich dann gehen evtl. auch weniger...müsste ich testen).
- Eine schnelle Verarbeitung des Signals, wenn möglich das Signal < 1ms an den Computer geliefert...maximal 4-5 ms.

Ich denke Ihr könnt mir hierbei helfen, in Programmiererforen kennt sich damit scheinbar niemand aus (war vor ein paar Monaten eine andere Frage ohne Antwort in dem Themenbereich).


Gruss aus der Schweiz

Bieler

Hubert.G
04.08.2008, 10:26
Theoretisch muss das Signal mit einem OP in den positiven Bereich geschoben werden. Dann kann es ein Mikrocontroller mit dem ADC auswerten und über RS232 oder mit einem USB-Konverter auf USB an den PC übertragen. Die ADC Abtastfrequenz sollte so gewählt werden, das die Übertragung zum PC etwas schneller ist, um Datenstau zu vermeiden.
Praktisch könnte ich dir beim µC helfen, bei den OPs bin ich nicht so gut, da probiere ich immer bis es funktioniert wie ich es will.

Vitis
04.08.2008, 11:22
hmmm ... -4V ... knifflig.
da bräucht man dann ne symmetrische Spannungsversorgung
für die OPs. ist n nicht kleiner Schaltungsaufwand.
Ich denk eleganter währe es 2 5V Spannungsregler
hintereinander zu nehmen, dann hätten wir einmal
+5V und dann +10V. Die +5V nehmen wir dann als virtuellen
GND, dann könnte man mit nem einfachen Spannungsteiler
die Sensorspannung von maximal +9V und minimal +1V
auf maximal +4,5V und minimal +0,5V teilen.
Dann auf nen ADC mit Ref 5V und schon haben wir
via RS232 das Problemchen gelöst .... keine große
Sache.
Für genauere Schaltungsausführung bräucht man
dann noch das Datenblatt des Sensors.
Kannste mal die Bezeichnung von dem Teil
posten?

oberallgeier
04.08.2008, 12:09
Ich bin faul und neige zu einfachen Lösungen. Für ähnliche Fälle habe ich eine Blackbox mit USB-Anschluss und breit konfigurierbaren Eingängen (aber kostet ein bißchen was) - wie wärs mit einem Vielfachmessinstrument mit RS232. Das ist erprobt, kann meist in *.txt oder *.xls (Achtung, das kann langsam gehen) ausgeben.
Guck doch mal z.B. hier:
http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=D14;GROUPID=541;ARTICLE=4232 7;START=32;SORT=artnr;OFFSET=16;SID=26lwEsdawQARoA AHoGbmE622031ff62504b328408a6bc8d852a64
das kann Deine +/- 4V in einem Arbeitsbereich . . . und noch vieles mehr. Sozusagen buy and plug and play - in basic german. Und

Verfügt über eine optisch isolierte PC-Schnittstelle, RS-232C-Schnittstellenkabel und Software für Windows 9x /2000/NT/XP zur Darstellung, Aufzeichung und zum Speichern von Daten.
Ach ja, ich finde REINE IR-Schnittstellen nicht gut - ich meine, dass die recht langsam sind.

jeffrey
04.08.2008, 13:05
hi,
problem, siond glaub auch die 1ms, ich glaub die atmels haben irgendwas mit 40ms wandelzeit, oder sowas.
mfg jeffrey

bieler
04.08.2008, 13:14
Ok, dann muss ich als unwissender erst mal nach Abkürzungen fragen:
OP = ?
ADC = ?
Wie kann ich auf dem RS232 ein solch analoges Signal auswerten? Bisher hab ich nur Logisch 1 und Logisch 0 verwertet, aber nicht einen Spannungswert ausgelesen.
USB wäre mir lieber, da ich die einzige externe RS232-Schnittstelle schon verbraucht habe, und ungerne Intern verkabeln will. Die Frage ist hierbei natürlich die Geschwindigkeit...Zeit für das Signal sind wie gesagt max. 3-5ms, lieber <1ms, und die Frequenz in der gemessen wird sollte deutlich höher sein, da die Frequenz effektiv von einer Fotozelle bestimmt wird (ca. alle 5-10ms ein Signal) (Die ist bereits an den PC angeschlossen, wobei hierbei ein komplettes Board für diverse Fotozellen zuständig ist und ich damit nichts zu tun hab).
Die Bezeichnung und das Datenblatt des Teils habe ich noch nicht, dürfte aber noch kommen. Ist ein Sensor von Keyence, welche Distanzen / Dicke von Objekten mit Laser misst.

oberallgeier:
Tönt soweit interessant, wobei ich da denke das es mit der Geschwindigkeit nicht mehr hinhauen dürfte. Zudem müsste das Teil mit C, C++ oder ,wenn nicht anders lösbar, mit Assembler auslesbar sein...

Hubert.G
04.08.2008, 13:33
OP ist ein Operationsverstärker www.elektronik-kompendium.de/sites/bau/0209092.htm
ADC ein Analog-Digitalconverter, die Spannung wird in z.B. 8bit, 256 Schritte aufgeteilt. Diese 8bit kannst du dann via RS232 - USB übertragen. 115k sollten schnell genug sein.
Die Conversion-Time eines AVR liegt unter 1ms.

bieler
04.08.2008, 14:01
Die Lösung mit dem OP und dem µC tönt soweit eigendlich recht schlau und Sinnvoll, nur dass ich da wohl wirklich Probleme mit dem Umsetzen haben werde. Wobei ich natürlich sehr gerne auch mal einen µC programmieren würde ;). Die Frage ist bloss, ob ich die Zeit dafür finde....
Was kosten diese Bauteile, wo kriegt man die und welche würdet ihr mir hierbei empfehlen? Wenns nicht allzu teuer ist, kann ichs ja gerne mal testen. Wichtig ist mir einfach die USB-Schnittstelle, gibts µC die sowas direkt haben?
Wichtig ist mir auch, dass ich nicht 20 Bauteile habe...ich muss das ganze villeicht auch noch ein paar mal reproduzieren.
Nicht wie bei meiner letzten Schaltung, wo ich ein Signal von +12V für logisch 1 und 0V für logisch 0 in +5V für logisch 1 und -5V für logisch 0 umwandeln musste...dafür brauche ich im Moment ca. 8-10 Bauteile...

Vitis
04.08.2008, 16:07
hmmm ... für meine Lösung währen das
eine Spannungsquelle / Steckernetzteil 12-15V=
dann 2x 7805, dann n ATTiny und n ft232 für die
USB-Geschichte. Was der noch an Aussenbeschaltung
braucht musst du dann jemand fragen der mit dem Ding
schon gearbeitet hat.

oberallgeier
04.08.2008, 16:55
... problem, siond glaub auch die 1ms, ich glaub die atmels haben irgendwas mit 40ms wandelzeit, oder sowas...Glücklich wer lesen kann:

23. Analog-to-Digital Converter
23.1 Features
• 10-bit Resolution
• 0.5 LSB Integral Non-linearity
• ± 2 LSB Absolute Accuracy
• 13 - 260 μs Conversion Time

... soweit interessant, wobei ich da denke das es mit der Geschwindigkeit nicht mehr hinhauen dürfte. Zudem müsste das Teil mit C, C++ oder ,wenn nicht anders lösbar, mit Assembler auslesbar sein...Na ja, billig und sehr schnell - das suchen wir alle. Übrigens - worin liegt die Schwierigkeit eine RS232 mit C oder C++ oder Assembler auszulesen? Darin werden sie hier im Forum geholfen :), schnell und gut :)

Hubert.G
04.08.2008, 17:46
Für die Fragebeantwortung nach den Bauteilen müsste man etwas mehr wissen.
Was ist vorhanden, welche Stromversorgung des Sensor usw.
Mit 5 bis 6 Bauteilen lässt sich das sicher nicht machen, da dürften auch 20 zuwenig sein.

Besserwessi
04.08.2008, 19:58
Um das -4..4 V Signal an den Spannungsbegreich des AD wandlers anzupassen reicht ein einfacher Spannungsteiler 1:1 gegen + 4 V. Da kriegt man dann 0...4 V raus. man kann natürlich auch +5V nehmen, dann sind es halt 0,5...4,5 V. Eine negative Spannungsversorung braucht man dann gar nicht mehr.

fhartz
05.08.2008, 06:14
Moin,wenn man mit positiver Spannung auskommt ,ist eine sparsame Schaltung mit einem PIC wohl das einfachste.
4kanal 10 Bit
http://www.ees-hartz.de/P64_HLP/page11.html
http://www.ees-hartz.de/P64_HLP/page9.html
mfg F.H.

bieler
05.08.2008, 08:25
Na ja, billig und sehr schnell - das suchen wir alle. Übrigens - worin liegt die Schwierigkeit eine RS232 mit C oder C++ oder Assembler auszulesen? Darin werden sie hier im Forum geholfen :), schnell und gut :)

Billig ist hierbei nicht so extrem wichtig, einfach nicht mehrere hundert Euros ;). Nicht allzu teuer meinte ich eher darauf bezogen, dass ich nicht etwas für 100Euro kaufen kann, wenns dann nicht funktioniert....

Gegen den RS232 spricht von der Programmierung her nichts, habe ich auch schon gemacht (mit dem 12V - 0V wie genannt u.a. z.B.).
Es spricht etwas dagegen, dass diese Schnittstelle bereits benutzt wird, und normalerweise an einem Computer nur 1 solche externe Schnittstelle sitzt (abgesehen von den internen die man verkabeln könnte, aber das geht nicht), heisst, ich kann RS232 einfach nicht nutzen. USB gibts an fast allen PC's min. 2 Anschlusse, meist sogar einige mehr ;).


Moin,wenn man mit positiver Spannung auskommt ,ist eine sparsame Schaltung mit einem PIC wohl das einfachste.
"Zugriffszeit: < 60 ms für 4 Messwerte" - Das ist leider viel zu hoch.



Für die Fragebeantwortung nach den Bauteilen müsste man etwas mehr wissen.
Was ist vorhanden, welche Stromversorgung des Sensor usw.
Mit 5 bis 6 Bauteilen lässt sich das sicher nicht machen, da dürften auch 20 zuwenig sein.

Also an verfügbaren Spannungen sollte es nicht scheitern:
5V, 12V, 24V, 110V, 220V, 380V


Was meint ihr zur Lösung von Vitis? Die kommt ja auch mit nur ca. 4 Bauteile aus...


Wofür das ganze? (Falls es interessiert)
Das ganze soll für eine Dickenmessung auf einer Briefsortermaschine genutzt werden ;). Deswegen hab ich auch alles Mögliche an Spannungen zur Verfügung :).

oberallgeier
05.08.2008, 10:46
... Billig ist hierbei nicht so extrem wichtig, einfach nicht mehrere hundert Euros ;). Nicht allzu teuer meinte ich eher darauf bezogen, dass ich nicht etwas für 100Euro kaufen kann, wenns dann nicht funktioniert ...Nur um den status quo mal ein bisschen zu fixieren :
http://www.newport-omega.de/produkt/p2/inet.asp
So etwas habe ich mit viel Erfolg benutzt, allerdings mit einer 22bittigen Auflösung. Ähnliche Spielwaren kann man natürlich auch in den PC einbauen:
http://www.newport-omega.de/produkt/p2/daqboard30.asp

fhartz
05.08.2008, 12:53
... Billig ist hierbei nicht so extrem wichtig, einfach nicht mehrere hundert Euros ;). Nicht allzu teuer meinte ich eher darauf bezogen, dass ich nicht etwas für 100Euro kaufen kann, wenns dann nicht funktioniert ...Nur um den status quo mal ein bisschen zu fixieren :
http://www.newport-omega.de/produkt/p2/inet.asp
So etwas habe ich mit viel Erfolg benutzt, allerdings mit einer 22bittigen Auflösung. Ähnliche Spielwaren kann man natürlich auch in den PC einbauen:
http://www.newport-omega.de/produkt/p2/daqboard30.asp


Auch der OM-DAQPRO-5300 ist ein guter,mfg

oberallgeier
05.08.2008, 13:47
... Auch der OM-DAQPRO-5300 ist ein guter ...Stimmt, aber bieler will das ja wohl online auslesen, und der 5300 ist ein Datenlogger - soweit ich die Beschreibung verstehe.

fhartz
05.08.2008, 14:16
... Auch der OM-DAQPRO-5300 ist ein guter ...Stimmt, aber bieler will das ja wohl online auslesen, und der 5300 ist ein Datenlogger - soweit ich die Beschreibung verstehe.


Moin,das geht mit dem 5300 ganz gut, immerhin noch mit 100Hz über usb.
Bieler hat ja auch geschrieben,das er eine hohe Auflösung wünscht,seine angegebene Auflösung von 200 ,da kommt er ja schon mit 8 Bit hin.

Vielleicht kann er, bei gegebener Anpassung ja auch über die Soundkarte einlesen,mfg F.H.

bieler
05.08.2008, 14:53
Jo, das wäre theoretisch was, das passen würde, nur sind wir da dann schon im Preis zu hoch. Etwas kleineres, auch nur mit 8Bit-Auflösung und weniger Möglichkeiten, woran ich aber doch dieses Element von -4V bis +4V anschliessen kann, würde durchaus reichen. Aber sowas hab ich bisher noch nicht gefunden.
Die vorgeschlagenen Geräte ist doch fast wie mit Kanonen auf Spatzen geschossen....

fhartz
05.08.2008, 15:33
Jo, das wäre theoretisch was, das passen würde, nur sind wir da dann schon im Preis zu hoch. Etwas kleineres, auch nur mit 8Bit-Auflösung und weniger Möglichkeiten, woran ich aber doch dieses Element von -4V bis +4V anschliessen kann, würde durchaus reichen. Aber sowas hab ich bisher noch nicht gefunden.
Die vorgeschlagenen Geräte ist doch fast wie mit Kanonen auf Spatzen geschossen....

Mit welchem Betriebssystem arbeitest Du ?
Ich habe noch einen OZZIFOX von Witthig,der war damals schon seiner Zeit voraus, serieller Anschluß mit offenem Protokoll,die vorhandene Software
läuft sogar noch auf Win 2000,und sonst kann man sich selbst schnell eine schreiben,mfg F.H.

Besserwessi
05.08.2008, 16:44
Wenn der RS232 Port fehlt kann man da relativ günstig einen USB-RS232 Umsatzer kaufen. Da ist im prinzip sowas wie der FT232 und ein max232 drin. Damit spart man die den fummeligen Teil mit dem dem FT232, der nur im nicht ganz so einfach zu lötender Form zu kriegen ist. Wenn man die Schaltung nicht selber bauen will, könnte man da auch auf ein fertiges Board zurückgreifen. Viel mehr als eine UART mit max232 und einen reausgeführen AD braucht man da nicht.

bieler
06.08.2008, 07:51
Ich arbeite mit verschiedenen Versionen, aber vorallem mit Windows Server 2003 oder Windows XP.
Ich müsste die Lösung evtl. nicht nur 1x aufbauen, von daher danke für das Angebot, aber so bin ich das nächste Mal gleich weit.

Ich seh schon, sowas ist ohne das nötige Wissen sehr kompliziert oder zu teuer...find ich irgendwie komisch, gibt doch X Anwendungen wo sowas gebraucht wird...

oberallgeier
06.08.2008, 07:59
... ist ohne das nötige Wissen sehr kompliziert oder zu teuer...find ich irgendwie komisch, gibt doch X Anwendungen wo sowas gebraucht wird...Jetzt bin ich schon platt. Einmal gehe ich davon aus, das fast alles ohne das nötige Wissen eher kompliziert bis sehr kompliziert ist. Zum Zweiten wundere ich mich, warum x-fache Anwendungen einfach und billig sein müssten. Klingt irgendwie nach dem Slogan: "Hier bin ICH, Welt komm´ her und mach mir ein bequemes Leben."

Hubert.G
06.08.2008, 11:47
Kommerziell mach so etwas nur Sinn wenn es sich sicher einige hundert- besser tausend-mal verkaufen lässt. Für ein paar Stück und ein vielleicht sind die Entwicklungskosten und Risiko zu hoch.
Für mich als Bastler zählen aber nur die Hardwarekosten, wenn es dann funktioniert hat sich der Aufwand schon gelohnt.
Du hast allerdings Recht, ohne dem nötigen Grundwissen geht es nicht.

Besserwessi
06.08.2008, 18:11
So sehr kompliziert oder teuer muß das doch gar nicht sein: mit RS232 Port am PC würde ein board wie RN-ninicontrol oder der Atmel Butterfly reichen. Das Programm dazu sollte auch minimal sein.
Wenn es über USB laufen muß, dann braucht man halt einen USB/RS232 Wandler. Über USB könnte man aber ein Problem mit Verzögerungen haben, denn für den USB werden die Daten eventuell gepuffert und kommen dann mit ein paar ms Verzögerung an. Für Zeitkritische Steuerungen ist aber Windows oder das normale Linux nicht gut geeignet, da nicht echtzeitfähig.

bieler
11.08.2008, 08:51
Danke für die Info zum RN-Minicontrol, das tönt soweit mal sehr interessant, ich muss mich da mal einwenig einlesen.

Für Zeitkritische Steuerungen ist aber Windows oder das normale Linux nicht gut geeignet, da nicht echtzeitfähig.
Da muss ich als Programmierer zeitkritischer Anwendungen wiedersprechen. Es ist durchaus möglich, zeitkritische Anwendungen unter Windows zu programmieren.
Dies ist aber nicht so einfach, weswegen viele davor zurückschrecken und behaupten, es sei unmöglich, lasst euch davon aber nicht abschrecken ;).
Wir arbeiten seit jahren erfolgreich mit Windows im Millisekunden-Bereich, und das läuft wunderbar :).

pyr0skull
11.08.2008, 09:10
Man kann sich btw. auch einen Echtzeit Linux-Kernel backen ;)