PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zusätzliche Sensoren (SRF04 & CMPS03) für den CCRP5



solo
22.12.2005, 21:02
Nachdem es mir gelungen ist ein DCF-Signal über den Eingang(FEQ1) der CC1 auszuwerten will ich jetzt den CCRP5 mit weiteren Sensoren ausstatten.
Mehr zur DCF findet man hier: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14891&highlight=

Konkret handelt es sich um das Ultraschallmodul SRF04 und das Kompassmodul CMPS03.

Das SRF04 hat neben Masse und Vcc noch zwei weitere Anschlüsse, Pulse/SCL und Echo/SDA. Bin mir nicht sicher ob man einen Pullupwiderstand einlöten muss und mit welchem Anschluss, der CC1 oder CC2, die jeweilige Datenleitung, verbunden wird.

Das CMPS03 stellt neben SDA und SCL auch noch einen PWM- und 50/60Hz- Anschluss zur Verfügung. Über das PWM-Signal wird der Messwert übermittelt. Der I2C-Bus soll, wenn er nicht benutzt wird, mit zwei 47k Ohm Widerständen über 5V abgeschlossen werden. Kann dann ja nur SCL und SDA sein(Wenn ich den Bus doch mal brauche muss ich dann die Widerstände wieder auslöten?)!? Wo muss das PWM-Signal an der CC2 angeschlossen werden? Gehts auch mit der CC1? Wozu sind die 50/60Hz gut?

Vitis
23.12.2005, 10:25
Hi, beim I2C-Bus werden SDA und SCL immer über
Pullup an +Betriebsspannung (+5V z.B.) gelegt,
unabhängig ob weitere Bausteine oder nicht.
gängig sind so 4,7 bis 10 KOhm

Dirk
23.12.2005, 17:53
Hallo Solo,

zum Thema I2C und RP5 gibt's folgendes zu sagen:

Die CC1 hat zwar auch die entsprechenden Anschlüsse (SCL/SDA), aber unterstützt von Haus aus den I2C nicht. Man muss dann also eine Software-Lösung schreiben. Das geht auch z.B. mit den CCBASIC-Progs von H.J. Windt hier aus dem Forum (CMPS03 BEARING VIA EMULATED I2C BUS) ganz gut. Man nimmt für die emulierten I2C-Busse dann aber zwei ANDERE Digitalports (nicht SCL/SDA!) der CC1.
Wenn man den I2C-Bus für mehrere Sensoren braucht, hilft das aber auch nicht weiter: Man braucht dann evtl. eine Assembler-Lösung. Die würde beim CCRP5 aber nur in den 255-Byte-Speicher passen, wenn viele der RP5-Steuerungsroutinen rausfallen. Das hat auch schon 'mal einer gemacht (also einen p5driv12.s19-Ersatz geschrieben), ich weiss aber nicht mehr, wer das war. Geh 'mal hier auf die Suche! Nimmt man einen solchen Assembler-Treiber, kann man auch die Pins SCL/SDA der CC1 nutzen.

Die CC2 hat natürlich auch den I2C-Bus, den sie auch vom Betreibssystem her unterstützt.

Auf der Experimentierplatine sind nur die SCL/SDA der CC1 herausgeführt. Die gleichen Ports der CC2 muss man auf der CC2-Platine kontaktieren.

Du könntest also z.B. den CMPS03 an 2 Digitalports der CC1 hängen (Software von H.J.) und evtl. das US-Modul an die CC2 oder an 2 weitere Digitalports der CC1 (2 emulierte I2C-Busse!). Natürlich könnte man auch beide Sensoren an die CC2 hängen.

Für den CMPS03 würde ich die Software-Lösung von H.J. nehmen. Damit läuft das Auslesen der Grad-Werte über den emulierten I2C-Bus. Den PWM-Ausgang des CMPS03 würde ich nicht nehmen (zu ungenau!). Der Vorteil der Lösung ist auch, dass der RP5 sonst unverändert nutzbar ist.

Gruß Dirk

Windt H.J.
24.12.2005, 10:47
Hello, sorry for the english,

Das SRF04 hat neben Masse und Vcc noch zwei weitere Anschlüsse, Pulse/SCL und Echo/SDA

The SRF04 is not an I2C device.
If you want to keep to I2C sensors then it would be better to use a SRF08 or SRF10.

Greetings,
H.J. Windt

solo
05.01.2006, 21:04
Hello, sorry for the english"!"

The SRF04 is not an I2C device.


No problem for the english!

First of all I realy have to reciprocate for all your answers! By the way I have to give my special thanks to Dirk who helped me to find the Softwaresolution with a DCF-Modul on my CCRP5! See more: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14891&highlight=

Unfortunatly there are some more questions! In my discription of the SRF04 is written, as you can read here in the first Paragraph, that it has SDA & SCL. Isn't that I2C???

Furthermore to the Expentionboard of the CCRP5. Is it true that only the devices of the CC1 are connected with it? Why are there no connections to the CC2 which is much more powerfull? How I can manage to reach this Ports (of CC2)? Seems to become a cablesalat if u know what I mean!

Changing the driver (ccrp5.c2) to use the CMPS03 is impossible, because my robot needs it for all the other applications!

Next questions is how is Windt H.J.? I guess the developer of SRF04? Why don't you write your contact or at least a webpage in your profile? And even more suspicious how can you read my question in German an answer in english? :D

P.s.: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=15554&highlight=cmps03

Windt H.J.
05.01.2006, 23:16
Hello,

Unfortunatly there are some more questions! In my discription of the SRF04 is written, as you can read here in the first Paragraph, that it has SDA & SCL. Isn't that I2C????

Check http://www.robot-electronics.co.uk/shop/Ultrasonic_Rangers1999.htm for you SRFXX version. :-k



Next questions is how is Windt H.J.? I guess the developer of SRF04?
I'm not the developer of the SRF04 but i do have the SRF04 and SRF08 . :wink:


And even more suspicious how can you read my question in German an answer in english?
Almost nobody knows! :cheesy:

Greetings,
H.J. Windt

solo
06.01.2006, 00:29
Also dann kann ich ja getrost in meiner Sprache posten! Danke für den aufschlussreichen Link J.H. - wer immer Du auch bist! Schade, dass wir den Entwickler noch nicht zum Wort gebeten haben, wäre bestimmt sehr interessant da mal ein paar Einblicke zu erhaschen!
Noch eine Frage an Mr. Windt if u do have a SRF04 & 08 what do you do with?

Windt H.J.
06.01.2006, 21:17
Hello,


Noch eine Frage an Mr. Windt if u do have a SRF04 & 08 what do you do with?

My SRF04 is not in use right now.
Check out my Robot project https://www.roboternetz.de/phpBB2/viewtopic.php?t=15500
It uses the SRF08.
Greetings,
H.J. Windt

solo
12.01.2006, 21:37
Wenn ich das richtig verstanden habe ist kein Anschluss der CC2 auf dem Experementierboard?! Wäre ja misst denn das sind ja einige nützliche Eingänge die mir dann nicht zur Verfügung stehen!

Auf dem Experementierboard sind 5V, entlang einer Seite, hochgeführt. Liegt die Spannung da permanent an? Kann das im Moment leider nicht mehr messen weil mir der Akku schon wieder leergelaufen ist. Wahrscheinlich weil mein DCF-Modul permanent auf die 5V Leitung angelötet ist.
Falls das so ist und auch wenn nicht würde mich interessieren wie man den einzellnen Modulen über eine Schaltung den Strom abdrehen kann.

Dirk
13.01.2006, 17:31
Hallo solo (aus der Märklin-Stadt),

