用一个按键和一块屏幕写一个简易的UI
看人家lvgl开源项目那么厉害,自己也想写一个简单的UI,从最简单的开始,使用的硬件为单片机;STM32F411单片机外设:一个按键屏幕:SSD1306 OLED屏幕先上效果:1、屏幕上电会显示四个元素(宏定义修改),被选中的元素会比其他的稍微大一些。2、在向下切换时,会有一点点动态效果,被选中的元素会有一点点放大的效果。切换时使用按键单击控制。3、在进入被选定元素后,会从被选定元素向两周扩散至全
看人家lvgl开源项目那么厉害,自己也想写一个简单的UI,从最简单的开始,使用的硬件为单片机;STM32F411单片机外设:一个按键屏幕:SSD1306 OLED屏幕先上效果:1、屏幕上电会显示四个元素(宏定义修改),被选中的元素会比其他的稍微大一些。2、在向下切换时,会有一点点动态效果,被选中的元素会有一点点放大的效果。切换时使用按键单击控制。3、在进入被选定元素后,会从被选定元素向两周扩散至全
在某些屏幕上我们没有触摸功能,则需要使用按键操作控件lvgl总共给了我们四种设备输入接口,分别是1、LV_INDEV_TYPE_POINTER 触摸板或鼠标 2、LV_INDEV_TYPE_KEYPAD 键盘或小键盘 3、LV_INDEV_TYPE_ENCODER 编码器,带有左/右转和推动选项 4、LV_INDEV_TYPE_BUTTON 外部按钮虚拟按下屏幕 我们使用实体按键适用第二种或第四种
在自己的项目中显示中文是必不可少的。lvgl提供了几种显示中文的方法,在这里我们使用其中一种1、点击这里,百问网为我们提供了多种字体下载,选择一个你喜欢的字体下载下来解压到桌面。2、点击这里,lvgl官方给我们提供了字体转换数组的工具查看这里面的选项,Name是生成的.c文件名称与后续的字体对象名称,Size为大小,Bpp与下面的三个可选框都是与质量相关的选项,总体来说质量越高,占用内存越大;下面
LVGL给我们提供了其中动画效果,分别是:lv_anim_path_linear 线性动画lv_anim_path_step最后一步改变lv_anim_path_ease_in 开始时很慢lv_anim_path_ease_out 最后慢lv_anim_path_ease_in_out 开始和结束都很慢lv_anim_path_overshoot 超过结束值lv_anim_path_bounce
实物图展示: 一直想制作一个适用于homekit的智能开关用来控制强电设备,原理并不难但是由于各种原因一直鸽了又鸽,苹果开源了homekit的通信协议,又有大佬将其移植到Arduino上,得益于本菜鸟也可以制作适用于苹果家庭的智能设备。已经完成的homekit设备:homekit台灯转接板homekit插座homekit风扇今天来记录一下homekit
先上视频: 完成思路:1、先去百度智能云免费创建一个图片识别应用“点击我”,创建成功后可以获得API Key与Secret Key,后续我们将通过这两个key获取access_token,很简单,通过查看官网文档可以知道获取的方法,post获取之后就可以在返回的json字符串中看到,我们将它保存下来后续使用,需要注意的是access_token的有效期为30天,需要每30天进行定期更换。2、首先新
先上代码:# encoding:utf-8 import requests import base64 import cv2 from xpinyin import Pinyin p = Pinyin() img_src=r"C:\Users\TSK\Desktop\test.png" display_img = cv2.imread(img_src)
使用ESP32-IDF开发时,最简单的方法就是使用printf();函数输出调试信息,但是IDF给了我们更优秀的信息调试装置,库中有以下五种LOG输出函数,详细度从最低到最高。ESP_LOGE - 错误(最低) ESP_LOGW - 警告 ESP_LOGI - 信息 ESP_LOGD - 调试 ESP_LOGV - 详细(最高) 考虑到线程安全,在F
第十四课 二进制信号量#include "freertos/semphr.h" xSemaphoreCreateBinary();SemphoreHandle_t Handle;//二进制信号量Handle = xSemaphoreCreateBinary();//创建xSemaphoreGive(Handle);//释放在任务中:xSemaphoreTake(Handle
第八课 Task看门狗中断看门狗:在任务中代码运行时间过长,会触发中断看门狗,中断看门狗使用的是定时器一,需要配置interrupt watchdog 与进行初始化任务看门狗:针对任务,也可以重启整个系统。默认监控idle_task 5s 如果将任务优先级确定到0,则不会触发看门狗,因为与idle任务具有相同的优先级,idle可以持续运行不会造成看门狗触发添加自定义看门狗 添加头文件"esp_ta