树莓派无线收音机

2020-11-151.8万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用树莓派4和TEA5767模块制作无线收音机。硬件清单包括树莓派4、TEA5767模块、小音箱和杜邦线。最终效果是能够接收87.6MHz~108MHz频段的FM广播。难度等级适中,适合零基础新手。

本次分享项目为树莓派4+TEA5767模块的无线收音机。

特别感谢github的前辈们,附项目地址 https://github.com/LinuxCircle/tea5767

树莓派无线收音机图16

疯狂的双十一期间,淘到个有趣的模块TEA5767。

模块参数:
TEA5767是飞利浦公司生产的一款收音机芯片,很多手机,MP3、MP4里的收音机功能都是用它实现的。
高灵敏、低噪声高频放大器,
收音频率:87.6MHz~108MHz
LC 调谐振荡器使成本更低,RF AGC 电路
内置调频中频选择 ,I2C 总线控制
内置FM 立体声解调器 ,PLL 合成调谐解码器
两个可编程端口 ,软静音,SNC(立体声噪声消除)
自适应立体声解码,自动搜索功能
等待模式,需要一个7.6MHz晶体
40 脚LQFP 封装

焊工水平不行,所以直接买了焊接好的模块

树莓派无线收音机图15
一、硬件准备
树莓派*1
收音机模块*1
小音箱*1
杜邦线4根

1.收音机模块连接树莓派的5V,GND,SDA,SCL口
树莓派无线收音机图13



2.收音机模块连接天线和音响

3.总体效果


二、前期准备,安装各种模块
1.安装i2c工具和smbus,并开启树莓派i2c接口
    系统管理总线(SMBus)是一个两线接口。通过它,各设备之间以及设备与系统的其他部分之间可以互相通信。它基于I2C操作原理。SMBus为系统和电源管理相关的任务提供一条控制总线。一个系统利用SMBus可以和多个设备互传信息,而不需使用独立的控制线路。
系统管理总线(SMBus)标准涉及三类设备。从设备,接收或响应命令的设备。主设备,用来发布命令,产生时钟和终止发送的设备。主机,是一种专用的主设备,它提供与系统CPU的主接口。主机必须具有主-从机功能,并且必须支持SMBus通报协议。在一个系统里只允许有一个主机。

参考安装代码:

sudo apt install i2c-tools sudo apt-get install i2c-tools python-smbus

打开树莓派的I2C接口i2c-tools,查看i2c库是否安装好
代码 :sudo i2cdetect -l

扫描、查看i2c地址:
代码:sudo i2cdetect -y
收音机模块的i2c总线地址是0x60
树莓派无线收音机图8

2.安装websockets和websocket-server模块

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
代码:pip3 install websockets
树莓派无线收音机图3

安装websocket-server
代码:pip3 install --user websocket-server
树莓派无线收音机图10

3.安装quick2wire库(quick2wire-gpio-admin和quick2wire-python-api)

quick2wire是树莓派上用于i2c通信的一个python库,可以方便的使用非root用户进行gpio引脚的读写操作。
树莓派无线收音机图6
quick2wire-gpio-admin代码:
(wget速度慢,建议用后面的git clone安装)wget https://github.com/quick2wire/qu ... /archive/master.zip
git clone https://github.com/quick2wire/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin
make
sudo make install
树莓派无线收音机图7

安装quick2wire-python-api
git clone https://github.com/quick2wire/quick2wire-python-api.git
cd quick2wire-python-api
sudo python3 setup.py install (此处需注意sudo 否则会报错)
树莓派无线收音机图4

树莓派无线收音机图5



4.安装tea5767
git clone https://github.com/LinuxCircle/tea5767
树莓派无线收音机图1

进入tea5767目录
cd tea5767
树莓派无线收音机图2

三、示例三种运行程序方法

1.python3 交互命令测试收音机代码:
python3
from tea5767stationscanner import tea5767
radio = tea5767()
radio.writeFrequency(103.1, 0, 1)
树莓派无线收音机图9

2.在Linux命令控制台上运行:
代码:
cd tea5767
python3 tea5767controller.py
树莓派无线收音机图12

3.测试运行Web控制界面
运行代码:
python3 tea5767_tornado_server.py

启动网页服务端服务
树莓派无线收音机图11


打开谷歌浏览器:http:// 树莓派IP:8888
http://192.168.13.196:8888
树莓派无线收音机图14

四、运行效果



FriNovember-202011133876..png (49.64 KB, 下载次数: 4878)

树莓派4 · TEA5767模块无线收音机_image_3.webp

FriNovember-202011139477..png (75.72 KB, 下载次数: 4950)

树莓派4 · TEA5767模块无线收音机_image_6.webp

FriNovember-202011134970..png (76.55 KB, 下载次数: 4932)

树莓派4 · TEA5767模块无线收音机_image_9.webp

FriNovember-202011133288..png (47.8 KB, 下载次数: 5007)

树莓派4 · TEA5767模块无线收音机_image_12.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(6)
Glacier
Glacier
好了,谢谢呀
Glacier
Glacier
想问问安装了websocket 还是报错显示No module named ‘websocket’怎么处理呀
gray6666
gray6666
作者
回复Glacier
建立个虚拟环境试试
gray6666
gray6666
作者
回复Glacier
pip3 install websocket
LittleQiu
LittleQiu

谢谢楼主的教程,不过最后一步报错如图,步骤应该没有问题,请问是什么原因呢============================================
查到原因了,看了下i2c.py的注释,

默认为i2c-0,因此需要手动传参,
tea5767stationscanner.py
内的
i2clib.I2CMaster( )
数值改为
i2clib.I2CMaster(1)
即可正常运行了
kevinzhang19701
kevinzhang19701
有趣,要顶
RRoy
RRoy
github是个好网站,里面有趣的东西太多了
许培享
许培享
好详细,支持
- 没有更多了 -