自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (12)
  • 收藏
  • 关注

原创 CanMV K210工程源码架构

CanMV K210工程源码架构,CanMV 的目的是让 AIOT 编程更简单, 基于 Micropython 语法, 运行在Canan强大的嵌入式AI SOC系列上。目前它在K210上运行。

2023-03-15 17:16:08 191

原创 详述micropython中py代码调用底层c代码流程

详述micropython调用c函数流程

2022-10-14 17:12:47 672 1

原创 OpenMV IDE通信协议分析

OpenMV IDE通信协议分析

2022-06-20 17:58:35 500

原创 micropython源码分析之c模组注册

micropython源码分析之c模组注册

2022-06-07 16:25:21 371

原创 vscode ssh远程免密登录服务器配置不生效

配置vscode 远程开发+ 免密登录遇到的问题

2022-06-01 18:40:15 662 2

原创 一、PyQT5安装与初步认识

教程汇总:python基础入门系列该章节学习需要具备一定的python基础知识,不懂得可以先去这里(python基础入门系列)补习基础。基于python开发GUI程序有很多库可以选择,例如以下几个 :Tkinter:Tkinter是Python自带的一个GUI库,总结来说他的特点是足够轻量,与python绑定兼容好,但做复杂界面开发相对麻烦些。PyQT:由第三方公司基于Qt5实现的python语言绑定,可以利用Qt开发工具快速开发,界面代码与事件代码可分离,网上资料齐全,方便快速开发。PySid

2022-05-13 19:14:30 665

原创 micropython源码分析之qstr

前言最近在研究micropython的源码编译过程,简单记录下关于qstr部分内容。标识符与相应对象的联系Micropython中有很多标识符,例如lcd.py中出现的标识符有:import、lcd、init、print、“hello”。这些标识符最终都需要与某个对象或操作联系起来。那么这种联系是如何建立的呢?那就是通过QSTR。QSTR是uniQue STRing的简称,是一种字符串内存驻留方法。我们知道同一个标识符可能在源代码中出现多次,如果我们在每个出现的地方都要保留一份这个标识符的拷贝,就会

2022-05-12 10:41:44 1130 3

原创 linux设备适配触摸屏(gt1151)

记录下gt1151触摸驱动适配过程,主控为全志D1s点屏强芯。首先要找触摸驱动源码,可以去goodix的github仓库看一看,找到了一个通用的驱代码,链接如下:https://github.com/goodix/gt1x_driver_generic.git下载下来后放到Tina的kernel对应驱动目录下drivers/input/touchscreen/gt1x_new,新增了一个目录gt1x_new,下面就是驱动代码以及dts的适配了。DTS配置先把dts配置下,配置dts就要先明确硬件引

2022-02-18 01:02:07 2118 4

原创 linux设备上蓝牙协议栈(bluez)移植

本文章主要记录下linux上移植bluez的一些要点流程,以rv1109设备为例说明,蓝牙芯片为rtl8723ds。根据硬件连接,确定蓝牙串口协议是H4 还是 H5,这两个主要差别在于H4是三线串口(rx,tx,gnd),H5是五线串口(三线基础上另加CTS、RTS),确定好串口传输协议,后面就按对应配置选择。根据厂商提供的资料,配置kernel支持蓝牙,并编译蓝牙驱动ko,这部分问题不大。厂商提供的资料中寻找rtk_hciattach工具源码,编译。编译bluez以及相关依赖,rv1109的sd

2022-02-17 15:13:42 3230

原创 解决ubuntu上的samba共享无法被windows访问问题

年后回来发现自己ubuntu服务器的samba共享访问不了了。先来看看samba的log记录的啥root$ cat /var/log/samba/log.smbd[2022/02/14 09:19:46.514611, 0] ../lib/util/fault.c:78(fault_report) ===============================================================[2022/02/14 09:19:46.514638, 0] ..

2022-02-14 09:41:29 3937

原创 micropython开发lvgl教程

前言为什么要使用micropython来开发lvgl而不是用c?当然在资源非常受限的芯片比如单片机上c开发会是很好的选择,或者对于某些不喜欢mpy解释器特性的也不适合。这些都不是本教程谈论的重点,我们先来看看使用micropython开发起来有何不同。我们先来看看lvgl官网关于这个的介绍:https://docs.lvgl.io/master/get-started/micropython.htmlhttps://blog.lvgl.io/2019-02-20/micropython-bindin

2022-01-24 16:06:16 4787 2

原创 D1s芒果派麻雀板:调大SD挂载分区方法

麻雀板初始固件默认是squashfs的只读文件系统,但是我们调试得找一个可读写的分区.,用来存放修改我们自己写的文件。通过df -h 可以看到 /mnt/SDCARD/ 路径下挂载了8M的fatfs文件系统,我们可以把自己的放到这个目录下执行。但是8M显然太小了,我64G的SD卡只能用这么点空间不是很憋屈。打开Tina linux SDK代码动手修改。1.初步尝试首先查看分区信息cat /proc/partitionsls -al /dev/by-name/由此可知mmcblk0p5 为roo

2021-12-29 23:40:16 626

原创 全志D1/D1s芯片:芒果派麻雀点RGB屏填坑

前言最近全志推出了D1处理器,搭载平头哥玄铁906 RISC-V的应用处理器。于是准备入手玩一下,买了芒果派做了基于D1s的麻雀板,D1s是D1内封64M DDR的版本,去掉了hdmi输出。先晒下小巧精致的麻雀:点屏手上正好有块480*272的rgb屏,可以用这个小板子来点一下。想来rgb屏幕应该很好适配,dts里改几个参数就完事了,不过多次调整怎么也没法让画面正常输出,这个问题应该有不少人遇到。先直入主题说一下如何修复问题吧,后面在详细记录填坑过程。快速上手体验我修复的代码patch在这里

2021-12-19 14:03:47 8010 3

原创 ubuntu有线网连接图标不见问题

折腾了下ubuntu虚拟机不知道咋的网就连不上了,查了许久vm虚拟机桥接无法上网的解决办法,不能解决问题。于是我手动命令行强行开启网卡分配IP,发现局域网可以ping通,连接外网的话在分配下DNS应当是可以的。但这终究不是根本解决之道,肯定跟系统网络管理服务相关。最后终于找到了解决办法,记录如下:sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service netwo

2021-12-17 22:31:22 1268

原创 esp32-TTGO使用mpy进行屏幕显示汉字

前言手上有一块吃灰已久的TTGO-esp32开发板,他长这样:于是想拿出来用micropython点个屏玩玩,屏幕驱动IC型号是st7789,giithub查找了一番,发现外国友人已经适配好了驱动,英文字符显示也有了,链接:https://github.com/russhughes/st7789_mpy.git,不过我们想要显示汉字那就得自己动手加上去了。这部分工作我已经适配好了,这里就不展开来讲了。下面详细说说如何显示汉字。汉字库的制作因为esp32存储太小我们自然不会把整个汉字库都放进去,最好

2021-12-12 18:21:15 1994 13

原创 六、HSV颜色空间应用实例——颜色分割提取与替换

教程汇总:python基础入门系列通过之前的章节(四、OpenCV颜色空间——HSV颜色模型),我们已经初步认识了HSV颜色空间的特性与优势,现在就来看两个典型的应用实例,颜色分割提取 与 颜色替换。颜色分割通过HSV颜色空间的操作我们可以准确的对指定颜色进行分割图像,这也是后续图像处理中会用到的一种预处理手段。下面我们就结合一个实例来看HSV颜色分割的应用:如下图是一个穿有红色上衣的人,我们要把衣服部分的图分割出来:通过前面几个章节的讲解我们能够想到,可以通过观察h分量的直方图来确定这个上衣

2021-10-20 15:14:05 6646

原创 编译esp32s2的micropython固件(二)开启psram与串口repl

通过上一章节 编译esp32s2的micropython固件(一)我们已经可以自己编译esp32s2的micropython固件了,现在就可以加些自己需要的改动了。开启psram增大内存为了能实现更大应用运行,有的人会买带有外部psram的esp32s2模组,具有2M或8M的外置ram以提供更大内存,当然对于玩mpy开发来说内存自然大些更好。言归正传,如何开启psram:打开文件 ports\esp32\boards\GENERIC_S2\mpconfigboard.cmake改成如下内容:set

2021-10-15 18:39:50 1459 3

原创 五、自适应阈值与轮廓检测应用实例——细胞计数统计

假设有这样一个任务,通过显微镜拍下的某藻类细胞的玻片图,需要统计图中细胞个数。如果每天都要人工处理这项工作,那么将会浪费大量的时间与人力,我们既然学习了python那么自然可以想办法自动化高效率(偷懒)的完成这项任务。显微镜下藻类细胞图如下:图像预处理这种图是必须要进行处理过的,滤除掉无关多余信息才能更有针对性的进行细胞检测任务,首先想到的便是灰度,二值化处理。上代码:import cv2src=cv2.imread('cell0.jpg')# 鉴于后续的图像处理操作可能会破坏原图,我们这里另拷

2021-10-12 17:44:26 2140 3

原创 四、OpenCV颜色空间——HSV颜色模型

该章节主要介绍两种颜色空间RGB与HSV,HSV将作为我们主要使用的颜色空间。RGB: 在计算机体系中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,主要是易于实现RGB三原色的组合表达各种颜色方便屏幕显示。学过物理的我们应该知道,可见光谱是连续的,而三原色RGB混合能形成其他的颜色,并不是说物理上其他颜色的光是由三原色的光混合形成的,每种单色光都有自己独特的光谱,如黄光是一种单色光,但红色与绿色混合能形成黄色,原因是人的感官系统所致,因为人眼感光细胞就是由红绿蓝三种感光细胞

2021-09-30 17:58:34 11873

原创 三、OpenCV图像的预处理——二值化与自适应阈值

定义: 图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。二值化处理是图像预处理中比较常见且重要的一步,通过二值化处理可以凸显需要处理的部分,大大缩减后续图像处理的数据量。简单阈值(全局阈值)简单阈

2021-09-29 18:23:06 3026 1

原创 二、opencv对图像的基本处理

通过上一节已经学会了使用OpenCV读取、显示、写入图像等基本操作,有了初步基础就可以学习更多的图像处理方法。缩放、裁剪、补边import cv2img=cv2.imread('dog.jpg')# 缩小为200x200的正方形img_200x200=cv2.resize(img,(200,200))# 不直接指定缩放后的大小,通过fx和fy指定缩放比例,0.5表示长宽各一半# 插值方法默认为cv2.INTER_LINEAR,这里指定为最近邻插值img_half=cv2.resize(i

2021-09-24 21:24:52 787

原创 一、opencv-python安装与初步认识

简介OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C+

2021-09-22 18:06:55 799

原创 一、python基础入门

前言人生苦短,我用python。为什么要学习python?当你学会python后会发现工作生活中很多事都可以用编程来快速解决,尤其是一些重复劳作的事情。而python就是一门容易上手且功能强大的万能型语言,现代社会电脑已经成为我们日常使用的一个强大工具,而在未来社会学会一门编程语言如python之类,同样也是作为辅助自己的一个强大工具。进入正题,开始学习。python基本语法关于基本语法的讲解这个有很多教程网站都有写,而且写得也很详细,我这里没必要赘述,推荐两个比较好的python语言教程网站:这个

2021-09-18 18:06:22 164

原创 四、python的包管理

pip使用python之所以被人们广泛使用在于它有庞大的三方库可以方便我们调用以实现各种功能,这些三方库就是一个个module,托管在官方的包管理平台上,python使用pip工具可以方便的安装这些三方mod。python安装好后默认自带了pip。现在随便打开一个cmd窗口,输入pip -h,可以看到pip的用法说明常用的几个指令是:install :安装包uninstall :卸载安装过的包list:列出安装过的包比如我们想要开发串口的应用,那么就需要先安装pyserial模组在cm

2021-09-18 17:53:18 469

原创 三、pycharm的安装使用

安装PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,鉴于目前最新版 PyCharm 使用教程较少,为了节约时间,来介绍一下 PyCharm 在 Windows下是如何安装的。这是 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows进入该网站后,我们会看到如下界面:professional 表示专业版,community 是社区版。如果只想简单安装那就安装社区版,因为是免费使用的。社区

2021-09-18 16:55:44 135

