PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro: IR-Schnittstelle als Abstandsdetektor?



waste
10.06.2005, 20:04
Hallo Asuro Freunde,

nachdem der Asuro zur Hinderniserkennung nur die Kollisionsschalter hat und das Anbumsen meinen Mitbewohnern schon lästig wird, bin ich auf die Idee gekommen die IR-Schnittstelle als Abstandssensor zu verwenden. Was haltet ihr von der Idee?

Eigentlich ist ja alles vorhanden. Die IR-Diode D10 ist der Sender und der Baustein IC2 ist der Detektor. Man muß nur die beiden Bauteile mechanisch nach vorne ausrichten. Elektrisch kann die Schaltung bleiben, es soll ja weiterhin das Flashen und eine serielle IR-Schnittstelle möglich sein.
Ich hab mir mal die Routinen angeschaut. Es ist sogar möglich die Pulsbreite der Sendediode und damit die Sendeleistung zu verändern. Damit könnte man dann die Empfindlichkeit des Abstandsdetektors einstellen.

Hat schon jemand das ausprobiert? Was ist eure Meinung? Gibt es noch Anregungen?

Gruß Waste

pinsel
10.06.2005, 22:02
moin moin,

in der Richtung hab ich auch schon mal experimentiert hab es aber nicht geschafft.

Um gleichzeitig senden und emfangen zu können hab ich die SerWrite in asuro.c geändert.

UCSRB = 0x08; ==> UCSRB = 0x18;

Und im Hauptprogramm sende ich ein Zeichen. Dann lese ich mit SerRead das emfangene Zeichen ein.

Die Auswertung sollte eigentlich so laufen:
Das emfangene Zeichen ist gleich dem gesendeten Zeichen
==> Abstand gering.

Es wird ein Zeichen emfangen aber es ist _nicht_ das gesendete
==> Abstand mittel.

Es wird "T" zurückgegeben also der Timeout, kein emfang
==> großer Abstand zum Hindernis.

Aber egal was ich mache, selbst wenn ich den Emfänger abdecke ich lese jedes Mal den gesendeten Wert. Es sieht so aus als ob immer der gesendete Wert im emfangsregister liegt.
Bis jetzt bin nicht dazu gekommen im Datenblatt mal nachzulesen wie der UART funktioniert. Ich vermute das da noch ein Fallstrick vorhanden ist.


Gruß

pinsel

pinsel
10.06.2005, 22:09
mist da hab ich die Hälfte vergessen.

Als Alternative hab ich mir überlegt die Linienverfolgung umzubauen. Die LEDs und den Fototransitor auf IR umstellen und mit dem AD Eingang auswerten. Damit sollte eine "genauere" Messung möglich sein. Je dichter das Hindernis je stärker das Signal.

Was meint Ihr?


Gruß pinsel

waste
10.06.2005, 22:16
Da hast du viel zu kompliziert gedacht. Du mußt gar keine Zeichen senden, einfach nur die 36kHz Dauerstrich. Das geht einfach indem du den Port PD1 auf LOW setzt.
Zum Detektieren des Signals dann den Eingang PD0 auf LOW prüfen. Das war's.

Gruß Waste

Manf
10.06.2005, 22:30
Du musst gar keine Zeichen senden, einfach nur die 36kHz Dauerstrich.
Es gibt hier auch schon Untersuchungen zum Einsatz der itergrierten IR Empfänger zur Hinderniserkennung. Mit Dauerstrich gibt es Probleme bei der automatischen Verstärkungsregelung.
Manfred

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=29471#29471

pinsel
10.06.2005, 22:32
@waste
](*,)
Jepp, das sieht besser aus. Werd ich mal am Wochenende probieren.

Danke für den Tipp.

Gruß

Pinsel

waste
10.06.2005, 23:07
Hallo Manfred,

danke für den Hinweis. Das Forum ist in der Hinsicht echt Klasse.
Ich habe gerade im Datenblatt des SFH5110 nachgeschaut, der hat auch eine AGC.

Ich muß erst mal bei meinem Asuro die Diode und den Empfäger mechanisch umbauen, da sie noch zu stark optisch gekoppelt sind. Danach kann ich erst testen, inwieweit sich die AGC bei dem Baustein einmischt.

