- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 255

Thema: IR-bake

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hallo Dirk,


    ich habe den code von vorhin mit kommentaren versehen, so wie sie mir zutreffend scheinen...

    der roboter steht zunächst im raum, ist eingeschaltet, weiss nicht wo er ist, weisst nicht wo die IR-bake ist.

    und das sollte er tun:

    - misst nach 50ms zuerst ob er IR empfang hat
    - hat er empfang, misst er weiter bis er 10x empfang hatte
    - dann prüft er, ob er diese 10 signale innerhalb von 520ms (tg) empfangen hat
    - ist tg<520 fährt er 100mm
    - ist tg>520 rotiert er um 1 grad
    - fängt wieder mit IR messung an


    Code:
    case 3://
                    setLEDs(0b0100);
    
                    writeString_P("suche der bake   \n");
                    writeChar('\n');
                    initRP6Control();
                    initLCD();
                    startStopwatch3();
                    t=0; //t, t1, t2, tg sind am programmanfang definiert (unint_8)
    
                    while(true) //schleife bis button gedrückt
                    {
    
    
                        while(true) //dauerschleife - wie komme ich da raus?
                        {
    
                            if(getStopwatch3() > 50) //wenn stopwatch3 > 50ms messe IR empfang
                            {
                                temp = read_IR_value(); //Ir empfang (PB2) messen
    
    
                                if (temp == 0) //wenn IR empfang dann schleifendurchlauf, sonst rotate
    
                                {
                                    t1 = getStopwatch3(); // stopwatch3 wert beim ersten "treffer"
                                    setMultiIOLED3(1);
                                    setMultiIOLED3(0);
                                    if (t<10) // schleife für 10 treffer
                                    {
                                    t++;
                                    setStopwatch3(0); // stopwatch nach treffern 1 - 9 auf 0
                                    if (t == 10) // wenn t=10 dann
                                    {
                                    t2 = getStopwatch3(); // stopwatch3 wert für den 10. treffer
                                    tg = t2-t1;
                                    if (tg<520) // wenn tg < 520 move
                                    {
                                    move(100, FWD, DIST_MM(100), false);
                                    setStopwatch3(0); //stopwatch3 na 10 treffern auf 0
                                    t=0;
                                    }
    
                                    }
    
                                    }
                                }
    
                                else
                                {
                                    setMultiIOLED1(1);
                                    setMultiIOLED1(0);
                                    rotate(80, RIGHT, 1, false); // drehe rechts um 1 grad, nicht blockierend
                                    setStopwatch3(0); //stopwatch3 nach rotate auf 0
                                }
    
                            }
                        }
                            /**************************/
                            uint8_t key_1;
                            key_1 = getMultiIOPressedButtonNumber();
                            if(key_1 != 0) break;
                            /**************************/
                    }
    
    
    
                        break;
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,
    der roboter steht zunächst im raum, ist eingeschaltet, weiss nicht wo er ist, weisst nicht wo die IR-bake ist.
    und das sollte er tun: ...
    Ok, das wären ja so etwa die Schritte 4,5,10,11,12 von meinem Ablaufschema. Klingt gut ...

    Code:
    while(true) //dauerschleife - wie komme ich da raus?
    Du kannst die DO-WHILE Schleife nehmen, wenn in der Schleife irgendein Ergebnis zum Abbruch vor dem nächsten Durchlauf führen soll:
    Code:
    do
    {
       // ...
    }
    while (Bedingung);
    Als "Bedingung" schreibst du dann den Test rein, der FALSE wird, wenn die Schleife verlassen werden soll.

    Code:
    rotate(80, RIGHT, 1, false); // drehe rechts um 1 grad, nicht blockierend
    Geht, funktioniert aber nur mit der task_motionControl() der RP6 Library, die in der Hauptschleife dauernd aufgerufen werden muss. Das Drehen um 1° dürfte auch schwierig werden, fang mal mit 5° an.
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi Dirk,
    Zitat Zitat von Dirk Beitrag anzeigen
    Code:
    rotate(80, RIGHT, 1, false); // drehe rechts um 1 grad, nicht blockierend
    Geht, funktioniert aber nur mit der task_motionControl() der RP6 Library, die in der Hauptschleife dauernd aufgerufen werden muss. Das Drehen um 1° dürfte auch schwierig werden, fang mal mit 5° an.
    mein programm läuft ja auf der m32. Läuft dieser "task_motionControl()" nicht schon in der slavesoftware der base?
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi,
    mein programm läuft ja auf der m32. Läuft dieser "task_motionControl()" nicht schon in der slavesoftware der base?
    Stimmt, ...
    Gruß
    Dirk

Ähnliche Themen

  1. IR-Bake
    Von tornado im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 05.07.2007, 17:37
  2. IR-Bake
    Von Bernd-das-Brot im Forum Sensoren / Sensorik
    Antworten: 38
    Letzter Beitrag: 13.12.2005, 16:14
  3. ir-bake
    Von pebisoft im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 8
    Letzter Beitrag: 17.01.2005, 13:41
  4. ir-bake
    Von pebisoft im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 17.01.2005, 07:01
  5. Bake
    Von techboy im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 02.11.2004, 10:17

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress