[项目]树莓派无线收音机 精华

14045浏览
查看: 14045|回复: 8

[项目] 树莓派无线收音机

[复制链接]

本次分享项目为树莓派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
FriNovember-202011139477..png
FriNovember-202011134970..png
FriNovember-202011133288..png

安卓机器人  中级技神

发表于 2020-11-15 20:20:50

好详细,支持
回复

使用道具 举报

RRoy  超级版主

发表于 2020-11-18 11:04:44

github是个好网站,里面有趣的东西太多了
回复

使用道具 举报

kevinzhang19701  高级技匠

发表于 2020-11-19 09:19:45

有趣,要顶
回复

使用道具 举报

LittleQiu  学徒

发表于 2021-2-24 16:54:50

本帖最后由 LittleQiu 于 2021-2-24 18:48 编辑

树莓派无线收音机图1
谢谢楼主的教程,不过最后一步报错如图,步骤应该没有问题,请问是什么原因呢============================================
查到原因了,看了下i2c.py的注释,
树莓派无线收音机图2
默认为i2c-0,因此需要手动传参,
tea5767stationscanner.py
内的
i2clib.I2CMaster( )
数值改为
i2clib.I2CMaster(1)
即可正常运行了

回复

使用道具 举报

Glacier  学徒

发表于 2021-4-27 15:47:56

想问问安装了websocket 还是报错显示No module named ‘websocket’怎么处理呀
回复

使用道具 举报

gray6666  初级技神
 楼主|

发表于 2021-4-28 08:20:48

Glacier 发表于 2021-4-27 15:47
想问问安装了websocket 还是报错显示No module named ‘websocket’怎么处理呀

pip3 install websocket
回复

使用道具 举报

gray6666  初级技神
 楼主|

发表于 2021-4-28 09:29:14

Glacier 发表于 2021-4-27 15:47
想问问安装了websocket 还是报错显示No module named ‘websocket’怎么处理呀

建立个虚拟环境试试
回复

使用道具 举报

Glacier  学徒

发表于 2021-4-28 12:58:43

本帖最后由 Glacier 于 2021-4-28 13:00 编辑

好了,谢谢呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail