自定义博客皮肤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)
  • 收藏
  • 关注

原创 【瑞芯微RV1126(板端摄像头图像数据采集)】②使用v4l2视频设备驱动框架采集图像数据,按键拍照并显示

本系列的目的是,不仅仅将能够进行图片推理的模型部署于板端,还提供了两种摄像头数据采集的方法,集成到自己的深度学习推理代码之后,可以根据应用场景的不同实现按键控制拍照推理或者是实时推理并显示。本系列第一篇:本系列第二篇:本文本系列第三篇:在本系列第三篇博客中,最后我有提到,读取摄像头数据来进行实时推理或者拍照推理,在那里提供了两种思路:①按照这系列的第一篇博客,搭建环境,调用opencv的高级函数采集图像数据;

2024-07-21 10:34:16 3959 4

原创 【手眼标定】使用kalibr对imu和双目摄像头进行联合标定

由于本文的imu、双目摄像头都是在ros2环境下开发,数据传输自然也是在ros2中。但想要使用kalibr进行标定,就需要安装ros1,在ros1的环境下录制bag包提供给kalibr进行标定。所以本文在板端同时安装ros1和ros2,使用ros1_bridge允许ROS1节点和ROS2节点在同一个系统中运行,并相互通信,使得ros1环境下可以直接录制ros2发布的话题数据!

2024-06-26 18:17:03 1958

原创 【瑞芯微RV1126(板端摄像头图像数据采集)】①使用RV1126交叉编译工具链交叉编译opencv,c++代码直接调用VideoCapture 采集图像数据

