ArdUniGame #3

Cześć!

W tym tygodniu zająłem się połączeniem mojego żyroskopu (MPU-6050) z Unity.
Stwierdziłem, że będzie to bardzo proste zadanie ponieważ z przyciskami nie było najmniejszego problemu.

Zacząłem od napisania prostego kodu Arduino wysyłającego położenie w  przestrzeni XYZ (dostępny jest na GITHUBIE) wszystko szło dobrze. Na Arduino pozycja była odczytywana prawidłowo, więc przeszedłem do kolejnego kroku. Stworzyłem nową scenę w Unity dodałem Cube’a (sześcian). Zacząłem pisać prosty program, który na podstawie odebranych wartości z Arduino ma zmieniać pozycję Cube’a.

I tutaj zaczęły się schody!

Połączenie się z Arduino nie było najmniejszym problemem jednak podczas zmiany pozycji Cube’a zaczęło się dziać coś bardzo niedobrego.
Reakcje żyroskopu wpływały na zmianę pozycji Cube’a jednak samoistnie podczas nie poruszania żyroskopem kostka się obracała. Aby sprawdzić co jest nie tak wróciłem do kodu arduino Uruchomiłem monitor szeregowy i okazało się, że ewidentnie jedna pozycja zmienia się samoistnie.

Rozmontowałem cały układ, zmontowałem jeszcze raz, przejrzałem kod, wgrałem….i NIC. Nadal to samo. No to co robić dalej? Sprawdzić inny czujnik. Mam jeszcze jeden podobny czujnik w szufladzie jednak postanowiłem się na razie nie zajmować tym problemem i zająć się mechaniką rozgrywki.

Dodałem możliwość teleportowania się, usprawniłem UI oraz rozplanowałem troszkę sztuczną inteligencję przeciwników

  • Sebastian

    Żyroskopy tak mają, to tak zwany dryf żyroskopu, dlatego nigdy tego typu czujników nie wykorzystuje się samodzielnie a w połączeniu z akcelerometrem i kompasem. Żyroskop służy do mierzenia szybkich zmian kątów, a akcelerometr i kompas do niwelowania dryfu i ustalania pozycji kiedy prędkość obrotowa jest niewielka.

    Dobrą referencją mogą być otwarto źródłowe kontrolery lotu, które potrafią sporo wyciągnąć z tego typu czujników.

    • OO. Dzięki 😀 Będę testował!

  • Hum, ciekawy problem, o którym nie zdawałem sobie sprawy. @disqus_FGdGnHGY28:disqus dzięki za przystępne wyjaśnienie. Takie problemy to do rozwiązania w życiu to są fajne ;p