Spisu treści:

Wbudowany wyświetlacz LED Arduino Games: 7 kroków (ze zdjęciami)
Wbudowany wyświetlacz LED Arduino Games: 7 kroków (ze zdjęciami)

Wideo: Wbudowany wyświetlacz LED Arduino Games: 7 kroków (ze zdjęciami)

Wideo: Wbudowany wyświetlacz LED Arduino Games: 7 kroków (ze zdjęciami)
Wideo: Przyciski | #25 [Arduino] 2024, Lipiec
Anonim
Image
Image
Główne komponenty
Główne komponenty

znany również jako system gier z wyświetlaczem drabinkowym LED.

Attiny-85 wyposażony w sprzęt i oprogramowanie do grania w pełne akcji gry „wideo” na wbudowanym wyświetlaczu LED.

Posiada multipleksowany wyświetlacz drabinkowy z 12 diodami LED i obsługuje do 6 wejść przycisków oraz opcjonalne wyjście audio.

Jest wypełniony 4 grami zręcznościowymi, z wieloma poziomami trudności i kilkoma odmianami (zaktualizowany do 16 gier, gdy jest używany z MCU ATMega).

[Wideo]

Krok 1: Główne komponenty

Swój projekt zbudowałem modułowo (dwa oddzielne zespoły). Główny podzespół wyświetlacza; który może być używany samodzielnie. I podzespół wejściowy przycisku. W ten sposób mogę ponownie użyć przycisku lub zestawu wyświetlacza w innym projekcie. Pozwala to również na elastyczne opcje montażu.

Wyciągnąłem również linię kontrolną do pin-header do montażu drabinki LED, abym mógł wykorzystać Arduino Nano (lub Uno), aby opracować oprogramowanie do niego, a także wykorzystać go w innych projektach. Digispark nie będzie działać z powodu innych elementów na jego płytce drukowanej.

Zdecydowałem się użyć tych samych przypisań pinów dla drabiny LED, co we wcześniejszych instrukcjach, aby ułatwić tym, którzy już mają taką implementację sprzętową, korzystanie z oprogramowania w tej instrukcji, mimo że nie znalazłem przypisań wykonanych dla najjaśniejszej logiki w oprogramowanie.

Dwie linie między modułami to PB4 i uziemienie. Ponieważ wszystko, co znajduje się na zespole wieloprzyciskowym, to rezystory i przełączniki, więc nie jest ono zależne od biegunowości, a odwrócenie połączenia nie ma znaczenia.

Dzięki obsłudze większej liczby przycisków można zaimplementować większą różnorodność gier (lub aplikacji). Dwie gry w tej instrukcji najlepiej grać za pomocą dwóch przycisków. Cztery główne przyciski mogą służyć do bezpośredniego dostępu do powiązanej gry. Wkrótce zaimplementuję grę, która polega na wykorzystaniu wszystkich czterech głównych przycisków.

Ten projekt wykorzystuje do sześciu przycisków. Cztery główne BTN 1-4, Te przyciski mogą być indywidualnie wykrywane, nawet gdy dowolne dwa z nich są wciśnięte jednocześnie. Pozostałe dwa to przyciski specjalne, pierwszy jest odpowiednikiem pojedynczego przycisku we wcześniejszych projektach, który tworzy twarde połączenie między wejściem PB4 a masą, nazywam to BTN0 lub ESC, ponieważ ten przełącznik zawsze można wykryć i zablokuje wykrywanie któregoś z pozostałych. Drugim specjalnym klawiszem jest klawisz funkcyjny, jeśli zostanie naciśnięty po naciśnięciu BTN 0-4, można go wykryć i użyć do zmiany funkcjonalności.

W tym szkicu do gry zręcznościowej używam:

  • FncKey+Btn1 powrót do trybu menu
  • FncKey+Btn2 wyższy poziom trudności (jeśli na najwyższym, wróć do najniższego)
  • Natychmiastowa pauza FncKey+Btn4 (naciśnij dowolny klawisz, aby wznowić)
  • FncKey + Btn 0 lub 3 są niezdefiniowane.

Krok 2: Lista części

Lista części
Lista części

