殷忆枫
这个作者很懒,什么都没留下…
展开
-
RK3568笔记八十二: 利用AI生成的简单数据转发服务程序
2、客户端连接后发送ID:1234格式,服务端收到,解析出ID:1234并记录。测试AI编写代码能力,做了个简单的数据转发功能,后期想部署到服务器。4、超时3分钟没有任何数据,断开TCP连接释放SOCKET。如有侵权,或需要完整代码,请及时联系博主。有使用STM32和自己编写的APP通讯。若该文为原创文章,转载请注明原文出处。1、打开TCP服务端,等待客户端连接。3、相同的ID数据之间互转。经测试功能是正常的。原创 2025-04-18 15:15:19 · 102 阅读 · 0 评论 -
RK3568笔记八十一: Linux 小智AI聊天机器人移植
若该文为原创文章,转载请注明原文出处。上一篇编译了所需要的库,这边记录下移植编译测试过程。原创 2025-03-26 15:54:19 · 422 阅读 · 1 评论 -
RK3568笔记八十: Linux 小智AI环境搭建
若该文为原创文章,转载请注明原文出处。最近小智AI火了,韦老师出了版本,想移植到 RK3568上,由于和韦老师硬件不同,所以需要交叉编译一些库,为后续移植做准备。原创 2025-03-25 15:48:18 · 522 阅读 · 0 评论 -
RK3568笔记七十九:Web通信处理
若该文为原创文章,转载请注明原文出处。此篇记录下使用boa如何通过web服务器后台cgi和主程序通讯。目前所知道的方式有很多,比如:一、使用fifo管道处理web和主应用程序直接的消息。二、通过socket通信,cgi做为客户端,主程序为服务端。两种方法,解决了通信问题。cgi后台程序使用了广泛用到的cgic库。web端可以使用boa,nignx等,不限制。这里以web登录为例,通过下发帐号密码,主程序验证返回结果,web界面显示。代码不是很复杂,这里记录关键片段。原创 2025-03-18 17:31:17 · 136 阅读 · 0 评论 -
RK3568笔记七十八:PCM转WAV
最近看到Deepseek大模型,网上也有很多使用ESP32的小智智能语音功能,所以想在RK3568上实现类型的功能。大概功能是:采用MIC录制5-10秒音频,转成WAV格式,通过RK的Whisper转成文本,把文本传给豆包API,结果通过火山TTS转化在通过喇叭播放。此篇记录下,两个功能:1、录制5秒PCM保存成WAV格式,为后续做准备。2、使用alsa播放WAV文件,为TTS播放做准备。文件头包括三个部分。原创 2025-02-15 11:38:48 · 274 阅读 · 0 评论 -
RK3568笔记七十七:RTMP实时推流
功能是采集音频(alsa-lib库)和视频(V4L2框架)数据,使用ffmpeg编码并实时推流到RTMP流媒体服务器,达到直播功能(推流),服务器使用SRS,简单易用。程序创建了三个线程:第一个线程:通过V4L2框架读取摄像头数据,读取的数据是NV12格式第二个线程:通过alsa-lib库读取声卡数据第三个线程:通过FFMPEG库将视频音频编码推流到指定的RTMP服务器。主要是想学习ffmpeg应用,也可以使用SRT,RTSP等,不一定是RTMP。前面交叉编译已经包含了SRT等。原创 2025-01-21 19:18:18 · 546 阅读 · 0 评论 -
RK3568笔记七十六:使用V4L2框架录制MP4视频保存到本地
若该文为原创文章,转载请注明原文出处。录制MP4使用的是ffmpeg,如何编译自行处理。原创 2025-01-20 22:17:53 · 409 阅读 · 0 评论 -
RK3568笔记七十五:FFMPEG交叉编译
若该文为原创文章,转载请注明原文出处。后面想要测试两个小项目,会用到ffmpeg,正点原子带的ffmpeg没有编译x264和x265,所以重新编译一下,这里记录编译过程。项目一:采集摄像头数据录制成MP4视频保存到本地项目二:采集音频(alsa-lib库)、视频(V4L2框架)数据编码并实时推流到RTMP流媒体服务器在前面也有实现过RTMP推流,但只有视频没有音频,使用的zlmedia,这次想使用ffmpeg。原创 2025-01-17 16:09:41 · 479 阅读 · 0 评论 -
RK3568笔记七十四:AP配网实现
若该文为原创文章,转载请注明原文出处。前面交叉编译移植了udhcpd。接下来实现AP配网过程。流程:设备产生AP热点->创建TCP服务器->电脑连接热点-> 发送wifi账号密码->退出AP热点模式->连接WIFI.原创 2025-01-16 22:45:55 · 269 阅读 · 0 评论 -
RK3568笔记七十三:wpa_supplicant等移植
若该文为原创文章,转载请注明原文出处。想实现的功能是通过AP热点配网,在自动连接上网,所以不采用connmanctl方式,而采用传统的方式。这里需要用到wpa_supplicant,hostapd, udhcpc等。这里记录交叉编译过程。原创 2025-01-14 08:56:32 · 143 阅读 · 0 评论 -
RK3568笔记七十二:WIFI管理操作方法测试
一、使用connman管理WIFI若该文为原创文章,转载请注明原文出处。正点原子的RK3568平台默认使用connman管理WiFi,而且WiFi的核心进程的启动。正点原子手册提供了测试方法。注意,正点原子默认wlan0是没有打开的。一、使用connman管理WIFI# 解锁射频,wlan0 是 2,若需要查看对应的设备请输入rfkill# 打开 wlan0,若未开启可以输入这个指令# 查看 wlan0 是否开启。可以看到下图开启了。使用下面指令来连接wifi。原创 2025-01-13 20:58:54 · 192 阅读 · 0 评论 -
RK3568笔记七十一:基于yolo5的多线程单目摄像头测距(c++)
若该文为原创文章,转载请注明原文出处。本篇记录基于Yolov5+DeepSORT实现多目标检测与跟踪的基础上,在增加测距功能。在上面基础上移植修改,在正点原子的ATK-DLR3568上运行测试。原创 2024-12-17 20:08:07 · 209 阅读 · 0 评论 -
RK3568笔记七十:使用xml记录数据
在开发项目过程中,有一些操作记录或事件数据需要记录在本地或服务器,记录在本地有很多方式,这里记录使用xml简单的方式处理数据。示例:这是我想要记录下来的格式,累计记录200条,其中,可以创建参数,修改参数,查询参数,解析参数,和删除参数等功能。这些功能比较常见。这里简单记录下创建xml, 修改xml,解析xml,删除xml等功能,记录只是个示例程序使用时需要封装面API接口增加一些处理机制,比如互斥锁等,避免同时操作xml文件。此示例只是一种方法,在项目中可以选择自己合适的方案。原创 2024-11-15 09:25:59 · 394 阅读 · 0 评论 -
RK3568笔记六十九: 事件回调处理之Libevent 简单使用
在项目开发过程中,事件处理使用相当多,特别是在UI处理的过程中,UI不能在非UI程里直接操作,否则会出现内存等异常,即不能在子线程里操作UI,所以用事件消息的方式通知UI线程刷新UI界面,在这一细节上掉了好多次坑。Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;原创 2024-11-13 11:14:33 · 687 阅读 · 0 评论 -
RK3568笔记六十八:Yolov11目标检测部署测试
若该文为原创文章,转载请注明原文出处。看到yolov11出了,山水无移大佬测试通过,跟个风测试一下效果。使用的是正点原子的ATK-DLRK3568开发板。这里不训练自己的模型了,使用官方模型测试。原创 2024-11-07 18:53:07 · 719 阅读 · 0 评论 -
RK3568笔记六十七:Live555拉流显示
若该文为原创文章转载请注明原文出处。在项目中用到的功能是RTSP客户端,使用onvif获取RTSP地址,后通过live555解析视频流并在LCD显示。这里记录使用live555拉取RTSP数据,解析视频流,并通过LCD显示。验证功能的可行性。拉取RTSP使用的是live555的testRTSPClient.cpp程序,增加了h264和aac解析功能。原创 2024-10-16 17:14:16 · 395 阅读 · 0 评论 -
RK3568笔记六十六:Live555推流
若该文为原创文章,转载请注明原文出处。前面移植了live555,记录使用rk3568推流。原创 2024-10-14 14:29:14 · 654 阅读 · 1 评论 -
RK3568笔记六十五:LIVE555交叉编译测试
若该文为原创文章,转载请注明原文出处。在开发项目时有用到LIVE555,使用是其他芯片,功能是LIVE555拉流,通过LVGL显示摄像头数据。这里记录如何交叉编译,测试一下,为后续增加拉流和推流准备,使用zlmedia也可以,但live555用的比较多。想实现的是:一、使用LIVE555推流,通过采集摄像头数据编码后推流二、使用LIVE555接流,通过编码器解码显示在MPIP屏上。这里记录live555交叉编译及测试过程。live555需要用到的包有 openssl 和live555.原创 2024-10-12 15:42:43 · 396 阅读 · 0 评论 -
RK3568笔记六十四:SG90驱动测试
若该文为原创文章,转载请注明原文出处。前面有测试过PWM驱动,现在使用两种方式来产生PWM驱动SG90,实现舵机旋转任意角度。原创 2024-10-07 22:29:43 · 270 阅读 · 0 评论 -
RK3568笔记六十三:基于LVGL的Linux相机
代码UI框架基本不变,修改的是V4L2采集和显示功能。后续将研究一下如何使用LVGL图层叠加方式显示摄像头数据。Yinyifeng18/RK3568_LVGL_camera: 基于RK3568的相机测试 (github.com)测试前需要关闭桌面的QT界面。如有侵权,或需要完整代码,请及时联系博主。原创 2024-09-25 09:07:59 · 959 阅读 · 0 评论 -
RK3568笔记六十二:使用V4L2读取摄像头并在LCD上显示
若该文为原创文章,转载请注明原文出处。测试在LCD显示的目的是想移植韦老师的基于LVGL的相机程序。LVGL前面有移植测试过是正常的,但使用V4L2读取MIPI摄像头并在LCD上显示没测试过。这里记录下测试的情况。原创 2024-09-23 20:50:47 · 609 阅读 · 0 评论 -
RK3568笔记六十一:MIPI摄像头应用程序编写
V4L2设备驱动框架向应用层提供了一套统一、标准的接口规范,应用程序按照该接口规范来进行应用编程,从而使用摄像头。对于摄像头设备来说,其编程模式如下所示:1.首先是打开摄像头设备;2.查询设备的属性或功能;3.设置设备的参数,譬如像素格式、帧大小、帧率;4.申请帧缓冲、内存映射;5.帧缓冲入队;6.开启视频采集;7.帧缓冲出队、对采集的数据进行处理;8.处理完后,再次将帧缓冲入队,往复;9.结束采集。原创 2024-09-22 10:36:05 · 578 阅读 · 0 评论 -
RK3568笔记六十:V4L2命令测试
若该文为原创文章,转载请注明原文出处。测试V4L2是想移植韦老师的相机程序,但他使用的是V4L2方式采集摄像头。而正点原子的rknn使用的是opencv。这里记录测试过程。原创 2024-09-21 15:03:15 · 762 阅读 · 0 评论 -
RK3568笔记五十九:FastSAM部署
Fast Segment Anything Model (FastSAM) 是一种基于 CNN 的新型实时解决方案,可用于 Segment Anything 任务。该任务旨在根据各种可能的用户交互提示分割图像中的任何物体。FastSAM 在保持极具竞争力的性能的同时大幅降低了计算需求,使其成为各种视觉任务的实用选择。模型架构。原创 2024-09-18 10:41:01 · 430 阅读 · 0 评论 -
RK3568笔记五十八:基于SIP的视频通话测试
记录SIP的视频通话测试过程,以前有做过GB28181了解过SIP协议,后面由于一些原因,没有在做了,在安防领域上,有很多终端设备使用SIP协议实现视频对讲等功能。此篇记录交叉编译eXosip和osip,并编写检测的SIP客户端,通过microSIP软件模拟和板子交互过程。demo有两个功能:一是:microSIP呼叫设备,设备把语音和视频上传上来显示。二是:设备呼叫分机,microSIP应答,视频和语音未处理。SIP协议采用Client/Server模型。原创 2024-08-31 22:42:50 · 1015 阅读 · 0 评论 -
RK3568笔记五十七:基于UNetMultiLane的多车道线等识别部署
若该文为原创文章,转载请注明原文出处。此篇记录在正点原子的ATK-DLRK3568上复现山水无移大佬的UNetMultiLane 多车道线、车道线类型识别。数据是基于开源数据集 VIL100。其中数据标注了所在的六个车道的车道线和车道线的类型。8条车道线(六个车道),对应的顺序是:7,5,3,1,2,4,6,8。其中1,2对应的自车所在的车道,从左往右标记。原创 2024-08-26 21:24:20 · 259 阅读 · 0 评论 -
RK3568笔记五十六:yolov8_obb旋转框训练部署
若该文为原创文章,转载请注明原文出处。本文基于rknn_model_zoo和山水无移大佬的博客和代码训练模型并部署到正点原子的ATK-DLRK3568板子测试。原创 2024-08-20 22:54:07 · 451 阅读 · 0 评论 -
RK3568笔记五十五:yolov10训练部署测试
若该文为原创文章,转载请注明原文出处。yolov8还没熟悉,yolov10就出来了,本篇记录使用yolov10训练自己的数据,并部署到rk3568上。参考大佬的博客。原创 2024-08-17 23:29:52 · 515 阅读 · 0 评论 -
RK3568笔记五十四:SORT实时目标追踪
YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。原创 2024-08-11 10:01:36 · 362 阅读 · 0 评论 -
RK3568笔记五十三:RC522驱动开发测试(SPI1)
RC522 是一种非接触式读写卡芯片,底层采用SPI模拟时序,可以应用于校园一卡通、水卡充值消费、公交卡充值消费设计、门禁卡等。非接触性IC卡与读卡器之间通过无线电波来完成读写操作。二者之间的通讯频率为13.56MHZ。非接触性IC卡本身是无源卡,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与本身的L/C产生一个瞬间能量来供给芯片工作。另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器,完成一次读写操作。原创 2024-08-05 22:00:35 · 492 阅读 · 0 评论 -
RK3568笔记五十二:HC-SR04超声波模块驱动测试
HC-SR04超声波模块是一种常用于距离测量和障碍物检测的模块。它通过发射超声波信号并接收回波来计算所测量物体与传感器之间的距离。1、基本原理TRIG引脚负责发送超声波脉冲串。此引脚应设置为高电平10μs,此时HC-SR04将以40 kHZ发出8个周期的声波脉冲。发出声波爆发后,ECHO引脚将变为高电平。ECHO引脚是数据引脚 - 用于进行距离测量。发送超声波脉冲串后, ECHO引脚将变为高电平,它将保持高电平,直到检测到超声波脉冲串为止,此时它将变为低电平。原创 2024-08-04 21:26:46 · 891 阅读 · 0 评论 -
RK3568笔记五十一:W25Q64测试(spi 标准接口 )
若该文为原创文章,转载请注明原文出处。前面有测试过W25Q64,但那是自己编写的驱动,现在使用内核自带的驱动,只需要通过SPI标准接口,编写应用程序即可以读写W25Q64.原创 2024-08-04 00:23:44 · 615 阅读 · 0 评论 -
RK3568笔记五十:SPI通信-回环测试
若该文为原创文章,转载请注明原文出处。原创 2024-08-02 20:32:07 · 642 阅读 · 0 评论 -
RK3568笔记四十九:W25Q64驱动开发(硬件SPI1)
串行外设接口 (Serial Peripheral interface) 简称 SPI,是一种高速的,全双工,同步的通信总线,并 且在芯片的管脚上只占用四根线,节约了芯片的管脚。而W25Q64是常见的串行闪存器件,W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的操作。原创 2024-07-31 22:16:15 · 1966 阅读 · 0 评论 -
RK3568笔记四十八:ADC驱动开发测试
RK3568集成了一个逐次逼近模数转换器(Successive Approximation ADC),通常简称为SAR ADC。这种转换器能够将连续的模拟信号转换为离散的数字信号,其特点在于具有较高的分辨率和转换速度。在RK3568中,这个SAR ADC支持六通道单端10位的SAR-ADC,时钟频率必须小于13MHZ。原创 2024-07-30 22:25:14 · 1689 阅读 · 0 评论 -
RK3568笔记四十七:PWM 子系统
PWM(Pulse width modulation),脉冲宽度调制。在内核中 PWM 驱动较简单,但是麻雀虽小,五脏 俱全,基本的框架是完整的。pwm 控制器驱动 soc 厂商已经写好,我们要做的是在设备树 (或者是设备树插件) 中开启控制器 节点,描述 pwm 设备节点,然后驱动中调用内核 PWM 提供的接口,来实现 pwm 驱动控制。原创 2024-07-29 22:43:02 · 637 阅读 · 0 评论 -
RK3568笔记四十六:按键输入子系统
linux 为了统一各个输入设备,将输入子系统分为了 Drivers(驱动层)、Input Core(输入子系统核心 层)、handlers(事件处理层) 三部分。• Drivers 主要实现对硬件设备的读写访问,设置中断,并将硬件产生的事件转为 Input Core 定义的规范提交给 Handlers;• Input Core 起到承上启下的作用,为 Drivers 提供了规范及接口,并通知 Handlers 对事件进 行处理;原创 2024-07-26 11:43:18 · 753 阅读 · 0 评论 -
RK3568笔记四十五:串口驱动测试
若该文为原创文章,转载请注明原文出处。正点原子的ATK-DLRK3568板子使用了RS232 和 RS485 接口,分别连接到了 ATK-DLRK3568 的 UART3 和 UART4 接口上。这里测试串口驱动,使用的是UART9。原创 2024-07-25 18:02:04 · 1319 阅读 · 0 评论 -
RK3568笔记四十四:OLED 屏幕驱动(硬件I2C_3)
若该文为原创文章,转载请注明原文出处。本篇记录使用硬件I2C驱动OLED屏幕,显示界面效果如下。使用硬件I2C比使用GPIO模拟简单多了,不用自己写I2C协议。原创 2024-07-25 15:20:40 · 632 阅读 · 1 评论 -
RK3568笔记四十三:MPU6050驱动开发(硬件I2C_3)
i2c支持一主多从,各设备地址独立,标准模式传输速率为100kbit/s,快速模式为400kbit/s。总线通过上拉电阻接到电源。当 I2C 设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。I2C物理总线使用两条总线线路,SCL和SDA。原创 2024-07-24 22:07:14 · 1433 阅读 · 0 评论