RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
qincym
Beiträge: 193
Registriert: 31 Okt 2010, 22:03
Wohnort: Erzhausen
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von qincym » 19 Jul 2012, 20:06

Hallo thkais,

kann man diese schönen TFT-Displays auch über Knobloch GmbH beziehen? Wenn ja, sind auch Preise verfügbar?

Viele Grüße
Volker-James

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C Drvier (rgb-LED BlinkM) - Problem

Beitrag von fantogerch » 07 Aug 2012, 11:23

Hallo zusammen,

ich habe vor einigen Wochen für meinen Sohn das rgb-LED-Modul "BlinkM" erstanden:
http://www.watterott.com/de/BlinkM-I2C-RGB-LED.

Im Online-Betrieb funktioniert das Modul prima - im Download-Modus bleibt sowohl das Programm aus der RoboPro-Bibliothek als auch eigene Versuche oft schon nach den ersten Befehlen (Stop Script, Set Color Black,...) stecken. Manchmal läuft es auch weiter und es werden beispielsweise einige Farbwechsel abgearbeitet, aber irgendwann ist leider immer Schluss. Auch ein probeweises Ändern der I2C-Adresse oder andere hatte nichts geändert.

Im Online-Betrieb hatte ich ein oder zweimal einen "Aufhänger", konnte dieses Verhalten jedoch nicht reproduzieren.

Kennt jemand diese Probleme und/oder hat eine Idee, wie ich diese beheben könnte?

Danke für eine Antwort im Voraus!
+grussvongeorg

Benscho97
Beiträge: 22
Registriert: 16 Jul 2011, 10:39

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von Benscho97 » 08 Aug 2012, 09:24

Hallo,

kann man die 12C Sachen dann auch mit RoboPro programmieren oder
muss man das dann mit einer anderen Programmiersprache machen?

Gruß,
Benscho

qincym
Beiträge: 193
Registriert: 31 Okt 2010, 22:03
Wohnort: Erzhausen
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von qincym » 08 Aug 2012, 16:45

Hallo Bensho,

die ganze Zeit ist in den betreffenden Foren von RoboPro 3.1.3, RoboTX und I²C (oder auch I2C) die Rede. Ich gehe mal davon aus, dass da ein gewisser Zusammenhang besteht.

Viele Grüße
Volker-James


EDIT: Ein "den" durch "in" ersetzt.

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (BlinkM)

Beitrag von fantogerch » 16 Aug 2012, 16:50

@ Rei Vilo

Thanks a lot for your help ! Now it works really fine. You made me happy - and my son too !
+grussvongeorg

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 27 Nov 2012, 16:48

Wieder mal hallo geschätzte FT-Fans,

mein Sohn wünscht sich zu Weihnachten einen Gyro-Sensor "ITG-3200" http://www.watterott.com/de/Gyro-ITG-3200-Breakout und einen 3-Achsenbeschleunigungssensor "ADXL-345" http://www.watterott.com/de/Breakout-Board-ADXL345. Die zugehörigen Treiber sind ja bei RoboPro in der Bibliothek I2C zu finden.

In der Beschreibung der Breakout-Boards bei Watterott steht, dass die Eingangsspannung 2-3,6 Volt betragen darf. Nun liegen ja am I2C-Bus vom TX-Controller 5 Volt-Spannung an. Kann man diese I2C-Module nun trotzdem direkt an den I2C-Bus anschliessen? Und kann man 5V I2C-Module (z.B. ein LCD-Display) mit einem 3.3V Modul gleichzeitig in einem Bus betreiben? Oder kann mir/meinem Sohn jemand einen Tipp geben, wie man I2C-Module für 3,3 V korrekt an den TX-Controller anschließt? Ich selbst bin leider kein Elektronik-Profi :-(

Über eine Antwort würde ich mich sehr freuen!
+grussvongeorg

vleeuwen
Beiträge: 1609
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von vleeuwen » 27 Nov 2012, 19:04

Nice question, with a little help of BING:

Some suggestions for a I2C bus level shifter
http://www.nxp.com/documents/applicatio ... N10441.pdf

http://www.ti.com/corp/docs/landing/hpa ... ca9306.htm


See Figure 3. Application Example with Discrete Level Shifter
http://www.onsemi.com/pub_link/Collateral/AND8449-D.PDF

Benutzeravatar
Defiant
Beiträge: 412
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von Defiant » 27 Nov 2012, 19:42

Mit etwas Suche per google kann man auch 5V Beschleunigungssensoren finden, z.B.
http://www.shop.robotikhardware.de/shop ... cts_id=232
Der Treiber müßte dann vermutlich leicht angepasst werden.

Es gibt I2C-Pegelwandler, wie den PCA 9517 (reichelt), der will aber korrekt angeschlossen werden, dann werden noch Pullups und eine funktionierende 3V Versorgung benötigt - Für Anfänger sicherlich nichts einfaches, und wenn es nicht gleich unterm Tannenbaum läuft ist das Geschrei los. Deswegen würd ich 5V Varianten nehmen.

Der Betrieb von Geräten mit unterschiedlichen Spannungspegeln ist generell möglich.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 27 Nov 2012, 23:26

Hallo Carel und Defiant,

herzlichen Dank für Eure Infos.

Ich habe schon befürchtet, dass es nicht so einfach wird "3-Volt-Module" anzuschliessen. Mein Sohn und ich werden uns wahrscheinlich auf die Suche nach "5-Volt-Modulen" machen - es auch so schon kompliziert genug für uns :-)

