-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: RN Control + 3 Achsen Accelerometer + Echtzeit

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39

    RN Control + 3 Achsen Accelerometer + Echtzeit

    Anzeige

    Hallo,

    habe den Control RN-Contro AVR32 - und den 3 Achsen Accelerometer.
    Wenn ich die 3 Achsen über die AD Wandler einlese, dann dauert es sehr lange - zumindest für Echtzeit - bis die 3 Werte im Mega32 umgewandelt sind. Das liegt sicher an der approximativen Wandlung, die dauert halt.

    Das ist mir aber zu langsam, denn je größer die Voltzahlen werden umso länger dauert die Wandlung.

    Ich möchte über einen angesteuerten Servo - und die echtzeit Lagererkennung des Sensors eine Kamera immer in die gleiche Richtung zeigen lassen - und das nützt nichts wenn die Messung dann 1/2 Sekunde später erst beim Servo ankommt und dieser reagiert.

    Gibt es eine Möglichkeit die Wandlung viel schneller vorzunehmen - wer weiß da einen Trick?

    LG

    Klaus

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Wenn das eine halbe Sekunde dauert, hängt etwas anderes. Die Wandlung geht doch viel schneller.

    mfg

    Stefan

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

    Ich bin auch der Meinung, dass bei 1/2 Sekunde Wartezeit nicht nur das Wandeln der analogen Werte bremst.

    Zum Thema "schnelle Wandelzeiten mit dem ADC" hatte ich früher schon mal etwas geforscht. Der "Trick" ist ein gnadenlos kleiner Prescaler. Vielleicht hilft das allgemein beim Auslesen von Lage- und Beschleunigungssensoren in schnellen Regelkreisen:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=33070

    Meine Anwendung war die Kamera am AVR:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=33228

    Gruß

    mic

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

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39
    Danke für die schnelle Hilfe, werde es mal probieren.

    Gruß

    Klaus

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39

    Hier das Video zum Programm

    Hi,

    habe mal ein Video gedreht wie es jetzt funktioniert. Alle Werte werden korrekt übertragen und auch empfangen. Hier der Link zum Video:

    http://www.youtube.com/watch?v=vkqEk1hFiYE

    Gruß - Klaus

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Guten Morgen Klaus,
    das sieht wirklich gut aus. Jedenfalls um einiges besser als bei mir.

    http://www.youtube.com/watch?v=It1FpnNcyvc

    Könntest Du Deinen Code hier zur Verfügung stellen?

    Gruß Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39

    Tiefpass

    Hi,

    Der mega32 liest die Daten vom XYZ Chip und gibt sie ohne veränderung am RS232 aus (3 Werte, je von 0..360)

    Am PC lese ich die RS232 Daten mit PureBasic wieder ein, und die drei Werte landen in x_in, y_in, z_in - noch ungefiltert, also sehr hackelig - wie bei dir auf dem Video.

    In PureBasic filtere ich dann die 3 Daten mit einem Tiefpassfilter - das ist nichts anderes als eine Samplekette durch die alle werte durchgeschoben werden. Z.B in einem Array von 10 Samples stehen nun die letzten 10 eingelesenen Werte von X. Wenn ich die 10 Samples addiere und durch 10 Teile erhalte ich den Mittelwert.
    Die Anzahl der Samples ist als Variable, da ich damit die Steilheit des Filters einstellen kann. Probier mal 100 als "Tiefpass".

    Hier der Code des Tiefpass - in PureBasic, solte aber verständlich sein:
    _________________________________

    dim count as byte ; Hilfsvar
    dim tiefpass as byte ; die Anzahl der Samples

    ; die Länge/Steilheit des Filters
    tiefpass = 10


    ; jetzt die Arrays in denen die Samples landen
    dim array filter_x.w(tiefpass) as word
    dim array filter_y.w(Tiefpass) as word
    dim array filter_z.w(Tiefpass) as word


    ; ---------- FILTER 1 ------------------
    ; alle einen nach links schieben
    ; ich benutze vom Array die Stelle 0 nicht
    ; der letzte Werte wird später der neue

    For count = 2 To tiefpass
    filter_x.w(count-1)=filter_x.w(count)
    filter_y.w(count-1)=filter_y.w(count)
    filter_z.w(count-1)=filter_z.w(count)
    Next count

    ; den letzten Sample mit dem aktuell eingelesenen wert füllen
    filter_x.w(tiefpass)=x_in
    filter_y.w(tiefpass)=y_in
    filter_z.w(tiefpass)=z_in

    ; die Summe löschen
    sum_x.w=0
    sum_y.w=0
    sum_z.w=0

    ; und den Mittelwert bilden
    For count= 1 To tiefpass
    sum_x.w = sum_x.w+filter_x.w(count)
    sum_y.w = sum_y.w+filter_y.w(count)
    sum_z.w = sum_z.w+filter_z.w(count)
    Next count


    ; und noch durch die Anzahl der Samples teilen
    ; und das Ergebnis steht in den folgende Vars:
    x_smooth = Abs(sum_x.w / tiefpass)
    y_smooth = Abs(sum_y.w / tiefpass)
    z_smooth = Abs(sum_z.w / tiefpass)


    ; voila

    _______________________________

    Der Nachteil dieses Tiefpasses: Es dauert natürlich bis die BErechnung getätigt ist, und zwar solange wie die Länge des Arrays (tiefpass).

    Habe in meinem Code 3 kleine Filter hintereinandergeschaltet - das kannst du auch mal versuchen.

    gruß - Klaus

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Hallo Klaus,
    ich habe mir nun auch einen Tiefpassfilter in meine Software eingebaut. Dabei handelt es sich um eine gleitende Mittelwertbildung über 10 Messwerte. Siehe da, nun ist die Anzeige wirklich OK. Wobei ich die Z-Werte zur Veranschaulichung nicht über einen Tiefpassfilter gebe. Der Unterschied ist klar ersichtlich.
    http://www.youtube.com/watch?v=-retG343Vbk
    Danke für Deinen Tip

    Gruss Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    07.01.2008
    Beiträge
    39
    Das sieht doch super aus. Auch das Z nicht gefiltert ist - ist nicht schlecht. Vielleicht kannst du ja dort einen kleiner Filter nehmen (also nur ein bisschen beruhigen 2-3 Samples).

    3 Fragen habe ich noch:

    1) Was ist das denn für eine Software in der du das auf dem Monitor anzeigst? Sieht aus wie ein Flugsimulator???

    2) Was ich nicht ganz verstehe sind die Werte, die der XYZ Chip ausgibt. Was passiert denn, wenn ich mich um meine Achse drehe? Eigendlich gar nichts - oder?
    X und Y sind mir klar - aber was zeigt Z an?

    3) wie bekommst du so eine Superqualität auf youtube? Das sieht ja echt scharf aus. Welche Auflösung hat dein Originalvideo und welchen Codec?


    Gruß - Klaus


    Frage 4) was willst du denn mit den XYZ Daten anfangen?

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Guten Morgen Klaus,
    die Z-Achse brauche ich nicht. Ich habe sie nur zur Veranschaulichung ungefiltert momentan im Testprogramm gelassen, damit die Filterung klar zu erkennen ist.
    Zur Software: Sie ist von mir komplett selber geschrieben. Schau Dir mal meine Web-Seite an, dann weisst Du, um was es da geht.
    Die Kamera ist eine normale WEB-Cam, die ich als Werbung geschenkt bekommen habe. Ich erstell den Film dann mit Camtasia. Also wirklich nichts besonderes. Ich muss gestehen, die Auflösung weiss ich gar nicht. Muss ich mal nachschauen.
    Gruss Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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