Skocz do zawartości

Arduino jako button box do gier


Pilarz

Pomocna odpowiedź

Cześć jestem totalnie zielony w tematach arduino lecz chciałbym złożyć sobie button box do gry farming simulator. Narazie nie kupiłem arduino ale zrobiłem mniej więcej schemat i chciałbym sie dopytać czy by on w ogóle działał? Dołączam go w załączniku.  Czy jest możliwosc zrobienia przycisku zmiany funkcji że np. 3 przyciski są odczytywane jako a,b,c a po wciśnięciu danego przycisku będą jako d,e,f i po ponownym wciśnięciu znowu jako a,b,c? I ostatnie czy da się jakoś zaoszczędzić jakieś tańsze odpowiedniki arduino warte polecenia do tkaiego projektu? I poprosiłbym o podanie strony z jakimiś przyciskami, przełącznikami itd w nie dużych cenach bo za nic nie mogę znaleźć żadnej. Za pomoc z góry dziękuję jak pisałem jestem totalnie początkujący więc biorę pod uwagę wszystkie rady i fajnie jakby odezwał się ktoś kto miał doświadczenie z button boxami do gier.

1.png

  • Lubię! 1
Link do komentarza
Share on other sites

@Pilarz witam na forum 🙂 

Zacznę od końca - co z programem? Czy masz gotowca, czy będziesz go pisał samodzielnie? Bo od tego zależy całkiem sporo w kwestii sprzętu.

Sklepów z elektroniką jest wiele, oprócz Allegro sprawdź np. https://botland.com.pl/ lub https://www.tme.pl/

Link do komentarza
Share on other sites

Dnia 6.10.2022 o 09:51, Treker napisał:

@Pilarz witam na forum 🙂 

Zacznę od końca - co z programem? Czy masz gotowca, czy będziesz go pisał samodzielnie? Bo od tego zależy całkiem sporo w kwestii sprzętu.

Sklepów z elektroniką jest wiele, oprócz Allegro sprawdź np. https://botland.com.pl/ lub https://www.tme.pl/

Jeszcze programu nie pisałem ale myślałem aby albo poszukać gotowca i go ewentualnie zmienic i coś dodać lub pisać samemu jednak wiadomo by mi trochęto zapewne zajęło przez mały zakres wiedzy

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

bool btn_state1 = false;
bool btn_state2 = false;
bool btn_state3 = false;
bool btn_state4 = false;

bool odwocone_stany = false;
const int czas = 20; //czas w ms //potrzebny do odczekania drgań //przycisków 

int piny[3] = {2,3,4}; 

