PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erneut Sharp IR-Distanzsensor



Matthias_W
22.03.2006, 21:24
Sorry, hatte das letzte Mal irgendwie das Gefühl, nicht richtig verstanden zu werden, daher nochmals: Wenn ich mit einem Roboter schräg auf ein Hindernis (in meinem Fall ein Quader) zufahre, kann ich dann mit IR-Sensoren die Entfernung des Punktes des Hindernisses in Fahrtrichtung noch einigermassen genau messen?
Vielen Dank
Matthias

raoul4
22.03.2006, 21:27
ich würde mal sagen, nein das kannst du nicht. das licht wird ja nicht so gut reflektriert.
mfg

Matthias_W
22.03.2006, 21:39
welche arten von sensoren wären dann geeignet? (Oder: Wie kann ich, wenn ich schräg auf ein Quader fahre, herausfinden, wie weit dieses entfernt ist und ob links oder rechts der bessere Weg ist?)
Lg Matthias

uwegw
22.03.2006, 21:45
schräge Hindernisse sind für die allermesiten Sensoren problematisch, die auf Reflexion beruhen... je glatter das Hindernis, desto weniger kommt zurück...

Etwas bessere Ergebnisse als mit IR könnte man evtl per US erzielen, weil da breiter gestreut gesendet wird...

Matthias_W
22.03.2006, 21:47
Und wenn die Oberfläche des Hindernis relativ rau wäre, z.B. Karton?

raoul4
22.03.2006, 21:48
is halt die frage ob du ein freies hindernis im raum erkennen willst, bei dem dein sensor nun mal leider auf eine schräg stehende seite dessen "guckt" oder ob du erkennen willst ob schräg neben dir eine wand ist.

Matthias_W
22.03.2006, 21:50
Die Absicht wäre, das Hindernis im Raum zu erkennen

raoul4
22.03.2006, 21:52
wie wärs mit nem sensor aufm schrittmotor oder servo?

Matthias_W
22.03.2006, 21:55
was wäre der nutzen davon?

raoul4
22.03.2006, 21:58
ja die sharps messen ja fast nur die entfernung von einem punkt auf dem objekt und nicht die entfernung von dem ganzen objekt. wenn du nun den sharp ein bisschen drehst "sieht" er mehr vom objekt und der punk kommt vielleicht auf eine stelle des objekts die besser für messungen ist (also messstelle mehr senkrecht zum roboter)
verstehst wie ich mein? :)

Matthias_W
22.03.2006, 22:01
ja verstehe. Aber mit Sicherheit kommt man ja auch nicht auf einen besseren Punkt...

raoul4
22.03.2006, 22:03
wieso? hat das objekt nur 2 seiten?

Matthias_W
22.03.2006, 22:08
nein. das objekt soll ein Quader sein. wenn nun der roboter aber auf ein solches Quader, das "schräg" liegt, hinzufährt, dann ist doch keine Fläche des Quaders senkrecht zum Sensor und dann nützt auch das drehen des sensor nichts, oder?

raoul4
22.03.2006, 22:12
stimmt

Matthias_W
22.03.2006, 22:14
Vielleicht sonst eine Idee, wie ich dieses Problem lösen könnte?

blade
22.03.2006, 23:21
Hallo zusammen,
die gleichen Fragen habe ich mir auch schon gestellt. Bisher habe ich allerdings nur Datenblätter angeschaut, dabei habe ich herausgefunden, dass die Sharp Sensoren die über ein PSD (Trianguales Messverfahren) verfügen, auch in gewissen Toleranzen schräg zur Wand messen können.
Dies ist bisher allerdings nur Theorie, habe mir aber bereits 2 verschiedene Sensoren besorgt und werde in den nächsten Tagen Messungen durchführen.
Meine Erkentnisse werde ich natürlich präsentieren.
So long
Daniel

blade
23.03.2006, 20:19
Hallo,
wie versprochen meine ersten Eindrücke von dem IR Sensor Sharp GP2D12. Alle Messungen waren gegen einen glatten weißen Karton zwischen 10 cm und 80cm:
- wie genau der Sensor ist kann ich noch nicht sagen. Ich schätze +/- 0.5cm bisher. Ein Messprotokoll stelle ich in den nächsten Tagen hier herein.
- es kann auch schräg auf eine Wand gemessen werden, max. Winkel teile ich noch mit, aber bei 30 Grad hat es funktioniert.

