Joystick pentru Windows

Introducere

Proiectul reprezinta un joystick si un set de butoane. Inputul de la joystick va fi mapat la inputul mouse-lui din Windows. Butoanele vor avea rolul butoanelor a mouse-lui (LMB, MMB, RMB). De asemenea, va fi realizat un program à la Paint, in care, cu ajutorul butoanelor, voi putea alege diverse culori pentru desenare.

Descriere generală

Arduino va primi input-ul de la butoane si stick-ul analog, si va transmite prin USART datele catre PC pe care va rula un program ce va mapa datele primite in input pentru Windows. De asemenea, se va putea rula un program aditional (Paint), care va demonstra interpretarea datelor la apasarea butoanelor.

Setul de butoane si functiile acestora:

Pin Mapare Functie paint
PD2 LMB Desenare
PD3 RMB Stergere
PD4 1 Selecteaza culoearea neagra
PD5 2 Selecteaza culoearea rosie
PD6 3 Selecteaza culoearea verde
PB0 4 Selecteaza culoearea albastra
PB1 S Salveaza pagina curenta (screenshot)
PB2 N Pagina noua
PB3 MMB

Hardware Design

  • Arduino Uno
  • Breadboard (full)
  • Pushbutton (8x)
  • Analog stick
  • Wires (male-to-male)
  • Female pin headers 90° (5x)

Software Design

  • Medii de dezvoltare: Arduino IDE, Visual Studio Community 2022, Visual Studio Code
  • Pachete Python: win32api, pygame
  • Biblioteci C++: SerialPort.h, Windows.h

Placa Arduino realizeaza citirea input-ului de pe setul de butoane si de pe stick-ul analog. Cand se apasa un buton, pe serial se scrie pinul la care este conectat butonul apasat. Cand se da drumul la buton, pe serial se scrie pin-ul respectiv negat. De exemplu, daca se face click pe butonul conectat la pinul 2, la serial se va afisa 2 urmat de un -2.

Inputul de pe stick se citeste in continuu, si se transmite prin serial la o rata de 125Hz.

Datele de pe serial sunt preluate si citite de un program C++, care, in dependenta de datele primite, mapeaza inputul de pe Arduino catre input de Windows.

Rezultate Obţinute

S-a realizat cu succes un ansamblu hardware-software care permite manipularea cu PC-ul host.

Concluzii

S-a realizat cu succes un ansamblu hardware-software care permite manipularea cu PC-ul host.

Download

Jurnal

  • 28.05.2023 – Software design.
  • 01.05.2023 – Descrierea generala, schema bloc, hardware design.

Bibliografie/Resurse

  • Secvente de datasheet Arduino din laboratoare.
  • Secvente de cod din laboratoare.
  • Descrierea functiilor din SerialPort.h
  • Documentatia Win32 API (Microsoft)
  • Raspunsuri Stack Overflow

Export to PDF

pm/prj2023/alexau/236.txt · Last modified: 2023/05/28 21:51 by veaceslav.cazanov
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