auf der Experimentierplatine gibt es ja VCC, PWR und +5V:
VCC -> Akkuspannung über R3 und D3
PWR -> VCC über eine Transistor-Schaltstufe (T1) auf der Erweiterungsplatine
+5V -> Von PWR mit einem 2940CT5 auf der Erweiterungsplatine gewonnen

PWR und +5V sind also ABSCHALTBAR mit "CC2POWER=off" im CC1-Programm. Einschalten kann man sie mit "CC2POWER=on".
Wenn man die CC2 hat, wird die dadurch aber AUCH abgeschaltet.

Gruß Dirk

solo
07.04.2006, 19:54
Okay Danke soweit.
Also ich werde jetzt die Ausgänge SCL und SDA meines CMPS03 jeweils über einen 4k7 Widerstand mit 5Volt und anschließend mit den Pins Y330 (SCL) und Y331(SDA) verbinden.
Außerdem werde ich das gleiche mit meinem SRF04 machen.
Mit dem neuen Treiber ccrp5.c2 v2.3c sollte das klappen.

Das mit dem Löten ist kein Problem! Nur Softwaretechnisch wirds problematisch! Wenn das Ultraschallmodul angeschlossen ist möchte ich es gerne anstatt der relativ ungenauen IR-Sensoren benutzen. Beim Kompass wäre eine Ausgabe auf dem LCD wünschenswert.

Dirk
07.04.2006, 21:26
Hallo solo,

das Modul ccrp5.c2 v2.3c emuliert einen I2C-Bus an den Ports 9 (SDA) und 10 (SCL) der CC1. Du must den cmps03 also mit diesen beiden Ports verbinden! NICHT mit den SCL/SDA benannten Pins auf der Experimentierplatine.

Gruß Dirk

solo
08.04.2006, 12:22
Gut soweit. Die Ports 9 und 10 liegen am Experementierboard auf Y154 und Y155. An dies hab ich das CMPS03 nun angelötete allerdings ohne Pullup Widerstände. Auf beiden Pins liegen ca. 6V an!?!

Nach dem ich die 5Volt Versorgungsspannung angelegt habe konnte man ganz leise eine Art Takt ticken hören. Normal?

Die Version 2.3c der ccrp5.c2 und die neue Gateway sind auch auf dem Microcontrollern. Jetzt fehlt mir nur noch ein Stück Code mit dem ich die Gradwerte auf dem LCD ausgeben kann.

P.s.: Wieso fällt das LCD der CCI in v2.3c raus?

Dirk
08.04.2006, 14:12
Hallo solo,

der Code zur Ausgabe der Gradwerte des cmps03 ist in der Demo CCRP5_DEMO2_1.c2 enthalten unter "//Test der CMPS03 Funktionen".
Du must die Kommentarzeichen // da wegmachen (nur bei einer der Versionen für 8 oder 16 Bit) und vor "showSYSTEMDATA();" einfügen, damit das nicht ausgeführt wird.
Viel Erfolg!

Gruß Dirk

P.S.: Wenn es nicht klappt, solltest du doch zwei 10k Pullup-Widerstände von SDA und SCL an +5V legen!

solo
08.04.2006, 18:29
Juhu !!!!!

Version 9! Wird zwar nicht bei jedem Reset erkannt aber immerhin!
Nur die Gradangaben stimmen noch nicht. Liegt möglicherweise daran, dass die Platine nur knapp einen cm über dem Roboter plaziert ist.
Beim Kalibrieren (Pin 6 auf GND) verändern sich die Gradzahlen auch nicht...

solo
09.04.2006, 11:32
Kaum ist der Kompass ein paar Zentimeter mehr über der Platine schon funktioniert es! Auch das Kalibrieren klappt.
Nur Ein Problem hab ich noch! Der Kompass hat seine Nordseite gegenüber der Pins diese stimmt nicht mit der Fahrtrichtung des Roboters überein. Kann ich das Programm so ändern, dass der Roboter beim geradeausfahren anstatt 90 Deg 0 anzeigt?