65.9K
CodeProject 正在变化。 阅读更多。
Home

用 Intel® Edison 主板尽情摇滚

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2015年6月11日

CPOL

4分钟阅读

viewsIcon

7076

本教程旨在解释使用 Intel® Edison 板获取和播放声音的各种方法。

获取新的 Intel® 物联网开发套件,这是一个完整的硬件和软件解决方案,让开发人员能够使用 Intel® Galileo 和 Intel® Edison 板创建激动人心的新解决方案。访问 Intel® 物联网开发者中心

本教程旨在解释使用 Intel® Edison 板获取和播放声音的各种方法。

本教程将只介绍回放方法,因为它们更具交互性,并且可以让 Edison 板表现得像一个已连接的设备。

如果用户想要播放音频文件,他们必须使用通过蓝牙连接的外部 A2DP 播放器。

将介绍以下 3 种方法:

  1. 通过 USB 耳机进行音频回放
  2. 通过 USB 音频设备进行 A2DP 流回放
  3. 将 A2DP 流回放到 A2DP 远程设备

要求

硬件

  • 带有基于 Arduino 的扩展板的 Intel Edison 板
  • USB 音频设备(USB 耳机应该很完美)
  • 用于向板发送音频的 A2DP 设备(例如智能手机)
  • 用于从板播放音频的 A2DP 设备(例如蓝牙扬声器)

软件

或 2015 年及之后发布的映像。

通过 USB 耳机进行音频回放

分步指南

1. 将 SW1(主 USB 和微型 USB 端口之间)移动到最靠近微型 USB 端口的位置,以激活 USB 主机模式。在此模式下,您需要外部电源。

2. 插上您的 USB 耳机。

3. 检查设备是否已正确挂载。

root@edison:~# cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: USB Audio : USB Audio : playback 1 : capture 1

在此示例中,插入了 USB 耳机。您可以看到此 USB 设备连接的录制和播放设备的数量。

root@edison:~# pactl list | grep Name | grep usb
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo.monitor
Name: alsa_input.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-mono
Name: alsa_card.usb-JABRA_Jabra_BIZ_620_USB-00-USB

4. 将 USB 录制设备回放到 USB 播放设备。

可以使用 pulseAudio 模块“module-loopback”来实现音频流回放。

需要根据您的设备名称加载和配置回放模块。

pactl load-module module-loopback source=<name of your source device> sink=<name of sink device>

示例

root@edison:~# pactl load-module module-loopback source=alsa_input.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-mono sink=alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo

5. 对着麦克风说话,并检查耳机端的音频。

通过 USB 音频设备进行 A2DP 流回放

分步指南

1. 将 SW1(主 USB 和微型 USB 端口之间)移动到最靠近微型 USB 端口的位置,以激活 USB 主机模式。在此模式下,您需要外部电源。

2. 插上您的 USB 耳机。

3. 检查设备是否已正确挂载。

root@edison:~# cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: USB Audio : USB Audio : playback 1 : capture 1

在此示例中,插入了 USB 耳机。您可以看到此 USB 设备连接的录制和播放设备的数量。

root@edison:~# pactl list | grep Name | grep usb
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo
Name: alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo.monitor

4. 连接您的 A2DP 播放器设备(例如智能手机),并通过解锁本地 BT 设备检查它是否作为源设备列在 pulseaudio 中。

root@edison:~# rfkill unblock 2

现在发现/信任/配对/连接到您的远程 A2DP 设备,其中 BTADDR 是您的 A2DP 设备的 MAC 地址。

root@edison:~# bluetoothctl
[bluetooth]# scan on
[bluetooth]# trust BTADDR
[bluetooth]# pair BTADDR
[bluetooth]# connect BTADDR
[bluetooth]# scan off
[bluetooth]# exit

检查您的 A2DP 设备是否在 pulse audio 中被识别,并获取设备的源名称(应以“bluez_source”开头)。

root@edison:~# pactl list sources | grep bluez_source
Name: bluez_source.88_C9_D0_51_C6_AE

注意:默认情况下,BT edison 名称为“BlueZ 5.24”,因此该名称可能会出现在您的播放器设备上。请参阅信息以进行修改。

5. 将 A2DP 源设备回放到 USB 播放设备。

root@edison:~# pactl load-module module-loopback source=bluez_source.88_C9_D0_51_C6_AE sink=alsa_output.usb-JABRA_Jabra_BIZ_620_USB-00-USB.analog-stereo

6. 在您的远程设备上播放声音,并检查耳机端的音频。

将 A2DP 流回放到 A2DP 远程设备

分步指南

1. 连接您的 A2DP 播放器设备(例如智能手机)和您的 BT 扬声器,然后检查它们是否列在 pulseaudio 中。

root@edison:~# rfkill unblock 2

现在发现/信任/配对/连接到您的远程 A2DP 设备,其中 BTADDR 是您的 A2DP 设备的 MAC 地址。

root@edison:~# bluetoothctl
[bluetooth]# scan on
[bluetooth]# trust BTADDR
[bluetooth]# pair BTADDR
[bluetooth]# connect BTADDR
[bluetooth]# scan off
[bluetooth]# exit

检查您的 A2DP 设备是否都在 pulse audio 中被识别,然后获取您两个设备的源和接收器名称。

root@edison:~# pactl list | grep bluez
Name: bluez_source.88_C9_D0_51_C6_AE
Name: bluez_sink.00_1D_DF_89_12_8E

注意:默认情况下,BT edison 名称为“BlueZ 5.24”,因此该名称可能会出现在您的播放器设备上。请参阅信息以进行修改。

2. 将 A2DP 源设备(智能手机)回放到 A2DP 接收器设备(BT 扬声器)。

root@edison:~# pactl load-module module-loopback source=bluez_source.88_C9_D0_51_C6_AE sink=bluez_sink.00_1D_DF_89_12_8E

3. 在您的远程设备上播放声音,并检查 BT 扬声器端的音频。

您可以通过修改 /etc/bluetooth/main.conf 来重命名您的蓝牙控制器名称。

取消注释 “[general]”部分中的“Name”属性并设置一个名称。

[general]
...
# %d - substituted for adapter id
# Defaults to 'BlueZ'
Name = Edison

然后重启蓝牙服务并检查控制器名称。

root@edison:~# systemctl restart bluetooth
root@edison:~# bluetoothctl

[新] 控制器 98:4F:EE:02:00:6A Edison [默认]

故障排除

  • 请始终检查以验证蓝牙是已阻止还是已解锁。大多数情况下它是被阻止的,必须解锁才能开始。
  • 适当时参考 FAQ 和支持页面、论坛帖子。

Intel® 物联网开发者中心

立即开始创新!Intel® 物联网开发者计划提供知识、工具、套件以及专家社区,助您快速轻松地将您的创新想法转化为物联网解决方案。

使用 Intel® IoT Developer Kit for Intel® Edison and Intel® Galileo 平台,梦想它,构建它。这些套件是多功能、性能优化且完全集成的端到端物联网解决方案,支持各种编程环境、工具、安全、云连接和硬件。

如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目

© . All rights reserved.