Der erste Eindruck war sehr positiv, bin sehr gespannt wie genau der Sensor nach dem Messprotokoll ist. Muss mir allerdings noch eine Testumgebung schaffen, um Winkel und Abstand zum Sensor richtig einstellen zu können, damit die Werte aussagekräftig sind.
Gruß Daniel

blade
24.03.2006, 19:24
Mein Messprotokoll zum Sharp GP2D12. Ich habe im 90 Grad Winkel auf eine weisse glatte Fläche gemessen.

cmorgen
30.03.2006, 10:11
Sieht ja gar nicht schlecht aus!
Hast du schon Zeit gehabt zu probieren, wie sich die Ergebnisse verändern, wenn man nicht im 90° Winkel misst?

blade
30.03.2006, 11:18
Hi cmorgen,
leider konnte ich diese Messungen noch nicht durchführen. Vielleicht habe ich heute mittag Zeit ansonsten am Wochenende. Das Messprotokoll habe ich noch etwas anderst gestaltet.
Gruß Daniel

blade
30.03.2006, 18:04
Hi Leute,
also ich habe die Messungen in einem Karton (Farbe braun) im Bereich zwischen 10 und 40 cm durchgeführt. Den Sensor hab ich auf einen Schrittmotor gebastelt, der 15 Grad Schritte macht. Zu meinem erstaunen konnte ich die Entfernung zum Ziel mit Winkel bis zu 20 Grad +/- 5mm messen. Hoffe natürlich ich hab den Laser richtig ausgerichtet, um auch halbwegs genau mit dem Maßstab nachzumessen.
Das Messprotokoll ist doch etwas aufwendiger, es dauert desshalb noch eine weile bis ich es uploade.

Kann mir jemand sagen, wie man den Sensor am µC am besten auswertet? Oder hat mir einer ein Beispielprog in C2 für RP5 mit CC2 nur für diese Aufgabe?

Besten Dank

Gruß Daniel

Superhirn
06.04.2006, 13:49
Hi Leute,
also ich habe die Messungen in einem Karton (Farbe braun) im Bereich zwischen 10 und 40 cm durchgeführt. Den Sensor hab ich auf einen Schrittmotor gebastelt, der 15 Grad Schritte macht. Zu meinem erstaunen konnte ich die Entfernung zum Ziel mit Winkel bis zu 20 Grad +/- 5mm messen. Hoffe natürlich ich hab den Laser richtig ausgerichtet, um auch halbwegs genau mit dem Maßstab nachzumessen.
Das Messprotokoll ist doch etwas aufwendiger, es dauert desshalb noch eine weile bis ich es uploade.

Kann mir jemand sagen, wie man den Sensor am µC am besten auswertet? Oder hat mir einer ein Beispielprog in C2 für RP5 mit CC2 nur für diese Aufgabe?

Besten Dank

Gruß Daniel
Brauchst nur einen AD-Wandler verwenden. wenn am rp5 keiner drauf ist, dann musst eben einen externen anschließen und die digitalen werte von dem auswerten.

blade
06.04.2006, 14:06
Ja gut, aber wie machst du das mit dem flachen Funktionsverlauf zwischen 50 und 80 cm???

Superhirn
06.04.2006, 15:05
Das macht ja auch der Ad-Wandler. Wenn du einen genauen hast, müsste es kein problem sein, auch hier etwas genau zu messen. aber ich vermute ich verstehe deine frage falsch.

blade
06.04.2006, 16:18
Also ich kenn mich da nicht so richtig aus aber verbessert mich wenn ich falsch liege.

Wenn ich einen A/D Wandler mit z.B. 8 bit habe, dann kann ich meinen Spannungsbereich in 255 Werte unterteilen. Meine max Spannung ist bei ca. 8cm und entspricht 2,6V, im Bereich von ca. 40cm bis 70cm bewege ich mich zwischen 0,6V und 0,8V. Daraus schließe ich, dass ich zwischen 40 und 70cm eigentlich keine genauen Werte am A/D Wandler feststellen kann, weil das inkrement zu groß ist .

Gruß Daniel

