- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Wie müssen T9 und T10 bei LineDemo reagieren?

  1. #11
    Anzeige

    E-Bike
    habs gefunden. danke. die frage ist allerdings, warum es bei einem sehr/zu breiten streifen nicht trotzdem funktioniert?
    Was spricht dagegen?

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    streifen zu breit --> es könnte passieren dass beide Sensoren gleichzeitig schwarz sehen, und dann versucht der asuro einfach irgendwohin auszuweichen oder denkt passt scho, is ja beides gleich dunkel und fährt stumpf geradeaus... keine ahnung. geht es mit dem was ich dir geschickt hab?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Fröhliche Weihnachten Leute!
    Ich habe heute mal das Programm aus der Asuroanleitung zur Linienverfolgung ausprobiert. Bei mir funste es zum Glück auf Anhieb.
    Ich habe Asuro gleichmal eine Strecke um einen Tannenbaum aufgezeichnet und sie ihn abfahren lassen.

    Hier ein Bild dazu:
    Bild hier  

    Hier das Video dazu:
    http://www.youtube.com/watch?v=U2bEKGTRwiY

    Hier der Quellcode, den ich aus der Anleitung abgeschrieben habe(hab noch eine Anzeige der Richtungsänderung mit den BackLEDs hinzugefügt:
    Code:
    #include "asuro.h"				//Linienverfolgung auf einfachste Art
    int main(void) {
    unsigned int data[2];			//Speicher bereit stellen
    Init();
    FrontLED(ON);					//Linienbeleuchtung einschalten
    MotorDir(FWD,FWD);				//Beide Motoren auf vorwärts
    while(1){						//Endlosschleife, ASURO soll beliebig lang einer Linie nachfahren
    	LineData(data);				//aktuelle Helligkeitswerte der Fototransistoren einlesen
    	if (data [0] > data[1])	//links heller als rechts
    	{MotorSpeed(200,150);		//...dann links mehr Gas geben
    	BackLED(ON,OFF);}			//Fahrtrichtung links anzeigen
    else
    	{MotorSpeed(150,200);		//...sonst rechts mehr Gas geben
    	BackLED(OFF,ON);}			//Fahrtrichtung rechts anzeigen
    }
    return 0;
    }

    Habe noch eine Frage:
    Woran liegt es, dass mein Asuro, wenn er mal keine Linie unter sich hat, immer nur nach rechts fährt?
    Er müsste dann doch eigentlich gerade ausfahren...

  4. #14
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    wahrscheinlich sind deine beiden fototransistoren so verschieden, dass der wert des einen immer etwas höher liegt als der des anderen. oder er behält hat das bei, was er als letztes gemacht hat, nach rechts fahren eben. ansonsten... solange er auf der linie macht was er soll...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Zitat Zitat von damaltor
    fototransistoren so verschieden, dass der wert des einen immer etwas höher liegt
    Ja daran liegt es glaub ich. Aber ich würde gerne wissen was ich dagegen tun könnte, dass er dann nach rechts fährt und nicht geradeaus.
    Ich versuche gleich mal das Programm so abzuändern, dass sich beide Motoren gleich schnell drehen sollen, wenn länger als 2 Sekunden kein Richtungswechsel stattgefunden hat. Somit würde er doch immer geradeaus fahren, wenn eine der beiden Fototransistoren immer etwas höhere Werte ausgibt.

    Zitat Zitat von damaltor
    oder er behält halt das bei, was er als letztes gemacht hat, nach rechts fahren eben.
    Das dacht ich auch erst, aber habe es mit einem schwarzen Blatt Papier zwischen der Leuchtdiode und den einzelnen Fototransistoren ausprobiert und er hat in beiden Fällen nach wegnehmen des Blattes nach rechts gesteuert.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    *gähn*
    Morgen ist Weihnachten und ich geh jetzt pennen.
    Hab bis eben versucht das Programm hinzubekommen.
    Ich weiß, wie ich die Zeit von ca. 2 Sekunden hinbekomme:
    for(e=0;e<200;e++)
    {Sleep(150);}

    Aber wie verbinde ich das mit einer if-Abfrage, die nur dann gestartet wird wenn zwischen Data[1] und Data[2] 2Sekunden lang kein Wechsel war?

    Ich bin die nächsten Tage erstmal feiern und schreibe erst ab 27.12. wieder zurück...

    Wünsche euch ein Frohes Fest!

  7. #17
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    ja, dir aucch ein frohes fest. das problem an der abfrage ist, dass wenn der asuro 2 sekunden eine linkskurve fährt um auf der linie zu bleiben, er auch geradeaus fahren würde...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Zitat Zitat von damaltor
    das problem an der abfrage ist, dass wenn der asuro 2 sekunden eine linkskurve fährt um auf der linie zu bleiben, er auch geradeaus fahren würde...
    Genau das ist das Problem, das Programmtechnisch zu lösen.
    Die 2Sekundenabfrage soll nur so lange erfüllt sein, so lange ca. 2 Sekunden kein Wechsel zwischen Data[0] und Data[1] stattgefunden hat(Er also die Linie verloren hat). Solange er also einen weißen Untergrund hat, soll er gerade aus fahren bis er wieder einen Farbunterschied am Boden erkennt.

    Ansonsten passiert nämlich wieder, dass er eine Rechtskurve fährt(Begründung hat Damaltor ja schon gebracht)

    Hier in diesem Video verliert er die Linie(Warum auch immer) und fährt seine Rechtskurve und stößt gegen den Tannenbaum:
    http://www.youtube.com/watch?v=DftAszJlcoc

  9. #19
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    lass ihn den kreis mal andersrum abfahren, und warte bis er die linie verliert. was passiert dann? auch ne rechtskurve oder jetzt ne linkskurve?

    wenn du einfach nen wechsel der linedata werte voraussetzt, kann das probleme geben weil auch auf weisser fläche die werte nicht 100%ig konstant sind. (störlich, unebenheiten, irgend was anderes was den wert etwas beeinflusst)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Ja das hab ich auch schon gemerkt. Das mit den 2 Sekunden warten, ob die Werte nicht mehr wechseln haut nicht hin, weil auf weißem Untergrund die die linke BackLED stark leuchtet und die rechte BackLED schwach leuchtet. Das heißt beide Fototransistoren schalten ab und zu durch aber der Linke(T9) dominiert(schaltet also häufiger).
    Hm dann müsste man das irgendwie anders auswerten. Habt ihr noch irgendwie ne Idee? Ich weiß da nicht mehr weiter.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests