- UNI-T-Messgeraete    Werbung      
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 Fleißiges Mitglied Avatar von Thorben W
    Registriert seit
    17.02.2012
    Ort
    Niedersachsen
    Beiträge
    108
    eben temp != 0 ist?
    Ja das ist richtig.
    Kann es sein das wenn die Bumper ausgelößt werden, dass dann temp != 0 ist?
    Thorben

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    78
    Beiträge
    2.180
    hi,

    jetzt bleibt der RP 6 zumindest stehen, wenn er mit dem bumper an der bake angekommen ist Bild  , das video muss noch ein bischen warten, die lichtverhältnisse sind beim bedeckten himmel nicht gut genug Bild  

    nun möchte ich weitermachen und in dem beispiel "RP6Control_10_Move2.c" habe ich ein dankbares objekt zum experimentieren gefunden. Komplett verstanden habe ich es noch nicht, aber deshalb will ich ja experimentieren...

    dort wird auch auf einen niedrigen batteriestand reagiert:

    Code:
    // Behaviour check low Battery:
    
    #define BATTERY_LOW 1
    behaviour_command_t checkLowBattery = {0, 0, FWD,
                                        false, false, 0, IDLE};
    
    /**
     * In this behaviour routine, we have nothing to do
     */
    void behaviour_checkLowBattery(void)
    {
    }
    
    /**
     * This is a new Event Handler and it gets called when the Battery Voltage
     * is getting low! The Parameter isVoltageLow is true, when the voltage
     * is low and false, when the voltage is OK.
     */
    void batteryVoltageLow(uint8_t isVoltageLow)
    {
        if(isVoltageLow)
            checkLowBattery.state = BATTERY_LOW;
            bake_suche();
    }
    die abfrage "if(isVoltageLow)" habe ich um die funktion bake_suche() ergänzt:
    Code:
    void bake_suche(void)
    {
    
    //        accuzustand();
    
    
            setLEDs(0b0100);
    
            writeString_P("bake_suche_1  \n");
            writeChar('\n');
            initRP6Control();
            initLCD();
            startStopwatch3();
            t=0;
    
            do
            {
                if(getStopwatch3() > 50)
                {
                    temp = read_IR_value();
    
                    if (temp !=0)
                    {
                        setMultiIOLED1(1);
                        setMultiIOLED1(0);
                        rotate(80, RIGHT, 5, false);
                        temp = read_IR_value();
                        if (temp == 0) stop(); //break;
                        if(bumper_left && bumper_right) //stop();//break;
                        {
                            stop();
    //                        break;
    
                        }
    
                    }
                    temp = read_IR_value();
    
                    if (temp == 0)
                    {
                        x = getStopwatch3();
                        setMultiIOLED3(1);
                        setMultiIOLED3(0);
                        if (t<10)
                        {
                            t++;
    
                            if (t == 10)
                            {
                                y = getStopwatch3();
                                z = y-x;
    
                                writeInteger(x, DEC);
                                writeChar('\n');
                                writeInteger(y, DEC);
                                writeChar('\n');
                                writeInteger(z, DEC);
                                writeChar('\n');
    
                                t=0;
                                setStopwatch3(0);
                                if (z< 600)
                                {
                                    move(100, FWD, DIST_MM(100), false);
                                    setStopwatch3(0);
                                    t=0;
                                    mSleep(400);
                                    task_checkINT0();
                                    task_I2CTWI();
                                    if(bumper_left && bumper_right)
                                    {
                                        stop();
    //                                    move(100, BWD, DIST_MM(200), false);
    //                                    break;
                                    }
    
                                }
    
                            }
    
                        }
    
    
                    }
                }
    
                task_checkINT0();
                task_I2CTWI();
            }
            while(!bumper_left && !bumper_right);
            stop();
    
        }
    das ganze lässt sich auch kompilieren, also von daher steht dem experimentieren nur eines im weg: auf welchem weg holt sich das "Behaviour check low Battery:" die batteriewerte? Das habe ich leider nicht gefunden...
    Um nicht so lange warten zu müssen bis der akku wirklich leer ist, möchte ich die abfrage irgendwie beeinflussen...
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,
    ob die Akkuspannung niedrig ist, wird schon im I2C-Slave der Base in der Funktion task_update() erkannt und über ein Interrupt-Status Bit (interrupt_status.batLow) an den Master weiter gegeben.
    Ich denke, du kannst das Bit in deinem Programm zum Testen manipulieren.
    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
  •  

    Werbung      12V Akku bauen