-         

Ergebnis 1 bis 3 von 3

Thema: Hilfe bei Odometrie

  1. #1

    Hilfe bei Odometrie

    Anzeige

    Hallo Leute !

    Ich glaube, dass bei meinem Asuro die Odometrie nicht funktioniert.

    Wenn ich die Go oder Turn Funktionen einsetze, beginnt er die Bewegung hört aber nicht mehr damit auf. Fährt also immer nur in eine Richtung oder dreht sich endlos im Kreis.

    Ich habe diesen Code zum Testen ausgeführt:

    #include "asuro.h"
    #include <string.h>
    #include <stdio.h>

    int main(void)
    {
    unsigned int data[200][2];
    char c[12];
    int i;
    Init();

    // Motoren auf Vorw�ts
    MotorDir(FWD, FWD);
    MotorSpeed(160,160);
    // Warten, bis Motoren Drehzahl erreicht haben
    for (i=0; i<1000; i++) Sleep(72);

    // 200 Odometrie-Werte einlesen
    for (i=0; i<200; i++) {
    OdometrieData(data[i]);
    }

    MotorSpeed(0,0);

    for (i=0; i<200; i++) {
    sprintf(c,"%4d\t%4d\n\r",data[i][0],data[i][1]);
    SerWrite(c,12);
    }


    while(1) {
    }
    return 0;
    }

    Das Ergebnis war folgendes:
    518 753
    787 751
    783 753
    779 752
    772 754
    770 755
    765 757
    765 758
    761 755
    760 756
    759 753
    764 755
    771 756
    776 763
    784 769
    787 776
    791 784
    793 789
    800 799
    807 804
    816 815
    826 822
    836 833
    847 843
    853 855
    863 868
    870 880
    881 895
    888 903
    898 913
    905 919
    911 927
    918 929
    920 933
    926 934
    926 934
    929 937
    928 934
    929 936
    928 933
    928 936
    931 934
    930 936
    933 936
    932 935
    934 936
    932 934
    933 936
    933 934
    934 935
    937 932
    934 933
    937 932
    934 930
    936 931
    932 924
    932 921
    930 913
    929 907
    927 897
    921 889
    918 880
    909 868
    903 858
    891 843
    883 831
    871 814
    859 801
    848 785
    832 773
    820 764
    804 754
    791 748
    777 738
    767 734
    759 728
    750 728
    743 728
    734 728
    730 731
    724 734
    721 743
    719 744
    718 747
    719 742
    718 737
    722 730
    722 726
    726 729
    727 735
    729 745
    730 751
    731 759
    733 763
    732 769
    734 773
    732 778
    733 784
    733 790
    735 800
    737 807
    742 819
    748 829
    754 844
    764 855
    769 869
    780 881
    788 892
    800 902
    809 906
    820 914
    831 916
    842 921
    855 922
    864 926
    878 926
    886 928
    897 932
    901 931
    908 935
    911 934
    913 938
    916 938
    916 942
    920 943
    920 945
    924 948
    924 945
    927 946
    927 942
    927 943
    928 938
    927 937
    929 933
    928 930
    930 927
    929 920
    931 918
    931 909
    932 905
    932 896
    930 889
    931 878
    926 867
    925 857
    918 839
    914 828
    907 813
    899 802
    892 788
    881 777
    873 765
    859 750
    849 740
    837 727
    829 722
    821 720
    814 723
    810 724
    802 726
    799 728
    794 726
    792 730
    789 730
    789 734
    789 733
    787 735
    788 736
    785 738
    786 743
    784 745
    785 752
    783 756
    783 764
    784 770
    784 779
    788 787
    790 797
    797 807
    801 815
    810 826
    817 833
    826 846
    834 856
    843 871
    852 881
    857 894
    867 901
    875 907
    887 914
    894 915
    905 921
    912 920
    918 925
    924 924
    926 926
    931 926
    931 927
    935 928
    934 927

    Was läuft da falsch? Ich hoffe ihr könnt mir helfen

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Was läuft da falsch?
    Falsche Rubrik im Forum gewählt, keine Code-Tags verwendet...

    Die Werte der Odometrie geben die Helligkeit an mit der die Sensoren beleuchtet werden. Die hellen und dunklen Segmente auf den Codescheiben reflektieren unterschiedlich.

    btw: die erste Lesung des ADCs ist offensichtlich Schrott:

    Das Ergebnis war folgendes:
    518 753
    787 751
    783 753
    779 752
    Diesen Effekt kann man bei den Liniensensoren auch feststellen.

    Ach ja, fast vergessen: Glückwunsch zum asuro und willkommen im RN-Forum :)

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Sorry, dass es nicht im richtigen Bereich gepostet ist. War keine Absicht.

    Das Odometrieverfahren kenne ich. Aber warum fährt er denn endlos ?

    Ich habe schon die Schwellenwerte angepasst:

    /* Odometrie / Encoder */
    /*! Wert, der in der Odometrie ueberschritten werden muss, um zum
    weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
    Automatik\n
    Die Originalwerte (links, rechts) sind \b 160.
    Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
    Sie MUESSEN GROESSER als die Werte fuer MY_ODO_DARK_VALUE_L sein.
    */
    #define MY_ODO_LIGHT_VALUE_L 900 /*!< Encoderschwellwert fuer Hell (linke Seite) */
    /*! Wert, der in der Odometrie unterschritten werden muss, um zum
    weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
    Automatik\n
    Die Originalwerte (links, rechts) sind \b 140.
    Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
    Sie MUESSEN KLEINER als die Werte fuer MY_ODO_LIGHT_VALUE_L sein.
    */
    #define MY_ODO_DARK_VALUE_L 800 /*!< Encoderschwellwert fuer Dunkel (linke Seite) */
    /*! Wert, der in der Odometrie ueberschritten werden muss, um zum
    weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
    Automatik\n
    Die Originalwerte (links, rechts) sind \b 160.
    Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
    Sie MUESSEN GROESSER als die Werte fuer MY_ODO_DARK_VALUE_R sein.
    */
    #define MY_ODO_LIGHT_VALUE_R 900 /*!< Encoderschwellwert fuer Hell (rechte Seite) */
    /*! Wert, der in der Odometrie unterschritten werden muss, um zum
    weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
    Automatik\n
    Die Originalwerte (links, rechts) sind \b 140.
    Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
    Sie MUESSEN KLEINER als die Werte fuer MY_ODO_LIGHT_VALUE_R sein.
    */
    #define MY_ODO_DARK_VALUE_R 800 /*!< Encoderschwellwert fuer Dunkel (rechte Seite) */

    Bei über 900 oder unter 800 müsste der Asuro ja nun einen Wechsel von schwarz nach weiß oder umgekehrt feststellen können.

    Also wo liegt das Problem ? Ich komme nicht weiter...

Berechtigungen

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