# Poki_for_Holo **Repository Path**: sofungo/poki_for_holo ## Basic Information - **Project Name**: Poki_for_Holo - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-11-30 - **Last Updated**: 2021-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Poki for Holo qq群:491676636 ### 介绍以及引用开源库 基于面向对象思想开发的HoloCubic Arduino固件Poki for Holo,软硬件解耦,可以在此基础上二次开发和增删app或将软件架构部分移植到其他硬件方案平台。 原作者链接: https://gitee.com/peng_zhihui/HoloCubic Little VGL图形库(7.11.0): https://github.com/lvgl/lvgl/tree/release/v7 TFT显示屏驱动: https://github.com/Bodmer/TFT_eSPI JPEG解码库: https://github.com/Bodmer/TJpg_Decoder FTP库(需将SDMMC修改为SPI方式读取SD卡): https://github.com/fa1ke5/ESP32_FTPServer_SD_MMC AIO框架库(纯C): https://github.com/ClimbSnail/HoloCubic_AIO 其他工具链接: Arduino IDE: https://www.arduino.cc/en/software Python(Windows, 3.9.7): https://www.python.org/downloads/release/python-397/ LVGL图片转换工具(第三方): https://github.com/zhangjingxun12/Lvgl_image_convert_tool ESP32 官方烧录工具(Windows): https://www.espressif.com/zh-hans/support/download/other-tools 外部字体转换(官方): https://lvgl.io/tools/fontconverter 文件传输工具WinFTP Pro (Win10, Win11应用商店): https://www.microsoft.com/zh-cn/p/winftp-pro-ftp-ftp-manager-ftp-client-sftp-webdav-scp-and-s3-client/9nfh18hh0c75?activetab=pivot:overviewtab ![image](./image/a.jpg) ![image](./image/b.jpg) ### 更新日志 Poki for Holo v1.2版本固件与PC客户端发布: 1. 优化界面切换与显示,引入中文字体库。 2. 全新Windows 11图标。 3. 优化时钟app首次加载慢的问题。 4. 优化PC客户端, 使用纯Python环境开发, 无需外部工具,可以方便移植到不同操作系统。所有依赖包均可通过pip安装。 Poki for Holo v1.1版本固件与PC客户端发布: 1. 相册app改为解码jpg/jpeg格式,无需转码。建议传输之前将图片统一转为240*240尺寸。 2. 视频app增加流畅度和压缩效率, 采用新的自定义格式pokani,基于jpg解码(类似mjpeg);可用PC客户端进行转码(源文件支持gif mp4)。pokani格式文件如需PC端预览,推荐使用win10应用商店的ACG 播放器。 3. 加入FTP文件传输,可用常见FTP客户端进行文件拖动双向传输,推荐win10应用商店的winFTP进行传输。 4. 保留命令行文件系统,方便日后调试。 5. PC客户端增加视频转码功能,以及串口、调试输出文本框,刷固件可以显示进度。 ### 固件架构 固件共包含二部分:分别是硬件系统和软件系统 1. 硬件部分主要负责一些硬件初始化和参数设置(比如屏幕亮度调节, led灯的控制)等。 2. 软件部分仅包含抽象逻辑, 不涉及具体硬件的操作(个别需要刷写屏幕的操作除外), 因此可以方便移植到其他Arduino平台上。 3. 软件部分的整体架构类似于一个简易操作系统,可以进行app的选择、进入以及退出, 预留app接口, 可以进行app的增删以及二次开发。 4. 软件系统和硬件系统的交互通过抽象的事件和指令进行,硬件部分作为前台将外部用户对硬件操作比如陀螺仪或者按键抽象成指令(比如左右切换, 进入以及退出等)发送给软件,又将软件反馈的抽象事件(比如等待和唤醒等)具现成led灯渐变和闪烁等硬件行为输出给用户。 5. 软件与硬件之间屏幕信号通讯通过Little VGL图形库作为中介实现, 为了提高流畅度部分图像直接进行绘制。Little VGL图形库官方链接:https://lvgl.io/ 6. 目前软件内置9个基本app, 分别是相册、天气、视频、时钟、wifi连接、串口配置基本信息,AP热点开关,无线FTP文件传输,无线命令行文件系统, 目前预留了4个空白app接口,用户可以在代码上自定义增删或二次开发。 ###编译说明 在platformio平台上开发,需要下载vscode和对应的插件,然后在platformio环境目录下 `\.platformio\packages\framework-arduinoespressif32\libraries\SPI\src\SPI.cpp`文件中,**修改以下代码中的MISO为26**: if(sck == -1 && miso == -1 && mosi == -1 && ss == -1) { _sck = (_spi_num == VSPI) ? SCK : 14; _miso = (_spi_num == VSPI) ? MISO : 12; // 需要改为26 _mosi = (_spi_num == VSPI) ? MOSI : 13; _ss = (_spi_num == VSPI) ? SS : 15;