Volan Gaming

Introducere

O scurta prezentare a proiectului:

  • proiectul meu trebuie sa ofere posibilitatea folosirii unui volan DIY pentru jocuri si alte aplicatii;
  • este compatibil cu toate plaformele majore, Windows, Linux si MAC;
  • contine un volan cu unghi de rotire de 900 grade si 3 butoane customizabile;
  • acest volan sigur va fi util pasionatilor de jocuri pe buget;

Am ales acest proiect intrucat mi se pare util si fun, si usor de customizat.

Descriere generală

Circuitul este unul simplist, folosim 3 butoane legate la ground si la pinii digitali 2,3,4, care vor fi mapati in controller la aceleasi butoane virtuale 2,3,4. conectand un potentiometru la pinul analog A0 si la GND si 5V, putem masura rotatia potentiometrului, care este legat printr-u sistem de roti la un volan DIY. Schema circuitului:

Hardware Design

Urmatoarele piese sunt necesare pentru proiectul acesta:

  • volan DIY
  • potentiometru
  • placa arduino
  • 3 butoane
  • cablaj
  • angrenaje
  • suport si suruburi pentru montat

Software Design

Partea de Software implica scrierea unui driver compatibil cu standardele de pe piata. Am plecat de la un proiect de pe Github ce este localizat in sectiunea de bibliografie, iar codul este alcatuit din o serie de fisiere .c/.h ce vor fi compilate ca HEX si incarcate pe firmware-ul placii. Placa nunmai contine firmware Arduino, ea a fost adusa in modul DFU si de acolo s-a incarcat acest cod AVR. Codul este compilat cu ajutorul tool-ului MicroChip Studio, ce contine un compilator numit AVR-GCC (GNU Compiler Collection) si colectia de librarii AVR. principalele functii implementate se afla in fisierul main.c, unde are loc citirea pinilor digitali si a pinului analog si maparea lor la butoanele/sliderele controllerului. O parte importanta de software este prezentarea placii Atmega8U2 ca un microcontroller de jocuri pt calculator. aceasta se realizeaza prin stabilirea unui protocol de conexiune si de schimb cu calculatorul ce imita protocolul de la un controller PS3, iar implementarea se poate observa in fisierul usb_controller.c.

Pentru a putea fi vazut ca un controller, este necesara trimiterea de catre microprocesor a unor semnale HID (Human Interface Device). Aceasta functionalitate nu este disponibila pe o placa Arduino UNO, motiv pentru care am fost fortat sa suprascriu firmware ul cu cod AVR si nu am mai avut posibilitatea sa scriu cod Arduino.

Rezultate Obţinute

Aici se poate vedea o poza cu proiectul finalizat: Aici se observa cum arata optiunile controllerului:

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2023/razvans/volan_gaming.txt · Last modified: 2023/05/30 11:37 by filip.dugaesescu
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