自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Pycharm安装在Linux系统中

Pycharm安装在Linux系统中Pycharm安装在Linux系统中1.下载安装包,linux的安装包是以.tar.gz格式的。2.解压下载好的安装包并安装3.使用安装好的pycharm运行一下自带的程序报错了,错误信息为:Failed to create virtual environment原因是:ubuntu18.04默认没有安装setuptools解决办法:在新的终端执行下面命令:然后运行程序又报错了,不要紧,选择一个python的解析器即可。由于上一次已经安装了Anacond,所以使用Anac

2022-01-12 19:09:50 22799

原创 Anaconda安装在Linux系统下步骤

Anaconda安装在Linux系统下步骤Anaconda安装在Linux系统下步骤:1.去清华镜像站下载下载链接2.安装进入自己的安装目录,开始安装。3.安装过程安装过程中询问你yes还是no,输入yes就行。最后会询问你是否需要安装VS code,如果不需要输入no即可。4.配置环境变量我在安装的时候它自动配置环境变量了,如果没有,需要自己配置一下环境变量。5.检查是否成功安装打开终端,输入Anaconda安装在Linux系统下步骤:1.去清华镜像站下载下载链接2.安装进入自己的安装目录,开始

2022-01-12 11:18:13 1346

原创 利用Anaconda安装PyTorch并将Anaconda创建的虚拟环境添加到Pycharm中

利用Anaconda安装PyTorch并将Anaconda创建的虚拟环境添加到Pycharm中一、利用Anaconda安装PyTorch1.执行如下的指令查看有哪些环境2. 创建虚拟环境conda create -n 环境名字(英文) python=x.x(python版本)3.激活此环境。conda activate 虚拟环境名称4.安装pytorch-gup版的环境,由于pytorch的官网在国外,下载相关的环境包是比较慢的,所以我们给环境换源。在pytorch环境下执行如下的命名给环境换清华源。5.进

2022-01-10 19:49:40 2503 2

原创 UART、RS232、RS485、IIC的通信原理介绍

UART1. UART概念2. 并行通信和串行通信并行通信就是一次性的传输8位数据,串行通信是一位一位的传输数据。优缺点自行搜索吧。3. 单工通信和双工通信4. 波特率5. 通信格式5.1 起始位作用:数据线空闲的时候规定是高电平,如果发送0xFF,则发送的为1111 1111,如果没有起始位,则无法判断什么时候开始发送的,无法区分是空闲状态还是发送的数据。所以规定发送数据之前先发送一个低电平。5.2 数据位数据位 低电平代表0,高电平代表1,规定从数据的低位开始发送。可以

2021-10-10 15:00:56 1614

原创 关键字data idata xdata code using

1. data        指定数据存储在内部低128字节的数据存储器(RAM)内,即(0x00-0x7f)地址范围内,在定义变量时不指定存储区域,则默认为data类型,这部分存储区可用acc直接读写,片内直接寻址,速度最快,生成的代码也最小。        由于空间较小,所以只有频繁用到或者对访问速度要求很高的变量才可以放在data区内,比如

2021-09-28 21:00:23 263

原创 继电器电路原理图,PNP和NPN三极管介绍

1. PNP型三极管电路原理图电阻选用R4=3k4 KΩ电阻选用R1=330 Ω2. NPN型三极管电路原理图

2021-09-23 21:24:51 10698

原创 RTOS的常见功能介绍(信号量、互斥锁、自旋锁、事件、邮箱、消息队列 、工作队列)

RTOS的常见功能介绍(信号量、互斥锁、自旋锁、事件、邮箱、消息队列 、工作队列)1. RTOS的常见功能信号量互斥锁自旋锁事件邮箱消息队列工作队列2. 将这些功能划分成两类可以简单划分一下上面这些功能的使用场合,我们分成两类,第一类是以访问控制为主,第二类是以消息的传递为主。第一类是信号量、互斥锁、自旋锁、事件。第二类就是消息队列、工作队列、邮箱。3. 功能介绍以访问控制为主的RTOS功能的作用一般是进行资源的管理和任务的同步。资源管理就像你的开发板只有一个小灯,有一个任

2021-09-02 23:26:45 2440

原创 python-opencv 常用的几个函数(cv2.threshold()、cv2.findContours()、cv2.drawContours())

1. opencv二值化的cv2.threshold函数目的:将整幅图像分成了非黑即白的二值图像。1.1 简单阈值:简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了。函数为cv2.threshold(),这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个是高于(低于)阈值时赋予的新值,第四个是一个方法选择参数,常用的有:• cv2.THRESH_BINARY(黑白二值)• cv2.THRESH_BINARY_INV(黑白二值反转)• cv2.THR

2021-09-02 10:43:58 2018

原创 M5Stack UnitV2 AI摄像头--SSH远程连接,window和linux文件互传,运行py文件和修改root账户密码

1. 看一下它自带的Jupyter Notebook然后可以看到,里面有一些例程,比如点亮一个红色和白色LED小灯等等,有兴趣的可以自己去看一下。2. 由于使用网页操作可能会造成卡顿,以后尽量使用命令的方式控制这个AI摄像头,所以使用ssh远程登录这款AI摄像头。看一下它的文件结构3. 既然使用它的网页在线编程不方便,我决定采用本地编程,然后将编写好的.py文件上传到AI摄像头。再通过远程登录运行这个py文件。      &n

2021-08-15 22:03:36 939 2

原创 M5Stack UnitV2 AI摄像头初次尝试--训练并识别两颗绿植

1. 产品简介:        UnitV2是M5Stack推出的一款高效率的AI识别模块,专为, 采用Sigmstar SSD202D(集成双核Cortex-A7 1.2Ghz处理器)控制核心,集成128MB-DDR3内存,512MB NAND Flash, 1080P摄像头。内嵌Linux操作系统,集成丰富的软硬件资源与开发工具,致力带给用户开箱即用,简洁高效的Ai开发体验。它具有:    &nb.

2021-08-15 20:54:17 1233 2

原创 STM32F10x学习---总

STM32F10x学习:       前几章资料查找、内部结构图,工作的框图等等可能学起来很无聊,但是会很有用的,可以帮助你理解STM32工作过程,加深印象。1. STM32学习(1)-资料查找,STM32简介,STM32选型以及芯片内部结构图。2.STM32学习(2)-最小系统,固件库,GPIO工作模式。3. STM32学习(3)-GPIO相关寄存器,引脚复用和重映射,点亮LED小灯(库函数、寄存器)。4.STM32学习(4)

2021-08-10 16:42:13 193

原创 STM32学习(12)-定时器输入捕获概述,工作过程,测量信号的脉冲宽度,相关的库函数,实现输入捕获的步骤

一. STM32定时器输入捕获概述1. STM32工作过程2. 输入捕获工作过程分成五部分讲解2.1 设置输入捕获滤波器2.2 设置输入捕获极性2.3 设置输入捕获映射通道2.4 设置输入捕获分频器2.5 捕获到有效信号开启中断3. 测量信号的脉冲宽度(上升沿和下降沿之间的时间)如果计数溢出,需要将溢出的次数进行累加,计算时间时将溢出的次数也算到里面,这样测量的脉冲宽度更加准确。4. 输入捕获相关库函数(在stm32f10x_tim.h中查找)5. 输入捕获

2021-08-10 16:18:40 846

原创 STM32学习(11)-定时器输出PWM(工作过程,相关寄存器和函数,输出可变占空比的PWM波形例子)

参考资料《STM32F1开发指南-库函数版本》- 第14章 PWM输出实验。《STM32中文参考手册v10》第14章 通用定时器一.通用定时器PWM概述1. PWM工作过程2. PWM模式1和PWM模式2注意:在PWM模式1时,无论是向上计数还是向下计数,当TIMx_CNT<TIMx_CCR1时,通道1为有效电平。              在

2021-08-08 22:24:35 1917

原创 STM32学习(10)-定时器描述,三种计数方式,定时器的工作框图,定时器时钟来源,定时器相关寄存器和函数,通用定时器实现定时的步骤

参考《STM32F1开发指南-库函数版本》第13,14,15章和《STM32中文参考手册v10》第14章通用定时器。一、定时器的概述:1.STM32F10x系列最多有8个定时器。2.三种定时器 (通用定时器,高级定时器,基本定时器)3.通用定时器描述4.计数的三种方式(向上,向下,向上向下)5. 定时器工作框图参考《STM32中文参考手册》第13章高级控制定时器查看外部引脚输入的时钟6. 内部时钟的选择内部时钟来源:7.定时器相关寄存器二. 通用定时器

2021-08-07 21:56:42 11353

原创 STM32学习(9)-看门狗,独立看门狗(相关的寄存器和函数),窗口看门狗(相关的寄存器和函数)

1. 看门狗(watchdog)的作用:实时检测单片机的程序运行状态,防止程序跑飞造成无法预料的结果。2. STM32包含哪几个看门狗(独立看门狗和窗口看门狗)3.独立看门狗3.1 独立看门狗概述:3.2 独立看门狗框图和相关寄存器3.3独立看门狗超时时间计算3.4 独立看门狗相关库函数3.5 独立看门狗操作步骤:新建iwdg.h和iwdg.c文件,然后编写看门狗初始化函数。编写主函数 (按键每按下一次,喂一次看门狗,如果不及时按下按键,不能正常喂狗,单片机不停

2021-08-06 21:57:49 572

原创 STM32学习(8)-串口通信例子,外部中断函数,外部中断实验

一.串口通信例子实验内容:将一段固定的数据(数据+回车、换行符)通过电脑发送到单片机,单片机判断接收的数据是否正确,并将接收的数据重新发送到电脑。通过判断是否接收到回车符0x0d和换行符0x0a来判断是否接收完整个数据。数据大约是这种样式:ABCDEFG…(0x0d、0x0a)中断服务函数:main()函数:二.外部中断:1.外部中断的概述:注意:并不是每一个中断线都分配了一个中断函数。2.外部中断初始化函数3.外部中断配置步骤:新建一个自己的文件夹,然后再新建一个L

2021-08-05 20:07:47 1117

原创 STM32学习(7)-NVIC中断,抢占优先级和响应优先级,中断寄存器和相对应的函数,串口通信原理,有关串口的寄存器和函数,串口通信实验

一.NVIC中断1.STM32中断介绍STM32F103的60个中断都包括哪些呢,可以参考《STM32中文参考手册》 9.1.2小节表55。如图所示:2.中断优先级分组STM32中断总共有0~4共5个组,通过SCB->AIRCR寄存器进行配置。如图所示:然后在设置相应的抢占优先级和响应优先级。3.抢占优先级和响应优先级的区别:抢占优先级为0的高于抢占优先级为1的,抢占优先级0>1>2>3>4。响应优先级同理。4. 中断函数4.1 中断优先级分组函

2021-08-04 22:08:30 1082

原创 PCB邮票孔拼版

标题PCB邮票孔拼版1.首先查看板子的信息,了解板子的宽度和长度。在报告-板子信息中查看。2.根据板子的长度和宽度修改栅格的宽度。长、宽各加100mil,右键-栅格-栅格属性中修改。修改后如图所示:3.复制画好的PCB板子,粘贴的时候不是直接粘贴,而是选择在编辑-paste special,然后弹出如下窗口,打上对勾,选择粘贴。同理,继续选择特殊粘贴(paste special)可以看到有很多连线,其实这个线是不用连接的,我选择隐藏掉这些连线。把这个勾去掉就可以隐藏连线。4.

2021-08-04 16:08:16 1226

原创 Altium Designer-集成库制作

一. 集成库的制作1. 集成库的组成集成库有四个文件组成,如下:2.如何制作集成库打开AD软件,然后新建工程。然后保存工程为:命名在工程下新建原理图元器件文件,右键工程,选择添加原理图库文件。然后打开原理图面板修改原理图器件名称,双击图中所示查找芯片数据手册选中上图的画矩形和画引脚,得到如下图:然后在工程下新建一个PCB封装库文件,根据数据手册制作相应的封装。最后选中集成库工程,右键点击第一个,编译集成库文件,最后生成的集成库文件将自动放到右上角的库中。最

2021-08-01 23:16:48 6466

原创 STM32学习(6)-Systick滴答定时器、delay函数介绍、端口复用和端口重映射

参考资料(STM32F1开发指南-库函数版本 第五章delay介绍,Cortex-M3权威指南(中文) P133 )一. Systick滴答定时器1.1 Systick滴答定时器介绍1.2 Systick相关的寄存器1.2.1 SysTick控制和状态寄存器-CTRL1.2.2 SysTick重装载数值寄存器-LOAD1.2.3 SysTick当前值寄存器-VAL1.3 Systick相关库函数入口参数如下:...

2021-07-31 15:49:34 962

原创 STM32学习(5)-时钟系统框图,RCC相关寄存器配置,系统初始化函数SystemInit()介绍以及系统如何执行的系统初始化函数

一.STM32学习(5)-时钟系统框图,RCC相关寄存器配置,系统初始化函数SystemInit()介绍以及系统如何执行的系统初始化函数参考STM32中文参考手册和STM32开发指南参考上面图片:二.RCC相关寄存器配置2.1 时钟控制寄存器(RCC_CR)2.2 时钟配置寄存器(RCC_CFGR)等等寄存器,具体参考STM32中文参考手册 7.3RCC寄存器2.3 配置这些寄存器的库函数(stm32f10x_rcc.h)用的时候参考STM32手册编写、调用即可

2021-07-24 16:38:16 817 1

原创 STM32学习(4)-蜂鸣器,按键,C语言(位,关键字,结构体),寄存器地址名称映射分析

STM32学习(4)-蜂鸣器,按键,C语言(位,关键字,结构体),寄存器地址名称映射分析一.蜂鸣器程序的编写接10K的电阻作用:STM32复位时引脚处于浮空状态,引脚电平具有不确定性,如果不接10K的电阻,蜂鸣器引脚电平的跳变会造成蜂鸣器响。程序实现:(1)使能蜂鸣器的I/O时钟。(2)初始化I/O模式(推挽输出)(3)控制I/O输出高低电平。程序编写参考LED小灯程序。二.按键输入程序的编写2.1 如何准确识别按键按下的次数思路:增加判断前一次按键按下之后是否松开的标志位,当前一次按

2021-07-23 16:51:19 857

原创 STM32学习(3)-GPIO相关寄存器,引脚复用和重映射,点亮LED小灯(库函数、寄存器)

参考STM32中文参考手册一. GPIO相关配置寄存器 每组(如GPIOA,GPIOB)GPIO端口的寄存器包括1.1 端口配置寄存器 由于STM32是32位的寄存器,一个寄存器只有32位,但是一个I/O口需要4个位来配置,所以一个寄存器32位只能配置8个I/O口,但是每一组有16个I/O口,所以需要两个端口配置寄存器(GPIOx_CRL和GPIOx_CRH)。1.2 端口输入/输出数据寄存器(GPIOx_IDR/ODR)GPIOx_IDR:1.3 端口位设置/清除寄存器(GPIOx

2021-07-22 23:05:37 1038

原创 STM32学习(2)-最小系统,固件库,GPIO工作模式

一.STM32最小系统(1)供电(2)复位(3)时钟:外部晶振(4)Boot启动模式选择(5)下载电路(串口/JTAG/SWD)二.STM32官方固件库三.GPIOSTM32大部分引脚除了当GPIO使用外,还可以复用为外设功能引脚(如:串口)。GPIO工作方式输入模式-输入浮空(GPIO_Mode_IN_FLOATING)-输入上拉(GPIO_Mode_IPU)-输入下拉(GPIO_Mode_IPD)-模拟输入(GPIO_Mode_AIN)输出模式-开漏输出(GPI

2021-07-20 21:53:07 399

原创 STM32学习(1)-资料查找,STM32简介,STM32选型以及芯片内部结构图

一.学习网站开源电子网:http://www.openedv.com/forum.phpST官方社区:https://www.stmcu.org.cn/二.资料查找1.芯片手册中文芯片数据手册:英文芯片数据手册2.如何查找哪些引脚兼容5V3.如何选择外设I/O3.1 ADC引脚首先查找具有ADC标志的引脚,然后在观看这个引脚是否完全浮空,是否完全独立。3.2 PWM一般查找是定时器通道的引脚 TIMx_CHX x为1-8 ,X为1-44.如何分配I/O可以查看

2021-07-20 21:22:31 1396

原创 利用socket实现C++与python的通信,实现手势识别结果的传输。

利用socket实现C++与python的通信     上次博客中用python实现了手势识别和手势运动方向的识别,为了将python识别的结果传到用C++写的QT程序中,需要实现python与C++代码通信。1.实现方法(1)C/C++里调用Python脚本函数优点:实现起来最简单,稳定,可靠缺点:迁移运行环境后,需要安装重新部署Python脚本的Python运行环境,非常麻烦。(2)将Python打包成独立进程,C/C++于Python实现进

2021-06-13 15:16:05 3151 4

原创 基于MediaPipe、opencv和python实现21点手势识别和手势运动方向识别

基于MediaPipe和python实现手势识别1.MediaPipe的简介      MediaPipe是用于构建应用ML管道的多模式(例如,视频,音频,任何时间序列数据)的框架。利用MediaPipe,可以将感知管道构建为模块化组件的图形,包括例如推理模型(例如,TensorFlow,TFLite)和媒体处理功能。       有关手部检测和手部跟踪的整体背景,请阅读此

2021-06-12 20:21:57 11954 6

原创 STM32下载程序报错cannot enter debug mode··· Error: Flash Download failed - Target DLL has been cancelled

STM32下载程序报错cannot enter debug mode···1.ROS底层控制板是使用的STM32F103C8T6,所以PCB板子中有画的STM32F103的最小系统板。由于为了节省板子空间,只引出来四个引脚用来下载程序,但是仿真器是J-Link,只需要用杜邦线连接四个引脚即可。连接如图所示,连接J-link四个引脚即可。2. 然后配置一下3.然后编译下载程序。结构报错了,检查了硬件没有问题。4.把频率降低一下即可。5.下载成功了。...

2021-05-01 10:34:25 10037 4

原创 ROS 中的错误Done checking log file disk usage. Usage is <1GB. Unable to contact my own server at [http:

ROS 中的错误1.错误siat@ubuntu:~$ roscore... logging to /home/siat/.ros/log/f973aef0-3ff4-11e5-a30c-28d244c5bb27/roslaunch-ubuntu-11487.logChecking log directory for disk usage. This may take awhile.Press Ctrl-C to interruptDone checking log file disk usage

2021-04-08 16:25:58 10118 3

原创 画PCB步骤

画PCB步骤1.导入原理图器件2.画PCB边界首先在机械层(mechanical)画一个边界(如矩形),然后在四个角画上圆弧,最后再复制到阻焊层(keep-out Layer)。最后分别查看一下每层是否包含边界。3.画固定孔选择焊盘,然后修改孔的大小。然后复制到PCB的每个角4.统一修改元器件标号字体大小选中其中一个元器件标号,然后右键,选择查找相似对象,然后选择高度same,此时就选中所有高度一样的标号,弹出对话框,然后修改大小等即可。5.PCB规则导入/导出规则

2021-04-05 00:35:20 10876

原创 将博客内容保存为PDF进行打印

将博客内容保存为PDF进行打印1.打开chrome浏览器,然后打开博客文章2.然后打开chorm更多工具——开发者工具(function(){ 'use strict'; var articleBox = $("div.article_content"); articleBox.removeAttr("style"); $("#btn-readmore").parent().remove(); $("#side").remove(); $("#comment_title, #commen

2021-04-02 15:24:48 305

原创 ros小车第四篇-xacro模型(URDF模型优化)

1.URDF模型缺点: 模型冗长,重复内容多,参数修改麻烦 不能进行参数运算2.xacro模型3.xacro模型标签3.1定义常量3.2 宏定义宏调用:3.3 文件包含4.编写mbot_base.xacro文件(mbot_description/urdf/xacro/mbot_base.xacro)常量:颜色:左右轮子宏定义:前后支撑轮:整体:5.由于上面的文件不能单独运行,所以编写mbot.xacro文件将刚才的文件包

2021-04-02 11:24:35 921

原创 ROS第三篇 URDF机器人建模

ROS第三篇 URDF机器人建模1.什么是URDF2.常用的标签<robot name=" "> <link name=" "> </link> <joint name=" "> </joint> ...</robot>2.1 Link功能和子标签2.1.1 功能:用于描述机器人某个刚体部分的外观和物理属性2.1.2 子标签<visual>:描述机器人link部分的外观参

2021-03-29 21:05:32 283

原创 编写自己的.h和.c文件(STM32)

编写自己的.h和.c文件(STM32)1.新建一个存放自己程序的文件夹–MY红色选中工程名,右键2.在自己的工程文件夹中也新建一个MY文件夹3.在MY文件夹中新建功能所对应的文件夹名称(如:KEY、LED、MPU6050、PWM)4.新建key.c和key.h文件,保存到没MY文件夹下的KEY中5.将.c文件加入到工程6.key.c和key.h7.将.h文件路径加载到工程8.编译一下9.看一下MY文件夹...

2021-03-20 10:02:34 8756 1

原创 ubuntu中非常好用的PDF软件—okular

ubuntu中非常好用的PDF软件—okular1.安装2.界面和功能3.汉化1.安装 sudo apt-get install okular安装完成,然后选中PDF文档右键选择打开方式okular2.界面和功能按 F6 快捷方式打开注释功能,如图所示。功能用四个字形容:”可圈可点“3.汉化sudo apt-get install kde-l10n-zhcn然后关掉软件重新打开...

2021-03-10 19:20:59 1391

原创 如何把智能车ROS环境配置到另一台电脑

1.安装ubuntu系统2.安装ROS2.1 配置软件库换用中科大镜像源搜索 Software & Updates,2.22 设置软件源打开/etc/apt/sources.list,将以下内容加入。编辑之前可以先进行备份。deb http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universedeb http://debian.ustc.edu.cn/ubuntu/ trusty-backp

2021-03-06 14:08:21 794

原创 ubuntu系统下怎么对任意区域的截图

ubuntu系统下怎么对任意区域的截图1.截取全屏快捷键:PrintScreen2.截取当前窗口快捷键:Alt+PrintScreen3.截取随意区域屏幕快捷键这个需要自己添加快捷键

2021-03-05 10:08:05 1036 1

原创 ROS学习(第二篇)---小海龟仿真和工作空间创建以及配置CMakeLists.txt

ROS学习(第二篇)—小海龟仿真首先打开终端ctrl+alt+T,然后输入第一个命令rescore然后再次重新打开另一个终端ctrl+alt+T,然后输入第二个命令rosrun turtlesim turtlesim_node然后再次重新打开另一个终端ctrl+alt+T,然后输入第三个命令rosrun turtlesim turtle_teleop_key然后按方向键控制海龟运动...

2021-02-28 16:29:05 407

原创 ROS学习(第一篇)本篇主要是了解和安装ROS

ROS学习(第一篇)1.ROS系统实现--文件系统2.ROS 安装3.ROS测试4.常用命令1.ROS系统实现–文件系统在这里插入图片描述img.cn/20210228154808839.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpZmVpc21lNjY2,size_16,color_FFFFFF,t_70)2.ROS 安装注意

2021-02-28 16:17:48 213 1

原创 opencv扩展模块CMake编辑错误其一

opencv扩展模块CMake编辑错误其一错误解决网址本文章纯属为了方便以后查看,如有侵权,请告知删除。

2020-12-16 09:59:05 93

空空如也

空空如也

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

TA关注的人

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