[scode type=“red”]本文仅供学习与交流,请遵守当地法律。[/scode]
初
相比于淘宝上的那些几毫瓦功率的fm发射器,树莓派的GPIO口功率还是蛮大的!
看如果加上一节70cm的杜邦线,范围可以达到100m!
运行频率为0~250Mhz。
主要原理
- 变化的磁场能够在周围空间产生电场,变化的电场能够在周围空间产生磁场。
- 随时间均匀变化的磁场(电场)产生稳定电场(磁场)。随时间不均匀变化的磁场(电场)产生变化的电场(磁场)。
- 变化的电场和变化的磁场总是相互关系着,形成一个不可分割的统一体,这就是电磁场。
随时间变化的电场产生磁场,而随时间变化的磁场又产生电场,两者互为因果。这种不断转化的场统称为电磁场。这种相互的转化形成电磁振荡。
所以如果在树莓派的 GPIO 上,通过软件控制以一定频率输出高低电平(0/1),再加上适当长度的天线(一根杜邦线即可)就可以将能量以电磁波的形式发射出去。
于是,Oliver Mattos和Oskar Weigl开发了一个能将 16bit wav 的音乐文件转化为二进制并以电磁波形式发射的项目。
可以注意到,这里只能使用WAV格式文件,并且WAV文件必须是16 bit 22.5kHz Mono格式的。
为此,ma6157通过mpg123这个软件进行解码,解码之后输出到终端上,这时就已经转换成wav格式了。然后树莓派的pifm程序设置成从终端读取音频,这样再通过一个管道将两个程序连起来,就能实现一边解码一边播放了。
这是一个不错的项目,不过因为时间长了,大部分代码已经失效。
提了issue之后原作者删除了关于根据歌名,自动前往搜狗提取直链的代码。
只保留了通过访问 http://0.0.0.0:8080 自行输入音乐链接
然而……web服务器似乎仍然有一些问题,比如在输入音乐链接后cpu飙到100%,无法播放音乐等一系列问题……
so……~笔者删除了关于web服务器方面的的所有代码~(还是没删,只是在start.sh里更改了引导),使它只能根据list.py的歌单播放本地音乐。
先使用setup.sh安装依赖再使用start.sh启动fm即可~
音乐文件在list.py中修改目录和mp3文件名称。
始
整体还是比较简单的,首先下载源代码。
|
|
解压。
|
|
进入文件夹。
|
|
首先运行setup.sh安装依赖。
|
|