Giter Site home page Giter Site logo

aovxmagic / holocubic_aio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from climbsnail/holocubic_aio

0.0 0.0 0.0 61.88 MB

HoloCubic超多功能AIO固件

License: GNU General Public License v3.0

C++ 4.41% C 94.37% Makefile 0.02% Processing 0.08% Python 1.12% CMake 0.01% Shell 0.01% PowerShell 0.01%

holocubic_aio's Introduction

HoloCubic_AIO (All in one for HoloCubic)

欢迎加入AIO内测QQ讨论群 755143193

QQ_Group

主要特点

  1. 聚合多种APP,内置天气、时钟、相册、视频播放、浏览器文件修改。(各APP具体使用参考说明书)
  2. 开机无论是否插接tf卡、mpu6050是否焊接正常、是否连接wifi(一定要2.4G的wifi),都不影响系统启动。
  3. 程序相对模块化,低耦合。
  4. 提供web界面进行配网以及其他设置选项。注:具体操作参考APP介绍
  5. 提供web端连入除了支持ip访问,也支持域名直接访问 http://holocubic
  6. 提供web端的文件上传到SD卡(包括删除),无需拔插SD来更新图片。

本固件基于前人的UI与灵感,设计了一套低耦合框架,更有利于多功能的实现

B站功能演示视频链接 https://www.bilibili.com/video/BV1jh411a7pV?p=1

HomePage

HomePage

UploadPage

SettingPage

固件刷写(提供一键刷机工具,无需搭建任何IDE环境)

  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. TF卡的文件系统为fat32。如果准备使用内存卡,在使用内存卡前最好将本工程中放置到内存卡目录里的所有文件和文件夹都放在TF卡的根目录。
  2. 插不插tf内存卡都不影响开机,但影响某些APP的功能(各自APP介绍里会说明)。
  3. 左右摇晃即可切换界面。
  4. 向前倾斜1s钟即可切换第二功能,今后还会整合更多功能,同样前倾1s即切换。

APP介绍

Web Server服务
  1. 运行条件:无。如:wifi等信息是保存在flash中,内存卡完全不影响wifi功能的连接。
  2. 启用后,会显示Web Sever Start。若当前模式为STA模式(此前已经连接过wifi),则WebServer建立在STA模式下的Local_IP上。若为AP模式(重没连接过wifi),则建立在AP_IP上(屏幕的服务界面有标注),AP模式的热点名为HoloCubic_AIO无密码。
  3. 开始使用时,应让电脑与HoloCubic处于同一网络环境(同网段)。如果之前没连接过wifi则需要使用电脑连接HoloCubic放出的热点名为HoloCubic_AIO无密码的wifi。如果Holocubic已经连接上路由器,则电脑应当也连上该路由器。
  4. 在浏览器地址栏输入Local_IP或者AP_IP(也支持域名直接访问 http://holocubic ),即可进入管理设置后台。
相册
  1. 运行APP条件:必须插内存卡,内存卡的根目录下必须存在image/目录(也可以使用Web Server服务APP 通过浏览器上传照片)。
  2. 将需要播放的图片转化成一定格式,再保存在image/目录中。
  3. 使用固件进入相册APP后,将会读取image/目录下的图片文件。

关于图片转换:有空会出图片转换的工具。目前先自行手动转化(尺寸240*240),利用lvgl的官方转换器 https://lvgl.io/tools/imageconverter

  • 常用的天气图片,转换为c数组,格式为Indexed 16 colors 选择 C array。
  • 不常用的图片则可以转换成(True color with alpha 选择Binary RGB565)bin文件存储到SD卡中,这样可以省下一些程序存储空间用来增加功能。
视频播放
  1. 运行APP条件:必须插内存卡,内存卡的根目录下必须存在movie/目录。
  2. 将所需要播放的视频(最好长宽比是1:1),使用本固件配套的使用转化工具转化为目标文件,存放在movie/目录下。
  3. 运行播放器APP后,将会读取movie/目录下的视频文件。
天气、时钟
  1. 运行APP条件:必须是已经联网状态。不插内存卡大多数情况能正常工作。
  2. 一般情况下不插内存卡也可以工作,但部分天气图标是存在内存卡中(由于内部flash不够用)的,需要将固件附带的weather/文件夹复制到tf卡根目录。
  3. 需要再"Web Server"服务中修改知心天气的地址、key(私钥)。(申请地址 https://seniverse.com ,文件里附带key是范例,无法直接使用。程序默认使用的是v3版本的api)

注:即使断网后,时钟也依旧运行。(开机最好连接wifi,这样会自动同步时钟。使用中会间歇尝试同步时钟)

BiliBili APP

目前还在开发中。

硬件相关

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

关于编译工程代码

  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_Frame

AIO框架讲解链接 https://www.bilibili.com/video/BV1jh411a7pV?p=2

关于UI的设计可以自行关注下gui-guider工具。

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

资料

ESP32内存分布 https://blog.csdn.net/espressif/article/details/112956403

版本更新日志

HoloCubic_AIO固件_v1.5.bin
  1. 新增视频播放(持续改进中)。
HoloCubic_AIO固件_v1.4.bin
  1. 大量修改程序框架。
  2. 增加屏幕亮度。
  3. 修改原相册切换时"白屏"现象。
HoloCubic_AIO固件_v1.3.bin
  1. 将wifi配置信息从内存卡移到flash中,实现非相册功能的应用无需依赖内存卡。开机需要使用里面的配置APP在浏览器端配置网络信息。后期升级固件无需重新配置信息。
  2. 调整RBG氛围灯。
  3. 增加内存卡中的movie目录(便于后期拓展)。

holocubic_aio's People

Contributors

climbsnail avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.