- 3D-Druck Einstieg und Tipps         
Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 81

Thema: SUMO ASURO ... eine Beschäftigung für Weihnachten

  1. #41
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    39
    Anzeige

    Praxistest und DIY Projekte
    Hallo Damaltor
    Ich hab das gemacht hat abber immer noch nicht funkionirt Vieleicht hab ich es ja falch verstanden Köntest du diesen teil ( nicht alles ) mir mal zeigen wie du das meints
    Gruß
    Chief 2

  2. #42
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    hier ist das problem:
    Code:
    uint8_t objekt_sichtbar(uint8_t distance)
    {
       uint16_t j,z;
       
          DDRD |= (1 << DDD1);   // Port D1 als Ausgang
          PORTD &= ~(1 << PD1);   // PD1 auf LOW
    
       OCR2  = 254-distance;   // wenn OCR2=0xFE dann Objekt sehr nahe
       z=0;
       for(j=0;j<30;j++); // loop time: 5ms
       {
          if (PIND & (1 << PD0))z++;
          Sleep(6); // 6*Sleep(6)=1ms
       }
       if (z>=29) return FALSE; // Objekt nicht gefunden
       else return TRUE;
    }  /* Du beendest hier die funktion objekt_sichtbar(). ab hier darf nichts weiter kommen.*/
    {  /*aber hier kommt wieder was, eine öffnende klammer ohne funktionsbezeichnung. wohin gehört der restliche code hier?*/
       uint8_t k,n;                     /***<<<***/                     /***<<<***/                        /***<<<***/
       
       k=255;
       for(n=0;n<8;n++)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #43
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    39
    Der restliche code ist dafür da wass er machen solll wen ein objekt sichtbar ist

  4. #44
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    das ist klar. aber in welche funktion gehört er? er steht mitten in der datei, ungefähr so:

    Code:
    int main(){
      hier steht der ganze main quelltext
    }
    
    int objektsichtbar(){
      hier steht der objekt sichtbar code
    }
    
    
    { und hier steht der code der nirgendwo dazugehört
    }
    er muss aber irgendwo dazu, entweder mit in die main klammern oder in eine eigene funktion.. irgendwohin muss er.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #45
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    39
    Ich hab jetz das programm geändert dass es jetz irgendwo hinzu gehört abber es gibt dan neue probleme das ganze sieht jetz so aus
    Code:
    #include "asuro.h"
    #include <stdlib.h>
    #define LIMIT 20 // Helligkeitsveraenderung, bei der eine Linie detektiert wird 
    #define TIEFPASS 50 // grosser Wert=grosse Zeitkonstante 
    // globale Variablen 
    uint16_t HellLinks; 
    uint16_t HellRechts; 
     
    void Msleep(int dauer) 
    { 
       int z; 
       for(z=0;z<dauer;z++) Sleep(72); 
    } 
    
    unsigned char testhell(void) 
    { 
       uint8_t ergebnis=0; 
       uint16_t lineData[2]; 
    
       LineData(lineData); 
       HellLinks=(HellLinks*TIEFPASS+lineData[0])/(TIEFPASS+1); 
       HellRechts=(HellRechts*TIEFPASS+lineData[1])/(TIEFPASS+1); 
       StatusLED(YELLOW); 
       if((lineData[0]+LIMIT)<(HellLinks)) ergebnis|=1; 
       if((lineData[1]+LIMIT)<(HellRechts)) ergebnis|=2; 
    
       Msleep(10); 
       return ergebnis; 
    } 
    
    int main(void)
    { 
       int n; 
    
       Init(); 
    
       StatusLED(RED); 
       FrontLED(ON); 
    
       // mittlere Helligkeit im Stand ermitteln 
       for(n=0;n<300;n++) 
       { 
          testhell(); 
       } 
       StatusLED(YELLOW); 
    
       MotorDir(FWD,FWD); 
       MotorSpeed(150,150); 
       while(1) 
       { 
          n=testhell(); 
    
          BackLED(n&0x01,n&0x02); 
          StatusLED(YELLOW); 
    
          if(n!=0) // Falls Linie erkannt, dann drehen und zurück 
          { 
             StatusLED(GREEN); 
             MotorDir(RWD,RWD); 
             MotorSpeed(150,100); 
    
             Msleep(600); 
    
             MotorDir(RWD,FWD); 
             MotorSpeed(200,200); 
    
             Msleep(600); 
    
             MotorDir(FWD,FWD); 
             MotorSpeed(150,150); 
          } 
    
          Msleep(10); 
       } 
       return(0); 
    }
    
    uint8_t objekt_sichtbar(uint8_t distance)
    {
    	uint16_t j,z;
    	
       	DDRD |= (1 << DDD1);   // Port D1 als Ausgang
       	PORTD &= ~(1 << PD1);   // PD1 auf LOW
    
    	OCR2  = 254-distance;   // wenn OCR2=0xFE dann Objekt sehr nahe 
    	z=0;
    	for(j=0;j<30;j++); // loop time: 5ms
    	{
    		if (PIND & (1 << PD0))z++;
    		Sleep(6); // 6*Sleep(6)=1ms
    	}
    	if (z>=29) return FALSE; // Objekt nicht gefunden
    	else return TRUE;
    }
    uint8_t abstand()
    {                           /***<<<***/                     /***<<<***/                        /***<<<***/
    	uint8_t k,n;                     
    	 
    	k=255;
    	for(n=0;n<8;n++)
    	{
    	if (!objekt_sichtbar(n)) k=n; // solange kein Objekt, Distanz erhoehen
    	}  
    	return k;
    
       	uint8_t n;
       
       	Init();
    
       	while(1)
    	{
    	   	n=abstand();
    		StatusLED(OFF);
    	   	BackLED(OFF,OFF);
    	   		
    		if(n!=255)
    	   	{
    	   		if (n<6) MotorDir (FWD,FWD);MotorSpeed(220,220);
    	   		if (n<4) MotorDir (FWD,FWD);MotorSpeed(220,220);
    	   		if (n<3) MotorDir (FWD,FWD);MotorSpeed(220,220);
    	   		if (n<2) MotorDir (FWD,FWD);MotorSpeed(220,220);
    			Msleep(10);
    		}
    	}
    }
    und die fehlermeldung jetz so:
    test.c:106:error:redeclaration of 'n' with no linkage
    test.c:97:errorrevious declaration of 'n' was here

  6. #46
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    vielleicht solltest du es so ändrn dass es nicht "irgendwo" dazugehört.

    bist du sicher das programm selbst entworfen zu haben? dann solltest du auch wissen wo er dazugehört...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #47
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    39
    ich hab das programm mit den sumo programm und den infrarot test pogramm von robofreak entworfen ich hab die sumo datei genommen und dann mir die IR test programm genommen und geguckt wie es gehen könnte die sumo datei ist komplett drinn die Ir teils

  8. #48
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    dann versuche nich einfach code hinten anzuhängen sondern achte darauf, ihn an passender stelle einzufügen. so einfach klappt es selten.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  9. #49
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    39
    an welcher stellle könte ich es den einsetzen

  10. #50
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    ich weiss nicht was das endziel ist, und ich weiss nicht woher die codeschnipsel kommen. da kann ch dir nicht helfen.

    aber entwirf doch mal so ein programm selbst, das wäre doch ein gutes projekt für die nächsten tage...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress