IMU Citrus 2.1 10DOF

biposta916

Neuer Benutzer
#1
Hallo,

ich wollte einfach mal ein Thema nur für die Citrus öffnen. Da ich gerade meinen ersten WiiCopter baue (Flydumini).

IMU ist eine Citrus 2.1.

Hier meine Fragen und/oder Probleme:

1. Pull Up lässt sich per Lötbrücke ein oder ausschalten. Ich habe die Brücke überprüft, sie ist schon gebrückt (Eingeschaltet). Ich habe jeweils zwischen Brücke und SDA sowie SCL 2,2 kOhm (so soll es sein, denke ich).
Also sind die internen Pullups Aktiviert. Ist das richtig?


2. In der def.h (multiwii Version 2) steht unter Citrus 2.1:

#if defined(CITRUSv2_1)
#define ITG3200
#define ADXL345
#define BMP085
#define HMC5883
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = Z; magADC[YAW] = X;}
#define ITG3200_ADDRESS 0XD0
#undef INTERNAL_I2C_PULLUPS
#endif


#undef INTERNAL_I2C_PULLUPS - Bedeutet dies, dass wenn ich die pullups Extern also in der Config.h eingeschaltet habe, dass diese dadurch ausgeschaltet wird?


3. Der ACC springt anfangs wild hoch und runter, nach dem ACC Kalibrieren kehrt Ordnung bei den Zahlen ein (0 bis auf Z ca 250) aber er reagiert nicht, er steht dann ruhig da. Ich bekomme in der Wii ConfigV2 entsprechend auch I2C Errors vom ADXL, alle anderen Sensoren sind ok. Wenn ich den ADXL in der def.h unter Citrus2.1 auskommentiere kommen keine Errors mehr. Jedoch bewegt sich die Rechte Copteranzeige nicht mehr, die Balken links zeigen aber an das alle stimmen bis auf ACC.

4. Von was hängt es ab das in der Wii Config der Copter rechts sich analog zum echten Copter bewegt? Wenn ich die Citrus komplett aktiviere , bewegt er sich. Wenn ich die Sensoren z.B. Einzeln einschalte dan bewegt er sich nichtmehr. Die Balken links zeigen aber das sie richtig Arbeite.

Ich habe diesbezüglich gelesen, das ab MultiWii 2 die internen Pullups aktiviert sein MÜSSEN und die externe Deaktiviert. Dann sollte es doch auch funzen.



Ich wollte schon einen I2C Scanner drüber laufen lassen, war auch ein Tipp aus dem Forum. Nur finde ich nichts brauchbares und meine eigen Programierkenntnis reicht leider nicht aus.


Danke schon einmal für eure Hilfe.
 

Roberto

Erfahrener Benutzer
#2
Hi Biposta !
Die Citrus IMU 2.1 haben wir hier im Forum mit dem "Segler" (BTW schöne Grüsse!) und Multiwii 1.9 durchlitten:

http://fpv-community.de/showthread.php?7759-Wii-Copter-Einsteiger-Hilfe!


Unterpunkte:

http://fpv-community.de/showthread....steiger-Hilfe!&p=110725&viewfull=1#post110725

http://fpv-community.de/showthread....steiger-Hilfe!&p=112489&viewfull=1#post112489

http://fpv-community.de/showthread....steiger-Hilfe!&p=112497&viewfull=1#post112497


Du brauchst bei dem Citrusboard keine extra Pullups zu basteln, die sind schon onboard aktiv.
Die Verkabelung ist einfach (wie in der Anleitung!)
Die Pullups müssen im Sketch deaktiviert sein also so:
//#define INTERNAL_I2C_PULLUPS

"#undef INTERNAL_I2C_PULLUPS - Bedeutet dies, dass wenn ich die pullups
Extern also in der Config.h eingeschaltet habe, dass diese dadurch ausgeschaltet wird?"

Ich denke das bedeutet es. Ich würde sie trotzdem auskommentieren in der config.h (s.o)

"..Ich habe diesbezüglich gelesen, das ab MultiWii 2 die internen Pullups aktiviert sein MÜSSEN und die externe Deaktiviert. Dann sollte es doch auch funzen...."
Das kann ich mir nicht vorstellen, da bei mir die Sensoren genau anders herum funktionieren: Interne Pullups DEAKTIVIERT, externe aktiviert.

So long
Rob
 

biposta916

Neuer Benutzer
#3
War mein Fehler, ich meinte intern deaktiviert extern aktiviert.


Komme nicht weiter. Beim Scannen wird die 29 = 0x3A nicht gefunden.

Ein Scanner findet:

I2CScanner ready!
starting scanning of I2C bus from 1 to 232...
30 (0x1E)= HMC5883
104 (0x68)= ITG 3200
119 (0x77)= 085BMP
158 (0x9E)= ?
232 (0xE8) =?


Ein anderer:

I2C scanner. Scanning ...
Found address: 30 (0x1E)
Found address: 104 (0x68)
Found address: 119 (0x77)
Done.
Found 3 device(s).

Ich habe mir die Sketches schon Schritt für Schritt angeschaut. Wie gesagt 5V von der Citrus an VCC vom Mini Pro. SDA und SCL wie es sich gehört und GND vom Flyduini Board.

Ich habe es auch schon mit einem anderen Mini Pro probiert, ich habe die V2 erneut (jungfräulich) runter geladen und hochgeladen...


Immer dasselbe ACC bringt Errors und wird nicht erkannt.
 

zerosight

Erfahrener Benutzer
#5
Hm,

theoretisch & praktisch scheint Deine I²C Verbindung zu funktionieren da er einzelne Nodes prima erkennt. Wenn jetzt noch ein Gerät fehlt, dann scheint das wohl nicht am Bus präsent zu sein. Ich würde mal einen Defekt im Bereich des Bauteils vermuten, dass da nicht gefunden wird. Dass es selbst kaputt ist, würde ich mal als nicht sehr wahrscheinlich betrachten. Schau doch mal genau hin, auch auf alle Leiterbahnen, die dorthin führen. Eventuell findest Du Lötbrücken, Lötperlen (winzig! Lupe nehmen!) oder eine kalte Lötstelle. Scan doch mal den Bus und drück dabei leicht auf das Bauteil.

Falls das alles nicht hilft, hilft wohl nur noch der Austausch.
 

biposta916

Neuer Benutzer
#6
Danke für die Antwort.

mache ich!

Aber was sollen diese zwei Adressen? Sie passen doch überhauptnicht!

158 (0x9E)= ?
232 (0xE8) =?


Ich werde die Teile mal genau begutachten und mal nen Austausch Citrus ordern.

Danke
 
FPV1

Banggood

Oben Unten