ASTROGUN jest grą opartą na klasycznej strzelance Asteroid. Ideą projektu było stworzenie oryginalnego sposobu sterowania. W tym wypadku zamiast tradycyjnego kontrolera gracze zostali wyposażeni w dosyć duży karabin z umieszczonym wyświetlaczem przeziernym. Celując karabinem w sposób jakby "naturalny" mamy możliwość obracać się w wirtualnej przestrzeni. Zadanie gracza jest proste i polega na niszczeniu asteroid lecących z różnych kierunków w naszą stronę.
Wewnątrz karabinu zabudowano minikoputer Rspberry Pi, do którego podłączono moduł MPU-9150 dostępny na Sparkfun. Moduł zawiera czujnik przyspieszenia, żyroskop oraz kompas i w tym projekcie jest odpowiedzialny za odczytywanie ruchów karabinu w przestrzeni.
najciekawszą częścią tego projektu jest oczywiście wyświetlacz przezierny. Autorzy projektu uprościli znacznie jego konstrukcję. W tym wypadku wyświetlacz składa się jedynie z dwóch elementów: wyświetlacza LCD oraz lustra półprzepuszczalnego, na którym odbijany jest obraz. W tradycyjnych wyświetlaczach HUD, pomiędzy tymi elementami stosowana jest jeszcze dodatkowo soczewka kolimacyjna. Dzięki tej soczewce uzyskiwany jest efekt, w którym mamy wrażenie, że wyświetlany obraz rzeczywiście znajduje się na obiekcie na który patrzymy. Tutaj ze względu na brak doświadczenia autorów w optyce, element ten pominięto.
Oprócz wymienionych wyżej modułów, w karabinie zamontowano też niewielki zasilacz, głośnik, silnik wibracyjny, przyciski i diody sygnalizacyjne. Sam karabin nie jest jakąś specjalną repliką ASG, a jedynie zabawką z pobliskiego sklepu. Wyświetlacz wraz z ustawionym pod katem 45 stopni lustrem zostały przytwierdzone do karabinu z użyciem mocowania zbudowanego z pleksiglasu.
Sporo czasu zajęło autorom stworzenie samej gry. Została ona napisana w Pythonie z użyciem biblioteki Pi3D, którą wykorzystano do stworzenia grafiki trójwymiarowej. Dane pochodzące z moduł czujnika ruchu i położenia były natomiast przetwarzane z użyciem biblioteki RTIMULib, której funkcje pozwalały w prosty sposób uzyskać na wyjściu aktualne wartości kątów. Efekty dźwiękowe w grze uzyskano natomiast dzięki bibliotece PyGame.
Poniżej zamieszczam kilak zdjęć i film. Kody źródłowe znajdziecie w odnośnikach poniżej.
Źródło http://blog.avishorp.me/2014/07/astrogun.html
Kody źródłowe https://github.com/avishorp/astrogun
Fajne? Ranking DIY
