Ping Pong dla 2 graczy na odległość

Typ_projektu
microPython
Zdjecie główne
Krótki opis projektu

Ping pong na odległość to gra dla dwóch osób. Wykorzystany został protokół łączności bezprzewodowej po WiFi - ESPNow. Każdy gracz posiada swoją konsolę z ekranem OLED i przyciskami, którymi steruje pozycją swojej paletki. Zadaniem każdego z gracza jest to, aby wbić piłeczkę za paletkę przeciwnika i odbijać swoją paletką piłeczkę lecącą od przeciwnika, żeby nie stracić punktu.

Niezbędne elementy

1. 2x Płytka ESP8266 z WiFi

2. 2x wyświetlacz OLED I2C SSD1306

3. Dedykowana konsola do gier (tak jak na zdjęciu) lub 5 przycisków

4. Opcjonalnie płytka stykowa

Opis projektu

Ping Pong na odległość to gra przeznaczona dla dwóch niezależnych graczy z własnymi kontrolerami. Każdy kontroler składa się z przycisków kontrolujących pozycję paletki oraz ekranu OLED, który wyświetla grę, czyli pozycję paletek, pozycję piłki, wynik oraz przy wyniku znacznik, który pozwoli na zorientowaniu się, którą paletkę się kontroluje. Gra wyświetlana jest jednocześnie na dwóch ekranach. Gracze mają za zadanie odbijać piłeczkę sterując swoją paletką w ten sposób, aby nie stracić punktu. Po zdobyciu punktu przez któregoś gracza, wynik zwiększa się, a piłeczka resetuje swoją pozycję i porusza się od nowa.
Paletki łączą się automatycznie po podłączeniu obu do prądu i rozpoczyna się gra. Dodatkowo dołączono przycisk "reset", który resetuje wynik, ustawia pozycję piłki i paletek do pozycji początkowych.

Projekt używa protokołu ESPnow, który pozwala na komunikowanie się płytek przy użyciu WiFi. Należy najpierw sprawdzić adres MAC urządzenia, do którego chcemy wysłać dane.

Wyróżniamy 2 płytki w tym połączeniu - jedna odpowiedzialna jest za obliczenia, wyświetlenie stanu gry na swoim ekranie, wysyłanie pozycji piłeczki, swojej paletki i wyniku oraz odbieranie pozycji paletki drugiego gracza. Ta paletka ma również przycisk "resetu". Druga paletka odbiera informacje, powiela je na swoim ekranie oraz wysyła informację o pozycji swojej paletki.

Pseudoalgorytm wysyłania i odbierania:
Płytka główna (wykonująca obliczenia) - sprawdzanie wejść przycisków, obliczenia i logika programu, wysyłanie danych, odbieranie danych, wyświetlanie danych.
Druga płytka - sprawdzanie wejść przycisków, odbieranie danych, wysyłanie danych, wyświetlanie danych.

Dla każdej płytki sterowanie paletki w górę odbywa się za pomocą przycisku 14, a w dół - 2. Przycisk "reset" przypisany jest do wejścia 12. Nie są to jednak fizyczne oznaczenia na płytce, więc trzeba najpierw sprawdzić połączenie na schemacie w Internecie.

Jeżeli chcemy, aby program na każdej płytce uruchamiał się automatycznie, należy zapisać program na płytkę i do programu boot.py na płytce wpisać linijkę "import [nazwa_programu].py"

kod programu

Ustaw odpowiedni język programowania (ostatnia ikona powyżej)

Pliki_projektu
Youtube
Tagi
esp8266 2 graczy wifi oled micropython pingpong ping pong