-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: CMPS03 - Problem

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563

    CMPS03 - Problem

    Anzeige

    Hallo!

    Heute habe ich ein kleines Programm geschrieben, was die Daten vom Kompass CMPS03 ausliest, und übers UART an den PC weietersendet. Dabei ist mir aufgefallen, dass egal, wie ich den Kompass drehe, nur Werte zwischen 128 und 255 am PC ankommen. Wenn ich ihn drehe, gibt es ein Bereich um 255, wo sich trotz Drehung sich garnichts tut, und danach sprint der Wert auf 128 und steigt normal weiter.
    Weiss jemand da Rat? Hab ein Atmega8, programmiert in C, I2Clib von Peter Fleury, UART zusammengeschnipselt vom AVR-GCC Tutorial, das funktioniert aber mit unterschiedlichen Strings, also daran liegts nicht.

    Danke schon im Voraus!

    pongi

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Hasst du vielleicht irgendwo in der Nähe einen Motor, Kabel mit höherem Strom/Spannung oder ähnliches? Dieses Phänomen kenne ich nur von solchen Störquellen.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    Nein, darauf hab ich extra geachtet. Ausserdem ist es komisch, dass die Werte genau 128 und 255 sind. Also nie 127 und so. Irgendwie also ob die eine Hälfte der Skala abgeschnitten wäre....
    Eine Idee von mir: die Werte gebe ich als ein Byte aus. Das wird dann als char interpretiert, deshalb kommen komische Zeichen in Hyperterminal heraus. Daher habe ich ein kurzes LabVIEW Programm geschrieben, was die Daten vom COM-Port des PCs liest, und dann die chars in uints umwandelt udn anzeigt. Mein Prblem kann aber nicht an der Konversion zwischen char und uint liegen oder?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    Hallo,
    ich kenn jetzt den Sensor nicht, aber kann es sein, dass das ergebnis bei der übertragung in 2 teile zerlegt wird, und ein teil nicht richtig ausgelesen wird.
    mfg jeffrey

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    Nein, das Ergebnis vom Sensor ist ein Byte, 0-255 entsprechend 0-360°.
    Man kann aber das Ergebnis auch als ein Word empfangen, vielleicht versuche ich das mal... Obwohl ich nicht genau weiss, wie ich sie dann zusammensetzen muss.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Du bekommst normalerweise ein Word gesendet. Das Word musst du dann durch 10 teilen. Nun hast du die Ausrichtung mit einer Auflösung von 0,1°.
    Es kann passieren, dass es noch mehr Stellen nach dem Komma gibt, die sind aber nicht mehr genau.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    Nein, wenn man Register 1 liest, bekommt man nur ein Byte, siehe CMPS03 doku: http://www.robot-electronics.co.uk/htm/cmps3doc.shtml
    Jetzt hab ich noch folgendes gemacht: ich lass den Atmega die Zahl in eine ASCII Zeichenkette umwandeln, und das wird an den Laptop gesandt. Leider hat das auch keine Änderung ergeben... Es scheint mir so, also ob der Kompass nur 128 "Schritte" für eine volle Umdrehung machen würde...

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Macht er 100pro nicht. Es ist ein Word, das kommt.
    Kannst du mal den Bascom Code von dieser Seite probieren? Vielleicht stimmt etwas an deinem Kompass nicht.

    Kannst du auch mal dienen Code hier reinstellen?

    jon
    Nice to be back after two years
    www.roboterfreak.de

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    @Jon: erstmals vielen Dank für deinen Einsatz

    Ich zitiere: "1 Compass Bearing as a byte, i.e. 0-255 for a full circle"
    Man kann auch als Word auslesen, wenn man Register 2,3 liest, mach ich aber nicht, da ich mit einem Byte mit dem Atmega8 besser arbeiten kann, und die Genauigkeit der letzten Stellen sowieso ziemlich unsicher ist.

    Leider hab ich kein Bascom Compiler, womit ich es testen könnte, ich tendiere aber auch langsam dazu, dass mit dem Kompass was nicht stimmt.... Hab auch schon an Devantech geschrieben, aber leider noch keine Antwort erhalten.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Zitat Zitat von pongi
    Ich zitiere: "1 Compass Bearing as a byte, i.e. 0-255 for a full circle"
    Achso. Hab ich mir nicht alles durchgelesen.

    Zitat Zitat von pongi
    Man kann auch als Word auslesen, wenn man Register 2,3 liest,
    Ich lese Register 2 aus.

    Zitat Zitat von pongi
    und die Genauigkeit der letzten Stellen sowieso ziemlich unsicher ist.
    Stimmt auch wieder...

    Zitat Zitat von pongi
    Leider hab ich kein Bascom Compiler, womit ich es testen könnte,
    Kann man hier kostenlos als DEMO runterladen.

    Zitat Zitat von pongi
    ich tendiere aber auch langsam dazu, dass mit dem Kompass was nicht stimmt.... Hab auch schon an Devantech geschrieben, aber leider noch keine Antwort erhalten.
    Mal schauen, was die zurückschreiben.

    jon
    Nice to be back after two years
    www.roboterfreak.de

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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