SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Znajomość wartości pola magnetycznego Ziemi pozwala na określenie bieżącego kierunku południka magnetycznego, a tym samym uzyskanie cyfrowego kompasu.  Tym razem rozpracujemy 3-osiowy magnetometr HMC5883L

Na filmie możemy zaobserwować, jak na wskazania kompasu wpływa efekt "tiltu" - czyli przechyleń wpływających na odczyty wartości pola magnetycznego. Zobaczymy również wpływ zakłóceń pochodzących z teleofnu komórkowego i transformatora sieciowego na działanie magnetometru.

Jest to już ostatni z czterech układów znajdujących się w module GY-80. Już niebawem dowiecie się, jak uchronić kompas przez działaniem "tiltu" oraz poznacie metodę wzajemnej kompensacji odczytów z akcelerometra i żyroskopu. Omówimy również działąnie filtra Kalmana.

Reklama

Zgodnie z zapowiedzią z poprzedniego wpisu zapraszam do zapoznania się z nowym artykułem na temat 3-osiowego akcelerometru ADXL345 od Analog Devices. Dowiemy się z niego jak odczytywać wartości przyśpieszeń działające na układ oraz poznamy metodę przeliczania wektorów prędkości na kąty ułożenia obiektu w przestrzeni (pitch, roll). Omówimy również obsługę przerwań do wykrywania zdarzeń takich jak: swobodne spadanie, stuknięcie (tap), podwójne stukniecie (double tap) oraz przejście w stan aktywności i nieaktywności.

Jest to już trzeci z czterech układów znajdujących się w module GY-80 - obok czujnika ciśnienia i temperatury BMP085, 3-osiowego  żyroskopu L3G4200D oraz 3-osiowego magnetometru HMC5883L. Pozostał nam zatem ten ostatni, nad którym obecnie pracuję. Na zakończenie omówimy współpracę wszystkich czterech układów w module GY-80 w celu wzajemnych kompensacji wyników i uzyskania pełnych danych IMU (wysokości, temperatur, położenia pitch, roll, yaw). Nie zabraknie również informacji na temat filtru Kalmana oraz uchronienia kompasu HMC5883L od tzw. zjawiska "tiltu" (zmiany położenia i ruchu).

W dalszej perspektywie, jeśli chodzi o jednostki IMU, zajmiemy się również MPU6050 (akcelerometr + żyroskop) oraz MS5611 (barometr i czujnik temperatury).

Obecnie trwa już drugi dzień konferencji Steam Dev Days, zorganizowanej przez Valve w Seattle. To dobry moment, aby podsumować wydarzenia, które przedstawiono podczas pierwszego i drugiego dnia. A jest o czym dyskutować, bowiem wydarzyło się całkiem sporo.

Na rozgrzewkę, każdy z uczestników konferencji otrzymał własny egzemplarz Steam Machine (model od Gigabyte) oraz dedykowany jej kontroler Steam Controller.

Nowa wersja kontrolera Steam Controller

Przestawiono nową wersję kontrolera Steam Controller. Zrezygnowano w niej z panelu dotykowego, dodając zamiast niego komplet przycisków DPAD oraz ABXY. Zmianę umotywowano chęcią zachowania wstecznej kompatybilności  To dobry krok, jednak kwestię dyskusyjną oraz obawy stanowią ich umiejscowienie.

Aktualna wersja Steam Controller

Jak miał wyglądać według pierwszych założeń:

Wiadomo również, że kontroler będzie zasilany bateriami lub akumulatorkami AA. Sam kontroler posiada wbudowany żyroskop do określenia prędkości kątowych obrotu względem wszystkich trzech płaszczyzn. Niestety żyroskop na chwilę obecną jest jeszcze martwy, gdyż nie posiada zaimplementowanego oprogramowania do jego obsługi. Obecne API Steam Controller pozwala na jednoczesną obsługę 16 padów. Valve zaznaczyło również, że projektując Steam Controller miało na uwadze współdziałanie z wirtualną rzeczywistością. Pojawiły się również drobne informacje o czujnikach biometrycznych, jednak sposób trzymania pada, póki co utrudnia ich zastosowanie.

Gaśnie zielone światło w Steam Greenlight

Valve decyduje się zamknąć projekt Steam Greenlight, w którym społeczność mogła decydować, które aktualnie tworzone gry producentów gier trafią do sklepu Steam. Jak twierdzi Gabe Newell, decyzja ta nie jest spowodowana brakiem zainteresowania użytkowników, czy niezadowoleniem Valve z jego działania, ale koniecznością ewolucji platformy Steam. Nie potwierdzoną jest również informacja, że Valve chcę, aby producenci sami przejęli kontrolę nad sklepem i promocją swoich produktów.

Source Engine 2 z pełną obsługą OpenGL

