聚丰项目 > 基于AB32VG1的交通道路预警系统

基于AB32VG1的交通道路预警系统

AB32VG1板子是一个国产的RSIC-V处理器, 正好有用户需要做一个高速/路口智慧预警系统, 尽管无法网络远程升级或者Type C口数据升级.但是感觉还是有一点能扩展应用领域的地方,于是让人简单做了个这个交通道路预警系统的模型, 这个模型功能不复杂,但是可以扩展到不少应用场景:安防预警.仓储管理, 道路预警,如果增加上视频,摄像,车速采集等, 可以更大扩展领域.当然成本与功能需要更多优化, 起到抛砖引玉的作用. 期待厂家后续可以更加开放--开发远程升级功能。

圣志瀚林 圣志瀚林

分享
0 喜欢这个项目
团队介绍

圣志瀚林 圣志瀚林

团队成员

TechieZhang M

分享
项目简介
AB32VG1板子是一个国产的RSIC-V处理器, 正好有用户需要做一个高速/路口智慧预警系统, 尽管无法网络远程升级或者Type C口数据升级.但是感觉还是有一点能扩展应用领域的地方,于是让人简单做了个这个交通道路预警系统的模型, 这个模型功能不复杂,但是可以扩展到不少应用场景:安防预警.仓储管理, 道路预警,如果增加上视频,摄像,车速采集等, 可以更大扩展领域.当然成本与功能需要更多优化, 起到抛砖引玉的作用. 期待厂家后续可以更加开放--开发远程升级功能。
硬件说明

应用背景与解决问题:

(1)现在很多高速,农村路口仍然没有红绿灯,尤其是国道,告诉弯道的地方,经常发生机动车道无法预知交叉路口方是是否有行人或动物人畜,造成碰撞交通事故.

(2)园区,厂区,高校等内部道路,没有红绿灯,也经常出现快递机动车,物流车与人相撞的事故,造成财产与人身的重大损失

 为解决这一交通预警的问题,降低交通事故的概率, 制作了

该系统模型: 交通道路预警系统

简单功能介绍:

1.如果交叉路口正常,没有干扰,系统控制绿灯闪烁.同时把信息传送到远程端口””

2.模型通过人体感应红外线,检测人或动物的存在与否; 

3.如果有人物检测, 系统红灯报警闪烁,同时远程同时把信息传送到远程端口””

4.OLED屏幕显示系统开启状态,同时采集显示红外线电压数据.判断传感器是否工作正常



硬件框架

硬件产品图片:

整个方案采用硬件选型: AB32VG1 V2 Demo 板; SSD1306 OLED; 人体红外传感器AS312; E34-2G4D20D * 2 (带2G天线全双工模块);太阳能板充电电源*1



软件说明

软件框架说明

图片7.png

方案功能不是很复杂主要是测试ADC采用的频率与UART数据发送更新状态与效果

//UART Function

static rt_err_t uart_input(rt_device_t dev, rt_size_t size)

{


 rt_sem_release(&rx_sem);

 return RT_EOK;

 }

static void serial_thread_entry(void *parameter)

{

 while (1)

 {

    if(voll[7]>300)

        {

        rt_device_write(serial, 0, str1, (sizeof(str1) - 1));

        rt_thread_delay(200);

        }

    else {

        rt_device_write(serial, 0, str2, (sizeof(str2) - 1));

        rt_thread_mdelay(400);

    }



 }


}

 void UARTCube()

{

 rt_err_t ret = RT_EOK;

 char uart_name[RT_NAME_MAX]=UART_NAME;

 serial = rt_device_find(uart_name);

 if (!serial)

 {

 rt_kprintf("find %s failed!\n", uart_name);

 return RT_ERROR;

 }


 rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO);


 //rt_device_open(serial, RT_DEVICE_FLAG_INT_RX);

 rt_device_open(serial, RT_DEVICE_FLAG_INT_TX);

 rt_device_set_tx_indicate(serial, uart_input);


// rt_device_write(serial, 0, str1, (sizeof(str1) - 1));


 rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024, 13, 10);

 rt_err_t rt_device_close(rt_device_t dev);

 if (thread != RT_NULL)

 {

 rt_thread_startup(thread);

 }

 else

 {

 ret = RT_ERROR;

 }

 rt_thread_delay(100);

 //return ret;

}



RT-Thread使用情况概述

使用了线程、ADC信号量、GPIO、定时器 ,UART1,OLED(SDA/SCLK)等

项目的控制芯片AB32VG1 V2 Demo 板通过外接太阳能电源供电,OLED模组通过I2C: SDA/SCLK接口连接到主芯片, 传感器的REL信号连接到ADC7通道. 红绿蓝灯采用的GPIO方式连接.

代码中把AB32VG1的各个模块TF/音乐播放/PWM功能都测试了下.

 由于前期很多功能USB OTG/ 蓝牙模块没有开放,ADC采样的性能不太能满足要求, 流光采样测试的项目就流产了. 第1次用RT-thread,模型还有很多功能可以后续增加测试有机会,重新画个板子,单独把这个裁减增加上视频处理模块再完善下, 非常感谢主办方和各位技术大咖。每天学习一点点,进步一点点!



演示效果

效果视频:


(1)交叉路口无人通过时

远程终端显示: 安全驾驶

(2)交叉路口有人/动物出现时

图片5.png

远程终端显示: 路口行人,减速通行


代码见附件


附件

(17.30 MB)下载

评论区(1 )
  • jf_72051467: Git代码: https://gitee.com/techiezhang/rsic

    回复