Wymagane części

  • Diody LED, czerwone, żółte, zielone i niebieskie jak te
  • Płytki PCB podobne przedmioty, być może będziesz musiał kupić większą płytkę i przyciąć ją do pożądanego rozmiaru.
  • pinowe gniazdo zanurzeniowe podobne przedmioty
  • Układ Attiny-85
  • oporni
  • Używane przełączniki przyciskowe: Chwilowe przyciski dotykowe 12x12x8mm i 6x6x6mm PCB;

Zalecana:

  • brzęczyk 5v, typ aktywny
  • kij do lodów
  • Listwa pinowa 2,54 mm
  • 30 ga wire and wire-wrap tool https://www.ebay.com/itm/351798901037powyższy link jest do drutu który jest bardziej jak 36 ga. Chciałbym wiedzieć o takiej transakcji za prawdziwe 30 ga. drut

Krok 3: Najważniejsze elementy konstrukcyjne

Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne
Najważniejsze cechy konstrukcyjne

Na montażu płyty głównej mam elektrycznie to samo, co inne wcześniejsze projekty drabin LED, do których możesz się odwołać po dalsze podstawowe wskazówki konstrukcyjne

Jednak nie używam zewnętrznego rezystora podciągającego na wejściu analogowym A2(PB4), używam również czerwonych, żółtych, zielonych i niebieskich diod LED zamiast jednego koloru, co jest pożądane w niektórych grach, które stworzyłem na ten sprzęt.

Oto przypisania we/wy zgodnie z oczekiwanymi w załączonych szkicach oprogramowania:

Projekt MCU AT-85 Uno/Nano

Nazwy nazwa pin# brd nazwa --------- ---- ---- --------- Czerwony L1-3 PB3 2 D-11 Żółty L4-6 PB0 5 D-8 Zielony L7-9 PB1 6 D-9 Niebieski L10-11 PB2 7 D-10 Ain PB4/A2 3 A-2 Audio PB5 1 D-3

Jedyną istotną różnicą jest to, że mam dwa przyciski podłączone do PB4. Pierwszy idzie bezpośrednio z PB4 do uziemienia, ale bez zewnętrznego rezystora podciągającego (nazywam to BTN0). Mam również przełącznik przyciskowy (który nazywam BTN1) połączony szeregowo z 75Kohm do masy. Ta płyta główna może być używana bez płyty montażowej „Przycisk”, ale z pewną ograniczoną funkcjonalnością.

Rezystory ograniczające prąd idące do zestawów LED powinny być wybrane w oparciu o jasność różnych używanych diod LED i ich jasność. Skończyło się na 91 omach dla czerwonego zestawu, 75 żółtych, 430 zielonych i 150 omów dla niebieskiego. Te wartości mogą wydawać się niskie, ale pamiętaj, że diody LED są multipleksowane (ogólnie w <100% czasu)

Użyłem ledów 3mm i trochę je rozstawiłem. Miałem nogi LED okrakiem na kij Popsicle. W ten sposób wszystkie stanęły w tej samej wysokości, a przede wszystkim innych elementów. Zamierzam w pewnym momencie zamontować urządzenie z samymi diodami LED wystającymi z ramy.

Zdecydowałem się owinąć drutem połączenia ledowe. Bez specjalnej płytki drukowanej jest to łatwiejsze niż lutowanie w ciasnych miejscach z dużą ilością połączeń; nie ma tendencji do tworzenia szortów i jest łatwiejszy do przepięcia w przypadku pomyłki. Przy wszystkich prądach wi wokół mikrokontrolera w miliamperach przewód 30 ga jest wystarczający.

Przyciski i powiązane rezystory:

Opracowałem unikalną konfigurację (rodzaj podwójnego Y) rezystorów i przycisków, tak aby oprogramowanie mogło rozpoznać pojedyncze i podwójne naciśnięcia przycisków (teoretycznie można zidentyfikować dowolną kombinację tych czterech przycisków). Wypróbowałem kilka konfiguracji z wieloma wartościami rezystorów w arkuszu kalkulacyjnym, szukając najlepszej konfiguracji, a następnie symulowałem je w oprogramowaniu, próbując wszystkich możliwych kombinacji rezystorów, aby znaleźć zestaw (którego używam), który dawałby maksimum minimalnej różnicy odczytów analogowych pomiędzy dowolnym i wszystkimi naciśnięciami pojedynczego i podwójnego przycisku. Ułożyłem je tak, że szczególnie Btn1, Btn4 i Btn1+4 były wyraźne.

