PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kontaktierung eines sich ständig drehenden Sensors



noxon
19.01.2006, 09:50
Hallo,

ich bräuchte mal eure Meinung zu meiner Idee eines 360° Ultraschall-Abtaster.

Und zwar habe ich mir gedacht, dass ich den SRF10 (http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=7&kategorieid=15) Ultraschallsensor einfach auf einen Schrittmotor montiere der sich dann mit relativ langsamer Geschwindigkeit im Kreis dreht und somit einen Rundumblick per Ultraschall ermöglicht.

Allerdings frage ich mich, ob das wirklich so leicht funktioniert, wie ich mir das vorstelle.

Zum Beispiel weiß ich nicht, wie schnell sich der Sensor überhaupt drehen darf, damit er den reflektierten Schall auch noch auffangen kann bevor er sich zu weit gedreht hat und welche Messfehler eventuell durch die Drehbewegung auftreten würden.

Desweiteren stelle ich mir die Mechanik für eine drehbare Plattform recht fehleranfällig vor. Es gibt ja eigentlich nur die Möglichkeit mittels Schleifkontakte den Sensor mit dem Controller zu verbinden und da könnte ich mir gut vorstellen, dass es zu Übertragungsfehlern auf dem I²C Bus kommt. Hat der so etwas ähnliches wie eine Fehlerkorrektur?

Es bringt ja nichts, wenn die Hälfte meiner Messwerte nicht stimmen, weil der Kontakt mal wieder nicht 100%ig hergestellt war.

Hat jemand von euch schon einmal Erfahrungen mit solch einer frei drehbaren Kontaktierung gemacht und gibt es solche Kontakte vielleicht irgendwo zu kaufen?

Ich wäre euch sehr dankbar, wenn ihr mir dazu ein paar Tipps geben könntet, wie ich so etwas am Besten realisieren kann.


Wo wir gerade dabei sind. Könntet ihr mir auch einen Schrittmotor für diese Aufgabe empfehlen. Er braucht praktisch gar kein Drehmoment haben sondern sollte möglichst klein und stromsparend sein.

patti16
19.01.2006, 10:14
Hallo

schau dir mal den Sensorkopf von Bluenature an bei ihm klappt auch jedoch hat er einen extra Mikrocontroller dafür eingesetzt weiß nicht ob du das auch so machen willst wie er und ob du das auch so hinbekommst??

und erlässt ihn auch glaube ich nicht 360° drehen.

hier der link da kannste dann noch ein bisscehn drin stöpern.
https://www.roboternetz.de/phpBB2/viewtopic.php?t=15487


gruß
patrick

H.A.R.R.Y.
19.01.2006, 11:13
Unendlich (naja, fast) drehbare Kontaktiereinrichtung:
"Telefonkabelentzwirler" für Telefonhörer mit 4 Kontakten -
z.B. bei Pollin, Reichelt, Conrad ...

Für I²C optimal wegen der Kontaktzahl.

kalledom
19.01.2006, 12:03
Hallo,
warum nicht 360 Grad hin und her statt rotieren ? Dann brauchst Du keine Schleifringe.

xanadu
19.01.2006, 12:21
Um auf die Frage nach der Fehlerkorrektur beim I2C zu antworten: Nein, hat er nicht.

ceekay
19.01.2006, 12:28
Zum Beispiel weiß ich nicht, wie schnell sich der Sensor überhaupt drehen darf, damit er den reflektierten Schall auch noch auffangen kann bevor er sich zu weit gedreht hat und welche Messfehler eventuell durch die Drehbewegung auftreten würden.

Da du ja einen Schrittmotor verwenden willst, kannst du ja einfach mit dem weiterdrehen warten bis du das Signal wieder eingefangen hast bevor du ihn ein Stück weiterdrehst.

Ansonsten würde ich aber auch empfehlen ihn hin und her zu bewegen statt einer 360° drehung. So kannst du ja auch einen Großteil abdecken bis auf wenige Grad.

gruß ceekay

noxon
19.01.2006, 13:56
Danke für die vielen schnellen Antworten.

Zuerst einmal zu den Telefonkabelentzwirlern. Die Dinger sind schon einmal nicht schlecht und stellen wohl die Beste Möglichkeit einer Schleifkontaktierung dar.

Aber nach genauerer Überlegung bezweifle ich wirklich, ob das funktioniert.