原创 二、python程序的编写运行

编写python程序python是解释性语言,找个记事本写一下就可以,找个目录新建文本文档,重命名为test.py,写如下内容print("hello world")还是那个熟悉的hello world,入门必学hello world输出。如果不是编程科班出身的同学,自己的电脑文件可能看不到文件扩展名,这个自己改下电脑设置就好了,算是入门必备小技巧。打开文件资源管理器,如下图设置,点击查看,勾选文件扩展名。回归主题,我们的test.py写好了怎么运行呢,在这个目录下打开cmd窗口,调用pyth

2021-09-18 15:23:46 464

原创 python基础入门系列

前言人生苦短,我用python。为什么要学习python?当你学会python后会发现工作生活中很多事都可以用编程来快速解决,尤其是一些重复劳作的事情。而python就是一门容易上手且功能强大的万能型语言,现代社会电脑已经成为我们日常使用的一个强大工具,而在未来社会学会一门编程语言如python之类,同样也是作为辅助自己的一个强大工具。进入正题,开始学习。python基本语法关于基本语法的讲解这个有很多教程网站都有写,而且写得也很详细,我这里没必要赘述,推荐两个比较好的python语言教程网站:这个

2021-09-18 13:47:41 431

原创 使用mpy的logging模组记录日志

目录1.前言2.安装使用3.log记录的一些配置3.1Formatter 格式化器1.前言为了记录程序运行过程中的信息,便想着找一个能记录日志文件的模组,在cPython中常用的日志记录模组是logging,但是mpy不一定有,便去mpy官方模组托管库(https://github.com/micropython/micropython-lib.git)查了下,发现已经有了,位于python-stdlib\logging目录中,但是查看源码以及例子发现功能很简单,没有文件记录功能。只好自己手动完善一下了

2021-09-08 17:32:04 111

原创 Unix 端口micropython串口使用

目录Unix 端口micropython串口使用1.安装串口模组2.编写代码测试3.增加串口波特率以及超时时间的优化3.1增加波特率3.2优化超时时间Unix 端口micropython串口使用unix端口上mpy作为串口测试工具还是很方便的,前两章我们已经移植好了arm板的linux系统上运行的mpy,没有看过的同学点击下面链接查看,现在来继续学习串口的使用。链接:支持LVGL的micropython固件编译(二)arm板移植1.安装串口模组在python中我们首先会想到安装pyserial,m

2021-07-29 14:49:25 428

原创 编译esp32s2的micropython固件(一)

开发环境软件:Ubuntu 18.04虚拟机硬件:esp32s2开发板ubuntu安装编译依赖环境:sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial如果已经安装过了,不会再次安装。另外1.15之后版本mpy依赖cmake,这个后面编译遇到问题再讲。1.下载源码创建工作目录:mkdir workcd work下载mpy源码:git clone https:/

2021-07-28 14:18:18 3610 2

原创 支持LVGL的micropython固件编译(二)arm板移植

开发环境软件:Ubuntu 18.04虚拟机硬件:君正T31开发板,RV1109开发板,Hi3516DV300开发板关于lvgl版本micropython源码下载编译部分上一章已做过讲解,链接:支持LVGL的micropython固件编译(一)1.编译依赖库libffiunix版mpy的源码编译需要依赖libffi,实际上标准cpython在3.7版本之后也是依赖这个的,关于这个的交叉编译再此不在赘述,不会的可以自己去百度,或者查看我之前的一篇文章作为参照:给arm板编译移植pyth

2021-07-02 20:43:49 2571 2

原创 支持LVGL的micropython固件编译(一)

LVGL是一款嵌入式开发比较常用的开源GUI库,lvgl本身采用c以面向对象的方式开发,这种高级特性可以很好的适应高级语言,所以采用python开发也是不错的选择。现在我们就尝试下使用micropython开发lvgl应用。官方对micropython已经做了移植支持,采用pycparser工具将lvgl c源码进行封装出一个中间c文件做为mpy模组接口。lvgl官方github上已经做好了带有移植lvlg的micropython例子,我们直接下载下来编译即可使用。开发环境硬...

2021-06-30 20:29:45 4879 11

原创 给arm板编译移植python(二)移植zlib与_ctypes

上一节我们已经编译移植好了基本的python,今天来讲如何移植zlib与_ctypes移植zlibzlib下载这里使用的是zlib-1.2.11tar xzvf zlib-1.2.11.tar.gz # 解压缩cd zlib-1.2.11 编译主机版zlib 编译主机zlib前我们需要先切换编译器为主机编译器执行export CC=gccexport CC=gcc./configuremakesudo make install编译目标版zlibmkd.

2020-10-26 12:14:59 1813 4

原创 给arm板编译移植python(一)

背景:  人生苦短,我用Python。arm板上可以跑python的话,我们就能轻松愉快的做很多事了。说明:  编译Python的嵌入式版需要解释器解析setup.py从而编译Python的模块,因此需要先编译出host的解释器。(有点像Go语言)  Python  :Python 3.7.6编译:home下新建一个目录python3.7,在python3.7下新建make.sh脚本。cd ~mkdir python3.7cd python3.7nano make.s..

2020-10-26 12:11:19 2064 4

原创 windows下 用SWIG工具给python封装c/c++库

SWIG是个帮助使用C或者C++编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。SWIG能应用于各种不同类型的语言,包括常用脚本编译语言,例如Perl, PHP, Python, Tcl, Ruby 和 PHP。SWIG普遍应用于创建高级语言解析或汇编程序环境、用户接口、作为一种用来测试C/C++或进行原型设计的工具。工作中碰到了一个小问题:有一个加密/解密的程序原本是用C++语言写的,后来需要用Python来实现调用。简单粗暴的办法是照着C++代码重写一个Python版本的程序,但.

2020-09-30 13:40:53 584

原创 ESP32编译micropython固件

开发环境硬件:ESP32-WROOM-32 开发板软件:Ubuntu 18.04虚拟机1.安装交叉编译工具链所依赖的环境**sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial如果已经安装过了,不会再次安装。2.创建工作目录级设置编译链1.创建工作目录mkdir ~/esp32cd ~/esp322.在官网上下载最新的交叉编译链wgethttps://dl.espressif..

2020-09-28 15:41:44 1469

micropython-lvgl 的 linux drm 驱动 c 模组源码

micropython-lvgl 的 linux drm 驱动 c 模组源码

2022-06-02

lvgl官方设计器,edgeline的正式版本SquareLine 1.0,设计好界面后可以导出c或micropython代码

lvgl官方设计器,edgeline的正式版本SquareLine 1.0,设计好界面后可以导出c或micropython代码。

2022-02-09

fix-rgb-lcd-patch.zip

D1s修复RGB-LCD点屏异常补丁,分别在kernel与uboot路径下打上补丁即可。详见:https://blog.csdn.net/qq_34440409/article/details/122021748?spm=1001.2014.3001.5502

2021-12-19

hex文件与bin文件互相转换工具,hex文件合并工具 hex2bin.py

hex文件与bin文件互相转换工具,hex文件合并工具,hex2bin.py源码

2021-10-18

EdgeLine_Setup_v0_3_installer.exe

lvgl的官方UI设计器,支持c或micropython代码导出

2021-08-23

python版植物大战僵尸源码

python版植物大战僵尸的源码,基于pygame编写,可直接运行。

2020-10-10

en.stm32cubeprog.zip

stm32cubeprogrammer-2.2.0,windows和linux安装包

2019-10-27

IAR 7.80.4的安装包

IAR for ARM 7.8是由瑞典 IAR Systems公司推出的一款嵌入式单片机集成开发环境 文件1个G,百度链接下载 后续会上传破解工具

2018-11-02

算出一组数组中最大值次大值最小值次小值c程序

算出一组数组中最大值次大值最小值次小值c程序,用于波形处理等场合

2018-07-12

visual_scope破解版

visual_scope破解版,用于串口调试在上位机显示波形,非常好用的调试工具

2018-07-12

ch340电路图及pcb工程文件可直接拿去打板

ch340电路图及pcb工程文件可直接拿去打板。usb转ttl可用于单片机与电脑之间串口通信

2018-07-11

51单片机闹钟

基于51单片机的闹钟

2017-08-15

空空如也

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

TA关注的人

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