В ходе реализации проектов на плате Intel Edison иногда возникает необходимость воспроизвести звук. В последних версиях образа Yocto добавлена поддержка Alsa, и можно воспользоваться USB аудиокартой. Но большую мобильность даст использование встроенного Bluetooth модуля. Например, устройство на базе Intel Edison, которое получает аудиофайлы по сети, может находиться стационарно в одном месте в комнате. Слушать же музыку можно в любой точке помещения, используя обычные беспроводные наушники. Итак, начнём.
Включите ваше Bluetooth устройство и сделайте его видимым. Введите следующие команды в терминале:
Просканируйте доступные Bluetooth устройства:
Найдите ваше устройство и присоединитесь к нему (подставив его MAC адрес):
Установите соединение, если необходимо:
Закройте программу bluetoothctl:
Проверьте, что ваше A2DP устройство (в нашем случае наушники LG) распознались в pulseaudio как sink-устройство и его имя начинается с bluez_sink
Сконфигурируйте дефолтный sink для использования в pulseaudio следующими командами, подставив параметры вашего устройства:
Скопируйте аудио файл в формате wav на плату Intel Edison, используя scp (Linux) или pscp.exe (Windows) и проиграйте его через mplayer:
Используйте wav файлы, так как могут быть некоторые сложности при проигрывании mp3 файлов.
Если вы получили:
Проверьте, какое устройство у вас подключено:
Удалите устройство, к которому вы подключены (подставьте MAC-адрес вашего устройства):
Другие полезные команды bluetoothctl можно получить так:
При проверке этой статьи у меня возникли некоторые проблемы. Устройство не получалось подсоединить командой connect, не было команды pactl. Плата Edison была прямо из коробки, поэтому всё это решилось перепрошивкой новой версией образа Yocto.
Чтобы перепрошить плату, можно воспользоваться следующей рекомендацией. Я сделал немного по-другому в Windows.
В папке с распакованным архивом Yocto на Windows компьютере запускаем flashall.bat. Возможно, еще понадобится программа dfu-util.exe, которую надо поместить в эту же распакованную папку. Сама программа доступна по ссылке.
Обсуждение dfu-util под Windows и перепрошивку Edison можно найти тут и тут.
Читайте также:
» Практикум «Intel IoT». Edison — могучая «кроха»
Вам понадобятся
- Звуковое Bluetooth устройство, например, наушники или колонки.
- Подключенная к WiFi сети плата Intel Edison. (Смотрите Step 3: Get your Board Online).
- Компьютер с музыкальными wav файлами, расположенный в нашей сетке.
- Установленное терминальное соединение с платой через последовательный порт (Смотрите Set Up WiFi – Intel Edison) или SSH.
Настройка
Включите ваше Bluetooth устройство и сделайте его видимым. Введите следующие команды в терминале:
rfkill unblock bluetooth
bluetoothctl
Просканируйте доступные Bluetooth устройства:
scan on
Найдите ваше устройство и присоединитесь к нему (подставив его MAC адрес):
pair 00:25:DB:05:72:F2
Установите соединение, если необходимо:
connect 00:25:DB:05:72:F2
Закройте программу bluetoothctl:
quit
Проверьте, что ваше A2DP устройство (в нашем случае наушники LG) распознались в pulseaudio как sink-устройство и его имя начинается с bluez_sink
pactl list sinks
Сконфигурируйте дефолтный sink для использования в pulseaudio следующими командами, подставив параметры вашего устройства:
pactl set-default-sink bluez_sink.00_25_DB_05_72_F2
Скопируйте аудио файл в формате wav на плату Intel Edison, используя scp (Linux) или pscp.exe (Windows) и проиграйте его через mplayer:
mplayer Intel_bong.wav2
Используйте wav файлы, так как могут быть некоторые сложности при проигрывании mp3 файлов.
Устранение проблем
Если вы получили:
Failed to pair: org.bluez.Error.AlreadyExists
Проверьте, какое устройство у вас подключено:
paired-devices
Удалите устройство, к которому вы подключены (подставьте MAC-адрес вашего устройства):
remove 78:24:AF:13:58:B9
Другие полезные команды bluetoothctl можно получить так:
help
Дополнительная информация
От переводчика
При проверке этой статьи у меня возникли некоторые проблемы. Устройство не получалось подсоединить командой connect, не было команды pactl. Плата Edison была прямо из коробки, поэтому всё это решилось перепрошивкой новой версией образа Yocto.
Чтобы перепрошить плату, можно воспользоваться следующей рекомендацией. Я сделал немного по-другому в Windows.
В папке с распакованным архивом Yocto на Windows компьютере запускаем flashall.bat. Возможно, еще понадобится программа dfu-util.exe, которую надо поместить в эту же распакованную папку. Сама программа доступна по ссылке.
Обсуждение dfu-util под Windows и перепрошивку Edison можно найти тут и тут.
Читайте также:
» Практикум «Intel IoT». Edison — могучая «кроха»
Комментарии (5)
avstepanov
19.05.2015 21:44+1Есть же aptX (разницу отлично слышно не сильно вооруженным ухом). Только вот вопрос, умеет ли это edison? Надо попробовать.
avstepanov
19.05.2015 22:00Попробовал описаный пример — все заработало сразу.
Проще всего звуковой файл «затянуть» непосредственно из сети, к примеру, так:
wget http://westportconsulting.com/sounds/bell.wav
Но вот качество воспроизводимого звука — ну очень низкое.avstepanov
19.05.2015 22:34Кстати, «глянул» на то, как «выглядит» bluetooth edison:
pi@RPi2 ~ $ sudo hcitool info 98:4F:EE:02:D4:E1 Requesting information ... BD Address: 98:4F:EE:02:D4:E1 Device Name: edison LMP Version: 4.0 (0x6) LMP Subversion: 0x410e Manufacturer: Broadcom Corporation (15) Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <sniff mode> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> <AFH class. slave> <LE support> <3-slot EDR ACL> <5-slot EDR ACL> <sniff subrating> <pause encryption> <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> <LE and BR/EDR> <simple pairing> <encapsulated PDU> <err. data report> <non-flush flag> <LSTO> <inquiry TX power> <EPC> <extended features> Features page 1: 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Features page 2: 0x20 0x08 0x00 0x00 0x00 0x00 0x00 0x00
А вот так - другие устройстваNokia Lumia 1520:
pi@RPi2 ~ $ sudo hcitool info C0:64:C6:4E:4B:1E Requesting information ... BD Address: C0:64:C6:4E:4B:1E Device Name: Lumia 1520 LMP Version: 4.0 (0x6) LMP Subversion: 0x7d3 Manufacturer: Qualcomm (29) Features page 0: 0xff 0xfe 0x8f 0xfe 0xd8 0x3f 0x5b 0x87 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <hold mode> <sniff mode> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> <extended SCO> <AFH cap. slave> <AFH class. slave> <LE support> <3-slot EDR ACL> <5-slot EDR ACL> <sniff subrating> <pause encryption> <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> <extended inquiry> <LE and BR/EDR> <simple pairing> <encapsulated PDU> <non-flush flag> <LSTO> <inquiry TX power> <EPC> <extended features> Features page 1: 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Китайская блютус-колонка:
pi@RPi2 ~ $ sudo hcitool info 30:22:00:00:2D:BB Requesting information ... BD Address: 30:22:00:00:2D:BB Device Name: X3 LMP Version: 3.0 (0x5) LMP Subversion: 0x1f4 Manufacturer: CONWISE Technology Corporation Ltd (66) Features page 0: 0xbf 0x3a 0x85 0xfa 0x88 0x1d 0x59 0x87 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <sniff mode> <RSSI> <SCO link> <HV2 packets> <HV3 packets> <CVSD> <power control> <broadcast encrypt> <EDR ACL 2 Mbps> <enhanced iscan> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> <extended SCO> <AFH cap. slave> <3-slot EDR ACL> <5-slot EDR ACL> <pause encryption> <AFH cap. master> <AFH class. master> <extended inquiry> <simple pairing> <encapsulated PDU> <non-flush flag> <LSTO> <inquiry TX power> <EPC> <extended features> Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Блютус-модуль на базе CSR8645 (поддерживает aptx):
pi@RPi2 ~ $ sudo hcitool info C0:7A:A5:00:9B:4A Requesting information ... BD Address: C0:7A:A5:00:9B:4A Device Name: CSR8645 LMP Version: 4.0 (0x6) LMP Subversion: 0x21c8 Manufacturer: Cambridge Silicon Radio (10) Features page 0: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x59 0x87 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <hold mode> <sniff mode> <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> <AFH class. slave> <3-slot EDR ACL> <5-slot EDR ACL> <sniff subrating> <pause encryption> <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> <simple pairing> <encapsulated PDU> <non-flush flag> <LSTO> <inquiry TX power> <EPC> <extended features> Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Nikobraz
Зачем мне аналог Bluetooth-брелка за 50$?
Другое дело он бы S/PDIF по Bluetooth отдавал.
lorc
А принимать его кто там будет? Нет у bluetooth профилей способных передавать losless звук.