我们的需求
使用 树莓派
和收音机模块来收听FM广播
硬件环境
- 树莓派2B+
我们将使用到树莓派的I2C总线 - TEA5767带天线(四针脚)
不带天线的芯片也大同小异,(通过SDA和SCL来传输数据) -
母对母的杜邦线 x4
TEA5767
软件环境与准备工作
- 打开树莓派的I2C接口
- i2c-tools
- 通过
sudo apt install i2c-tools
安装
安装好后,接上FM模块,执行sudo i2cdetect -y 0
, 能看到模块的i2c总线地址是0x600 1 2 3 4 5 6 7 8 9 a b c d e f
- 通过
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
```
- Python 3
- smbus
- 通过
https://procrastinative.ninja/2014/07/21/smbus-for-python34-on-raspberry/
安装
- 通过
- websocket
- 通过pip安装
- quick2wire
- 通过
https://github.com/quick2wire/quick2wire-python-api.git
来安装
- 通过
- smbus
打开树莓派的I2C接口
sudo raspi-config
打开配置工具后,进入Interfacing Options
=> SPI
=> Enable
TEA5767 控制代码
感谢开源项目https://github.com/LinuxCircle/tea5767
,我们会用到这个文件
https://github.com/LinuxCircle/tea5767/blob/master/tea5767stationscanner.py
将上面的文件下载后放入当前目录,以python自带IDE为准,进入python
$ python
>>> from tea5767stationscanner import tea5767
>>> radio = tea5767()
>>> radio.writeFrequency(91.6, 0, 1) # 收听91.6MHz
当然这么使用有点麻烦,你可以使用下面这个python代码来更方便地控制收音机
from tea5767stationscanner import tea5767
radio = None
def main():
radio = tea5767()
show_welcome()
for frequency in loop():
print('To %s MHz'%frequency)
radio.writeFrequency(frequency, 0, 1)
def loop():
while True:
line = input()
if line == 'quit':
break
else:
try:
line = float(line)
if line < 76.0 or line > 108.0:
raise ValueError()
yield line
show_welcome()
except ValueError:
print('frequency region 76.0 ~ 108.0')
def show_welcome():
print('📻输入[ 76 ~ 108 ],输入quit退出程序')
main()
参考
树莓派gpio图示
确保树莓派2B+(同树莓3)的针脚指向你,并保持在右上角,那么这些针脚代表有着以下的含义
树莓派gpio
网友评论