Mini tastatură + mouse

Scarlat Cristian, 336CC

Nume și Grupa: Scarlat Cristian 336CC

E-mail contact: cristian.scarlat@stud.acs.upb.ro

Introducere

Ce face proiectul?

Proiectul este o mini tastatură și un mouse pentru jocul League of Legends. Tastatura conține butoanele principale folosite in joc. Mișcarea mouse-ului va fi controlată de un joystick, click-ul de butoane și scroll-ul de un senzor de distanță.

Care este scopul proiectului?

Scopul este crearea unor periferice de input mai compacte, însă ce păstrează cât mai multe din funcționalitățile necesare în jocul League of Legends.

Ideea de la care am pornit

Îmi doream sa aflu cum funcționează perifericele de Input. Deoarece o tastatură întreagă ar necesita mai mult timp, am ales să creez o tastatură pentru un joc ce necesită un număr redus de taste pentru a putea fi jucat la standarde normale.

Utilitate

Perifericele sunt mult mai compacte decât cele obișnuite. (+ nu mai poți să fii toxic în chat dacă îți lipsește mare parte din tastatură)

Descriere generală

Schemă bloc

Descriere schemă bloc

Utilizatorul se va folosi de butoane/joystick/senzorul de distanță pentru a trimite input către Arduino. Arduino preia apăsările de buton, mișcările joystick-ului și distanța citită de senzor și le va trimite către un program python. În programul python mă voi folosi de librăriile “mouse” și “autogui” pentru a simula apăsări de tastă, mișcarea mouse-ului, click-ul mouse-ului și scroll-ul mouse-ului. În timpul jocului de League of Legends aceste input-uri vor fi preluate de joc și se vor executa acțiuni precum mișcare player sau spell cast.

Hardware design

Listă componente

  • Arduino UNO
  • Breadboard
  • Senzor de distanță
  • Joystick
  • 7 butoane

Schemă electrică

Software design

Pentru realizarea proiectului am folosit Arduino IDE și Python

Biblioteci folosite:

  1. pyautogui
  2. pydirectinput
  3. serial

(+ driver CH340g Windows 8+ pentru Arduino )

Codul proiectului este împărțit între Arduino și Python. În codul Arduino se citesc input-urile de pe breadboard și se transmit prin interfața serială către Python. Python citește input-urile și le execută folosind bibliotecile pyautogui și pydirectinput. Deoarece League of Legends (împreună cu alte jocuri) nu poate fi controlat de către input-uri simulate, am putut folosi pyautogui doar pentru mouse. Pentru tastatură am folosit pydirectinput.

Rezultate obținute

Proiectul asamblat:

Concluzii

Joystick-ul este foarte puțin precis și nu poate fi manevrat ușor. Senzorul de distanță nu este nici el perfect, dar este mult mai ok decât joystick-ul. În ceea ce privește codul, a trecut ceva timp pana sa descopăr că unele jocuri nu acceptă input-uri simulate, ceea ce a dus la rescrierea logicii pentru tastatură. În rest totul a decurs bine și am fost pregătit datorită laboratoarelor.

Download

Arhiva cu script-uri și poze: scarlat_cristian_336cc.zip

Bibliografie/Resurse

Documentația în format PDF

pm/prj2021/dbrigalda/lolinput.txt · Last modified: 2021/06/01 16:30 by cristian.scarlat
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0