Nie jest niespodzianką, że kolejny silnik Source Engine 2 będzie w pełni wspierał OpenGL, nie wyobrażałem nawet sobie, że mogłoby być inaczej. Valve pochwaliło się również własnym narzędziem do wyszukiwania błędów VOGL (debugger) w działaniu OpenGL. Całość działa natywnie pod kontrolą Linuksa, co ma pozwolić na łatwiejsze tworzenie gier przez producentów na platformę SteamOS. Jak myślicie, jaka będzie pierwszy tytuł wykorzystujący Source 2? Left4Dead 3? A może Half-Life 3?

Pojawiły się już pierwsze przecieki, że Gordon jest blisko :)

Valve posiada własne urządzenie do zabawy w wirtualnej rzeczywistości

Valve posiada własne urządzenie do zabawy w wirtualnej rzeczywistości. Jak powiedział  David Hensley z Tripwire, próbka zaprezentowana przez Valve robi niesamowite wrażenie, a rozwiązanie wyprzedza Oculsa o kolejną generację. Jak jednak jest naprawdę? Być może dowiemy się niebawem.

Broken Age, jeden z największych projektów na Kickstarterze, który w 2013 roku roku otrzymał wsparcie od darczyńców w wysokości ponad 3 milionów dolarów na jego realizację, pojawił się wczoraj na platformie Steam z możlwosćią przedpremierowego zakupu z 10% zniżką (obecnie 20,69 euro). Gra oficjalnie będzie dostępna 28 stycznia -  jednak osoby, które wzięły czynny udział w zbiórce, mają dostęp do produkcji już dziś.

Początkowo studio chciało udostępnić Broken Age w ramach programu wczesnego dostępu, ale w finale postanowiono, że gra zostanie podzielona na dwa epizody, gdzie drugi epizod zostanie udostępniony za darmo jeszcze w tym roku.

Niestety nie obyło się bez drobnego incydentu, jakim okazało się nałożenie embarga dla osób, które uzyskały już dostęp gry. Zakaz nałożony przez studio Double Fine polegał na zakazie publikacji wszelkich recenzji do czasu oficjalnej premiery. Pojawiły więc się głosy oburzenia oraz domysły, że decyzja studia spowodowana jest chęcią zatuszowania niskiej jakości gry, która mogłaby obniżyć realnę sprzedaż w dniu premiery.

Na szczęście producent szybko wycofał się ze swoich słów tłumacząc, że kierował się jedynie pragnieniem uniknięcia pojawienia się spoilerów przed oficjalną datą pojawienia się tytułu Broken Age.

Wrócmy jednak do gry. Broken Age jest klasyczną przygodówką typu point-n-click, więc cała zabawa opiera się już na sprawdzonych mechanizmach badania lokacji, rozwiązywaniu zagadek i prowadzenia dialogów. O wiele ciekawsza jest natomiast fabuła, która opowiada o losach dwóch bohaterów, dziewcznki i chłopca, które początkowo wydają się ze sobą w żaden sposób niepowiązane.

Chłopiec o imieniu Shay, mieszka samotnie na pokładzia statku kosmicznego pod kontrolą chorobliwie nadopiekuńczej, sztucznej inteligencji, a płeć piękna jak zwykle  ma najgorzej :) Otóż jak się okazuje, rada wioski postanawia złożyć Vellę w ofierze straszliwej bestii. Grę rozoczynamy więc od wyboru, którą postacią zaczynamy grać. Jesteście ciekawi w jaki sposób splotą się ich losy? Ja tak :) Więc zaraz zaczynam grać.

Warto dodać, że głosów postaciom użyczyły znane osobistości ze świata kina, gdzie z jedną z nich jest nikt inny, jak sam Frodo.... wróć... Elijah Wood.

Broken Age dostępny jest również dla użytkowników Linuksa.

Oddaję w Wasze ręce nową wersję biblioteki Arduino do obsługi 3-osiowego żyroskopu L3G4200D, na temat którego można poczytać w dziale Arduino.

Nowości:

  • Nowy przykład: kalkulacja parametrów Pitch, Roll oraz Yaw
  • Nowy przykład: odczyt referencyjnej temperatury
  • Możliwość ustawienia pasma wyjściowego danych w metodzie begin()
  • Nowe metody getOdrBw(), getScale(), getThreshold(), getTemperature()
  • Usprawniony algorytm kalibracji układu,
  • Zaktualizowany pogram do processingu


Jak wiadomo, żyroskop nie nadaje się określenia położenia badanego obiektu w ruchu, ale z grubsza jest to wykonalne za pomocą odczytu prędkości kątowych. Jest za to nierozłącznym elementem do kompensacji wyników pochodzących z akcelerometru, na temat którego pojawi się niebawem nowy artykuł w dziale Arduino.

Nową bibliotekę można pobrać z repozytorium GitHub: https://github.com/jarzebski/Arduino-L3G4200D