資源描述:
《xs128平衡車課程設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、(一)設(shè)計任務(wù)一、綜述本次單片機原理的設(shè)計內(nèi)容是,以sx128芯片作為核心處理芯片,利用加速度計和陀螺儀采集車模姿態(tài),通過驅(qū)動電機提供動力,使兩輪車可以自行調(diào)整姿態(tài)維持平衡不倒;SolidWorks機械模型二、設(shè)計內(nèi)容1.電源系統(tǒng)分別穩(wěn)出5v,3.3v,12v三種電壓,供不同模塊使用2.人機交互包含按鍵,oled液晶屏,藍牙,sd卡,撥碼開關(guān),指示燈,蜂鳴器等電路用于提示車模運行狀態(tài)3.驅(qū)動電路使用mos管和全橋驅(qū)動芯片驅(qū)動電機1.傳感器使用ad模塊讀取加速度計和陀螺儀檢測車模姿,并監(jiān)測電池電壓,脈沖累加器和光碼盤檢測車輪速度2.程序?qū)?yīng)程序使各個模塊相互配合完成設(shè)計任務(wù)
2、3.上位機將運行過程的數(shù)據(jù)存入sd卡,并用c#編寫上位機,便于波形觀察(一)設(shè)計說明一、功能模塊圖電源系統(tǒng)PC機XS128最小系統(tǒng)MOS管H橋驅(qū)動電路直流電機加速度計、陀螺儀光電碼盤、對管按鍵,撥碼開關(guān)液晶屏、蜂鳴器、LED燈SD卡藍牙傳感器電機驅(qū)動人機交互上位機一、硬件原理1.電源系統(tǒng)電池電壓在充滿到供電不足時電壓約從8.4v變化至7.2v,并且不同模塊需要的電壓各不相同,故需使用穩(wěn)壓芯片穩(wěn)出不同電壓供各個模塊使用用tps7350穩(wěn)出5v給單片機,光電對管供電tps7333穩(wěn)出3.3v給加速度計、陀螺儀和液晶屏供電,0512模塊穩(wěn)出12v給全橋驅(qū)動芯片供電tps7350
3、tps73330512模塊1.驅(qū)動電路驅(qū)動電路使用全橋驅(qū)動芯片hip4082、MOS管,該芯片用12v供電,下半橋直接驅(qū)動,上半橋用二極管和自舉電容驅(qū)動。Hip4082全橋驅(qū)動為防止驅(qū)動電路反沖燒壞單片機,在驅(qū)動電路和單片機之間加三態(tài)門74hc244隔離74hc2441.人機交互按鍵,用于配合液晶屏使用,撥碼開關(guān)用于設(shè)置系統(tǒng)不同運行狀態(tài)Led燈和蜂鳴器用于監(jiān)測運行狀態(tài)12864oled液晶屏用于顯示各個參數(shù),IO口模擬spi協(xié)議通信,僅需留出插槽,去耦電容和限流電阻(12864在3.3v工作,而單片機IO是5v);oled1.PC機交互SD卡用spi協(xié)議通信SD卡藍牙模塊
4、比較簡單,只需留出sci接口2.傳感器光電碼盤產(chǎn)生兩路相位相差90度的脈沖信號,正常只需數(shù)一路脈沖數(shù)就能換算轉(zhuǎn)速,但如果想要知道正反轉(zhuǎn)則需要對兩路信號正交解碼,由于xs128只有T7口一個脈沖累加器,沒有正交解碼功能,故需要外加D觸發(fā)器CD4013檢測兩路正交信號識別正反轉(zhuǎn)。CD4013加速度計和陀螺儀只需留出接口1.單片機系統(tǒng)板一、PCB圖主控板驅(qū)動板一、軟件流程圖SD卡存儲主函數(shù)初始化是否成功蜂鳴器系統(tǒng)LED系統(tǒng)蜂鳴器系統(tǒng)SD卡緩存以滿藍牙發(fā)送1msPIT定時中斷傳感器采樣加速度計陀螺儀融合PWM控制填充SD卡緩存區(qū)一、上位機(一)核心源程序一、Main.c文件#in
5、clude"include.h"externunsignedcharoled_flag;intpwm;intleft_speed;voidmain(void){DisableInterrupts;if(initial_all()==0)//檢測初始化是否成功{for(;;){}}EnableInterrupts;for(;;){led_control();//led信號燈控制if(oled_flag==1){display_menu();//oled顯示}//buzzer_short(3);if(buff_full_flag==1)//當(dāng)前緩存已滿是啟動存儲{buff_f
6、ull_flag=0;save_sd();}WirelessSerial(acc_ad,real_angle,left_speed,pwm);//藍牙發(fā)送}}//=========================================================================//函數(shù)名:interrupt//功能描述:PIT中斷//////輸入?yún)?shù):無//輸出參數(shù):無//返回值:無//==========================================================================voidi
7、nterrupt66PIT(void){PITTF_PTF0=1;//清中斷標(biāo)志位start_count();//時間測量開始left_speed=left_speed_get();asmple_all_channel();acc_angle=acc_volt_to_deg(acc_ad);///加速度計采集轉(zhuǎn)換gyro_deg_1ms=gyro_volt_to_degs(gyro_ad);//陀螺儀采集轉(zhuǎn)換real_angle=real_angle_get(acc_angle,real_angle,gyro_deg_1ms)