Forum: Mikrocontroller und Digitale Elektronik Auslesen von Microsonic Ultraschallsensor


von Frank S. (frank_s40)


Lesenswert?

Hallo,

ich habe hier einen Microsonic Ultraschallsensor pico-usb-25/cd.
Der Sensor gibt laut Hersteller Daten (zu finden auf der Homepage vom 
Hersteller) die Entfernung an einem Pin bitseriell aus.
Ich würde mir das ganze gerne mal genauer anschauen. Doch ich weiß nicht 
wie ich diesen Pin mit meinem Laptop auslesen kann.... Ich versorge den 
Sensor mit 24V DC.

Jemand eine Idee??

Gruß Frank

von Yalu X. (yalu) (Moderator)


Lesenswert?

Frank S. schrieb:
> Doch ich weiß nicht wie ich diesen Pin mit meinem Laptop auslesen
> kann....

Der Sensor verwendet ein asynchrones serielles Protokoll mit 10
Datenbits und 10 kbaud Übertragungsrate. Die Signalspannung entspricht
dabei in etwa der Versorgungsspannung von 10-30V (bei dir 24V).

Eine solche Schnittstelle hat dein Laptop ganz sicher nicht.

Die hohe Signalspannung könnte man noch mit einem Spannungsteiler oder
einer Kombination aus Widerstand und Z-Diode auf ein erträgliches Maß
reduzieren.

Da kein PC/Laptop über einen 10-Bit-UART verfügt, müsste man das
Protokoll in Software abwickeln. Dazu benötigt man aber irgendeinen
Eingang, dessen Signalpegel (high/low) per Software abgefragt werden
kann. Früher konnte man dafür die Steuerleitungen der parallelen oder
der RS-232-Schnittstelle missbrauchen. Leider sind diese Schnittstellen
sehr stark aus der Mode gekommen.

Selbst wenn so eine Schnittstelle verfügbar ist, muss muss die Abfrage
des Signals durch die Software in einem genauen Zeitraster erfolgen.
Da jedes Bit nur 100µs lang ist, stellt das hohe Anforderung an die
Echtzeitfähigkeit, die von den gängigen PC-Betriebssystemen (Windows,
Linux, MaxOS) kaum erfüllt werden.

Ein einfacher Mikrocontroller tut sich mit solchen Dingen wesentlich
leichter. Du könntest also einen AVR, PIC o.ä. nehmen und dafür eine
Software schreiben, die das Kommunikationsprotokoll abwickelt und die
gelesenen Abstandsdaten per USB auf deinen Laptop überträgt.

von N. M. (mani)


Lesenswert?

Ich hätte wahrscheinlich auch zu irgend einem uC Board gegriffen das ich 
hier rum liegen habe und das 10 Bit Daten versteht.
Bisschen Spannungsanpassung und dann eine umgerechnet Distanz ausgeben.

Edit: wobei ich gerade sehe das die meisten auch nur 8/9 Bit 
unterstützen. Alternative wäre ein FPGA Eval mit einem kleinen Softcore 
der das auf USB schiebt. Ist aber auch schon etwas oversized...

Der Hersteller selbst bietet aber auch ein Tool an. Kurze Suche ergibt 
ca 100€ oder vielleicht auch günstiger auf Gewissen Plattformen

https://www.microsonic.de/de/zubehoer/programmierhilfe/lca-2.htm

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

Was mir gerade noch einfällt, ein USBClone könnte das bestimmt auch wenn 
man ein eigenes Script dafür schreibt.

von Frank S. (frank_s40)


Lesenswert?

Vielen Dank für die Tipps und Hinweise...
hatte mir das etwas einfacher vorgestellt.
Dann werde ich wohl auf einen anderen Sensor umschwenken, und den Pico 
versuchen zu verkaufen....

von Wolfgang (Gast)


Lesenswert?

N. M. schrieb:
> Ich hätte wahrscheinlich auch zu irgend einem uC Board gegriffen das ich
> hier rum liegen habe und das 10 Bit Daten versteht.
> Bisschen Spannungsanpassung und dann eine umgerechnet Distanz ausgeben.
>
> Edit: wobei ich gerade sehe das die meisten auch nur 8/9 Bit
> unterstützen.

Mit einem Soft-UART sind die 10kBd doch kein wirkliches Problem für 
einen µC.

von Amateur (Gast)


Lesenswert?

Ich würde das Teil in der Rundablage (Mülleimer) deponieren.

Wenn Deine Angaben stimmen sollen, so stimmt auch Garnichts.
Außer einer SPS kann kaum jemand was mit 24V anfangen.
10kBaud sind ebenfalls unüblich. 9600 Ja.
Die wenigsten seriellen Schnittstellen lassen sich mit 10 Bit Daten 
füttern.

Also von wenigen Ausnahmen mal abgesehen lohnt es den Aufwand nicht.

von Wolfgang (Gast)


Lesenswert?

Amateur schrieb:
> Die wenigsten seriellen Schnittstellen lassen sich mit 10 Bit Daten
> füttern.

Davon lässt sich auch nur ein echter Amateur, der zudem von Tuten und 
Blasen keine Ahnung hat, abschrecken.

Um mit den 10 Bit zurecht zu kommen, muss man sich eventuell die Mühe 
machen, in einer Soft-UART Empfangsroutine die Schleifenlänge von 8 auf 
10 Datenbits zu ändern und dafür zu sorgen, dass die Routine für die 
empfangenen Zeichen einen mehr als 8 Bit großen Speicher zur Verfügung 
hat. Die Baudrate von gängigen 9600Bd auf 10000Bd zu ändern, wäre wohl 
auch gerade noch hin zu kriegen.
Oder man taktet die Daten über SPI rein, wo man sich dann nur um den 
Start per Software kümmern muss und der eigentliche Zeichenempfang 
vollständig per µC Hardware erfolgen kann.

Geht es hier im Forum um Mikrocontroller oder nicht?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die UARTs vieler Mikrocontroller unterstützen bis zu 9 Datenbits.
Missbraucht man das Paritybit ebenfalls als Datenbit, hat man die
benötigten 10 Bits zusammen.

von Wolfgang (Gast)


Lesenswert?

Yalu X. schrieb:
> Die UARTs vieler Mikrocontroller unterstützen bis zu 9 Datenbits.
> Missbraucht man das Paritybit ebenfalls als Datenbit, hat man die
> benötigten 10 Bits zusammen.

Auch dieser Ansatz setzt selbständiges Denken und ein bisschen 
Kreativität voraus. Das gibt es selten zum "Anstöpseln und läuft", so 
dass mancher Amateur auch damit überfordert ist ;-)

Und das einem Laptop beizubringen, dürfte der richtig steile Teil einer 
Lernkurve sein. Ohne µC dazwischen wird das mühsam.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.