继续,然后将SD卡插入读卡器。对于此设置,我们将使用Raspbian Wheezy,它是撰写本文时针对PI的最新的基于Debian的操作系统。您应该可以在这里找到最新版本:
http://www.raspberrypi.org/downloads
下载并解压缩图像文件并记下位置。如果您使用的是Mac,则将图像刻录到SD卡上应该很简单。但是,如果您是Windows用户,请继续使用此实用程序将IMG文件“刻录”到SD卡。
http://sourceforge.net/projects/win32diskimager/
请确保选择正确的文件和正确的驱动器号,然后按WRITE按钮,否则您可能会发生一些讨厌的事情。 :(
步骤2:通过监视器/键盘或网络SSH登录到PI
您的PI必须是此时,无论是通过LAN还是WiFi连接到Internet,我都不会介绍如何将您的PI连接到WiFi或从SSH登录; Google是您的朋友!
否则,请使用键盘和显示器并以旧的方式设置PI!
注意:确保从此处插入蓝牙加密狗。
注意:默认登录名是 pi ,密码是 raspberry 。
第3步:安装必备软件包
好吧,现在我们都已登录,已连接到Internet,并准备开始安装所有软件包,以便可以在您的PI上使用蓝牙。
sudo apt-get upgrade
sudo apt-get install bluez pulseaudio-module-bluetooth python-gobject python-gobject-2 bluez-tools
步骤4:修改一些配置文件以启用蓝牙环境
首先,让我们继续将用户pi添加到Pulse音频组中,以便我们用户可以通过它播放音频。
sudo usermod –a –G lp pi
现在,让我们继续并在我们的蓝牙配置中启用A2DP。运行以下命令:
sudo nano/etc/bluetooth/audio.conf
这将打开带有该配置文件的文本编辑器。在[常规]下添加以下文本:
Enable = Source,Sink,Media,Socket
按CTRL + O和ENTER保存,然后按CTRL + X退出nano。接下来,让我们修改Pulse守护程序配置文件以更改其重采样方法。
sudo nano/etc/pulse/daemon.conf
查找以下行: resample-method = speex-float-3
如果该行没有;在它前面,请放一个;那里看起来像:
; resample-method = speex-float-3
,然后在其下添加以下行。
resample-method =平凡
在继续之前,让我们继续并重新命名我们的蓝牙设备(奇怪的是您不希望名称为 raspberry-pi0 ),并将蓝牙类设备从“计算机”重新定义为“便携式音频设备”。您应该修改两个位置。
sudo nano/etc/bluetooth/main.conf
更改Name参数。我选择在BeatsByDre上播放。
名称= BeatsByDan
更改设备的Class参数。
Class 0x20041C
接下来,您必须修改配置您的特定设备。目录基于您的蓝牙设备的MAC地址,因此在键入时单击TAB即可找到您的目录。
sudo nano/var/lib/bluetooth//config
再次编辑name指令。
name BeatsByDan
设备类。..
class0x20041C
继续保存并退出。
步骤5:设置当蓝牙设备连接时执行的脚本
现在我们已经设置了蓝牙环境,让我们继续开始为我们自动执行蓝牙连接并将其路由到音频的过程。首先让我们在udev中设置一条规则,该规则指出只要连接设备,脚本就会执行。运行以下命令以打开udev规则列表。
sudo nano/etc/udev/rules.d/99-input.rules
这里应该只有一行看起来像:
SUBSYSTEM ==“ input”,GROUP =“ input”,MODE =“ 0660”
在其下方,让我们继续添加以下行:
KERNEL ==“ input [0-9] *”,RUN + =“/usr/lib/udev/bluetooth”
保存并退出。
现在,让我们实际保存上述规则的脚本文件正在引用。首先检查是否存在udev/目录。做sudo ls –la/usr/lib/udev 。如果不存在,请像下面这样创建它: sudo mkdir/usr/lib/udev
sudo nano/usr/lib/udev/bluetooth
将以下脚本复制并粘贴(或在运气不佳时将其键入)到您的终端中。
注意:我并不是一个人写这个脚本。我在研究过程中发现了它(为什么不重新发明轮子),并对其进行了修改,使其以我需要的方式工作,从而尽可能地友好,蓝牙。
#!/bin/bash
#change,如果您不使用默认的模拟音频输出。
#THIS不适用于我的PI,所以我在下面添加了一个混音器命令
AUDIOSINK =“ alsa_output.platform-bcm2835_AUD0.0.analog -stereo“
echo”正在执行蓝牙脚本。.. | $ ACTION |“ 》》/var/log/bluetooth_dev
ACTION = $(expr“ $ ACTION”:“ ([a-zA-Z] + )。*”)
if [“ $ ACTION” =“添加“]
然后
##在将现有BT设备连接到音频之前关闭BT发现模式 hciconfig hci0 noscan
#将音频输出设置为模拟
#评论此行如果您想通过HDMI输出音频
axer cset numid = 3 1
#将音量级别设置为100%
axer set master 100% pacmd set-sink-volume 0在$ {find/sys/devices/virtual/input/-name input *)中找到dev的65537
如果[-f“ $ dev/name”]
then
mac = $(cat“ $ dev/name” | sed‘s/:/_/g’)
bluez_dev = bluez_source。$ mac
sleep 1
CONFIRM =`sudo -u pi pactl列表简短| grep $ bluez_dev`
如果[! -z“ $ CONFIRM”]
然后
echo“将bluez_source设置为:$ bluez_dev” 》》/var/log/bluetooth_dev
echo pactl load-module module-loopback source = $ bluez_dev sink = $ AUDIOSINK rate = 44100 Adjust_time = 0 》》/var/log/bluetooth_dev
sudo -u pi pactl load-module module-loopback source = $ bluez_dev sink = $ AUDIOSINK rate = 44100 Adjust_time = 0 》》/var/log/bluetooth_dev
fi
fi
完成后
fi
如果[“ $ ACTION” =“ remove”]
然后
#如果设备断开连接,则打开蓝牙发现
sudo hciconfig hci0 piscan
fi
保存并退出!现在,让我们修改文件的权限以使其可执行。
sudo chmod 774/usr/lib/udev/bluetooth
太好了!您的Raspberry PI现在可以通过A2DP播放蓝牙音频!喔!现在让我们更进一步,当PI自动登录到命令行时,打开发现模式并立即自动接受连接。
步骤6:自动化蓝牙发现和自动接受连接
为实现此目的,我们需要创建一个初始化脚本,该脚本将在启动PI时执行。开始吧!
sudo nano/etc/init.d/bluetooth-agent
继续,然后将此脚本复制到文本编辑器中。再次,我最初找到了该脚本,然后对其进行了改进以满足自己的需求!
### BEGIN INIT INFO
#提供:bluetooth-agent
#必选开始:$ remote_fs $ syslog bluetooth pulseaudio
#必选-停止:$ remote_fs $ syslog
#默认-开始:2 3 4 5
#Default-Stop:0 1 6
#简短描述:使Bluetooth可以发现并连接到0000
#说明:在启动时启动Bluetooth-Agent。
### END INIT INFO
#!/bin/sh
#/etc/init.d/bluetooth-agent
USER = root
HOME =/root
export USER HOME 案例“ $ 1”在
开始)
echo“设置可发现的蓝牙”
sudo hciconfig hci0 piscan
start-stop-daemon -S -x/usr/bin/bluetooth-agent -c pi -b-0000 “ echo”蓝牙-agent startet pw:0000“
;;
stop)
echo”停止蓝牙代理“
start-stop-daemon -K -x/usr/bin/bluetooth-agent
;;
*)
echo“用法:/etc/init.d/bluetooth-agent {start | stop}”
退出1
;; esac
退出0
保存并退出nano。此脚本基本上只是用于发现蓝牙的标准启动/停止脚本。
继续并授予脚本执行权限,然后将其添加到启动时启动的程序列表中-up。
sudo chmod 755/etc/init.d/bluetooth-agent
sudo update-rc.d蓝牙代理默认值
第7步:设置命令行以自动登录
一切都差不多了。出于某种原因,除非您登录控制台,否则Pulse音频将无法使流保持直播!瘸!我们想要一个无头自动设置,对吗?好吧,让我们调整环境,以便在引导时进行无密码登录!
现在就编辑inittab。
sudo nano/etc/inittab
查找以下行:
1:2345:respawn:/sbin/getty 115200 tty1
并注释掉它,就像这样:
#1:2345:respawn:/sbin/getty 115200 tty1
现在在其下面添加此行:
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2》&1
保存并退出nano。最后,重启Raspbery Pi!
sudo reboot
步骤8:结论
如果您正确执行了所有操作,则现在应该有了一个很棒的A2DP蓝牙接收器,可以从模拟声音插孔播放音频。您现在可以轻松地无线添加电池, GIANT 扬声器和 PARTY ! :)
创建便携式音频系统
我将不涉及将Pi便携式化的实际过程。我假设,如果您足够聪明,可以找到本教程的方法,那么您也足够聪明,可以创建一个机箱,获取电池并弄清楚您的扬声器尺寸需求。 =]
我在开发软件组件时亲自使用了上图中的设备作为测试。我正在为我的系统安装一个尺寸相当大的后置汽车扬声器,一个放大器和一个大电池组。我还在建立一个自定义的外壳来容纳所有内容。我将只为该系统购买一个Pi,然后拧入外壳的内部。
对于外壳本身,我尚未决定是用木头还是塑料甚至是3D打印选择。如果有人想出任何有价值的东西,请在下面的评论部分中发布图片。谢谢!我欢迎对本指南提出任何建议或改进。请给我发送电子邮件danielg@danielgillespie.net。
关于,
Daniel Gillespie
注意:您应该拔下其他USB设备,以便仅使用蓝牙适配器(除非您这样做)。有一个有源的USB集线器)。如果您通过蓝牙看到Raspberry Pi,但无法成功配对,则可能是原因。您的适配器可能有足够的功能来工作,但没有足够的功能。
注意:iOS设备似乎从一开始就可以很好地连接到接收器,但是我见过一些Android设备设备有一点麻烦。如果您使用的是Android智能手机,但连接后没有通过接收器播放音频,请尝试取消配对并再次配对。
最后的提示:一次只能连接一个设备,然后断开连接,然后再尝试连接另一台设备。应该完美地工作。 :]
如果您找到本指南,请让我知道!另外,请查看我的iPhone应用程序CalcMate:
https://itunes.apple.com/us/app/calcmate/id538650487?mt=8
故障排除
在如果蓝牙设备可能无法正确连接,则可以使用以下命令实时查看何时从Pulse音频系统添加/删除蓝牙设备:
tail -f/var/log/bluetooth_dev
-
音频
+关注
关注
29文章
2884浏览量
81657 -
蓝牙
+关注
关注
114文章
5834浏览量
170602 -
树莓派
+关注
关注
117文章
1709浏览量
105716
发布评论请先 登录
相关推荐
评论