-
-
Erfahrener Benutzer
Roboter Experte
Kuriose Probleme mit UART zw. PC und Atmega8
Hallo!
Ich habe ein ziemlich kurioses Problem mit der Datenübertragung zwischen PC und Robby über UART (virtuelle COM-Schnittstelle mit einem Bluetooth to serial Wandler von Sunix).
Da ich am Anfang gedacht habe, dass da ein Softwarefehler vorliegt, habe ich schon ein Thread bei den Programmierern aufgemacht, inzwsichen bin ich aber der Meinung dass es was anderes ist (https://www.roboternetz.de/phpBB2/viewtopic.php?t=32729)
Zum besseren Verständnis beschreibe ich das ganze Projekt ein bisschen näher.
Damit der Roboter seine Umgebung erkunden kann, bekam er eine Art Radar. Dieser besteht aus einer drehbaren Scheibe, mit zwei Sharp GP2Y0A02 (20-150 cm) oben drauf, jeweils eine für die zwei Kreishälften (also 180°). Der Schrittmotor der die Scheibe dreht, macht in 256 Schritten eine halbe Umdrehung, und es wird bei jedem Schritt gemessen.
Wie gesagt: die ersten 100 Werte (einmal die ersten 97, dann die ersten 106, also keine bestimmte Anzahl) kommen von beiden Sensoren richtig an, die gemessene Spannung liegt also zwischen 0 und 2,56V (interne Referenz). Danach kommen bei beiden Sensoren Werte um die 160, auf alle Fälle um einiges größer als 2,56V.
Anhand diesen Angaben würde ich auf ein Problem in der Datenübertragung schliessen, da die ersten Wandlungswerte richtig übertragen werden, und erst dann die Probleme auftreten.
Hat jemand eine Idee woran das liegen könnte? Danke im Voraus!
MfG
pongi
-
Erfahrener Benutzer
Roboter Experte
Hat da keiner eine Idee?
Wie sieht es mit Bufferüberläufen aus? Wie groß ist der Buffer im PC? Kann es sein, dass ich den zu langsam auslese?
Bzw. wie sollte ich das Timing verändern, um mögliche Fehlerquellen zu minimieren?
-
Erfahrener Benutzer
Roboter Genie
Hallo
Zu deinem eigentlichen Problem hab ich keine Idee.
Vielliecht zuwenig Informationen
Deinen SUNIX Bluetooth Adapter finde ich interessant.
Wo hast du den her ?
MFG
-
Erfahrener Benutzer
Roboter Experte
Wasfür Infos würdet ihr denn noch brauchen? Die UART-Software in C habe ich aus dem RN-Wissen, mit einem 10B FIFO.
Bin ja schon am verzweifeln, ich hab ja schon alles ausprobiert, es geht aber trotzdem nicht....
Das Bluetooth Adapter wurde hier diskutiert, da sind auch meine Erfahrungen dabei: https://www.roboternetz.de/phpBB2/ze...ag.php?t=26585
-
Erfahrener Benutzer
Robotik Visionär
Das du im PC einen Bufferüberlauf hast kann ich mir nicht vorstellen. Wie hoch ist die Baudrate, ist der Datenfluss kontinuierlich, wie sieht deine Hardware µC-Seitig aus. Wie sieht es aus wenn du die Schrittgeschwindigkeit des Drehmotors halbierst und damit auch den Datenstrom.
-
Erfahrener Benutzer
Roboter Experte
Die Baudrate ist 9600, die Daten werden nach jedem Schritt einzeln übertragen, also nicht das ganze auf einmal (falls Du das mit dem kontinuierlichem Datenfluss meinst).
Zwischen den Schritten ist eine Wartezeit von 20ms, plus die Wandlungszeit des AD-Wandlers.
Am Atmega8 wird der eingebaute UART benutzt, danach kommt die Pegelwandlung mit einem MAX232, das geht dann auf den Bluetooth-Serial Wandler.
Schrittgeschwindigkeit halbieren werde ich mal ausprobieren, wahrscheinlich komme ich aber erst am Ende der Woche dazu.
Danke für die Anregungen, mfG
pongi
-
Erfahrener Benutzer
Roboter Experte
Mit 40ms Wartezeit funktionierts...
Es würde mich trotzdem interessieren warum es mit 20 nicht geklappt hat...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen