目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 windows js win10 springboot pdf idea docker 电路 nginx esp32 macOS git vue Arduino maven ffmpeg

存档:

增量【编码器】与【Arduino】连接(读取编码器脉冲数) 有更新!

Arduino 是一门非常简单的语言,不仅简单还通用。只要适配了Arduino的开发板基本都可以一次编码多个设备执行。本篇是关于【旋转编码器】的介绍 旋转编码器是一种位置传感器,可将旋钮的角位置(旋转)转换为用于确定旋钮旋转方向的输出信号。 由于其坚固性和良好的数字控制;它们被用于许多应用中,包括机器人技术,CNC机器和打印机。 旋转编码器有两种类型-绝对式和增量式。绝对编码器为我们提供旋钮的精确位置(以度为单位),而增量编码器报告轴已移动了多少增量。 本教程中使用的旋转编码器为增量型。 旋转编码器与电位器 旋转编码器是电位计的现代数字等效产品,比电位计功能更广泛。 它们可以完全旋转而无止挡,而电位计只能旋转大约3/4的圆。 电位器最适合您需要了解旋钮确切位置的情况。但是,在您需要知道位置变化而不是确切位置的情况下,旋转编码器是最好的。 旋转编码器如何工作 编码器内部是一个槽形磁盘,该磁盘连接到公共接地引脚C以及两个接触针A和B,如下所示。 旋转旋钮时,A和B根据旋转旋钮的方向以特定顺序与公共接地引脚C接触。 当它们接触公共接地时,它们会产生信号。当一个引脚先于另一引脚接触时,这些信号....

【显示屏】 VTM88723E28 资料 有更新!

VTM88723E28 单色液晶屏 2021-03-24 别称:拆机12864液晶屏 多盘nas存储器上拆机的 丝印:VTM88723E28 和 JA190513101524 控制器:NT7534 分辨率:128*64 厂商:信利 注:资料由”不知味の桜猫“提供且只有Arduino驱动,需要从Arduino库管理器里搜索NT7534下载,其他平台只能自己找驱动了,个人猜测和ST7567之类的差不多,只是初始化屏的指令不同。 注2:引脚定义为底板上FPC引脚定义,裸屏引脚定义未知。

解决pip install慢的问题 有更新!

