用 Intel® Edison 主板尽情摇滚
本教程旨在解释使用 Intel® Edison 板获取和播放声音的各种方法。
获取新的 Intel® 物联网开发套件,这是一个完整的硬件和软件解决方案,让开发人员能够使用 Intel® Galileo 和 Intel® Edison 板创建激动人心的新解决方案。访问 Intel® 物联网开发者中心。
本教程旨在解释使用 Intel® Edison 板获取和播放声音的各种方法。
本教程将只介绍回放方法,因为它们更具交互性,并且可以让 Edison 板表现得像一个已连接的设备。
如果用户想要播放音频文件,他们必须使用通过蓝牙连接的外部 A2DP 播放器。
将介绍以下 3 种方法:
- 通过 USB 耳机进行音频回放
- 通过 USB 音频设备进行 A2DP 流回放
- 将 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® IoT Developer Kit for Intel® Edison and Intel® Galileo 平台,梦想它,构建它。这些套件是多功能、性能优化且完全集成的端到端物联网解决方案,支持各种编程环境、工具、安全、云连接和硬件。
如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目
- 下载 Intel® 物联网开发者套件
- 访问 Intel® 物联网开发者中心
- 参加我们的 Roadshows,获取创建您自己的物联网项目的实践培训