-
        

Ergebnis 1 bis 5 von 5

Thema: SRF10 - Reichweite & Verstärkung ändern [qfix]

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.12.2009
    Beiträge
    9

    SRF10 - Reichweite & Verstärkung ändern [qfix]

    Anzeige

    Hallo Zusammen!

    Ich versuche derzeit den SRF10 US-Sensor mit einem qfix Soccerboard über I²C zum Laufen zu bringen. Hierzu nutze ich nur die qfix-eigenen Libraries:
    qfixSonar.h und qfixI2C.h. Bisjetzt funktioniert es auch schon Messergebnisse einzufordern und anzuzeigen, allerdings nur bis ca. 35cm, d.h. ist kein Hinderniss in Reichweite bzw. ist es weiter als ca. 50cm weg gibt der Sensor Werte zwischen 35-40cm aus. Zwischen 6-35cm funktioniert die Messung gut! Ich möchte ein wenig mit Reichweite & Verstärkung herumspielen, allerdings schaffe ich es nicht die Routine zur Einstellung dieser aus dem Header in meinem Demo-programm aufzurufen. Angehängt habe ich mal Demo-pgm und Header. Kann mir irgendwer verraten wie das funktioniert?

    MfG iFabi
    Angehängte Dateien Angehängte Dateien

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    21.12.2009
    Beiträge
    9
    ...Hallo!

    Ich habe nun das ganze auch noch auf dem Handyboard getestet! Mit dem unten stehenden Code funktionert:
    Messen auslösen
    Werte einholen & ausgeben

    Verstärkung und Reichweite ändern ->

    wenn ich eine max. Reichweite bis ca. 40cm einstelle funktionert die Messung gut. Kein Hinderniss bis max. = 0, Hinderniss bis max. = richtige Werte
    Wenn ich die max. Reichweite jedoch über 40cm einstelle tritt wieder in Post1 genannstes wieder auf...

    Kommt schon jemand muss doch Helfen können!
    Grüße iFabi

    // Einbinden der I2C-Bibliothek
    #use i2c_hb_expbrd.ic
    // Hauptprogramm
    void main()
    {
    int entfernung;


    printf("\n SRF08-Test");
    sleep(2.0);

    i2c_init(); // initialisiere I2C-Bus

    while(!start_button());
    printf(2,"\n config:");
    i2c_write_2byte(226, 2, 10);
    i2c_write_2byte(226, 1, ;
    while(start_button());
    sleep(2.0);


    //Starte Schleife. Bricht ab, wenn der Stopknopf gedrueckt wird
    while(!stop_button())
    {
    //Messung auslsoeen
    // in Register 0 wird das Komando 81 geschrieben. Damit wird eine
    //Messung ausgeloest und das
    // Ergebnis wird in cm angegeben
    i2c_write_2byte(226, 0, 81); // Adresse des SRF08 ist werkseitig
    //224.
    sleep(0.065); // 65 ms warten, um abzusichern, dass die Messung
    //fertig ist
    // Messung fertig

    //Aulesen des Ergebnisses
    // Zum SRF08 schreiben, welches Register ausgelesen werden soll.
    i2c_write_byte(226, 2); // Register 2 --> High-Byte des
    //Messergebnisses
    entfernung = i2c_receive_byte(226) * 256; // Auslesen des
    //High-Bytes des Messergebnisses
    i2c_write_byte(226, 3); // Register 3 --> Low-Byte des
    //Messergebnisses
    entfernung = entfernung + i2c_receive_byte(226); // Low-Byte
    //auslesen und zum Ergebnis addieren


    printf("\nEntf: %d ", entfernung); // Anzeigen des
    //Ergebnisses
    }

    }

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2010
    Beiträge
    167
    du redest einmal oben von srf10...

    und unten im code steht :
    Adresse des SRF08

    ein bisschen chaotisch, bewahre mal die ruhe, hol tief luft unf überdenke mal deinen code.

    die ganze i2c-lib fehlt, wo der ganze mist unten drin steht:
    i2c_write_2byte....?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Was willst du da denn verstärken, bzw. ändern?
    Der ist doch für 4cm bis 6m ausgelegt, und meiner macht das auch.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    21.12.2009
    Beiträge
    9
    du redest einmal oben von srf10...

    und unten im code steht :
    Adresse des SRF08
    sorry, habe den Code teilweise "abgeschrieben" und das eben vergessen zu ändern...

    die ganze i2c-lib fehlt, wo der ganze mist unten drin steht:
    i2c_write_2byte....?
    naja, die I2C lib ist ganz oben eingebunden:
    Code:
    // Einbinden der I2C-Bibliothek
    #use i2c_hb_expbrd.ic
    in der sind doch die ganzen befehle wie i2c_write_2byte

    Danke schonmal für eure Antworten!


    Was willst du da denn verstärken, bzw. ändern?
    Der ist doch für 4cm bis 6m ausgelegt, und meiner macht das auch.
    man kann beim SRF10 die Reichweite begrenzen. Außerdem kann man die maximale Verstärkung ändern, d.h. wie stark er das signal verstärkt wenn er keine Hindernisse sieht (empfindlichkeit)

Berechtigungen

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