Python 的一大优点就是丰富的类库,所以我们经常会用 pip 来安装各种库,所以对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率。 一、将pip修改为pip国内源即可 pip和很多的包管理工具一样,是从国外源下载的。因此速度会比较慢,甚至会安装不了 二、临时修改 可以在使用pip的时候加参数 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 这样就会从清华镜像库去安装库,查看配置是否成功:pip config list 三、永久修改 liunx系统 vim ~/.pip/pip.conf [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 注意没有这个文件夹可以创建一个新的,但是vim应该无法创建目录 window系统 在user目录中创建一个pip目录,如:....

Linux shell 配置 有更新!

linux 系统中的配置是通过几个在家目录下或系统的配置文件控制的,如:.bashrc等 强化ll显示隐藏文件、文件大小和时间格式 alias ll='ls -lah --group-directories-first' 配置显示的日期是正常可见的 sudo echo "export TIME_STYLE='+%Y-%m-%d %H:%M:%S'" >> /etc/profile && source /etc/profile 时间倒序 alias llt='ls -laht --group-directories-first' 修改终端提示 export PS1='[[\e[36;1m]\W[\e[m]][\e[35;1m]$[\e[m] ' 创建文件夹和进入 function mkcd () { mkdir -p "$@" && eval cd ""$@""; } .vimrc配置Ctrl+s保存 imap <C-S> <ESC>:wq<CR> map <C-S> :wq<CR>....

Arduino Uno开发板的引脚分配图及定义(重要且基础)

Arduino Uno微控制器采用的是Atmel的ATmega328。 Arduino Uno开发板的引脚分配图包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头。引脚的复用功能提供了更多的不同选项,例如驱动电机、LED、读取传感器等。在这篇文章中,我们将介绍Arduino Uno引脚的功能。 Arduino Uno引脚分配图

usb接口 type的定义 有更新!

01 什么是USB-Type-C USB-C是一种相对较新的标准,旨在提供高达10Gb/s的高速数据传输以及高达100W的功率。这些功能可以使USB-C成为现代设备的真正通用连接标准。 02 功能介绍 USB-C接口有三个主要功能: ●它有一个可翻转的连接接口。接口的设计使插头可以相对于插座翻转。 ●它支持USB 2.0、USB 3.0和USB 3.1 Gen 2标准。此外,它还可以在称为备用模式(Alternate Mode)的操作模式下支持第三方协议,如DisplayPort和HDMI。 ● 它允许设备协商并通过接口选择适当的功率流。 03 信号图示 USB Type-C连接器有24个引脚。图1和图2分别显示了USB Type-C插座和插头的插针。 04 USB 2.0差分对 D +和D-引脚是用于USB 2.0连接的差分对。插座中有两个D +引脚和两个D-引脚。 但是,这些引脚相互连接,实际上只有一个USB 2.0数据差分对可供使用。冗余设计只是为了提供可翻转的连接器。 05 电源和接地引脚 VBUS和GND引脚是电源和信号的返回路径。默认的VBUS电压为5 V,但标准允许器件协....

安装 【nvm】 马克布克 有更新!

mac 安装 nvm 比较简单 1、确保之前没装node或已经卸载干净 2、拉取github上的镜像、安装 3、配置镜像源、切换版本 1、安装 从git上下载nvm git clone https://github.com/nvm-sh/nvm.git 这里有下好的一份nvm20240318220531.zip 拉下来后 cd 进去nvm的目录 执行install.sh文件等待安装完成。 2、配置 环境变量 找到bash_profile目录 vim ~/.bash_profile 添加下面配置 export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completio 完成后就可以使用nvm -v查看版本了。 不过当我们重启终端,再次执行nvm....

lnux 图 有更新!

该文章已经加密。

mvc逻辑图 有更新!

该文章已经加密。

青龙面板写脚本 有更新!

读取环境变量 js:process.env.xxx python:import os print(os.getenv("xxx")) 创建任务

把复制当前文件路径放在鼠标右键 有更新!

要在Windows上添加“复制文件路径”功能到鼠标右键菜单,可以通过修改Windows注册表来实现。以下是具体步骤: 打开注册表编辑器,方法是按下Win + R键,在运行对话框中输入regedit,然后点击"确定"。 在注册表编辑器中,导航到以下路径: HKEY_CLASSES_ROOT\*\shell 在"shell"键下,右键点击"shell"键,选择"新建" -> "键",并将其命名为"CopyFilePath"(或其他你喜欢的名称)。 右键点击新创建的"CopyFilePath"键,选择"新建" -> "项",并将其命名为"command"。 在右侧窗格中,双击"Default"值,并将其数据设置为以下命令: cmd.exe /c echo|set/p="%1"|clip 这个命令会将文件路径复制到剪贴板。 关闭注册表编辑器。 现在,当你在Windows资源管理器中右键点击任意文件或文件夹时,会出现"CopyFilePath"选项。点击它后,文件路径将被复制到剪贴板中,你可以在任何地方粘贴它。 请注意,在对注册表进行更改之前,请备份注册表以防万一。此外,如果对注....

[ Demo ] ESP8266驱动 OLED I2C 方式 有更新!

设备为ESP8266控制 0.96寸 OLED 黄蓝双色 IIC 显示东西 接线图 由于 OLED 显示屏使用 I2C 通信协议,因此布线非常简单。您可以使用下表作为参考。 针ESP8266 Vin3.3V GndGnd SclGPIO 5(D1) SdaGPIO 4(D2) 使用mpy 写个demo: from machine import Pin, I2C import ssd1306 # using default address 0x3C i2c = I2C(sda=Pin(4), scl=Pin(5)) display = ssd1306.SSD1306_I2C(128, 64, i2c) display.fill(0) display.fill_rect(0, 0, 32, 32, 1) display.fill_rect(2, 2, 28, 28, 0) display.vline(9, 8, 22, 1) display.vline(16, 2, 22, 1) display.vline(23, 8, 22, 1) display.fill_rect(26, 24, 2....

如果你想批量修改【mysql】的字段类型 并且还保留注释等信息的话 有更新!

如果你想批量修改【mysql】的字段类型 并且还保留注释等信息的话,可以这么搞 ↓ select concat('alter table ', TABLE_NAME, ' modify ', COLUMN_NAME, ' varchar(64) ', ifnull(COLUMN_DEFAULT, 'null'), ' comment \'', COLUMN_COMMENT, '\';') `sql` from information_schema.COLUMNS where TABLE_SCHEMA = '数据库' and TABLE_NAME = '表明' and COLUMN_NAME in ('改的字段', '改的字段', '改的字段') ;

Java 文件操作 有更新!

字节数组转文件 OutputStream out = new FileOutputStream("/Users/liguanglei/tmp/" + UUID.randomUUID().toString() + ".jpg"); out.write(bytes, 0, bytes.length); out.flush(); out.close();

搜狗输入法配置时间戳输出

不知道搜狗什么毛病登录了不能同步设置的自定义短语 输出时间戳 在短语中添加: #$year$month_mm$day_dd_$fullhour$minute$second

idea 自带代码生成器 【Groovy】配置 有更新!

Groovy 语法不是很懂,idea里也没有申明 DasTable 有哪些字段,一下代码是自己摸索的👇 import com.intellij.database.model.DasTable import com.intellij.database.util.Case import com.intellij.database.util.DasUtil /* * Available context bindings: * SELECTION Iterable<DasObject> * PROJECT project * FILES files helper */ typeMapping = [ (~/(?i)int/) : "Int", (~/(?i)float|double|decimal|real/): "String", (~/(?i)datetime|timestamp/) : "java.sql.Timestamp", (~/(?i)date/) : "java.sql.Date", (~/(?i)time/) : "java.sql.Time", (~/(?i)....

[ Java ] 解决文件下载中文文件名乱码的最佳实践

1.方案一 如果下载的文件名包含中文,有时浏览器可能无法正确显示文件名,而会显示乱码或者一串数字和字母。这个问题可以通过设置Content-Disposition响应头的filename参数来解决,该参数可以指定要下载的文件名,并且支持URL编码。 下面是一个示例代码,演示了如何在Java Web中设置响应的文件名,以支持中文文件名的下载: @GET @Path("/download") public Response downloadFile(@QueryParam("filename") String filename) throws UnsupportedEncodingException { // 获取要下载的文件 File file = new File("/path/to/files/" + filename); // 创建响应 ResponseBuilder responseBuilder = Response.ok(file); // 设置文件名 String encodedFilename = new String(filename.getBytes("UTF-8")....

windows 获取超级管理员权限 有更新!

Add把获取超级管理员权限添加到右键菜单.reg Remove把获取超级管理员权限移除右键菜单.reg 懂得都懂双击执行之后,就可以在右键菜单里看到了

[ESP-IDF] GPIO端口中断 有更新!

esp32 中断demo如下: #include <stdio.h> #include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "driver/gpio.h" const gpio_num_t gpio01 = 18; const gpio_num_t gpio02 = 17; static bool sta = true; static QueueHandle_t gpioEventQueue = NULL; static void IRAM_ATTR intrHandler(void* arg) { uint32_t gpio_num = (uint32_t)arg; xQueueSendFromISR(gpioEventQueue, &gpio_num, NULL); } static void gpioTaskExample(void* arg) { int ioNum = (int....

springboot 5个扩展点 有更新!

1、初始化器ApplicationContextInitializer ApplicationContextInitializer 是 Spring 框架中的一个接口,它允许你在 Spring 的 ApplicationContext 被刷新(refresh)之前执行一些自定义的初始化操作。通常,这在你需要在 Spring 的 bean 定义被加载和解析之前执行一些特定的逻辑时非常有用。 使用场景 修改环境属性:你可以使用 ApplicationContextInitializer 来修改 Spring 的环境属性,例如添加或覆盖属性源。 注册自定义的 BeanPostProcessor:在 ApplicationContext 被刷新之前,你可能需要注册自定义的 BeanPostProcessor。 执行一些早期的初始化操作:有些操作需要在 Spring 容器完全初始化之前执行,例如初始化某些资源或执行一些预加载的任务。 如何使用 要使用 ApplicationContextInitializer,你需要实现该接口,并重写 initialize 方法。然后,你需要将这个实现类注册到 ....