交叉编译是一种将软件在操作系统上进行编译,但在另一种不同的操作系统或架构上运行的技术。本文将使用Ubuntu作为主机操作系统,并将OpenCV编译为在另一个目标平台上运行的库。经过测试,rv1126开发板上的opencv似乎安装的不够完整,没法使用高级的opencv类,导致想调用VideoCapture 函数读取摄像头数据进行模型推理失败(ps:嫌交叉编译opencv麻烦的,也可以使用Linux操作系统中用于支持摄像头和视频设备的框架:v4l2。可以比较方便的读取摄像头数据,不需要做什么配置,教程直接参考

2024-06-13 10:26:18 4440 6

原创 【yolov10】使用自己的数据集训练目标检测模型

官方给出的环境配置使用的torch版本是2.0.1,我电脑最高也就支持到1.11.0,所以就没法用gpu来训练了,当然也可以用自己的可以使用gpu训练的环境来训练yolov10,就是会有一些依赖报错,根据提示进行修改试试。格式选择yolo,然后点击open dir,选择存放待打标图片的文件夹,点击change save dir来更改保存标签的文件夹。首先打开cmd命令行(快捷键:win+R)。names根据自己数据集的标签来,train和val就是训练集和验证集的图片路径。①搜索labelimg。

2024-05-26 10:52:42 8680 41

原创 【瑞芯微RV1126(深度学习模型部署)】部署自己训练的yolov8-seg,实现足型检测!

瑞芯微有很多部署的例子在官方的git仓库里,如下图所示:部署官方的这些模型只需要在rknn_model_zoo目录下执行类似:,编译生成可执行文件,再加上rknn模型就可以上板运行。由于瑞芯微的onnx模型都是对原模型的优化,所以类似yolo官网训练出来的模型就不能直接用它们demo的推理代码,有两种方法比较省力:一是更改自己的模型结构使其适配瑞芯微的demo推理代码;二是不修改自己的模型结构,更改瑞芯微的demo推理代码使其适配自己的模型。这里选择第一种方法。

2024-05-18 16:45:21 3271 12

原创 【嵌入式linux开发】基于旭日x3派的视觉循迹小车

x3派读取摄像头图像,转换成灰度图像,从灰度图像中选择第 120 行(图像的一个水平线),遍历第120行的全部320列,根据像素值小于或大于阈值,将相应的值(0 或 1)添加到 date 列表中。最后根据小于阈值的像素个数和它们的总和来判断黑色赛道的位置,以此调节左右电机的转速实现循迹。4、小车底盘(直流电机或直流减速电机)1、旭日x3派(烧录好系统镜像)

2024-04-07 20:51:40 636

原创 【嵌入式linux开发】旭日x3派部署自己训练的yolov5模型(安全帽识别、视频流推理、yolov5)

在yolov5-6.2_hat_2文件夹下新建prepare_calibration存放待校准数据,新建一个prepare_calibration_data.py文件,执行之后就可以在calibration_data下生成校准数据。在挂载目录中的BPUCodes文件夹中新建文件夹yolov5-6.2_hat_2,将上一步得到的onnx模型复制一份进来。我的这个模型只训练了五轮,对图片的识别率不错,后续的视频流推理容易出错,轮次多点应该就好了。转换模型需要yaml参数文件,具体含义参考。

2024-03-18 21:56:59 4333 18

原创 【嵌入式裸机开发】arduino uno R3驱动带编码器直流减速电机(蓝牙、PID)

本文使用的电机,减速比是21.3,旋转一圈产生的脉冲数是11,这样车轮转一圈实际上编码器采集到的脉冲数(使用一倍频计数)是11×21.3,如果采用N倍频的话就是:11×21.3×N。

2024-03-11 21:24:05 2794 2

原创 【旭日x3派】部署官方yolov5全流程

原文参考:https://blog.youkuaiyun.com/Zhaoxi_Li/article/details/125516265这次部署的过程在windows下进行,深度学习环境和docker都是安装在windows中。系统:win10简单来说就是一块性能拉跨点的笔记本电脑,可以直接插入鼠标、键盘、显示屏,当作电脑使用。这使得可以部署深度学习算法到这块板子上。

2024-03-11 20:52:34 5115 44

原创 【嵌入式裸机开发】智能家居入门2(MQTT协议、微信小程序、STM32、ONENET云平台)

这里给出前两篇使用http协议博客的网址:在第二篇的博客结尾提出了服务器经常掉线的问题,使用别人编写好的心跳包也没用,因为程序一直卡死在重连中,所以也可以参照本篇的解决办法:加上独立看门狗,隔一段时间喂狗,如果超过时间没喂狗,说明程序多半卡死,此时看门狗处理逻辑中执行初始化esp8266和连接服务器的操作。

2024-03-04 15:17:48 4898 14

原创 【嵌入式裸机开发】基于stm32的照相机(OV7670摄像头、STM32、TFTLCD)

开机的时候先检测字库,然后检测SD卡根目录是否存在PHOTO文件夹,如果不存在则创建,如果创建失败,则报错(提示拍照功能不可用)。在找到SD卡的PHOTO文件夹后,开始初始化OV7670,在初始化成功之后,就一直在TFTLCD上显示OV7670拍到的内容。当上位机按下拍照时,进行拍照,此时DS1亮,照片通过串口发送至上位机,当DS1灭之后,拍照成功。(也可以自己改一改用板子的按键控制拍照)1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑,或者其他方法)上传图片数据至上位机。

2024-02-26 21:30:24 6488 10

原创 【嵌入式裸机开发】智能车入门:pcb版(蓝牙遥控、超声波避障、红外循迹、STM32)

基于STM32的智能小车

2024-02-22 09:37:08 1765 21

原创 【ROS1仿真】小车跟随(路径规划、动态避障、激光slam、定位)

在ros开发环境中实现小车跟随

2024-02-19 18:39:51 7274 14

原创 【ROS1仿真】小车跟随(总体流程)

由上述路径规划可知move_base 可以根据给定的目标点,控制机器人底盘运动至目标位置,这样我只需要将小车2相对于robot2/base_footprint的相对位置关系当作此目标点,即可实现小车1跟随小车2的效果,因为小车1有一个话题/robot1/move_base_simple/goal会接收/test03_control_turtle2节点的信息,以此控制小车1向这个目标点运动(/test03_control_turtle2这个节点就是自己实现的用于控制跟随的核心)。注意可能需要改些东西。

2024-02-14 09:13:18 3512

原创 【嵌入式实时操作系统开发】平衡车入门(PID、FreeRTOS、hal库、STM32)

低成本平衡小车

2024-02-08 15:58:05 3677 2

原创 【嵌入式裸机开发】智能车入门:面包板(蓝牙遥控、超声波避障、红外循迹、STM32)

这里将传感器得DO引脚接到PB6(设置成浮空输入),通过判断PB6引脚的高低电平,来控制led亮灭,led一脚接gnd,另一脚接PB7。这里将四个红外循迹传感器都要做一遍测试,就是看它能否正常工作,当能接收到反射回来的红外线时,这个模块的DO引脚就输出低电平,如果距离过远,或者是射到了黑色的物质上,红外线没法反射回来,此时DO引脚输出高电平,靠这个逻辑就能实现简单的循迹。有了①②③④的测试就可以组装一下车子然后测试超声波避障了,此时可以用充电宝给stm32供电,看看能不能正常工作,可以的话就可以上电池了。

2024-02-05 08:54:05 2783 1

原创 【嵌入式实时操作系统开发】智能家居入门4(FreeRTOS、MQTT服务器、MQTT协议、STM32、微信小程序)

以FreeRTOS为例子,使用标准库。记录由裸机转到实时操作系统所遇到的问题以及总体流程。相较于裸机,系统实时性强了很多,小程序下发的指令基本立马执行,没有啥延迟,调整任务的挂起时间,可以进一步提高系统效率

2024-02-02 09:09:27 3494 20

