自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (3)
  • 收藏
  • 关注

原创 移植2D物理引擎到LVGL

在LVGL交流群,有网友提出想要移植物理引擎到LVGL,遂有了本文。阅读本文需要对IDF和LVGL有所了解。

2024-06-02 11:45:45 582

原创 纯手写边缘检测算法

由于要在开发板上实现一些基础的图像处理算法,本想着直接使用opencv,怎奈何移植后占用空间太大,放弃了这个想法。于是乎自己手lu图像处理算法代码,顺便复习一下数字图像处理的相关知识。

2024-04-26 10:30:11 163 1

原创 LVGL播放帧序列的c++封装

封装了一个LVGL播放帧动画的组件,欢迎收藏使用

2024-04-02 11:15:51 353

原创 shell脚本自动输入密码

【代码】shell脚本自动输入密码。

2023-11-22 09:48:48 685

原创 LVGL界面卡顿优化总结

前面移植了lvgl到全志r528平台(Linux),但是运行起来界面有些卡顿,当遇到页面切换时帧率能下降到个位数。为此,我查阅了大量资料,咨询了方案厂商,总结出一些优化方案。注意这是针对Linux平台下的优化。

2023-11-22 09:21:17 4445 7

原创 嵌入式Linux人脸检测libfacedetection

如果编译出来的so文件太大,可以考虑根据自己的需求裁剪部分功能。将以下so文件推送到板子上,如遇到版本号不对可以建立对应软连接。如果遇到找不到库的话-l -L 也添加上。将编译出来的so文件放入交叉编译工具链的。依赖的库全是NO,开启为YES需要依赖。编译完成发现无法调用摄像头,原来。发现编译不通过,根据提示修改。首先要交叉编译Opencv。推送到板子上,运行即可。环境变量添加好全志的。代码下载后 执行一下。文件夹下,头文件放入。

2023-08-25 11:17:10 351

原创 在Flutter应用内部实现分屏功能

这一次被要求实现屏幕上同时展示两个页面,并且两个页面的逻辑,功能互不影响,通俗一点讲就是在Flutter内部实现一个类似于分屏的功能,这可难不倒我。以上就是本期内容啦,如果你有其他的实现方法,欢迎留言一起讨论交流哦。

2023-08-21 17:25:34 1538

原创 Jenkins自动发送飞书消息

公司办公软件用的是飞书套壳,本文主要介绍如何通过飞书机器人发送Jenkins构建的进度和消息。本文给出了详细的shell脚本代码,实现了将Jenkins构建消息发送到飞书的功能。欢迎白嫖!!!

2023-08-17 11:26:31 1226

原创 嵌入式Linux的学习之初试uboot

因为uboot本身附带了众多开发板的配置文件(configs文件夹下),其中就包括树莓派,在u-boot文件夹下执行,如果你的板子是全新的,那就要自己在u-boot中适配添加配置以适配你的开发板,这个我们留到后面去讲。找教程的过程真的很艰辛啊,很多开发板以及配套教程都是面对初学者,花费大量篇幅去讲解Linux基础命令,文件结构,虚拟机安装过程,ftp,nfs等环境配置之类的。看上去东西也不多,像我如果有Linux,C,GUI开发基础的话,只需要学习下面嵌入式开发的2.3.两点即可。

2023-08-07 11:30:59 175

原创 Django入门

早就想入门后端了,自己倒是用过Flask,对于常规网站来说Django更完善一些。稍微学习下,能够做一些简单业务处理就好啦。跟着官方文档学习的,这里做一下记录。纯纯拿来用,不去研究原理与架构,无脑跟着做就行了!

2023-07-13 14:54:56 994

原创 Flutter调用C语言(FFI方式)

重点讲一下SendPort传递消息吧,因为dart是线程隔离的,如果你在C语言侧起了新的的线程执行了一些任务并且想把结果传回dart,就要用到这个了。这里一定注意内存泄漏!在做嵌入式Linux时选用了Flutter做GUI,但是底层必然使用C写的,那么最终怎么交互呢?这里调研了FFI,FFI赋予了Dart语言调用.so动态链接库的能力。虽然项目后来采用了Dbus进行通信,还是记录下研究过程吧。这个方法应该是跟JNI非常相似的。

2023-07-10 14:00:55 822

原创 LVGL展示网络图片

这样操作有一个问题就是文件保存以后再读取解码非常耗时,导致界面卡顿。于是想着进一步优化步骤,在不保存文件的情况下从内存中直接解码图片并展示出来。实际应用中已经进行了组件化的封装,不便展示,这里贴一部分最初的原始代码参考。时,有一个需求是需要在界面上展示网络图片。以上代码只是参考,还有很多不足之处:比如内存的申请和释放可以使用。上面展示一个给定的网络图片。免去文件存读以后速度快了很多,其中解码用。这个库,支持很多格式的图片,应该够用了。获取图片的操作应该放到子线程,避免阻塞。,如果不包含就要自己编译一下,

2023-06-30 10:14:05 1137

原创 opencv调用预训练模型

前言这篇文章主要讲一下opencv怎么调用已经训练好的模型。对于不懂tensorflow,只想调用tensorflow已经训练好模型的朋友来讲非常有用。下载链接:.configs文件下载.pb文件下载.pbtxt文件下载转换脚本下载:tf_text_graph_faster_rcnn.pytf_text_graph_mask_rcnn.pytf_text_graph_ssd.py...

2023-01-04 09:44:56 830 2

原创 antd-mobile脚手架

前言还是为了备忘,记录一下自己利用Create-React-App脚手架搭建antd-mobile的开发环境安装npm install -g create-react-appcreate-react-app testcd testnppm start至此 react已经运行起来了然后引入 fastclick 不然在使用过程中会出现一些问题,在header添加如下代码 <meta name="viewport" content="width=device-width, initia

2023-01-04 09:41:27 835 1

原创 ld: cannot find -lxxx终极解决方法

ld: cannot find -lxxx终极解决方法。

2022-12-27 15:57:03 5572 1

原创 Dbus的使用

最近在开发Linux应用时,需要用到跨进程通信,一番调研后决定使用Dbus。在此记录一下学习过程。的架构与优点在此就不展开介绍了,主要记录一下如何使用。不过它的作者还是推荐大家使用。我只想说,大佬您太谦虚了.是非常痛苦的,我们选择了。内部实现并不是最完美的。协议的一个实现参考。

2022-12-26 16:54:18 690

原创 LVGL自定义组件__页面指示器

LVGL对硬件的要求非常低,使用其自带的组件能够搭建出精美的界面,动效也很棒。但是如过移植到Linux平台下,开发稍微复杂的应用项目,那些组件就远远不够用了。为此需要自己自定义一些组件,以方便实用。为此,尝试开发了一个页面指示器,先看效果:circles.hcircles.c使用方法项目根目录下,新建文件夹,把上面的两个文件放进去修改:要使用时引入头文件可以使用自带的Demo快速预览,具体使用方法可以参考Demo函数配置参考demo函数初始化配置即可:由于刚刚上手lvgl

2022-12-06 10:08:03 1383

原创 Magisk搞机器记录(小米Mix3)

安装完以后打开可以看到是否有Ramdisk,如果有Ramdisk的话还好说,没有的话Magisk就只能劫持你的Recovery分区,这种设备每次想要可开启Magsik的话,必须重启到Rec,而且这类设备不可以使用第三方Rec安装或升级Magisk。笔者也是第一次玩,查阅了很多资料,如有错误的地方,还请大佬们指出来。Rec:默认的Rec只能恢复出厂设置,擦除数据等等,第三方Rec有刷入第三方Rom,第三方固件的功能。后面的步骤不记得了哈哈哈,参考网上其他教程吧,大家都写的很全面,懒得梳理和整理了。

