Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:amocanu:media-player-controller [2023/05/26 19:42]
daniel.sohanian [Jurnal]
pm:prj2023:amocanu:media-player-controller [2023/05/29 23:52] (current)
daniel.sohanian [Rezultate Obţinute]
Line 21: Line 21:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-Lista de piese: +  *Lista de piese: 
-  * Arduino UNO +     ​* Arduino UNO 
-  * Modul Bluetooth HC-06/​HC-05 +     ​* Modul Bluetooth HC-06/​HC-05 
-  * 4 Butoane pentru pauza/play, seek forward, next si back +     ​* 4 Butoane pentru pauza/play, seek forward, next si back 
-  * Potentiometru pentru Volum +     ​* Potentiometru pentru Volum 
-  * Rezistente (1k Ohm si 2k Ohm sau alternativ, inca 2 de 1k legate in serie) +     ​* Rezistente (1k Ohm si 2k Ohm sau alternativ, inca 2 de 1k legate in serie) 
-  * Fire +     ​* Fire 
-  * Baterie 5V+     ​* Baterie 5V
  
 === Schema Tinkercad === === Schema Tinkercad ===
Line 39: Line 39:
 ===== Software Design ===== ===== Software Design =====
  
-Parte de software este reprezentata de catre: +  * Parte de software este reprezentata de catre: 
-  * Programarea Arduino in **Arduino IDE** +     ​* Programarea Arduino in **Arduino IDE** 
-  * Aplicatie Android in **Android Studio** +     ​* Aplicatie Android in **Android Studio** 
- +     ​* Biblioteca 3rd-Party:​ 
-  ​* Biblioteca 3rd-Party:​ +       ​* **PinChangeInterrupt**,​ da handle la intreruperile de pe pinii care nu au intreruperi de tipul INT0/1
-    * **PinChangeInterrupt**,​ da handle la intreruperile de pe pinii care nu au intreruperi de tipul INT0/1+
  
 ==== Programul Arduino ==== ==== Programul Arduino ====
Line 50: Line 49:
  
   * Programul Arduino are ca scop citirea inputului de la butoane si potentiometru,​ si tranzmiterea acestor informatii catre telefon prin intermediul modulului Bluetooth HC-06. Pentru a facilita conexiunea cu modulul Bluetooth, folosim interfata **UART (Serial)**.   * Programul Arduino are ca scop citirea inputului de la butoane si potentiometru,​ si tranzmiterea acestor informatii catre telefon prin intermediul modulului Bluetooth HC-06. Pentru a facilita conexiunea cu modulul Bluetooth, folosim interfata **UART (Serial)**.
-  * Am folosit **intreruperi** pentru a da handle la apasatul butoanelor, de asemenea am facut **debounce** la butoane.+  * Am folosit **intreruperi** pentru a da handle la apasatul butoanelor, de asemenea am facut **debounce** la input.
   * Am folosit **ADC**-ul Arduino pentru a citi valoarea data de Potentiometru,​ si am tradus-o intr-un range de la 0 la 99, dupa am folosit un **timer** pentru a transmite aceasta informatie din 100 in 100 ms   * Am folosit **ADC**-ul Arduino pentru a citi valoarea data de Potentiometru,​ si am tradus-o intr-un range de la 0 la 99, dupa am folosit un **timer** pentru a transmite aceasta informatie din 100 in 100 ms
   * Codificarea mesajelor s-a facut in felul urmator:   * Codificarea mesajelor s-a facut in felul urmator:
Line 58: Line 57:
     * Comanda Back           = "​B!"​ (back)     * Comanda Back           = "​B!"​ (back)
     * Volum                  = "​![0-99]"​ (! urmat de numere in intervalul 0 - 99)     * Volum                  = "​![0-99]"​ (! urmat de numere in intervalul 0 - 99)
 +  * La fiecare **5 secunde**, Arduino trimite un messaj de awake "​UP"​ pentru a evita deconectarea automata.
  
 ==== Aplicatie Android ==== ==== Aplicatie Android ====
    * Aplicatia Android creeaza conexiunea cu modulul HC-06 atasat Arduino-ului si obtine toate sesiunile media in decurs pe telefon in acel moment, intr-un thread separat asteapta mesaje de la modulul Bluetooth, le interpreteaza si executa actiunea dorita.    * Aplicatia Android creeaza conexiunea cu modulul HC-06 atasat Arduino-ului si obtine toate sesiunile media in decurs pe telefon in acel moment, intr-un thread separat asteapta mesaje de la modulul Bluetooth, le interpreteaza si executa actiunea dorita.
  
-<​note ​tip+==== Detalii Implementare ==== 
-Descrierea codului aplicaţiei (firmware):​ +   * Pentru mai multe detalii, codul este comentat si poate fii accesat pe GitHub-ul din sectiunea **Download** 
-  ​mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) + 
-  ​librării şi surse 3rd-party (e.g. Procyon AVRlib) +<​note ​important
-  ​algoritmi şi structuri pe care plănuiţi să le implementaţi +**Permisiuni Aplicatie*
-  * (etapa 3) surse şi funcţii implementate+  * Aplicatia Android necesita permisiuni speciale **"​Special Notification Permission"​** care trebuie data manual si explicit din setarile telefonului.
 </​note>​ </​note>​
 +   
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
-Din cauza naturii proiectului,​ este greu sa adaug imagini asa ca am facut un mic filmulet care demonstreaza functionalitatea.+   ​* ​Din cauza naturii proiectului,​ este greu sa adaug imagini asa ca am facut un mic filmulet care demonstreaza functionalitatea.
  
-[[https://​www.youtube.com/​watch?v=i9CvQSy_Pqk|Link Demo YouTube]]+<​html>​ 
 +  <iframe  
 +    src="https://​www.youtube.com/​embed/i9CvQSy_Pqk"  
 +    title="​YouTube ​video player"​  
 +    frameborder="​0"​  
 +    allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​  
 +    allowfullscreen 
 +    style="​aspect-ratio:​ 16/9; width: 100%;"​ 
 +  ></​iframe>​ 
 +</​html>​
  
  
Line 81: Line 90:
 Dupa o batalie majora cu API-ul Android, am reusit sa dau skip 10 secunde in fata... ​ Dupa o batalie majora cu API-ul Android, am reusit sa dau skip 10 secunde in fata... ​
  
-Motivul principal pentru care am facut proiectul a fost si cel mai greu de implementatdar in finalmerge si acum pot sa dau skip in fata fara sa iau ochii de pe drum!+Motivul principal pentru care am facut proiectul a fost si cel mai greu de implementat dar in final merge si acum pot sa dau skip in fata fara sa iau ochii de pe drum!
  
-Foarte interesanta implementarea,​ m-a speriat putin faptul ca a trebuit sa adaug un divizor de tensiune (pinul RX al modulului HC-05/HC-06 are o limita de 3.3V)+Foarte interesanta implementarea,​ m-a speriat putin faptul ca a trebuit sa adaug un divizor de tensiune (pinul RX al modulului HC-05/HC-06 are o limita de 3.3V) dar chiar a fost ok.
 ===== Download ===== ===== Download =====
  
   * Cod sursa pe github:   * Cod sursa pe github:
      * https://​github.com/​Sohanian-Daniel/​Arduino-Bluetooth-Media-Controller      * https://​github.com/​Sohanian-Daniel/​Arduino-Bluetooth-Media-Controller
- 
   * Sketch Arduino:   * Sketch Arduino:
      * {{:​pm:​prj2023:​amocanu:​sohanian_daniel_arduino_sketch.zip|}}      * {{:​pm:​prj2023:​amocanu:​sohanian_daniel_arduino_sketch.zip|}}
pm/prj2023/amocanu/media-player-controller.1685119325.txt.gz · Last modified: 2023/05/26 19:42 by daniel.sohanian
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