Ich glaube es ist wirklich besser den Sensor immer hin- und herzuschwenken. Natürlich hat das den Nachteil, dass das Alter der Messwerte je nach Ausrichtung immer unterschiedlich ist.

Bei einer kontinuierlichen 360° Drehung wären alle Messwerte genau eine Umdrehungsdauer alt gewesen, bevor sie aktuallisiert würden.

Naja. So wie's aussieht lässt sich das ohne viel Aufwand wohl nicht anders lösen. So wird die Berechnung über die Beschaffenheit des Raumes allerdings noch etwas komplizierter.

Bisher hatte ich es so geplant in einem Array alle Entfernungswerte zu speichern und diese auch während der Fahrt mit dem Roboter zu korrigieren.
Bei Drehungen des Bots würde das Array einfach geshiftet und bei Bewegungen würde die gefahrene Strecke in Kombination mit dem Winkel des Messwerts den Abstandswerten hinzugerechnet oder abgezogen.

Jetzt müssten noch die unterschiedlichen Zeiträume jeder Messung mit in die Berechnung einfließen. Ob das dann noch ein genaues Abbild der Umgebung ergibt ist jetzt die Frage.

Naja. Es kommt wohl auf einen Versuch an. Zur Not kann ich nachher immer noch eine gezieltere Analyse der Umgebung vornehmen und mir nur die Richtungen ansehen, die mich interessieren.

Das würde sogar einigermaßen wie ein kleines Lebewesen aussehen, dass den Kopf bewegt.


Ach ja. Und danke für den Hinweis mit dem Pausieren der Drehung bis die Messung beendet ist. Das hätte mir wirklich selbst einfallen können. 8-[

kalledom
19.01.2006, 14:05
Dann schwenke den Sensor z.B. nach rechts ganz langsam mit Messung und nach links ganz schnell ohne Messung; dann hast Du eine Pseudo-360 Grad-Drehung.

noxon
19.01.2006, 14:13
Das wär natürlich auch ne Möglichkeit.

Lunarman
18.02.2006, 09:05
Äh - was passiert eigentlich, wenn der Sensor eine Reichweite von 80 cm hat und einfach 1m weit nichts steht? Daann kommt das Signal ja wohl nicht zurück - dann hört er einfach auf, sich zu drehen...

PICture
18.02.2006, 10:48
Hallo noxon!

Sorry, wenn ich mich nicht ganz genau erinnern kann, aber in Physik habe ich mal gelernt, dass Ultraschall in der Luft sich mit einer Geschwindigkeit von 333m/s verbreitet. Gerundet werden das ca. 1m/3ms. Wenn die Entfernung nicht gross ist, brauchst Du praktisch auf das Echo nicht warten.

Die besten mir bekannten sich standich und sehr schnell drehenden Wechselspannung Übertager haben Videoköpfe. Ultraschall Signal ist ja Wechselspannung. Vielleicht dann auch was kontaktloses ?

MfG

noxon
18.02.2006, 11:56
Danke nochmal für die Antworten, aber mittlerweile habe ich mich für eine direkte Ausrichtung mittels Servo-Motor entschieden. Ich scanne also nicht mehr alles rundherum ab, sondern richte den Sensor immer auf die Stellen aus, die mich gerade "interessieren".

Die Kontaktierung war mir bei dem drehenden Sensor irgendwie zu fehleranfällig. Ich weiß nicht genau, wie der I²C-Bus auf Kontaktschwierigkeiten reagiert hätte. Wahrscheinlich nicht all zu gut. ;)

Und eine induktive Übertragung wäre bestimmt auch nicht einfach geworden. Da bleibe ich doch lieber bei stink normalen Leitungen :)

Bluesmash
18.02.2006, 16:05
anstatt mit schleifkontakten für die datenübertragung zu arbeiten könte man ja auch IR-sendediode, nen Tsop und als protokoll den RC5 code verwenden... man bräuchte halt nen extra prozessor für den sensorkopf... und vielleicht mehrere sendedioden damit der ganze umfang abgedeckt ist...

gruss bluesmash

Lunarman
18.02.2006, 16:19
Wenn der Bot keinen Ultraschallsensor hat, könnte man sie auch einfach über Ultraschall kommunizieren lassen - ist meiner Meinung nach sicherer als Infrarot.