原创 【嵌入式裸机开发】智能家居入门3(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的,服务器全都是使用ONENET中国移动,他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器,有公用的,也可以自己搭建(应该要钱),项目源码在最后

2024-01-31 09:47:16 4050 5

原创 MQTT协议详解

MQTT协议详细介绍,可以用于智能家居领域

2024-01-29 10:36:16 2991 4

原创 【嵌入式裸机开发】智能家居入门1:环境信息监测(HTTP协议、STM32、ONENET云平台、微信小程序)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET,可以是公用的MQTT服务器也可以自己搭建或者租

2024-01-28 15:12:24 3332

原创 【嵌入式裸机开发】mpu6050控制二维云台(STM32、GY-521 MPU6050、舵机)

通过STM32读取MPU6050数据,将其转换成角度之后控制舵机跟着运动

2024-01-25 21:28:27 7326 20

原创 【ROS1仿真】小车跟随--改善跟随的位置(路径规划、动态避障、激光slam、定位)

通过代码不难看出,这里的实现就是将检测到的坐标系变换中的四元数转为了偏航角,通过偏航角就可以知道小车此时的朝向,通过测试最终写成四段if多条件判断语句,小车朝向不同,那么第二辆进行跟随的小车它的落点也就不同,这样就可以实现进行跟随的小车始终跟随在前面一辆下车的后面。如果想要更精细的落点可以增加判断的语句。ROS目标跟随改进版。

2024-01-18 15:45:45 3009 3

原创 【yolo12】windows下使用自己的数据集训练目标检测模型

官方给出的环境配置使用的torch版本是2.0.1,我电脑最高也就支持到1.11.0,所以就没法用gpu来训练了,当然也可以用自己的可以使用gpu训练的环境来训练yolov10,就是会有一些依赖报错,根据提示进行修改试试。格式选择yolo,然后点击open dir,选择存放待打标图片的文件夹,点击change save dir来更改保存标签的文件夹。首先打开cmd命令行(快捷键:win+R)。names根据自己数据集的标签来,train和val就是训练集和验证集的图片路径。①搜索labelimg。

2025-02-19 20:21:14 507

原创 【嵌入式Linux开发】RK3588s+QT+YOLO11S-Pose实现多路体测项目计数_demo

部署其它轻量化的姿态检测模型(blazepose)的话,速度可以更快,工业上接16路跑满都不是问题。这里因为精度问题部署的是s版本的yolo11-pose,只能跑3个30帧的摄像头,如果换成n的话可以跑满6个30帧的摄像头。这只是个demo,精度很差,关键点也还没有做平滑,因为后续还是想部署单人姿态检测模型的,比较体测的场景就是一个摄像头对一个人,当然也可以在算法上改进,一个摄像头体测多个人也是可以的。RK3588s+QT+YOLO11-pose多路摄像头体测动作计数。

2024-11-22 23:21:19 402

原创 【android开发】android端部署yolov11-pose实现体测计数

自制引体、俯卧撑、仰卧起坐数据集,使用自制数据集训练yolo11-pose模型,通过ncnn进行模型转换,得到的bin与param文件即为android端所需;app中集成虹软人脸识别sdk(支持android4.4-14),可单人实时人脸注册与照片批量注册,通过人脸识别之后自动开始计数;实现SQL数据库,支持保存与查询成绩、一键删除、可视化数据。

2024-10-19 11:31:39 1268 8

原创 【嵌入式linux开发】SPI设备文件操作BMI088传感器

在本篇博客中,将从BMI088传感器的数据手册出发,简单了解之后,展示如何通过SPI设备文件与传感器进行通信。除了使用linux文件设备操作spi接口,此传感器还需要gpio来控制当前通信对象。主控是旭日x3 module,底板是公司画的。数据手册直接浏览器搜索BMI088数据手册就可以找到。BMI088_Datasheet.pdf是此传感器最基本的数据手册,按照这个数据手册进行配置的话没法使用fifo和中断,如果想使用这两个功能的话还需要单独下载两个数据手册。本文只介绍最简单的数据读取。

2024-09-24 23:18:28 1410

原创 【嵌入式裸机开发】智能家居入门7:最新ONENET,MQTT协议接入,最全最新(微信小程序、MQTT协议、ONENET云平台、STM32)

本篇文章介绍最新ONENET云平台的MQTT协议接入方法,在STM32上实现数据上云与服务器下发数据解析,以及微信小程序接入服务器。对于智能家居而言,最重要的就是通信,通信是否稳定是否响应快,这是最重要的,外设的连接与控制这些都是很简单的,网上的一搜直接就有现成的代码,所以本篇博客不会介绍关于外设的使用与控制,主要介绍最新ONENET的接入与消息解析,这个框架搭好以后,其它外设连接那都不是事儿。OLED液晶显示屏或串口调试模块(USB转TTL)DHT11(可有可无,自己虚构上传数据也可以)

2024-08-19 19:15:07 2515

原创 【嵌入式linux开发】智能家居入门6:最新ONENET,物联网开放平台(QT、微信小程序、MQTT协议、ONENET云平台、旭日x3派)

ONENET云平台更新之后,已经将以前的多协议接入这部分融合进了物联网开放平台,以前在多协议接入里创建的产品和设备,虽然还可以用,但实际上已经过时了,因为新用户根本没有多协议接入这个选项。我的这系列前几篇文章有的也已经失去了实际意义,但是使用mqtt服务器的这两篇(入门三入门四)仍然有效!因为它们使用mqtt服务器和onenet没关系。本篇文章给想接入最新版onenet的小伙伴提供参考。须知。

2024-08-17 15:13:37 2031 2

原创 【嵌入式linux开发】智能家居入门5:老版ONENET,多协议接入(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派)

前四篇智能家居相关文章都是使用STM32作为主控,本篇使用旭日x3派作为主控,这是一款嵌入式linux开发板,运行linux操作系统。本项目在开发板端运行QT,使用http协议与onenet云平台通信,微信小程序作为移动端,可以接收到下位机上传至服务器的数据,也可以下发指令到服务器,开发板端不断获取指令,进而执行指令。

2024-08-15 20:41:47 2001

原创 扩展【从0制作自己的ros导航小车】C++_ROS_QT5联合编译,简单界面为ROS开发增添交互

前面已经实现了导航功能,对于之后的一些开发,有交互能力是比较重要的,比如小车上连接一块屏幕,通过屏幕来选择模式,可视化等等。QT是不错的选择,但是需要做一些额外的工作,让QT与ROS能够建立联系,实现通信。本文基于linux操作系统搭建C++_ROS_QT5联合编译环境,让ros与qt数据互通起来,为之后的开发打下基础。环境是直接使用ubuntu20.04安装之后默认的一些比如cmake等等,自己只需要再安装一下完整的QT5、Vscode即可。

2024-08-08 17:30:26 1820

原创 ⑩【从0制作自己的ros导航小车:上位机篇】05、导航!

上篇已经将建好的地图保存了下来,这节读取地图结合amcl、move_base功能包实现最终导航!

2024-08-02 20:42:13 1266 7

原创 ⑨【从0制作自己的ros导航小车:上位机篇】04、使用gmapping建图

前面的文章已经能够实现在odom坐标系下显示小车模型和里程计数据了,本文加上激光slam必不可少的传感器雷达,先进行测试,然后直接开始建图!

2024-07-31 09:04:18 1983 7

原创 ⑧【从0制作自己的ros导航小车:上位机篇】03、添加urdf模型(发布各传感器与小车基坐标系之间的静态坐标变换)

上一篇已经可以在rviz中看到小车的位姿和里程计了,但是只有坐标系不太好看,本篇博客为小车添加urdf模型。小车各部件之间的坐标系位置关系是固定的,所以可以有两种策略发布这种静态坐标变换:①直接在launch文件中使用tf2节点发布各部件与base_footprint之间的静态坐标变换;②编写urdf文件,在launch文件中包含urdf文件,此时会自动发布各部件之间的静态坐标变化。为了可视化方便,本文使用第二种方法(只是弄个很简单的模型,可以自己写,使用xacro)

2024-07-31 09:02:55 1458 2

原创 ⑦【从0制作自己的ros导航小车:上位机篇】02、ros1多机通讯与坐标变换可视化

上节课完成了里程计数据与坐标变换发布,但是还没有测试,本节进行测试,测试之前需要知道一件事,上位机也就是开发板一般不做可视化用,因为太耗费系统资源,所以我们需要另一台安装了ros的设备来进行可视化,本项目使用虚拟机安装ubuntu20.04,在ubuntu中安装了ros1-noetic,尽量与板端的ros版本一致。那么此时需要做的就是让开发板中的ros与虚拟机中的ros进行通信,接下来进行设置和测试。

2024-07-30 10:07:39 1628 3

原创 ⑥【从0制作自己的ros导航小车:上位机篇】01、里程计与坐标变换发布

前面已经实现了上下位机的串口通信,现在可以在接收串口数据的程序中发布里程计数据和坐标变换了!

2024-07-30 09:59:47 2259 10

原创 ⑤【从0制作自己的ros导航小车:上、下位机通信篇】上、下位机串口DMA通信

下位机的电机驱动、轮速读取、偏航角读取都已经完成,接下来就是上下位机的桥梁:串口通信。使用USB转TTL模块连接上位机(旭日x3派)和下位机(stm32),只需要连接RX、TX、GND即可。

2024-07-29 11:20:02 3005 8

原创 ④【从0制作自己的ros导航小车:下位机篇】03、mpu6050偏航角获取

我们可以通过IIC读取MPU6050加速度传感器数据和角速度传感器数据,但是后续的导航不是要这些数据,而是欧拉角中的偏航角,要得到欧拉角,要进行姿态解算,自己来姿态解算有点困难,可以使用DMP将原始数据直接转换为四元数输出,得到四元数之后,就可以很方便的计算出欧拉角,从而得到偏航角(YAW)。的方式读取mpu6050数据很简单(想了解底层寄存器操作的,可以看前面标出的软件iic对应的博客),但是读出来的数据不是我们后续导航要用到的偏航角,所以需要使用DMP库来读取数据并解算得到欧拉角(偏航、翻滚、俯仰)。

2024-07-29 10:13:36 2098 5

原创 ②【从0制作自己的ros导航小车:下位机篇】01、工程准备_标准库移植freertos

本系列下位机开发使用keilv5,开发时使用移植了freertos的标准库,如果是资源比较丰富的开发板,可以不用移植freertos,本系列用的是stm32f103c8t6,一共只有四个普通定时器,写代码时全部用了,高级定时器不知道为什么一直有问题,所以移植实时操作系统,控制代码执行频率,如果你的高级定时器可以使用,那也可以跳过这篇文章。

2024-07-28 22:27:54 1812 3

原创 ③【从0制作自己的ros导航小车:下位机篇】02、电机驱动、转速读取、PID控制

实际上这个pid输出和速度是什么关系不必搞得很清楚,只需要知道设置了100为目标值之后,如果当前占空比低,也就是转速低,还未达到目标值,那么pid输出(pwm值)就大,当编码器反馈值越接近目标值时,pid输出就减小,以此类推从大幅度震荡到基本收敛。上面代码的简单解释:这里初始化了四个引脚作为TB6612的逻辑控制,由两个引脚的0或者1能使输出颠倒从而实现电机正反转,具体正反转自己试试就行,你的小车哪个方向是向前,哪个方向是向后也由你定,根据确定后的值修改motor_R_move等四个函数控制电机的正反转。

2024-07-28 20:17:33 2521 9

原创 ①【从0制作自己的ros导航小车:介绍及准备】

本篇说明需要具备的知识和软硬件。可以不用全部具备,但基础要有,写的不是非常详细。本小车分为上位机与下位机两部分,上位机使用旭日x3派运行ros进行开发和算法实现,下位机使用stm32驱动底盘和传感器数据采集。一、知识①stm32部分(当然也可以使用其它控制类开发板,例如arduino,本专栏使用stm32):最好有开发基础,没有的话可以看江协科技的stm32基础教程,讲的很全面,不用全部看,前面可以都看,主要看定时器输入捕获、定时器编码器接口、oled、pwm等等。

2024-07-07 22:01:05 3017 6

基于STM32的智能小车

智能小车入门必修:红外循迹、超声波避障、蓝牙遥控等。是入门智能小车的基础。

2024-07-24

手写数字识别-深度学习

最经典的卷积神经网络。实现手写数字识别

2024-07-24

mpu6050控制舵机云台

读取mpu6050的数据进行解算,根据解算出的数据控制二维云台运动。

2024-07-24

使用mqtt协议与服务器通信

使用mqtt协议与服务器通信。自己可以写一个微信小程序,然后订阅服务器里的端口,就可以接收到电脑上传的数据。最适合用于做智能家居相关项目,开发板通过wifi模块将数据使用mqtt协议上传至服务器,这样就可以在微信小程序或者app上实时显示了。

2024-07-24

基于深度学习和图像处理的足型检测

这里面包含了板端摄像头读取、按键拍照、LCD显示的代码。请私聊!

2024-07-24

第19届研究生电子设计大赛-答辩ppt-门型展架-演示视频

第19届研究生电子设计大赛-答辩ppt-门型展架-演示视频。 通过观看这些对于想打电赛的人来说可以提供思路,对于完整代码也可以私聊我。

2024-07-24

STM32F103C8T6驱动步进电机

使用STM32驱动步进电机运动

2024-01-31

空空如也

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

TA关注的人

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