-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Pimp my Linienverfolgung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32

    Pimp my Linienverfolgung

    Anzeige

    Hi!
    Ich habe meinen Asuro programmiert, eine Linie zu verfolgen.
    Manchmal kriege ich dabei Probleme mit dem Umgebungslicht, z.B. wenn Asuro unter dem Tisch rumfährt reicht manchmal der Unterschied zwischen Linie und Boden nicht mehr.

    Nun hab ich mich gefragt, ob man statt der roten Standard LED eine richtig helle LED einbauen kann. Mit 3000(?)mcd oder so, damit der Boden mal richtig ausgeleuchtet wird und das Umgebungslicht dann weniger reinspielt. Haut das hin mit der Leistung? Und auch sonst, ist das sinnvoll und möglich?

    grüße
    Norki

    P.S.:
    Wir brauchen mehr Power!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Hast du schon probiert nur die Differenz ziwschen gemessenen Wert bei ein-und ausgeschalteter LED zu nutzen?

    MK

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Also allgemein arbeite ich bei der Linienverfolgung mit Differenzen zwischen Linienhelle und Bodenhelle.

    Aber wozu sollte ich die Differnez zwischen einund ausgeschalteter LED nehmen?

    gruß
    Norki

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    "Also allgemein arbeite ich bei der Linienverfolgung mit Differenzen zwischen Linienhelle und Bodenhelle."
    ...wie man es halt bei einer Linienverfolgung macht

    "Aber wozu sollte ich die Differnez zwischen einund ausgeschalteter LED nehmen?"
    Um nahezu unabhängig vom Umgebungslicht zu sein!

    MK

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Guten Abend!

    Leider weiß ich nciht genau, wie du das meinst. Wie werde ich unabhängig vom Umgebungslicht, wenn ich die Led austausche? Soll ich die Helligkeit, die bei ausgeschalteter LED ist, vom eingeschalteten LED Wert abziehen?
    Oder wie meinst du das?
    Weil das müsste ich dann ja andauernd machen, weil sich das Umgebungslicht ja auch immer ändert....



    Wär nett, wenn du mir das erklären könntest.

    grüße
    Norki

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    - Led einschalten
    - Messen (reflektiertes- + Umgebungslicht)
    - Led ausschalten
    - Messen (Umgebungslicht)

    Rechnen (reflektiertes- + Umgebungslicht) - (Umgebungslicht) = reflektiertes Licht
    ...also bist du vom Umgebungslicht unabhängig.
    (Gilt natürlich nur dann, wenn der maximal messbare Wert nicht überschritten wird)

    Und ja, das müsstest du dann jedes, also [was weiß ich] 100 mal in der Sekunde machen.

    Alles klar?

    Gruß, MK

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Ja, alles klar, das versteh ich, das ist ja auch eine gute Lösung.

    Aber ich wollte ja aber ursprünglich auch gerne ne hellere LED einbauen, weil im dunkeln das Unterscheiden von verschiedenen Werten sehr schwer wird, weil die Werte hart an der unteren Grenze liegen.
    Und da is die Frage, ob das geht?

    gruß
    Norki

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Liegen die Werte nur hart an der Untergrenze, oder misst du oft "0" ?
    Denn da die Phototransisoren ja heilwegs linear arbeiten, bringt eine hellere LED in dem Falle nix. Ansonsten schon...allerdings sollte sie dann auch nicht zu hell sein...sonst mist du am Ende auf Weiß nur noch "1023" (bei nem 10Bit ADC). Hat der Asuro eigentlich Infrarot-Foto-Transistoren oder normale (schätze letzteres)?
    MK

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    vielleicht kannst Du aus diesem Thread was rausholen:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=10806

    da haben wir (vor allem ich) uns damals schon mal rumgeärgert,
    ich hab jetzt eine weiße 5mm LED da drin, damit kann man dann was anfangen.
    Da ich die LED gefunden habe, weiss ich deren Werte nicht, aber die läuft ohne das irgendwo was warm oder defekt wird einfach als austausch für die rote LED.
    Und so oft ist die LED dann auch wieder nicht eingeschaltet

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Eim kleines Testprogramm das ich mal genau zu diesem Thema gemacht habe.

    Code:
    /*******************************************************************************
    *
    * Description: Test Asuro LinienSensor
    * Version 0: 
    * Autor: Vogon	16.10.05
    *
    *****************************************************************************/
    #include "asuro.h"
    #include <stdlib.h>
    
    unsigned int lineData[2];
    unsigned int ld[2][2];
    
    int i, ldat, ssum, don, doff;
    void PrintStr(unsigned char *data) {
    	unsigned char i = 0;
    	while(data[i++]!=0x00); 
    	SerWrite(data,i);
    }
    	
    int main(void)
    {
    	Init();
    
    	PrintStr("\r\nTest Asuro LinienSensor");
    	while(TRUE) {
    		PrintStr("\r\nOff:l,r  |  On:l,r  | ssum | doff,don | ldat | ");
    		for (i = 0; i < 10; i++ ) {
    			FrontLED(ON);
    			LineData(lineData);						// Messung mit LED ON
    			ld[1][0] = lineData[0];
    			ld[1][1] = lineData[1];
    	
    			FrontLED(OFF);
    			LineData(lineData);						// Messung mit LED OFF
    			ld[0][0] = lineData[0];
    			ld[0][1] = lineData[1];	
    		
    			don = (ld[1][0] - ld[1][1]);			// Regelabweichung mit LED ON
    			doff = (ld[0][0] - ld[0][1]);			// Regelabweichung mit LED OFF
    			ldat = don - doff;						// Regelabweichung 
    			
    			if (ldat < 0 ) BackLED(ON,OFF); else BackLED(OFF,ON);
    
    			ssum = (ld[0][0] + ld[1][0] + ld[0][1] + ld[1][1]);		// Fehler wenn über 250
    			
    			StatusLED(OFF);
    			BackLED(OFF,OFF);
    			if (ssum  > 250) StatusLED(RED); 
    			else if (abs(ldat) > 5) {
    				StatusLED(GREEN);
    				if (ldat < 0 ) BackLED(ON,OFF); else BackLED(OFF,ON);
    			}
    
    			PrintStr("\r\n");
    			PrintInt(ld[0][0]);		// 	Linker Sensor Messung mit LED OFF
    			PrintInt(ld[0][1]);		// 	Rechter Sensor
    			PrintStr(" | ");
    			PrintInt(ld[1][0]);		// 	Linker Sensor Messung mit LED ON
    			PrintInt(ld[1][1]);		// 	Rechter Sensor
    			PrintStr(" | ");
    			PrintInt(ssum);				// Sensoren Summe der Messungen
    			PrintStr(" | ");
    			PrintInt(doff);				// Regelabweichung mit LED OFF
    			PrintInt(don);				// Regelabweichung mit LED ON
    			PrintStr(" | ");
    			PrintInt(ldat);				// Regelabweichung
    			PrintStr(" | ");
    		}
    	}
        return 0;
    }
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •