PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sensorauswahl



ES1S
06.06.2012, 06:43
Guten Morgen,

suche einen passenden Sensor der in etwa 10 cm (Höhenunterschied) über dem Boden gefahren wird.
Möchte gewisse "Schlaglöcher" detektieren.

Stromversorgung spielt keine Rolle!
Dachte da aber trotzdem an einen "einfachen" Distanzsensor.
Nur weiß ich eben nicht was passiert wenn der Laufbereich mit 80 cm überschritten wird!
Wenn in 1m nichts kommt, meldet er immer noch dass in 80cm nichts kommt?


Welchen Sensor sollte ich verwenden?


Vielen Dank!

ePyx
06.06.2012, 10:00
Und warum nimmst du nicht http://www.conrad.de/ce/de/product/185364/ ? Der geht bis 150 cm. Die Spannung kannst du entweder durch Hardware vorher verarbeiten oder direkt auf den ADC geben. Wenn der ADC-Wert der deinen 100 cm entspricht unterschritten wird, dann weißt du, dass dort dein Schlitz ist.

Angenommen du hast einen Atmega8 mit einer Referenzspannung von 2,56 V, würde ich den Ausgangspannungsbereich des Sensors auf die 0-2,56 V anpassen. Softwareseitig hinterlegst du dann einfach den Wert, der deinem Abstand entspricht. Wenn es noch andere Schlitze gibt, dann kannst du es ja noch feiner gestalten. Ich hätte jedoch eigentlich bedenken ob bei einem Schlitz, aufgrund der Breite, überhaupt ein Signal ausreichend reflektiert wird.

oberallgeier
06.06.2012, 10:15
... Sensor der in etwa 10 cm ... über dem Boden ... ein Schlitz (1m tief) ...
... was passiert wenn der Laufbereich mit 80 cm überschritten wird ...Eine wichtige Frage ist, wie schnell Du Deinen Sensor fährst, d.h. einmal wie schnell er den Schlitz erkennen muss und wie breit der Schlitz ist - wie lange der Sensor über dem Schlitz ist. Im Prinzip wird der Sensor funktionieren.

Der verlinkte Sensor bringt laut Spezifikation 25 Messwerte pro Sekunde, wenn du also z.B. mit 1 m/s fährst und der Schlitz ist nur 3 cm breit, dann wird die Messung öfters falsch sein. Für eine solche Aufgabe würde ich zwei Messungen bis zum eindeutigen Ergebnis anstreben. Bei 1 m/s also sozuagen ca. 2,1 mal 40 ms (wenn er kurz nach der "letzten" Messung gerade über die Schlitzkante fährt...) - sprich ca. 84 ms oder knapp 9 cm. Als Minimum ist bei dieser Geschwindigkeit eine Messung notwendig ca. 1,1 mal 40 ms dh. 44 ms - der Schlitz muss also knapp 5 cm sein.

Zu Deiner Messaufgabe ist es dringend empfehlenswert den Sensor mit seiner Längsachse etwa parallel zur Schlitzachse anzuordnen.

Das Problem mit Deinen 80 cm oder 1 m verstehe ich nicht ganz. Gibt es verschieden tiefe Schlitze und nur Schlitze über 1 m sind zu detektieren?

Der Sensor hört bei mehr als 80 cm nicht sofort auf zu messen. Allerdings ist bei mehr als 80 cm das vom Sensor ausgegebene Signal eine sehr geringe Spannung, sodass Du Unterscheidungen der Art: 80 cm oder 82 cm kaum mehr hinbekommst wegen geringer Signalunterschiede und einem immer vorhandenen Messrauschen. Eine beispielshafte Messung mit der zugehörigen Auswertung ist hier zu sehen - klick mal. (https://www.roboternetz.de/community/threads/36884-Basic(-Billig-Baby)-Mono-Wheel?p=352718&viewfull=1#post352718) Da siehst Du auch, dass bei großen Abständen das Sensorsignal recht klein ist (=> sehr kleiner, ausgelesener ADC-Wert).

Viel Erfolg

Nachtrag: der von Daniel angesprochene Sensor scheint mir auch sinnvoll zu sein, es gelten auch bei dem die oben genannten Überlegungen zur Messgeschwindigkeit.

ES1S
06.06.2012, 22:03
Herzlichen Dank für eure Antworten!


Ich frage mich eben ob man so programmieren kann, dass ich bei Schlitztiefe trotzdem noch sagen kann: Da ist ein Loch!
Also alles was tiefer ist, möchte ich eben ausgespuckt bekommen. Auch wenn des dann 1,70 oder 1,80 tief ist.

Gibt es denn Beispielquelltext für die Implementierung dieser Sensoren? Bin da leider nicht fündig geworden in der Sufu.

Wünsche euch einen schönen Abend

ePyx
06.06.2012, 23:00
Naja die Beispielimplementierung ist das Auslesen des Analog-Digital-Wandlers. Dann hast du wie oben beschrieben einen von der ADC-Auflösung abhängigen Wert. Bei der Megas 10 Bit => Wertebereich von 0 - 1023. Angenommen du hast die Ausgangsspannung des Sensors auf den vollen Auflösungbereich angepasst ( 10 - 150 cm <=> 0 - 1023 ), dann würde 1 dem kleinsten Wert den der ADC auflösen kann entsprechen.

Bei Null wärst du weiter als 150 cm weg. Alles dazwischen wäre idealerweise linear (was bei den Sensoren leider nur teilweise zutrifft), also könnte man alle Werte ( 2 - 1023 ) einer Entfernung zu ordnen.

ES1S
06.06.2012, 23:12
Ich versuch mich morgen mal dran!

Zwischenfrage:
Was ich noch gelesen habe: Brauche ich nen Kondensator im Sensor? Um Spannungsabfälle zu vermeiden?!
Ich probier´s einfach morgen mal ohne und dann werd ich ja sehen ob es geht...

Da muss ich "nur" die Spannung Vcc abfragen und wenn die 0 ist, ist ein Loch!
Vorteil von dem Sensor ist auch: Das ich den in der Sekunde von jemandem bekommen habe :-)

021aet04
07.06.2012, 10:10
Den Sensor kannst du nehmen. Der Nachteil ist eben das du die Distanz nicht ändern kannst. Sollte sich der Bereich einmal ändern (warum auch immer) brauchst du einen anderen Sensor. Den Sensor ließt du wie einen Taster/Schalter/... ein.

MfG Hannes