-         

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

Thema: Geradeausfahrt programmieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    32
    Beiträge
    88

    Geradeausfahrt programmieren

    Anzeige

    Hi,
    mein Asuro soll heut lernen wie er Geradeaus fährt. Dafür hab ich erstmal gestestet, wie schnell welches Rad sein muss.(Durch unterschiedliche Reibung)

    So jetzt hab ich ein kleines Programm geschrieben:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    
    	int l=0;
    	int r=0;
    	int sleft=0;
    	int sright=0;
    	unsigned int data[2];
    	Init();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(150,165);
    	OdometrieData(data);
    	while(1)
    	{
    	if (sleft!=1 && data[0]<700 && l<10)
    	{
    		sleft=1;
    		l++;
    	}
    	if (sleft==1 && data[0]>700 && l<10)
    	{
    		sleft=2;
    		l++;
    	}
    	if (sright!=1 && data[1]<700 && r<10)
    	{
    		sright=1;
    		r++;
    	}
    	if (sright==1 && data[1]>700 && r<10)
    	{
    		sright=2;
    		r++;
    	}
    	else if (r>l)
    	{
    	MotorSpeed(190,165);
    	r=0;
    	l=0;
    	}
    	else if (r<l)
    	{
    	MotorSpeed(150,190);
    	r=0;
    	l=0;
    	}
    	}
    	return 0;
    }
    Das Programm soll so funktionieren:
    Immer wenn ein hell/dunkelwechsel ist, zählt das Programm mit. Wenn auf einer Seite 10 Hell/Dunkelübergänge gezählt wurden, soll Asuro nachschauen auf welcher Seite mehr Übergänge da waren--> auf der anderen Seite soll er mehr Gas geben.
    Irgendwie hab ich das falsch programmiert, kann mir wer da Tips zur Verbesserung geben?

    Mfg Moebius

  2. #2

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    32
    Beiträge
    88
    danke für die links.
    ich hab mein programm jetzt verbessert, asuro fährt jetzt schon mehr geradeaus als im kreis ^^.

    hier nochma der verbesserte code:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    
    	int l=0;
    	int r=0;
    	int cnt;
    	int sleft=0;
    	int sright=0;
    	unsigned int data[2];
    	Init();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(150,170);
    	OdometrieData(data);
    	
    	while(1)
    	{
    		r=0;
    		l=0;
    		while(l<5)
    		{
    		
    		if (sleft!=1 && data[0]<700 )
    		{
    			sleft=1;
    			l++;
    		}
    		else if (sleft==1 && data[0]>700 )
    		{
    			sleft=2;
    			l++;
    		}
    		if (sright!=1 && data[1]<700 )
    		{
    			sright=1;
    			r++;
    		}
    		else if (sright==1 && data[1]>700 )
    		{
    			sright=2;
    			r++;
    		}
    		}
    		 if (r>l)
    		{
    		MotorSpeed(200,165);
    		break;
    		}
    		 if (r<l)
    		{
    		MotorSpeed(150,210);
    		break;
    		}
    	}
    	
    	return 0;
    }
    So als nächstes werd ich versuchen, exakt die hell/dunkelübergänge zu erfassen, und solang auf der anderen Seite Gas geben, bis wieder die gleiche Anzahl verstrichen sind. Mal schauen ob das klappt [-(

  4. #4

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Also mit echtem Programmieren hat das doch nun nichts mehr zu tun. Ein paar Zeilen Code und Zugriff auf die geballte-rn-forumpower-lib machen den asuro für jeden zahm und gefügsam.

    Auf der einen Seite soll derjenige seinen asuro weiterverkaufen der nicht jedes ATMegabit mit Vornamen kennt. Auf der anderen Seite wird bei Programmfragen nicht der Code analysiert sondern heftig auf fertige (Kopier-)Lösungen oder das asurobuch verwiesen. Nicht dass ich die Leistung nicht anerkenne, die zusammengetragenen asuro-Infos sind schon klasse. Aber immer wieder nur fertigen Code, Links und Buchhinweise zu posten sieht zwar eifrig aus, hilft aber eben nicht jedem.

    sorry fürs offtopic, das wollte ich eben mal loswerden.

    @Moebius:
    Mein asuro kommt kaum über 700 als Odowert. Hast du dieOdosensoren vor Fremdlicht abgeschirmt? Und hast du das achsiale Spiel des Codescheibenritzels beseitigt?

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.02.2005
    Ort
    Erlangen
    Alter
    32
    Beiträge
    88
    also ich hab aus pappe so ein kleines häuschen um die jeweils 2 dioden gebastelt.

    Der Wert 700 passt ganz gut, hab mir vorher ein Testprogramm dafür geschrieben.
    Also die Zahnräder haben schon noch ganzschön viel Spiel, das könnt ich noch verbessern [-(

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    61
    Beiträge
    674
    Ein paar Zeilen Code und Zugriff auf die geballte-rn-forumpower-lib machen den asuro für jeden zahm und gefügsam.
    Schön wäre es.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    61
    Beiträge
    674
    danke für die links.
    Gerne geschehen.
    also ich hab aus pappe so ein kleines häuschen um die jeweils 2 dioden gebastelt.
    Das ist jeweils eine Kombination aus IR-Diode und Fototransistor. Leider funktioniert das nicht im Sonnenlicht.
    Also die Zahnräder haben schon noch ganz schön viel Spiel, das könnt ich noch verbessern
    Einfach etwas Lötzinn außen drauf, dann wird der Abstand enger gehalten. Das ist wirklich wichtig.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    61
    Beiträge
    674
    Auf der einen Seite soll derjenige seinen asuro weiterverkaufen der nicht jedes ATMegabit mit Vornamen kennt.
    Er wollte ihn vom Tisch stürzen, wenn er es nicht selbst merkt! Außerdem könnte ich noch einen zusammen gebauten ASURO brauchen.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    61
    Beiträge
    674
    ... wird bei Programmfragen nicht der Code analysiert sondern heftig auf fertige (Kopier-)Lösungen oder das asurobuch verwiesen.
    Da gibt es verschiedene Sichtweisen. Ideal ist die Kombination aus beidem. Ich denke, dass man hier im Forum jeweils möglichst viel Code zu einem Thema finden sollte. Da gehören bekannte Bücher und das Internet dazu.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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