聚豐項(xiàng)目 > 基于AB32VG1的交通道路預(yù)警系統(tǒng)
AB32VG1板子是一個(gè)國(guó)產(chǎn)的RSIC-V處理器, 正好有用戶需要做一個(gè)高速/路口智慧預(yù)警系統(tǒng), 盡管無(wú)法網(wǎng)絡(luò)遠(yuǎn)程升級(jí)或者Type C口數(shù)據(jù)升級(jí).但是感覺(jué)還是有一點(diǎn)能擴(kuò)展應(yīng)用領(lǐng)域的地方,于是讓人簡(jiǎn)單做了個(gè)這個(gè)交通道路預(yù)警系統(tǒng)的模型, 這個(gè)模型功能不復(fù)雜,但是可以擴(kuò)展到不少應(yīng)用場(chǎng)景:安防預(yù)警.倉(cāng)儲(chǔ)管理, 道路預(yù)警,如果增加上視頻,攝像,車速采集等, 可以更大擴(kuò)展領(lǐng)域.當(dāng)然成本與功能需要更多優(yōu)化, 起到拋磚引玉的作用. 期待廠家后續(xù)可以更加開(kāi)放--開(kāi)發(fā)遠(yuǎn)程升級(jí)功能。
圣志瀚林
圣志瀚林
團(tuán)隊(duì)成員
TechieZhang M
應(yīng)用背景與解決問(wèn)題:
(1)現(xiàn)在很多高速,農(nóng)村路口仍然沒(méi)有紅綠燈,尤其是國(guó)道,告訴彎道的地方,經(jīng)常發(fā)生機(jī)動(dòng)車道無(wú)法預(yù)知交叉路口方是是否有行人或動(dòng)物人畜,造成碰撞交通事故.
(2)園區(qū),廠區(qū),高校等內(nèi)部道路,沒(méi)有紅綠燈,也經(jīng)常出現(xiàn)快遞機(jī)動(dòng)車,物流車與人相撞的事故,造成財(cái)產(chǎn)與人身的重大損失
為解決這一交通預(yù)警的問(wèn)題,降低交通事故的概率, 制作了
該系統(tǒng)模型: 交通道路預(yù)警系統(tǒng)
簡(jiǎn)單功能介紹:
1.如果交叉路口正常,沒(méi)有干擾,系統(tǒng)控制綠燈閃爍.同時(shí)把信息傳送到遠(yuǎn)程端口””
2.模型通過(guò)人體感應(yīng)紅外線,檢測(cè)人或動(dòng)物的存在與否;
3.如果有人物檢測(cè), 系統(tǒng)紅燈報(bào)警閃爍,同時(shí)遠(yuǎn)程同時(shí)把信息傳送到遠(yuǎn)程端口””
4.OLED屏幕顯示系統(tǒng)開(kāi)啟狀態(tài),同時(shí)采集顯示紅外線電壓數(shù)據(jù).判斷傳感器是否工作正常
硬件框架圖
硬件產(chǎn)品圖片:
整個(gè)方案采用硬件選型: AB32VG1 V2 Demo 板; SSD1306 OLED; 人體紅外傳感器AS312; E34-2G4D20D * 2 (帶2G天線全雙工模塊);太陽(yáng)能板充電電源*1
軟件框架說(shuō)明
方案功能不是很復(fù)雜,主要是測(cè)試ADC采用的頻率與UART數(shù)據(jù)發(fā)送更新?tīng)顟B(tài)與效果。
//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信號(hào)量、GPIO、定時(shí)器 ,UART1,OLED(SDA/SCLK)等
項(xiàng)目的控制芯片AB32VG1 V2 Demo 板,通過(guò)外接太陽(yáng)能電源供電,OLED模組通過(guò)I2C: SDA/SCLK接口連接到主芯片, 傳感器的REL信號(hào)連接到ADC7通道. 紅綠藍(lán)燈采用的GPIO方式連接.
代碼中把AB32VG1的各個(gè)模塊TF/音樂(lè)播放/PWM功能都測(cè)試了下.
由于前期很多功能USB OTG/ 藍(lán)牙模塊沒(méi)有開(kāi)放,ADC采樣的性能不太能滿足要求, 流光采樣測(cè)試的項(xiàng)目就流產(chǎn)了. 第1次用RT-thread,模型還有很多功能可以后續(xù)增加測(cè)試有機(jī)會(huì),重新畫個(gè)板子,單獨(dú)把這個(gè)裁減增加上視頻處理模塊再完善下, 非常感謝主辦方和各位技術(shù)大咖。每天學(xué)習(xí)一點(diǎn)點(diǎn),進(jìn)步一點(diǎn)點(diǎn)!
效果視頻:
(1)交叉路口無(wú)人通過(guò)時(shí)
遠(yuǎn)程終端顯示: 安全駕駛
(2)交叉路口有人/動(dòng)物出現(xiàn)時(shí)
遠(yuǎn)程終端顯示: 路口行人,減速通行
代碼見(jiàn)附件
(17.30 MB)下載
jf_72051467: Git代碼: https://gitee.com/techiezhang/rsic
回復(fù)