This is an old revision of the document!
Introducere
Un controller/telecomanda care se conecteaza la telefon prin Bluetooth si controleaza media player-ul telefonului.
Ideea a pornit de la nevoia practica de a dat seek forward la o melodie atunci cand nu as putea sa fac asta, de exemplu, in timp ce conduc.
Acest controller m-ar ajuta sa dau skip forward fara sa:
Astept un semafor
Iau mana de pe volan
Ma uit la telefon
Ies din Waze
A modifica manual
Ca rezultat, pot sa dau seek forward in melodie fara sa iau ochii de pe drum sau mana de pe volan (daca lipesc controller-ul de volan).
Descriere generală
Hardware Design
Lista de piese:
Arduino UNO
Modul Bluetooth HC-06/HC-05
4 Butoane pentru pauza/play, seek forward, next si back
Potentiometru pentru Volum
Rezistente (1k Ohm si 2k Ohm sau alternativ, inca 2 de 1k legate in serie)
Fire
Baterie 5V
Schema Tinkercad
Implementare Fizica
Software Design
- Parte de software este reprezentata de catre:
Programul Arduino
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 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
Codificarea mesajelor s-a facut in felul urmator:
Comanda Play/Pause = “P!” (pause/play)
Comanda Seek Forward = “F!” (forward)
Comanda Next = “N!” (next)
Comanda Back = “B!” (back)
Volum = ”![0-99]” (! urmat de numere in intervalul 0 - 99)
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.
Detalii Implementare
Rezultate Obţinute
Concluzii
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 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)
Download
Sketch Arduino:
Proiect Android Studio
APK propriu zis
Bibliografie/Resurse