- 博客(148)
- 问答 (174)
- 收藏
- 关注
原创 2024年第15届蓝桥杯嵌入式组注意事项之新建LCD工程
注意LCD的引脚不需要在cubemx中初始化,因为在lcd.c文件中存在已经初始化函数LCD_Init()只需要调用即可。
2024-04-11 21:10:28 353
原创 拒绝光照影响,一文教你在地平线旭日派X3上如何使用resnet18搭建自己的深度学习巡线小车
为了测试模型预测黑线的坐标是否准确,所以将模型输出的坐标在原来图像中绘制成原点,可以看到红点绘制在了黑线上说明预测成功,如果场景复杂建议数据集使用大量的不同场景的照片以达到最好的预测结果。如果上面三个脚本都执行成功的话我们将会在当前model_output目录下找到bin文件,这就是可以在X3派上运行的模型文件。这里使用了地平线提供的hobot_dnn库,注意需要将结果反归一化即x和y分别乘图像的宽和高。修改模型的路径,以及转换后模型的名称,归一化的类型等。获取训练的代码请关注这个佬的文章,
2024-03-23 22:15:14 655
原创 第十五届蓝桥杯嵌入式模拟考试I
前面2次提交时没有注意lcd的行数,看了评测记录才知道又很多的评测都跟lcd有关,如果显示的行数出错那当然是拿不到分的,后面那次提交是因为题目中lcd是从第一行开始的,而我们的lcd 是从Line0开始的,还是会导致lcd差一行,应该庆幸没有直接比赛,而是进行了模拟,经过这次模拟后才发现了,自己有时粗心大意的毛病,大家做题的时候可不要学我,要仔细审题,不要放过任何一个细节。这个状态是为了判断串口是否接收到了数据,如果接收到数据就解析该数据,同时进入状态2,如果没有接收到数据那就继续等待。
2024-03-23 01:35:38 1889 16
原创 蓝桥杯嵌入式历年省赛真题
目前是第六到十二届真题,还剩第十二和第十三届的题目,由于最近一下做了很多套,最后两套等考前复习时做很多套路是固定,使用STM32G431开发板。
2024-02-15 01:42:08 3227 1
原创 蓝桥杯嵌入式第9届真题(完成) STM32G431
Time结构体定义了时间的数据类型,CountdownStatus是一个枚举类型,表示了定时器的三种状态。
2024-02-12 23:06:10 6135 1
原创 蓝桥杯嵌入式第8届真题(完成) STM32G431
对比第六届和第七届,这届的题目在逻辑思维上确实要麻烦不少,可以从题目看出,这届题目对时间顺序的要求很严格,所以就可以使用状态机的思想来编程,拿到类似题目不要急着写代码,一定要先分析好步骤,想出状态转换的逻辑后,在根据逻辑写代码写起来就很快了。
2024-02-06 20:18:29 2578 7
原创 一文教你地平线旭日派X3部署yolov5从训练-->转模型-->部署
近日拿到了地平线的旭日派X3,官方说是支持等效5tops的AI算力,迫不及待的想在上面跑一个yolov5的模型,可谓是遇到了不少坑,好在皇天不负有心人,终于在手册和社区各个大佬的帮助下,终于在板子上推理成功,本文会从训练、模型转换、到部署到旭日派详细说明。之后就可以运行train.py文件开始训练,模型保存在根目录下的runs文件夹下的exp文件夹下的weight文件夹,也可以查看训练的收敛情况图片。例如我选择的是yolov5s,修改yolov5s.yaml中的nc为自己的标签个数。
2024-02-04 00:42:41 2553 7
原创 在ubuntu虚拟机中安装ros2-foxy
为了配合旭日派X3的ros2-foxy系统,担心之前安装的humble系统与foxy不兼容,于是重新开了一个Ubuntu20.04的虚拟机环境是ubuntu20.04 使用阿里源。
2024-02-02 16:14:42 638
原创 蓝桥杯嵌入式第七届真题(完成) STM32G431
adc_process 中1s读取一次使用1ms进入一次SysTick_Handler 中断定时newadcval、newlevel、newheight都是最新一次数据,与上一次数据比较是否液位发生变化led_process中题目要求三个led按要求变化,led1要一直闪烁,led2、led3满足特定条件后才变化翻转所以使用两个标志位led2flag和led3flag同时使用静态变量led2count计数闪烁五次后关闭。
2024-01-31 20:21:04 3284
原创 蓝桥杯嵌入式第六届真题(完成)STM32G431
使用状态机,第一次进入之后,进入下一个状态,如果电平还是刚刚的电平说明真的按下,如果不是重新进入第一个状态重新判断,定时器定时时间10ms刚好消抖,最后一个case2是判断如果按键松开,说明可以进入下一次判断。只有最后四个函数是本人写的,其余为蓝桥杯官方提供,主要是两种i2c时序,指定地址写和指定地址读的时序,重点在读需要首先写入要读取的地址之后再开始读,浮点数的存储使用联合体union。处理按键任务,用户多个界面之间的转换以及上报时间的设置,根据当前lcd的状态,来决定按键按下的功能。
2024-01-31 02:47:13 3304
原创 地平线旭日X3派第一次启动
选中此串口,波特率选择921600,点击ok,可以看到板子正在启动。将USB转TTL插到电脑usb口上打开Mobaterm。选择Session会话,选择Serial串口。选中镜像,然后选中自己要烧录镜像的SD卡。用户名和密码都是root。地平线旭日X3派全身照。
2024-01-30 19:47:55 481
原创 ROS2常用命令工具
build-type : C++或者C ament_cmake ,Python ament_python。rclpy std_msgs sensor_msgs :编译依赖。查看节点详细信息,包括订阅、发布的消息,开启的服务和动作等。topic_name:需要发布话题消息的话题的名字。罗列当前系统的所有接口,包括话题、服务、动作。message_type:话题的数据类型。service_name:需要调用的服务。pkg_name :创建功能包的名字。node_name:可执行程序的名字。
2024-01-27 13:43:46 437
原创 docker与宿主机数据交换—ROS2
docker cp [容器id:容器内路径] [目的主机路径]docker cp c54bf9efae47:/root/test.txt ~/将容器c54bf9efae47内的文件拷贝到宿主机的根目录下。
2024-01-19 18:28:28 501
原创 ROS2机器人开发入门
当客户端发送运动目标时,使用的时服务的请求调用,服务器端会反馈应答,表示收到命令,动作的反馈过程就是会提的周期发布,服务器端时发布者,客户端是订阅者,动作是一种应用层的通信机制,其底层是根据话题跟服务来实现的。ROS Middleware是一个接口,把兼容性的问题转移给了厂商,各大厂商想要将自己的DDS接入ROS2系统中,需要按照ROS2的接口标准来开发驱动。编写完代码后需要重新编译,将src中的代码copy到install中,后期ros2 run 的都是install中的代码。
2024-01-19 14:15:05 976
原创 Python-PyQt5树莓派上位机
一个使用PythonQT设计的树莓派的上位机,功能大概如下1.笔记本电脑与树莓派的通讯是否成功显示(给个信号显示判断是否通讯成功);2.阈值的设置显示;3.图像成像的显示;4.是否发生火灾报警显示。5.当前像素灰度值最大值和最小值显示。6.对以上主要信息数据(时间年月日时分秒信息、阈值数据、灰度值最大值和最小值、是否发生火灾报警信息)的采集保存,用excel或txt存就行。
2024-01-08 16:24:30 1338
原创 stm32f103c8t6连接OneNet云平台进行数据的上传与下发
esp8266.c中设置wifi名字和密码以及云平台IP和端口号。实现了数据发送云平台和云平台的数据发送到stm32单片机。同样是onenet.c中的OneNet_RevPro函数。数据上传部分在onenet.c中找到这个函数。注意此教程只适用于老版本onenet云平台。首先是onenet.c中的云服务器设置部分。接收onenet收到的数据。
2024-01-08 12:42:52 2043
原创 将特定目录添加到 Python 搜索路径
最近在使用青云1000(昇腾310)时,有很多华为提供的第三方库,不是通过pip安装的那些,在使用时不能直接import直接使用,简而言之就是python找不到这些库,下面提供三种措施。
2023-12-25 19:01:01 529
原创 vscode不同代码的项目分配不同的工作区
很多时候我们很多项目都需要使用vscode来进行编写代码,像我个人会拿vscode写python,linux远程写代码,前端和stm32的编辑器,这些项目都有自己的插件,如果我们启动某一个项目,其他的与本项目无关的插件也启动了,这就会非常占用我们的内存,下面提供一种根据项目分不同工作区的方式。在目标出添加“文件夹绝对路径”,记得在的位置后要先添加一个空格,我这里有两个图标。在拓展中点击禁用(工作区),以后再打开,就不会默认启动了,其他也同理。可以看到与该项目无关的插件被禁用。拖到桌面右键新快捷方式属性。
2023-12-25 17:09:07 800
原创 使用dd命令打包jetson nano 树莓派等linux开发板SD卡中的镜像
很多时候我们为了防止sd卡损坏,需要备份一个镜像,下面是使用dd命令将sd卡中的镜像一模一样的复制一份的教程首先使用df -h命令查看挂在的u盘最下面的三个sdb1 sdb2 sdb3 就是需要打包的镜像的分区可以安装pv这个工具是检测管道流数据的,不用pv的话,你就不知道已经传了多少数据,心情会更加煎熬这样右下角显示百分比和剩余时间了。
2023-12-24 17:45:05 997
原创 Qt使用函数指针处理信号和槽函数重载
这种方式的好处是,它提供了一种更灵活的方法来连接信号和槽。可以在运行时决定要连接的信号和槽,而不必在编写代码时就固定下来。这在处理动态生成的对象或在编写库代码时特别有用,因为你可能不知道最终的用户会如何使用这些对象。
2023-12-23 15:41:59 643
原创 信号与槽QT4和QT5的区别
Qt4在 Qt 4 中,信号和槽的连接使用了一种不同的语法,这是 Qt 框架特有的,利用了 Qt 的元对象系统(Meta-Object System)。SIGNAL()和SLOT()。这些宏用于在运行时进行信号和槽的匹配,而不是在编译时。这种方法相比于 Qt 5 引入的语法,类型安全性较低,且更容易出现因拼写错误而导致的运行时错误。
2023-12-23 13:02:36 890
原创 Canny函数opencv
在Canny边缘检测算法中,这两个阈值的选择非常关键。相反,如果阈值设置得太高,则可能会导致有用的边缘信息被遗漏。通常,高阈值是低阈值的两到三倍是一个不错的起点,但最佳值取决于具体的应用和图像特性。这个阈值用于确定哪些边缘是真正的边缘。如果像素的梯度强度高于高阈值,那么它一定是边缘的一部分。而如果像素的梯度强度介于两个阈值之间,则该像素只有在与高于高阈值的像素相连时才被视为边缘的一部分。如果一个像素的梯度强度高于低阈值,那么它可能被视为边缘的一部分。函数时,其中的两个参数是用于边缘检测的阈值。
2023-12-22 17:33:58 702
原创 C++opencv中的Mat数据类型,作为参数函数传递的一些问题
因此,当你在 getContours 函数中调用 drawContours 修改 img 时,它实际上修改的是共享的数据,从而影响了原始的图像数据。当你创建一个 Mat 对象并将其传递给另一个函数时,即使是按值传递,传递的也只是对象的头部信息(包括对实际数据的引用),而不是整个数据。这意味着,即使在函数中对传入的 Mat 对象进行修改,它也会影响原始的 Mat 对象,因为它们共享相同的数据。当你创建一个新的 Mat 对象并将其赋值给另一个 Mat 对象时,两者会共享相同的数据,只是引用计数会增加。
2023-12-21 16:54:40 769
原创 windows控制台的命令
虽然windows继承于伟大的Linux但是还是有很多命令与linux有所不同,有的时候需要从cmd管理员身份启动就避免不了,在控制台切换磁盘,下面是一些常用的cmd控制台命令。
2023-12-18 11:30:22 141
原创 疯狂的多元宇宙-----git分支
通过这个比喻,可以看到Git分支如何提供一种强大的方式来探索不同的代码变化和功能开发,同时保持主代码库的稳定性。每个分支都是一个新的机会,一个探索不同代码实现可能性的世界。很多人理解不了git的分支的概念,我觉得它就像科幻电影里的平行宇宙,下面我会用平行宇宙的概念解释git分支。
2023-12-18 11:24:40 180
原创 VM虚拟机打不开原来保存的虚拟机文件夹ubuntu
指定的文件不是虚拟磁盘 打不开磁盘“D:\ubuntu_iso\ubuntu_location\Ubuntu 64 位-s002.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。将42行scsi0:0.present = "TRUE"的TRUE改为FALSE,具体第几行可能有区别。然后先别急,不要直接打开,使用之前拍摄的快照打开,记得一定要使用之前拍摄的快照打开。网上找了很多办法也没有解决,最后使用这个办法解决。换了电脑把之前的虚拟机克隆的文件夹直接拿来用。打开虚拟机所在目录下的这个。
2023-12-16 20:24:13 312
原创 Mybatis 1对1的关联映射结果集
被用于详细地描述如何从数据库的结果集映射到Java对象。这对于处理复杂的SQL查询和关联表格非常有用,因为它提供了一种灵活的方式来处理数据库列和Java对象属性之间的不匹配,以及数据嵌套。查询可以在需要的时候才执行,而不是在原始查询执行时立即加载,这可以提高性能并减少不必要的数据库访问。中表示一个关联的对象,通常是多对一的关系。这种方式允许延迟加载关联对象,因为。应该是用于将员工对象()与其所属部门的对象(在MyBatis中,
2023-12-04 14:41:21 76
原创 VMWare虚拟机ubuntu克隆打不开
复制的存有ubuntu克隆的文件夹,导入vmware打不开。说找不到这个文件,那就到目录把它的删掉。换000001.vmdk后缀的。
2023-11-26 21:18:59 375
原创 Spring AOP-面向切面编程概念
AOP(面向切面编程)是编程范式的一种,它允许程序员将横切关注点(cross-cutting concerns)模块化。在面向切面编程中,这些横切关注点通常体现为在多个点重复出现的代码,如日志、事务管理、安全等。AOP使得这些关注点与业务逻辑分离,提高了代码的可维护性和可重用性。
2023-11-23 21:06:13 221
空空如也
ISBN 号码例子都过了也只过了例子,我这个代码问题出在哪里
2023-05-12
macOS 的vs开发C#为什么没有输出的那个窗口找了很多也没找到
2023-03-06
macos的PyCharm安装wordcloud安装失败
2023-03-03
快速排序这段代码怎么理解
2023-01-26
用stm32+超声波通过pid控制小车与墙保持15cm距离
2023-01-14
java 报错Index 1 out of bounds for length 0
2023-01-08
stm32电机和流水灯的仿真跑不出来
2022-11-18
Proteus跑stm32仿真跑不起来
2022-11-07
mac版vscode每次运行的的时候就弹出这个怎么处理
2022-11-03
合并两个链表的函数,求解释错误在哪?
2022-10-06
C++链表调用两次遍历,结果却只输出一次
2022-10-04
C++ 链表使用clion调用两次函数为什么只有一次结果
2022-10-04
C++数据结构一使用尾插入法就报图片中的错误
2022-10-04
macos的vscode报错这是怎么回事?
2022-09-30
不理解锁存器的含义及作用,求解释(网上的也看不太懂)
2022-09-28
uchar code table[]数组为什么还可以这么定义
2022-09-28
macos版的vscode,突然就这样了,求解决办法
2022-09-19
为什么个十百千位达不到效果啊,debug的内容跟想的不一样
2022-09-14
泰勒公式求sin(x)感觉没问题啊,但是为什么得不出正确结果
2022-09-14
PD虚拟机下载的dev用不了点击编译运行但是没有弹出黑框框
2022-09-09
clion报错请大家帮我看看原因
2022-08-29
macos 的vscode配置C++环境遇到这个问题该怎么办
2022-08-27
为什么是对256求模,求解释
2022-08-20
这个延时如何实现延时1秒的
2022-08-19
关于容器的一个小项目,求解释
2022-07-25
vscode这一般是什么情况?怎么解决输出个hello world没问题
2022-07-24
蒙特卡洛模拟为什么x>=3
2022-07-16
建立顺序表为什么全给我闪红
2022-07-13
请问问题在哪,检查了好几遍,求解释
2022-07-12
函数或变量无法识别digitsPattern
2022-07-04
这个程序为什么死循环
2022-07-03
Z 必须为矩阵,不能是标量或向量。
2022-07-02
keil5MDK这个报错怎么解决
2022-06-29
关于运算符优先级的问题
2022-06-20
建立新数组达不到效果怎么改
2022-06-14
求素数为什么会有1问题在哪?
2022-06-14
b[0]溢出了问题在哪?
2022-06-11
一运行就崩溃问题在哪
2022-06-11
判断素数问题出在哪如何改?
2022-06-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人