|
10| 0
|
[K10项目分享] 行空板K10制作网络收音机 |
|
本帖最后由 topdog 于 2026-6-8 23:26 编辑 行空板K10凭什么做出千元商用网络收音机的声音?这篇文章从物理原理出发,讲清楚传统收音机和网络收音机的本质区别,以及 K10 是怎么做到的。 一、传统收音机:捕捉空气中的电磁波它是怎么工作的? 广播电台把声音信号"骑"到高频载波上——这叫调制。以 FM 为例,声音的强弱变化被转换成载波频率的微小偏移(频偏),然后通过发射塔以几百到几十千瓦的功率广播出去。 收音机这边,一根拉杆天线捕捉到微弱的电磁波,经过选频(选出你要的那个频率)、放大(信号太弱了)、解调(把声音从载波上"卸"下来)、功放(推喇叭),你就听到了声音。 声音 → 调制 → 发射塔 → 电磁波 → 天线接收 → 解调 → 喇叭这条路的天花板在哪?
原理完全不同 网络收音机没有天线——或者说,它的"天线"是 WiFi 模块。它不接收空中电磁波,而是通过 TCP/HTTP 协议从互联网上的流媒体服务器拉取数据。 电台把音频实时编码成 MP3 或 AAC 数据包,服务器通过 CDN 分发。你的设备连上 WiFi 后,向服务器发起 HTTP 请求,服务器持续返回音频数据流,设备边收边解码边播放。 音频源 → MP3/AAC 编码 → 流媒体服务器 → CDN → 互联网 → WiFi → HTTP 拉流 → 解码 → 喇叭质的飞跃
关键差异:传统收音机是模拟广播——信号在传输过程中持续衰减、引入噪声,不可修复。网络收音机是数字传输——数据包有校验、丢包可以重传,到你耳朵之前没有任何质量损失。 硬件架构 K10 板载 ESP32-S3 芯片,集成了:
外围:ILI9341 320×240 彩屏 + XL9535 IO 扩展(按键)+ NS4168 D 类功放 软件数据流WiFi STA 连接路由器 ↓HTTP GET 请求电台流媒体 URL ↓ESP32-audioI2S 库逐块接收 MP3/AAC 数据 ↓软件解码(MP3/AAC/FLAC/OGG 全支持) ↓PCM 原始音频 → I2S 总线(BCLK=0, WS=38, DOUT=45) ↓NS4168 D 类功放 → 喇叭关键技术点双核 FreeRTOS 架构:Core 0 专跑音频任务(audio.loop() 每 10ms 一次,解码 + 喂功放),Core 1 跑 UI(按键、显示刷新、WiFi 事件、Web 服务器)。两个核通过 spinlock 保护共享变量交换命令和状态,互不阻塞——按键永远秒响应,不会因为音频卡住。 ICY 元数据协议:国际电台的流媒体服务器在 MP3 帧间隙插入元数据块,包含当前播放的歌名、艺人。ESP32-audioI2S 库自动解析并通过回调推送,K10 在屏幕上实时滚动显示——传统收音机永远做不到这个。 Web 配网:ESP32-S3 同时启动 AP + STA(APSTA 模式),手机连上 K10 的热点 k10-radio-XXXX,浏览器打开 192.168.4.1 输入WiFi 密码。凭据存入 NVS 闪存,之后开机自动重连。这是从 K10_VLM 项目借鉴的配网模式,无需任何物理按键或串口操作。 纯数字音频链路:从流媒体服务器的 MP3 数据,到ESP32 软件解码,到 I2S 总线,到 D 类功放——整条链路没有一处模拟信号转换。这也是为什么一台不到 200 元开发板的音质能比肩千元级商用网络收音机:数字链路天然零底噪。
2,下载 Internet_Radio_Share.ino.merged.bin(16MB),用 esptool 写入地址0x0: esptool.py --chip esp32s3 --port COM7 --baud 921600 write_flash 0x0 Internet_Radio_Share.ino.merged.bin3,用 ESP FlashDownload Tool(Windows GUI),选ESP32-S3,地址填 0x0。 开机 → 手机连热点 k10-radio-XXXX → 浏览器 192.168.4.1→ 输入 WiFi → 开始听。 ![]() |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed