diff --git a/README.md b/README.md index 98ce5766..92a4de8e 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ B站功能操作演示视频链接 https://www.bilibili.com/video/BV1jh411a7pV?p ##### 视频播放 1. 运行APP条件:必须插内存卡,内存卡的根目录下必须存在`movie/`目录。 -2. 将所需要播放的视频(最好长宽比是1:1),使用本固件配套的使用转化工具转化为目标文件,存放在`movie/`目录下。 +2. 将所需要播放的视频(最好长宽比是1:1),使用本固件配套的使用转化工具转化为目标文件(mjpeg或者rgb格式都可),存放在`movie/`目录下。 2. 运行播放器APP后,将会读取`movie/`目录下的视频文件。 ##### 天气、时钟 @@ -145,25 +145,3 @@ lvgl的字体生成可以使用:`LvglFontTool V0.4` 已放置在Doc目录下 ### 资料 ESP32内存分布 https://blog.csdn.net/espressif/article/details/112956403 - - -### 版本更新日志 -##### HoloCubic_AIO固件_v1.6.x.bin -1. 调整屏幕亮度、wifi的调度控制,降低功耗。 -2. 修改TFT_eSpi库消除开机之后的`花屏`。 - -##### HoloCubic_AIO固件_v1.5.x.bin -1. 新增视频播放(持续改进中)。 -2. 新增MPU6050校准,实现对带倾角底座的兼容。 -3. 相册功能支持jpg、bin双格式。 -4. 新增思维动画APP。 -5. 加速开机显示。 - -##### HoloCubic_AIO固件_v1.4.bin -1. 大量修改程序框架。 -2. 增加屏幕亮度。 -3. 修改原相册切换时"白屏"现象。 -##### HoloCubic_AIO固件_v1.3.bin -1. 将wifi配置信息从内存卡移到flash中,实现非相册功能的应用无需依赖内存卡。开机需要使用里面的配置APP在浏览器端配置网络信息。后期升级固件无需重新配置信息。 -2. 调整RBG氛围灯。 -3. 增加内存卡中的`movie`目录(便于后期拓展)。 diff --git a/Tool/CubicAIO_Tool.spec b/Tool/CubicAIO_Tool.spec deleted file mode 100644 index ba35048c..00000000 --- a/Tool/CubicAIO_Tool.spec +++ /dev/null @@ -1,33 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - -block_cipher = None - - -a = Analysis(['CubicAIO_Tool.py'], - pathex=['C:\\Users\\Air14\\Documents\\PlatformIO\\Projects\\HoloCubic_AIO\\Tool'], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - runtime_hooks=[], - excludes=[], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher, - noarchive=False) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) -exe = EXE(pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - [], - name='CubicAIO_Tool', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=False , icon='holo_256.ico') diff --git a/Tool/common.py b/Tool/common.py index e67b445a..68143eb0 100644 --- a/Tool/common.py +++ b/Tool/common.py @@ -8,6 +8,6 @@ # ################################################################################ -VERSION = "Ver1.4.1" +VERSION = "Ver1.4.2" ROOT_PATH = "OutFile" CACHE_PATH = "Cache" diff --git a/Tool/download_debug.py b/Tool/download_debug.py index 9fcf073d..7d15e09f 100644 --- a/Tool/download_debug.py +++ b/Tool/download_debug.py @@ -208,7 +208,7 @@ def schedule_display(self, all_time, update_interval): update_interval:更新时间间隔(s) """ cycle_number = int(all_time / update_interval) - self.print_log("all_time", all_time) + self.print_log("all_time: "+str(all_time)) for num in range(cycle_number - 1): self.progress_bar.coords(self.progress_bar_fill, (3, 3, (num / cycle_number) * 440, 14)) self.__father.update() @@ -392,10 +392,11 @@ def init_log(self, father): self.m_log_scrollbar.pack(side=tk.RIGHT, fill=tk.Y) def print_log(self, msg): - msg = msg + "\n" + msg = str(msg) + "\n" self.m_log.config(state=tk.NORMAL) self.m_log.insert(tk.END, msg) self.m_log.config(state=tk.DISABLED) + self.m_log.yview_moveto(1) def clear_log(self): """ @@ -413,7 +414,7 @@ def init_serial_receive(self, father): info_height = 27 # 滑动条 - self.m_scrollbar = tk.Scrollbar(father, width=12) + self.m_scrollbar = tk.Scrollbar(father, width=12, orient="vertical") # 信息文本框 self.m_msg = tk.Text(father, width=info_width, height=info_height, @@ -565,10 +566,10 @@ def com_connect(self): # 判断是否打开成功 if self.ser.is_open: + BOOL = True # 读取标志位 self.receive_thread = threading.Thread(target=self.read_data, args=(self.ser,)) self.receive_thread.start() - BOOL = True # 读取标志位 self.m_connect_button["text"] = "关闭串口" self.m_com_select["state"] = tk.DISABLED @@ -611,6 +612,7 @@ def read_data(self, ser): self.m_msg.config(state=tk.NORMAL) self.m_msg.insert(tk.END, STRGLO) self.m_msg.config(state=tk.DISABLED) + self.m_msg.yview_moveto(1) def get_download_param(self): """ diff --git a/Tool/help.py b/Tool/help.py index 24bbdb66..37a698d6 100644 --- a/Tool/help.py +++ b/Tool/help.py @@ -41,7 +41,7 @@ def init_info(self, father): info = ''' 本上位机专门针对HoloCubic AIO固件开发,其中固件烧录功能兼容其他第三方固件。 - 加入AIO内测QQ群:755143193 获取相关技术支持。 + 加入AIO内测QQ群:755143193 获取最新版本及相关技术支持。 功能持续补充完善中,本上位机的所有源码均开源,欢迎大家学习, 也欢迎加入到AIO固件的开发队列。 diff --git a/Tool/videotool.py b/Tool/videotool.py index e58da21c..01a91fa2 100644 --- a/Tool/videotool.py +++ b/Tool/videotool.py @@ -144,8 +144,9 @@ def trans_format(self): cur_dir = os.getcwd() # 当前目录 self.trans_botton["text"] = "正在转换" param = self.get_output_param() - cmd_resize = "ffmpeg -i %s -vf scale=%s:%s %s" - cmd_to_rgb = 'ffmpeg -i %s -vf "fps=9,scale=-1:%s:flags=lanczos,crop=%s:in_h:(in_w-%s)/2:0" -c:v rawvideo -pix_fmt rgb565be %s' + cmd_resize = "ffmpeg -i %s -vf scale=%s:%s %s" # 缩放转化 + cmd_to_rgb = 'ffmpeg -i %s -vf "fps=%s,scale=-1:%s:flags=lanczos,crop=%s:in_h:(in_w-%s)/2:0" -c:v rawvideo -pix_fmt rgb565be %s' + cmd_to_mjpeg = 'ffmpeg -i %s -vf "fps=%s,scale=-1:%s:flags=lanczos,crop=%s:in_h:(in_w-%s)/2:0" -q:v 9 %s' name_suffix = os.path.basename(param["src_path"]).split(".") suffix = name_suffix[-1] # 后缀名 @@ -154,8 +155,17 @@ def trans_format(self): # 带上路径 video_cache = os.path.join(cur_dir, ROOT_PATH, CACHE_PATH, video_cache_name) # 最终输出的文件 + if param["format"] == 'rgb565be': + out_format_tail = ".rgb" + trans_cmd = cmd_to_rgb # 最后的转换命令 + elif param["format"] == 'MJPEG': + out_format_tail = ".mjpeg" + trans_cmd = cmd_to_mjpeg # 最后的转换命令 + else: + out_format_tail = ".mjpeg" + trans_cmd = cmd_to_mjpeg # 最后的转换命令 final_out = os.path.join(param["dst_path"], - name_suffix[0] + "_" + param["width"] + "x" + param["height"] + ".rgb") + name_suffix[0] + "_" + param["width"] + "x" + param["height"] + out_format_tail) # 清理之前的记录 try: @@ -165,10 +175,10 @@ def trans_format(self): pass middle_cmd = cmd_resize % (param["src_path"], param["width"], - param["width"], video_cache) + param["height"], video_cache) print(middle_cmd) - out_cmd = cmd_to_rgb % (video_cache, param["width"], param["width"], - param["width"], final_out) + out_cmd = trans_cmd % (video_cache, param["fps"], param["height"], + param["width"], param["width"], final_out) print(out_cmd) os.system(middle_cmd) os.system(out_cmd) @@ -198,7 +208,7 @@ def init_options(self, father): # 分辨率(长宽) ratio_frame = tk.Frame(father, bg=father["bg"]) - self.m_ratio_label = tk.Label(ratio_frame, text="分辨率(长x宽)", + self.m_ratio_label = tk.Label(ratio_frame, text="分辨率(宽x高)", # font=self.my_ft1, bg=father['bg']) self.m_ratio_label.pack(side=tk.LEFT, padx=border_padx) @@ -219,7 +229,7 @@ def init_options(self, father): # 创建输入框 # self.m_fps_entry = tk.Entry(father, font=self.my_ft1, width=5, highlightcolor="LightGrey") self.m_fps_entry = tk.Entry(fps_frame, width=5, highlightcolor="LightGrey") - self.m_fps_entry.insert(tk.END, '9') + self.m_fps_entry.insert(tk.END, '20') # self.m_pre_val_text = "1500" # 保存修改前m_val_text输入框中的内容,供错误输入时使用 # self.m_fps_entry.bind("", self.change_val) # 绑定enter键的触发 self.m_fps_entry.pack(side=tk.RIGHT, padx=border_padx) @@ -232,7 +242,7 @@ def init_options(self, father): bg=father['bg']) self.m_format_label.pack(side=tk.LEFT, padx=border_padx) self.m_format_select = ttk.Combobox(format_frame, width=10, state='readonly') - self.m_format_select["value"] = ('rgb565be', 'MJPEG', 'GIF') + self.m_format_select["value"] = ('MJPEG', 'rgb565be') # , 'GIF' # 设置默认值,即默认下拉框中的内容 self.m_format_select.current(0) self.m_format_select.pack(side=tk.RIGHT, padx=border_padx) diff --git a/update_log.md b/update_log.md new file mode 100644 index 00000000..ff32d421 --- /dev/null +++ b/update_log.md @@ -0,0 +1,20 @@ +### 版本更新日志 +##### HoloCubic_AIO固件_v1.6.x.bin +1. 调整屏幕亮度、wifi的调度控制,降低功耗。 +2. 修改TFT_eSpi库消除开机之后的`花屏`。 + +##### HoloCubic_AIO固件_v1.5.x.bin +1. 新增视频播放(持续改进中)。 +2. 新增MPU6050校准,实现对带倾角底座的兼容。 +3. 相册功能支持jpg、bin双格式。 +4. 新增思维动画APP。 +5. 加速开机显示。 + +##### HoloCubic_AIO固件_v1.4.bin +1. 大量修改程序框架。 +2. 增加屏幕亮度。 +3. 修改原相册切换时"白屏"现象。 +##### HoloCubic_AIO固件_v1.3.bin +1. 将wifi配置信息从内存卡移到flash中,实现非相册功能的应用无需依赖内存卡。开机需要使用里面的配置APP在浏览器端配置网络信息。后期升级固件无需重新配置信息。 +2. 调整RBG氛围灯。 +3. 增加内存卡中的`movie`目录(便于后期拓展)。 \ No newline at end of file