Mein Sohn hat die Treiber-/Programmbibliothek I2C von RoboPro durchstöbert und will am liebsten von jedem Teil eins ausprobieren ...

Auch den Farbsensor "ADJD-S311-CR999" gibt es z.B. bei Watterott leider nur als 3-Volt-Modul :http://www.watterott.com/de/Color-Light ... ion-Board- - da habe ich auch noch keinen ähnlichen Sensor für 5 Volt gefunden ...

Oder dieser Luftdrucksensor wär ja auch nett: http://www.watterott.com/de/Breakout-Bo ... rucksensor - leider auch 3Volt ...

Vielleicht sollte man in den Beschreibungstext der RoboPro-Beispielprogramme noch einen kleinen Hinweis bezüglich der 3V versus 5V Problematik unterbringen.

Und ich mach mich nun auf die Suche. Falls jemand interessante 5-Volt-Module kennt freuen wir uns über Hinweise!

(ich werde mich aber auch mit I2C Level Shifter und der gleichen beschäftigen - aber da fehlt mir bis Weihnachten leider die Zeit etwas funktionstüchtiges auf die Beine zu stellen. Ich will die Module ja auch nicht leichtfertig "verheizen" - so ganz billig sind die Dinger ja auch nicht gerade ...

Guts Nächtle!
+grussvongeorg

vleeuwen
Beiträge: 1609
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von vleeuwen » 27 Nov 2012, 23:40

The level shifter with the two: NTMD4840 is very common.

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1845
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von Dirk Fox » 28 Nov 2012, 21:33

Hallo fantogerch,
fantogerch hat geschrieben:In der Beschreibung der Breakout-Boards bei Watterott steht, dass die Eingangsspannung 2-3,6 Volt betragen darf. Nun liegen ja am I2C-Bus vom TX-Controller 5 Volt-Spannung an. Kann man diese I2C-Module nun trotzdem direkt an den I2C-Bus anschliessen?
eine Weile sollte das auch mit 5V funktionieren - die Lebensdauer der Sensoren verkürzt sich aber ggf. beträchtlich... Eine Alternative zu einem I2C-Spannungswandler sind zwei in Reihe geschaltete Dioden: damit erreichst Du einen Spannungsabfall von 2x0,7 V (5-1,4 gibt ganz zufällig genau 3,6V); siehe den Tipp von Harald zu meinem Nunchuk (http://www.ftcommunity.de/details.php?image_id=36074).

Das funktioniert recht gut; möglicherweise reicht aber bei dem einen oder anderen Sensor dann die Ausgangsspannung an der Datenleitung nicht mehr, damit das Signal korrekt erkannt wird. Daher ist ein Spannungswandler (wie der von NXP beschriebene) sicher die besser Lösung - probieren kannst Du es aber auch problemlos erstmal mit der Diodenlösung (0,02 Euro/Stück und max. 2 Löstellen :-), und Dioden kann man immer gebrauchen, siehe die Schaltungen von Steffalk in ftpedia 3/2011).
fantogerch hat geschrieben:Und kann man 5V I2C-Module (z.B. ein LCD-Display) mit einem 3.3V Modul gleichzeitig in einem Bus betreiben?
Wenn Du die 3,3V-Sensoren "hinten" in den Bus hängst, sollte das m.E. auch mit den Dioden klappen (bis auf die o.g. Problematik der Signalleitung). Kaputtgehen kann jedenfalls nix dabei - Du bekommst höchstens "Datensalat" auf dem Bus, weil z.B. Kollisionen nicht oder Datenbits falsch erkannt werden.

Oder Du wählst alternative 5V-Module. Neben dem von defiant genannten Anbieter gibt es auch noch "no dna" - einige der dort angebotenen I2C-Sensoren haben sogar einen integrierten Spannungsregler (z.B. http://nodna.de/Pololu-LSM303DLHC-3D-Ko ... ungsregler).

Beste Grüße,
Dirk

vleeuwen
Beiträge: 1609
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von vleeuwen » 28 Nov 2012, 22:15

I have a little bit my doubts about the solution with the diodes.
This because the dynamic behavior of the diodes.
The startlevel is 0V and only after some time the level will be 0.7V.
In this periode the level on the I2C bus could be 5 V until the 2 diodes are charged.
Also you will need to make use of very fast diodes to be save.


As I wrote earlier, you will find in the publications about level shifting that the MOSFET solution is very common.
FDV301N MOSFET is very often used for this purpose.

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 29 Nov 2012, 15:44

Danke für die schnellen Reaktionen und die vielen Tipps!

Für meinen Sohn werde ich im ersten Moment mal 5V-Module besorgen - und im stillen Kämmerlein selbst 3,3V-Bastelein ausprobieren. Wenn was funktionierendes dabei rauskommt stelle ich es dann gerne zur Diskussion.

Wünsche schöne Vorweihnachtszeit !
+grussvongeorg

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 16 Dez 2012, 11:20

Habe Eure Tipps beherzigt und kann mittels Pololu Step-Down Schaltregler D24V6ALV (aus 5V mach 3V) und 4-Kanal Level Converter (4 BSS138 FETs mit 10K pullups) sowohl 5V- als auch 3V I2C-Module gleichzeitig ansteuern. Beispielsweise den Color Sensor ADJD-S371 (3V) oder den Accelerometer ADXL345 (3V) und als eine Art optische Anzeige eine BlinkM rgb-LED (5V).

Das eröffnet meinem Sohn und mir wunderbare neue Möglichkeiten ...

... Weihnachten kann nun kommen!
+grussvongeorg

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 18 Dez 2012, 11:53

thanks a lot ! interesting product and interesting shop (i didn`t know this shop yet) ...

Joyeux Noël et Bonne Année
+grussvongeorg

geab
Beiträge: 44
Registriert: 15 Feb 2011, 12:29

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von geab » 20 Dez 2012, 21:30

Hej FTler
I want to add a I2C pressure sensor the MS5611 from MEAS http://mwc-fr.wikispaces.com/file/view/ ... 1BA01.pdf and have bought a board from Drotek.fr
The MS5611 The MS5611-01BA has only five basic commands:
1. Reset
2. Read PROM (128 bit of calibration words)
3. D1 conversion
4. D2 conversion
5. Read ADC result (24 bit pressure / temperature)
and I would be happy for any advice how to sent the commands.
On pages 9-11 of the Meas pdf some information is available on how to sent commands in SPI/I2C but I am too newbie to get the bigger picture.
Thanks, Gernot

just found some hints in an arduino code:
http://arduino.cc/forum/index.php?topic=103377.0
D1 = getVal(ADDRESS, 0x48); // Pressure raw
D2 = getVal(ADDRESS, 0x58);// Temperature raw

would i simply use the hex codes in the I2C Read command (Level 4) (chapter 8.2.8) of Robopro?

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 21 Jan 2013, 10:51

Hallo geab,

ich habe vor kurzem den Drucksensor BMP085 erworben und versucht hierfür ein entsprechendes RoboPro-Programm zu erstellen. Ich bin mir noch nicht so ganz sicher, ob ich alles richtig gemacht habe, da ich sowohl für die Temperatur als auch den Luftdruck noch "Korrekturwerte" angeben musste, die ich aus den Datenblättern nicht ableiten kann (gemessene Temperatur ist ca. 2°C zu hoch und Luftdruck ist ca. 40 hPa zu hoch).

Falls Du möchtest könnte ich Dir das Programm ohne Gewähr trotzdem zukommen lassen - einiges ist ähnlich dem MS5611 ...
+grussvongeorg

Ad2
Beiträge: 306
Registriert: 31 Okt 2010, 22:20

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von Ad2 » 21 Jan 2013, 11:37

The device is 3.3V so you will need level shifters (mosfet or sparkfun board) and voltage regulator. Also you have to set the device to I2C mode (PS high). When everything is properly connected you should be able to read all values from RoboPro. The datasheet shows a flowchart with information on how to use the calibration values. Note that D1 and D2 are 24 bit whereas RoboPro uses only 16 bit. So typically you will read D1 or D2 as two 16 bit values and assemble it into a 48 bit FP number. You can do the same for C1 to C6 (16 bit only but scaling required). The I2C address of the chip is 0x76 or 0x77 (7 bit notation, depending on CSB pin).

fantogerch
Beiträge: 42
Registriert: 26 Jan 2011, 22:12
Wohnort: Erlangen

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von fantogerch » 21 Jan 2013, 13:29

Hallo Rei,

i made the calculations and i got the right solutions (as shown in the example of the data sheet).

If you or anyone else wants my files i would like to provide them - perhaps i made a mistake in the Read Out sequences ...
+grussvongeorg

geab
Beiträge: 44
Registriert: 15 Feb 2011, 12:29

Re: RoboPro I2C-Treiber Sammlung (I2C Driver Collection)

Beitrag von geab » 26 Jan 2013, 22:17

Hej Georg

dass würde mir super weiterhelfen - bin durchs Programmieren am Jeenode/Arduino weitergekommen, aber hb es noch nicht auf den TX umgesetzt.

Gruss, Geab

fantogerch hat geschrieben:Hallo geab,

ich habe vor kurzem den Drucksensor BMP085 erworben und versucht hierfür ein entsprechendes RoboPro-Programm zu erstellen. Ich bin mir noch nicht so ganz sicher, ob ich alles richtig gemacht habe, da ich sowohl für die Temperatur als auch den Luftdruck noch "Korrekturwerte" angeben musste, die ich aus den Datenblättern nicht ableiten kann (gemessene Temperatur ist ca. 2°C zu hoch und Luftdruck ist ca. 40 hPa zu hoch).

Falls Du möchtest könnte ich Dir das Programm ohne Gewähr trotzdem zukommen lassen - einiges ist ähnlich dem MS5611 ...

Antworten