Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32][C] - Bluetooth (SPP) i forma przesyłania danych

arekg_ 23 Lip 2012 21:30 1579 6
  • #1 23 Lip 2012 21:30
    arekg_
    Poziom 8  

    Hej,
    chciałbym przesłać plik audio w jednym z formatów: wave, mp3, flac; przez bluetooth korzsytając z Serial Port Profie (wysyłam go z płytki z STM32) tak, aby odtwarzany był na bieżąco. W tym momencie mogę np. odtworzyć przesłany wave, ale zawsze będzie to odtwarzanie pliku od początku do fragmentu, ktorego dotyczy ostatnia paczka danych. Wygląda to tak, że plik sukcesywnie zapisuję w realtermie za pomocą funkcji capture i odtwarzam go w matlabie. Gdy chcę odtworzyć tylko fragment pliku np. waveread('nazwa.wav', [400 4000], to pojawia się błąd związany z PCM. Czy wiecie, jak rozwiązać ominąć taki problem?

    Może rozwiązaniem byłoby odpowiednie formowanie plików wysyłanych przez przez Bluetooth? Może inny format? A może zupełnie inna metoda?

    Pozdrawiam!

    Dodano po 2 [godziny] 54 [minuty]:

    W związku z prośbą o zgłoszenie moje postu do moderatora chcę podać więcej konkretów. Jak widzicie pomysł dzielenia pliku mp3 na fragmenty, które następnie byłyby wysyłane z poziomu mikrokontrolera przez bluetooth do kompa i tam odtwarzane. Chciałbym, aby wyglądało chociażby jak słuchanie streama radiowego.

    0 6
  • CControls
  • #2 23 Lip 2012 22:05
    LordBlick
    VIP Zasłużony dla elektroda

    arekg_ napisał:
    Jak widzicie pomysł dzielenia pliku mp3 na fragmenty, które następnie byłyby wysyłane z poziomu mikrokontrolera przez bluetooth do kompa i tam odtwarzane.
    Na tym polega stream mp3 ze wysyłasz fragmenty pliku, ale o pełnej uporzadkowanej strukturze - (tzw ramki), a nie jakieś przypadkowe. Odbiornik najpierw buforuje określoną ilość ramek i dopiero zaczyna odtwarzać. W przypadku chwilowego zaniku łączności daje radę bez przerw. Ale jeden warunek - łącze musi być odpowiedniej przepustowości, czyli stream powinien być cieńszy najlepiej o połowę od wydajności Twojego łącza po Bluetooth. Jak uruchomisz PAN, to da się odtwarzać i winampem podając IP i port.

    0
  • CControls
  • #3 23 Lip 2012 22:09
    arekg_
    Poziom 8  

    PAN, czyli?
    Obstawiam, że chodzi o sieć.

    0
  • #5 23 Lip 2012 22:27
    arekg_
    Poziom 8  

    Spoko, tego się domyślałem. Dzięki.

    0
  • Pomocny post
    #6 23 Lip 2012 22:32
    Pawel2420
    Poziom 30  

    Masz kilka możliwości:
    1. Własny program do odtwarzania dźwięku na podstawie danych przesyłanych przez SPP + odpowiedni protokół komunikacji
    2. Odtwarzanie pliku w STM32 i przesyłanie dźwięku do PC (tak jak przesyłany jest dźwięk miedzy tel. a słuchawką bezprzewodową).
    3. Realizacja połączenia sieciowego przez Bluetooh.

    Na wstępie napisałeś, że chcesz użyć profilu SPP co wyklucza p. 2 i p.3.

    0
  • #7 23 Lip 2012 22:40
    arekg_
    Poziom 8  

    Tak, korzystam z modułu BTM222 i obsługuje on właśnie profil SPP. Mógłbym, chociażby w C#, napisać aplikację odbierającą dane z portu powiązanego z bluetooth.

    Wyodrębniałym fragmenty mp3, pakował do ramki i odbierał je w takim programie.

    0