PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Die IR-Empfänger meines Nibo2 Roboters empfangen anscheinend nichts



RoboFreak++
16.04.2011, 12:38
Hallo!

Ich habe gestern meinen Nibo2 Roboter bekommen und auch gleich zusammengebaut.
Gestern abend ist mir beim Testen dann allerdings aufgefallen, dass die IR-Empfänger zur Distanzmessung anscheinend nicht funktionieren.

'Anscheinend' deshalb, da ich es nicht genau weiss. (Das Grafikdisplay ist noch mit der Post unterwegs - somit bleibt mir nur die 'Kommunikation' über LEDs....)

Ich habe dann ein Testprogramm geschrieben, welches in einer while-Schleife dauerhaft den Coprozessor anweist, seine Messdaten zu aktualisieren, und (und hier könnte evntl. der Denkfehler liegen) wenn die IF-Bedingung "copro_distance[i] != 0" erfüllt ist, soll die entsprechend LED aufleuchten.
Durch diese Bedingung ist ja jede Änderung, sowohl kleiner 0 als auch größer 0 abgedeckt.
Nur bleibt der Wert des / der Register (anscheinend) _immer_ 0.
Ich habe vor alle Sensoren ein weißes Blatt gehalten um das zu überprüfen, aber getan hat sich - leider - nichts.

Anschließend habe ich noch einmal die Abbildungen überprüft, aber sowohl IR-LEDs als auch IR-Empfänger sind korrekt eingelötet. (Also bei den Empfängern die Abflachung immer im Uhrzeigersinn).

Eine Zerstörung durch Überhitzung schließe ich auch aus, da ich kein Anfänger im Löten bin.

Deshalb meine Frage(n):
In welche Richtung (größer oder kleiner 0) ändern sich die Werte je nach Abstand eines Gegenstandes zu den Empfängern?

Und wie kann man nur die Empfänger testen? (Ich meine man kann hier ja leider nicht wie bei den LEDs sehen, dass sie korrekt funktionieren)

Über Antworten würde ich mich freuen.

MfG

Achim S.
16.04.2011, 19:07
Hallo
Begrüsse dich erst mal bei uns und natürlich auch deinen Nibo 2. Da du noch kein Display hast, ist die Kontrolle der Werte sehr schlecht möglich. Hilft eigentlich nur ein bisschen zu warten bis das Teil auch da ist. Wenn dann deine Problem noch aktuell sind, kann ich dir was aus meiner Programmsammlung anbieten. Habe so für fast jeden Einsatz entsprechende Programme geschrieben. Die sind kostenlos zu haben. Kurze mail an mich und ich schicke dir was. Must nur sagen ob in pdf, C oder Word. Ansonsten kannst ja mal auf diesen Seiten nach dem Nibo oder Bot Magazin suchen. Da steht auch viel drin. Es gibt einige fleissige Fans vom Nibo 2 die dir gern weiter helfen. Meine mail steht im Netzund es wird jede Frage beantwortet(so weit möglich).
Achim

RoboFreak++
16.04.2011, 19:53
Hi Achim!

Also ich habe es jetzt geschafft, über den UCOM-Adapter über den UART0 zu kommunizieren und mir die Variablenwerte von "copro_distance[i]" im Terminal anzeigen zu lassen.

Wie zu erwarten, waren alle 0 und ändern sich auch nicht, wenn ich ein Blatt Papier davor halte.

Dafür kann es ja eigentlich nur zwei Fehlermöglichkeiten geben:
1. Alle verkehrt herum eingelötet
2. Sämtliche IR-Empfänger sind defekt (durch Hitze zerstört etc.)

Da es mir bis heute allerdings noch nie passiert ist, ein Bauteil beim Löten durch (zu langes) erhitzen zu zerstören (und dann eben auch gleich noch alle fünf auf einmal), schließe ich diese Möglichkeit eigentlich aus.

Könntest du mir eventuell sagen, ob die IR-Empfänger bei dir auf der Unterseite ebenfalls alle ihre Abflachung (also die Kathode) im Uhrzeigersinn haben?
Das wäre Nett, dann könnte ich eine falsche Bestückung ebenfalls ausschließen.
- Und wäre danach wohl noch ratloser als vorher... :(

btw: Fällt mir grade so ein: Muss ich eventuell noch dem Linker oder Compiler spezielle Argumente übergeben, um die Distanzsensoren nutzen zu können?

MfG

RoboFreak++
16.04.2011, 20:21
So, ich habe gerade noch einmal an allen IR-Empfängern nachgemessen.

Wenn sich kein Objekt in 'Sichtweite' befindet, liegt eine Spannung von ca. 4,5V - 4,7V an.
Stelle ich ein weisses Objet etwa in 5 cm Entfernung davor, sinkt die Spannung auf ca. 2,2V ab.

Das passiert bei allen. Ich denke, somit können sie nicht kaputt sein. Da aber trotzdem weiterhin nur 0 als Distanzwert ausgegeben wird, muss der Fehler softwareseitig sein, bzw. am Coprozessor liegen.

Bei den bisherigen Programmen, habe ich mich immer auf die Beispiele aus dem Tutorial bezogen. Also grob gesagt folgender Ablauf:

1: Aufruf von "copro_ir_startMeasure()"
2: Mittels "copro_update()" die Daten aktualisieren lassen
3: und schließlich Auslesen des Wertes aus dem Array "copro_distance[]"

Ist dieser Ablauf korrekt, oder habe ich da noch etwas vergessen / nicht beachtet?

MfG

elektrolutz
16.04.2011, 21:33
Hallo RoboFreak++,

gleichen Effekt hatte ich auch mit meinem Nibo2 gehabt.
Das Problem war, ich hatte das "Tutorial 8" als "hex-Datei", die unter einer alten Lib compiliert worden war, unter der aktuellen Lib 2.10 auf meinen Nibo2 geladen.

Die aktuelle FW/NiboLib ist V2.10.
Zur Aktualiesierung: Aus der NiboLib 2.10 das Programm "initializer2.hex" auf den Nibo2 übertragen und auch den copro entsprechend Beschreibung im Handbuch neu programmieren.

Ein paar Infos findest Du auch auf www.roboter.cc (http://www.roboter.cc).

RoboFreak++
16.04.2011, 23:23
Jawoll, DAS war das Problem.

Jetzt läufts! :) :) :)

Vielen Dank an euch!

Hero_123
03.01.2012, 10:08
Hallo RoboFreak

Wie hast Du es denn gemacht, dass über den UCOM-IR2 Adapter über UART0 z.B. die Variablenwerte von "copro_distance[i]" im Terminal angezeigt werden? Ich kenne nur die Fkt "copro_TransmitRC5Code(..)" - kannst Du mir mal Deinen sourcecode zukommen lassen (z.B. per pn)?

Ich habe bislang nur die Fkt "copro_TransmitRC5Code(..)" ausprobiert, und da gibt's bei mir Probleme, da die gesendeten Daten nicht immer gleich sind (sende z.B. den RC-Code für3805 - sieht jedesmal anders aus)

Mfg

Hero_123