Hallo zusammen. Ich hoffe ich bin mit meiner Anfrage im richtigen Thread gelandet. Ich stehe vor folgendem Problem: Ich möchte mit meinem Raspberrry PI 3-b ca. 9 Ultraschallsensoren (40kHz) gleichzeitig auslesen, mit einer Genauigkeit von min 8bit und einer Abtastrate von ca. 1mHz. (Pro Pin sind ja 20mHz möglich, bei 8bit sollten also theoretisch sogar ~2.4mHz drin sein) Nun hat der Raspberry aber keine Analog-GPIO Pins, also müssen AD-Wandler her. Ich bin mir nicht sicher, welcher ADC dafür am besten geeignet ist. Meine Idee ist einen/mehrere I²C-Wandler zu nutzen. Allerdings will ich die Sensoren nicht alle über einen Bus verbinden, sondern einen Treiber für Pins schreiben. Könnt ihr einen bestimmten ADC empfehlen? Oder bin ich mit meinem Ansatz völlig auf dem Holzweg? Ich freue mich über jegliche Anregung, und wünsche noch einen schönen Sonntag.
Sebastian S. schrieb: > (Pro Pin sind ja 20mHz möglich, bei 8bit > sollten also theoretisch sogar ~2.4mHz drin sein) So 2.4 mHz sind ja kein Problem, daß kann man noch mit dem Bleistift von Hand digitalisieren.
Sebastian S. schrieb: > Genauigkeit von min 8bit Spannungs-Amplitude? Effektivwert? Welche Auflösung strebst du an, wie sieht die Beschaltung aus? Sebastian S. schrieb: > Abtastrate von ca. 1mHz Hm, 16 Minuten Periodendauer sind nun nicht gerade schnell. Welche "Abtastrate" soll das sein - das Sende- und Empfangsintervall der Ultraschall-Impulse? Sebastian S. schrieb: > (Pro Pin sind ja 20mHz möglich, bei 8bit > sollten also theoretisch sogar ~2.4mHz drin sein) Verstehe ich nicht. Sebastian S. schrieb: > Könnt ihr einen bestimmten ADC empfehlen? Abhängig von der Spezifikation; wie oben schon erwähnt fehlen jedoch viele dazu notwendigen Angaben: - Spannungshub (ADC single ended oder symmetrischer Eingang?) - Auflösung, max. Fehler etc. - Eingangsimpedanz etc. (abhängig von deiner Beschaltung, die wir bisher nicht kennen) - Zeitliche Anforderungen (Delays, Jitter) - bei Abtastungen im Minutenbereich ist das jedoch vollkommen unkritisch - Elektrische Schnittstellen Sebastian S. schrieb: > Meine Idee ist einen/mehrere I²C-Wandler zu nutzen. Ja, wieso nicht. > Allerdings will ich > die Sensoren nicht alle über einen Bus verbinden, sondern einen Treiber > für Pins schreiben. D. h. I²C-Software-Emulation? - Ja, klar, kannst du machen. Hängt eben ab von deinen sonstigen Anforderungen, da dies im Vergleich zum Hardware-Interface logischerweise Rechenzeit bzw. -kapazität kostet.
Hallo Toni Tester, vielen Dank für deine schnelle Antwort. also die Sensoren die ich habe, sind folgende: http://www.produktinfo.conrad.com/datenblaetter/500000-524999/507764-da-01-en-ULTRASCHALL_EMPFAENGER_KPUS_40T_16R_K769.pdf Toni Tester schrieb: > wie sieht die Beschaltung aus? Ja. Wie man warscheinlich schon feststellen konnte, bin ich eher Softwareseitig bewandert, als Hardwareseitig. Dementsprechend bin ich eben durch das "neue" Problem AD-Wandlung mit der Schaltung überfordert, ich war davon ausgegangen mit dem Raspberry wie auch bei meinem Arduino analoge Pins zur Verfügung zu haben. Im Prinzip suche ich nach einer Möglichkeit, dass Signal des Empfängers mit mindestends 8 bit Auflösung der Amplitude und ~25 Messungen "pro Welle" aufzuzeichnen. Toni Tester schrieb: > Hm, 16 Minuten Periodendauer sind nun nicht gerade schnell. Welche > "Abtastrate" soll das sein - das Sende- und Empfangsintervall der > Ultraschall-Impulse? Ich hätte gerne pro Wellenlänge des Signals ca 25 Messwerte, um später u.a. die Phasenverschiebung der Signale an den einzelnen Empfängern vergleichen zu können. Also 40kHz*25 = 1mHz Senden möchte ich mit einem seperaten Sender. Toni Tester schrieb: > Sebastian S. schrieb: >> (Pro Pin sind ja 20mHz möglich, bei 8bit >> sollten also theoretisch sogar ~2.4mHz drin sein) > > Verstehe ich nicht. Gemeint war: Bei 1mHz "Abtastrate" (s.o.) und 8bit, sind bei möglichen 20mHz pro Pin: 20mHz/(1mHz*8bit) = 2,5*10^6 Messungen/s möglich.
Wie sieht denn das Signal aus? Solche Signal sind ja meist relativ sinusförmig, oder nicht? Musst du denn das Signal vollständig aufnehmen? Wenn du nur den zeitlichen Versatz willst, kannst du über einen Schmitttrigger das Signal in ein Rechtecksignal umwandeln, welches du dann (evlt. brauchst du noch einen Pegelwandler) direkt an einem Digital-IO-Pin auslesen kannst. Mit Timer kannst du dann die Phasenverschiebung berechnen.
:
Bearbeitet durch User
Sebastian S. schrieb: > Ich möchte mit meinem Raspberrry PI 3-b ca. 9 Ultraschallsensoren > (40kHz) gleichzeitig auslesen, mit einer Genauigkeit von min 8bit und > einer Abtastrate von ca. 1mHz. (Pro Pin sind ja 20mHz möglich, bei 8bit > sollten also theoretisch sogar ~2.4mHz drin sein) Bevor du dich an solche Dinge machst, wäre es förderlich, wenn du vernünftige Einheiten verwendest. Andernfalls wird keiner verstehen, was dein Problem ist. Wenn du einen Raspberry PI für Echtzeitanwendungen einsetzen möchtest, solltest du wenigstens das Betriebssystem nennen.
> Ich hätte gerne pro Wellenlänge des Signals ca 25 Messwerte, um später > u.a. die Phasenverschiebung der Signale an den einzelnen Empfängern > vergleichen zu können. Also 40kHz*25 = 1mHz 1 mHz -> 1 Milli Hertz; 1 MHz -> 1 Mega Hertz Du verwendest hier permanent das kleine m statt das Große. Mit einem AD-Wandler alleine wirst nicht klappen, die GPIO sind einfach zu langsam und dazu ist Raspian nicht für Echtzeit geeignet. MfG,
Wolfgang schrieb: > Bevor du dich an solche Dinge machst, wäre es förderlich, wenn du > vernünftige Einheiten verwendest. Andernfalls wird keiner verstehen, was > dein Problem ist. Fpga K. schrieb: > 1 mHz -> 1 Milli Hertz; 1 MHz -> 1 Mega Hertz > > Du verwendest hier permanent das kleine m statt das Große. Gut, da lief mein Hirn wohl nicht in Echtzeit. Gemeint waren natürlich M(ega)Hz. Wolfgang schrieb: > Wenn du einen Raspberry PI für Echtzeitanwendungen einsetzen möchtest, > solltest du wenigstens das Betriebssystem nennen Fpga K. schrieb: > Mit einem AD-Wandler alleine wirst nicht klappen, die GPIO sind einfach > zu langsam und dazu ist Raspian nicht für Echtzeit geeignet. Im Moment ist Windows IoT aufgespielt.
Gehts am Ende um Phasenverschiebung von 9 Sensoren ?
Dennis H. schrieb: > Gehts am Ende um Phasenverschiebung von 9 Sensoren ? Heinz K. schrieb: > Wie sieht denn das Signal aus? Solche Signal sind ja meist relativ > sinusförmig, oder nicht? Musst du denn das Signal vollständig aufnehmen? > Wenn du nur den zeitlichen Versatz willst, kannst du über einen > Schmitttrigger das Signal in ein Rechtecksignal umwandeln, welches du > dann (evlt. brauchst du noch einen Pegelwandler) direkt an einem > Digital-IO-Pin auslesen kannst. Mit Timer kannst du dann die > Phasenverschiebung berechnen. Vielen Dank für den Hinweis, die Schmitttrigger werde ich mir mal genauer anschauen. Die Amplitude benötige ich allerdings auch. (s.u.) Das zu erwartende Signal ist im Prinzip schon Sinusförmig, allerdings mit an/abschwellzeit und je nach Aufnahmesituation auch mit stark unterschiedlicher maximaler Amplitude. Im Prinzip brauche ich die Phasenverschiebung (bei 9 Sensoren), für einen der Sensoren die Zeit zwischen Senden/Empfangen, leider aber auch die Amplitude, da ich nicht nur das Erste empfangene Signal pro Messung verwerten möchte. Hier ist dann natürlich meine Chance der Signaltrennung größer, je mehr Informationen ich in den Rechner bekomme.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.