2023RT-Thread开发者大会

参加了一次RT-Thread的开发者大会,相当有意思,虽然一天奔波挺累,但睡了半天之后简单剪了下22号的视频,也就有时间写自己的参会笔记了。
RT-Thread开发者大会图
与openEuler社区不同,RT-Thread社区更专注于嵌入式,与硬件厂商结合较为紧密。我是在openEuler的嵌入式SIG的引导下来的,openEuler社区的Embedded发行版是Yocto架构为主与服务器端的发行版本并不一样。很明显在ARM-M系列的场景下是跑不了openEuler的,这时RTOS(实时操作系统)显然更为适合这类场景,正如RT-Thread开发者大会上演讲者所说,RT-Thread也在做一些填补大型操作系统与硬件之间关系,可以这么理解。
会议议程
我们是到的最早的那一批,坐了无人车,到了会场外,边收集着开发板,边看着一家家公司布着展,看着demo, 看着有意思的东西,开发板、系统、小样。虽然都在说今年裁员压力大,但各家公司的产品都还看起来不错。

早上,是开场,然后小睡了会儿,主办方RTT在说社区的人更多了,软件包更多了,但也更为完善了,更新放缓的阶段。英飞凌介绍了PSoc MCU, 瑞萨 给了几个行业应用的例子,比较让我惊喜的是给了很多新能源行业的解决方案。给我不少做课设的启发,如果自己的成果能解决行业问题,我觉得也是挺好的方向。
PSoc MCU
Psoc

下午,听了场瑞萨恩智普的边缘计算分会场的讲座。

一个在做MCU的e-AI模型迁移部署实验–强调了
MPU与MCU的界限逐渐模糊
Cheak MOTOR 电机检测

  • 算力检测–平台
  • HVAC风机检测
  • 13帧的视觉检测的RA8 MCU
    RA8 MCU

RA8

一个在做相似的方向(emmm, 没咋听全,有个老哥打我电话,喊我搬砖)

  • 机器学习
  • 控制器
  • 产品

对了还有一家做车载AI视觉的大宋汽车技术合作方——黑芝麻

动手实践也比较简单,但挺有趣的。

现场发布的 RA8 MCU 开发板

用的 OpenMV IDE, 界面也比较简单(与PR相比),挺有意思的,demo如下

DEMO RTT RA8
Blog就到这了,Bye 2023RT-Thread开发者大会。

这里是用到的代码
# Fast Linear Regression Example
#
# This example shows off how to use the get_regression() method on your OpenMV Cam
# to get the linear regression of a ROI. Using this method you can easily build
# a robot which can track lines which all point in the same general direction
# but are not actually connected. Use find_blobs() on lines that are nicely
# connected for better filtering options and control.
#
# This is called the fast linear regression because we use the least-squares
# method to fit the line. However, this method is NOT GOOD FOR ANY images that
# have a lot (or really any) outlier points which corrupt the line fit...

import sensor
import time

THRESHOLD = (0, 100)  # Grayscale threshold for dark things.
BINARY_VISIBLE = True  # Binary pass first to see what linear regression is running on.

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time=2000)
clock = time.clock()

while True:
    clock.tick()
    img = sensor.snapshot().binary([THRESHOLD]) if BINARY_VISIBLE else sensor.snapshot()

    # Returns a line object similar to line objects returned by find_lines() and
    # find_line_segments(). You have x1(), y1(), x2(), y2(), length(),
    # theta() (rotation in degrees), rho(), and magnitude().
    #
    # magnitude() represents how well the linear regression worked. It goes from
    # (0, INF] where 0 is returned for a circle. The more linear the
    # scene is the higher the magnitude.
    line = img.get_regression([(255, 255) if BINARY_VISIBLE else THRESHOLD])

    print(
        "FPS %f, mag = %s" % (clock.fps(), str(line.magnitude()) if (line) else "N/A")
    )

# About negative rho values:
#
# A [theta+0:-rho] tuple is the same as [theta+180:+rho].

# Automatic RGB565 Color Tracking Example
#
# This example shows off single color automatic RGB565 color tracking using the OpenMV Cam.

import sensor
import time

print("请勿在相机前放置任何物品")

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
sensor.set_auto_gain(False)  # must be turned off for color tracking
sensor.set_auto_whitebal(False)  # must be turned off for color tracking
clock = time.clock()

# Capture the color thresholds for whatever was in the center of the image.
r = [(320 // 2) - (50 // 2), (240 // 2) - (50 // 2), 50, 50]  # 50x50 center of QVGA.

print(
    "将要跟踪的物体放在相机前面的框中"
)
print(
    "确保您要追踪的物体的颜色完全被框住!"
)
for i in range(60):
    img = sensor.snapshot()
    img.draw_rectangle(r)

print("开始学习颜色  ")
threshold = [50, 50, 0, 0, 0, 0]  # Middle L, A, B values.
for i in range(60):
    img = sensor.snapshot()
    hist = img.get_histogram(roi=r)
    lo = hist.get_percentile(
        0.01
    )  # Get the CDF of the histogram at the 1% range (ADJUST AS NECESSARY)!
    hi = hist.get_percentile(
        0.99
    )  # Get the CDF of the histogram at the 99% range (ADJUST AS NECESSARY)!
    # Average in percentile values.
    threshold[0] = (threshold[0] + lo.l_value()) // 2
    threshold[1] = (threshold[1] + hi.l_value()) // 2
    threshold[2] = (threshold[2] + lo.a_value()) // 2
    threshold[3] = (threshold[3] + hi.a_value()) // 2
    threshold[4] = (threshold[4] + lo.b_value()) // 2
    threshold[5] = (threshold[5] + hi.b_value()) // 2
    for blob in img.find_blobs(
        [threshold], pixels_threshold=100, area_threshold=100, merge=True, margin=10
    ):
        img.draw_rectangle(blob.rect())
        img.draw_cross(blob.cx(), blob.cy())
        img.draw_rectangle(r)

print("Thresholds learned...")
print("Tracking colors...")

while True:
    clock.tick()
    img = sensor.snapshot()
    for blob in img.find_blobs(
        [threshold], pixels_threshold=100, area_threshold=100, merge=True, margin=10
    ):
        img.draw_rectangle(blob.rect())
        img.draw_cross(blob.cx(), blob.cy())
    print(clock.fps())

RA8 MCU开发板如果大家感兴趣的话,我就专门出一期,看看有没有人想看,超过10票就发,嘿嘿。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/269380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【隐私保护】Presidio简化了PII匿名化

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

使用Java语言创建方法遍历二维数组

一、基本思想 遍历完成一个维度的时候换一次行,每次输出数字的时候增加一个间隔 创建一个独立于输出函数之外的遍历方法;通过使用这个方法来遍历二维数组并以矩阵的形式输出出来。 二、基本代码 public class ArrayDoubleDemo {public static void ma…

白龙地铁消费项目(地铁消费系统,包括用户端、管理端)

大一学的C#可视化项目文件,所有功能均可使用。可以直接下载 下方是演示照片

司铭宇老师:如何让企业销售培训效果落地

如何让企业销售培训效果落地 在企业销售培训中,我们经常听到一个词,那就是“落地”。所谓的“落地”,简单来说就是将培训中所学到的知识和技能转化为实际的工作行动,从而提高销售业绩。但是,如何才能让销售培训效果真…

树与堆的基本概念

当看到这里的时候,相信你的链表,队列,栈学的也差不多可以了,那么接下来让我们一起进入树的学习吧! 一.树的概念以及一些知识记忆 树的定义: 树是一种 非线性 的数据结构,它是由 n &#xff08…

顺序表的实现(头插、尾插、头删、尾删、查找、删除、插入)

目录 一. 数据结构相关概念​ 二、线性表 三、顺序表概念及结构 3.1顺序表一般可以分为: 3.2 接口实现: 四、基本操作实现 4.1顺序表初始化 4.2检查空间,如果满了,进行增容​编辑 4.3顺序表打印 4.4顺序表销毁 4.5顺…

Matplotlib_Matplotlib初相识

一、认识matplotlib: Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。 Matplotlib可用于Python脚本,Python和IPy…

sqlite3 c++ VS编译生成静态库

官网 https://www.sqlite.org/download.html 下载sqlite-amalgamation和x86版本下载sqlite-dll-win32-x86、x64位版本sqlite-dll-win64-x64 解压 SQLITE-AMALGAMATION包含 shell.csqlite3.csqlite3.hsqlite3ext.hsqlite-dll-win32-x86包含 sqlite3.def sqlite3.dll建立一个空…

什么样的猫粮好?新手必备!5款备受好评的主食冻干推荐!

猫咪生骨肉主食冻干猫粮喂养方式是越来越火了,作为一个离职的十年经验宠物护理师,对宠物健康营养方面的知识一直在研究,不光是为了我自己养的猫咪身体健康,也要为客户的猫咪健康负责!现在很多养猫人士对主食冻干猫粮喂…

我们一起动手学大模型应用开发

大模型正逐步成为信息世界的新革命力量,其通过强大的自然语言理解、自然语言生成能力,为开发者提供了新的、更强大的应用开发选择。 随着国内外井喷式的大模型 API 服务开放,如何基于大模型 API 快速、便捷地开发具备更强能力、集成大模型的…

类注解存储Bean的命名问题

在使用类注解存储Bean后,在获取Bean对象时,Bean对象的命名是怎样的呢?为什么有时候我们输入类型的小写可以获取到,为什么有的时候这样做获取不到呢? Teacher teacher context.getBean("teacher",Teacher.cl…

ctfshow 杂项签到

ctfshow的杂项签到题,下载压缩包之后里面有图片。 直接将图片用010editor打开,检索ctfshow可以看到答案。

BUUCTF——Reverse——reverse1

1、题目 2、工具 Exeinfo PE:查壳工具。IDA:是一款功能强大的反汇编工具,用于分析和逆向工程二进制文件。 3、方法 下载压缩包并解压,得到一个.exe文件。 打开后需要输入flag。随便输入一个字符串,点击确定后自动退…

Unity 人物方向旋转详细讲解

Unity 人物方向旋转详细讲解 人物的旋转有很多种一、在介绍之前我们需要理解Unity的向量也就是Vector3二、下面我们创建两个小球f1,f2左边的为f2 右边的为f1 三、我们将小球坐标用白色直线画出来,两个小球之间用黑色线画出来,两个小球的向量用黄线表示接…

基于 Python 和Surprise库,新手轻松搭建推荐系统

解密基于用户的推荐系统。 1、简介 在数据时代,推荐系统是提升用户体验的重要工具。今天介绍如何使用亚马逊的电影评分数据集创建电影推荐系统。 2、数据加载与探索 首先,通过加载和探索数据集开启数据分析过程。首先导入Pandas和Numpy,这…

MATLAB学习笔记(一)求解三阶微分方程

一、求解三阶微分方程 对于多变量三阶微分方程求解问题,这里介绍一种求解方法。 例题如下: 对于以上方程,给定边界条件,,,,,。求解和的表达式。 二、解题步骤 (1&…

系列十一(实战)、发送 接收带标签的消息(Java操作RocketMQ)

一、发送 & 接收带标签的消息 1.1、概述 消息的种类纷繁复杂,不同的业务场景需要不同的消息,基于此RocketMQ提供了消息过滤功能,通过Tag或者Key进行区分,本章介绍Tag,我们再往一个Topic里面发送消息的时候&#x…

正式官宣!谈思AutoSec 8周年年会暨中国汽车网络安全及数据安全合规峰会将于明年4月在沪召开

随着智能互联网时代的到来,智能汽车的安全形势变得更加严峻和复杂,网络资产的暴露和安全边界继续扩大。与传统的汽车车身安全问题相比,网络安全、数据安全、用户隐私等安全问题交织叠加,并加速了黑客对智能汽车领域的渗透&#xf…

OpenHarmony之内核层解析~

OpenHarmony简介 技术架构 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件…

微服务-springcloud(eureka实践, nacos实践)

Spring 体系图 版本关系 eureka 实践 1 父工程依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.14</version> </parent> <dependencyManage…