Autor: Raliță Andreea-Mădălina
Grupa: 335CA
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.
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ă:
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 |
Mediul de dezvoltare:
Biblioteci folosite:
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:
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.
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.
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
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