自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (9)
  • 收藏
  • 关注

原创 STM32_HAL库—ADC采集数据

STM32 的ADC精度为 12 位,且每个 ADC 最多有 16 个外部通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。ADC 的转换时间跟 ADC 的输入时钟和采样时间有关,公式为:Tconv = ( 采样时间 + 12.5 个周期 ) / 预分频一般我们设置 PCLK2=72M,经过 ADC 预分频器能分频到最大的时钟只能是12M,然后设置 “ 采样时间 ” 为 1.5 个周期。

2022-12-09 10:14:08 6887 2

原创 基于Arduino设计的OLED游戏机

自己设计制作的一个Arduino游戏机,有两个简单的小游戏。一个是贪吃蛇的小游戏,另外一个游戏则是躲避陨石的小游戏。可以用来做成mini手掌游戏机,在上班的路上,放学的路上,坐公交的空隙玩一玩。来消磨时光的同时,还能吸引别人的眼球。 (((o(*゚▽゚*)o)))♡ 使用的编程平台是Arduino平台进行的开发。 Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。Arduino是一款便

2022-12-05 16:21:41 1165 2

原创 CRC_8 计算方法及代码实现

3). 检测相异或后的CRC寄存器的最高位(第7位),若最高位为1,CRC寄存器先左移1位,再与多项式0x07H进行异或;(2). 把第一个 8 位数据与 8 位 CRC 寄存器的相异或,把结果放于 CRC 寄存器;(1). 预置 8 位寄存器为十六进制 0x00(即全为 0) ,称此寄存器为 CRC 寄存器;(4). 重复步骤 3 ,直到右移 8 次,这样整个 8 位数据全部进行了处理;(5). 重复步骤 2 到步骤 4,进行下一个 8 位数据的处理;(1). CRC寄存器。......

2022-08-04 10:39:11 9695 2

原创 STM32软件复位方式

在很多时候我们外部硬件方式不能复位或者不方便操作的情况下,软件复位的方式就变得很实用了。可以写入到串口,当串口发送特定字符就复位;也可以某个按键设置了长按就复位等等快捷的方式进行复位。在复位发生器执行复位命令时,往往会有一个延时。在此延时期间,仍然可以响应中断请求这里就有可能触发中断,所以在复位前最好先关闭全部中断。//软件复位函数void System_Reset(void) { __set_FAULTMASK(1); //关闭所有中断 NVIC_SystemReset(); //进行软件复位

2022-04-13 11:55:12 8955 3

原创 CRC_16---ModBus 计算方法及代码实现

1、 CRC寄存器初始值为 0xFFFF;即16个字节全为1;2、 CRC-16 / ModBus的多项式0xA001H (1010 0000 0000 0001B) ; ‘H’表示16进制数,‘B’表示二进制数。计算步骤为:(1).预置 16 位寄存器为十六进制 0xFFFF(即全为 1) ,称此寄存器为 CRC 寄存器;(2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器;(3).检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器

2022-03-18 10:29:17 13115 2

原创 STM32_HAL库串口printf函数重定义

总的来说,这段代码实现了将标准输入输出函数 printf 和 scanf 重定向到串口,从而可以通过串口进行数据的输入和输出,这在嵌入式系统中非常常见,用于与外部设备或调试工具进行通信。接下来,通过宏定义选择了串口发送数据的类型,有两种选择,分别是 HAL_USART 和 HAL_USART_DMA。根据不同的宏定义,可以使用不同的方式来发送数据,一种是阻塞式的串口发送,另一种是使用DMA(直接内存访问)来发送数据。类似地,定义了一个 fgetc 函数,该函数用于重定向 scanf 函数,从串口接收数据。

2022-03-04 10:39:34 10566

原创 STM32_HAL库—PWM输出

(一)CubeMX设置:1. 晶振配置(72M)2. PWM引脚参数配置

2022-02-01 01:12:24 16256 1

原创 STM32_HAL库—串口通信

(一)CubeMX设置:1. 晶振配置(72M)2. 基础配置==>Mode(模式选择): Asynchronous: 异步通信 Synchronous: 同步通信 Single Wire (Half-Duplex): 单线/半双工 Multiprocessor Communication: 多处理器 支持局域互连网络LIN、智能卡(SmartCard)协议与lrDA(红外线数据协会) SIR ENDEC规范。...

2022-01-26 14:29:10 8992

原创 STM32_HAL库—TIM定时器

(一)CubeMX设置:1. 晶振配置(72M)2. 选择内部时钟3. 基础配置(1秒)

2022-01-18 09:11:59 2732

原创 STM32_HAL库_常用函数库

【代码】STM32_HAL库_常用函数库。

2021-12-30 17:06:03 4819 1

原创 教程3_图像的处理

有趣的是,在上述过滤器中,中心元素是新计算的值,该值可以是图像中的像素值或新值。它需要两个输入,一个是我们的原始图像,第二个是决定**操作性质的结构元素**或**内核**。原始图像中的一个像素(无论是1还是0)只有当内核下的所有像素都是1时才被认为是1,否则它就会被侵蚀(变成0)。空间的高斯函数确保仅考虑附近像素的模糊,而强度差的高斯函数确保仅考虑强度与中心像素相似的那些像素的模糊。操作如下,保持这个内核在一个像素上,将所有低于这个内核的25个像素相加,取其平均值,然后用新的平均值替换中心像素。

2024-04-15 16:49:11 19

原创 Slic3r切片软件使用解释

是一款非常专业的3D打印切片软件。使用它你能够轻松的讲3D打印出来,并且进行切片处理。是为数不多的3D打印软件之一。这个软件使用起来十分简单,基本上只要下载完成就能够使用,兼容性十分好,能够与各种打印机兼容。拥有从硬盘加载3D模型进行指令转换、定制打印形状以及实时切片等功能,能够为各种不同的用户满足不同的需求。

2024-04-15 16:37:30 191

原创 自制3D打印机-Marlin 2.1具体参数配置

Marlin 是一种开源的 3D 打印机固件,广泛应用于各种 3D 打印机的控制系统。它最初是为了 RepRap 3D 打印机而开发的,但随着时间的推移,它已经成为了许多不同类型和品牌的 3D 打印机的首选固件。开源与可定制:Marlin 是开源的,这意味着用户可以访问和修改其源代码,以满足特定的打印需求或硬件要求。用户可以根据自己的打印机配置进行定制,调整各种参数和设置。广泛的硬件兼容性:Marlin 支持多种类型的 3D 打印机,包括 FDM(熔融沉积建模)和某些其他类型的打印机。

2024-04-10 11:14:44 929

原创 教程5_模版匹配

模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV带有一个函数**cv.matchTemplate**()。它只是将模板图​​像滑动到输入图像上(就像在2D卷积中一样),然后在模板图像下比较模板和输入图像的拼图。OpenCV中实现了几种比较方法。(您可以检查文档以了解更多详细信息)。它返回一个灰度图像,其中每个像素表示该像素的邻域与模板匹配的程度。如果输入图像的大小为(WxH),而模板图像的大小为(wxh),则输出图像的大小将为。

2024-03-26 15:30:17 30

原创 教程4_轮廓特征(更多属性)

OpenCV附带一个函数 cv.matchShapes(),该函数使我们能够比较两个形状或两个轮廓,并返回一个显示相似性的度量。如果它是真的,它会找到有符号的距离。我们画一条连接起点和终点的线,然后在最远处画一个圆。记住,返回的前三个值是cnt的索引。它返回的距离,点在轮廓线外时为负,点在轮廓线内时为正,点在轮廓线上时为零。如果您不想找到距离,请确保第三个参数为False,因为这是一个耗时的过程。在本章中,我们将学习 - 凸性缺陷以及如何找到它们 - 查找点到多边形的最短距离 - 匹配不同的形状。

2024-03-26 14:57:42 342

原创 教程4_图像的轮廓

为了理解这一点,假设您试图在图像中找到一个正方形,但是由于图像中的某些问题,您没有得到一个完美的正方形,而是一个“坏形状”(如下图所示)。它返回一个Box2D结构,其中包含以下细节 -(中心(x,y),(宽度,高度),旋转角度)。例如,检查下面的手的图像。特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等。可以按照以下步骤进行,第一个示例为简单的检测单个轮廓,第二个示例能检测图片中的多个轮廓。在本文中,我们将学习 - 如何找到轮廓的不同特征,例如面积,周长,质心,边界框等。红色矩形是旋转后的矩形。

2024-03-26 13:39:55 186

原创 教程2_图像的合并及融合

您可以通过OpenCV函数cv.add()或仅通过 numpy 操作添加两个图像。两个图像应具有相同的深度和类型,或者第二个图像可以只是一个标量值。OpenCV加法和Numpy加法之间有区别。OpenCV加法是饱和运算,而Numpy加法是模运算。这也是图像加法,但是对图像赋予不同的权重,以使其具有融合或透明的感觉。根据以下等式添加图像:通过从 αα 从 0→10→1 更改,您可以在一个图像到另一个图像之间执行很酷的过渡。在这里有两个图像,将它们融合在一起。

2024-03-26 11:36:00 40

原创 教程2_视频入门

这段代码实现了一个简单的摄像头视频流捕获和显示程序。它使用OpenCV库来从计算机摄像头捕获视频帧,将每帧图像转换为灰度图像,并在窗口中显示。在退出前,它会释放摄像头资源并销毁所有OpenCV创建的窗口。正常情况下,一个摄像头会被连接(就像我的情况一样)。让我们从摄像头捕捉一段视频(我使用的是我笔记本电脑内置的网络摄像头) ,将其转换成灰度视频并显示出来。如果太小,则视频将非常快,而如果太大,则视频将变得很慢(嗯,这就是显示慢动作的方式)。它与从相机捕获相同,只是用视频文件名更改摄像机索引。

2024-03-25 15:37:38 224

原创 教程1_图像视频入门

它使用OpenCV库来从计算机摄像头捕获视频帧,将每帧图像转换为灰度图像,并在窗口中显示。让我们从摄像头捕捉一段视频(我使用的是我笔记本电脑内置的网络摄像头) ,将其转换成灰度视频并显示出来。如果太小,则视频将非常快,而如果太大,则视频将变得很慢(嗯,这就是显示慢动作的方式)。如果成功读取图像,该函数将返回一个多维 numpy 数组,代表图像的像素值。是 OpenCV 库中的一个函数,用于在窗口中显示图像。这是一个良好的编程实践,可以确保资源得到正确释放,并避免程序结束时留下悬挂的窗口。

2024-03-25 15:20:16 476 2

原创 AD实用设置教程

请注意,这里使用的是报错方式,让GND不能正常的在顶层和底层布线,该功能有一定风险性,具体的操作步骤可能会因软件版本或界面布局的不同而略有差异。如果在实际操作中遇到问题,建议查阅AD9的官方文档或相关教程,以获取更详细和准确的指导。请注意,这些步骤可能因AD9的具体版本和设置有所不同,具体操作时请参照软件的实际界面和提示进行操作。另外,为了确保敷铜的准确性和可靠性,建议在设置间距规则前仔细检查和确认多边形的形状和尺寸,以确保规则的正确应用。

2024-03-21 17:27:14 672

原创 Python使用pynput模块后台监控鼠标及按键

它首先导入了pynput库中的mouse和keyboard模块,这两个模块分别用于处理鼠标和键盘事件。在代码中,定义了几个回调函数,这些函数会在特定的事件发生时被调用。on_mouse_move函数用于处理鼠标移动事件,当鼠标在屏幕上移动时,它会打印出鼠标当前的位置坐标。on_mouse_click函数则处理鼠标点击事件,它会根据鼠标按键的状态(按下或释放)和点击位置打印相应的信息。on_mouse_scroll函数则处理鼠标滚动事件,它会打印出滚动发生的位置以及滚

2024-03-15 15:53:59 619

原创 Python 将字符串作为代码执行

这种技术可以用于动态生成和执行代码,有时可以用于特定的应用场景,如动态生成函数或根据用户输入执行不同的代码逻辑。这个程序展示了如何在Python中使用字符串来表示代码,并通过。函数执行了这段代码,从而实现了将字符串转换为可执行代码的目的。的字符串变量,它存储了一段Python代码。在这个示例中,程序定义了一个名为。中的代码的执行,结果输出了内容。函数执行该字符串中的代码。的函数,其中包含一个名为。函数,触发了对存储在。

2024-02-26 11:53:28 466

原创 Python获取天气数据

整体而言,这段代码展示了如何使用Python的标准库来从网络API获取数据,并将这些数据解析成易于理解和查看的格式。对于每一天,打印日期、白天天气状况、晚上天气状况、最高温度、最低温度、降雨量和湿度。列表,每个元素代表一个地理位置的天气信息。对于每个结果,提取地点名称、国家、时区和最后更新时间,并打印出来。其他参数包括语言选择(简体中文),单位系统(摄氏度)和天数(5天)。)的天气数据,然后对数据进行解析,以此获得天气数据并最终显示出来。的内容,这通常是为了调试目的,以便查看未解析的原始JSON字符串。

2024-02-24 11:05:26 576

原创 (五)ESP32基于MicroPython平台——IO口中断触发

函数将中断处理函数与GPIO引脚2关联起来,并设置触发模式为下降沿触发。在主循环中,我们简单地延时1秒,以便观察LED的状态变化。,当GPIO引脚2的电平从低变高时触发中断。在中断处理函数中,我们切换LED的状态并翻转LED的输出。类初始化GPIO引脚2,并将其配置为输入模式,启用内部上拉电阻。通过这种方式,我们可以使用ESP32的GPIO引脚实现简单的中断IO触发功能。当GPIO引脚2的电平从高变低时,MicroPython会自动调用中断处理函数。在这个示例中,我们首先定义了一个LED引脚,并使用。

2024-02-02 11:25:53 703

原创 (四)ESP32基于MicroPython平台——PWM输出

这段代码是一个基于MicroPython的ESP32 PWM控制示例,它使用PWM信号来控制LED的亮度。然后,在主循环中,通过两个循环分别控制LED的亮度从暗逐渐变亮和从亮逐渐变暗。每次循环中,它使用time.sleep()函数实现延时,以便观察LED亮度的变化。在上述代码中,我们首先导入PWM和Pin模块,并使用Pin(25)初始化PWM对象。在主循环中,我们使用两个循环分别控制LED的亮度从暗逐渐变亮和从亮逐渐变暗,每次循环中都使用time.sleep()函数实现延时,以便观察LED亮度的变化。

2024-02-02 10:21:35 452

原创 Python通过Tkinter设计GUI(更新中)

Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。目前有15种Tkinter的部件。控件描述Label标签控件;可以显示文本和位图Button按钮控件;触发特定事件的按钮组件Entry输入控件;单行文本输入框组件多选框控件;允许用户选择多个选项单选按钮控件;允许用户从多个选项中选择一个Combobox下拉框控件;结合了输入框和列表框的功能Listbox列表框控件;允许用户从多个选项中选择Canvas画布控件;

2024-01-18 14:24:01 1021

原创 Python实现自动操作 GUI

pyautogui 是一个纯 Python 的 GUI 自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。具体的模块安装方式就自己百度吧。。。。

2024-01-10 14:52:47 468

原创 STM32_HAL库—IWDG看门狗

其中prv是预分频器寄存器的值,rlv是重装载寄存器的值,而LSI值默认是40kHz,如下所示。

2023-12-12 16:49:31 319

转载 (三)FreeRTOS任务控制(1)

必须在 FreeRTOSConfig.h 中将 configUSE_TRACE_FACILITY 中定义为 1,才能使用 uxTaskGetSystemState()。uxTaskGetSystemState() 为系统中的每个任务填充结构体。除其他外,TaskStatus_t 结构体包含任务句柄、任务名称、任务优先级、任务状态和任务消耗的运行时间总量等成员。注意:此函数仅用于调试,因为使用此函数会导致调度程序长时间处于挂起状态。由 uxTaskGetSystemState() 填充的结构体的数量。

2023-11-07 10:41:41 93

转载 (二)FreeRTOS任务控制(2)

对 vTaskSuspend 的调用不会累积次数,例如:若在同一任务上调用 vTaskSuspend () 两次,将仍然仅需调用一次 vTaskResume (),即可准备完毕暂停的任务。由多次调用 vTaskSuspend() 中的一次调用挂起的任务可通过单次调用 xTaskResumeFromISR() 重新运行。由一次或多次调用 vTaskSuspend () 而挂起的任务可通过单次调用 vTaskResume () 重新运行。可从 ISR 内调用的恢复挂起任务的函数。XTask 的优先级。

2023-11-06 16:02:47 101

转载 (二)FreeRTOS任务控制(1)

必须将 INCLUDE_vTaskDelay 定义为 1,此函数才可用。按给定的 tick 数延迟任务。任务保持阻塞的实际时间取决于 tick 频率。常量 portTICK_PERIOD_MS 配合 tick 周期分辨率可用于从 tick 频率计算实际时间。vTaskDelay() 会指定任务想要取消阻塞的时间,该时间是相对于 vTaskDelay() 被调用的时间。例如,如果指定 时间块为 100 个 tick,那么在调用 vTaskDelay() 100 个 tick 后任务会取消阻塞。

2023-11-02 10:14:21 129

转载 (一)FreeRTOS任务创建及删除

创建一个新并将其添加到准备运行的任务列表中。必须在 FreeRTOSConfig.h 中被设置为 1,或保留未定义状态(此时,它默认 默认为 1) ,才能使用此 RTOS API 函数。每个任务都需要RAM来保存任务状态,并由任务用作其堆栈。如果使用创建任务,则所需的 RAM 将自动 从中分配。如果创建任务使用了,则 RAM 由应用程序编写者提供,因此可以在编译时进行静态分配。pvTaskCode任务通常;实现任务的函数决不能试图返回 或退出。但是,任务可以。pcName任务名称的最大长度由中的定义。

2023-11-02 09:56:45 202

原创 Python项目——识别指定物品

本项目是基于百度EasyDL平台制作的识别转盘内瓶子,且识别瓶子位置的一个项目。通过在百度进行物体识别的训练,然后配置好后,通过Python调用API函数,识别上传图像中的物品,以及识别物体所在的位置。

2023-11-01 10:49:53 674

原创 (4) OpenCV图像处理SVM算法

考虑下面的图像,它具有两种数据类型,红色和蓝色。我们找到一条线f(x)=ax1+bx2+cf(x)=ax1+bx2+c,它将两条数据都分为两个区域。当我们得到一个新的test_data XX时,只需将其替换为f(x)f(x)即可。如果f(X)>0f(X)>0,则属于蓝色组,否则属于红色组。我们可以将此行称为“决策边界它非常简单且内存高效。可以将这些数据用直线(或高维超平面)一分为二的数据称为**线性可分离**数据。因此,在上图中,你可以看到很多这样的行都是可能的。我们会选哪一个?

2023-10-30 16:59:07 156

原创 (六)ESP32基于MicroPython平台——多线程任务

模块来创建多线程程序。下面是一个简单的ESP32单片机上使用MicroPython的多线程示例程序,其中创建了两个线程执行不同的任务。运行到num等于10后,会关闭线程2的任务。同时,主线程也在后台运行,并每三秒打印一次消息。您可以根据需要修改线程任务和时间间隔。模块是用来创建线程的,但它有一些限制,如不能使用线程锁(锁定线程共享的资源)。此外,资源受限,所以要小心不要创建过多线程。请注意,在MicroPython中,这个示例程序创建了两个线程,,它们分别每秒和每两秒打印一次消息,线程2。

2023-10-24 09:29:13 1149

原创 (3) OpenCV图像处理kNN近邻算法-识别摄像头数字

使用Python的OpenCV库进行图像处理和数字识别的例子。通过下面的步骤对摄像头的黑色数字进行识别(由于我电脑没有摄像头,实际使用需要替换获取图像部分的代码)。这里的代码只能用于识别照片里面最大的单个数字的简单识别算法,需要更多样化的识别就需要自己在这基础上扩展咯!!!(注意:识别的是黑色数字)具体步骤如下:首先,它读取一个名为“digits.png”的图像文件,这个文件应该包含了一些手写数字。然后,它将这个图像从彩色模式转化为灰度模式,这样做可以减少数据的维度,使得处理更加简单。

2023-10-18 10:26:01 195

原创 驱动LCD12864显示器

LCD12864是一种128x64像素分辨率的液晶显示器,通常用于嵌入式系统和电子设备中,以显示字符、图像和其他信息。它的驱动IC型号是ST7567A,这个IC是一款常用于控制12864型LCD的驱动芯片。以下是关于LCD12864和ST7567A驱动IC的详细介绍:LCD12864液晶显示器: LCD12864的名称中包含了一些关键信息:"LCD" 表示它是一种液晶显示器(Liquid Crystal Display),通过控制液晶分子来显示图像。

2023-10-11 11:04:01 948

原创 项目1-基于STM32制作T12烙铁

当使用STM32来制作T12型号的烙铁,并集成LCD12864显示器时,你将进入一个令人兴奋的嵌入式系统开发领域。这个项目将涉及硬件和软件的复杂工作,以实现一个功能强大的烙铁控制器。首先,你需要正确连接STM32微控制器和LCD12864显示器。这包括连接数据线、控制线和电源线,确保硬件连接正确,以便实现数据的传输和显示的功能。接下来,你需要编写适用于STM32的底层驱动程序,以与LCD12864进行通信。这可能需要使用SPI或其他通信协议,具体取决于你的硬件和LCD的规格。

2023-10-11 10:12:45 1050

原创 项目-ESP32获取图像电脑端显示,并跟踪对应颜色

ESP32是一款功能强大的微控制器,可以通过其上的摄像头获取JPEG数据流。当电脑端获取到ESP32发送的图像数据流后,我们可以使用相应的图像处理库或算法对数据进行处理,并对获取的图像数据进行检测,识别里面的红色物体。②电脑服务器端:接收UDP数据流 —> JPEG数据流转换为HSV颜色空间 —> 对HSV图像设置跟踪颜色范围的阈值 —> 单独提取颜色对象 —> 对提取的图像做腐蚀、膨胀等操作进行滤波 —> 在图像中寻找轮廓 —> 通过运算获取轮廓的质心 —> 输出跟踪的红色物体的坐标值。

2023-09-28 15:37:28 122

原创 (2) OpenCV图像处理kNN近邻算法-识别照片集中手写数字0~9

我们的目标是构建一个可以识别手写数字的应用程序。为此,我们需要创建一个手写数字的图片文件 “ digits.png”,图像的像素为:(), 其中包含 32个手写数字(每个数字16个),每个数字都是20x20的图像,如下图。因此,我们的第 1 步是将图像分割成 32 个不同的数字。对于每个数字,我们将其展平为400像素的一行。那就是我们的训练集,即所有像素的强度值。这是我们可以创建的最简单的功能集。我们将每个数字的前8个样本用作训练数据,然后将后8个样本用作测试数据。

2023-09-26 17:06:14 363

CRC16-MudBus示例函数(计数法+查表法)

