Spisu treści:

Kontroler w ruchu: 8 kroków
Kontroler w ruchu: 8 kroków

Wideo: Kontroler w ruchu: 8 kroków

Wideo: Kontroler w ruchu: 8 kroków
Wideo: 3 CECHY NIEZBĘDNE U KONTROLERA LOTÓW! [Janusz Janiszewski, PAŻP] 2024, Listopad
Anonim
Kontroler w podróży
Kontroler w podróży
Kontroler w podróży
Kontroler w podróży
Kontroler w podróży
Kontroler w podróży

Lubisz grać w gry na smartfonie? Czy jesteś zmęczony graniem z niezgrabnymi kontrolkami na ekranie dotykowym? Nienawidzisz zapominać o naładowaniu kontrolera Bluetooth? Potrzebujesz do tego kabla, który kupiłeś, ale którego nigdy nie używasz?

Dlaczego nie stworzyć własnego kontrolera w podróży?

Jestem pewien, że spóźniłem się na grę (gra słów zamierzona), ale niedawno odkryłem, że mój stary smartfon jest w stanie odtwarzać gry retro za pomocą emulacji. Dorastając, byłem wielkim fanem systemów Game Boy i mam miłe wspomnienia z grania godzinami i wytężania oczu podczas długich przejażdżek samochodem, desperacko próbując znaleźć punkt zapisu, zanim moja bateria się rozładuje lub słońce znajdzie się zbyt daleko poza horyzontem, zobacz mój ekran. Teraz mogę grać na telefonie i oddawać nostalgii, ale z ładnym podświetlanym ekranem. Dzięki technologii!

Zastrzeżenie: Emulacja gier jest drażliwym tematem i w niektórych przypadkach omija linię piractwa. Proszę, edukujcie się i grajcie odpowiedzialnie!

Tło:

Zdecydowałem się na realizację tego projektu po wykonaniu skrótu klawiaturowego. Podczas nauki biblioteki klawiatury arduino i wymyślania skrótów powiązałem niektóre przyciski testowe z WASD. Natychmiast zaczął działać z moimi grami na PC i to sprawiło, że koła się kręcą. Mniej więcej w tym samym czasie zabrakło mi miejsca w telefonie na książki audio i sprawdziłem, jak używać pamięci flash USB z telefonem, ponieważ mój model nie obsługuje kart microSD. Wtedy dowiedziałem się o OTG. OTG wykorzystuje ładunek z baterii telefonu do zasilania podłączonego do niego urządzenia. Obejmuje to między innymi klawiatury, myszy i dyski flash. Telefon może zasilać urządzenia 5V i zgadnij, czego wymaga arduino micro do działania? To była zapałka wykonana w niebie.

Kieszonkowe dzieci

Arduino Micro

Płytka prototypowa

Przyciski 12 x 6mm (użyłem klasycznych dotykowych przełączników chwilowych)

Lutownica i lutownica

drukarka 3d

Kabel w podróży (OTG); Zrobiłem własne

Kabel do ładowania micro USB

Krok 1: Projekt

Projekt
Projekt
Projekt
Projekt
Projekt
Projekt

Chciałem, aby mój kontroler był przenośny i oferował wszystkie przyciski potrzebne do grania w gry do ery Super Nintendo. Oznaczało to, że potrzebowałbym 12 przycisków. Cztery dla pada kierunkowego (d-pad) i osiem dla A, B, X, Y, Start, Select, Left Trigger i Right Trigger. Miałem również dodatkowy wymóg, aby był symetryczny, abym mógł grać jedną ręką, używając obu rąk. Ten dodatkowy wymóg może zabrzmieć dziwnie, ale aby nadać kontekst, muszę wspomnieć, że ostatnio regularnie trzymam śpiące dziecko i używam tylko jednej ręki podczas mojego ograniczonego czasu gry.

Po zdefiniowaniu wymagań postanowiłem zaprojektować swój kontroler w CAD. Osobiście używam OnShape, ale wiem, że wiele osób również odnosi sukcesy z Fusion360. Chciałbym szybko pozdrowić innych ludzi na tej stronie, którzy projektują własne kreacje. To jest ciężka praca! Projekt, który wymyśliłem, był bardzo prosty, ale zaspokojenie go zajęło mi wiele godzin. Nawet gdy to piszę, zauważam wiele ulepszeń, które chciałbym wprowadzić.

