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