gsm-fm桌面多功能收音机 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 gsm-fm桌面多功能收音机

简介:闲暇之余制作一台桌面收音机。本项目使用ESP32-S3做为主控,FM芯片使用RDA5807,集成CS4344 I2S音频芯片可以播放音频、集成INA199可以采集整机工作电流。交互采用一个旋转编码器。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

已参加:星火计划2024

创建时间: 2024-02-27 17:41:45
更新时间: 2024-02-27 18:36:33
描述

一、项目介绍

闲暇之余制作一台桌面收音机。本项目使用ESP32-S3做为主控,FM芯片使用RDA5807,集成CS4344 I2S音频芯片可以播放音频、集成INA199可以采集整机工作电流。交互采用一个旋转编码器目前已完成功能:

1、 网络时钟。

2、 FM广播。

3、 天气预报。

4、 B站数据统计。

5、 老黄历。

6、 背光调节。

7、 定时关机。

8、温湿度显示。(2023年5月21日更新)

硬件开源地址:https://oshwhub.com/yeshengchengxuyuan/gsm-fm-desktop-multi-function-radio

软件开源地址:https://gitee.com/gsm-fm

视频观看地址:https://www.bilibili.com/video/BV1X24y1J779/?share_source=copy_web&vd_source=d4639a3234ac108fc95036ba5d81874d

食用过程中有疑问可以通过下面联系方式与我联系:
微信:GM8988
QQ:1063503277
复刻群:607741525

注:

  1、作品部分技术来源于网络,由于无法找到原作者不能注名出处,若发现有侵权请与我联系修改。

  2、作品属于作者一人开发、设计、发帖等,若您发现作品有错误之处还望不吝赐教。

二、硬件介绍

2.1 ESP32-S3电路

ESP32-S3主控电路如图1所示,芯片选用内部带8MRAM+外接16M FLAM。

主控

图1 主控

2.2 电源自动切换电路

      电源自动切换电路如图2所示,Q1是一个PMOS管,BAT+是电池,5V是充电器输入,当充电器未接入时Q1导通,BAT+流过Q1给VCC供电,当充电器介入时Q1截至5V流过D1给VCC供电。

图2 电源自动切换电路

2.3 软件开关机电路

  软件开关机电路如图3所示,U1是一个输出为3.3V的稳压芯片,该芯片带有使能功能,即第3(CE)脚,给该引脚输入高电平打开输出输入低电平关闭输入,VCC_KEY是按键脚,一端接到电源(VCC)另一端连接到单片机引脚(KEY_POWER)和U1使能脚电路。

按键开机过程:(在未插入充电时)当按键按下后VCC流过VCC_KEY、D4给CE脚一个高电平使能3.3V输出,此时整个系统得电单片机开始运行,程序首先检测KEY_POWER脚电平,如果该电压为高电平说明是按键开机控制POWER_IO脚输出高电平锁定CE脚电平,这时松开手后由于POWER_IO为高电平会继续使能U1输出。

充电开机过程:(在未按下按键时)插入充电器,此时5V得电经过D3给CE脚高电平使能3.3V输出单片机运行,程序开始检测KEY_POWER电平由于内部配置下拉输入所以识别到为低电平,程序判断案件为按下时运行即充电开机。

关机过程:进入关机功能确认关机后,系统拉低POWER_IO失能3.3输出。

图3开关机与稳压

2.4 USB转串口电路+自动烧录电路

  ESP32-S3支持串口下载,由于电脑没有TTL串口接口,所以需要一个USB转串口芯片,如图4,U7型号是CH340C,该芯片支持一路usb转串口ttl,带有RTS、DTR控制引脚,内部集成晶振大大简化了外部电路。

根据ESP3S3数据手册,进入串口下载模式需要在上电前拉低IO0,上面介绍了CH340C带有RTS、DTR引脚,可以在加入开关控制电路来实现自动复位和拉低IO0,如图5,Q6芯片型号是UMH3N,该芯片内部带有两个三极管并且集成偏置电压,如电路所示利用CH340C的RTS、DTR引脚可以实现自动下载程序。

