This is an old revision of the document!
M-am gandit sa fac un controller in forma de manusa cu care poti sa interactionezi cu un pc prin miscarea mainii. Scopul e de a putea controla un pc de la distanta cu mana. Initial am dorit sa fac un joystick pentru jocuri, dar am sesizat ca e un proiect prea simplu, asa ca am extins ideea si am transformat joystick-ul intr-o manusa. E un device oarecum simplut care poate fi folosit in simulatoare, dar si ca o alternativa pentru mouse.
Vom folosi un microcontroller cu modul wireless care va transmite mișcarea mâinii utilizatorului. Modulul MPU9250 va avea rolul de a înregistra mișcarea mâinii, precum și de a detecta strângerea pumnului (unul dintre degete va avea un magnet lipit de vârful acestuia, iar magnetometrul îl va detecta). Pentru comunicarea dintre microcontroller si MPU9250 vom folosi I2C, iar intre HC-05 si microcontroller vom folosi interfata UART
La nivel de Software, vom folosi cod C pentru comunicarea cu modulul wireless, iar un fisier python pentru translatarea datelor date de MPU9250 in miscarii ale cursorului.
Piese folosite:
In schema electrica putem vedea cuplarea modulelor la microcontroller.
Pentru HC-05, am cuplat VCC la pinul de 5V de pe nano, GND la GND. Pentru UART trebuie sa conectam RX Nano-TX HC, TX HC-RX Nano. TX-Nano - RX HC e putin mai special, deoarece nivelul logic al rx-ului e de 3.3V iar al microcontroller-ului e de 5V. Pe site-ul de unde am luat modulul wireless au specificat ca l-au testat cu 5V si merge, dar personal eu unu nu vreau sa ma risc, asa ca am pus un divizor de tensiune intre RX HC si TX Nano.
Rezultat cablaj HC-05:
Mediul de dezvoltare e unul hibrid.
Folosesc avr-gcc pe wsl2(ubuntu) pentru crearea fisierului hex pe baza codul meu C, iar acel fisier e folosit mai departe in avrdudess pe windows pentru uploadarea fisierului in memoria flash a microcontrollerului. Ca IDE folosesc VScode.
Am scris un cod simplu UART de trasmitere-receptie in C, si un cod bluetooth in python cu care sa se creeze comunicarea cu HC-05
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
[5/5/2025:21:03]
Am inceput sa lucrez la documentatie dupa ce am gandit un plan intial
[5/14/2025:14:36]
Am creat setup-ul pentru proiect
Testat placuta cu un cod simplu de blink
[5/14/2025:21:43]
Am montat si testat modului HC-05
Am scris un cod simplu de w/r UART
Am conectat modulul la propriul laptop prin bluetooth
Am scris un cod python care sa comunice cu modulul