實驗目的:
通過鍵盤和串口通訊控制舵機,使其按照指定的參數(shù)轉(zhuǎn)動對應的角度。
舵機概述:
舵機最早用于船舶上實現(xiàn)其轉(zhuǎn)向功能,由于可以通過程序連續(xù)控制其轉(zhuǎn)角,
因而被廣泛應用智能小車、機械手臂以及機器人各類關(guān)節(jié)運動等。
舵機組成:
舵機主要由以下幾個部分組成:舵盤、減速齒輪組、位置反饋電位計、直流電機、控制電路等。
電機控制板主要是用來驅(qū)動電機和接受電位器反饋回來的信息。電機,動力的來源了,這個不用太多解釋。電位器這里的作用主要是通過其旋轉(zhuǎn)后產(chǎn)生的電阻的變化,把信號發(fā)送回電機控制板,使其判斷輸出軸角度是否輸出正確。齒輪組的作用主要是力量的放大,使小功率電機產(chǎn)生大扭矩。
工作原理:
控制電路板接受來自信號線的控制信號,控制電機轉(zhuǎn)動,電機帶動一系列齒輪組,減速后傳動至輸出舵盤。舵機的輸出軸和位置反饋電位計是相連的,舵盤轉(zhuǎn)動的同時,帶動位置反饋電位計,電位計將輸出一個電壓信號到控制電路板,進行反饋,然后控制電路板根據(jù)所在位置決定電機轉(zhuǎn)動的方向和速度,從而達到目標停止。
PWM控制舵機的方法:
舵機的控制信號周期為 20MS 的脈寬調(diào)制(PWM)信號,其中脈沖寬度從0.5-2.5MS,相對應的舵盤位置為 0-180 度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會保持一定對應角度上,無論外界轉(zhuǎn)矩怎么改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應位置上。舵機內(nèi)部有一個基準電路,產(chǎn)生周期為 20MS,寬度 1.5MS 的基準信號,有一個比較器,將外加信號與基準信號相比較,判斷出方向和大小,從而產(chǎn)生電機的轉(zhuǎn)動信號。由此可見,舵機是一種位置伺服驅(qū)動器,轉(zhuǎn)動范圍不能超過 180 度,適用于那些需要不斷變化并可以保持的驅(qū)動器中。
本實驗中所使用SG90舵機:
尺寸:21.5mmX11.8mmX22.7mm
重量:9克
無負載速度:0.12秒/60度(4.8V)
堵轉(zhuǎn)扭矩:1.2-1.4公斤/厘米(4.8V)
使用溫度:-30~~+60攝氏度
工作電壓:4.8V-6V
單片機源程序如下:
- /***********************************************************************
- * 說 明: 點亮第一個發(fā)光二極管
- * 開發(fā)平臺: 劍齒虎STM8開發(fā)板
- * 作 者: 劉洋 張殿東
- * 版 本: V1.0
- * 日 期: 2017-11-03
- *
- * IAR開發(fā)環(huán)境 版本 V2.20.1
- * ST庫函數(shù) 版本 V2.2.0
- ***********************************************************************/
- #include "pbdata.h"//引入自定義公共頭文件
- void BSP_Configuration(void);//硬件初始化函數(shù)聲明
- /***********************************************************************
- * 函 數(shù) 名: main
- * 功能說明: c程序入口
- * 形 參:無
- * 返 回 值: 錯誤代碼(無需處理)
- ***********************************************************************/
- int main(void)
- {
- BSP_Configuration();//硬件驅(qū)動初始化函數(shù)
- while(1)//主程序循環(huán),反復執(zhí)行循環(huán)體里的語句
- {
- DJ_KZ_Key();
- DJ_CS_Printf();
- delay_ms(1);
- }
- }
- /***********************************************************************
- * 函 數(shù) 名: BSP_Configuration
- * 功能說明: 初始化硬件設備。只需要調(diào)用一次。該函數(shù)配置CPU寄存器和外設的寄存器并初始化一些全局變量。
- * 形 參:無
- * 返 回 值: 無
- ***********************************************************************/
- void BSP_Configuration(void)
- {
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//時鐘速度為內(nèi)部16M,1分頻,
- delay_ms(1000);
- UART1_Congfiguration();//調(diào)用RS232串口1初始化函數(shù)
- LED_Init();//調(diào)用LED初始化函數(shù)
- I2C_Configuration();
- TM1650_Init();
- Tim1_PWM_Init();
- rim();//打開總中斷
- }
- /*斷言函數(shù):它的作用是在編程的過程中為程序提供參數(shù)檢查*/
- #ifdef USE_FULL_ASSERT
- void assert_failed(u8* file,u32 line)
- {
- while(1)
- {
- }
- }
- #endif
復制代碼
舵機實驗代碼免費下載:
眾拳劍齒虎STM8開發(fā)板舵機實驗程序.7z
(549.32 KB, 下載次數(shù): 93)
2022-12-9 23:18 上傳
點擊文件名下載附件
|