Patrz schemat sieci przycisków powyżej.

Musisz zakryć całe okablowanie, które łączy się z PB4 (i ewentualnie styki przełączające i rezystory) taśmą elektryczną, gorącym klejem lub czymś innym, co w ogóle nie przewodzi, ponieważ sam opór megaomowy zniweczy możliwość określić, które przełączniki są wciśnięte; i każdy taki kontakt, który nawiążesz podczas trzymania zgromadzenia, zrobi to.

Później powiązane instrukcje:

4-przyciskowe-gry-używające-jednego-analogowego-wejścia/

Projekt z podwójnym zasilaniem dla przenośnego mikrokontrolera/

3D-drukowana-obudowa-do-wbudowanej-LED-konsola-i/

Krok 4: Dalsze opcje i uwagi

Dalsze opcje i uwagi
Dalsze opcje i uwagi

Opcjonalne wyjście Audio

Opcjonalne wyjście audio wykorzystuje PB5. Podłączyłem brzęczyk 5 V, szeregowo z rezystorem 150 Ohm, aby ograniczyć jego głośne irytujące wyjście. Polecam używać 50-200 Ohm. Można równolegle brzęczyk z nasadką (2-10 uf), aby był mniej chrapliwy, lub użyć głośnika 10 mm 32 Ohm wyłamanego z zestawu tanich słuchawek stereo, zamiast rezystora i brzęczyka. Lubię to, za dźwięki z gier, lepiej, jak je mam.

Domyślnie Attiny-85 używa PB5 do resetowania, co oznacza, że dźwięk będzie działał, ale nie będzie miał złego wpływu na żadną inną operację. Podczas korzystania z Nano lub Uno dźwięk będzie działał (wychodzi jego D3). Aby uzyskać dźwięk z Attiny, będziesz musiał zmienić wewnętrzną konfigurację pinów, aby oprogramowanie mogło używać PB5 jako wyjścia. Są w tym znaczne konsekwencje; proszę odnieść się do tych:

forum.arduino.cc/index.php?topic=178971.0

www.instructables.com/id/Simple-and-tanie-F…

oraz

Generalnie podczas gry błąd lub awaria wywoła ćwierkanie lub krótki dźwięk malin. Gdy ukończysz poziom lub wygrasz, gra się gratulacyjną melodię, na przykład w ping-pongu. Uważam, że towarzyszący dźwięk naprawdę zwiększa radość z gry.

Alternatywne przyciski typu kontrolera gier

Dla moich wnuków, którzy są szorstcy na sprzęcie, wykonałem trwałe oddzielne przyciski, Btn1 i Btn4, na końcach długich przewodów. Zobacz zdjęcie. Zamontowałem guziki w prowizorycznych uchwytach; z 75Kohm w linii z Btn1 i ~37Kohm w linii z Btn4. W serii z Btn4 faktycznie użyłem 36K, 33K lub nawet 39K. Mając na uwadze zewnętrzne przyciski nurnikowe, dobrym pomysłem byłoby posiadanie osobnego zestawu pinów do podłączenia zewnętrznych przycisków ręcznych, oznaczonych jako Btn1 i Btn4.

Potrzebne wysokiej jakości zasilanie

Jako źródło zasilania możesz użyć wyjścia USB 5V komputera, tabletu, ładowarki ściennej, power-banku lub bezpośrednio baterii 3,7 Li.

Odkryłem, że podczas zasilania urządzenia z niektórych ładowarek USB i kilku banków zasilania USB zauważyłem migotanie i sporadyczne zachowanie, a nawet resetowanie. Jeśli tego doświadczysz, znajdź źródło zasilania z lepszą regulacją, w przeciwnym razie może pomóc dodanie dużego (100-1000 uf) kondensatora na +V do masy.

Testowanie

