云母色选机PLC代码详解
6ac8868b32d665124b35b270e095c5af3726a0b6274c811ad23f06846cc4427fbe2440bfbb7192c051f4cd89460498a10c39b8f5e65a08beadacf8d66e525af182a27e49025df1fd2b5dd6b714fca3fe843d06619f8b9d9e3046f1ca0fb2b8b046442af05422f6741954d69fe400836ac0f7aebf8166e7b78274904d5da8faadfb0f77974d4d3b67414f5ea29bf01e854634d2f213ab9151e63b0e7eeb2e1d9ea6887d6e611bb9abb1edbdb91dbe29b149620d7d13f2d5a59da3821cc144b1e41fc293cb83a9ca1c21c16b56001c8640b87f21556ce9d014bb5015cafa00cffaf7df81c9192215628714161d601582d657e7624bb182c346c ...
streamlit 网页端opencv图像处理
streamlit 简介Streamlit是一个用于创建交互式Web应用程序的Python库。它的主要目标是使数据科学家能够快速轻松地搭建和部署机器学习模型、数据可视化和演示等应用。以下是Streamlit的一些核心特点和优势:简单易用:Streamlit提供了简洁直观的API,使得创建Web应用变得非常简单。只需使用少量的Python代码,就能够构建交互式应用程序,无需繁杂的前端开发经验。实时更新:Streamlit支持实时更新,即当修改代码后,应用程序会自动重新加载,并且可以即时看到修改后的效果,方便进行迭代开发和调试。内置组件:Streamlit提供了各种内置组件,可以方便地构建用户界面,包括文本输入框、下拉菜单、按钮、图表等,使得用户与应用程序进行交互更加灵活。多媒体支持:Streamlit内置了对多媒体内容的支持,可以轻松地显示图像、音频和视频等,方便展示和分析多媒体数据。部署简单:Streamlit应用程序可以非常容易地部署在各种平台上,包括本地服务器、云服务器以及各种云服务提供商(如Heroku、AWS等),使得应用的分享和展示变得非常便捷。总之,Streamlit是一个 ...
esp32cam和esp-eye 视频流http网络传输
介绍 esp33cam与esp-eye开发板,其实使用起来是差不多的,我最开始是使用的esp32cam,但是这个板子问题很多,不管是下载程序,还是图像质量,都存在很大的问题,一年内我用了三次esp32cam 每次都折腾很久,每次出现新的问题,走了不少弯路,最后这次调通esp32cam后,还是果断放弃了使用esp32cam,选择了乐鑫官方的 esp-eye板子。
esp32cam的坑踩坑!!!
市面上的esp32cam鱼龙混杂,都是盗版,问题很多,我买了两块板,第一块最开始可以插上他配的地板下载程序,前两次使用可以下载,最后一次就不行了,第二块esp32cam插上地板纯粹不能下载程序。 之后我是用ttl下载器烧写程序
通过ttl下载程序就是将ttl与板子的串口相连接,进行通信,板子上的Io0引脚控制下载程序,Io0接地,板子进入下载程序阶段,此时可以通过adruino软件进行下载程序,下载完程序后,将Io0置高电平,即可正常运行。 坑1:esp32cam板子 Io0旁边的GND引脚有问题,不是连接的地,需要换个GND引脚 坑2:如果使用底板供电,会导致画质中间 ...
opencv 人体姿态识别
人体姿态识别算法 这个算法是在opencv的扩展库里,所以操作起来很方便
创建python环境 以及opencv我使用的是在conda创建的虚拟python环境,也可以直接在windows/或者linux安装python环境,python安装opencv库的话相当简单,只需一条命令即可。
pip install opencv-contrib-python 这个是opencv的拓展库 包含基础库
直接运行下面源码即可 python3 xxx.py
源码功能是实现对摄像头的画面进行处理,识别,所以使用前先插入个USB摄像头,或者自带的摄像头人体姿态模型 https://yun.laohu.space/share/A0avvXhT
import cv2 as cvimport numpy as npimport argparseparser = argparse.ArgumentParser()parser.add_argument('--input', help='Path to image or video. Skip to capture ...
c++ 串口通信-发送数据
一、安装VS软件,安装的时候选择 c++编译器,即可直接创建完c++环境
先添加下面的串口两个文件,之后在main.cpp中调用函数即可使用串口
if (w.open("COM7")) //串口初始化,选择合适的com口{ cout << "打开成功" << endl; cout << "在这里我发送:恭喜发财" << endl; w.send("恭喜发财"); //串口发送函数 //w.close(); //串口关闭函数}
readport.cpp内容如下:
#include "readport.h"#include <stdio.h>#include <string.h>#include <WinSock2.h>#include <windows.h>WZSerialPort::WZSerialPort(){}WZSerialPort ...
linux板上运行yolov5 目标检测
前言 YOLOv5 是一个目标检测算法,它是由 Ultralytics 开发的基于深度学习的实时目标检测框架。我这里主要是想在 orangepi5 plus板子上实现目标检测。
我所使用的配置和环境:1、linux板子(orangepi5 plus 16G)2、linux操作系统(ubuntu22.04)3、USB摄像头
如何使用yolov5 yolov5是基于python开发的,他的使用有些类似opencv的使用,首先要给他创建python环境,最好是用Anaconda+Pycharm的环境结构,他是通过构建一个python的虚拟环境,类似虚拟机,然后在这个环境下安装yolov5的虚拟环境。看到也有使用docker跑yolov5的,那样更简单。 我之前以为Anaconda像docker一样,创建的容器互不影响,没想到他巨垃圾,他不同镜像之间的库是公用的,也就是你在一个镜像里升级一个库,那么如果其他镜像中也有这个库,那这两个库的版本会保持一致,很恶心,你想测试在不同版本下的运行情况就行不通了。
ubuntu环境下测试现在办公室的闲置主机上跑yolov5训练,之后将程序移植 ...
200SMART PLC单片机
前言 200smart使用的是STEP 7-MicroWIN SMART 这款开发软件,相比博途软件要容易,方便的多。 但是他无法模拟仿真,必须接200smart单片机才可以仿真。
200SMART io输出也分型号,有的是继电器输出口,有的是晶体管输出,按需求选择型号。PIC功能相对较少,默认只有I/O控制和485,网卡通信,AD模拟输入输出需要外接模块。
S7 200SMART 手册 <https://yun.laohu.space/share/2aK4cOuV
控制io输入/输出硬件介绍
PLC的输入和输出是看他回路的通断决定他是开还是关,与输入/输出电压的高低电平无关。
输入是在单片机的上面,DIa和DIb两部分,对应的引脚端地址分别为 I0.0-I0.7 I1.0-I0.3
比如在接开关时,开关的一端接 I0.0另一端接1M口,同时1M口需要外接开关能承受的电源+,从而构成回路;
同理,DO0-DO7 为输出口,1L 2L分别为两块区域的闭合回路端
程序设计下载程序使用网线连接,使PLC和电脑共处同一网关下,通过软件上的PL ...
部署 Nginx Proxy Manger 反向代理 配置阿里云SSL证书
前言(小白建议看下) NGINX Proxy Manager是一个基于Web界面的代理服务器管理工具,用于简化和集中管理NGINX反向代理服务器。 简单点说,就是比如你的服务器有好多个网站需要管理,但是服务器只有一个80和443端口,你就没办法让每一个网站都是用80 443 也就是无法使用http https 直接加域名使用,反向代理的作用就是将所有的网站给他加个代理转发,让新的域名代替旧的 域名+端口的域名;举个例子:你服务器IP绑定的域名是 laohu.space ,你搭建了两个网站使用了两个端口 8000,8001. 那么你就可以通过使用 http://laohu.space:8000 和http://laohu.space:8001 去访问这两个网站,但是 用端口去访问网站 别人是不知道你在哪个端口的,在浏览器上也不会搜索到你的网站,只有在80 443的网站才能被别人搜索到。 反向代理的作用就是可以将 http://laohu.space:8000 的原本域名,用一个新的域名 http://uu.laohu.space 的域名去代替,他改变的的域名前缀,要比修改端口也要方 ...
嵌入式linux mp157 开发
开发环境mp157开发板在烧录系统之前,需要先烧写 TF-A ,该程序是写在ARM处理器里面的,处理器里面也有点内存,几M的大小吧,像M的单片机的运行程序就是直接烧写在处理器里面,烧写linux一般是烧写在emmc,sd卡,硬盘里。TF-A的作用是保护系统的环节,系统启动后,先开始运行TF-A,检测系统以及硬件配置这些。每个做arm芯片的厂家会提供一套TF-A源码,然后制作板子再根据厂家提供的源码进行修改,打补丁,使其兼容自己的板子。
正点原子mp157的板子烧写TF-A步骤:
烧写的文件[tf-a-stm32mp157d-atk-serialboot.stm32] 用于将烧录工具和arm先连接[tf-a-stm32mp157d-atk-trusted.stm32] tf-a的源码[u-boot.stm32] 在该uboot系统下进行烧写tf-a源码[flashlayout.tsv] 类似与目录,说明烧烤程序的具体位置,在烧录时将这个文件添加后,即可开始下载程序
烧写工具1、打开[STM32CubeProgrammer]软件,将拨码开关开启USB启动,然后连接usb ...
docker 部署 ipsec 服务器
前言用于实现网络共享
准备环境mkdir -p /data/ipsec-vpn-server/vim vpn.env#IPsec预共享密钥VPN_IPSEC_PSK=1qaz2wsx#vpn 用户VPN_USER=vpnVPN_PASSWORD=123456#IPsec VPN 使用的公网地址VPN_PUBLIC_IP=114.115.253.155#添加而外的用户,需要空格隔开VPN_ADDL_USERS=vpn1 vpn2#额外用户的密码,也一样需要空格隔开VPN_ADDL_PASSWORDS=vpn11234 pass21234
添加用户需要删除容器,重新创建容器才可生效
创建运行容器docker run --name ipsec-vpn-server --env-file /root/docker-date/vpn.env --restart=always -p 500:500/udp -p 4500:4500/udp -v /lib/modules:/lib/modules:ro -d --privileged hwdsl2/ipsec-vpn-server