图4  USB转串口电路

图5 自动下载电路

 

2.5 PCB设计

  整个项目使用一张双层PCB,如图6、图7

 

图6 PCB 背面

 

图7 PCB正面

三、外壳设计

外壳使用Autodesk Fusion 360设计制作。

 

图8 外壳设计

 

3.1屏幕安装

  屏幕通过双面胶贴在PCB上。

 

3.2 PCB安装

  PCB卡在外壳的内壁槽里,通过一颗螺丝固定。

 

图9  PCB安装

3.3 天线安装

  天线通过外壳孔槽插入内部,使用螺丝固定导线到外壳上。

图10 天线安装

3.4 扬声器安装

  扬声器直接卡在外壳槽里。

 

图11 扬声器安装

3.5 电池安装

  电池放在内部空余空间。

图12 电池安装

3.6 外观颜色

  设计好外壳后使用3d打印,然后使用自喷漆更换外壳颜色。

 

图13 外观配色

四、软件部分简介

  硬件电路设计并焊接完成后就可以开始编写代码了,这个项目使用的是乐鑫官方的ESP-IDF5.0。

  代码部分就不全部展开介绍了,需要的朋友可以前往立创开源硬件平台搜索本项目(gsm-fm),项目描述中有完整的带注释的代码,可以自行阅读,下面简单介绍二处:

4.1 开机动画

  开机动画使用的LVGL GIF库,在开发过程中使用VS模拟器可以正常播放,可是移植到ESP32播放开机动画时一直卡死,以为是动画太长原因,把动画剪切成了两部分还是不行,经过多种bug修复,最终使用预加载到PSRAM解决了该问题,具体实现代码如下:

1、定义两个空指针

char *p_gif1 = NULL;

char *p_gif2 = NULL;

2、加载gif

load_gif(&p_gif1,"/spiffs/power_on_gif_01.gif");

load_gif(&p_gif2,"/spiffs/power_on_gif_02.gif");

3、加载过程

bool load_gif(char **p,char *file)

{

    bool r_dat = false;

    long size=0,r_size=0;

    main_debug("加载文件:%s",file);

    FILE* f = fopen(file, "r");

    if (f != NULL)

    {

        main_debug("打开成功");

        size = get_file_size(f);

        main_debug("文件大小:%ld",size);

        *p = malloc(size);

        if(*p != NULL)

        {

            main_debug("内存申请成功");

            r_size = fread(*p, 1, size, f);

            if(r_size == size)

            {

                main_debug("读取成功");

            }

            r_dat = true;

        }else

        {

            main_debug("内存申请失败");

        }

        fclose(f);

    }

    return r_dat;

}

4、使用

lv_gif_create_from_data(lvgl_power_on_data.cont_main, p_gif1);

lv_gif_create_from_data(lvgl_power_on_data.cont_main, p_gif2);

5、使用完释放内存

free(p_gif1);

free(p_gif2);

4.2 修改配置文件

整个系统通过spiffs_image/system/config.json配置文件配置参数,文件内容如下:

{

    "wifi":[

        {

            "name":"name",       //wifi名

            "password":"pin",  //wifi密码

            "auto connect":"true"      //自动连接(暂未使用)

        }

    ],

    "system set":[

        {

            "wifi switch":"on",            //wifi开关 (暂未使用)

            "backlight":50,                 //背光强度

            "language":0,                   //语言

            "bilibili id":"430380301"  //b站数据ID

        }

    ],

    "radio data":[

        {

            "background":1,       //后台播放开关

            "p1":"89.1",              //存台1

            "p2":"93.1",              //存台2

            "p3":"95.7",              //存台3

            "p4":"102.8",             //存台4

            "p5":"104.8"              //存台5

        }

    ],

    "clock data":[

        {

            "type":1,                 //时钟主类型(模拟/数字)

            "style":1                 //时钟样式

        }

    ]

}

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP