0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用FRDM-K82F制作停车助手

科技观察员 来源:Inaki Zuloaga 作者:Inaki Zuloaga 2022-06-16 16:35 次阅读

使用计算机视觉制作停车助手,让您可以始终如一地将汽车完美对齐地停放在车库中。

间接传感

传感器领域,为了简化和降低传感成本,进行间接测量是很常见的。例如,为了检测人的存在以发出警报,超声波或热传感设备用于检测运动。然而,人类不是这样工作的。虽然我们可能可以使用声音来检测周围是否有人,但视觉是我们确定周围事物的最佳方式。一般来说,视觉可能是我们最有价值和最有能力的感觉,它使我们能够理解世界。

通过计算机视觉感知

最近,计算机视觉取得了很大进展。与机器学习相结合的新算法使我们能够从视频捕获中确定大量信息。然而,这些解决方案的成本远远高于其他类型的传感,因此其用途仅限于监控和工业应用。成本主要来自捕获和分析视频所需的强大计算机。

廉价的计算机视觉 (CV) 传感器可能会成为传感技术的一项突破,原因有很多:

它可以做得比间接传感器更智能。例如,在占用传感器中,当占用者不移动时,间接传感器会失效。即使没有移动,真正的计算机视觉占用传感器也可以检测占用情况。

只需一个视觉传感器就可以检测到许多不同的事物。例如,同一设备可用于检测位置、占用情况(即使现在很多人都在一个房间里)、火情、光照水平、设备状态(灯是否亮着?电视是否开着?)、手势控制,你的名字。如果您可以用自己的眼睛看到它,那么计算机视觉传感器也可以检测到它。

一旦开始使用,价格就会自行降低。基本上,这是大规模生产的结果。如果不生产占用传感器、火灾传感器、位置传感器,甚至墙壁开关,用基于摄像头的手势检测代替,一切都只用一个 CV 传感器完成,那么价格将比现在间接感应的价格降低得多。

基于摄像头的停车助手

由于上述原因,我想使用 FRDM-K82F 创建某种基于计算机视觉的传感器。虽然我想到了很多想法,但只有一个是实用的、有用的,并且可以在比赛截止日期前完成。

将汽车始终停在车库内的同一位置是非常困难的。您最终会在侧面过多,或者在前面或后面没有留下足够的空间。或者,也许你非常小心,但你的另一半却不是,如果你像我一样,那会让你发疯。目前有解决方案,从低技术到“伪高科技”。这些是其中的一些:

poYBAGKq6xmAEEijAANdl5ecfQs768.png

我的想法是创建对用户更友好的完全不同的东西。这个想法是使用计算机视觉制作一个系统,可以始终指导您正确停车。比现有解决方案更类似于此:

如何运作?

使用视频图像中的运动检测,系统应该能够指示车辆是否需要左移、右移或停止。

对用户的指示必须来自一个非常简单的基于灯光的界面,如下所示:

pYYBAGKq6xWAFwSVAAByJOD97X0952.png

左右箭头将指示汽车是否必须向左或向右转向。中间的灯会显示三种颜色,绿色表示前进,黄色表示谨慎前进,红色表示停止。

为什么选择带有 FlexIO 的 FRDM-K82F?

像 UV7670 这样的相机之前已经连接到其他类型的微处理器。然而,在大多数这些实现中,微处理器积极参与从图像中捕获数据。这需要微处理器的大量处理能力。一旦图像被获取并在 RAM 中,真正的工作就从图像处理功能开始。

Kinetis FlexIO 允许从 UV7670 传感器中检索图像,几乎无需微处理器进行处理。一旦图像被完全捕获,中断指示图像已准备好并在内存中。在处理图像时,将同时捕获下一张图像。

这使得 FRDM-K82F 成为该项目目标的理想平台:一个非常低成本的图像处理平台。

为什么选择 OV7670 摄像头模块?

OV7670 是一款 300Kpixels 相机。分辨率对于这个应用程序来说并不那么重要,实际上在撰写本文时,程序以最低分辨率 (120x160) 使用它。OV7670 的关键是规模经济。因为它在小型项目中被大量使用,所以在包含镜头的分线板上组装相机的成本约为 10 美元。它还具有其他优点,例如没有红外滤光片,使其适合使用红外照明进行应用。

构建说明

摄像头组装:FRDM-K82F 平台的设计人员很高兴能包含一个用于 FlexIO 的连接器,其引脚与 OV7670 完全相同。可以将 OV7670 直接焊接到 FRDM-K82F 板上,但是,我将 0.1” 插座焊接到板上。这样我以后可以将其他相机或设备连接到 FlexIO 接口

指示灯:这是项目中唯一需要一些人工来复制它的部分。指示灯是使用带控制器的 WS2812B RGB LED 制成的,并使用泡沫板进行安装。使用 WS2812B LED 的原因是因为它们提供了很大的灵活性(可以自定义颜色,并且可以连接任意数量的 LED),只需使用微控制器中的一个简单 GPIO。指示灯示意图如下:

pYYBAGKq6xGAC9V6AAB0hrIcL6k348.png

LED 安装在双面原型穿孔板上,作为三个单独的板。三块板用扁平电缆连接。第一个板是唯一不同的,因为它包含上拉电阻

poYBAGKq6wyAD1-_AAOOtW-WY7k826.png

pYYBAGKq6wiAIx52AAEDQFUi8Vs321.png

如果有可用的 WS2812B 分线板,使用起来会更容易。

pYYBAGKq6wWAKkWzAASJJ9cWhOI609.png

在泡沫板上切割灯的形状。小心不要完全切开。也就是说,将纸板背面留在一侧。剩余的纸板为 LED 提供了很好的扩散器。这样做两次,并使用锐器为内部边界着色,以避免光线扩散到创建的形状之外。LED 板安装在其中一块泡沫板上,并使用双面胶带将所有东西放在一个组件中。

pYYBAGKq6v-ABLOaAAMDfapn7gc282.png

pYYBAGKq6vuAP5WeAAN-qKd5kEc431.png

pYYBAGKq6veAVFTNAAQDZh-vBU8227.png

poYBAGKq6vOACONSAAH9pa7bxk8212.png

灯总成数据线连接到Port C pin 12,即FRDM-K82F板子中的PTC12:

pYYBAGKq6u-AQqonAAQK0MsJc_0509.png

软件

至此,硬件准备就绪,是时候在软件中工作了。

首先安装 Kinetis Design Studio。就我而言,我将它安装在我的 MacBook Pro 上,虽然文档不能保证它会起作用,但它对我来说完美无缺。

要刷新 FRDM-K82F 板,到处都使用 JLink JTAG 适配器,但是,我使用了 OpenSDAv2.1 接口,或者最常见的 mbed 接口。将 OpenSDA 端口连接到 MAC 后,它将显示为 USB 驱动器,其中复制了 KDS 生成的 .bin 文件。

我这样做只有一个问题。在某些时候,由于某种无法解释的原因,配套的微处理器(实现 OpenSDA 接口的那个)不知何故被擦除了。它没有作为名为 mbed 的 USB 驱动器出现,而是显示为 BOOTLOADER。

只需将固件复制到 USB 驱动器中,几分钟后我就可以重新启动并运行。

我根据安装 Kinetis Design Studio 时复制到示例文件夹中的 dev_video_flexio_ov7670_lite 示例启动了我的软件。有一段时间,我计划完全删除代码的 USB 部分,但我没有这样做很好,因为它有助于调试应用程序。

通常在计算机视觉应用中,不是使用 RGB,而是使用黑白视频。但是,从 RGB 转换为基于强度的视频需要太多的处理器时间,我想为图像处理留下尽可能多的处理能力,所以我更改了演示程序,以便从 OV7670 传感器捕获的图像在 YUV422 中完成。YUV 422 格式再次使用每像素 16 位,一个字节用于强度,另一个字节用于颜色信息。

这很容易在 flexio_ov7670.h 文件中更改,只需更改以下行:

.outputFormat = (ov7670_output_format_config_t*)&OV7670_FORMAT_RGB565,

.outputFormat = (ov7670_output_format_config_t *)&OV7670_FORMAT_YUV422,

然而,正如预期的那样,这搞砸了通过 USB 发送的视频。我尝试了一段时间将东西的USB端更改为YUV422格式,但我没有成功,所以为了保持USB视频可用,我将Intensity转换为RGB图像,很多比将 RGB 转换为强度更简单。

在通过 USB 发送图像之前,我还在图像中添加了一些信息,以帮助调试应用程序。这是我的视频在带有调试信息的 PC 端的外观:

pYYBAGKq6uqAJTyUAAGMIQqAqWA010.png

停车助手所需的软件在parkasst.c文件中,基本上需要用YUV422图像的缓冲区调用。所以这很容易迁移到其他平台。然而,要复制整个项目,只需在 FRDM-K82F 板中加载项目中包含的 .bin 文件并按照项目中的说明添加 LED。

总结

这不算是一个尽如人意的项目。但是,还是有一些今后可以进行拓展完善的功能。这些是完成该项目的下一个功能步骤:

使用蓝牙低功耗将图像上传到手机,这样用户就可以准确地配置停车限制

将停车区更改为三角形而不是正方形。它需要是一个三角形来考虑相机的视角

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48069

    浏览量

    739998
  • 计算机视觉
    +关注

    关注

    8

    文章

    1598

    浏览量

    45605
  • FRDM
    +关注

    关注

    1

    文章

    7

    浏览量

    2454
收藏 人收藏

    评论

    相关推荐

    【求助】利用FRDM-KL25Z连接KL25目标板

    大家好,我想从FRDM-KL25Z上面跳线来替代ULINK,连接我用KL25(MKL25Z128VFT4)制作的一个DEMO板子,接口如下,并断开了J11,KL25板子MCU部分如下,RST已上拉并
    发表于 02-06 15:47

    FRDM-K64F开发板在Keil下的调试步骤

    空间为128KB。2、安装mbed程序下载FRDM-K64F_QSP.zip压缩包(http://cache.freescale.com/files ... s/FRDM-K64F
    发表于 05-13 22:54

    【经验分享】OpenSDA固件相关问题

    这是来自客户碰到的实际问题。当客户使用J-Link固件更新FRDM-K82F 板子OpenSDA后,发现板子上OpenSDA的指示灯不亮。这是神马情况?另外一名客户不小心将OpenSDA K20芯片中的固件误擦除了,如何恢复OpenSDA功能呢?欲知详情,且看下文分解。
    发表于 06-13 11:38

    FRDM_K64F在keil下的开发

    mbed时,就是把FRDM-K64F_QSP.zip中,OpenSDAv2Applications里面的k20dx128_k64f_if_mbed.bin文件,复制到这个“U盘”里。 插开发板前要一直按着
    发表于 09-15 12:24

    新手关于FRDM-K64F和Arduino兼容的问题求解

    我在网上看了一下FRDM-K64F,他说这个开发板和Arduino R3 兼容,大佬们能不能帮忙解释一下这是什么意思呢?是不是可以理解为这两个开发板都可以按照Arduino方式进行编程,直接调用库和用端口。FRDM-K64F还可以单独进行用C或者C++操作寄存器,进行编程
    发表于 11-27 09:24

    新手求解关于FRDM-K64F和Arduino兼容的问题

    我在网上看了一下FRDM-K64F,他说这个开发板和Arduino R3 兼容,大佬们能不能帮忙解释一下这是什么意思呢?是不是可以理解为这两个开发板都可以按照Arduino方式进行编程,直接调用库和用端口。FRDM-K64F还可以单独进行用C或者C++操作寄存器,进行编程
    发表于 11-27 13:14

    关于FRDM-K64F和Arduino R3兼容的问题求解

    我在网上看了一下FRDM-K64F,他说这个开发板和Arduino R3 兼容,大佬们能不能帮忙解释一下这是什么意思呢?是不是可以理解为这两个开发板都可以按照Arduino方式进行编程,直接调用库
    发表于 11-27 13:17

    针对安全应用的恩智浦Freedom K82F开发板

      e络盟日前宣布推出新型恩智浦FRDM-K82F开发板,进一步丰富其面向基于ARM Cortex-M4内核的Kinetis K82K81及K80 MCU系列高性能、低功耗及安全微控
    发表于 09-17 17:41

    德国LENZE E82EV251K2C

    德国LENZE E82EV251K2C 德国LENZE E82EV251K2C 深圳现代豪方仪器仪表科技有限公司吴经理:0755-26998458/ 132,4667,5433工作Q
    发表于 03-18 16:54

    利用QT来制作一个最基本的串口助手

    QT制作串口助手为什么要写串口助手在学习单片机的过程中,经常需要使用串口来和电脑进行通信,有时还需要在电脑端对串口数据进行处理,制作上位机软件,满足项目的需要,所以此次
    发表于 01-18 08:09

    FRDM-K64F调试的时候报错的原因?

    我已插入全新的 FRDM-K64F。我已经安装了 MCUXpresso SDK、IDE、配置工具和 (windows) 串行驱动程序。我已经编译了“hello world”演示。但是当我点击“调试
    发表于 03-29 06:30

    FRDM-K82F已安装但无法连接到NXP GUI怎么解决?

    我有一个 KITVR5510DA0EVM,它是 VR5510 评估板。它利用 FRDM-K82F 促进运行 NXP GUI 的 PC 与实际配置 VR5510 之间的通信。 我能够更新 K82F
    发表于 04-28 08:43

    e络盟宣布推出新型恩智浦FRDM-K82F开发板

    通过新增FRDM-K82F开发板,e络盟进一步丰富了其嵌入式解决方案产品库存,适用于需要可扩展性能及高级安全性的应用领域,如销售终端及物联网设备。
    的头像 发表于 08-04 10:36 2643次阅读

    基于Arduino的停车助手V2

    电子发烧友网站提供《基于Arduino的停车助手V2.zip》资料免费下载
    发表于 11-09 10:13 0次下载
    基于Arduino的<b class='flag-5'>停车</b><b class='flag-5'>助手</b>V2

    停车传感器助手开源分享

    电子发烧友网站提供《停车传感器助手开源分享.zip》资料免费下载
    发表于 11-16 09:45 0次下载
    <b class='flag-5'>停车</b>传感器<b class='flag-5'>助手</b>开源分享