Съдържание:

Безжичен семеен контролер за 4 играча: 3 стъпки
Безжичен семеен контролер за 4 играча: 3 стъпки

Видео: Безжичен семеен контролер за 4 играча: 3 стъпки

Видео: Безжичен семеен контролер за 4 играча: 3 стъпки
Видео: COSTA SMERALDA 🛳 7-Night Mediterranean【4K Unsponsored Ship Tour & Cruise Review】Worth The Money?! 2024, Юли
Anonim
Безжичен семеен контролер за 4 играча
Безжичен семеен контролер за 4 играча
Безжичен семеен контролер за 4 играча
Безжичен семеен контролер за 4 играча
Безжичен семеен контролер за 4 играча
Безжичен семеен контролер за 4 играча

Това е безжичен контролер в аркаден стил, на който 4 души могат да играят наведнъж. Той е безжичен, така че не е нужно да свързвате компютъра си към контролер, който се използва от 5 -годишни. Те падат през цялото време и не искам да унищожават всичките ми играчки, когато неизбежно се спънат по жица. Наскоро купихме нов компютърен монитор и той дойде в супер здрава кутия с наистина плътен стиропор вътре. Като нещо от сериал, непрекъснато спорех с жена си за запазване на кутията. За мен това сякаш се молеше да бъде превърнато в нещо, докато за нея това беше грозен боклук. Тогава изневиделица, Instructables проведоха състезание за скорост на базата на картон. И така един следобед спорът беше уреден и този проект се роди.

Използвахме крайни коефициенти, които имахме около къщата, за да реализираме проекта. Идеята беше просто да използваме това, което вече имахме, за да направим нещо готино - за щастие имахме набор от аркадни бутони и малиново пи, закупени преди години, за да направим аркаден шкаф. За рязане използвахме трион и моя надежден стар джобен нож.

Консумативи

1. Картонена кутия2. Стиропор или друг плътен пълнител 3. Аркадни бутони от Ali Express или Amazon 4. Raspberry Pi 3B + 5. Някой друг компютър + екран. 6. Нож или нещо за изрязване на дупки в картон 7. Маскираща лента8. Спрей боя

Стъпка 1: Конструкцията

Конструкцията
Конструкцията
Конструкцията
Конструкцията
Конструкцията
Конструкцията

Бързо съставихме скица на това, което искаме да изглежда, а след това използвахме нож и трион за дърво, за да изрежем картона и стиропора до правилния размер. Маркирахме картона с добро разположение на бутон/джойстик и внимателно изрязахме дупките с нож. Това беше страхотно упражнение по основна математика за децата. След като картонът беше изрязан, го боядисахме и след това поставихме всички бутони на място. Основното интересно нещо, което направихме, беше да залепим три слоя картон за горната част на контролера, за да му придадем по -голяма твърдост. Това донякъде затруднява прорязването, но работи перфектно, за да направи горната част почти здрава като дърво.

Raspberry Pi 3B+ има четири usb порта. Имаме семейство от четири и 4 комплекта аркадни бутони! Това беше предопределение.

Стъпка 2: Програмирането

Програмирането
Програмирането
Програмирането
Програмирането
Програмирането
Програмирането
Програмирането
Програмирането

Кодът за този проект е прост и бъги. Всичко може да се намери тук:

github.com/melvyniandrag/SuperTuxJunkKart 4 -те контролера са свързани чрез usb към малиново пи. На Raspberry pi има изпълнен малък скрипт на python. Използвах библиотеката с входове на Python, за да получа сигналите от бутоните и джойстиците. След това програмата трансформира сигнала в кратък ASCII код и го изпраща през TCP гнездо през wifi на компютър, на който се играе игра (аз ще го наричам сървър за игри). Например, когато играч 0 премести джойстика наляво, знаците „0XL“се изпращат през TCP сокета към сървъра за игри. За тестване пуснах SuperTuxKart на моя Thinkpad. Малко сървърно приложение работи на Thinkpad и слуша през TCP сокета. Кодовете, които идват от малиновото пи през wifi, се превеждат в натискане на бутони на клавиатурата чрез библиотеката pyautogui. Така че, когато играч 0 на картонения контролер премества джойстика наляво и контролерът излъчва „OXL“, сървърът, който изпълнява играта, смята, че играчът е натиснал бутона „1“на клавиатурата. Играта трябва да бъде конфигурирана да разпознава тези натискания на клавиатурата, както може да бъде показано на екрана с опции тук. Тази игра работи добре с един или двама играчи, но когато 4 души играят агресивно SuperTuxKart, на сървъра започват да липсват някои данни от контролера. Не съм сигурен дали това е грешка: 1. От страна на клиента (контролер) 2. От страна на сървъра (Thinkpad) 3. Вградена функционалност на Linux. Може би моят лаптоп Ubuntu не може да разпознае голям брой едновременни натискания на клавиши. Така че, ако всички играчи 0, 1 и 2 се движат нагоре и наляво, това означава, че 2 * 3 = 6 бутона са натиснати наведнъж. Не съм сигурен дали компютърът ми (или друг компютър) е проектиран да се справи с това. Обикновено горещите клавиши са 3 или по -малко бутона, напр. CTRL + ALT + DEL. В бъдеще ще се опитам да стартирам 4 гнезда за tcp, по един за всеки контролер, и след това от страна на сървъра да създам виртуален подложка за игри. Все още не съм имал време да видя как да го направя между родителството, работата и изрязването на картонени кутии.

Стъпка 3: Бъдещето

Това беше просто Доказателство за концепция. В бъдеще кодът трябва да бъде по -добър. Бих искал да кодирам връзката като Bluetooth HID устройство, но bluez5 в Linux е малко време за работа - затова отидох с TCP сокет + Python. Също така - нека си признаем - контролерът изглежда като по дяволите. С повече време бих инвестирал малко повече енергия в по -внимателно рязане. След това бих сложил повече опори -страните на кутията започват леко да се изкривяват. За това какво е и колко струва обаче, това нещо изглежда достатъчно добре. Ще продължа да се занимавам с него, докато гледаме филми вечер.

Препоръчано: