- 博客(71)
- 资源 (5)
- 收藏
- 关注
原创 ESP 32控制无刷电机2
recv_data, sender_info = udp_socket.recvfrom(1024) # 缓冲区大小为1024字节。recv_data = recv_data.decode('utf-8').strip() # 解码为字符串并去掉多余空白。print(f"设置PWM占空比为: {value}")print(f"接收到数据: {recv_data} 来自 {sender_info}")udp_socket.bind(("0.0.0.0", 7788)) # 绑定端口7788。
2025-02-28 23:43:02
757
原创 用HAL_GetTick()函数实现简单任务调用
/ 获取当前时间(毫秒级){led_blink, 500, 0}, // LED闪烁任务,每500毫秒执行一次。// 计算任务数量,并初始化每个任务的上次运行时间为0(表示尚未运行)
2025-01-14 10:31:49
1538
原创 FreeRTOS-系统移植到stm32F103C8T6中(使用标准库)
本文主要介绍在KEIL环境下移植FreeRTOS到stm32F103C8T6芯片上一、源码下载FreeRTOSv9.0.0。
2025-01-08 09:18:51
783
原创 用pyinstaller打包
第一,首先在cmd环境安装程序所用到的库 如: pip install pygame。第四, 在当前目录使用 输入pyinstaller -F -w xxx.py。第二,安装pip install pyinstaller。第三,所在的文件夹输入cmd 进入当前目录。
2024-12-25 21:46:10
74
原创 stm32f103x控制蜂鸣器
/ 配置TIM2为PWM模式1,预分频器71,计数器周期499(产生2kHz的PWM频率,如果系统时钟为72MHz)Beep_PWM_Start(duty_cycle);// 开启PWM输出,设置占空比。// 示例调用:蜂鸣器以50%占空比,100ms开启,100ms关闭的模式重复发声3次。// 配置TIM2 CH1 PWM模式1,输出比较极性高,输出状态使能。// 配置PA0为复用推挽输出(TIM2_CH1)// 停止PWM输出(通过将占空比设置为0%)
2024-12-06 23:43:50
503
原创 百度木木浆测试
image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 转换为RGB格式,因为PIL使用RGB。plt.imshow(cv2.cvtColor(im_show, cv2.COLOR_BGR2RGB)) # 再次转换为RGB以在matplotlib中显示。ocr = PaddleOCR(use_gpu=False, lang='ch') # 假设我们识别中文字符,并且不使用GPU。# 显示带有OCR结果的图像。
2024-12-04 23:23:11
407
原创 动态人脸识别(四)---显示名字
frame = draw_chinese_text_on_image(frame, '签到时间:', (x-100, y+220), font_path, font_size,gray = cv2.imread('./faces_dynamic/%s/%d.jpg' % (dir, i)) # 三维图片。print('这个人是:%s.置信度:%0.1f' % (label, confidence))font_path = 'msyhbd.ttc' # 替换为你的字体文件路径。
2024-12-03 09:46:14
560
原创 动态人脸识别(三)---采集名字拼音缩写与名字
key = input('请输入文件夹的名字,姓名拼音的缩写(用于文件夹名),如果输入Q,程序退出!# 注意:这里我们不处理重复文件夹名的情况,如果需要,可以添加额外的逻辑来处理。# 检查是否已经存在该文件夹名字,避免重复(假设文件夹名字是唯一的)name = input('请输入与文件夹对应的名字: ')# 检查names.xlsx文件是否存在,如果不存在则创建它。# 保存更新后的DataFrame到Excel文件。# 保存名字和文件夹名到Excel文件。# 读取现有的Excel文件。
2024-12-03 09:42:30
309
原创 动态人脸识别-中文名字显示
frame = draw_chinese_text_on_image(frame, '签到时间:', (x-100, y+220), font_path, font_size,gray = cv2.imread('./faces_dymamic/%s/%d.jpg' % (dir, i)) # 三维图片。建入一个names.xlsx文件,里面有两列,分别是动态人脸识别(一)新建的,拼音缩写字母,(第一列)第二列,是汉字的名字。# 计算文本的y坐标,使其位于图片底部上方bottom_margin的位置。
2024-12-03 09:01:49
561
原创 动态人脸识别(二)
gray = cv2.imread(f'./faces_dymamic/{dir}/{i}.jpg') # 使用 f-string 简化字符串格式化。face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml') # 修正文件名。print(f'这个人是:{label}. 置信度:{confidence:.1f}') # 使用 f-string 简化字符串格式化。
2024-12-03 00:19:36
259
原创 动态人脸识别(一)
第一:安装opencv库 第二:下载文件haarcascade_frontalface_alt.xml与程序放在同目录下,第三,安装opencv-contrib-python库。key = input('请输入文件夹的名字,姓名拼音的缩写,如果输入Q,程序退出!# 在faces_dynamic下面创建子文件夹。# #1、动态采集人脸。# 加载人脸特径数据。
2024-12-03 00:16:56
324
原创 Micopython与旋转按钮(Encoder)
range_mode=RotaryIRQ.RANGE_WRAP)#RANGE_WRAP越界后从另一端开始。reverse=False, #是否反方向增加。pin_num_dt=13, #data引脚。r = RotaryIRQ(pin_num_clk=12, #clk引脚。min_val=100, #起始值。max_val=230, #终止值。二、rotary_irq_esp.py。一、 encoder.py文件。三、 rotary.py文件。
2024-12-01 13:58:59
715
原创 用micropython 操作stm32f4单片机实现串口通讯
self.system_time = int(temp[7] + temp[6] + temp[5] + temp[4], 16) # 传感器上电时间。self.system_time = int(temp[7] + temp[6] + temp[5] + temp[4], 16) # 传感器上电时间。# self.dis = (int(temp[10] + temp[9] + temp[8], 16)) / 1000 # 测距距离 单位m。
2024-11-30 13:00:56
852
原创 用micropython 操作stm32f4单片机的定时器实现蜂鸣器驱动
注意:pyb.Timer.channel的pulse_width_percent()接受0到100的百分比值。ch = tim.channel(4, pyb.Timer.PWM, pin=buzzer_pin) # 创建PWM通道。buzzer_pin = pyb.Pin('PD15', pyb.Pin.OUT) # 假设PD15引脚支持PWM。tim = pyb.Timer(4, freq=2000) # 设置定时器4的频率为2000Hz。# 请查阅您的板的文档以确认正确的引脚和定时器。
2024-11-30 09:47:02
347
原创 实现飞2米高的框架(c语言版)
/ 模拟pitch。// 在实际应用中,这里应读取MPU6050传感器的数据。// 在实际应用中,这里应读取气压传感器的高度数据。// 模拟MPU6050传感器数据读取函数。// 模拟MPU6050传感器结构体。// 这里我们模拟一个高度值。// 调整PWM值以控制高度。// 调整PWM值以控制姿态。// 模拟MPU6050传感器实例。// 这里我们模拟一些数据。// Quadcopter结构体。
2024-11-21 22:15:12
439
原创 实现飞2米高的框架(二)
为了实现更加精确和稳定的飞行控制,通常还需要结合其他传感器的数据,尤其是像MPU6050这样的惯性测量单元(IMU),它可以提供加速度和角速度的信息,帮助确定飞行器的姿态(俯仰、滚转和偏航角度)。在这个示例中,我们添加了`read_attitude`方法来从MPU6050读取姿态信息,并在`pid_control`方法中加入了对俯仰和滚转的控制。在现有的PID控制逻辑基础上,添加对飞行姿态的控制。针对不同的控制需求(如高度控制、俯仰控制、滚转控制和偏航控制),可能需要单独设置PID参数。
2024-11-21 19:56:18
379
原创 实现飞2米高的框架(一)
要实现四旋翼无人机在没有遥控器的情况下悬停在2米的高度,可以使用一个闭环控制系统(例如PID控制器)来根据气压传感器反馈的高度信息调整四个电机的速度。- `set_motor_speeds` 方法用于设置四个电机的转速,这里假设所有电机都以相同的PWM值运行,这是简化模型,在实际情况中可能需要调整不同电机的PWM值以保持稳定。- PID控制器的参数 (`kp`, `ki`, `kd`) 需要根据您的具体设备进行调校,不同的设备可能需要不同的参数值。# 这里应该是发送PWM信号给四个电机的函数。
2024-11-21 19:52:09
328
原创 TOF Sense激光测距实例
data_hex = binascii.hexlify(data).decode() # 将字节数组转换为十六进制字符串。uart_channel = machine.UART(2, baudrate=921600) # 修改为TOFSense所连接的串口。tof_f = TOFSense_F() # 确保TOFSense_F类在MicroPython环境中可用或已导入。# data = data.rstrip(b'\0') # 删除可能的尾随空字节。# 等待串口初始化完成。
2024-11-18 14:44:16
273
原创 TOF Sense激光测距数据解析的理解
str_data = "57 00 ff 00 9e 8f 00 00 ad 08 00 00 03 00 ff 3a" # 使用列表推导式拆分字符串 temp = [str_data[i : i + 2] for i in range(0, len(str_data), 2)] # 打印结果 print(temp)['57', '00', 'ff', '00', '9e', '8f', '00', '00', 'ad', '08', '00', '00', '03', '00', 'ff', '3a']
2024-11-18 14:16:08
960
原创 TOF Sense激光测距模块校验和的理解
checksum = sum(int(data[i : i + 2], 16) for i in range(0, num * 2, 2))这句代码的目的是遍历一个包含十六进制数字的字符串,并将这些十六进制数字转换为十进制整数,最后对这些整数求和。生成一个迭代序列:# range(0, 30, 2) 生成 [0, 2, 4, 6,8,10,12,14,16,18,20,22,24,26,28],这是一个包含15个字节(每个字节由两个十六进制数字表示)的字符串。
2024-11-18 14:04:14
390
原创 Thonny+MicroPython+ESP32开发环境搭建
五,把esp32-20220618-v1.19.1 烧录到ESP32 点击"工具“ ->"选项" install or updata Micopython。四. 下载ESP32驱动(CP210xVCPInstaller_x64.exe)三. 下载MicroPython。二、安装 最好安装在C盘。一、下载Thonny。
2024-11-17 08:28:29
364
原创 javascript 与MQTT连接(2)
删除标点</button> <button onclick="processLngLatArray()">发送数据
2024-11-15 20:25:04
734
原创 pyinstall 打包 paddleocr 成为.exe文件步骤
因为打包过程中,没能把ultralytics库导进来,所以我们把ultralytics文件夹复制到。把 tools与 ppocr复制到 _internal里面,正常运行。三、输入pyinstaller testsu49.spec就完成了。由上图已知,缺少defaut.yaml 文件,我们需要 从下面获取。四、运行testsu49.exe.会出现下面的错误。五、继续运行testsu49.exe,又出现了。产生上图两个文件夹,build与 dist。这是由于paddleocr 没有导入进来。
2024-06-08 20:31:48
1774
2
原创 yolov8 预测目标图像显示
cv2.imwrite("cropped_image.jpg", cropped_img) # 如果需要,取消注释这行来保存图像。bbox = results[0].boxes.xyxy[0].tolist() # 提取第一个边界框的xywh值。results = yolo(source=img) # 如果yolo库支持直接处理numpy数组,则传入img。# 注意:如果您的YOLO库版本不支持直接处理numpy数组,您可能需要将图像保存为文件,# 对图像"aaa.jpg"进行目标检测。
2024-05-17 09:37:28
1113
原创 yolov8使用与训练步骤
在网页按ctr+F 输入:搜py38 Miniconda3-py38_22.11.1-1-Windows-x86_64.exe 52.5 MiB 2022-12-23 07:57 下载进行安装 安装过程中记得加环境变量这个项。训练:yolo task=detect mode=train model=./yolov8n.pt data=yolo-bvn.yaml epochs=30 workers=1 batch=16。激活:命令:conda activate yolov8。
2024-05-15 18:47:26
753
原创 jupyter notebook导出pdf文件显示不了中文
找到文件index.tex.j2,我的在 C:\Users\Administrator\miniconda3\envs\opencv2\share\jupyter\nbconvert\templates\latex。最后:用文本编辑器打开,修改图中article为ctexart,重启jupyter lab即可导出为中文pdf。我安装miniconda3并配置opencv2所需要的环境,注:上面的图片参与网上的。
2024-05-01 13:51:20
1111
3
原创 opencv动态识别人脸
gray = cv2.imread('./faces_dymamic/%s/%d.jpg'% (dir,i)) #三维图片。print('这个人是:%s.置信度:%0.1f'%(label,confidence))key = input('请输入文件夹的名字,姓名拼音的缩写,如果输入Q,程序退出!gray_ = gray[:, :, 0] #二维数组。target.sort() # 排序。#4、算法训练,找到目标值之间的规律。#2、加载数据,返回目标值。#3、加载人脸识别算法。
2024-04-27 21:25:39
1019
2
原创 yolov8操作步骤
2、搜py38 Miniconda3-py38_22.11.1-1-Windows-x86_64.exe 52.5 MiB 2022-12-23 07:57。1、https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/(下载)清华源:https:/mirrors.tuna.tsinghua.edu.cn/help/pypi/9\源码安装: 在当前文件目录中 pip install -e. 查看安装情况:pip list。
2024-04-20 08:35:59
416
原创 OPEN CV 实现车辆统计
通过外接矩形的宽高大小来过滤掉小的矩形。#把车抽象为一点,即外接矩形的中心点。#要通过外接矩形计算矩形的中心点。# 如何画线,画在什么位置。#要求坐标点数都是整数。# 如何画线,画在什么位置。# 把原始帧进行灰度化。#膨胀,把图像还原回来。#画出所有检测的轮廓。
2024-04-20 08:14:49
459
2
原创 AT24C02读写操作 四
/在主函数里写判断if(USART_RX_STA&0xC000),然后读USART_RX_BUF[]数组,读到0x0d 0x0a即是结束。//以下是字符串接收到USART_RX_BUF[]的程序,(USART_RX_STA&0x3FFF)是数据的长度(不包括回车)
2024-01-19 11:38:51
407
FreeRTOS系统实例(手机控制无刷电机版本)
2025-01-24
mpu6050&TOFSense
2024-12-06
在-stm32f427vit6平台运行micropython
2024-11-30
st-link下载 驱动程序
2024-11-19
支持STM32F1系列开包
2024-11-19
wifi连网与MQTT通信实例
2024-11-17
esp32 wifi配网文件,主要包也WifiManager
2024-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人