Prosta gra z wykorzystaniem Arduino oraz Processing

Prosta gra z wykorzystaniem Arduino oraz Processing

Cześć

W dzisiejszym artykule chciałem Ci przedstawić projekt gry stworzonej za pomocą Arduino oraz języka Processing.
ss

Przejdźmy do rzeczy.
Celem gry jest sterowanie małym samolocikiem oraz zbieranie kaczek.
A po co nam do tego Arduino?
Tutaj dopiero zaczyna się zabawa :-) Przy pomocy Arduino stworzymy swoisty kontroler dzięki, któremu będziemy mogli sterować naszym samolocikiem przy pomocy ruchów własnej ręki lub innych części ciała.

Co potrzebujemy do wykonania projektu:
Arduino (ja wykorzystałem Arduino UNO) dostępne w sklepie botland KLIK
-Czujnik ultradźwiękowy HC-SR04 
-Środowisko Processing oraz Arduino
-Opcjonalnie płytkę stykową

Gdy już skompletowaliśmy wszystkie części przejdźmy do uproszczonego omówienia zasady działania czujnika ultradźwiękowego. Czujnik ten wyposażony jest w nadajnik oraz odbiornik dzięki czemu wysyła impuls ultradźwiękowy, który “odbija” się od przeszkody (w tym wypadku od naszej ręki lub innej części ciała) a odbity sygnał odbierany jest przez odbiornik. Odległość między czujnikiem a przeszkodą jest obliczana według wzoru

CodeCogsEqn

Podłączenie
Podłączenie jest bardzo proste ponieważ w podstawowej wersji wykorzystujemy tylko czujnik ultradźwiękowy.
hcs

KOD

Teraz przejdźmy do napisania kodu do Arduino zwracającego odległość od obiektu w centymetrach

Teraz w Monitorze portu  szeregowego mamy możliwość odczytu danych z czujnika

Przechodzimy do najbardziej skomplikowanej oraz najbardziej przyjemnej części naszego poradnika czyli do napisania kodu naszej gry w języku Processing.
Zadaniem kodu jest odbieranie danych z serial monitora, dzięki którym sterujemy naszym samolotem; losowe generowanie gwiazd oraz ptaków; zliczanie punktów. Tworzy to swoistą grę.

W kodzie pojawiają się cztery odniesienia do plików graficznych, są to obrazy tła, kaczuszki, chmur oraz samolotu.
Wszystkie grafiki wykonałem w programie Inkscape jednak niestety nie posiadam talentu artystycznego przez co nie są one zbyt ładne. Jednak ty możesz stworzyć swoje grafiki, niekoniecznie muszą one przedstawiać to samo.
trawa gwiazda ptak samolot
Grafiki te musisz skopiować do folderu ze sketchem processing.

Gdy już wszystko masz podłączone wystarczy kliknąć przycisk uruchamiający nasz program Processing ssi zacząć zabawę.

WAŻNE!
Aby nasz projekt działał Arduino musi być cały czas podłączone do naszego komputera

Ta gra nie jest może zbyt efektowna jednak pomyśl jak wiele jest czujników, które możemy użyć w innych projektach tego typu. Pamiętaj, że Arduino może nie tylko wysyłać dane z czujników lecz może je także odbierać oraz przesyłać do aplikacji. Daje nam to prawie nieograniczone możliwości.
Na przykład gra zwiększająca poziom trudności wraz ze wzrostem lub coś w rodzaju wirtualnej rzeczywistości zapalanie/gaszenie światła w pomieszczeniu, zmienianie temperatury itp. Wszystko oczywiście dopasowane do tempa rozgrywki.
Jedyną barierą jest nasza wyobraźnia.

Więcej informacji dotyczących tego tematu przedstawię na blogu za jakiś czas w poradniku dotyczącym “połączenia” Unity oraz Arduino.

Jeżeli masz jakieś pytania dotyczące projektu pisz w komentarzach ;-)

Więcej artykułów tego typu znajdziesz na moim BLOGU

Ocena: 4.64/5 (głosów: 53)

Podobne posty

9 komentarzy do “Prosta gra z wykorzystaniem Arduino oraz Processing

  • Linie
    myPort = new Serial(this, Serial.list()[0], 9600);
    myPort.bufferUntil(10);
    Daj jako komentarz
    //myPort = new Serial(this, Serial.list()[0], 9600);
    //myPort.bufferUntil(10);

    Kod zadziała wtedy ale “nic nie zrobisz”

    Odpowiedz
  • Podoba mi się to połączenie, mimo że wkradły się dwa błędy:

    1. W programie jest odniesienie do pliku “chmura.png” a w artykule jest plik “gwiazda.png”, więc należy zapisać gwiazdę pod nazwą chmura :).
    2. linię 134:

    image(ptak, ptakX, Y, 59, 38);
    należy poprawić na:
    image(ptak, ptakX, ptakY, 59, 38);

    ponieważ wszystkie ptaki rysowały się przy górnej krawędzi a kolizja wykrywana prawidłowo (w zależności od wartości “ptakY” . Na początku nie wiedziałem dlaczego nie mogę złapać ptaków :D.

    Pomysł super!

    Odpowiedz
  • Monitor portu szeregowego wykrywa mi czujnik, aplikacja w processing włącza się prawidłowo, ale nie wykrywa czujnika i samolocik opada na duł, nie reagując na nic.

    Jakaś podpowiedź ?

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?