Gruß waste

Archi
11.06.2005, 10:10
Das Schöne am SFH5110 ist, dass er auch Dauerstrich verarbeiten kann. Deshalb kann man direkt den seriellen Bitstrom von der Schnittstelle übertragen.

CU, Robin

Manf
11.06.2005, 10:36
Das wird ein Unterschied sein, im Gegensatz zum TSOP steht im Datenblatt des SFH5110 nichts von message length und dergleichen.

Er ist dann sicher etwas einfacher für andere Zwecke als für Fernseher-Fernsteuerungen zu gebrauchen.
Manfred

waste
11.06.2005, 14:24
So, mein Umbau ist fertig. Siehe Foto

Ich bin begeistert. Es funktioniert super. Eine weisse Wand wird noch in einem Abstand von über einem Meter erkannt. Die Hand in etwa 40 cm. Die AGC im Empfängerbaustein macht keine Probleme. Und das Beste, durch Verringern der Pulsbreite auf der Senderseite kann ich die Empfindlichkeit einstellen. Mit der kleinsten Pulsbreite (125ns) die ich erzeugen kann, wird die Hand anstatt in 40 cm dann in 3 cm erkannt.

Jetzt kommt der nächste Schritt, wie ich das ins Programm umsetze. Mein erster Gedanke: Die Pulsbreite in einer Art Sweep zu ändern und dann die reflektierte Dauer als Abstand auszuwerten.

@Archi
Kann man die beiden Bauteile nicht gleich in Serie nach vorne ausrichten. Ein Abstandssensor würde doch den Asuro aufwerten.

Gruß waste

Manf
11.06.2005, 14:37
Das Gefällt mir sehr gut.
So ganz sauber ist das mit dem Abstand und der Amplitude ja nicht weil der Reflektionsfaktor stark mit einfließt, aber die Kombinationsmöglichkeiten mit vorhandenen Koponenten ist prima.

Wie wäre es dann mit einer kleinen Linse zur Bündelung des Strahls und der Abtastung per Fahrzeugschwenk?
In jedem Fall könnte man ein einzelnes Hindernis aufbauen und mit einen Schwenk die Richtwirkung aufnehmen.
Manfred

waste
11.06.2005, 15:57
Ist schon klar, ein Sharp-Ersatz ist das nicht. Aber die erzielte Performance mit den bereits vorhandenen Bauteilen ist gar nicht schlecht. Eigentlich besser als ich ursprünglich erhofft hatte. Es macht auch riesig Spaß wenn sich dann ein Erfolgserlebnis einstellt.

Ich bin mir noch nicht klar, ob ich nun eine starke Bündelung oder eine breite Keule brauche. Vorrangig will ich es als Hinderniserkennung verwenden, damit er nicht irgenwo anstößt. Muß da erst noch Erfahrung sammeln.

Gruß waste

waste
12.06.2005, 00:20
Hab jetzt mal die Richtwirkung mit einem Schwenk aufgenommen. Das hat eine Weile gedauert. Laufend hab ich irgenwelche Hausnummern als Zahlen bekommen und ich vermutete einen Fehler im Programm. Bis ich dahinter gekommen bin, daß diese Zahlen das Hintergrundecho bedeuten (oder auch ein unerwünschtes Echo vom Untergrund). Erst nachdem ich in einem größeren Raum auf einem freien Tisch den Versuch durchführte, ergaben sich plausible Werte.
Versuchsaufbau:
Asuro schwenkt um 70 Grad,
im Abstand von 25 cm steht ein Holzstab,
der Holzstab hat einen Durchmesser von 3 cm und eine Länge von 15 cm.

Die Werte in der Tabelle sind die vom Abstandssensor gemessenen Werte. Der Wert 111 ist der max. Wert und bedeutet, daß kein Echo empfangen wurde. Je kleiner die Werte um so näher ist das Objekt.

Gruß waste



Grad Wert
0 111
2 111
4 111
6 111
8 111
10 111
12 111
14 111
16 111
18 111
20 111
22 111
24 111
26 111
28 75
30 31
32 20
34 16
36 19
38 12
40 12
42 10
44 11
46 11
48 13
50 13
52 15
54 25
56 48
58 111
60 111
62 111
64 111
66 111
68 111
70 111