void setup() {
  for(int i = 0; i !=5; i++) {
     pinMode(piny[i],INPUT_PULLUP);
 } 
  
void loop() {
  while(digitalRead(piny[2])) {
    delay(czas);
    if(digitalRead(piny[2])) {
      odwrocone_stany= !odwrocone_stany; 
      delay(czas);
    } 
  }
  
  for(int i = 0; i != 3; i++) {
    if(digitalRead(piny[i])){
      delay(czas);
      if(digitalRead(piny[i])){
        if(odwrocone_stany) {
          switch(i) {
              case 0:
                 btn_state1 = true;
                 btn_state2 = false;
                 btn_state3 = false;
                 btn_state4 = false;
                 break;
              case 1:
                 btn_state2 = true;
                 btn_state1 = false;
                 btn_state3 = false;
                 btn_state4 = false; 
                 break;
           }
         } else {
          switch(i) {
              case 0:
                 btn_state3 = true;
                 btn_state4 = false;
                 btn_state1 = false;
                 btn_state2 = false;
                 break;
              case 1:
                 btn_state4 = true;
                 btn_state3 = false;
                 btn_state1 = false;
                 btn_state2 = false; 
                 break;
          }
        } 
      } 
    }
  } 
  sprawdz_stany_pinow();
} 
  
void sprawdz_stany_pinow(void)
{
  //tu kod do sprawdzania stanów    //przycisków 
 
Dnia 5.10.2022 o 17:32, Pilarz napisał:

 Czy jest możliwosc zrobienia przycisku zmiany funkcji że np. 3 przyciski są odczytywane jako a,b,c a po wciśnięciu danego przycisku będą jako d,e,f i po ponownym wciśnięciu znowu jako a,b,c? I ostatnie czy da się jakoś zaoszczędzić jakieś tańsze odpowiedniki arduino warte polecenia do tkaiego projektu?

1.png

Oczywiście, jest taka możliwość 😉

to jest przykładowy kod do takiego działania 3 przycisków, gdzie ostatni będzie zmieniał wykrywanie innych(zmienne btn_state1, btn_state2 itd. to są stany przycisków(true to kliknięty, false to nie naciśnięty) ) 

Zaś co do odpowiedników - nie opłaca się kupować oryginału, jeżeli chcesz ciąć koszty, takie arduino nano(klon) na jakimś portalu aukcyjnym kosztuje ok. 30zł bez wlutowanych goldpin ów ale to może i nawet pomoże bk od razu do pól lutowniczych sobie kabelki dolutujesz. 

Edytowano przez Zakrzewiaczek
Link do komentarza
Share on other sites

Ale jak chcecie to nano podłączyć do komputera? Żeby było przezroczyste dla systemu i gry, musi udawać klawiaturę.

Zabawa z tinyusb?

Jeżeli autor ma (jak sam napisał) małe doświadczenie, to polegnie.

Płytka z esp32 albo esp32c3 to mniej niż cena kebaba 🙂

Link do komentarza
Share on other sites

Dnia 6.10.2022 o 16:16, kostuch napisał:

Najłatwiej zrobić to jako "bezprzewodową klawiaturę bluetooth".

Najprościej będzie użyć Arduino pro micro albo Leonardo (ważne żeby było na ATmega32U4). Wtedy można stworzyć urządzenie HID i emulować dowolne działanie klawiatury i myszki. https://docs.arduino.cc/tutorials/micro/keyboard-press

Link do komentarza
Share on other sites

Dnia 8.10.2022 o 16:48, kostuch napisał:

Ale jak chcecie to nano podłączyć do komputera? Żeby było przezroczyste dla systemu i gry, musi udawać klawiaturę.

Zabawa z tinyusb?

Jeżeli autor ma (jak sam napisał) małe doświadczenie, to polegnie.

Płytka z esp32 albo esp32c3 to mniej niż cena kebaba 🙂

W jakim sensie przezroczyste? Jeżeli o to chodzi to może być wykrywane jako osobny kontroler. Jak oglądałem na internecie poradniki to po prostu łączyli przyciski wgrywali program i w grze mogli już zbindować przyciski pod jakieś funkcje. Chyba, że czegoś nie pokazali.

Link do komentarza
Share on other sites

2 godziny temu, Harnas napisał:

Najprościej będzie użyć Arduino pro micro albo Leonardo (ważne żeby było na ATmega32U4). Wtedy można stworzyć urządzenie HID i emulować dowolne działanie klawiatury i myszki. https://docs.arduino.cc/tutorials/micro/keyboard-press

Właśnie myślałem nad pro micro a jest jakaś znacząca różnica między tymi płytkami w takim projekcie?

Link do komentarza
Share on other sites

13 godzin temu, Pilarz napisał:

W jakim sensie przezroczyste? Jeżeli o to chodzi to może być wykrywane jako osobny kontroler. Jak oglądałem na internecie poradniki to po prostu łączyli przyciski wgrywali program i w grze mogli już zbindować przyciski pod jakieś funkcje. Chyba, że czegoś nie pokazali.

Przezroczyste w sensie sprzętu.

Skąd komputer i gra na nim zainstalowana ma wiedzieć, że podłączyłeś jakąś płytkę z guzikami? I skąd ma wiedzieć jak ją obsłużyć?

Po to właśnie ma udawać standardowe urządzenie HID (wszystko jedno czy po usb czy po bt). Czyli ma widzieć klawiaturę albo myszkę, do których system ma sterowniki i "wie" jak działają.

 

Link do komentarza
Share on other sites

Dnia 9.10.2022 o 08:51, Zakrzewiaczek napisał:

@kostuch można np. wymontować małą klawiaturkę numeryczną i piny do Arduino podłączyć wtedy tylko zmapowac te piny do symulatora i tyle(ale wtedy trochę lutowania będzie i na dwa usb w tym jedno do zasilania arduino) 

Jak wlutujesz się na sztywno pod np przycisk "1", to jak chcesz "w locie" zmieniać funkcję przycisku na np "2"?

Takie chyba było wymaganie...

A po co dwa usb???

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.