Table of Contents

Hand Gesture Control pentru Computer

Autor: Raliță Andreea-Mădălina
Grupa: 335CA

Introducere

Printr-o îmbinare de cod în Arduino cu un modul în Python, acest proiect oferă o modalitate creativă de a manipula laptop-ul, fără a atinge tastatura sau mouse-ul. Astfel, putem naviga prin tab-uri sau controla funcționalitățile de redare a unui videoclip într-un mod simplu, ușor și distractiv.

Descriere generală

Din punctul de vedere al componentelor, proiectul este unul destul de simplist. Prin intermediul a doi senzori, voi evalua și calcula distanța și direcția în care are loc mișcarea mâinilor, iar pentru fiecare tip de mișcare am atribuit o funcționalitate, după cum urmează:

Schemă bloc

Hardware Design

Lista componente

Nume Număr Piese
Arduino UNO 1
Ultrasonic Sensor 2
Breadboard 1
Fire mama-tata 8
Fire tata-tata 1
Laptop cu conexiune la internet 1

Schemă electrică

Software Design

Mediul de dezvoltare:

Biblioteci folosite:

Structura codului

Codul este stucturat în majoritatea lui în Arduino IDE, iar codul Arduino generează 6 comenzi care sunt trimise mai departe portului serial. Folosind aceste 6 comenzi, am scris un modul în Python care să manipuleze comenzile primite, invocând o anume combinație de taste pentru fiecare comandă în parte.

Arduino IDE - codul Arduino include următoarele funcții:

Spre exemplu, pentru comenzile “Volume Up”/ “Volume Down”, calculăm distanța de la mână la senzorul stâng, iar dacă ea se află în intervalul [10 cm, 20 cm], continuăm să calculăm distanța în fiecare moment, pentru a determina dacă mâna se apropie (caz în care trimitem “Vup” pe seriala) sau se îndepărtează (vom trimite “Vdown”).

Modul Python - codul în Python cuprinde următoarele funcționalități:

Demo

Accesand link-ul: https://www.youtube.com/watch?v=_n_OEZJRhRw&ab_channel=MadalinaRalita puteți găsi un demo pe YouTube in care prezint funcționalitățile proiectului.

Rezultate Obţinute

Concluzii

Proiectul “Hand Gesture Control” este un proiect de dificultate mică spre medie, care însă mi-a plăcut prin funcționalitatea pe care o oferă și prin faptul că mi-a demonstrat că nu trebuie neapărat să folosesc Arduino IDE de sine stătător, ci că pot obtine rezultate încântătoare combinându-l și cu alte medii de lucru, cum ar fi Python. Menționez că inițial aveam mai multe gesturi pe care senzorii le recunoșteau (din punct de vedere al codului), însă în practică nu mai făceau diferența între ele deoarece erau foarte asemănătoare. Așa că am decis să păstrez mai puține, însă ele să fie recunoscute rapid de senzori.

Download

Arhiva ce conține codul sursă: hand_gesture_control_ralita_andreea_335ca.zip

PDF-ul ce contine pagina de wiki de la Milestone 1: milestone1_ralita_andreea_335ca_1_.pdf

PDF-ul ce contine pagina curenta (Milestone 2): hand_gesture_control_ralita_andreea_335ca.pdf

Pentru a rula proiectul, deschidem fișierul hand_gesture_python.py în Python, apăsăm pe Run Module, după care putem începe să gesticulăm pe deasupra senzorilor. Vom observa că pe măsură ce acțiunile noastre sunt efectuate pe laptop, numele acțiunii va fi și printat explicit ca output.

Bibliografie/Resurse

Instalarea de biblioteci si tool-uri necesare pentru a combina Arduino cu Python: https://www.electronicshub.org/controlling-arduino-led-python/

Documentatie pentru PyAutoGUI Keyboard Control Functions: https://pyautogui.readthedocs.io/en/latest/keyboard.html

Export to PDF