- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: ASURO: mitgelieferte Demoprogramme

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734

    ASURO: mitgelieferte Demoprogramme

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo ASURO-Freunde!

    Ich habe nun auch seit ein paar Tagen den Asuro. Die anfänglichen Probleme mit dem Flashen und der Tastenerkennung habe ich dank diesem Forum schnell gelöst. Nun habe ich entdeckt, daß einige Demoprogramme (IRDemo, LineDemo, PCDemo und RechteckDemo) mitgeliefert wurden. Bevor ich eigene Programme schreibe wollte ich diese natürlich zuerst ausprobieren. Ich komm da aber nicht rein. Laut Sourcecode in main.c sollte man nach dem Einschalten die Reflexlichtschranke des linken Rades 10mal triggern, dann würde das Programm anstatt des Selbsttests die Demoprogramme ausführen. Ich habe nun festgestellt, daß meine ausgelesenen Odometriedaten nicht die geforderten 200 unterschreiten. Den Grenzwert muß ich bei mir noch ändern damit es mit dem Testen weitergehen kann.

    Nun aber meine Frage: Gibt es irgendwo eine Beschreibung zu diesen Demoprogrammen oder muß ich mich da selber einarbeiten?

    Gruß Waste

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    08.05.2005
    Ort
    München
    Alter
    52
    Beiträge
    59
    Hi,

    habe leider nichts dazu auf der CD gefunden.

    Vorallem nutzen die 2 Funktionen, die ich mir bis jetzt angesehen habe (Rechteck und LineDemo) nicht die Funktionen, wie sie in der Anleitung beschrieben sind sondern implementieren sie neu. Mit Interruptroutine und so. Finde ich irgendwie blöd so ohne Beschreibung.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    So wie es aussieht, muss ich mich wohl selbst durch die Sourcecodes wühlen.
    Also nachdem ich bei mir den unteren Odometriegrenzwert auf 400 erhöht habe, komme ich jetzt durch Drehen des linken Rades in die Demoprogrammauswahl. Jetzt kann man durch Drücken einer der Tasten 3 bis 6 am Asuro die Demoprogramme auswählen.

    Taster 6: LineDemo
    Taster 5: RechteckDemo
    Taster 4: PCDemo
    Taster 3: IRDemo

    Mit PCDemo lässt sich der Asuro über die IR-Schnittstelle vom PC aus steuern. Die Steuerung ist folgende:
    Taste 8: schneller, vorwärts
    Taste 2: langsamer, rückwärts
    Taste 4: links
    Taste 6: rechts
    Taste 5: stop

    Weitere Demoprogramme habe ich noch nicht getestet.

    Gruß
    Waste

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Ach ja, ich hab noch was zur PCDemo vergessen. Die Fronttaster werden auch ausgewertet. Fährt der Asuro gegen ein Hindernis, so fährt er kurz rückwärts und hält dann an. Gleichzeitig zur Steuerung der Motoren werden noch die LEDs angesteuert. Je nachdem ob er vorwärts, rückwärts , links oder rechts fährt leuchten unterschiedliche LEDs.

    Gruß
    Waste

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.12.2004
    Beiträge
    485
    Hallo

    Habe Asuro gerade mit hilfe des Linienfolger Demo beigebracht einer Linie zu folgen, mußte aber die kritischen Werte wie Geschwindikeit ändern, weil er bei der scharfen Kurve gerne herausflog,...

    Siehe:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=9491

    Um das Demoprogramm aufzurufen, welches Du verwenden möchtest, ändere einfach main().

    int main (void)
    {
    unsigned int i,data[2];
    unsigned char count = 0,flag = FALSE;
    Init();
    LineDemo();
    return 0;
    }

    LG
    Michael

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

    wo hast du den unteren Odometriegrenzwert auf 400 geändert?

    danke inka

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Hallo inka,

    in main.c gibt es folgende Zeile:
    Code:
    if ((data[0] <  200) && (flag == TRUE)) {count ++; flag = FALSE;}
    Da einfach den Wert 200 auf 400 ändern.

    Waste

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

    selbst wenn ich den wert in den originalfiles ändere, komme ich nicht in den demomodus...
    2tes problem:
    der asuro fährt nach dem kompilieren der Linedemo.c (und h, incl. der asuro.c und h und der main.c) überhaupt nicht los...

    was mache ich falsch???

    gruß inka

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Zitat Zitat von inka
    selbst wenn ich den wert in den originalfiles ändere, komme ich nicht in den demomodus...
    Funktioniert denn der Odometrie-Sensor-Test im Selbsttest? Wenn ja, dann den Wert auf 512 erhöhen. Ansonsten ist Fehlersuche angesagt, also Ausgabe der Odometriewerte auf das Hyperterminal, Überprüfen auf richtigen Einbau der Bauteile und der Lötstellen usw.
    der asuro fährt nach dem kompilieren der Linedemo.c (und h, incl. der asuro.c und h und der main.c) überhaupt nicht los...
    Aus der Ferne sehr schwierig eine Diagnose abzugeben. Das musst du selber herausfinden. Zuerst überprüfen, ob die Hardware in Ordnung ist. Dann Testfunktionen in die Software einbauen um zu sehen, ob bestimmte Programmteile aufgerufen werden, z.B. an bestimmten Stellen LEDs oder Motor einschalten. Das Programm so Schritt für Schritt durchforsten, um den Fehler zu lokalisieren.

    Meistens ist es ja ein trivialer Fehler, wie z.B. vor dem Kompilieren nicht neu gespeichert zu haben.

    Gruß Waste

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi waste,
    habe nun getestet:
    im selbsttest leuchten die hinteren LEDs auf, wenn die fototransistroren vorne mit einer taschenlampe beleutet werden, linker transistor, linke LED, rechte transistor, rechte LED.
    Dann habe ich mit diesem code die ausgabewerte der transistoren über hypertherminal beobachtet
    Code:
    #include "asuro.h" // Prüfung der Phototransitoren 
    /* ------------ Line Sensor Test ---------------- */ 
    /* Left Sensor -> Left Break LED ON when Light on 
       Left Phototransistor bright enough             */ 
    /* Right Sensor -> Right Break LED ON when Light on 
       Right Phototransistor bright enough            */ 
    int main(void) 
    { 
       unsigned char tmp[2] = {OFF,OFF}; 
       unsigned int data[2]; 
       unsigned int z; 
       Init(); 
       SerWrite("\n\r  --- Line Sensor Test ---",28); 
       StatusLED(OFF); 
       FrontLED(ON); 
       do 
       { 
          for(z = 1; z < 100; z++); 
          { 
          } 
          LineData(data); 
          if (data[0] > 400) 
             tmp[0] = ON; 
          else 
             tmp[0] = OFF; 
          if (data[1] > 400) 
             tmp[1] = ON; 
          else 
             tmp[1] = OFF; 
          BackLED(tmp[0],tmp[1]); 
          SerWrite("\n\r  Phototransistorwerte links/rechts: ",39); 
          PrintInt(data[0]); 
          SerWrite("/ ",2); 
          PrintInt(data[1]); 
          SerWrite("\f",1);   //Seitenvorschub 
       } 
       while(1); 
       return 0; 
    } 
    /* END Line Sensor Test ------------------------- */
    Der asuro stand auf dem boden, angezeigt wurde beim durchfahren mit einem ca. 10mm breitem schwarzen streifen nur:

    Phototransistorwerte links/rechts: _6 (beispiel)

    also nur die linke seite.
    Beim aufgebockten asuro habe ich einem schwarzen stift durchgerollt. Es gab tatsächlich eine stelle, an der zwei werte angezeigt wurden, beispiel:

    _67/_9

    da war der stift irgendwo zwischen der roten LED und dem rechten fototransistor...
    Sollten beim durchfahren nicht zwei übergänge, also zwei stellen mit zwei werten (jeweils einmal rechts und einma links der höhere wert, oder zumindest zeri stellen mit zwei gleich hohen werten) angezegt werden?

    noch ein test: beim schnelleren durchfahren mit dem streifen veränderte sich die anzeige von 1 (weiss) auf 9 8 7 6 5 6 7 8 9 und wieder 1 (weiss) - von links nach rechts und umgekehrt, aber immer nur eine zahl!

    was kann es sein, bzw. was kann ich noch messen?

    gruß inka

    edit: habe noch etwas gemessen:
    beide vorwiderstände der fototransistoren 20k
    durchgangswiderstand der beiden transistoren an den beinchen gemessen ca 14k
    beim abgedunkelten transistor rechts (stück schlauch) bekomme ich zwei sehr unterschiedliche werte beim übergang sw/w
    beim linken nur einen wert, auch variiened...

    edit-2:
    messungen am pin25/26 des prozessors:
    25: hell 1,04 dunkel 0,2V
    26: hell 2,08 dunkel 0,6V

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test