一、項(xiàng)目名稱:
基于FS3000開發(fā)板和Arduino的汽車尾翼安全調(diào)節(jié)示意系統(tǒng)
二、項(xiàng)目概述:
本設(shè)計(jì)方案旨在構(gòu)建一個(gè)汽車尾翼安全調(diào)節(jié)系統(tǒng)的示意模型。雖然在真實(shí)汽車應(yīng)用中,F(xiàn)S3000FL氣流傳感器的量程無法直接適用于汽車表面的高速氣流,但該系統(tǒng)通過模擬驗(yàn)證氣流控制尾翼調(diào)節(jié)的可行性。利用FS3000FL氣流傳感器采集氣流數(shù)據(jù),Arduino作為主控單元處理數(shù)據(jù)并控制舵機(jī)的角度,舵機(jī)模擬尾翼的調(diào)節(jié)動(dòng)作,從而研究在模擬氣流條件下汽車尾翼的調(diào)節(jié)對車輛運(yùn)行平衡的影響。
1、基本原理
氣流檢測原理:FS3000FL氣流傳感器基于特定的空氣流動(dòng)檢測機(jī)制(例如熱膜測量原理),當(dāng)有氣流通過傳感器時(shí),會引起傳感器表面溫度變化,這種溫度變化被轉(zhuǎn)換為電信號輸出,輸出信號與氣流速度相關(guān)。
主控與傳感器交互原理:FS3000FL傳感器通過標(biāo)準(zhǔn)的Pmod Type 6A(Extended I2C)接口與Arduino連接(實(shí)際上就用的4根線)。Arduino通過I2C通信協(xié)議對FS3000FL傳感器進(jìn)行配置和讀取數(shù)據(jù)。I2C協(xié)議是一種簡單的串行雙線協(xié)議,由時(shí)鐘線(SCL)和數(shù)據(jù)線(SDA)組成,允許主控設(shè)備(Arduino)與多個(gè)從設(shè)備(FS3000FL傳感器)進(jìn)行通信。
舵機(jī)控制原理:Arduino根據(jù)從FS3000FL傳感器讀取到的氣流數(shù)據(jù),按照預(yù)先設(shè)定的算法計(jì)算出對應(yīng)的舵機(jī)角度值。舵機(jī)是一種位置(角度)伺服驅(qū)動(dòng)器,通過脈寬調(diào)制(PWM)信號控制其轉(zhuǎn)動(dòng)角度。Arduino輸出的PWM信號頻率和占空比決定了舵機(jī)的目標(biāo)角度,以此來模擬尾翼的調(diào)節(jié)。
2、硬件
FS3000FL(PMOD DAUGHTER CARD FOR FS3000 FL)傳感器模塊
Arduino開發(fā)板:作為主控單元,具有豐富的輸入輸出引腳,可方便地與FS3000FL傳感器和舵機(jī)連接。具備足夠的處理能力來運(yùn)行I2C通信協(xié)議、數(shù)據(jù)處理算法和PWM信號生成。
180度舵機(jī):根據(jù)接收到的Arduino輸出的PWM信號控制舵機(jī)轉(zhuǎn)動(dòng),模擬尾翼的調(diào)節(jié)。舵機(jī)內(nèi)部由電機(jī)、減速齒輪組和位置檢測裝置組成,能夠準(zhǔn)確控制轉(zhuǎn)動(dòng)角度在0 - 180度之間。
3、軟件
Arduino IDE:用于編寫和上傳控制程序到Arduino開發(fā)板。
程序中首先初始化FS3000FL傳感器和舵機(jī)的連接端口,然后通過I2C協(xié)議讀取FS3000FL傳感器的氣流數(shù)據(jù)。
根據(jù)氣流數(shù)據(jù)按照特定算法計(jì)算舵機(jī)目標(biāo)角度,再通過生成相應(yīng)的PWM信號控制舵機(jī)轉(zhuǎn)動(dòng)。
4、項(xiàng)目實(shí)施步驟
硬件連接
將FS3000FL開發(fā)板的Pmod Type 6A接口與Arduino開發(fā)板的Pmod接口按照對應(yīng)引腳連接,確保I2C通信引腳(SCL和SDA)連接正確。
將舵機(jī)的信號線連接到Arduino開發(fā)板的一個(gè)數(shù)字引腳(如9引腳,用于輸出PWM信號),舵機(jī)的電源正負(fù)極分別連接到合適的電源(通常為5V或6V電源適配器,確保電源與Arduino的電源隔離)。
給FS3000FL開發(fā)板和Arduino開發(fā)板接通電源。
軟件編寫
庫文件導(dǎo)入
在Arduino IDE中導(dǎo)入FS3000FL傳感器的庫文件;
導(dǎo)入舵機(jī)的控制庫文件(Servo.h);
初始化代碼編寫
在setup()初始化FS3000FL傳感器的I2C通信,設(shè)置舵機(jī)的連接引腳,并初始化舵機(jī)的工作模式:
void setup()
{
Serial.begin(115200);
myservo.attach(9, 500, 2500); //修正脈沖寬度
pos = 90;
myservo.write(pos);
Wire.begin();
if (fs.begin() == false) //Begin communication over I2C
{
Serial.println("The sensor did not respond. Please check wiring.");
while(1); //Freeze
}
fs.setRange(AIRFLOW_RANGE_7_MPS);
Serial.println("Sensor is connected properly.");
}
數(shù)據(jù)采集與角度計(jì)算代碼編寫
在loop()函數(shù)中,首先讀取FS3000FL傳感器的氣流速度數(shù)據(jù),根據(jù)預(yù)先設(shè)定的算法(線性比例關(guān)系:將氣流數(shù)據(jù)轉(zhuǎn)換為舵機(jī)目標(biāo)角度,生成對應(yīng)目標(biāo)角度的PWM信號輸出到舵機(jī):
void loop()
{
pos = 90;
fs.readMetersPerSecond();
pos = 90 + fs.readMetersPerSecond()*10;
myservo.write(pos);
delay(15);
}
5、多檔風(fēng)扇效果測試
使用多檔風(fēng)扇產(chǎn)生不同強(qiáng)度的氣流,模擬汽車的正常行駛氣流和惡劣天氣下的強(qiáng)風(fēng)環(huán)境。
觀察在不同風(fēng)扇檔位(即不同氣流強(qiáng)度)下,F(xiàn)S3000FL傳感器采集到的氣流數(shù)據(jù),以及舵機(jī)相應(yīng)角度的變化。
分析測試結(jié)果,觀察模擬尾翼調(diào)節(jié)是否符合預(yù)期假設(shè).
具體效果可參看視頻內(nèi)容中的風(fēng)速測試內(nèi)容。
三、作品實(shí)物圖



四、演示視頻
【尾翼控制系統(tǒng)示意展示】 https://www.bilibili.com/video/BV1aTPKeTEyb/?share_source=copy_web&vd_source=2a202874768d99b0acaa1aceb9a9b93e
五、項(xiàng)目文檔
參考附件