Otázka:
Chcete pro smartphone vytvořit ovládání zvuku Bluetooth (zvýšení / snížení hlasitosti, přehrávání, pozastavení atd.)
Howiecamp
2016-06-23 21:12:47 UTC
view on stackexchange narkive permalink

Chci vytvořit dálkové ovládání bluetooth pro ovládání zvuku ze smartphonu, jehož funkce je v podstatě shodná s tímto typem zařízení:

Bluetooth audio control

https://www.amazon.com/FAVOLCANO-Bluetooth-Button-Smartphone-Samsung/dp/B01C5E95XG/ref=pd_lpo_147_bs_t_1?ie=UTF8&refRID=1GRBCPDRMD9YPYPGKp>

je jednoduše modré dálkové ovládání, které vám umožňuje přehrávat nebo pozastavovat zvuk, přeskakovat vpřed nebo vzad a měnit hlasitost médií na chytrém telefonu.

Všechny výukové programy Arduino, které vidím, se týkají buď používání iPhonu k ovládání zařízení Bluebooth nebo o používání bluetooth k ovládání arduina, ani jedno z toho není to, co chci dělat.

Můžete mi ukázat správným směrem?

Abyste mohli fungovat jako zařízení Bluetooth HID, potřebujete štít BLE s podporou knihovny.
@Majenko Děkuji! Je to knihovna, která potřebuje podporu Bluetooth HID, ne štít, správně? Nebo to musí oba podporovat?
Oba to musí podporovat.
AVRCP je obvykle používán dálkovými ovladači Bluetooth, nikoli HID. Nejste si jisti, zda BLE podporuje AVRCP.
@IgnacioVazquez-Abrams - Je HID obvykle pro jiné než zvukové účely? Nemyslím si, že je to pro mě BLE důležité nebo ne - jde spíše o to, zda mohu splnit svůj účel. Existuje způsob, jak (při pohledu na diagnostiku atd.) Zjistit, zda je jednotlivé zařízení (např. Zařízení na obrázku výše) AVRCP a / nebo BLE?
Všichni jsou AVRCP. Mám dálkový ovladač, který také dělá HID, ale to je pro spoušť fotoaparátu; ovládací prvky zvuku jsou stále AVRCP.
Tři odpovědi:
st2000
2016-06-24 18:06:53 UTC
view on stackexchange narkive permalink

Bluetooth podporuje více protokolů pro různé účely. Jednosměrná jednokolejná obousměrná komunikace s nízkou latencí a malou šířkou pásma pro ovládání telefonních hovorů Bluetooth. Toto se nazývá protokol HFE Bluetooth. Pokud propojujete klávesnici nebo myš, použijete protokol Human Interface Device nebo HID. Pokud byste chtěli poslouchat hudbu a ovládat její přehrávání, použili byste vysoce latentní a vysoce kvalitní 2 zvukové odesílací kanály (stereo) bez zpětného zvukového kanálu s malou šířkou pásma pro ovládání přehrávání s názvem Advanced Audio Distribution Profile nebo A2DP.

V tomto konkrétním případě nás zajímá pouze ovládání přehrávání. Mohli bychom tedy použít protokol HID Bluetooth. Nativní hudební přehrávače na platformě, kterou používáte (Android nebo iPhone), však takové zařízení pravděpodobně nebudou poslouchat. Aby to fungovalo, pravděpodobně budete muset napsat vlastní hudební přehrávač pro Android nebo iPhone.

Na druhou stranu je pravděpodobné, že nativní hudební přehrávače budou pracovat s protokolem Bluetooth A2DP. Bohužel se také předpokládá, že jakmile je navázáno připojení A2DP Bluetooth, reproduktor telefonu se vypne a veškerý zvuk bude přesměrován na připojení Bluetooth.

Nakonec existuje audio / video Profil dálkového ovládání nebo AVRCP. Tento protokol se používá k ovládání přehrávání médií. Existuje několik verzí tohoto protokolu, takže funkce, které jsou k dispozici pro dané zařízení / hudební aplikaci, se mohou značně lišit.

