Lightweight Motion Controller

Autor: Panait Teodor-Dimitrie Grupă: 333CB

1. Introducere

Proiectul constă în realizarea unei perechi de mănuși-controller capabile să monitorizeze mișcarea mâinilor și să preia comenzi tactile, transmițând aceste date către un laptop (in principal ce ruleaza Linux) prin protocolul HID (USB sau Bluetooth).

Scopul principal este de a crea un controler versatil care poate fi utilizat în aplicații de realitate virtuală, controlul prezentărilor sau interfațarea cu aplicații software complexe fără a fi nevoie de periferice costisitoare.

2. Descriere Generală

Sistemul este compus din două mănuși conectate la o unitate centrală (Arduino Uno).

  • Mănușa Stângă: Monitorizează miscarea (MPU6050) și afișează diverse date pe un ecran LCD 1602.
  • Mănușa Dreaptă: Monitorizează miscarea (MPU6050) și dispune de 4-5 zone de contact capacitiv (MPR121) plasate în palmă/degete.
  • Comunicare: Datele sunt procesate de Arduino și trimise prin ori prin USB, ori prin Bluetooth (JDY-24M) in format HID către sistemul de operare gazdă (Linux, speram).

3. Hardware Design

Listă de componente

Componentă Descriere Rol
Arduino Uno V3 Microcontroler principal Procesarea datelor și controlul perifericelor
2 x MPU6050 Accelerometru + Giroscop Detectarea mișcării și înclinației pe 3 axe
LCD 1602 + I2C Display alfanumeric Afișare status sau alte informatii pentru user
MPR121 Senzor capacitiv Adaugarea unor butoane usor accesibile pe manusa dreapta
I2C Level Shifter Convertor de nivel (5V ↔ 3.3V) Pentru specificatia senzorului MPR121 (3v3)
JDY-24M Modul Bluetooth Transmisie wireless folosind profilul HID (proof of concept)

Schema Bloc

Pini utilizati si rolul acestora

Pentru interfațarea tuturor componentelor, s-au utilizat următorii pini de pe placa Arduino Uno:

  • Alimentare:
    • 5V și GND: Folosiți pentru alimentarea plăcii de dezvoltare, a ecranului LCD 1602 și a părții de înaltă tensiune a Level Shifter-ului.
    • 3.3V: Folosit pentru alimentarea modulului Bluetooth.
  • Magistrala I2C:
    • Pinul A4 (SDA) și Pinul A5 (SCL): Pinii hardware dedicați pentru protocolul I2C pe Arduino Uno. S-a ales această magistrală deoarece permite conectarea în paralel a mai multor dispozitive (MPU6050 x2, LCD, MPR121) folosind doar 2 fire de date, economisind pinii digitali ai microcontrollerului. In cadrul proiectului, exista practic 2 magistrale I2C conectate, una functionand pe 5V si una pe 3V3
  • Interfața Serială (UART):
    • Pinul D1 (TX) și Pinul D2 (RX): Folosiți pentru comunicarea serială cu modulul Bluetooth JDY-24M.

4. Software Design

Motivarea bibliotecilor utilizate

Proiectul este realizat in PlatformUIO, folosind urmatoarele biblioteci:

  • MPU6050.h (ElectronicCats / Jeff Rowberg): Senzorul MPU6050 conține un procesor intern de mișcare (DMP). Această bibliotecă a fost integrată deoarece permite accesarea registrelor interne ale senzorului și extragerea directă a unghiurilor polare (Yaw, Pitch, Roll) quaternion-based, scutind MCU-ul de calcule trigonometrice intensive de tip filtru Kalman.
  • Adafruit_MPR121.h: O bibliotecă optimizată pentru controlul pragurilor de “touch” și “release” ale senzorului capacitiv printr-o singură interogare a unei măști de biți (16 biți).
  • LiquidCrystal_I2C.h: Permite controlul ecranului LCD prin intermediul adaptorului I2C I/O expander (PCF8574), reducând amprenta de memorie prin transmiterea pachetelor direct pe magistrală.

Elementul de Noutate al Proiectului

Elementul de noutate constă în fuziunea hibridă de control inerțial-capacitiv simetric transpusă într-un format pur purtabil (wearable - două mănuși) fără fir. Majoritatea controlerelor comerciale folosesc fie exclusiv butoane mecanice, fie gesturi rigide.

Prin maparea dinamică a unghiurilor ambelor mâini (mănușa stângă controlează navigarea sau orientarea spațială, mănușa dreaptă acționează ca un mouse/pointer virtual), combinată cu declanșatoare tactile capacitive invizibile în palma dreaptă, utilizatorul primește o interfață organică de control recunoscută nativ de Linux ca periferic standard fără instalarea de drivere dedicate.

Justificarea Utilizării Funcționalităților din Laborator

Proiectul integrează concepte fundamentale studiate în cadrul laboratoarelor de Proiectare cu Microcontrollere:

  • Comunicația I2C / TWI (Laboratorul de Interfețe Serie): Utilizarea protocolului master-slave, configurarea adreselor hardware distincte pentru periferice identice (modificarea adresei prin pinul AD0) și gestionarea priorităților pe aceeași magistrală de date.
  • Comunicația Serială UART: Configurarea registrelor de transmisie, setarea baud-rate-ului (9600 bps pentru interfațarea cu modulul JDY-24M) și parsarea pachetelor de date binare trimise către exterior.
  • Senzoristică și Achiziție de Data: Citirea semnalelor analogice convertite intern de ADC-urile senzorilor și procesarea evenimentelor externe (detecția pragurilor de capacitanță).
pm/prj2026/alexandru.jipa2803/teodor.panait.txt · Last modified: 2026/05/19 11:42 by teodor.panait
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