
ESP32多功能桌面掌机
简介
ESP32S3多功能桌面掌机
简介:ESP32S3多功能桌面掌机开源协议
:MIT License
描述
视频链接:
项目简介
基于ESP32S3和ESPIDF编译环境的多功能桌面掌机,使用LVGL开发UI,具有拍照、MP3音乐播放器、照片查看删除、图传、NES游戏机、桌面天气日历等功能,是学习ESP32的绝佳项目。
特别说明:硬件基本参考立创实战派S3,软件部分参考立创实战派S3,感谢立创平台的支持,此项目主要用于学习ESP32单片机使用,本人为业余电子爱好者,没有上过任何的专业课,如有错误请指出,本人必定改进。
项目功能
拍照:摄像头使用OV3660(OV2640小贵,3660便宜好用像素高推荐),分辨率设置为320*240,适配LCD的分辨率,照片格式为JPEG了,照片存储到SD卡camera文件夹中,以image1.image2....格式命名(保存前会查找空缺序号,然后填充),照片数量超过100以后会循环覆盖。
MP3播放器:该功能全部参考立创实战派S3代码,详细教程可以去立创官网,这里有一处BUG:音乐列表中,每一首.mp3后面有一个乱码符号,还未找到解决办法。
相册:这个页面会查找SD卡中的所有文件(基于实战派),在camera中可以查看刚刚拍摄的照片,可以向上、向下、删除照片。
图传:该功能还需要一块带有摄像头的ESP32板子,图传协议为UDP,掌机为客户端,图传帧率可达15桢,最高16桢,图像分辨率320*240(方便适配LCD,),格式为JPEG,分包发送,此功能主要用于验证ESP到ESP图传的可行性,等P4量产后可移植到P4,帧率肯定会提高(P4带硬解JPEG),后面准备用于作侦察小车、图传小车。
NES游戏机:作为一款号称多功能掌机的小玩意儿,NES游戏肯定是必不可少的,该页面可以选择童年的游戏,回味儿时的时光。这一部分在移植的时候,是我花费最多时间的地方(2个月,菜狗啊),还有两个小BUG,一是游戏较卡(加载了LVGL,如不用LVGL是很流畅的,LVGL需要开全屏缓存,但ESP32的RAM有限),二是在游戏中不能连发子弹,但是可以连着移动。如有有大佬可以解决这两个BUG就非常完美了。
天气日历:这一功能主要是移植实战派的,详情可以去实战派官网学习了解,但还是有一个地方可以优化,在创建不同任务的时候,可以先等第一个任务完成以后再创建第二个任务,以此类推,因为这里需要联网获取天气信息,是需要很大的堆栈。如一起创建会导致ESP32内部RAM不够,如果将堆栈申请到外部PSRAM会与FLASH访问冲突。
原理解析(硬件说明)
- 主控:ESP32S3N16R8,也可使用N8R8,一定需要8M的PSRAM。
- LCD屏幕:尺寸2.4寸(主要是为了可以白嫖PCB,后面会再做一个3.5寸的版本),分辨率320*240,驱动ST7789
- 音频采集:ES7210,本次项目还未使用该功能,不过可以刷小智固件,固件可以去实战派官网下载。
- 音频解码:ES8311+NS4150B+2030的腔体喇叭。
- 摄像头:OV3360,像素300W,比OV2640便宜好用。
- 其他:SD卡+ADC按键+聚合物锂电池,所有阻容均使用0603封装,可以简单愉快的焊接,外壳为3D打印,组装超级简单。
软件代码
编译环境使用ESPIDF5.2,B站有很多搭建教程,一个大佬说的很好,一切的困难均源于对未知世界的恐慌,期望有一路同行的伙伴,代码会挂到Gitee,当然可以移植到Arduino上面,因为Arduino也是调用的ESPIDF。
技术交流
- QQ交流群:1044245847(备注:ESP32S3多功能掌机)
写在最后
本项目开源的初衷是为了能找到志同道合的小伙伴,一起学习一起交流,再次说明:本人为非专业人士,没有任何专业知识,均源于热爱,大佬可以无视,希望有很多小伙伴加入进来,一起修改完善该项目。
设计图

BOM


评论