- 博客(1158)
- 资源 (11)
- 收藏
- 关注
原创 ESP-C3入门24. 使用中断监控GPIO口
创建一个用于处理 GPIO 中断的函数。// 处理中断事件的代码这里的IRAM_ATTR属性用于将中断处理函数存储在内部 RAM 中,以减少延迟。
2023-09-05 09:46:25
219
原创 ESP-C3入门23. I2C读写外部存储器
I2C 是一种串行同步半双工通信协议,总线上可以同时挂载多个主机和从机。I2C 总线由串行数据线 (SDA) 和串行时钟线 (SCL) 线构成。这些线都需要上拉电阻。ESP32-C3 上通常包含两个 I2C 控制器(I2C0 和 I2C1),它们可以分别用于不同的设备或任务。I2C 控制器数量ESP32-C3 通常配备了两个独立的 I2C 控制器,分别命名为 I2C0 和 I2C1。引脚分配每个 I2C 控制器都需要两个引脚:SDA(数据线)和 SCL(时钟线)。
2023-09-05 08:26:33
149
原创 Clion 使用ffmpeg 学习1 开发环境配置
在视频处理和多媒体应用程序开发中,FFmpeg 是一个强大的开源工具,它提供了处理音频和视频的丰富功能。CLion 是一款受欢迎的跨平台集成开发环境(IDE),它提供了强大的代码编辑和调试工具。通过官方文档 : https://www.ffmpeg.org/documentation.html 可以查看更多FFmpeg的操作方法。选择合适的版本下载。我这里下载的是 ffmpeg-master-latest-win64-gpl-shared。本文章介绍在CLion下配置FFmpeg开发环境的方法。
2023-09-02 12:24:51
1044
原创 ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序
在ESP32中,内置了一个用于JTAG调试的特殊程序,称为“ESP32 JTAG调试引导模式”。JTAG(Joint Test Action Group)是一种用于测试和调试电路板的标准接口。在嵌入式系统开发中,JTAG可以用于芯片的调试、程序下载、固件更新等操作。ESP32的JTAG调试引导模式允许通过JTAG接口连接到芯片,以便进行硬件级别的调试和分析。
2023-09-01 14:20:08
711
原创 Kotlin入门1. 语法基础
Kotlin是一种静态编程语言,由JetBrains开发。它被设计为与Java兼容,并且可以在Java平台上运行。Kotlin支持现代编程语言的许多特性,如函数式编程、对象导向编程和元编程。这使得Kotlin能够方便地与Java代码混编,并且可以在没有JVM(Java虚拟机)的设备上运行。Kotlin可以编译成Java字节码,因此可以在Java虚拟机上运行。此外,Kotlin也可以编译成JavaScript,使得它可以在浏览器中运行。这使得Kotlin成为一个适用于各种平台的多平台语言。
2023-08-30 19:52:08
129
原创 Electron学习3 使用serialport操作串口
本文将使用 nodejs 的 SerialPort 包来实现串口通讯功能。Node SerialPort 是一个 JavaScript 库,用于连接到在 NodeJS 和 Electron 中工作的串行端口,以下是准备环境:本文操作过程来自:https://girishjoshi.io/post/access-serialport-from-electron-application-and-creating-gui-for-micropython-repl-on-esp8266/文档地址:https:
2023-08-23 08:43:44
1143
原创 Electron学习2 使用Electron-vue和Vuetify UI库
Electron-Vue 是一个使用 Vue.js 构建跨平台桌面应用程序的框架。它基于 Electron,一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的开源库。Electron-Vue 结合了 Vue.js 的灵活性和 Electron 的跨平台能力,使得开发桌面应用程序变得更加简单和高效。使用 Vue.js 构建应用程序:Electron-Vue 提供了基于 Vue.js 的开发体验,你可以使用 Vue.js 的语法和组件系统来构建桌面应用程序。
2023-08-22 10:59:04
887
原创 Arduino 入门学习笔记12 读写外置EEPROM
外置I2C接口的EEPROM是一种常用的非易失性存储器,通过I2C总线与微控制器或其他设备进行通信。它通常用于存储持久性数据,如配置设置、日志、校准数据等。以下是一些常用的外置I2C接口的EEPROM型号以及它们的特点:24C系列:Microchip的24C系列EEPROM是一些常见的I2C接口EEPROM型号。它们分为24C01到24C512等不同容量的型号,容量从128字节到64K字节不等。这些EEPROM设备在I2C总线上占用7位或8位的设备地址,并且通常具有多个页,可实现更高的写入速度。
2023-08-18 11:09:45
627
原创 Arduino 入门学习笔记11 读写内置EEPROM
Arduino的内置EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种用于存储持久性数据的非易失性存储器,它嵌入在Arduino微控制器芯片内部。与外部EEPROM不同,Arduino的内置EEPROM通常具有较小的存储容量,通常在几百字节到几千字节之间,具体取决于Arduino的型号和芯片。以下是关于Arduino的内置EEPROM的重要信息:容量:不同型号的Arduino板在芯片上都有内置EEPROM。
2023-08-18 09:52:50
666
原创 ESP-C3入门21. I2C接口点亮1306驱动的OLED屏
地址:Espressif/ssd1306 是 Espressif Systems 开发的用于 SSD1306 驱动芯片的库,用于在 ESP32 和 ESP8266 上控制 SSD1306 型号的 OLED 显示屏。这个库提供了一组函数和接口,使得开发者可以在 ESP-IDF 框架中方便地控制和管理这种类型的 OLED 显示屏。OLED 控制:该库允许你控制 SSD1306 驱动的 OLED 显示屏,包括初始化、绘制图像、显示文本等。
2023-08-17 20:06:37
312
原创 Esp8266学习7. 点亮JMD0.96C-1 OLED屏
ESP8266具有一个I2C控制器,通常称为I2C主机。这个I2C控制器可以用来连接各种I2C外设,如传感器、显示屏等。SDA(Serial Data Line):通信数据线SCL(Serial Clock Line):时钟线这两个引脚的位置可以根据具体的ESP8266开发板而有所不同。引入Wire库:在Arduino代码中引入Wire库,该库提供了与I2C通信相关的函数。
2023-08-17 16:43:25
272
原创 Arduino 入门学习笔记10 使用I2C的OLED屏幕
本次试验采用的OLED屏是使用I2C接口通讯的0.96寸屏,采用 SSD1306 驱动,有4个引脚。单色, 128x64像素。SSD1306是一款单片CMOS OLED/PLED驱动器,具有有机/聚合物发光控制器二极管点阵图形显示系统。这款芯片专为共阴极OLED面板设计,具有内置对比度控制器、显示RAM和振荡器,可以减少外部元件的数量和功耗。其分辨率为128x64,适用于许多小型便携式应用,如手机副显示屏、MP3播放器和计算器等。
2023-08-17 11:01:46
1427
原创 Electron学习1 安装环境与第一个程序
Electron是一个用于构建跨平台桌面应用程序的开源库。它使用HTML、CSS和JavaScript等技术,通过将Web技术打包为原生应用程序,使得开发者能够创建出具有本地操作系统特性的软件。Electron使用Chromium作为渲染引擎,并允许开发者使用Node.js来访问底层系统资源。本文将介绍electron开发环境配置。windows10一款编辑器软件,如vscode。
2023-08-09 08:25:12
694
原创 ESP-C3入门20. CentOS开发环境及Jenkins流水线
ESP-IDF 需要python3.7以上版本,如果yum仓库版本比较低,则需要手动下载安装。意思是系统中缺少 Jenkins 软件包的公钥,因此无法验证软件包的真实性。cmake 升到 3.16以上。bash要升到 4 以上。
2023-07-25 19:08:13
455
原创 YOLO学习笔记1. YOLOV1的基本概念
YOLO(You Only Look Once)是一种流行的实时目标检测算法,由Joseph Redmon和Ali Farhadi等人开发。YOLO作为目标检测算法,旨在识别图像中出现的物体以及它们的位置。与其他目标检测算法不同的是,YOLO将整个图像看作一个整体,并使用单个CNN(卷积神经网络)模型直接预测图像中所有物体的类别和位置。这使得YOLO具有更快的速度和更高的实时性,而不需要额外的后处理步骤。YOLO算法通过在图像上滑动网格来实现目标检测,每个单元格负责预测一组边界框和类别概率。
2023-07-15 16:10:24
484
原创 ESP-C3入门19. RSA算法加密、解密的实现
官方文档地址:ESP-IDFv5里集成了 Mbed TLSv3.1.0版本。实现RSA加密与解密主要是以下步骤:生成RSA密钥对:RSA加密算法需要一个公钥和一个私钥。在ESP-IDF提供的加密库中有生成RSA密钥对的函数。本文重点放在加密、解密,生成RSA密钥对的过程本文不作介绍。加密数据:要加密数据,需要使用公钥对数据进行加密。我们使用mbedtls_rsa_pkcs1_encrypt()函数来实现RSA加密。这个函数接受明文数据、公钥和输出缓冲区作为参数,并将加密后的数据存储在输出缓冲区中。
2023-06-20 14:42:17
302
原创 Uni-APP iOS环境打自定义调试基座
主要操作步骤参考官方文档:https://ask.dcloud.net.cn/article/152有少量区别。准备好苹果开发者账号(过程略)。
2023-04-11 07:55:31
1312
2
原创 Esp8266学习6. ArduinoOTA的使用
ESP8266 提供了 OTA(Over-The-Air)升级功能,可以通过 Wi-Fi 网络升级设备,而无需连接 USB 线进行编程。ESP8266使用的是ArduinoOTA库,开源地址:占用更多的存储空间;升级需要使用IDE,且电脑要和开发板在同一个网络内;使用的网络端口不能充当普通串口用来查看日志等作用。但由于它对OTA功能进行了高度的封装,使用起来极为简单,升级时省去了物理连线的麻烦。
2023-04-08 11:16:34
387
原创 深度学习13. CNN经典网络 VGG16
VGG(Visual Geometry Group)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG19最为著名。VGG16和VGG19网络架构非常相似,都由多个卷积层和池化层交替堆叠而成,最后使用全连接层进行分类。
2023-04-06 09:58:45
1005
原创 ESP-C3入门18. 低功耗蓝牙SPP Server端功能测试
GATT是一种基于属性的协议,它定义了一组属性,这些属性可以用于描述设备的服务和特征。
2023-04-06 08:21:31
581
1
原创 ESP-C3入门17. 低功耗蓝牙GATT Server
GATT (Generic Attribute Profile) 是蓝牙低功耗 (Bluetooth Low Energy, BLE) 协议栈中的一部分,它定义了 BLE 设备之间交换数据的格式和规范。GATT 是基于属性 (attribute) 和服务 (service) 的概念,通过将数据封装在属性中,从而实现设备之间的通信。在 GATT 中,一个服务表示一个特定的功能,一个服务可以包含多个属性。每个属性都有一个唯一的标识符 (UUID),可以用来识别它们。属性可以是只读的 (Read),也可以是可写的
2023-03-31 15:26:49
799
原创 深度学习12. CNN经典网络 AlexNet处理ImageNet
该层主要作用是提取输入图像的特征。卷积核:11 X 11步长:4填充:2输入通道数:3输出通道数:48224−112∗24154224−112∗2/4154。
2023-03-28 13:26:53
664
原创 ESP-C3入门16. 低功耗蓝牙广播
0x00:广播标志0x01:不完整的16位服务UUID列表0x02:完整的16位服务UUID列表0x03:不完整的32位服务UUID列表0x04:完整的32位服务UUID列表0x05:不完整的128位服务UUID列表0x06:完整的128位服务UUID列表0x07:本地名称0x08:TX功率级别0x09:蓝牙名称0x0A:简单配对的Hash C0x0B:简单配对的随机数R0x0C:设备ID0x0D:服务数据0x0E:制造商特定数据。
2023-03-28 08:21:44
430
原创 数字电路3. SR 触发器
常见的触发器有SR触发器、D触发器、JK触发器和T触发器等。其中一个门的输出被连接到另一个门的输入,同时该门的输入通过另一个门的输出进行反馈。在时序逻辑电路中,SR触发器可以被用来存储上一个时钟周期的状态,从而实现状态机的设计。在SR触发器中,输入信号可以从一个锁存器传输到另一个锁存器,实现了数据的存储和传输功能。SR触发器是由两个互补的锁存器组成的,其中一个锁存器的输出连接到另一个锁存器的输入,反之亦然。SR触发器是一种经典的数字电路元件,它的作用是将输入的信号转化为一个稳定的输出。
2023-03-22 09:12:38
675
1
原创 ESP-C3入门15. SmartConfig配网测试
ESP32主要有以下配网方式:采用组播/广播方式,将WIFI信息编码到IEEE802.11底层通讯帧实现配网。配网时将ESP32置于AP热点模式,手机连接此热点建立通讯,把WIFI账号和密码发给模块。微信提出的一种配网方式,支持通过微信小程序配网。通过低功耗蓝牙来传输WIFI账号与密码实现配网。ESP32的example有完整的SmartConfig demo,可以直接创建项目使用。配网主要执行以下流程:(2)注册事件处理函数为 WIFI_EVENT、IP_EVENT 和 SC_EVENT 注册事件处理
2023-03-21 13:38:26
397
原创 数字电路2. OC门、OD门、三态门
与OC门类似,OD门的输出端也可以被多个门并联连接,形成开关电路,控制外部器件的工作。OD门(Open Drain Gate)是数字电路中的一种逻辑门,它的输出端可以被拉低,但无法被拉高,只能在高阻态时不输出电信号。一般来说,使能端高电平的最小值为2V,也就是当使能端电压高于2V时,三态门处于使能状态,使能端内部有一个反向器,这时不可以传输数据。与普通门电路只有两种状态(高电平输出和低电平输出)不同,三态门的高阻态输出可以在电路中实现高阻抗状态,使得它可以连接多个门电路或器件而不会干扰其它部分的工作。
2023-03-20 10:43:40
2457
原创 Esp8266学习5. 红外信号收发实验
ESP8266 支持通过红外接收器和红外LED进行红外收发功能。ESP8266的红外收发功能需要借助外部库,常用的库有IRremoteESP8266、IRremote、IRLib2等。IRremoteESP8266库是专门为ESP8266芯片设计的红外收发库,它支持多种协议,包括NEC、Sony、RC5、RC6等,还支持学习和发送红外信号。另外IRremote库和IRLib2库也是常用的红外收发库,但这两个库不是专门为ESP8266设计的,需要进行相应的适配。data 要发送的数据。
2023-03-18 18:50:15
1064
1
原创 深度学习11. CNN经典网络 LeNet-5实现CIFAR-10
CIFAR-10是一个常用的图像分类数据集,由10类共计60,000张32x32大小的彩色图像组成,每类包含6,000张图像。这些图像被平均分为了5个训练批次和1个测试批次,每个批次包含10,000张图像。CIFAR-10数据集中的10个类别分别为:飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。相比之下,MNIST是一个手写数字分类数据集,由10个数字(0-9)共计60,000个训练样本和10,000个测试样本组成,每个样本是一个28x28的灰度图像。
2023-03-18 13:55:27
748
原创 模电学习12. NE555 方波信号发生器
此时电容器开始充电,当电压高于控制电压时(通常为1/3 Vcc),输出引脚跳变为高电平,并保持一段时间,电容器继续放电,直到电压降至控制电压以下,输出引脚才恢复为低电平。NE555在单稳态模式下使用RC电路产生延时信号,该模式下的NE555主要是基于模拟电路的工作原理。下面电路使用了LM317EE作为线性稳压电路,NE555的4脚和8脚是它的两个电源引脚,分别用于输入正电源(Vcc)和负电源(GND)。当4脚和8脚短接后接入稳压电源时,可以保证NE555的电源稳定,从而保证它的工作稳定和可靠。
2023-03-17 10:40:02
2596
原创 深度学习10. CNN经典网络 LeNet-5实现MNIST
LeNet-5是一个经典的卷积神经网络模型,1998年被提出,论文题目是 “Gradient-Based Learning Applied to Document Recognition” ,作者为 Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haffner。LeNet-5是一个用于手写数字识别的深度神经网络模型,由两个卷积层和三个全连接层组成。LeNet-5是深度神经网络的开创者之一,对后来的深度学习算法发展产生了重要的影响。
2023-03-16 14:18:03
723
原创 深度学习9. 全连接及Dropout概念
全连接层是神经网络中的一种常见的层类型,也称为密集连接层(Dense Layer)或者全连接层(Fully Connected Layer)。全连接层可以将输入特征与每个神经元之间的连接权重进行矩阵乘法和偏置加法操作,从而得到输出结果。在全连接层中,每个神经元都与上一层的所有神经元相连,每个输入特征都与每个神经元之间都存在一定的连接权重。在训练过程中,神经网络通过反向传播算法来优化每个神经元的权重和偏置,从而使得输出结果能够更好地拟合训练数据。
2023-03-16 09:55:38
445
1
原创 深度学习8.池化的概念
池化 (Pooling) 用来降低卷积神经网络(CNN)或循环神经网络(RNN)中的特征图(Feature Map)的维度。在卷积神经网络中,池化操作通常紧跟在卷积操作之后,用于降低特征图的空间大小。池化操作的基本思想是将特征图划分为若干个子区域(一般为矩形),并对每个子区域进行统计汇总。池化操作的方式可以有很多种,比如最大池化(Max Pooling)、平均池化(Average Pooling)等。其中,最大池化操作会选取每个子区域内的最大值作为输出,而平均池化操作则会计算每个子区域内的平均值作为输出。
2023-03-15 22:16:15
771
原创 深度学习7. 卷积的概念
深度学习7. 卷积的概念一、卷积的概念二、神经网络中的卷积1. 神经网络卷积概念2. 卷积核3. 卷积核大小三、实现一个简单的卷积功能1. 卷积函数2. 边缘检测卷积核调用示例3. 高斯卷积核示例四、PyTorch计算卷积1. 生成单通道图像调用卷积(1)生成单通道图像 `torch.randn(1, 1, 28, 28)`(2)卷积层2. 加载灰度图像进行卷积操作3. 对彩色图片卷积,输出1通道4. 输出3通道的卷积操作一、卷积的概念卷积来源于英文的Convolution,其中Con是积分,vol是
2023-03-15 09:24:17
418
原创 数字电路1. 逻辑门电路及常见门电路实现
逻辑门电路是一种电路设计,用于处理数字信号(仅包括0和1)。它们使用逻辑门来执行不同的逻辑操作,如与门、或门、非门、异或门等,这些门基于布尔代数。逻辑门电路通常使用晶体管、集成电路或其他电子元件实现。逻辑门电路可以用于数字电路、计算机、通信和控制系统等领域。在数字电路中,逻辑门电路用于处理和操作数字信号,从而实现不同的功能和任务。在计算机中,逻辑门电路构成了计算机的基本组成部分,用于执行算法和程序。在通信和控制系统中,逻辑门电路用于解码、编码、调制、解调等操作。
2023-03-14 10:56:35
1107
原创 PyTorch学习笔记 8. 实现线性回归模型
为了实现线性回归,我们定义只有一个层的神经网络LinearRegression,在类中定义了一个全连接层linear,这个层的输入和输出都是1维的。在前向传播方法中,输入x被传入全连接层中进行计算,得到模型的输出out,然后将其返回。模型的输出out就是输入x的线性变换结果,具体的计算公式为yWxby = Wx + byWxb,其中WWW是全连接层的权重,bbb是偏置,由于输入和输出都是1维的,因此WWW也是一个1维的向量,bbb是一个标量。
2023-03-13 20:21:16
427
原创 Esp8266学习4. 基于Arduino的PWM与红外信号处理
在使用 PWM 技术时,需要根据具体的应用场景选择合适的 PWM 频率和分辨率,以及合适的占空比范围和切换速率,以达到最优的控制效果。例如,在控制 LED 亮度时,可以通过调节 PWM 信号的占空比来控制 LED 的亮度,占空比越大,LED 灯亮度越高,反之亦然。在红外遥控器中,每一个按键通常对应一个特定的红外信号,这个红外信号的发送周期一般是固定的,以确保遥控器能够正确地发送信号,并且接收器能够正确地解码信号。在红外通信中,通过对载波信号进行调制,将数字信号转换为红外信号,从而实现数据或控制信号的传输。
2023-03-09 09:46:56
1239
原创 ESP-C3入门14. 实现基本的web server
在ESP-IDF中,我们可以使用httpd_ws_frame_t结构体表示WebSocket帧,使用httpd_ws_send_frame_async函数异步发送WebSocket帧。该函数需要传入一个httpd_req_t结构体作为参数,该结构体表示HTTP请求和响应。这个函数接收两个参数:httpd_handle_t类型的HTTP服务器句柄和httpd_uri_t类型的URI配置。在URI处理器函数中,我们可以通过HTTP请求信息结构体指针httpd_req_t获取HTTP请求的各种参数和数据。
2023-03-02 14:47:05
706
原创 模电学习10. MOS管简单应用电路
如果芯片1、芯片2有时序要求,在芯片1正常工作后,使能芯片2。可以看到芯片2的使能端初始连接VCC为高电平,当芯片1输出高电平后,MOS管导通,芯片2的使能端被拉低为低电平,芯片2开始正常工作。MOS管在这里实现的仍是开关的功能,但是避免IC1和IC2的端口直接相连造成信息干扰,同时芯片控制端电压比较低,可以驱动较大的负载。由于IC1和IC2任何一个输出高电平时,都会导通一个MOS管,从而让LED可以点亮。下图示例电路中,芯片1正常工作时,PG端口高电平。假设:左边接芯片信号 3.3V,右侧芯片信号5V。
2023-03-02 09:38:10
673
tcpdump for android arm
2016-01-07
php redis驱动for win
2015-12-29
mysql-connector-net-6.3.9.rar
2015-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人