2022-11-21 15:46:19 7880

转载 tkinter最小化至托盘

平常自己会用tkinter开发一些小工具,有的工具需要一致运行,这类程序还是隐藏到托盘比较好。于是上网搜索,了解了下如何将开发tkinter的最小化到托盘的程序。这里做下记录,方便使用。前提是要有以下代码,直接复制下来保存即可。以使用为目的,就不过多的讲解实现代码啦。:根据传入的菜单和回调渲染托盘图标的右键菜单,设置菜单回调;同时还封装了弹Window消息,和退出回调。方便实现自己想要的功能。:测试Demo主程序程序持续后台运行的话,需要将 函数放在单独的线程中进行使用。两个文件放在同一文件夹下即可:

2022-09-19 16:39:37 2308 3

原创 安装Windows Subsystem for Linux并配置图形化界面

找到对应系统对应版本复制下来,替换掉 /etc/apt/source.list 中的内容即可。公司不可以安装破解软件,直接用windows的Linux子系统叭。最近要转Linux开发了哈,开始学习喽。等待下载安装完成,在弹窗中设置用户名密码就可以了。

2022-09-14 09:27:55 1232

原创 mediapipe实战1:安装mediaPipe

mediaPipe安装

2022-08-26 17:06:46 3190

原创 Bloc入门之Bloc详解

Bloc 和 Cubits 都会忽略重复的状态,也就是说如果currentState与nextState一致,则本次状态变化会被忽略。Bloc 不可以直接发出状态,所有状态都应该是通过EventHandler函数发出的。类里面重写方法来观察状态,也可以和之前一样也可以通过将观察部分单独写在。时,只需要定义状态以及我们想要公开的改变状态的函数。可以查看什么事件引发了状态改变。时,必须定义状态、事件和。各自的优势,以便按需使用。从上面两图可以看出,在使用。能够控制和转换事件的传入流。本地的方法,然后再触发。..

2022-08-17 13:23:33 663

原创 autojs脚本备忘

本文仅记录一些笔者实践中摸索出来的开发方法,包括部分品牌手机的自动解锁,远程控制,一键熄屏,及利用QQ小号进行远程控制指令的下发等,更具体的开发请参看官网原文档无密码上滑解锁有密码,亮屏密码解锁锁屏没有root,无法模拟。替代方案:通过华为自带的一键锁屏这个应用熄屏读取通知可以注册回调函数,比如收到qq消息后执行某些脚本,可以用这个特点在手机挂一个QQ小号来做远程控制。当然也可以通过后台实现此功能,只不过这样开发更快一些。......

2022-07-09 10:09:06 503

原创 Bloc入门之Cubit详解

前面学写了一些基础的开发知识,但是对于项目的整体架构以及开发模式并没有进行一个系统的学习,经过上网查询,发现目前很多项目采用了Bloc(业务该逻辑组件)这种开发模式,下面就找到了该库的官网首先对于熟悉的同学可以忽略此部分,的新特性里面也有流这部分内容。新建一个文件,输入以下内容,简单了解以下流这个类型 :预热以后,开始上手,安装库在根文件夹里面新建一个文件pubspec.yaml并输入以下内容执行 下载库开始上手这是偷来官网的图:定义一个CounterCubit添加输出状

2022-06-22 16:15:05 1022

原创 一文教你利用OpenWrt外挂网卡,共享校园WiFi,远程ADB调试手机

背景改装了一个小米路由器小米R3G,要知道路由器的系统本身就是基于Linux。本文还是以实用为主:编写开机启动脚本,登录校园网共享WiFi安装ADB调试工具,实现远程控制手机包管理工具Openwrt 使用okpg包管理工具可以执行以下代码更新或者安装一些软件包:opkg updateopkg install XXXopkg remove XXX外挂网卡安装usb驱动及usb网卡驱动opkg update opkg install XXX需要安装的包如下:rt2800-us

2022-05-10 20:06:54 6814 3

原创 爆改小米3G路由器,openwrt踩坑

opewrtopenwrt是一个嵌入式Linux系统。具体就不多作介绍了,下面附上官网地址:https://openwrt.org/查了一下资料,网上的教程很详细,对Linux不熟悉的也能跟着教程成功搞定。本文留作踩坑记录。刷机教程官网有一个可支持的路由器型号列表,每个型号都有对应的刷机方法。可以按官网的教程刷机。我这里买了个二手的小米R3G,注意一定要购买V1版本也就是128+256的版本,不要购买V2版本的16+128低配的。刷机教程参考这个:https://openwrt.org/toh/xi

2022-05-04 09:44:02 2804 3

原创 Android WebView中使用React

背景本人工作中日常使用React开发H5页面较多,最近有需要写一个安卓App,于是简单学习了一下安卓的基础。本文将介绍如何在安卓WebView中嵌入React页面,快速搭建一个安卓应用。本文适合那些想快速搭建一个安卓APP的H5开发。本文还包括页面通过JavaScript与原生交互的简单例子。React本文默认你是一个比较熟悉React的前端开发。如不熟悉可以参考React官方的QuickStart。创建完成后执行npm run build打包,工程目录下面将生成build文件夹,打开build下的

2022-04-09 13:43:44 3808 4

原创 在NPM发布一个React组件

前言在前端开发过程中,组件往往是可以复用的,如果没有封装成package的话,就需要从一个项目拷贝到另一个项目,操作比较麻烦。如果发布成package,每次项目用的时候,就只需要安装一下package,非常方便,那么我们自己如何创建一个React组件并发布呢?本文就来学习一下。实战本次就以一个按钮为例,进行实战操作新建一个react项目安装脚手架,并用脚手架创建一个react项目npm install -g create-react-app create-react-app floatbut

2021-12-08 15:57:24 1362 1

原创 Flutter应用状态管理

前言如下图,当state发生变化,根据你所定义的ui重建函数重新渲染ui。

2021-12-06 17:13:44 463

原创 搭建私有npm服务器并发布一个包

搭建一个npm私有服务器,并发布一个helloworld包

2021-12-03 11:10:29 847

原创 Flutter数据持久化

前言欢迎阅读Flutter系列教程,本文讲解Flutter的数据持久化。主要分三块内容:1.使用Sqlite2.读写文件3.存储键值对Sqlite的使用如果你的APP需要经常在本地存储查询大量数据,就选择数据库。通常使用数据库来进行数据的增删改查比其他数据持久化方案速度更快。Flutter里面可以通过sqflite插件来操作Sqlite。sqlite简介如果你用过数据库,可以略过此部分,使用时留意一下代码语法就行。实战首先要添加依赖,在pubspec.yaml文件里添加,添加完以后

2021-12-02 15:35:55 4011

原创 Flutter路由及传参

前言一个APP往往是由很多个页面组成的,单独的一个页面在安卓里面称为Activity,IOS称为ViewController,在Flutter里面仅仅是一个Widget。本文讲解Flutter的路由,Flutter内的路由组件有Navigator 和Router 。简单的可以用Navigator,更复杂的可以用Router。主要学习两个页面之间的跳转和传参,以及跨屏动画。简单路由在Flutter中,Navigator维护了一个堆栈,用来管理页面路由。可以通过Navigator.push()和Navig

2021-12-01 16:42:16 5510

原创 Flutter组件状态管理的三种方法

前言前面讲了Flutter布局,布局只是静态的。在Flutter中,组件分为StatelesslWidget和StatefulWidget。StatelesslWidget没有状态,是一成不变的。比如图标,文字,按钮等StatefulWidget有状态的组件,页面数据是动态的,或者会随着用户操作变化,比如多选框,文本输入框等。有状态组件重点来了,如何使用实现一个有状态的组件呢?有状态的组件一般由两个类构成,一个StatefulWidget子类和一个State子类.State类包含了组

2021-11-30 09:31:16 2124

原创 一文读懂Flutter布局原则——‘约束下降,尺寸上升’

前言上一篇简单学习了flutter开发与调试,先学习Flutter布局。Flutter布局依赖于很多特定的布局对象。本片对常用的布局对象进行讲解和使用。要理解一句话Constraints go down. Sizes go up. Parent sets position.谷歌翻译为约束下降,尺寸上升,名称功能...

2021-11-29 13:53:58 679

原创 Flutter-HelloWorld

前言上一篇已经讲完如何安装Flutter SDK,本篇文章就讲一下如何跑起来第一个HelloWorld,并进行调试。HelloWorld如果你在AndroidStudio里面安装了Flutter插件,可以通过File>New>New Flutter Project>Flutter Application新建一个Flutter项目。填好项目名称和sdk目录等相关信息即可。新建完成以后就是一个默认的工程项目目录目录如图,我们主要再lib下的.dart文件里面写代码。另外可以再pubs

2021-11-25 17:41:00 482

原创 Flutter安装

前言从来没接触过flutter,我将在这里记录下我的flutter学习踩坑历程。安装就从安装开始叭,官网链接在此。先遵照官网教程来叭。系统要求文档记录了系统要求:操作系统 Windows 7 SP1 or later (64-bit), x86-64 based.磁盘空间1.64G以上(不包含工具和IDE)工具:1.Windows PowerShell 5.0 或者更新的版本,(windows10自带)2.git windows版2.X以上,确保配置过环境变量,在powershell

2021-11-25 16:03:20 1037

原创 tkinter初步使用

背景本来想用pyqt的,但是打包成exe的时候遇到了很多坑,各种报错,从而转tkinter了。tkinter打包很简单,不易报错,打包成exe后能独立运行于没装环境的电脑。代码此代码为官方文档的样例,可以基于此代码扩展。对布局要求不高,一般用网格布局即可如果引用了图片文件,打包以后会报错。可以将图片转为base64变量写在代码里from tkinter import *from tkinter import ttkclass FeetToMeters: def __init_

2021-08-05 13:26:00 266

原创 python执行系统命令并获取命令行回显

执行命令的四种方法最近想写一些小工具,涉及到执行命令的交互,特地了解了一下python执行cmd的交互方式import subprocessimport os1.os.system(cmd)#无回显 只返回状态0,12.os.popen()# result = os.popen('dir') # res = result.read()#逐行输出回显# for line in res.splitlines():# print(line)3.subprocess.Popen()

2021-08-05 11:12:16 2848

原创 vscode 快捷键备忘

持续更新记录一下平常使用率比较高的快捷键,大部分ide的快捷键是通用的。Ctrl+C/V/X/Z 就不说了Ctrl+Shif+方向键 选中Alt+Shift+上键/下 复制当前行到上一行或者下一行Ctrl+Shif+K 删除当前行Ctrl+Shif+L 选中当前行...

2021-03-29 15:17:45 104

原创 git的使用

背景使用git的时候,除了简单的提交,推拉代码,有时候难免需要代码回滚,对比等稍微复杂点的操作,这里记录一下目前用到的命令,持续更新。。。。比较两个分支的不同(某个文件在两个分支的不同)git diff 分支1 分支2 (文件名)本地代码崩了,重新拉区代码覆盖本地git fetch --allgit reset --hard origin/分支git pull //可以省略回到以前的版本git refloggit reset --hard 版本id只查看某个分支的

2021-03-29 15:16:47 62

flutter初学者教程 flutter路由-入门代码

flutter路由及传参参看博客 https://blog.csdn.net/qq_18454025/article/details/121631994

2021-12-01

color_change.zip

基于pyqt5和opencv写的程序,可以一键修改证件照背景色。效果如博文所述https://blog.csdn.net/qq_18454025/article/details/105057654

2020-03-24

动态网页设计asp作业

山东科技大学动态网页设计作业文档。

2017-07-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除