- 博客(21)
- 收藏
- 关注
原创 Modbus通信协议详解-超级小白必懂
Modbus协议是一种用于工业控制的网络通讯协议,可以片面的理解为,Modbus协议一种机器与机器之间进行数据、信息传递的一种格式规范。Modbus协议还遵循主从协议,支持单主机,多从机,最多支持247个从机设备。并且,在同一个通信线路上只会有一个主机,所有的通讯过程全部由主机主动发起,从机接收到主机请求后,会对请求做出响应。从机不会主动进行数据的发送,从机之间也不会有通讯过程。
2024-09-27 21:54:55 1141
原创 虚拟机网络的三种模式,NAT模式,桥接模式,仅主机模式
使用nat模式,主机会多出一个网卡,这个网卡vmnet8就是和虚拟机的那个虚拟交换机同一个网段,所以他们也能互相ping通,虚拟机仅和主机是同一个局域网的,也就意味着他们可以互相ping通的,但是虚拟机是上不了网的。使用桥接模式会在虚拟机生成一个虚拟交换机,连接到主机的网卡,所以他们是能互相ping通的。,因为虚拟机还有个虚拟的NAT设备,关闭了也可以通过这个虚拟设备连接到路由,进而继续上网。可以试试关闭这个网卡,关掉了主机就ping不通虚拟机了,但是虚拟机是可以ping通主机的。
2024-08-23 17:05:09 560
原创 python调用IP摄像头
值得注意的是,把那个source变成自己的摄像头的地址即可,把下面完整的代码拷贝运行就可以啦,快去试试吧。直接去浏览器搜索,并找到对应的下面的这个即可,也可以用我提供的这个链接去下载。二、勾选RTSP服务器,然后记下这里的局域网地址,后续会用到。三、在代码中调用即可。
2024-08-01 16:58:46 376
原创 yolov5训练的pt模型,转换为rknn并部署在瑞芯微RK3588开发板
一、下载源码在GitHub中搜索并下载yolov5的源代码,然后放在自己部署好的项目环境。直接用下面的命令即可部署适合yolov5的环境,至于缺什么库,什么版本不对的可以百度查一下。
2024-07-28 20:00:51 729
原创 Linux问题解决
删除/usr/lib目录下文件。否则再次安装时会出现错误:sudo rm /usr/lib/vmware-tools -r。1、打开VMware Workstation,开启需要安装VMware Tools的虚拟机,在顶部选择菜单栏的虚拟机选项卡,点击“安装VMware Tools(T)”。原文链接:https://blog.csdn.net/weixin_45719444/article/details/123983682。进入到目录:cd /opt/vmware-tools-distrib/bin。
2024-07-14 12:41:14 206
原创 在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换
在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换
2024-07-13 16:12:45 976
原创 瑞芯微RK3588开发板部署深度网络
一、先去buildroot官网下载buildroot,下载完然后放到共享文件夹,或者直接拖到虚拟机进行编译安装,然后在虚拟机解压,我这里直接放到共享文件夹然后复制到虚拟机的家目录,建议在家目录进行编译,我没试过在其他目录下编译的。这个过程可能会有很多问题,但是我不记得会出什么问题了,基本上安装了就可以了,可能会缺各种库的问题,具体再百度查查,也可以看看我另一篇博客,关于部署的问题的。注意:本次用到的RK3588上用到的系统是bulidroot的,这个build出来的根文件系统是给开发板用的,很重要。
2024-07-13 08:52:27 1008
原创 RK3588部署神经网络的问题
说明还有个opncv的库要装,pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 使用这个命令安装。安装了之后再运行上面的test.py还是有问题,再装一下下面的库。运行程序 python3 test.py ,发现缺少。这个文件需要拷贝到瑞芯微RK3588开发板里面去。再运行test.py就可以正常运行了。
2024-07-12 16:02:31 501
原创 瑞芯微RK3588开发板上安装Gstreamer库以及安装对应的交叉工具链
注意:本次用到的RK3588上用到的系统是bulidroot的一、先去buildroot官网下载buildroot,下载完然后放到共享文件夹,或者直接拖到虚拟机进行编译安装,然后在虚拟机解压,我这里直接放到共享文件夹然后复制到虚拟机的家目录,建议在家目录进行编译,我没试过在其他目录下编译的。二、这里已经把压缩包放到了家目录的buildroot目录下,这个目录是我自己创建的。然后使用以下命令解压。解压完成就进入这个文件夹。解压命令。
2024-07-05 14:59:21 1013
原创 Phthon开发【第十篇】:类的静态、组合、继承、多态、封装、反射
由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同class H2O:print('[%s]温度太低结冰了' %self.name)print('[%s]液化成冰' %self.name)print('[%s] 温度太高变成了水蒸气' %self.name)passpasspassw1 = Water('水',25)i1 =Ice('冰',-20)s1 = Steam('蒸汽',3000)func(w1)func(i1)
2024-05-26 17:47:25 1344
原创 Python开发【第九篇】:面向对象
注意:只有通过点‘.'来查找的才符合只在类里面找,但是我上面的country没有通过点来查找,所以可以输出数据,可以看到我们有在类里面定义一个country,类外面也定义了一个country,但是我们没有用点的方式去调用,所以选的是外面的那个country,所以输出是'中国'只是在实例的字典中新增一个字典,没有修改类本身的数据,只是在实例中新增了一个country而没有修改原本类中country的数据属性。r1.wash_body('a','b','c')#使用了类的工具包,所以实例出来的对象可以调用。
2024-05-24 22:00:02 612 1
原创 Python开发【第八篇】:模块
执行的是‘包的多层调用.py文件’那么cal.py文件就相当于模块的加载,所以print(__name__)就是web1.web2.web3.cal,而‘包的多层调用.py文件’是执行文件,所以print(__name__)他是__main__我这里定义一个test.py 和 cal.py文件,然后通过在cal.py文件里面实现功能函数,在test.py里面通过import cal加载模块,然后调用cal.py文件里面的函数。包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来。
2024-05-14 16:22:59 602 1
原创 Python开发【第七篇】:文件处理,文件的增删查改功能
将 haproxy.conf 修改为 haproxy.conf.bak,就是修改个文件名。
2024-05-13 20:48:13 451 1
原创 Python开发【第六篇】:装饰器
1、@auth('filedb') ====== auth_fun = auth(auth_type= 'filedb') ------> 2、index = auth func(index) ==== @auth_fun 做了这两件事。在要修饰的函数前面加上 @+要修饰的函数名 等于赋值回去给原来的函数,达到修饰的作用,例如以下这样。#多运行了一步,不合格,说明单单高阶函数无法满足装饰器功能。装饰器的知识储备:装饰器= 高阶函数+函数嵌套+闭包。1、不修改被修饰函数的源代码。
2024-05-13 15:52:44 362
原创 Python开发【第五篇】:迭代器与生成器
1、把列表解析的[]换成()得到的就是生成器表达式# 2、列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存#列表解析sum[i for in range(100000000000000)] # 内存占用大,机器容易卡死#生成器表达式sum(i for i in range(100000000000000))# 几乎不占用内存。
2024-05-11 16:38:15 1196 1
原创 Python开发【第四篇】:文件操作篇
seek 默认是从头开始算的,0是从头开始,1是从当前位置开始,2是从末尾开始,操作的前提是文件打开方式是以字节流操作 也就是用b模式,不然会报错。注意:read(3) 代表读取3个字符,其余的文件内光标移动都是以字节为单位,如seek, tell, read, truncate。打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。注:1、以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型。"b"表示以字节的方式操作。
2024-05-09 17:46:50 566
原创 Python开发【第三篇】:Python内置函数的使用
例如:通过movie_people这个列表,然后通过for循环取到每一个值,然后传给参数一,返回对应的结果,然后通过list或者tuple来接收一下。#功能:将参数2中通过for循环循环到的值然后传给参数一这个函数进而实现对应的功能,然后通过追加的方式返回一个起始地址。#功能:将参数2中通过for循环循环到的值然后传给参数一这个函数进而实现对应的功能,然后通过追加的方式返回一个起始地址。# map 函数: 参数1:要实现的函数 参数2:可迭代对象(列表)#参数1:要实现的功能,
2024-05-02 20:56:40 386 2
原创 Python开发【第一篇】:Python基本数据类型
常用:key() value() items() get update。"k1":"v1", # 键值对 ———— 键:值。#一般写元祖的时候最好再最后加上一个','用于区分函数和元祖。#### 列表、布尔值、字典 不能作为字典的key。int(整型) 所有的功能,都放在int里。#索引、切片、循环 以及元素不能被修改。#元素不可被修改,不能被增加或者删除。用户按照顺序循环可迭代对象中的内容,#可以被for循环,是可迭代对象。指定范围,生成指定的数字。为可迭代的对象添加序号。
2024-04-30 00:00:11 555 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人