(Planuję udostępnić pliki.stl na Thingiverse, kiedy pozwoli na to czas. Pliki będą tam, więc będę mógł je aktualizować bez konieczności ciągłego przesyłania plików tutaj.)

Krok 2: Wydrukuj swoje dzieło

Wydrukuj swoje dzieło!
Wydrukuj swoje dzieło!

Mam drukarkę Ender 3, którą mam dopiero od kilku miesięcy. To świetna drukarka na początek, jeśli chcesz zająć się drukowaniem 3D. Nie zdawałem sobie sprawy, jak to było nie do zniesienia, dopóki nie zmierzyłem moich części do tego projektu. Aż do tego projektu używałem go tylko do drukowania miniaturek do gier stołowych. Minis wyszły świetnie i nie przejmowałem się zbytnio wymiarami. Potrzebowałem kilku kostek kalibracyjnych i nowej rolki filamentu, zanim byłem zadowolony z wyników.

Krok 3: Przygotowanie płytki prototypowej

Przygotowanie płytki prototypowej
Przygotowanie płytki prototypowej
Przygotowanie płytki prototypowej
Przygotowanie płytki prototypowej

Przed przylutowaniem przycisków do płytki prototypowej przetestowałem wszystkie przyciski na płytce stykowej i jednocześnie przetestowałem mój kod arduino. Kod omówię w późniejszym kroku.

Teraz jest najlepszy czas na przycięcie płytki prototypowej na wymiar. Użyj drukowanej obudowy kontrolera jako przewodnika i dopasuj przyciski na sucho, aby upewnić się, że wszystko jest wyrównane. Po prostu wziąłem kilka odcinków drutu i odciąłem nadmiar deski, a następnie oszlifowałem krawędzie papierem ściernym o ziarnistości 150.

Okablowanie kontrolera jest naprawdę proste, ponieważ używamy wewnętrznych rezystorów podciągających arduino micro. Wszystkie przyciski przechodzą do wejścia i masy. Przyciski, których używam, to ogólne, dotykowe przełączniki chwilowe o średnicy 6 mm.

Przylutowanie przycisków do arduino było zabawną małą zagadką do rozwiązania. Część przycisków znajdowała się pod arduino i musiałem wyprowadzić spod niego przewody przed przylutowaniem arduino do płytki prototypowej. Jeśli przyjrzeć się bliżej stronie przycisków planszy, brakowało mi lewego i prawego padu kierunkowego.

Dla mojego konkretnego projektu przylutowałem przyciski kierunkowe w górę iw dół (brakowało mi przycisków kierunkowych lewego i prawego) do płytki prototypowej wraz z kilkoma bardzo długimi przewodami, a następnie odwróciłem płytkę i przylutowałem arduino. Schematu nie mam bo najczęściej lutowałem przyciski pojedynczo na chybił trafił (mogę wgrać jeden jeśli będzie duże zainteresowanie). Po zabezpieczeniu arduino odwróciłem płytkę z powrotem na stronę przycisku i przylutowałem resztę przycisków i ich przewody.

Krok 4: Opcjonalnie: Udekoruj obudowę kontrolera

Przed ostatecznym montażem jest dobry czas na przeszlifowanie, wypełnienie luk i pomalowanie obudowy sterownika. Zdecydowałem się pominąć ten krok w przypadku mojego prototypu, ponieważ chciałem mieć coś do natychmiastowego użycia. Kiedy nieuchronnie poprawię swój projekt do czegoś bardziej dopracowanego, dam mu pracę, na którą zasługuje.

Krok 5: Montaż końcowy

Montaż końcowy
Montaż końcowy

Teraz nadszedł czas, aby włożyć wszystkie przyciski i gotową płytkę prototypową do obudowy. Do mojego projektu użyłem blachowkrętów #4-24 x 1/2. Wykonują swoją pracę, ale nie pasują tak dobrze, jak bym chciał.

