- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 16

Thema: Linienfolger mit IR-Rechtsabbieger (1.Versuch)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ohne IR-Messung mit selbstgemalten Linien sieht es nun so aus:

    Bild hier   Bild hier  

    Allerdings klappt es mit den "Weichen" noch nicht so recht:

    Video3 Video4

    Das Problem ist das permanente aktuallisieren der Min/Max-Linienwerte. Das muss ich noch mal überdenken...

    Code:
    #include "../inc/asuro.h"
    #include "../inc/asuro.c"
    
    #define schwelle 15
    #define power 175
    
    unsigned char pow_l, pow_r, dir_l, dir_r;
    unsigned int data[2], suchen;
    unsigned int h_l, h_r, d_l, d_r;
    
    int main(void) {
    
    Init();
    FrontLED(ON);
    dir_l=dir_r=FWD;
    pow_l=pow_r=power;
    d_l=d_r=0;
    h_l=h_r=1023;
    MotorDir(dir_l,dir_r);
    MotorSpeed(pow_l,pow_r);
    suchen=0;
    
    do{
    LineData(data);
    BackLED(OFF,OFF);
    if ((data[0]-schwelle < d_l) && (data[1]-schwelle < d_r)) {
    	dir_l=dir_r=FWD;
    	pow_l=255-data[0];
    	pow_r=255-data[1];
    	suchen=0;
    	StatusLED(GREEN);
    	BackLED(ON,ON);
    } else {
    	if (data[1]-schwelle > data[0]) {
    		pow_l=0;
    		pow_r=power;
    		d_l=(d_l+data[0])/2;
    		h_r=(h_r+data[1])/2;
    		suchen=1;
    		StatusLED(YELLOW);
    		BackLED(OFF,ON);
    	}
    	if (data[0]-schwelle > data[1]) {
    		pow_l=power;
    		pow_r=0;
    		h_l=(h_l+data[0])/2;
    		d_r=(d_r+data[1])/2;
    		suchen=1;
    		StatusLED(YELLOW);
    		BackLED(ON,OFF);
    	}
    	if (suchen==1) {
    		if ((h_l-schwelle < data[0]) && (h_r-schwelle < data[1])) {
    		   StatusLED(RED);
    	   	if (pow_l==0) { dir_l=RWD; pow_l=power; }
    	   	if (pow_r==0) { dir_r=RWD; pow_r=power; }
    		}
    		suchen=2;
    	}
    	
    }
    
    MotorDir(dir_l,dir_r);
    MotorSpeed(pow_l,pow_r);
    
    }while (1);
    return 0;
    }
    Gruß

    mic
    Angehängte Dateien Angehängte Dateien
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

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

Solar Speicher und Akkus Tests