+1 pěkná odpověď. Ještě musím přidat jednu věc. Testoval jsem ovládání médií přes HID a funguje to pro mě na Androidu. (Možná se podpora HID za posledních 2,5 roku zlepšila.) Testování pomocí bluetooth klávesnice s multimediálními tlačítky je dost snadné. HID může být snadnější implementovat, ale našel jsem jednu nevýhodu. Pokud jsem po několika minutách nezasáhl klíč, došlo ke zpoždění při zpracování dalšího klíče. (Režim úspory energie?) Jedním z mých cílů bylo přeskočit reklamy podcastu, díky zpoždění byl HID pro tento účel méně užitečný. AVRCP je lepší volba, i když je těžší sehnat práci.
Díky za +1. Za předpokladu, že zařízení, která používáte, jsou napájena z baterií, zajímalo by mě, zda lze zabránit zpoždění, pokud byla zařízení vypnuta z hlavního napájení.
Nestrávil jsem čas, abych se tím zabýval, udělal jsem jen nějaké domněnky o zpoždění. Testoval jsem s klávesnicí BT, ne se zařízením, které jsem naprogramoval. Klávesnice by pravděpodobně přešla do pohotovostního režimu, aby šetřila energii. To mi naznačilo, že udržování plného připojení spotřebovalo příliš mnoho energie a chování se zdálo být řízeno klávesnicí, protože to bylo zdokumentováno v jeho uživatelské příručce. Poté jsem se podíval na AVRCP. Ale teď čtu na BLE's HID over GATT Profile, HOGP, který je podporován Androidem od KitKat. Vypadá to pro mě jako správné řešení.
jimhark
2019-02-16 06:51:06 UTC
view on stackexchange narkive permalink

K vynikající odpovědi @ st2000 (v lepším formátu, než je naše diskuse v komentářích) mohu něco přidat.

Původní otázka je vágní. Znamená Bluetooth klasický nebo je nízkoenergetický (BLE) přijatelný nebo preferovaný. Které smartphony musí být podporovány? Apple a / nebo Android? A jaká minimální verze musí být podporována?

2,5 roku, které uplynulo od doby, kdy byla položena tato otázka, usnadňuje výběr BLE, protože adopce je nyní tak rozšířená.

Byl jsem zkoumat, co by bylo zapotřebí k implementaci zařízení pro ovládání médií, jak je popsáno v původním příspěvku. Mým cílovým smartphonem je Android Nougat. Mým cílem je přeskočit reklamy podcastu. Testoval jsem pomocí klasické klávesnice Bluetooth. Zdá se, že tlačítka pro ovládání médií, Přehrát / Pozastavit, Přeskočit vpřed, Přeskočit zpět atd. Dělají to, co potřebuji.

Raději bych použil podporu BLE pro klávesnice a další zařízení lidského rozhraní: HID over Gatt Profil (HOGP). Poznámky k vydání KitKat uvádějí, že právě tehdy byla přidána podpora HID over GATT, takže už nějakou dobu existuje.

Poté, co jsme se rozhodli pro profil Bluetooth LE, výběr zařízení zůstane. Adafruit Bluefruit LE UART Friend má příklad HIDKeyboard. Dávám přednost MCU s integrovanou podporou BLE. I když je to pro tuto aplikaci celkem přehnané, mám ESP32, který k tomu plánuji použít. Má dobrou podporu komunity a je levná. Pokud se výdrž baterie (nebo její velikost) stane problémem, vyhledám menší zařízení.

Nixoid
2020-01-03 05:31:25 UTC
view on stackexchange narkive permalink

Udělal jsem to na HC-05 (reflash na RN-42) a k odeslání příkazu použijte profil HID: Přehrát / pozastavit fwd / rwd vol +/- V případě potřeby mohu zveřejnit ukázkový kód.

Upravte svou odpověď a přidejte ukázkový kód.
Snažím se udělat přesně totéž, vadilo by vám sdílet váš kód, prosím?


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...