CRC16_MudBus(通常写作CRC-16/MODBUS)是一种常用于Modbus通信协议的循环冗余校验(Cyclic Redundancy Check,简称CRC)算法。它通过对数据进行计算得到一个校验值,用于检测数据传输过程中是否发生错误,以确保数据的完整性和准确性。 Modbus是一种串行通信协议,最初由Modicon(目前属于施耐德电气公司)于1979年开发,并在工业控制中得到了广泛的应用。该协议支持多种通信接口,如RS232、RS485、以太网等,不同厂商生产的控制设备通过Modbus协议可以连成通信网络,进行集中监控。 CRC-16/MODBUS是基于多项式计算的一种CRC算法,其多项式为0x8005。在计算过程中,首先初始化一个16位的寄存器为0xFFFF,然后按照特定的算法对给定的数据进行处理,最终得到一个16位的校验值。这个校验值会附加在数据的末尾,接收方在接收到数据后,也会使用相同的算法进行计算,并将结果与附加的校验值进行比较,以判断数据在传输过程中是否发生了错误。

2024-04-16

位置式PID使用示例代码

 PID控制器是一种广泛应用的调节器控制规律,其核心在于通过比例(P)、积分(I)和微分(D)三个环节对控制目标进行精确调节。这种控制方法主要适用于基本线性和动态特性不随时间变化的系统。         在PID控制中,比例环节的作用是根据偏差e的大小调整控制器的输出信号u,使系统能够快速响应偏差的变化。然而,过大的比例系数Kp可能导致系统产生激烈的振荡和不稳定,因此在设计时需要合理优化Kp。         积分环节的作用是对偏差e进行积分,以实现无差调节。当系统平衡后,偏差为0,积分控制器的输出不再发生变化。积分环节有助于消除系统的稳态误差,但积分作用过强可能导致系统响应过慢。         微分环节则是根据偏差e的变化率调整控制器的输出信号u,有助于改善系统的动态特性,减小超调和振荡。然而,微分环节对噪声干扰信号敏感,需要在实际应用中加以注意。

2024-04-16

自制3D打印机-全文件

先占楼,后面会出这个设计的设计教程

2024-04-13

GD32F103VBT6核心板原理图

代码示例链接:https://download.csdn.net/download/qq_26043945/89115993 GD32F103VBT6核心板是一款基于GD32F103系列微控制器的创新型核心板,为嵌入式系统开发提供了强大的支持。 该核心板集成了ADC功能,可以实时采集模拟信号,实现精确的电压、电流等参数测量。蜂鸣器功能则方便用户进行状态提示或报警。LCD功能则为用户提供了直观的图形界面,提升了用户体验。 此外,核心板还配备了按键控制功能,用户可以通过简单的按键操作实现系统的基本控制。IIC功能则使得核心板可以与多种IIC设备无缝连接,扩展了系统的应用场景。 GD-Link编程调试功能使得开发者能够方便地对核心板进行编程和调试,大大提高了开发效率。SPI通信功能以及USART通信功能则实现了与其他设备的快速数据传输,满足了系统通信的需求。 值得一提的是,该核心板还支持USB、CAN通信功能,不仅方便了数据的传输,还为用户提供了更多的连接选项。

2024-04-11

GD32F103VBT6核心板代码示例

基于GD32F103VBT6做了一个核心板,代码里面包括有ADC功能、蜂鸣器功能、LCD功能、按键控制、IIC功能、GD-Link编程调试功能 、SPI通信功能、USART通信功能、USB功能、CAN通信功能的代码示例。

2024-04-11

3D打印机固件Marlin-2.1.2.2

Marlin 是一种开源的 3D 打印机固件,广泛应用于各种 3D 打印机的控制系统。它最初是为了 RepRap 3D 打印机而开发的,但随着时间的推移,它已经成为了许多不同类型和品牌的 3D 打印机的首选固件。 以下是 Marlin 固件的一些主要特点和功能: 开源与可定制:Marlin 是开源的,这意味着用户可以访问和修改其源代码,以满足特定的打印需求或硬件要求。用户可以根据自己的打印机配置进行定制,调整各种参数和设置。 广泛的硬件兼容性:Marlin 支持多种类型的 3D 打印机,包括 FDM(熔融沉积建模)和某些其他类型的打印机。它支持各种步进电机驱动器、加热元件、温度传感器和输入/输出设备。 丰富的配置选项:Marlin 提供了大量的配置选项,允许用户调整打印速度、加速度、温度控制、回抽设置、层高等参数,以优化打印质量和性能。 先进的运动控制:Marlin 固件具有高效的步进电机控制算法,可以精确控制打印机的运动。它支持多种插补模式,如线性插补和圆弧插补,以实现更平滑的打印轨迹。 温度管理:Marlin 提供了先进的温度控制功能,可以精确控制挤出机和热床的温度。它

2024-04-10

ESP32获取图像,并通过电脑端服务器显示图像

​这段Python程序是一个基于UDP协议的图像接收和显示应用。 它通过创建一个UDP socket,绑定到本地IP地址和端口,通过ESP32-CAM获取JPEG的图像数据流,然后通过UDP通信把数据传输到服务器端,服务器获取到数据后,将数据解码为图像并在窗口中显示。用户可以通过按下键盘上的"q"键来退出程序。

2023-10-17

STM32F103RCT6驱动LCD12864屏(驱动IC:ST7567A)

使用STM32RCT6单片机,经过精心编程与控制,实现了LCD12864的卓越功能,包括字符显示与图片展示。这一系统的设计和实施充分发挥了STM32RCT6的性能和可编程特性,使LCD12864能够以高效、可靠的方式显示各种字符和图像,为应用提供了卓越的用户界面体验。

2023-10-11

基于单片机STM32制作T12烙铁

当使用STM32来制作T12型号的烙铁,并集成LCD12864显示器时,你将进入一个令人兴奋的嵌入式系统开发领域。这个项目将涉及硬件和软件的复杂工作,以实现一个功能强大的烙铁控制器。

2023-10-09

STM32移植U8g2图形库-驱动OLED显示(模拟IIC)

U8g2 是一个用于嵌入式设备的简易图形库,可以在多种 OLED 和 LCD 屏幕上,支持包括 SSD1306 等多种类型的底层驱动,并可以很方便地移植到 Arduino 、树莓派、NodeMCU 和 ARM 上。 U8g2 包含各种简单及复杂图形的绘制,并支持各种形式的字体,但需要占用一定单片机的内存作为绘图缓存,U8x8 只包含简单的显示文本功能,且只支持简单、定宽的字体。它直接绘制图形,没有缓存功能。         移植到STM32上,进行OLED的图形显示,本实验使用的OLED-0.96寸(SSD1306)作为驱动显示屏。 ​

2023-08-25

U8g2源码文件(驱动OLED显示)

​ U8g2 是一个用于嵌入式设备的简易图形库,可以在多种 OLED 和 LCD 屏幕上,支持包括 SSD1306 等多种类型的底层驱动,并可以很方便地移植到 Arduino 、树莓派、NodeMCU 和 ARM 上。U8g2 库的 GitHub 地址为:https://github.com/olikraus/u8g2 ,可以从中获取到源码与文档帮助。 ​

2023-08-25

CharacterMatrix-v3.0.1.2图片取模软件

  1、CharacterMatrix绿色版支持对所有NOTEPAD中可见的字符取模[包括西文字符以及UNICODE字符,例如あ℃等]。   2、支持使用指定字体、指定取点模式及字节排列模式生成适合单片机使用的小字库。   3、支持标准5x7、5x8、6x12、8x16、12x12、16x16点阵字库取模。   4、支持使用系统中任意字体对字符进行取模,字形清晰;支持字体加粗、斜体、删除线、下划线等设置。   5、可对不限量字模同时进行可视化编辑[数量仅受运行本软件的计算机内存容量的限制]。   6、可使用滚动条、鼠标滚轮或键盘上下左右键[LineUp/LineDown]、PageUp/PageDown键[滚动一页]、Home/End键[滚动至页首/页尾]进行编辑。   7、可设置开启或取消西文字符宽度减半。   8、可设置开启或取消过滤重复字符、过滤空白字符功能。   9、支持上下左右移动操作,支持左右翻转、上下翻转操作,支持90°、180°、270°旋转操作。   10、支持反色操作,同时也支持鼠标左右键修改字模功能。

2023-08-23

ESP32获取图像数据通过TFT-1.44寸屏显示

本项目使用的平台为micropython平台,控制器则是ESP32。 具体功能: 通过ESP32获取摄像头的数据,然后通过TFT-1.44寸屏进行图像的显示。

2023-08-11

TFT-1.44寸屏驱动程序

本例程基于ESP32做的一个底层驱动TFT-1.44寸屏的程序,程序运行的平台为micropython平台,通过python语言开发的底层驱动程序。

2023-08-11

OpenMV4原理图PDF文件

使用的单片机位STM32H743系列单片机,然后对应的摄像头使用的是MT9V034摄像头。

2023-06-13

Python五彩透明时钟(源码)

自己做的一个非常好用的软件,运行该软件,自动在电脑屏幕上显示一个置顶的时间窗口。可以根据自己的需求调节透明度。每秒刷新一次显示颜色,让一个时间显示的窗口也变得更加多彩艳丽。

2023-06-03

PID加热及PID自整定

该文件里面有PID加热的控制程序,以及PID自整定的程序,还附带有主函数main里面的流程程序部分。通过这几个文件,则能很清晰的理解PID加热,以及PID自整定的控制程序。

2023-05-29

dyuRobot-STM32最小系统原理图

STM32最小系统原理图

2023-04-19

STM32F103ZE核心板原理图

STM32的最小系统原理图。

2023-04-19

stm32F103CBT6工控板原理图

工控主板的最小系统原理图。

2023-04-19

GD32F103RCT6最小系统原理图

GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的。 不过GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。

2023-04-19

单片机控制WS2812B显示渐变色

WS2812B-V5是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅受限信号传输速度要求。高达2KHz的端口扫描频率,在高清摄像头的捕捉下都不会出现闪烁现象,非常适合高速移动产品的使用。280μs以上的RESET时间,出现中断也不会引起误复位,可以支持更低频率、价格便宜的MCU。LED具有低电压驱动、环保节能、亮度高、散射角度大、一致性好超、低功率及超长寿命等优点。将控制电路集成于LED上面,电路变得更加简单,体积小。

2023-03-21

putty远程登录命令行软件

用于远程登录树莓派的软件。

2022-12-13

IP扫描端口ipscan22软件

用于扫描该网络下有哪些客户端接入该网络。

2022-12-13

U盘格式化软件SDFormatter

用于对U盘进行格式化

2022-12-13

树莓派系统烧录软件Win32DiskImager-0.9.5

通过使用该软件,然后把树莓派系统安装到U盘中。

2022-12-13

五彩透明时钟-EXE软件

1.自己做的一个非常好用的软件,运行该软件,自动在电脑屏幕上显示一个置顶的时间窗口。可以根据自己的需求调节透明度。每秒刷新一次显示颜色,让一个时间显示的窗口也变得更加多彩艳丽。 2.实用功能: ①窗口置顶功能; ②实时显示时钟; ③滑动即可调节透明度; ④每秒随机颜色值显示时间;

2022-12-03

PCtoLCD2002图片取模软件

PCtoLCD2002是一款取字模的软件,图形模式下可任意用鼠标作画,左键画图,右键擦图。支持四种取模方式:逐行、逐列、行列、列行,可以生成中英文数字混合的字符串的字模数据,可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。除了选择系统预设的C语言和汇编语言两种格式,还可以自己定义新的数据输出格式,每行输出数据个数可调整。 这次发布的PCtoLCD2002完美版与前一正式版相比没有增加太多的功能,主要工作是反复测试,去除各种BUG,以及调节一些细微之处,目的当然就是追求完美!

2022-12-03

PT100热电阻温度数据对照表(Excel文档版)

PT100热电阻温度数据对照表(Excel文档版)

2022-10-17

ESP8266_SDK_OLED-0.96屏驱动显示程序

该项目是基于乐鑫的NONOS_SDK库开发的OLED_0.96寸屏的显示程序。我使用的编程软件是基于安信可的一体化开发软件(AiThinkerIDE_V1.5.2)。 该代码的功能如下: ①显示英文字符;②显示数字;③息屏;④显示汉字。

2022-05-12

ESP8266使用NONOS_SDK获取心知天气数据(HTTP)

使用的是乐鑫的NONOS_SDK进行的代码编写,编写代码的软件平台是安信可的一体化编译环境。只需替换文件中的user_main.c文件,然后编译下载即可。 通过配置ESP8266为客户端,去连接路由器,然后访问心知天气网获取天气数据,最后通过串口把获取的天气数据字符串进行显示。

2022-05-07

Keil.STM32F1xx_DFP.2.4.0固件库

该文件是Keil.STM32F1xx_DFP.2.4.0固件库,在使用Keil5进行STM32单片机进行项目开发的时候,需要在Keil5里面安装对应的芯片固件库。

2022-04-14

STM32实现程序跳转例程

1、里面的两个代码都是基于STM32F103RCT6单片机做的一个程序跳转例程,里面的number1为第 1 个程序(主函数),里面的number2为第 2 个程序(副函数)。 2、通电后,LED(PB4)会以100ms的速度进行闪烁;当PA1按下后,则主程序会跳转到第 2 个程序(副程序),此时LED(PB4)会以800ms的速度进行闪烁。

2022-04-13

GD32使用Cube MX配置LED闪烁例程

通过Cube MX软件配置GD32的LED闪烁例程,STM32替换为GD32使用Cube MX的HAL库配置LED闪烁例程

2022-04-12

Keil.STM32F1xx_DFP.2.3.0固件库

该文件是Keil.STM32F1xx_DFP.2.3.0固件库,在使用Keil5进行STM32单片机进行项目开发的时候,需要在Keil5里面安装对应的芯片固件库。

2022-04-12

GigaDevice.GD32F10x_DFP.2.0.2固件库

GD32F10系列芯片的Keil5固件库,

2022-04-12

单片机Bootloade更新程序

在使用单片机进行做项目的时候,需要对现有的单片机进行代码的更新,这里就是使用Bootloade方式升级程序(IAP串口方式)

2022-03-01

51+NRF24L01实现超声测距无线传输

自己空闲时编的一个小的程序代码。使用的是52芯片,把HC-SR04超声波测得的距离通过无线NRF24L01发送给另一块单片机上,并通过LCD1602显示出来测得的超声波距离。大神勿喷!!!!

2018-01-26

空空如也

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

TA关注的人

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