微型手表式调频收音机
无线电仍然是最持久和最重要的通信设备之一,至今仍具有相关性。它的演变——从大型、笨重的单元到紧凑、便携的形式——是非凡的。该设备进一步推动了这一发展,提供了迄今为止最小的可穿戴和便携式 FM 收音机之一。
已经开发了两个创新版本:一种是手表式可穿戴 FM 收音机,另一种是足够紧凑的耳机。手表风格版本围绕直径仅为 2 厘米的 IndusBoard Coin V3 打造。
它采用 3 厘米 GC9A01 圆形 LCD,带有由 CST816S 触摸驱动器 IC 供电的触摸界面,如图 1 所示。组装设备所需的组件列在物料清单表中。

图 1:作者的类似手表的可穿戴 FM 收音机原型
第二个版本旨在用作直接安装在耳塞内的紧凑型 FM 收音机。此版本的原型将很快在另一篇文章中描述。
这些设计的目标是使 FM 收音机尽可能小巧且可穿戴,无论是集成到耳塞中还是无缝嵌入印度河板后面。为了实现后者,选择了 RDA5807M FM 立体声收音机模块。
本文介绍基于触摸显示屏的紧凑型 FM 收音机的设计。下一篇文章将探讨适合耳塞的第二个版本。
| 物料清单 | ||
| 元件 | 描述 | 数量 |
| IndusBoard 硬币 V2 | 主控制器 | 1 |
| GC9A01圆形液晶显示器 | 直径3cm的触摸屏 | 1 |
| CST816S触摸驱动器IC | 用于嵌入显示屏上的触摸 | 1 |
| RDA5807M FM 立体声收音机模块 | 接收 FM 信号 | 1 |
| 音频插孔/耳塞 | 收听广播 | 1 |
| 3.7V锂聚合物电池 | 便携式电源 | 1 |
编程
首先,必须通过 Arduino 库管理器安装几个基本库,可从工具菜单访问。其中包括:用于管理显示器的“TFT_eSPI”、用于触摸屏控制的“CST816S”、用于 FM 收音机功能的“RDA5807M”以及用于处理时钟功能的“TimeLib”。
图 2:在 TFT_espi 库的 User_Setup.h 文件中显示的配置安装库后,必须配置“TFT_eSPI”库以支持 GC9A01 显示器。这包括导航到“文档”文件夹、打开 Arduino 目录、访问“库”文件夹以及在其中找到“TFT_eSPI”文件夹。在其中,必须打开“User_Setup.h”文件,并且与 GC9A01 显示相对应的行应取消注释。然后必须配置 SPI 引脚以匹配 IndusBoard 上的设置。
可以使用板上的任何可用引脚。在这种情况下,引脚 21、1、3、4、5、6、7、8 和 9 用于显示和触摸界面。这些引脚定义应正确反映在代码中。图 2 显示了 'TFT_eSPI' 库的 'User_Setup.h' 文件中的显示配置。
图 3:用于设置触摸驱动器引脚的代码片段在源代码中,首先包含所需的库,然后是触摸屏驱动程序的设置。然后为 FM 收音机创建一个基本的用户界面 (UI),其中包含三个按钮:播放/暂停和两个用于更改频道的按钮。
该代码监控触摸坐标以识别按下了哪个按钮并执行相应的作,例如更改 FM 频率或切换播放和暂停。
电路和工作
图5为微型调频设备的电路图。它围绕 GC9A01 (MOD1)、IndusBoard Coin V2 (MOD2)、CST816 触摸屏、立体声收音机模块 RDA5807M FM、两个扬声器(SP1 和 SP2)、一个 3.7V 锂聚合物电池和其他一些组件构建。
图5:电路图触摸显示屏和 FM 收音机都利用 I²C 协议进行通信,允许它们连接到 IndusBoard Coin 上的同一 I²C 端口或单独的端口。为简单起见,此设置中使用了不同的端口。触摸显示器的 SDA 和 SCL 引脚在代码中定义并相应地连接,如电路所示。触摸驱动器使用硬件 I²C 引脚 8 和 9。显示器本身使用 SPI 并连接到 IndusBoard 的 SPI 引脚,如前面的“UserSetup”文件中所定义。
IndusBoard Coin V2 通过 VIN 或 3V 引脚提供 3.3V 电源,为 GC9A01 显示器、CST816S触摸控制器和 FM 收音机模块供电RDA5807M。所有组件共享一个公共接地 (GND),以确保正常运行。
建设
对于 FM 音频输出,音频插孔或扬声器可以连接到扬声器音频输出引脚。建议使用音频插孔,以便根据需要使用耳机或扬声器。在该设备中,使用了带有内置放大器的扬声器。两个扬声器(SP1 和 SP2)都连接到RDA5807M的 LOUT 和 ROUT 引脚以提供立体声音频输出。
为了组装这款紧凑型可穿戴 FM 设备,将组件焊接到 IndusBoard Coin V2 的背面,而 GC9A01 显示屏安装在电路板顶部以实现清晰的可见性。
焊接过程从准备 IndusBoard Coin V2 开始。使用带标签的图来识别所需的引脚。其中包括 3V、GND、TX、RX 等引脚和数字引脚 1 至 44。应清洁电路板以避免焊接问题。
RDA5807M FM 模块和CST816S触摸控制器焊接在电路板背面以节省空间。
对于 RDA5807M FM 模块,引脚 5 (SCLK) 连接到 IndusBoard 引脚 5 (SCL),而引脚 4 (SDIO) 连接到引脚 6 (SDA)。引脚 2 (GND) 连接到任何可用的接地引脚,例如引脚 1,引脚 7 (VDD) 连接到 3V 引脚,例如引脚 2。引脚 9 (LOUT) 和 10 (ROUT) 直接焊接到扬声器(SP1 和 SP2)以实现立体声音频输出。一根小天线连接到引脚 3 (FMIN) 并固定到位,以确保有效的信号接收。
对于CST816S触摸控制器,引脚 6 (SCL) 焊接到 IndusBoard 引脚 5,引脚 5 (SDA) 连接到引脚 6,与 FM 模块共享 I²C 总线。引脚 4 (RST) 连接到引脚 4,引脚 3 (INT) 连接到 IndusBoard 上的引脚 3。通过将引脚 2 (GND) 连接到接地引脚,将引脚 1 (VDD) 连接到 3V 引脚来提供接地和电源。图6显示了用IndusBoard焊接的组件。
图 6:用 IndusBoard 焊接的组件FPC集成
IndusBoard Coin 还支持并托管自己的 FPC 生态系统。定制模块可以设计为使用 FPC 总线无缝集成。例如,可以开发定制的 FM 收音机模块,通过 FPC 连接器连接到 IndusBoard Coin。图7为项目的双面PCB,图8为带有FPC连接器的IndusBoard。
图7:器件的PCB测试
要测试设备,请使用 3.3V 电池为其供电并执行以下检查:
图 4:FM 收音机用户界面使用按钮更改 FM 电台
界面显示三个触摸感应按钮:
• 上一个按钮(左,坐标 prevButtonX=60,prevButtonY=150):带有左三角形和细矩形的灰色圆圈
• 下一个按钮(右,在坐标 nextButtonX=180、nextButtonY=150 处):带有直角三角形和细矩形的灰色圆圈
• 测试上一个按钮:
– 点击此按钮可将频率降低 0.1MHz(例如ample,从 87.5MHz 到 87.4MHz)
– 如果频率低于 87.5MHz,则环绕至 108.0MHz
– 显示屏更新以显示新频率(例如ample,“87.4MHz”)
• 测试下一个按钮:
– 点击此按钮可将频率提高 0.1MHz(例如ample,从 87.4MHz 到 87.5MHz)
– 如果频率超过 108.0MHz,则环绕至 87.5MHz
– 显示相应更新
使用中间按钮播放和暂停
中间按钮是播放/暂停按钮(坐标“playPauseButtonX=120”、“playPauseButtonY=150”),半径为 30 像素,具有渐变化效(洋红色外环,紫色内环)。
• 测试播放:
– 点击播放/暂停按钮。
– 如果收音机暂停 ('isPlaying=false'),则按钮会显示播放图标(三角形)。点击它会取消RDA5807M静音并将图标更改为暂停符号(两个矩形)。
– 如果收音机正在播放 ('isPlaying=true'),则该按钮会显示暂停图标。点击它会使RDA5807M静音并将图标更改为播放符号。
• 音频输出:
– 如果检测到RDA5807M(由绿色状态点指示),则当收音机取消静音时,应通过连接到RDA5807M的 LOUT/ROUT 引脚的扬声器听到音频。
– 使用上一个/下一个按钮调谐到已知的 FM 电台(87.5 到 108.0MHz 之间)以获得清晰的音频输出。
– 如果未检测到RDA5807M(由红色状态点表示),设备将切换到模拟模式,更新 UI 而不生成音频。
图 8:带有 FPC 连接器的 IndusBoard调试和其他检查
• 使用串行监视器:
– 通过 USB 转串行适配器将 IndusBoard 连接到计算机(使用 TX/RX 引脚,如果可用)。
– 检查“检测到RDA5807M”或“未检测到RDA5807M,在模拟模式下运行”等消息,以确认无线电模块的状态。
– 点击按钮时监控触摸坐标(如“检测到触摸 – 原始 (x, y):(1234, 567) 映射 (x, y):(89, 234)”)。
• 触摸精度:
– 如果触摸按钮无响应或不准确,请相应地调整代码中的坐标映射。






评论