Bluetooth Speaker

Introducere

All Pictures shown are for illustration purpose only. Actual product may vary due to product enhancement.

Proiectul urmareste realizarea unei boxe care poate reda muzica peste o conexiune de tip Bluetooth, modificarea volumului si eventual navigarea prin melodiile puse la dispozitie de pe cardul SD al placii.

Consider ca proiectul ar fi util pentru ca poate fi folosit oricand si oriunde, fiind destul de portabil. Conexiunea bluetooth face ca acesta sa poata fi folosit cu usurinta, iar un card SD (memoria fiind destul de ieftina) ar putea pune la dispozitie un volum foarte mare de melodii ce pot fi redate.

Descriere generala

Schema bloc

Microcontroller-ul ATmega324 se va ocupa in principal de controlul speaker-ului propriu-zis si de preluarea input-ului atat de la modulul Bluetooth, cat si de la butoanele pentru diferitele optiune propuse. Volume UP, volume DOWN si Next song sunt cateva butoane care vor face ce sugereaza si numele. Cardul SD va fi o alta optiune de redare a melodiilor, fara ca acestea sa fie transmise peste Bluetooth. Modulul Bluetooth se va ocupa doar de transmiterea melodiei de la telefon la ATmega324.

Hardware design

Piese utilizate:

  • Placa de baza PM 2019
  • Modul bluetooth HC-05
  • Butoane
  • LED-uri
  • Card SD
  • Speaker
  • Translator bidirectional cu 4 canale
  • Destule cabluri mama-mama
  • Tranzistor BC547
  • Rezistenta de 100ohm

Schema modulului bluetooth:

Schema electrica:

Schema electrica finala:

Schema electrica in format .sch:

Software design

Mediu de dezvoltare folosit: Android Studio

Compilator pentru programul destinat placutei: avr-gcc

Editor de text folosit: sublime-text

Aplicatie android

Fiecare buton are asociata o functie prin <android:onClick> pentru a transmite un caracter distinct prin care se identifica diferitele comenzi in ATmega324. Butonul de connect se ocupa cu activarea Bluetooth-ului pe dispozitiv si cuplarea cu modulul Bluetooth corespunzator (folosindu-se adresa MAC a acestuia, gasita printr-o aplicatie de scanare a tuturor dispozitivelor Bluetooth dintr-o zona). Comenzile de control nu functioneaza fara ca o conexiune Bluetooth sa fi fost realizata in prealabil.

Programul incarcat pe microcontroller

Functia init_usart() activeaza intreruperile pe Rx si initializeaza toate caracteristicile comunicatiei (e.g. baud rate la 9600, frame de 8 biti de date, 1 bit de stop, fara paritate) conform specificatiilor din Datasheet-ul modulului HC-05. Controlul muzicii se realizeaza la fel ca in laboratorul 4, montand un sistem de fisere FAT32 de pe cardul SD si folosind timer0 si timer1 pentru a da play unei melodii. Butoanele din aplicatie interactioneaza cu codul prin intreruperi generate la fiecare transmisie Bluetooth. Pentru a testa initial functionarea transmisiei, am encodat fiecare tip de mesaj prin aprinderea si stingerea unui led. (e.g. PLAY = PD7 aprins o data, PAUSE = PD7 aprins de doua ori etc.)

Rezultate obtinute

Desi am reusit sa pun muzica de pe cardul SD si sa transmit comenzile corecte din aplicatia Android catre placuta, cumva acestea nu merg impreuna si nu am reusit sa aflu de ce. :( De asemenea, intre timp am aflat ca translatorul meu bidirectional nu functioneaza asa ca alimentarea modulului SD ar trebui facuta separat de la 5V (sau, invers, putem alimenta modulul Bluetooth la 3V3 de altundeva).

Poza cu placuta:

Concluzii

A fost un proiect destul de interesant, desi imi pare rau ca nu am reusit sa il duc pana la capat. Partea cea mai interesanta mi s-a parut realizarea comunicatiei prin Bluetooth: scrierea aplicatiei Android si interfatarea cu ATmega324. :)

Download

Aplicatie Android: pm_bluetooth_commander.zip

Microcontroller: bluetooth_speaker.zip

Jurnal

Bibliografie/resurse

pm/prj2019/mlungoci/bluetooth-speaker.txt · Last modified: 2021/04/14 17:07 (external edit)
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