Dołączyłem również program testowy, który pomaga w walidacji i debugowaniu sprzętu. Kod jest w toku i bardzo potrzebuje oczyszczenia. Mam nadzieję, że do tego dojdziemy, ale na razie to powinno służyć Twoim potrzebom. Ostatnio używałem go tylko z Nano napędzającym zespoły wyświetlacza i klawiatury. Możesz użyć prawie dowolnego przycisku, aby wybrać elementy z trybu menu. Aby ponownie opuścić demo/test, naciśnij prawie dowolny przycisk. Aby wyjść z testu przycisków (#4), naciśnij FncKey+Btn1 lub przytrzymaj EscKey (uziemienie PB4) lub przywróć zasilanie.

Ze względu na różnice w rezystancjach wewnętrznych MCU i tolerancjach rezystorów może być konieczne wykonanie pewnych regulacji, aby wszystkie naciśnięcia pojedynczego i podwójnego przycisku były prawidłowo wykrywane. W tym celu należy użyć test-4 (wybierz to, patrz opis działania menu poniżej) programu testowego. Zauważ, że nie użyłem zewnętrznego rezystora podciągającego, ponieważ planowałem dalsze zastosowania wejścia PB4, które są niekompatybilne z podciąganiem.

Krok 5: Przegląd oprogramowania

Szkic LadderGames.ino zawiera cztery gry, w tym kilka alternatywnych wersji.

Szkic można pobrać i uruchomić z ATtiny-85, Nano, Uno itp. Aby zaprogramować go w układzie Attiny, zobacz: https://www.instructables.com/id/Program-an-ATtiny… i/lub zaprogramować Twój układ ATtiny-85:

Zmień wewnętrzny zegar ATtiny85 na 8 MHz, ponieważ wydajność jest wymagana do gry. Wspominać:

forum.arduino.cc/index.php?topic=276606.0

Ten szkic powinien być wstecznie kompatybilny z większością wcześniejszych projektów drabin ledowych ATtiny-85, bez zmian, ale będzie miał ograniczoną funkcjonalność.

Obsługa menu

Po uruchomieniu następuje kontrola stanu w postaci przeciągnięcia przez diody LED i zestawu sygnałów dźwiękowych. Następnie przechodzi do trybu menu głównego. Każdy zestaw diod LED jednego koloru świeci się kolejno przez kilka sekund. Grę wybiera się, naciskając przycisk, gdy skojarzony zestaw jest podświetlony, gra 1: czerwona, gra 2: żółta, gra 3: zielona, gra 4: niebieska. W trybie menu Btn2, Btn3, Btn4 można nacisnąć, aby przejść bezpośrednio do gier 2, 3, 4. Po wybraniu gry musisz wskazać żądaną odmianę. Dla każdego dostępnego wariantu będzie migać zestaw kolorowych diod LED. Po prostu naciśnij przycisk na tym, który chcesz. Odmiany, „wersje”, dla każdej gry są szczegółowo opisane poniżej.

W pierwszą wersję wszystkich czterech gier można grać za pomocą jednego przycisku. Albo jeden podłączony między PB4 a ziemią (Btn-0), jak we wcześniejszych instrukcjach drabinkowych LED, lub z przełącznikiem, który łączy obciążenie 75k z ziemią (Btn-1). Każdy z nich zadziała w grach, gdy instrukcje mówią o niespecyficznym naciśnięciu przycisku.

Aby wyjść z dowolnej gry, możesz użyć FncKey + Btn1, przytrzymaj EscKey (aka: Btn0) przez 1-2 sekundy lub wyłącz i włącz zasilanie.

Krok 6: Rozgrywka

Gra 1: Push-It

To jest adaptacja mojej gry „Push-It” z jednej z moich wcześniejszych instrukcji

www.instructables.com/id/Play-a-Game-with-a…

Celem gry jest zwiększenie liczby mrugnięć i liczby zapalonych diod LED do jak największej liczby. Push-It zaczyna się od kilku błysków, które następnie się powtarzają. Jeśli naciśniesz przycisk po ostatnim błysku w serii i gdy potencjalnie pojawi się dodatkowy, zapali się następna dioda i liczba błysków wzrośnie o jeden. Ale jeśli „naciśniesz” przed lub po okresie potencjalnego dodatkowego błysku, zamiast tego liczba błysków w zestawie zostanie zmniejszona.

Za każdym razem, gdy uda Ci się zwiększyć liczbę błysków, poziom trudności wzrasta, gdy czas trochę przyspiesza, co sprawia, że coraz trudniej jest uzyskać wyższą liczbę błysków.

Aktualna liczba zliczeń jest przechowywana w pamięci EEPROM w celu późniejszego ponownego uruchomienia na tym samym poziomie.

Gra 2: Ping-pong

Świetna (choć jedyna) gra konkurencyjna dla dwóch graczy; gdzie piłka (pojedynczy błysk światła) przelatuje z jednej strony na drugą, coraz szybciej, za każdym razem, gdy zostaje „odbita”.

Po raz pierwszy zaimplementowałem tę grę z pojedynczym rzędem świateł na przyciskach na przednim panelu super-mini komputera lotniczego w latach 70. XX wieku.

Aby uderzyć piłkę tam iz powrotem, odpowiednie wiosło musi uderzyć (przycisk wciśnięty) gdy jest w pozycji końcowej (ostatnia dioda). Pierwsza chybiona strona przegrywa, a światła po zwycięskiej stronie migają.

Istnieją dwie odmiany, z których jedna wymaga tylko jednego przycisku (Btn 0 lub 1), który uderzy piłkę z obu stron; druga wersja jest przeznaczona dla dwóch osób łeb w łeb, co wymaga dwóch przycisków; przycisk 1 po lewej stronie i przycisk 4 lub 0 po drugiej stronie. Preferowane jest użycie przycisków 1 i 4, ponieważ nie będą one ze sobą kolidować; każdy może zostać uderzony, aby odbić piłkę z jego końca, bez względu na stan drugiego przycisku.

Zwycięzca rajdu jest zawsze serwerem następnego.

Gra 3: Strzelanie w galerii

Zestrzel wszystkie cele (światła), aby ukończyć poziom. Na każdym wyższym poziomie akcja jest szybsza.

Istnieją dwie wersje; jeden, w którym miejsce jest ustalone, a cele się poruszają, a drugi, w którym miejsce porusza się, a cele są nieruchome. W każdym przypadku trafienie wybija światło tarczy; a pudło powoduje wyskoczenie celu. Gdy cel znajduje się w celowniku, celownik świeci jaśniej, w przeciwnym razie jest przyćmiony.

W wersji pierwszej celownik zaczyna się od lewej (na dole) i skanuje z prawej. W wersji 2 celownik jest ustawiony pośrodku, podczas gdy cel porusza się w poprzek od prawej do lewej. Patrząc na kod, istnieją upiorne wersje 3 i 4, które można aktywować, ale na własne ryzyko narażasz własne zdrowie.

Gra 4: JumpMan

Pomysł polega na tym, że biegniesz przez poziom gry, na którym pojawiają się przedmioty, nad którymi musisz przeskoczyć, w miarę postępów pojawiają się one szybciej. W innej wersji gry są też obiekty nad głową, pod którymi musisz się schować.

W wersji pierwszej są tylko obiekty do przeskoczenia. Aby skoczyć, musisz nacisnąć przycisk, gdy obiekt dotrze do ostatniej celi po lewej; który rozjaśnia się, gdy to nastąpi. Aby przeskoczyć 2 lub więcej kolejnych obiektów musisz skoczyć (nacisnąć) na pierwszy i przytrzymać przycisk do końca.

W wersji 2 dodawane są obiekty nad głową (migające). Te są przeskakiwane przez „przeskakiwanie w komórce przed nią i uwalniane, gdy znajduje się w komórce końcowej. Tylko jeden nad głową może migać na raz, więc po przejściu jednego możesz zobaczyć inny (nie migający wcześniej) obnażony na ciebie. Nigdy nie będzie następujących po sobie napowietrznych, ale mogą przylegać do jednego lub więcej obiektów skaczących (typu głazów).

W wersji gry 3 musisz, dostać się, użyć osobnego przycisku dla obiektów nad głową (Btn-2, 4 lub 0 do wyboru); skoki wymagają wtedy Btn-1.

Gdy pokonasz cztery więcej obiektów, niż ci się nie udało, awansujesz na wyższy poziom; gratulacje dźwiękowe i wizualne, a następnie wznowienie z większą prędkością. Zdobycie przez zbiór kolejnych obiektów liczy się tak samo jak jeden pojedynczy obiekt.

Radzę wydrukować zasady działania gier i przeczytać je ponownie przed rozpoczęciem gry, w którą ostatnio nie grałeś. W przeciwnym razie możesz się sfrustrować; myśląc, że gra nie działa poprawnie, gdy w rzeczywistości jest, ale ty i gra macie różne sposoby i oczekiwania. Ja sam wpadłem w to więcej niż kilka razy.

Krok 7: Aktualizacje, więcej gier

Image
Image

Zrobiłem wydrukowaną w 3D obudowę konsoli, w której mieści się wyświetlacz drabinkowy LED In-Line i przyciski.

Wymyśliłem więcej gier wykorzystujących ten sprzęt. Sprawdź je i baw się dobrze:

Nowe gry od „Whack a Mole” do „Tug of War”

Grudzień 2016. Teraz, na końcu powyższego linku, znajduje się zunifikowana wersja kodu zawierająca wszystkie 12 gier.

17 lutego 2017: Oto najnowszy zestaw gier dla tego projektu, teraz z 16 grami (szkic poniżej). Będzie to działać na dowolnej implementacji MCU z 32 KB pamięci programu flash. Jednak w ATtiny można umieścić od jednej do 3 lub 4 z 16 gier. Polecam używanie arduino Nano 3. Ostatnie 4 dodane gry to wyścigi „Le Mans”, konkurs malowania natryskowego „Spray”, strzelanie do kosza do koszykówki „PIG”, „BiFunc” – gra w trybie binarnym.

Dzięki większej i bardziej zróżnicowanej grze w te gry, ulepszenia ich umiejętności gry, zapewniają przyjemność dla graczy na wszystkich poziomach. Myślę, że jest wiele do zrobienia w wyścigach Le Mans poprzez projekt układu toru i timing gry.

Napisałem około 10 dodatkowych czynności/gier/funkcji, z których część mam nadzieję udostępnić około jesieni 2017 roku.

Również te gry jednowierszowe można zmodyfikować na dwuwierszowy wyświetlacz LCD 2x16, z jednym wierszem obiektów gry, a drugim tekstem. Trochę to zrobiłem, ale ponieważ mam kopię zapasową projektów, o ile widzę, nie wiem, kiedy i czy dostanę się do tego. Więc jeśli ktoś jest zmotywowany do przyjęcia i zoptymalizowania tych gier dla wyświetlacza LCD 2x16, podziel się ze mną i innymi.

Oprócz 4 nowych gier tutaj w Menu_16Games.ino, załączyłem mój projekt i stworzyłem powiązane instrukcje: Wbudowana konsola do gier LED Obudowa i zasilanie przenośnego projektu MCU

Mam nadzieję, że wielu poświęci czas i… CIESZ SIĘ tymi grami.

Gra grupowa: 1– Czerwony 2 – Żółty 3 – Zielony 4 – Niebieski

1 czerwony PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d

2 września 2017: Poprawiona zdolność pracy ze starymi, brudnymi, hałaśliwymi zewnętrznymi przyciskami joysticka, w grze head-head (grupa 2).

13 grudnia 2017 r.: Poprawiona obsługa odbijania się przycisków i ustalania pomiaru, naprawiono drobne problemy. Próbowałem użyć kondensatora na analogowej linii wejściowej przycisku, ale aby był skuteczny, spowodowało to powolne ustalanie pomiaru, powodując fałszywe identyfikacje poziomu lub oprogramowanie czekało tak długo że szybka akcja gry była zagrożona.

Kwiecień 2018: Odkryłem, że łączniki kompresyjne 5/8 tworzą świetne korpusy dla zewnętrznych przycisków w stylu tłoka. Ponieważ moje dzieci lubią używać ich pary, dodałem piny nagłówkowe, aby łatwo połączyć dwa z nich (jako Btn1 i Btn4).

Zauważ, że stworzyłem inny projekt, w październiku zeszłego roku, który jest zbudowany na sprzęcie tego instruktażu. Jest w duchu Halloween i może być świetną zabawą, szczególnie dla dzieci. Instruktaż: urządzenia pod wpływem duchowej psychiki

Zalecana: