HoloCubic超多功能AIO固件

Overview

HoloCubic_AIO (All in one for HoloCubic)

欢迎加入QQ讨论群 755143193

本固件程序是基于前人的基础上修改了整体框架,更有利于多功能的实现

B站功能演示视频链接 https://www.bilibili.com/video/BV1jh411a7pV?from=search&seid=5347262882311444671

HomePage

HomePage

UploadPage

SettingPage

主要特点

  1. 内置天气、时钟、相册(tf卡)、浏览器文件修改等功能。
  2. 开机无论是否连接wifi(一定要2.4G的wifi),都不影响其他功能运行。
  3. 程序相对模块化,低耦合。
  4. 提供web界面进行配网以及其他设置选项。注:若当前模式为STA模式,则WebServer建立在STA模式下的Local_IP上。若为AP模式,则建立在AP_IP上(屏幕的服务界面有标注),AP模式的热点名为HoloCubic_AIO无密码。
  5. 提供web端连入除了支持ip访问,也支持域名直接访问 http://holocubic
  6. 提供web端的文件上传到SD卡(包括删除),无需拔插SD来更新图片。
  7. 即使断网后,时钟也依旧运行。(开机最好连接wifi,这样会自动同步时钟。使用中会间歇尝试同步时钟)

功能切换说明:

  1. TF卡的文件系统为fat32。在使用内存卡前最好将本工程中放置到内存卡目录里的所有文件和文件夹都放在TF卡的根目录。(以下会单独介绍tf卡里的配置文件)
  2. 插不插tf内存卡都不影响开机,但影响相册照片的读取。
  3. 左右摇晃即可切换界面。
  4. 向前倾斜1s钟即可切换第二功能,今后还会整合更多功能,同样前倾1s即切换。

知心天气的key(私钥)。(申请地址 https://seniverse.com ,文件里附带key是范例,无法直接使用。程序默认使用的是v3版本的api)

TF卡文件说明

  • 关于视频(暂时不可用):运行播放器APP后,将会读取movie/目录下的视频文件。
  • 关于天气:程序启动后在天气的界面时,将会读取weather/目录下的图标文件。
  • 关于相册:运行图片APP后,将会读取image/目录下的图片文件。

关于图片转换:有空会出图片转换的工具。目前先自行手动转化(尺寸240*240),常用的天气图片利用lvgl的官方转换器 https://lvgl.io/tools/imageconverter 转换为c数组,格式为Indexed 16 colors。不常用的图片则可以转换成bin文件存储到SD卡中,这样可以省下一些程序存储空间用来增加功能。

应用图标:可以下载阿里矢量图 https://www.iconfont.cn/

固件更新:

  1. bootloader_dio_40m.bin启动的bootloader
  2. partitions.bin分区文件
  3. boot_app0.bin
  4. 最新的固件HoloCubic_AIO_XXX.bin

其中HoloCubic_AIO_XXX.bin文件随着每次版本更新而更新,其他三个文件基本不会变动。

将以上四个文件与cubic_tool.exe放在同一个目录下,双击运行cubic_tool.exe即可刷写固件。

之后计划

  1. 添加视频播放。
  2. 电脑桌面投屏。

硬件相关

注意:硬件部分C7电容换成10uF左右就可以实现自动下载。

关于编译工程代码

  1. 本工程代码是基于vscode上的PlatformIO插件中的ESP32-Pic的Arduino平台开发。
  2. 记得修改工程下platformio.ini文件中upload_port字段成对应自己COMM口。
  3. 开发时,需要修改platformIO上对esp32的默认分区(否则编译大小超限,强制报错)。需要修改的文件为.platformio/packages/framework-arduinoespressif32/boards.txt,修改其中的pico32.upload.maximum_size字段的值为2097152(2M)够用就行。
  4. 然后这里需要修改一个官方库文件才能正常使用:

首先非PlatformIO开发(自带包了)的用户需安装ESP32的Arduino支持包(百度有海量教程)。然后在安装的支持包的esp32\hardware\esp32\1.0.4\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;

这是因为,硬件上连接屏幕和SD卡分别是用两个硬件SPI,其中HSPI的默认MISO引脚是12,而12在ESP32中是用于上电时设置flash电平的,上电之前上拉会导致芯片无法启动,因此我们将默认的引脚替换为26。

版本更新日志

HoloCubic_AIO固件_v1.3.bin
  1. 将wifi配置信息从内存卡移到flash中,实现非相册功能的应用无需依赖内存卡。开机需要使用里面的配置APP在浏览器端配置网络信息。后期升级固件无需重新配置信息。
  2. 调整RBG氛围灯。
  3. 增加内存卡中的movie目录(便于后期拓展)。
Issues
  • 陀螺仪的DOWN和RETURN用的一个判断逻辑

    陀螺仪的DOWN和RETURN用的一个判断逻辑

    /scr/driver/imu.cpp里判断DOWN和RETURN用的都是action_info.v_ax < -5000,是不是其中一个需要换成v_az啊

    else if (action_info.v_ax < -5000) //感觉这里要换成v_az
                {
                    action_info.isValid = 1;
                    action_info.active = DOWN;
                    delay(500);
                    getVirtureMotion6(&action_info);
                    if (action_info.v_ax < -5000)
                    {
                        action_info.isValid = 1;
                        action_info.active = RETURN;
                        encoder_state = LV_INDEV_STATE_REL;
                    }
                }
    

    UP和GO_FORWORD也一样

    opened by WoodwindHu 3
  • 帮忙实现一下gif文件的支持

    帮忙实现一下gif文件的支持

    我希望gif文件直接放进去就能播放,目前我知道的绕过方式是先gif->mp4,再mp4->mjpeg. 但是有两个问题一个是批量操作很麻烦,一个是mp4->mjpeg过程存在质量压缩。

    我搜索了了解到lvgl是可以支持gif,只需要开发支持一下。但是我没有这个项目的开发经验,希望大佬们能支持搞一下。

    opened by yizhiren 0
  • 提供一个快速创建app的脚本

    提供一个快速创建app的脚本

    【目的】 加快开发者创建新app的速度 【使用方法】

    # 创建一个叫做birthday的app
    python manage.py --newapp birthday
    

    【设计考虑】 本版本暂未在HoloCubic_AIO.cpp加入对app的引用和注册, 后期可以考虑加入这个功能。一个管理app的脚本还可以有

    • 去注册app
    • 删除app 等功能。当然,有更多的想法都可以在这个脚本里实现
    opened by QiangZiBro 0
Releases(多功能上位机v1.4.2)
  • 多功能上位机v1.4.2(Oct 13, 2021)

    下载:兼容esp32的下载、清空、重启、串口调试。 图片转化:可将标准jpg图片尺寸缩放成指定尺寸的jpg、将图片转为lvgl的bin格式的图片。 视频转码:支持将多种视频转成RGB565、mjpeg格式的任意尺寸视频。

    注:内部自带holocubic AIO固件(可能并非最新版)

    Source code(tar.gz)
    Source code(zip)
    HoloCubic_AIO.v1.4.2.zip(37.53 MB)
Owner
Qi He
专注的熬夜男人
Qi He