一、項目名稱:
智能車汽車尾門控制系統(tǒng)
二、項目概述:
我們在開啟汽車尾門時,有時經常因為雙手手抱物品而不方便開啟后門,那用腳掃一掃能開啟車門,就給車主提供了極大的方便。
本系統(tǒng)采用STM32U585-IOT為主控芯片,其板載vl53l5cx時間飛行傳感,實時的對運動物體的掃描,生成數(shù)據(jù)后,通過智能算法,實現(xiàn)對腳的動作進行識別,從而實現(xiàn)非接觸方式來開啟車門的綜合控制系統(tǒng)。
本系統(tǒng)只能腳的運動進行識別,對較小的物體或者非指定動手不予響應,實現(xiàn)精準識別。
2.1系統(tǒng)框圖
2.2 測試初始化部分代碼
uint32_t R_total; //用于合計右邊的總運動強度
uint32_t L_total; //用于合計左邊的總運動強度
uint8_t check_sta; //用于統(tǒng)計發(fā)生可以檢測運動強度
uint8_t dir_move_sta; //用于判斷運動驅勢
uint8_t FWD;
uint8_t status, isReady, i;
VL53L5CX_Motion_Configuration motion_config; /* 運動配置 */
VL53L5CX_Object_t *pL5obj = CUSTOM_RANGING_CompObj[CUSTOM_VL53L5CX];
VL53L5CX_ResultsData Results; /* 來自VL53L5CX的結果數(shù)據(jù) */
/* 編程運動指示器 */
status = vl53l5cx_motion_indicator_init(&pL5obj->Dev, &motion_config, VL53L5CX_RESOLUTION_8X8);
if(status)
{
return status;
}
status = vl53l5cx_motion_indicator_set_distance_motion(&pL5obj->Dev, &motion_config, 1000, 2000);
if(status)
{
return status;
}
/* 測距頻率 */
status = vl53l5cx_set_ranging_frequency_hz(&pL5obj->Dev, 16);
if(status)
{
return status;
}
/* 測距循環(huán) */
status = vl53l5cx_start_ranging(&pL5obj->Dev);
2.3 識別及控制部分代碼:
status = vl53l5cx_check_data_ready(&pL5obj->Dev, &isReady);
//如果前面
if(isReady)
{
R_total =0;
L_total = 0;
/* 獲取測距數(shù)據(jù) */
vl53l5cx_get_ranging_data(&pL5obj->Dev, &Results);
for(i = 0; i < 16; i++)
{
if(Results.motion_indicator.motion[motion_config.map_id[i]] >= 110)
{
check_sta ++;
break;//測試超過強度就跳出來
}
}
if(check_sta > 0) //做累積
{
R_total = Results.motion_indicator.motion[motion_config.map_id[2]] +Results.motion_indicator.motion[motion_config.map_id[3]] +
Results.motion_indicator.motion[motion_config.map_id[6]] + Results.motion_indicator.motion[motion_config.map_id[7]] +
Results.motion_indicator.motion[motion_config.map_id[10]] + Results.motion_indicator.motion[motion_config.map_id[11]] +
Results.motion_indicator.motion[motion_config.map_id[14]] + Results.motion_indicator.motion[motion_config.map_id[15]];
L_total = Results.motion_indicator.motion[motion_config.map_id[0]] +Results.motion_indicator.motion[motion_config.map_id[1]] +
Results.motion_indicator.motion[motion_config.map_id[4]] + Results.motion_indicator.motion[motion_config.map_id[5]] +
Results.motion_indicator.motion[motion_config.map_id[11]] + Results.motion_indicator.motion[motion_config.map_id[12]] +
Results.motion_indicator.motion[motion_config.map_id[12]] + Results.motion_indicator.motion[motion_config.map_id[13]];
//開始預測運動方向。
if(R_total>L_total && dir_move_sta == 0)
{
dir_move_sta = 1;
}
else if (R_total>L_total && dir_move_sta > 0)
{
dir_move_sta = 1;
}
else if(R_total < L_total && dir_move_sta > 0)
{
dir_move_sta = 2;
}
else
{
dir_move_sta = 0;
}
check_sta = 0;
}
else
{
//如果計算出符合預期,測做出運作
if(dir_move_sta == 2)
{
EN_high;
if(FWD == 0)
{
DIR_high;
FWD = 1;
}
else
{
DIR_low;
FWD = 0;
}
PwmNum = 500; //設定開門限度
HAL_TIM_PWM_Start_IT(&htim4,TIM_CHANNEL_1); //開啟尾門
check_sta = 0;
dir_move_sta = 0;
}
else
{
dir_move_sta = 0;
}
}
}
check_sta = 0;
}
三、作品實物圖
全部的器件為:
3.1 主控制為得捷采購的B-U585I-IOT02A 探索套件,其STM32U585AI 微控制器提供了一個完整的演示和開發(fā)平臺,其特點是 Arm Cortex?M33 內核,帶 Arm 信任區(qū)和 Armv8-M 主線安全擴展、2 MB 閃存和 786 KB SRAM 以及智能外圍資源。
B-U585I-IOT02A 探索套件通過利用低功率通信、多路傳感和與云服務器的直接連接,實現(xiàn)了廣泛的應用多樣性。它包括 Wi-Fi 和藍牙模塊,以及麥克風、溫度和濕度、磁力計、加速度計和陀螺儀、壓力、飛行時間和手勢檢測傳感器。
此次采用vl53l5cx飛行時間和手勢檢測傳感器作為數(shù)據(jù)采集。
3.2 步時電機驅動器
3.3 步進電機及模擬汽車尾門,步進電機通過精準運動來實現(xiàn)尾門的開啟與關閉。
四、作品視頻介紹
B站鏈接:https://www.bilibili.com/video/BV11c411s7rR/?pop_share=1&vd_source=e1bd226340c8b87027d5dcfc6b0c3344