Archiv verlassen und diese Seite im Standarddesign anzeigen : IR-Hinderniserkennung findet Lichtquellen!
Slimpson
03.11.2008, 14:00
Hi an alle^^
Der Thematitel sollte wohl alles sagen...
Der ASURO ist mein erster Roboter überhaupt, aber ich hab mir gedacht, wenn schon denn schon und hab die IR-LED und den IR-Empfänger nach der Vorlage von waste umgebaut O:)
Dann habe ich den example code aus der neusten Lib-Version für den IR-Kollisionstest geflashed.
Das Ergebnis:
Sobald der Empfänger im Licht ist leuchtet die Lampe grün, ist er im Schatten leuchtet die Lampe rot. Fröhlich rumdrücken auf den Tastern zeigt keinerlei Wirkung (also ich merke nichts von einer Veränderung der Pulsbreite). Aber mein Ziel war eig. festzustellen ob da ne Wand vor dem ASURO ist.
Kann mir jemand weiterhelfen?
#include "asuro.h"
#include <stdlib.h>
static unsigned char ocr2 = 0x91;
void InitIRDetect(void)
{
UCSRB = 0;
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
OCR2 = ocr2;
}
void InitUart(void)
{
OCR2 = 0x91; // duty cycle fuer 36kHz
}
int main(void)
{
unsigned char sw;
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
// InitIRDetect();
while (1)
{
UCSRB = 0;
OCR2 = 0xFE;
if (PIND & (1 << PD0))
StatusLED(GREEN);
else
StatusLED(RED);
sw = PollSwitch();
if (sw & 0x01)
ocr2 = 0xFE; //Pulsbreite 1
if (sw & 0x02)
ocr2 = 0xFD; //Pulsbreite 2
if (sw & 0x04)
ocr2 = 0xFB; //Pulsbreite 4
if (sw & 0x08)
ocr2 = 0xF7; //Pulsbreite 8
if (sw & 0x10)
ocr2 = 0xEF; //Pulsbreite 16
if (sw & 0x20)
ocr2 = 0x90; //Pulsbreite 110
if (sw)
{
OCR2 = 0x91;
PrintInt(sw);
SerPrint(" ");
PrintInt(ocr2);
SerPrint("\r\n");
}
// Msleep(100);
}
return 0;
}
Sternthaler
03.11.2008, 20:26
Hallo Slimpson,
willkommen im Forum.
Versuche mal in diesem Thread Abstandsmessung ähnlich wie IR-Schnittstelle des asuro (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=38009) weitere Infos zu bekommen.
Ist zwar eine 'Menge Holz', aber dies scheint mir der ausführlichste Thread zu dem Thema zu sein.
Gruß Sternthaler
Slimpson
05.11.2008, 11:41
Ne Menge Holz ist schon fast untertrieben^^
Also ich habe gelesen, dass ihr auch schon festgestellt habt, dass LCD-bildschirme stören. Aber warum mein Asuro im Schatten ständig ein IR- Echo anzeigt hab ich immer noch nicht den leisesten Plan...
Ich habe nun aber herausgefunden, dass das Programm in der Sonne wunderbar funzt, (bis auf die Änderung der Pulsbreite durch das drücken der Taster).
Ich schreibe mal was das Hyperterminal so auffängt wenn ich eine Taste drücke:
Taste 1:
meist "1 254"
selten "1 054"
Taste 2:
meist "2 253"
selten "2 053"
usw.: "4 251" , "8 247" , "16 239" , "32 144"
oberallgeier
05.11.2008, 16:33
Hi Slimpson,
... Ne Menge Holz ist schon fast untertrieben ...Steht ja auch jede Menge Unsinn drin *gggggg*.
... warum mein Asuro im Schatten ständig ein IR- Echo anzeigt ...Das könnte daran liegen, dass die SendeDiode am asuro den IR-Empfänger (kurz 5110, ist ein SFH5110-36 von Osram) stört bzw. beeinflusst. Gelegentlich werden die IR-Sendedioden (Typ SFH415 von Osram) mit Schrumfschlauch abgedeckt (https://www.dl.com/s/7ppqkinw2gx6a5a/irDME_1466.jpg?dl=0) oder hinter einer Leiterplatten-Trennwand aufgebaut. Allerdings gibt es auch die Variante mit Trennwänden aus Blech. Ich hatte festgestellt (steht irgendwo im Thread) dass die Abdeckung mit Schrumpfschlauch, zumindest die von mir verwendete, durchlässig für die IR-Licht-Wellenlänge der 415 ist und daher den 5110 ein "Echo" vorgaukelt. Deshalb hatte ich die Diode mit einem Messingrohr abgedeckt - und wichtig ist dabei der Bord unten an der Diode. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=355976#355976) Ich kann aber nicht garantieren, dass diese Abdeckungen Dein Problem beseitigen.
Ich wünsche Dir Erfolg bei Deiner Fehlersuche und viel Spass mit dem asuro.
Slimpson
07.11.2008, 15:23
Tatsache!
Ich habe anstatt Blech Kunststoff benutzt und das scheint durchlässig für IR-Strahlen zu sein.
Und warum ist im Licht dann das Echo verschwunden? o.0
Naja ich glaube ich lege das ganze jetzt mit Alufolie aus, die müsste die IR-Strahlen ja reflektieren.
Danke für eure Hilfe!
oberallgeier
07.11.2008, 15:49
... warum ist im Licht dann das Echo verschwunden? o.0 ...Stimmt! Oh, oh! *gggggggg*
Der SFH5110-36 hat neben anderen pfiffigen Steuerinhalten auch eine AGC - eine Automatic gain control, zu deutsch: eine automatische Verstärkungsregelung.
Der SFH5110-36 wird ja in verschiedenen Geräten der Unterhaltungselektronik in der IR-Fernsteuerung als Emfpänger benutzt (App-note von Osram: "... Nearly all consumer electronic products (audio, video or set top boxes) are using IR remote controls for controlling basic functions of the equipment like power on/off ...). Diese Geräte sollen bei hellem Licht ebenso funktionieren wie im Mondschein oder bei totaler Dunkelheit. Deshalb wird die Verstärkung des Signals intern anhand der einfallenden Helligkeit geregelt - und zwar so, dass die Empfindlichkeit des Sensors für einfallende Signale UNGEFÄHR gleich bleibt. Die AGC läuft aber nicht wirklich perfekt - und daher wird sie vermutlich bei Lichteinwirkung auf Deine Sensorik das Streulicht der Kunststoffabdeckung wegen der verschobenen Sensorempfindlichkeit "ausblenden". War das verständlich?
... ich lege das ganze jetzt mit Alufolie aus ...Ja, sehr gute Idee. Vielleicht mit doppelseitigem Klebeband fixieren - Alufolie ist ziemlich rissempfindlich. Und beim kleinsten Schaden ist schon wieder ein kleines Lichtlein da . . . .
Slimpson
08.11.2008, 13:44
War das verständlich?
Ja ich denke schon,
Die Veränderte Sensorempfindlichkeit ignoriert das schwache Streulicht meiner Kunststoffabdeckung O:)
Jetz habe ich im Keller ein Metallrohr mit 1cm durchmesser gefunden und nun das als Abdeckung benutzt. Jetzt erkennt mein Asuro Hindernisse im Abstand von 2cm^^ (Pulsbreite 16).
Slimpson
10.11.2008, 16:27
Sorry, dass ich nochmal eure Hilfe beanspruche, aber ich habe ein echt seltsames Problem. Die IR-Erkennung bei MotorSpeed(170,170); funktionier einbandfrei wenn ich den Asuro in die Luft halte, wenn ich ihn aber auf dem Boden fahren lasse funktoniert nichts mehr und er bumst voll gegen die Wand^^
Muss eigentlich ein Hardwareproblem sein, oder?
damaltor
11.11.2008, 13:10
könnte sein dass die motoren unter last mehr stören...
Slimpson
11.11.2008, 14:10
inwiefern stören?
und, wie könnte ich das beheben?
Edith sagt:
Ich hab meinen asuro mal auf motordir FREE FREE gestellt und ihn durch mein Zimmer geschoben^^ alle Hindernisse wurden erfolgreich detektiert...
damaltor
12.11.2008, 10:55
hmm die motoren machen mächtige störungen in die schaltung, es kann gut sein dass diese unter last noch stärker werden. versuch mal, ihn langsam fahren zu lassen. gehts dann?
Slimpson
12.11.2008, 13:57
nein, fahren kann er dann nicht...
Ich muss die Geschwindigkeit so weit drosseln, dass der
Asuro es nicht mehr schafft loszufahren. Und auch dann merkt man, dass die IR-Erkennung schlechter geht.
Jetzt weiß ich zwar worans liegt, aber nicht wie ichs beheben kann.
ich müsste die reibung auf den Achsen verringern, damit die Moteren leichter laufen.
Auf jeden Fall danke für die Hilfe!
Mit dem Rest sollte ich wieder selber klarkommen, vielleicht montiere ich auch die Räder weg und les mir mal den "walking Asuro" Theard genauer durch^^
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.