Krok 6: Zaprogramuj Arduino

Możesz chcieć zrobić ten krok wcześniej, gdy jeszcze projektujesz płytkę lub po przylutowaniu wszystkiego do płytki prototypowej. Po prostu lubię mieć to w swojej własnej sekcji.

Kod jest bardzo prosty w stosunku do większości programów arduino, jakie widziałem. Musimy tylko przypisać każdemu przyciskowi wartość klawiatury, a arduino przejdzie w pętli, aby sprawdzić, które przyciski są naciśnięte i wysłać te informacje do naszego telefonu.

Dla zainteresowanych używam aplikacji retroArch do grania w moje gry retro. Klawisze, których użyłem są ustawione na domyślny układ klawiatury używany w retroArch.

#include #include "Keyboard.h" #define NUM_BUTTONS 12 const uint8_t BUTTON_PINS[NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // a = 'x' // b = 'z' // x = 's' // y = 'a' // lewe ramię = 'q' // prawe ramię = 'w' // select = 'rshift ' // start = 'enter' // up = 'key:up' // down = 'key:down' // left = 'key:left' // right = 'key:right' const char BUTTON_KEYS[NUM_BUTTONS] = {KEY_RETURN, KEY_DOWN_ARROW, KEY_UP_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_RIGHT_SHIFT, 'z', 'x', 's', 'a', 'q', 'w'}; Przyciski Bounce * = nowe Bounce[NUM_BUTTONS]; void setup() { for (int i = 0; i < NUM_BUTTONS; i++) { buttons.attach(BUTTON_PINS, INPUT_PULLUP); przyciski.interwał(25); } // zainicjuj kontrolę nad klawiaturą: Keyboard.begin(); } void loop() { // sprawdź czy wartość została zmieniona for (int i = 0; i < NUM_BUTTONS; i++) { buttons.update(); if (buttons.fell()) { Keyboard.press(BUTTON_KEYS); } if (buttons.rose()) { Keyboard.release(BUTTON_KEYS); } } }

Krok 7: Graj w swoje gry

Graj w swoje gry!
Graj w swoje gry!

Alternatywnie ten kontroler może być używany z komputerem bez kabla OTG do wysyłania naciśnięć klawiszy lub makr. Miałem też znajomego, który powiedział, że taki kontroler może być również przydatny do rysowania tabletów, chociaż nigdy wcześniej z nim nie zadzierałem.

Mam nadzieję, że ta instrukcja okazała się pomocna. Poniżej znajduje się sekcja wyciągnięta z wniosków dla tych, którzy są ciekawi tego, czego nauczyłem się podczas tego procesu i co chciałbym zrobić inaczej.

Krok 8: Wyciągnięte wnioski

CHAM:

W przeszłości nigdy nie bawiłem się zbytnio oprogramowaniem CAD i musiałem uczyć się w drodze z tym projektem. Początkowo wybrałem bardziej wyprostowaną konstrukcję, która pasowałaby do twoich rąk, podobnie jak Wii Nunchuk. Moja ograniczona wiedza na temat projektowania z wykorzystaniem organicznych kształtów była moim upadkiem. Może powinienem wziąć Intructables na jego klasę projektowania CAD.

Guziki:

Przyciski, których używałem, były głośniejsze, niż bym chciał (zwłaszcza, gdy starałeś się powstrzymać kogoś przed przebudzeniem). Chciałbym znaleźć cichsze przyciski. Włączenie sprężyn między przyciski i nasadki na guziki znacznie poprawiłoby wygląd konstrukcji. Jak na mój gust, przyciski mają za dużo luzu.

Lutowanie:

Jestem nowicjuszem w lutowaniu i nie mam zbyt stabilnych rąk. Przylutowanie wszystkich tych maleńkich drutów w całym miejscu zajęło mi dużo więcej czasu, niż się spodziewałem. Gdybym musiał to wszystko powtórzyć, na pewno określiłbym, gdzie biegną moje przewody, zanim chwycę żelazko. To złagodziłoby błędy, które odkryłem po przymocowaniu arduino do płytki prototypowej i zaoszczędziłoby mi czasu.

Zalecana: