飞凌方案丨基于RK3399、i.MX6UL实现智能交通信号灯

2023-11-01 15:31

本文主要是介绍飞凌方案丨基于RK3399、i.MX6UL实现智能交通信号灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

"红灯停、绿灯行、黄灯亮了等一等",还记得这首童谣么?如今随处可见的交通信号灯大家一定不在陌生,那你知道这些信号灯都隐藏着哪些“秘密”?跟着小编一起来了解一些交通信号灯背后的那些“秘密”以及 未来智能交通信号灯的发展趋势。

一、交通信号灯

交通信号灯由红灯、绿灯、黄灯组成。红灯表示禁止通行,绿灯表示准许通行,黄灯表示警示。

1、绿灯信号:绿灯信号是准许通行信号。按《交通安全法实施条例》规定:绿灯亮时,准许车辆、行人通行,但转弯的车辆不准妨碍被放行的直行车辆和行人通行。

2、方向指示信号灯:方向信号灯是指挥机动车行驶方向的专用指示信号灯,通过不同的箭头指向,表示机动车直行、左转或者右转。

3、人行横道灯信号:人行横道灯由红、绿两色灯组成。在红灯镜面上有一个站立的人形象,在绿灯面上有一个行走的人形象。人行横道灯设在人流较多的重要交叉路口的人行横道两端。灯头面向车行道,与道路中心垂直。

二、交通信号灯控制逻辑

以一个最常见的十字路口为例,东西南北四个方向各有一组红绿灯。

十字路口红绿灯,最常见的交通信号灯的控制逻辑是南北方向通行时,东西方向不通行;东西方向通行时,南北方向不通行。如果十字路口车流量很大,可能会是另外一套控制逻辑,比如每一个时刻只有一个方向为绿灯,其它都是红灯。平时见到的交通信号灯,绝大部分都是固定配时的,也就是红灯、绿灯时长固定不变,也有 非固定配时的,比如按照一天中的时间段、或者按照一个星期的不同日子来设置不同的配置方案,还有会根据路口的流量变化动态调整配时方案的。

三、为什么现在信号灯的设计越来越复杂?

开过车的朋友,尤其是新手司机来说,最怕经过情况比较复杂的路口。路面上不仅有复杂的导向线,路口处还有样式特别的红绿灯,一个方向可能会有多组灯,比如有直行灯、左转灯、右转灯、甚至掉头灯,总之各种情况都会有。 从表面上看,这些交通信号标志的类型似乎很复杂,在不同的情况下想要采取不同的方式去应对。其实万变不离其宗,看见交通信号灯只要遵循“红灯停,绿灯行”的原则即可。

为什么现在交通信号灯的设计越来越复杂?是因为我国主要大中城市的市内交通拥堵情况日益加重,特别是在交通高峰期,如果还是采用简单控制逻辑,那么整个区域的交通都可能面临瘫痪的处境,更合适的信号控制时间和转向配置方案,可以更加有效地改善交通拥堵情况。

四、交通信号灯背后的嵌入式

理工科的同学是否还记得那些年做过的实验,通过定时器+LED+数码管实现交通信号灯的演示。当然如此简单的演示方案,肯定不能满足日益复杂的交通现场环境,而现实中的交通信号灯控制是如何做到的呢?

交通信号控制系统是一个独立的系统,又是整个地区信号灯系统的一部分。是城市道路交通管理系统中对交叉路口、行人过街,以及环路出入口采用信号控制的子系统,主要包括交通工程设计、车辆信息采集、数据传输与处理、控制模型算法与仿真分析、优化控制信号调整交通流等。

在十字路口道路旁,都会有这么样的一个交通信号控制柜,针对于交通信号灯控制的交通信号机就安装于交通信号控制柜内,是现代城市交通系统的重要组成之一,用于城市道路交通信号的控制与管理。

交通信号机内部由单片机或者Linux的处理器作为 主控,外围有串口、网口、按键、显示屏、指示灯等接口。看似不复杂,但是由于它工作环境严酷、需要常年累月连续工作,对产品稳定、质量要求很高。小编通过检索各个嵌入式厂商针对交通信号机提供的解决方案,简单为大家梳理一下交通信号机的工作原理。

上面这张框架图很好的体现了 交通信号机内部主控系统是如何工作的。根据飞凌嵌入式提供的解决方案,简单梳理了各个接口连接的外设需求。以飞凌嵌入式的iMX6UL系列核心板为例,

■ 双网口冗余设计,当某一线路出现故障时,自动启动另外一条线路与指挥中心进行通信;

■ 8路串口,可外接多种传感器、检测器、GPS,保证系统的精确时钟;

■ USB接口,可外接U盘、鼠标,方便生成和下载参数;

■ 多路GPIO,实现多通道红绿灯控制;

■ 7寸、10.1寸高清屏幕显示,界面运行流畅;

■ 上行通道支持4G接口,WiFi热点方便参数配置;

■ 工业级主板,可在-40°C~+85°C温宽下运行,经多个的领域长期测试,保证产品在严苛环境下的性能稳定;

■ 采用Linux+QT开发,提供各个接口的Demo例程,可以更快速的开发产品,支持Linux3.14+QT4.8.5,Linux4.1.15+QT5.6。

五、什么是智能信号灯?是否可以解决拥堵问题?

同时,城市发展的日新月异以及居民生活水平的提高使得市政道路改建工程频繁、机动车保有量持续增加,这些变化都对城市交通分布特征带来了巨大的影响,对交通信号灯控制如何应对这些快速变化提出了挑战。

随着中国城市化与机动化进程的深入,交通拥堵问题日益突出,已成为制约城市发展的主要瓶颈之一。传统的缓解交通拥堵的解决方案例如:拓宽道路、加大路网密度、建立立体交通等越来越显示出其局限性,随着物联网、大数据、人工智能、信息技术的发展,交通部门意识到只有利用高科技手段才能改善日趋严重的交通问题。因此,对道路基础设施的“智能化”改造成为智能交通发展的必然趋势。交通信号灯是城市交通管理控制的重要手段,信号灯控制系统升级将有极大潜力缓解交通拥堵。

在人工智能技术高速发展的背景下,对路面交通设施设备进行数字化梳理和数字化采集上,基于图像处理及嵌入式系统的智能交通信号灯应运而生。它可以通过多个渠道进行感知和收集相关的交通数据,然后利用“智慧大脑”分析研判,计算出更合适的信号控制时间和转向配置方案,从而有效地改善交通拥堵情况。

六、智能交通信号灯需要“智能大脑”

智能交通信号控制系统解决方案,飞凌嵌入式提供的解决方案是这样的,在各路口的交通信号灯现场的路边控制柜内,交通信号机可采用飞凌嵌入式的相关嵌入式ARM核心板设计,推荐的是FET3399-C核心板,多种AI框架支持, Android7.1系统,支持Tensorflow Lite、Caffe等多种AI框架;并提供针对RK3399平台深度学习目标检测开发的优化方案例程(RKSSD),利用了OpenCL、RGA等硬件加速模块,以降低CPU负载。

■ 具备2个ARM Cortex-A72内核和4个ARM Cortex-A53内核,最高主频1.8GHz,GPU采用Mali-T864,视频处理性能强大,可结合视频车辆检测器,利用路口电子警察的摄像机进行车辆信息的采集,进行车辆信息的采集;

■ 具备多种显示接口,包括HDMI2.0、MIPI-DSI、EDP1.3、DP1.2,最大分辨率达4K,可灵活选择显示接口,超大高清分辨率屏幕显示;

■ 具备ADC 5路,可通过监测信号灯的电压、电流、功率来监视信号灯的状态;

■ 可通过4G/5G与实时路况数据进行交换,实时改变控制方案,解决突发交通拥堵问题。在拥堵频发的核心区域、潮汐流明显的主干道区域,能发挥更加强大的协调路况的功能;

■ 多系统支持,Linux4.4+QT5.12、Android7.1、Forlinx Desktop18.04,python3.6语言编程,让开发变得更简单。

■ 由于飞凌嵌入式嵌入式计算机硬件的产品优势,使得交通灯可以有效规避“停机”或延迟等故障,同时可以高效处理海量的数据与控制任务。

扩展阅读:

-------------------------------------------------------------------

相关信号机专业术语

有两个不太容易理解的概念,叫做 相位和 相位阶段,官方的解释我就不引用了,说下自己的理解。

简单来说,一个路口有几组灯,就对应几个相位,比如上述的十字路口,东西南北各一组灯,那就是4个相位。

相位阶段,车辆“通行权”的每一次转换就称为一个信号相位阶段,一个信号周期内"通行权"的交接几次,就是几个信号阶段。

相位周期,就比较好理解了,就是该相位的信号灯各种灯色轮流显示一次所需的时间总和。

还有一些其他术语就不解释了。

智能交通信号灯背后的嵌入式密码-飞凌嵌入式 - 飞凌嵌入式行业资讯 - 保定飞凌嵌入式技术有限公司

这篇关于飞凌方案丨基于RK3399、i.MX6UL实现智能交通信号灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323983

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import