Superhirn
06.04.2006, 16:31
Hi,
damit habe ich eher keine probleme, denn mein AVR hat einen 10bit ADC und somit etwas genauer. In wirklichkeit hab ich mich auch noch gar nihct so richtig mit dieser ungenauigkeit beschäftigt. Der 10bit ADC geht bi 1024. Du könntest ja einen kleinen ATTiny kaufen und da drauf den AD-Wandler für deine zwecke benutzen (ich hoffe der hat 10bit -> datenblatt). Auslesen musst du ihn dann über I²C oder RS232 oder SPI... .Mit einem Spannungsteiler könntest du je die hälfte der spannung messen (also einen für kleine werte und einen für große) und dann daraus den abstand berechnen. Im Wiki sensorarten gibs außderdem eine Formel zum berechnen der Abstände.

blade
06.04.2006, 16:38
Ich bin an den LPC 932 gebunden, der hat ein A/D Wandler mit 8 bit und einen max Pegel von 3,3V. D.h. ich muss den Pegel voll ausnutzen wahrscheinlich mit OP Verstärkerschaltung. Muss mir da noch näher Gedanken drüber machen. Mit der Formel komm ich nicht so gut klar, außerdem benötigt man da zu viel Speicher, den ich nicht zur Verfügung habe. Ich muss eine Tabelle hinterlegen.
Gruß Daniel

Superhirn
06.04.2006, 20:43
Warum bist du an den LPC932 gebunden?
verstärken würd ich mit Transistor. ist evt einfacher/schneller aufzubauen. denn OP hat vermutlich zu starke verstärkung.

blade
06.04.2006, 21:54
Weil wir den in der Ausbildung benutzen.
Wie willst das mit dem Transistor machen?
Ich denke aber die OP Schaltung ist der richtige Ansatz.
Gruß Daniel

Superhirn
07.04.2006, 16:58
VCC
+ VCC
| +
.-----. |
| | |
| | |/
|sharp|---- -| __
| | |> -o| |o-
| | | -o| |o-
'-----' | -o| |o-
| |-----o|__|o-
=== avr
GND
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Hi,
ca so, wie in dem Bild. ich hoffe jemand kann mir bestätigen, dass das so geht.

Fritzli
07.04.2006, 19:35
ich hoffe jemand kann mir bestätigen, dass das so geht.

Das funktioniert aus diversen Gründen 100%ig NICHT.

Ein Transistor verstärkt Ströme. Was Du da also hast ist ein Stromverstärker (auch wenn er so nicht als das funktionieren wird). Ein uC braucht Spannungen an den Eingängen, was deine Schaltung nicht liefert, etc...

www.elektronik-kompendium.de für einen Einstieg in die Elektronik. Da werden solche Sachen ziemlich gut erklärt. Ein gutes (englisches) Buch wäre "The Art of Electronics" von Horowitz/Hill.

Warum nicht per OpAmp, die kann man (muss man) per ext. Bauelemente auf jede gewünschte Verstärkung trimmen - das ist der Witz davon.

Ob bei den Sharpsensoren viel mehr als 8Bit-ADC's Sinn machen, bezweifle ich. Ich hab's mal untersucht und es scheint, dass der Sensor intern nur mit 8Bit arbeitet und die Vout auch nur in 8Bit-Schritten ausgibt.
Siehe meine Seite dazu: http://people.ee.ethz.ch/~althaufe/robots/8bit/

Gruess
Fritzli

blade
07.04.2006, 19:51
Hi Fritzli,
genau so sehe ich das auch, ein Transistor verstärkt Ströme und in dieser Scahltung geht das garantiert nicht, denn wenn die Disatnz >= 40 cm ist, ist die Ausgangsspannung des Sharps unter 0,7V, somit kann der Transistor nicht mehr durchgesteuert werden. Übrigens ein Transistor braucht ein Basisvorwiderstand. Zudem würde bei dieser Beschaltung doch der µC zerstört werden oder???
Ich denke auch man kommt nicht um eine OP Schaltung herum.
Gruß Daniel

Fritzli
07.04.2006, 19:57
Zudem würde bei dieser Beschaltung doch der µC zerstört werden oder???

Denke nein. der Eingangswiderstand eines uC ist so gross, dass der Transistor gar keinen grossen Strom aufbauen kann bzw. vorher in Sättigung kommt.


Übrigens ein Transistor braucht ein Basisvorwiderstand
Das wär ein weiterer Punkt.

OpAmp als nicht-invertierender Verstärker: http://elektronik-kompendium.de/sites/slt/0210151.htm

Gruess
Fritzli