记录|一些使用过的图形处理
opencvOpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,具有多平台、多语言的特点。
C++通过C++使用opencv时,由于需要配置依赖项与工具目录,笔者使用Visual Studio来构建工程,具体配置教程请参考:opencv安装教程测试例程如下:1234567891011121314151617181920212223242526272829303132333435363738394041#include <opencv2/opencv.hpp>int main() { // 打开默认摄像头(通常是摄像头0) cv::VideoCapture cap(0); // 检查摄像头是否成功打开 if (!cap.isOpened()) { std::cerr << "Error: Could not open camera." << std::endl; return -1; ...
STM32应用
前言STM32系列单片机作为我使用时间最长,参与比赛最多的单片机,陪伴我通过科协考核,拿过电赛国奖,但一直以来我对于它的使用都比较功利性,着重于功能的实现,忽视了它很多的优秀素质,如我在H7系列中使用过USB虚拟串口,但最近我才知道连基本的STM32F1C8T6都有usb外设,可使用HID模拟键盘、鼠标。本博客记录一些STM32中的优化方法,尝试最大化发挥STM32的效用。
STM32时钟系统以STM32F4系列为例,关于时钟的配置在system_stm32f4xx.c中,上电后startup汇编调用SystemInit(void)进而使用SetSysClock(void)配置系统时钟。(stm32f103也有相关的设置,具体位置可去.h文件中go to define)在316行左右可配置锁相环,类似下图:1234567891011121314151617181920/************************* PLL Parameters *************************************/#if defined (STM32F40_41xxx) || ...
PCB制图|基础
常用电路组成去耦电容所谓的耦是是指耦合,由于线路导线存在寄生电阻与寄生电感,当不同芯片取电导致线路电流大小变化时,会导致电压产生波动即不再纯净,这就是不同芯片之间耦合出来的干扰,所谓去耦电容就是就是去除这些干扰,通常的选值为0.1uf,且由于去耦半径的存在,这颗电容距离芯片端越近越好,主要的目的是滤除来自于芯片的高频噪声(芯片本身由于内部晶体管导通关断产生的交流噪声耦合到电源上)。
旁路电容除了上述提到的去除高频噪声外,还有低频噪声需要滤除,但不同的是:高频噪声一般来自于芯片,而低频噪声一般来自于电源芯片即外部,所以一般遵循“越近越小”即越靠近芯片滤波电容越小,先滤低频噪声再滤高频噪声。另外,除了滤波,还有稳压的作用,如果后级负载变化,靠电源输出的瞬态响应是不够的,要先放电容的电。
禁止滤波与无效滤波禁止滤波是指:在设置基准电压的时候,比如tl431,由于其内部有运放反馈环路,外部电容负载大了会导致环路不稳定发生振荡(电容的自谐振频率可以看厂商提供的并联S21图或者自己用阻抗分析仪测量,自谐振频率除了容值还跟封装、电介质材料有关)。无效滤波是指:电源接出来的过孔在mcu和退耦电容之间, ...
ESP32-Watch|记录
前期准备
面包板
esp32S3核心板
FPC转接板
一块屏幕
带数据传输的Type-c线
笔者使用的屏幕是P169H002,像素为240*320,其驱动IC为ST7789V,触摸IC为CST816D,主控型号为ESP32S3-N16R8,采用vscode+esp-idf的方式进行软件开发。本文章也是基于此撰写。
资料查取网站:乐鑫组件库、乐鑫IoT官方文档、乐鑫开源代码库
硬件手册勘察根据屏幕的技术手册,确定其用的是四线SPI模式0,颜色深度为16bit,命令位数为8bit。触控IC则支持最高400khz的工作频率,支持内部上拉
管脚配置注意不要使用strapping引脚,上电时候此类引脚的电平状态会决定芯片的启动模式。
驱动配置在乐鑫组件库中搜索lcd驱动,笔者使用esp_lcd_ili9341,下载源代码后,在其头文件中检查其默认配置再继续查看乐鑫组件库lcd的命令配置和芯片的是否一致,组件库路径为ESP_IDF\esp-idf\components总结:直接使用默认参数即可
配置工程经过前期的准备,我们确认了所使用的管脚,驱动的兼容性后就可以正式开始了。
新建工程我们并不需 ...
Esp01s与物联网使用指南
模块简述esp01s是物联网无线模块,板载芯片为esp8266ex,1M SPI外设储存笔者:其实esp01s给我感觉很不稳定,特别是IO0和IO2引脚,会发生引脚抖动,如后接继电器,则导致继电器工作状态不确定,如错误发生,改用TX、RX(即1、3号引脚) 如不对模块大小有要求,建议选用esp-12f或esp8266NodeMCU,程序代码通用的
模块特点1.WIFI支持安全机制WPA/WPA22.WIFI模式支持 接入点/热点/接入点&热点3.外设丰富:UART、SDIO、SPI、IIC、GPIO、ADC、PWM、IR遥控
引脚定义
程序开发环境&准备笔者推荐使用vscode+插件platformIO+arduino库的开发方式,不仅开发简单,拓展性也极强。下载程序需切换为下载模式,上电后bootloader输出的信息,波特率为76800,为方便起见,在开发时应另购买esp01s烧录器
点灯测试代码123456789101112const int LED_PIN = 2;void setup() { pinMode(LED_PIN, O ...
天文爱好者协会观星活动
活动简介地点:广西-桂林-灵川县-灵田镇-福家田时间:2024-3-11 18:50~22:30天气状况:极佳,为近来天气最好的。从桂电向福家田出发需开电动车一个多小时,远离城市,光污染少。
成片照片参数:
感光度 800
快门 15s
光圈 f2.8
Yolov5目标检测模型简述
介绍计算机视觉有两大模型类别,目标分类模型与目标检测模型,前者输入一张图片,输出的是对这张照片的类型判定,而目标检测更深一步,不仅要标识出目标的类型还要标识出其位置。yolo(You Only Look Once)便是一个非常优秀的目标检测模型,本文以其v5版本讲解。
获取官方代码在github上的官方页面中,我们在左上角选择master,在其下拉属性中可选择分支与tags,我们按照tag选择,笔者选择的为v7.0版本,右上角点击CODE,在下拉菜单点击”Download ZIP”可将文件打包下载,解压到自己的项目文件夹,注意目录不要有中文,否则opencv等库可能会崩溃。
软件需求需要用的软件有:pycharm、anaconda,具体安装教程可在网上查找,安装完成后,由于目前中国大陆境内对国际网的访问时常被阻断,而anaconda需要访问假设在国外的服务器来获取python包,我们需要将anaconda的目标服务器设置为国内的镜像源,使用以下指令切换为中国科技大学的镜像源:1234567conda config --remove-key channelsconda config -- ...
Python爬虫入门
前言网页构成首先介绍一个网页的基本构成:HTML负责网页的结构,CSS负责样式的美化,Javascript负责交互逻辑。
HTML
CSS
Javascript
点击 F12打开开发者工具(部分电脑可能为Fn + F12),使用元素选择工具,再将鼠标指针移动到任意网页元素,单击该元素则该元素对应的网页源代码会被选中。从网页源代码中可看出,大部分网页元素是由诸如“\文本内容\”这样的源代码定义的,这些标识符称为HTML标签,它们有以下基本类型:
\
\、\、\
\
\
\
\<\span>
\<\img>
\<\kbd>更为详细的介绍可在菜鸟教程-HTML中了解与进一步学习。
一些相关知识网页的动态加载与静态加载静态加载意为服务器一次性发送所有网页数据给终端,动态加载意为服务器发送的是一个网页模板,而后终端再通过Ajax或其他方式将数据(通常是JSON数据包)填入到模板中。有些网站能做到不刷新网页就能向服务器申请内容,比如b站的评论区,实际上数据是在点击了下一页后才申请下来的,这就是动态网页的典型应用。
正则表达式正则表达 ...
博客搭建记录|教程
前言首先介绍搭建博客需要使用的东西:Nodejs是一个Javascript运行环境,作为底层架构在本例中实现构建和生成静态网站;Git,是分布式版本控制系统,用于将本地的资源文件上传到服务器端;Github应该不陌生了,全世界最大的程序员交流网站,它同时免费提供静态网站的服务器。
Nodejs
Git
Github账号
文本编辑器(如vscode、Typora)
一个域名(可选)
CDN加速(可选) 环境搭建Nodejs安装Nodejs在官方下载地址中选择适合自己系统的版本下载安装即可。在cmd中输入该命令查看版本号,成功返回版本号即代表安装完毕。如提示找不到命令,请尝试把nodejs放入系统path中,或在B站、CSDN中查找教程进行卸载重装。1node -v
Nodejs自带的包管理工具——npm在这里,我介绍一下npm(Node Package Manager),它是一个用于管理和共享 JavaScript 包的包管理器,我们使用它来向中央服务器发出请求下载某个模块(比如本文的建站Hexo模块),有Python基础的同学应该会立即联想到Python的pip指令,你的直觉没错的 ...