【摘要】超聲波是頻率高于20KHz 的聲波,在相同強度下,聲波的頻率越高,它所具有的功率就越大。由于超聲波頻率很高,功率大,所以與一般的聲波相比不容易損耗。超聲波在傳播時,方向性強,穿透能力強,易于獲得較集中的聲能,能量易于集中。可用于測距、測速、清洗、焊接、碎石、殺菌消毒等。在醫學、軍事、工業、農業上有很多的應用。運用在測距上,準確,方便。超聲波受環境干擾小,不會因為光照、溫度改變而受影響,測距較準確,可準確的感知飛機與地面距離。將超聲波測距技術和單片機結合起來,可實現對飛行高度的測量而自動控制起落架的打開和收回。
【關鍵詞】超聲波;起落架;測距
1.簡介航空飛行器
1.1 航空飛行器起落架現狀
目前航空飛行器上的起落架有三種情況,第一種是沒有起落架,比如滑翔機;第二種是固定的起落架,航模上大多數起落架就是這種不可收放的;第三種是可以收放的起落架,載人飛行器便是典型代表,這種起落架可以收放,但需要人來控制。在航空航天的領域,起落架對于飛機而言,有很重要的意義。起落架能夠承受飛機在地面停放、滑行、起飛著陸滑跑時的重力;承受、消耗和吸收飛機在著陸與地面運動時的撞擊和顛簸能量;因此它的工作性能的好壞,直接影響著飛機的起飛、著陸性能和安全。
1.2 自動起落架的意義
由于目前航模上的不可收放起落架,影響外觀,在高速飛行時,增加飛行阻力,這時,暴露在外的起落架就嚴重影響了飛機的氣動性能;而另一種可以收放的起落架,也是需要人來手動控制的,當飛機降落遇到突發情況時沒人控制的話就不會打開起落架,從而造成事故。所以,如果能夠制作出一種通過單片機控制的自動收放的起落架,那么無論是運用于航空模型上還是真實的運用于小型飛機中,都可以大大降低危險事故發生可能性,保證飛行安全。
1.3 特色及創新性
一種新的收放控制方式,利用超聲波測距原理技術,超聲波受環境干擾小,不會因為光照等環境因素改變而受影響,測距較準確。運用單片機為核心的自動收放系統可以實現起落架收放的自動化,該系統成本低廉,運行可靠,方便擴展。靈活的供電方式,既可接2-6S鋰電,也可直接利用接收機供電整個系統電路板體積小巧,節能,全部采用貼片元件,體積為33mm×35mm,主控芯片能耗低成本低廉,制作簡單。制作簡單,成本低廉,所有元件不超過20個。可控制多路舵機,便于擴展,如結合襟翼、副翼等,實現襟翼、副翼的自動控制等。與單片機結合,可方便增加其他功能,如安全距離報警,定高等。
由于超聲波模塊的測距高度有一定限制,再加上測距的角度為15°,因此理論計算出我們的超聲波模適于飛行速度在240.48km/h以內的模型飛機。
2.航空飛行器的硬件結構
2.1 機械結構
機械結構自動起落架包括三部分:超聲波測距模塊、控制板、起落架。整個系統的執行機構便是起落架這個機械機構,起落架采用成品的可收放起落架加裝兩個舵機帶動。將起落架和舵機安裝在合適的位置,讓起落架的輪子可自由縮放便可。
2.2 硬件電路
有了起落架這個機械結構,當然還得有相應的控制電路才能實現起落架的自動收放。小于這個安全距離則改變PWM占空比,控制舵機打開起落架,否則收起起落架。
3.航空飛行器的軟件部分
3.1 軟件部分相關介紹
功能:超聲波測距距離控制舵機角度
硬件:超聲波起落架控制板 ATmeag8 8MHZ
接口:超聲波發射 TrigPB1,接收 EchoPB0
舵機接 PC2、PC3、PC4、PC5
3.2 程序
#include
#include
#define distance 50
//安全值
#define PWM_O DDRC|=(1<<2)
//設為輸出
#define PWM_H PORTC|=(1<<2)
//輸出高
#define PWM_L PORTC=~(1<<2) //輸出低
#define PWM1_O DDRC|=(1<<3)
//設為輸出
#define PWM1_H PORTC|=(1<<3)
//輸出高
#define PWM1_L PORTC=~(1<<3) //輸出低
#define PWM2_O DDRC|=(1<<4)
//設為輸出
#define PWM2_H PORTC|=(1<<4)
//輸出高
#define PWM2_L PORTC=~(1<<4) //輸出低
#define PWM3_O DDRC|=(1<<5)
//設為輸出
#define PWM3_H PORTC|=(1<<5)
//輸出高
#define PWM3_L PORTC=~(1<<5) //輸出低
#define Trig_O DDRB|=(1<<1)
//發送端輸出
#define Echo_I DDRB=~(1<<0)//接收端輸入
#define Trig_H PORTB|=(1<<1)
//輸出高電平
#define Trig_L PORTB=~(1<<1)
//輸出低電平
unsigned char T=80;
//周期值
unsigned char P=6;
//占空值,6:90°;4:45°;8:135°
unsigned char cishu; //
0.25us 溢出次數
unsigned int h,l;
//16 位定時器值高位低位
unsigned int time;
//計數值
10
10
float range;
//距離值
unsigned char flag;
//上升沿/下降沿標志位
void delay_us(unsigned int x)
//微秒延時
{
while(x--)
{
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
asm(\"nop\");
}
}
void delay_ms(unsigned int time)
//毫秒延時
{
while(time --)
{
delay_us(500);
}
}
void Timer1_init(void)
參考文獻
[1]吳運昌.模擬電子線路基礎[M].廣州:華南理工大學出版社,2004.
[2]閻石.數字電子技術基礎[M].北京:高等教育出版社,1997.
[3]張曉麗等.數據結構與算法[M].北京:機械工業出版社,2002.