MultiWii + MPU6050

FC oparte na Arduino

Moderatorzy: moderatorzy2014, moderatorzy

ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

MultiWii + MPU6050

Post autor: ClassAxion »

Hej.
Problem jest prosty, gdy obrócę drona w lewo, to w programie MultiWii przekręca się on w prawo. Wygląda na to że YAW jest odwrócony? Jak mogę go odwrócić?
Obrazek
Awatar użytkownika
MacPiston
Posty: 1051
Rejestracja: niedziela 02 lis 2014, 10:30
Lokalizacja: Gliwice
Kontakt:

Re: MultiWii + MPU6050

Post autor: MacPiston »

A wskaźniki roll i pitch działają dobrze? Jak tak to nie ma się czym przejmować, powinien latać.
ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

Re: MultiWii + MPU6050

Post autor: ClassAxion »

MacPiston pisze:A wskaźniki roll i pitch działają dobrze? Jak tak to nie ma się czym przejmować, powinien latać.
Tak jak pisałem, ROLL i PITCH działają dobrze

Jeszcze jeden problem, dlaczego tak się dzieje jeśli wskaźniki są na "domyślnych" pozycjach? Silnik FRONT_L opada z mocy, dlaczego? :shock:

Zdjęcie (http://i.imgur.com/MWKwlv9.png):
Obrazek

#Edit

Po dłuższym czasie wygląda na to jakby chciał skręcić, tylko pytanie dlaczego skoro wszystkie odczyty są cały czas takie same?
Zdjęcie (http://i.imgur.com/BK9mcLj.png):
http://i.imgur.com/BK9mcLj.png

Wydaje mi się że to przez odwróconego YAW'a. Copter lekko skręci w lewo (na skutek np. lekkiego błędu żyroskopu, drgań ramy) a MultiWii chce go wyrównać leć przez odwrócony YAW nic nie zdziała, dobrze myślę?
Awatar użytkownika
cebulator
Posty: 1432
Rejestracja: poniedziałek 10 wrz 2012, 08:16
Lokalizacja: Mielec

Re: MultiWii + MPU6050

Post autor: cebulator »

MacPiston pisze:A wskaźniki roll i pitch działają dobrze? Jak tak to nie ma się czym przejmować, powinien latać.
Tak? Przy odwróconym YAW będziesz miał piękną karuzelę.

W kodzie jest YAW_Direction (albo jakoś tak) zmień na przeciwny i zobacz czy poprawnie działa. A dopóki nie reaguje jak należy to nie lataj.
Pozdrawiam Sławek

... jeśli nie wiesz co robić, nabieraj wysokości. Jeszcze nikt nie zderzył się z niebem...
ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

Re: MultiWii + MPU6050

Post autor: ClassAxion »

cebulator pisze:
MacPiston pisze:A wskaźniki roll i pitch działają dobrze? Jak tak to nie ma się czym przejmować, powinien latać.
Tak? Przy odwróconym YAW będziesz miał piękną karuzelę.

W kodzie jest YAW_Direction (albo jakoś tak) zmień na przeciwny i zobacz czy poprawnie działa. A dopóki nie reaguje jak należy to nie lataj.
Zrobiłem tak lecz nadal jest ten sam problem :/
Awatar użytkownika
Rurek
Posty: 16419
Rejestracja: środa 10 mar 2010, 15:21
Lokalizacja: AIP ENR 5.5 - AAA 153 :-)

Re: MultiWii + MPU6050

Post autor: Rurek »

MacPiston pisze:nie ma się czym przejmować, powinien latać.
Nie pisz tak bo młodzież to czyta. To jest po prostu herezja.
cebulator pisze:W kodzie jest YAW_Direction (albo jakoś tak) zmień na przeciwny i zobacz czy poprawnie działa.
Ten parametr odpowiada tylko i wyłącznie za sygnał sterujący otrzymywany z aparatury i można go tym parametrem po prostu odwórcić (1 albo -1 i wszystko co można zrobić)
Natomiast za problem opisywany w tym wątku najprawdopodobniej odpowiada błędna deklaracja płytki i/lub (jeżeli nie zadeklarowano gotowej płytki) to złe deklaracje osi czujników w kodzie. Bodajże w config.h jest parę linijek odpowiedzialnych za "IMU orientation" i tam trzeba na przeciwny znak zmienić przy osi YAW.
infekcja FPV postępuje w zastraszającym tempie...
Awatar użytkownika
MacPiston
Posty: 1051
Rejestracja: niedziela 02 lis 2014, 10:30
Lokalizacja: Gliwice
Kontakt:

Re: MultiWii + MPU6050

Post autor: MacPiston »

Rurek, u mnie jest tak że sztuczny horyzont obraca się odwrotnie, a roll i pitch dobrze więc dlatego tak napisałem.
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: MultiWii + MPU6050

Post autor: miś »

Ale sztuczny horyzont nie ma nic wspólnego z YAW, a tu był problem, a na dodatek sztuczny horyzont MA SIĘ OBRACAĆ ODWROTNIE.
Pzdr. -----MIŚ-----
ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

Re: MultiWii + MPU6050

Post autor: ClassAxion »

Bazuję na Arduino Pro Mini wraz z MPU6050 i MS561101BA.

W takim razie na co ma wskazywać oś X MPU6050? Na przód, tył, prawo czy może lewo?

Po odkomentowaniu tych linijek

Kod: Zaznacz cały

      //#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  Y; imu.accADC[PITCH]  = -X; imu.accADC[YAW]  = Z;}
      //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -Y; imu.gyroADC[PITCH] =  X; imu.gyroADC[YAW] = Z;}
PITCH zamienił się z ROLLem, czyli obracając copterem w lewo/prawo rusza się PITCH a nie ROLL.
A YAW nadal tak samo (testowałem na Z i -Z)
Awatar użytkownika
Rurek
Posty: 16419
Rejestracja: środa 10 mar 2010, 15:21
Lokalizacja: AIP ENR 5.5 - AAA 153 :-)

Re: MultiWii + MPU6050

Post autor: Rurek »

X to lewo prawo
Y to przód tył
Więc zamień na takie:

Kod: Zaznacz cały

#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  X; imu.accADC[PITCH]  = -Y; imu.accADC[YAW]  = Z;}
      //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -X; imu.gyroADC[PITCH] =  Y; imu.gyroADC[YAW] = Z;}
Ewentualnie jeszcze znaki poodwracaj jakby nie w tę stronę się wszystko wizualizowało

Co do YAW to już nie mam pomysłu :shock: A czy zamieniałeś na przeciwne te znaki parami w obu linijkach?
Czy w takim układzie zakomentowałeś deklarację jakiejkolwiek płytki?

aaa i czy YAW przy powolnym obracaniu jak i szybkim tak samo źle się wychyla? Czy może po szybkim obrocie w palcach , po paru sekundach zaczyna sie "odkręcać" w dobrą stronę?

Zrób jeszcze pewien eksperyment - odwróć do góry nogami płytkę MPU i zobacz co się stanie....
infekcja FPV postępuje w zastraszającym tempie...
ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

Re: MultiWii + MPU6050

Post autor: ClassAxion »

Rurek pisze:X to lewo prawo
Y to przód tył
Więc zamień na takie:

Kod: Zaznacz cały

#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  X; imu.accADC[PITCH]  = -Y; imu.accADC[YAW]  = Z;}
      //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -X; imu.gyroADC[PITCH] =  Y; imu.gyroADC[YAW] = Z;}
Ewentualnie jeszcze znaki poodwracaj jakby nie w tę stronę się wszystko wizualizowało

Co do YAW to już nie mam pomysłu :shock: A czy zamieniałeś na przeciwne te znaki parami w obu linijkach?
Czy w takim układzie zakomentowałeś deklarację jakiejkolwiek płytki?

aaa i czy YAW przy powolnym obracaniu jak i szybkim tak samo źle się wychyla? Czy może po szybkim obrocie w palcach , po paru sekundach zaczyna sie "odkręcać" w dobrą stronę?

Zrób jeszcze pewien eksperyment - odwróć do góry nogami płytkę MPU i zobacz co się stanie....
Ja mam X jako przód/tył więc muszę zmienić położeniu MPU.
Zmieniałem Z w obu linijkach, w configu płytka, etc. jest ustawiona.

Poeksperymentuję i dam znać. :idea:
Ostatnio zmieniony czwartek 06 sie 2015, 21:17 przez ClassAxion, łącznie zmieniany 1 raz.
ClassAxion
Posty: 32
Rejestracja: piątek 06 lut 2015, 20:02

Re: MultiWii + MPU6050

Post autor: ClassAxion »

Oficjalnie mogę stwierdzić że po trzech próbach z przestawianiem MPU fizycznie i w configu wreszcie się udało.

Mam za to jeszcze jedno pytanko, czy przypadkiem nie powinien działać też GYRO prócz tego ACC?
I jeszcze jedna sprawa, czemu YAW powoli się obraca (na chwilę obecną) w prawo? Bardzo powoli i zatrzymało się na ~150 stopniach.. :shock:
Awatar użytkownika
cebulator
Posty: 1432
Rejestracja: poniedziałek 10 wrz 2012, 08:16
Lokalizacja: Mielec

Re: MultiWii + MPU6050

Post autor: cebulator »

No właśnie generalnie to tylko Gyro ma wpływ na YAW bo ACC nie ma fizycznie takiej możliwości.
A nasuwa mi się takie pytanie, czy czasem nie obcinałeś lutowanych goldpinów na płytce MPU? Albo przesadnie upuściłeś?
Pozdrawiam Sławek

... jeśli nie wiesz co robić, nabieraj wysokości. Jeszcze nikt nie zderzył się z niebem...
Awatar użytkownika
Rurek
Posty: 16419
Rejestracja: środa 10 mar 2010, 15:21
Lokalizacja: AIP ENR 5.5 - AAA 153 :-)

Re: MultiWii + MPU6050

Post autor: Rurek »

ClassAxion pisze:I jeszcze jedna sprawa, czemu YAW powoli się obraca (na chwilę obecną) w prawo? Bardzo powoli i zatrzymało się na ~150 stopniach..
Widzisz pytałem o to - powolne obracanie - oznacza że znak przy [YAW] zacytowanym tu za chwilę poniżej ;-) jest niewłaściwy.
GYRO działa w dobrą stronę natomiast ACC po chwili nadgania ale ma niewłaściwy znak raczej...
cebulator pisze:No właśnie generalnie to tylko Gyro ma wpływ na YAW bo ACC nie ma fizycznie takiej możliwości.
Pewien jesteś czy zgadujesz?
Hint: co to za parametr?

Kod: Zaznacz cały

imu.accADC[YAW]
Jak na złość parę postów wyżej został wyszczególniony :-)
infekcja FPV postępuje w zastraszającym tempie...
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: MultiWii + MPU6050

Post autor: miś »

Rurek, bredzisz :!:
ACC nie ma nic do YAW !
Yaw jest kontrolowane przez gyro + MAG (o ile jest podłączony).
Rurek pisze:Hint: co to za parametr?
Kod:
imu.accADC[YAW]
Oś Z od acc, czyli ta skierowana prosto w dół, która ma wartość 512 jak copter leży poziomo. 512 to przyspieszenie 1G, które odczytuje ACC.
Pzdr. -----MIŚ-----
ODPOWIEDZ