This shows you the differences between two versions of the page.
pm:prj2022:arosca:hand-gesture-control-pentru-computer [2022/06/01 22:50] andreea.ralita [Structura codului] |
pm:prj2022:arosca:hand-gesture-control-pentru-computer [2022/06/02 09:55] (current) andreea.ralita [Download] |
||
---|---|---|---|
Line 62: | Line 62: | ||
* //loop()// -> colecție de calcule și comparații pentru a identifica comanda sub care se plasează mișcarea efectuată. Pentru fiecare comandă, calculăm distanța până la senzorul corespunzător, și în funcție de încadrarea între anumite limite, stabilim ce comandă vom trimite mai departe portului serial. | * //loop()// -> colecție de calcule și comparații pentru a identifica comanda sub care se plasează mișcarea efectuată. Pentru fiecare comandă, calculăm distanța până la senzorul corespunzător, și în funcție de încadrarea între anumite limite, stabilim ce comandă vom trimite mai departe portului serial. | ||
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"). | 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"). | ||
- | {{:pm:prj2022:arosca:vup_vdown_crop.png?320|}} | + | {{:pm:prj2022:arosca:vup_vdown_crop.png?320|}} |
+ | |||
+ | ** Modul Python ** - codul în Python cuprinde următoarele funcționalități: | ||
+ | * //Arduino_Serial = serial.Serial('com3',9600)// -> inițializarea serialei și crearea obiectului de tip Serial port numit Arduino_Serial. | ||
+ | * //incoming_data = str (Arduino_Serial.readline())// -> citirea datelor de pe serială și afișarea lor pe o linie. | ||
+ | * //valorile pe care le poate lua incoming_data și combinațiile de taste pe care acestea le invocă// -> folosesc funcțiile puse la dispoziție de biblioteca PyAutoGUI pentru manipularea tastaturii, funcții precum hotkey() și press(). | ||
+ | {{:pm:prj2022:arosca:python_crop.png?400|}} | ||
+ | |||
+ | |||
+ | ==== 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 ===== | ===== Rezultate Obţinute ===== | ||
+ | {{:pm:prj2022:arosca:fizic_crop.jpeg?750|}} | ||
+ | |||
- | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
- | </note> | ||
===== Concluzii ===== | ===== 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 ===== | ===== Download ===== | ||
- | <note warning> | + | Arhiva ce conține codul sursă: |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | {{:pm:prj2022:arosca:hand_gesture_control_ralita_andreea_335ca.zip|}} |
- | 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**. | + | PDF-ul ce contine pagina de wiki de la Milestone 1: |
- | </note> | + | {{:pm:prj2022:arosca:milestone1_ralita_andreea_335ca_1_.pdf|}} |
- | ===== Jurnal ===== | + | PDF-ul ce contine pagina curenta (Milestone 2): |
+ | {{:pm:prj2022:arosca:hand_gesture_control_ralita_andreea_335ca.pdf|}} | ||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | 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. |
</note> | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | Instalarea de biblioteci si tool-uri necesare pentru a combina Arduino cu Python: https://www.electronicshub.org/controlling-arduino-led-python/ | ||
- | <note> | + | Documentatie pentru PyAutoGUI Keyboard Control Functions: https://pyautogui.readthedocs.io/en/latest/keyboard.html |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||