Cześć
W dzisiejszym artykule chciałem Ci przedstawić projekt gry stworzonej za pomocą Arduino oraz języka Processing.
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
Podłączenie
Podłączenie jest bardzo proste ponieważ w podstawowej wersji wykorzystujemy tylko czujnik ultradźwiękowy.
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.
Grafiki te musisz skopiować do folderu ze sketchem processing.
Gdy już wszystko masz podłączone wystarczy kliknąć przycisk uruchamiający nasz program Processing i 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
Fajnie ,że ktoś zrobił coś z Processingiem
Chciałem zobaczyć jak to działa, ale w Processing po naciśnięciu Run wyświetla się okno z szarym tłem.
Musisz przerobić kod na myszkę lub podłączyć Arduino.
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”
Całkiem fajne. Przyczepię się tylko, że Processing to środowisko, a nie język. ;-)
Nie jest to pełnoprawny język programowania wraz z zintegrowanym środowiskiem programistycznym.
Podoba mi się to połączenie, mimo że wkradły się dwa błędy:
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!
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ź ?
Mam tą samą sytuację co @grzechu Samolot nie reaguje na odczyty czujnika ultradźwięku