Witam. Jest to mój pierwszy projekt wstawiony na majsterkowo.pl :)
Może na wstępie zaznaczę, że mam 14 lat więc projekt nie jest jakiś super oraz wykonanie jest takie sobie :p
Na dole znajduje się film prezentujący działanie :)
Zawsze uwielbiałem konsole arcade’owe, więc postanowiłem zbudować własny kontroler. Niestety nie robiłem zdjęć podczas tworzenia kontrolera, dlatego postaram się opowiedzieć czego mniej więcej użyłem.
Do projektu użyłem:
- Drewniane pudełeczko
- Arduino Leonardo https://botland.com.pl/arduino-moduly-glowne/1213-arduino-leonardo.html
- Kabel USB
- Pudełko po kartach
- Trochę taśmy izolacyjnej
- Wkład od metalowego długopisu
- Koralik
- Trochę kabli :D
- 4x Mikroprzełącznik konektorowy
- 9x przycisk monostabilny
Część 1: Joystick:
Najpierw w pudełku po kartach wywierciłem 2 dziury (jedna pudełku, druga na przykrywce). Dziura w pudełku ma średnicę 15mm, a na przykrywce 10mm. Do pudełka przykleiłem 4 mikroprzełączniki oraz polutowałem je.
Następnie wywierciłem dziurę w koraliku i przymocowałem do niego przycięty metalowy wkład od długopisu. Na przykrywce zamocowałem na krzyż taśmę izolacyjną tak, aby po środku znajdował się koralik, a między koralik i taśmę umieściłem mały kawałek z miękkiego plastikowego pudełeczka np. po lodach. Koralik od strony której dotyka plastiku starłem trochę na szlifierce, aby dociśnięty kawałek plastiku trzymał go pionowo.
Do przedłużenia joysticka ja użyłem przyciętego długopisu owiniętego taśmą izolacyjną z kulką na końcu.
Następnie wiercimy w pudełku dziurę na kable, przeprowadzamy je przez tą dziurę, zamykamy pudełko przekładając wkład długopisu między nóżkami mikroprzełączników i joystick już jest gotowy :D Ja dodatkowo owinąłem wkład taśmą izolacyjną, aby mikroprzełączniki łatwiej zaskakiwały.
Część 2: Obudowa:
Obudowę robimy według uznania, ja w swojej wywierciłem 6 otworów na przyciski pośrodku z prawej, 2 pod nimi oraz jeden w rogu. Potrzebna będzie jeszcze jedną dziura na joystick.
Montujemy przyciski oraz lutujemy je z kablami.
Joystick umieszczamy tak aby “dźwignia” joysticka wychodziła przez dziurę.
Część 3: Arduino i podłączenie:
Arduino umieściłem tuż obok joysticka.
Każdy przycisk/przełącznik musimy podłączyć do dowolnego pinu cyfrowego lub analogowego na arduino oraz do MASY
Przełączniki od joysticka podłączyłem do pinów analogowych oraz do masy. Pinów analogowych będę używał jako cyfrowych.
Na koniec podłączyłem kabel USB do Arduino i wyprowadziłem go przez wywierconą dziurę
Część 4: Program:
Teraz zajmiemy się programem. Program działa tylko na Arduino Leonardo, Micro, Due, oraz Pro Micro. Na innym Arduino nie zadziała, ponieważ nie obsługuje potrzebnych bibliotek.
Kod wygląda tak:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
void setup() { pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(A0, INPUT_PULLUP); //Tutaj importujemy piny analogowe, będą działać jak cyfrowe pinMode(A1, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(A3, INPUT_PULLUP); Keyboard.begin(); //importujemy biblioteke klawiatury Mouse.begin(); //importujemy biblioteke myszki } void loop() { if(digitalRead(3)==LOW){ //tutaj wywolywane jest klikniecie Keyboard.press(113); //kody liter trzeba podac w ASCII } if(digitalRead(3)==HIGH){ //oczekiwanie na puszczenie przycisku Keyboard.release(113); //puszczenie Q } if(digitalRead(4)==LOW){ Keyboard.press(119); //klikniecie W } if(digitalRead(4)==HIGH){ Keyboard.release(119); //puszczenie W } if(digitalRead(5)==LOW){ Keyboard.press(101); //klikniecie E } if(digitalRead(5)==HIGH){ Keyboard.release(101); //puszczenie E } if(digitalRead(7)==LOW){ Keyboard.press(32); //klikniecie SPACJI } if(digitalRead(7)==HIGH){ Keyboard.release(32); //puszczenie spacji } if(digitalRead(2)==LOW){ Mouse.press(MOUSE_LEFT); //klikniecie lpm } if(digitalRead(2)==HIGH){ Mouse.release(MOUSE_LEFT); //puszczenie lpm } if(digitalRead(6)==LOW){ Mouse.press(MOUSE_RIGHT); //klikniecie ppm } if(digitalRead(6)==HIGH){ Mouse.release(MOUSE_RIGHT); //puszczenie ppm } if(digitalRead(8) == LOW){ //tutaj ustawilem poruszanie scrollem Mouse.move(0, 0, 1); //scroll w gore delay(250); //tutaj ustawilem opoznienie zeby nie klikalo sie zbyt szybko } if(digitalRead(9) == LOW){ Mouse.move(0, 0, -1); //scroll w dol delay(250); } if(digitalRead(A0)==LOW){ //Tutaj ustawiamy piny odpowiadające za sterowanie myszka Mouse.move(-2, 0); //w lewo } if(digitalRead(A2)==LOW){ Mouse.move(0, -2); //w gore } if(digitalRead(A1)==LOW){ Mouse.move(0, 2); //w dol } if(digitalRead(A3)==LOW){ Mouse.move(2, 0); //w prawo } } |
Kody klawiszy musimy podać w ASCII. Znajdziemy je tu: http://www.ascii-code.com/ (Interesuje nas numer DEC)
A tu filmik prezentujący działanie:
To chyba już wszystko :p Mam nadzieję że nie wyszło najgorzej jak na pierwszy projekt :D
Jeśli coś jest niejasne, albo jest jakiś błąd to proszę napisać w komentarzu :)
Pozdrawiam majsterkowicze!
https://majsterkowo.pl/forum/jak-wstawic-kod-na-forum-by-byl-czytelny-t1834.html
Daleko szukać nie trzeba…(ale projekcik bardzo pomysłowy i ciekawy)
Na blogu to jest łatwiejsze. Wystarczy zaznaczyć goły kod i kliknąć ten przycisk :)
Bardzo mi się podoba rozwiązanie użyte przy joysticku, te 4 przyciski. Ja mam w zwyczaju wszystko komplikować i na tak prostą konstrukcję bym zapewne nie wpadł :)
Projekt bardzo fajny, niby proste a w pełni funkcjonalne, działa jak trzeba.
Jedna uwaga kosmetyczna, co do zdjęć – na przyszłość warto dać trochę więcej światła (ze 3 biurkowe lampki z różnych stron wystarczą w prostej wersji) a zdjęcia dużo zyskają na wyglądzie. Do tego jakieś jaśniejsze tło, biały arkusz i będzie super :)
Cieszę się, że projekt się podoba :D A co do porady to zastosuję się do niej przy następnych projektach :) Jeszcze dodam, że jak te mikroprzełączniki ustawisz wystarczająco blisko to działają w 8 kierunkach :) (klika po 2 jak jest na rogu)
Daje 5 na zachętę, bo sam mam w planach wykonanie arcade sticka ;)
Rada na przyszłość – nie wywierciłeś dziury, tylko otwór.
EDIT:
Chyba najlepsza strona w polskim internecie o budowie arcade sticków:
http://www.kowal.itcom.pl/ArcadeParts_pliki/menART.htm
Te przyciski to straszna lipa :/ kupiłem takie do swojego kontrolera ale pełnią tylko funkcje (start, esc, coin) itp. a do gry mam coś podobnego jak tu http://www.soltronik.pl/przelacznik-krancowy-przycisk-zolty/p-15512.html
Zamiast używać Arduino mogłeś kupić jakiegoś najtańszego pada i przylutować pod niego przyciski albo sposób tańszy ale trudniejszy “zmapować” kontroler od klawiatury ( co prawda trudniejszy sposób ale tańszy :D)
Ciekawe ile Ci ta taśma wytrzyma :D
Ale ogólnie projekt spoko ;)
Mnie tak jak Radkowi podoba się joystick. Chyba jedyne do czego się przyczepię, to jakość zdjęć. Poza tym, całość wyszła na prawdę fajnie ;)
A ty jesteś kolejną osobą która nawet nie oceni projektu tylko juz zauważając minecrafta od razu mówi o tej osobie “dziecko minecrafta”. Przeszkadza ci coś ze gra w tą grę? Sam za nią nie przepadam ale nie przyczepiam się od razu do takich szczegółów.
co prawda nienawidze minecrafta i lubie hejtowac takich ludzi ale projekt jes tak zawalisty ze mam to gdzies
Odezwał się dorosły… Chłopak coś robi, a nie jak ty siedzisz, hejtujesz, i ogólnie wszystkich wkurw*
Witam gratulacje pomysłu, mi także najbardziej podoba się to proste rozwiązanie joysticka ale mam 1 pytanie co by trzeba było zrobić aby taks klawiatura (bez joysticka) zadziałała na arduino uno ?
No tu już będzie trochę trudniej, ale też się da. Musiał by kolega albo zassać/napisać sterowniki do klawiatury działającej na porcie COM, albo użyć programowego USB. Biblioteka do tego drugiego jest napisana w C, więc albo przeportowanie do C++ albo przesiadka na C (chociaż może w cpp też jest – nie wiem) .
Możesz użyć tej biblioteki, tylko musisz zaktualizować firmware na uno. Tutaj masz do tego poradnik: http://hackaday.com/2012/06/29/turning-an-arduino-into-a-usb-keyboard/ :)
Ale tu http://arduino.cc/en/Hacking/DFUProgramming8U2 jest coś napisane, że arduino uno od 2011r. mają już nową wersję firmware (ps. ten link był w tym twoim linku {w artykule}) Dobra bo już sam nie wiem mam arduino uno r3 kupione w tym roku w styczniu pójdzie czy nie bo niezbyt się na tym znam ?
Łukaszu – niestety, ale muszę przyznać rację moim przedmówcom. Nie ma najmniejszego znaczenia w co gra i ile ma lat autor projektu. Sam projekt jest fajny, a jeżeli autor jest młody, to tym bardziej należy się mu szacunek.
14 lat ? I małe dłonie powiadasz ? Haha żałosne -.- pochwal się nam ile Ty masz lat i jak “wyglądają ” Twoje dłonie -.- gra w minecrafta co i co Ci do tego, zabronisz mu ? ? O nie , koniec świata , kilka milionów ludzi w to gra , jaka nowość -.- zastanów się 5 razy zanim coś napiszesz ._.
Kilka, a nawet ponad 100 :D
powiem szczerze, co ma kurna do rzeczy to że lubi grać w minecrafta to portal o majsterkowaniu i o tym tu rozmawiamy a nie o twoich posranych problemach z dziećmi minecrafta !
Ładnie zaprojektowane, oprogramowane, wykonane i działa. 5/5, ja w Twoim wieku to co najwyżej dziurę (nawet nie otwór) potrafiłem wywiercić :-)
Mógłby mi ktoś powiedzieć na jakiej zasadzie działa ten joystick? (nie chodzi mi o elektronikę, tylko to ze wraca do pozycji pionowej, bo nie mogę tego pojąć) :)
Wyglądałoby to trochę jak projekt zrealizowany w latach 80 tych gdyby nie kabel USB
Pingback: richard
Pingback: Virgil
Pingback: alfonso
Pingback: Dean
Pingback: Louis
Pingback: jim
Wyszło ci świetnie!Najlepszy poradnik jaki na tej stronie widziałem!
Wyszło ci świetnie!Najlepszy poradnik jaki na tej stronie widziałem i na pewno go wykożystam!