趙 燕王江華郭海文
(1.燕京理工學(xué)院,河北 三河 065201;2.華北科技學(xué)院,河北 三河 065201)
基于倒立擺的便捷自動控制教學(xué)平臺的研究與設(shè)計
趙 燕1王江華2郭海文2
(1.燕京理工學(xué)院,河北 三河 065201;2.華北科技學(xué)院,河北 三河 065201)
設(shè)計一基于倒立擺的便捷自動控制教學(xué)平臺,內(nèi)置三維陀螺儀、加速度計等傳感器,可實現(xiàn)平臺的自主直立控制。平臺利用STM32單片機(jī)對陀螺儀的角速度和加速度計的加速度進(jìn)行實時跟蹤,采用卡爾曼濾波算法對陀螺儀與加速度計采集回來的姿態(tài)信號進(jìn)行校正,從而得到一個準(zhǔn)確的空間姿態(tài);通過采集編碼器產(chǎn)生的脈沖來計數(shù),形成速度閉環(huán)控制,實現(xiàn)雙輪自平衡教學(xué)平臺在任何干擾情況下,均能保持直立平衡狀態(tài)。該教學(xué)平臺的特點(diǎn)在于體積小巧,攜帶方便,操作簡單,運(yùn)行可靠,調(diào)整速度快。該平臺是一個可隨堂演示的PID控制系統(tǒng),采用現(xiàn)場實物演示將大大增添課堂趣味性,學(xué)生們學(xué)習(xí)相關(guān)理論知識時將會更加積極主動,從而提高理論教學(xué)的質(zhì)量。
教學(xué)平臺;STM32單片機(jī);PID控制
基于理論教學(xué)的抽象不靈活性,導(dǎo)致學(xué)生對理論知識的不理解,從而失去學(xué)習(xí)的興趣,于是創(chuàng)新性的設(shè)計出了基于倒立擺的便捷自動控制教學(xué)平臺,來調(diào)節(jié)現(xiàn)存的理論教學(xué)模式,進(jìn)而激發(fā)學(xué)生學(xué)習(xí)的積極性,從而提高理論教學(xué)的質(zhì)量。
平臺采用基于ARM Cortex-M3內(nèi)核的32位處理器STM32F103C8作為控制核心,其總體結(jié)構(gòu)如圖1所示。采用傳感器MPU-6050來檢測陀螺儀的角速度和加速度計的加速度;按鍵模塊用于菜單的選擇和調(diào)試使用;OLED顯示模塊用來顯示平臺的狀態(tài)信息;直流電機(jī)控制模塊采用PWM方式控制兩個獨(dú)立的直流電機(jī)運(yùn)行;電源模塊提供平臺工作所需的+5V和+3.3V電壓;脈沖捕捉模塊用于捕捉采集編碼器產(chǎn)生的脈沖,達(dá)到測速的目的;NRF24L01無線模塊利用無線通信方式將數(shù)據(jù)傳輸至上位機(jī)。
圖1 平臺總體結(jié)構(gòu)圖
平臺硬件電路包括STM32單片機(jī)主控模塊、電源模塊、傳感器檢測模塊以及直流電機(jī)控制模塊等。
2.1 STM32單片機(jī)主控模塊
平臺采用32位單片機(jī)STM32F103C8作為主控核心,該單片機(jī)集高速運(yùn)算與面向直流電機(jī)驅(qū)動的高效控制能力于一體,可以用軟件取代模擬器件,方便的修改控制策略和控制參數(shù),兼具故障檢測、自診斷和上位機(jī)管理與通信功能,內(nèi)置數(shù)模轉(zhuǎn)換器、同步串行外設(shè)接口、異步串口通信接口、PWM控制管理器,其PWM波形產(chǎn)生單元包括可編程死區(qū)控制,可輸出非對稱PWM波形、對稱PWM波形和空間矢量SVP-VM波形。
平臺采用上電復(fù)位和手動復(fù)位相結(jié)合的方式來實現(xiàn)對單片機(jī)的復(fù)位。時鐘電路采用外部時鐘,晶振頻率為8MHZ。平臺設(shè)計有JTAG的程序下載接口,本設(shè)計程序的開發(fā)主要通過單片機(jī)內(nèi)部的Bootloader程序完成程序的下載和調(diào)試,因此單片機(jī)最小系統(tǒng)只需要一個UART便可進(jìn)行,無需額外的接口調(diào)試器。若用串口下載代碼,則必須配置BOOT0為1、BOOT1為0;而若使STM32一按復(fù)位鍵就開始執(zhí)行代碼程序,則需配置BOOT0為0、BOOT1為任意狀態(tài)即可。[1]
2.2 MPU-6050傳感器模塊
平臺采用MPU-6050傳感器來檢測陀螺儀的角速度和加速度計的加速度。MPU-6050是一個9軸運(yùn)動處理傳感器,內(nèi)部整合了3軸陀螺儀、3軸加速器,并自帶AD轉(zhuǎn)換,通過I2C總線方式與單片機(jī)進(jìn)行通信。該傳感器內(nèi)置在一個芯片中,可以有效地抑制陀螺儀的溫漂問題。
傳感器模塊通過I2C通信方式輸出相應(yīng)的9軸數(shù)字信號。I2C是二線接口,包括串行數(shù)據(jù)線SDA和串行時鐘線SCL。連接到I2C接口的設(shè)備可做主設(shè)備或從設(shè)備。主設(shè)備將Slave地址傳到總線上,從設(shè)備用與其匹配的地址來識別主設(shè)備。當(dāng)連接到系統(tǒng)芯片時,MPU-6050總是作為從設(shè)備。SDA和SCL信號線通常需要接上拉電阻到VCC,最大總線速率為400kHzbps。[2]
2.3 OLED顯示模塊
平臺采用OLED顯示屏來顯示一些狀態(tài)信息,此顯示屏的分辨率為128×64。OLED顯示參數(shù)設(shè)置界面如圖2所示,angle_mid為平衡角度的中心角度值,P_angle為角度PID算法的比例參數(shù)設(shè)置,D_angle為角度PID算法的微分參數(shù)設(shè)置,P_Speed為速度PID算法的比例參數(shù)設(shè)置,I_Speed為速度PID算法的積分參數(shù)設(shè)置,D_Speed為速度PID算法的微分參數(shù)設(shè)置,speed_set為運(yùn)動速度的初值。
圖2 OLED參數(shù)設(shè)置界面
2.4 NRF24L01無線模塊
設(shè)計中采用的無線模塊為NRF24L01,一方面,利用無線進(jìn)行數(shù)據(jù)傳輸,可以避免有線傳輸線對教學(xué)平臺調(diào)試的制約,通過這種方式可以遠(yuǎn)離上位機(jī)調(diào)試,并且下位機(jī)參數(shù)數(shù)據(jù)實時上傳,不會有距離的限制。另一方面,利用NRF24L01制作無線遙控器,通過遙控器對教學(xué)平臺中的參數(shù)進(jìn)行修改,便于現(xiàn)場問題的處理,方便調(diào)試。
3.1 平臺程序設(shè)計
平臺由主程序和中斷程序兩部分程序構(gòu)成。主程序流程圖如圖3所示,在主程序中先進(jìn)行倍頻、GPIO、OLED、PWM以及定時器等各個模塊的初始化,然后使能總中斷。這樣可以為各個模塊配置好寄存器信息,給中斷要處理的信息提供保障。同時等中斷處理完信息又能確保中斷處理后的信息實時顯示在OLED上。方便程序的調(diào)試和效果的顯示。
中斷處理流程圖如圖4所示,利用定時器1ms中斷,在中斷中完成信號的采集和處理。采集MPU-6050輸出的陀螺儀、加速度計的數(shù)據(jù)值,然后將采集數(shù)據(jù)進(jìn)行中值濾波,將中值濾波后的數(shù)據(jù)再進(jìn)行10次的均值濾波。這樣可以保證濾去雜波和不正確的值,得到的數(shù)據(jù)比較平滑。將得到的值與中心值進(jìn)行比較得到變化值,再將變化的信號值轉(zhuǎn)化成變化的角度值。將得到處理后的陀螺儀變化的角度值和加速度變化的角度值進(jìn)行卡爾曼濾波,得到的角度與設(shè)定好的角度比較并用PID算法計算。再通過STM32的脈沖捕捉功能,分別捕捉兩路脈沖并計數(shù),將此數(shù)值與程序中設(shè)定好的數(shù)值比較并用PID算法計算。最后將角度PID值和速度PID值疊加,再調(diào)節(jié)PWM的占空比。[3]
圖3 平臺主程序流程圖
圖4 平臺中斷程序流程圖
3.2 單片機(jī)各模塊初始化
3.2.1 系統(tǒng)時鐘初始化
該函數(shù)的主要功能是初始化STM32的時鐘。其中包括對向量表的配置,以及相關(guān)外設(shè)的復(fù)位及配置。Stm32_Clock_Init函數(shù)只有一個變量PLL,用來配置時鐘的倍頻系數(shù)。比如當(dāng)前所用的晶振為8MHz,PLL的值設(shè)為9,那么STM32將以72MHz的速度運(yùn)行。系統(tǒng)時鐘初始化程序如下:
void Stm32_Clock_Init(u8 PLL)
{
unsigned char temp=0;
MYRCC_DeInit(); //復(fù)位并配置向量表
RCC->CR|=0x00010000; //外部高速時鐘使能HSEON
while(!(RCC->CR>>17)); //等待外部時鐘就緒
RCC->CFGR=0X00000400;
//APB1=DIV2;APB2=DIV1;AHB=DIV1;
PLL - =2; //抵消2個單位
RCC->CFGR|=PLL<<18; //設(shè)置PLL值 2~16
RCC->CFGR|=1<<16; //PLLSRC ON
FLASH->ACR|=0x32; //FLASH 2個延時周期
RCC->CR|=0x01000000; //PLLON
while(!(RCC->CR>>25)); //等待PLL鎖定
RCC->CFGR|=0x00000002; //PLL作為系統(tǒng)時鐘
while(temp!=0x02) //等待PLL作為系統(tǒng)時鐘設(shè)置成功
{
temp=RCC->CFGR>>2;
temp&=0x03;
}
}
3.2.2 I/O口模塊初始化
STM32F103C8的I/O口可以配置成輸入模式、輸出模式或復(fù)用模式。如果把端口配置成輸出模式,有3種輸出速度可選,即2MHz、10MHz和50MHz,這個速度是指I/O口驅(qū)動電路的響應(yīng)速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)。通過選擇速度來選擇不同的輸出驅(qū)動模塊,達(dá)到最佳的噪聲控制和降低功耗的目的。高頻的驅(qū)動電路,噪聲也高,當(dāng)不需要高的輸出頻率時,請選用低頻驅(qū)動電路,這樣非常有利于提高系統(tǒng)的EMI性能。如果要輸出較高頻率的信號,但卻選用了較低頻率的驅(qū)動模塊,很可能會得到失真的輸出信號。如果把端口配置成輸入模式,無需設(shè)置輸出速度即可。如果把端口配置成復(fù)用輸出模式,則引腳和輸出寄存器斷開,并和片上外設(shè)的輸出信號連接。將管腳配置成復(fù)用輸出功能后,如果外設(shè)沒有被激活,那么它的輸出將不確定。
3.2.3 PWM模塊初始化
先對APB1ENR進(jìn)行設(shè)置,開啟TIM2的時鐘,配置PA0、PA1為復(fù)用輸出,因為TIM2_CH2、TIM2_CH3通道是以I/O復(fù)用的形式連接到PA0、PA1上的,故使用其復(fù)用輸出功能。在開啟了TIM2的時鐘之后,要設(shè)置ARR和PSC兩個寄存器的值來控制輸出PWM的周期。PWM周期在這里不宜設(shè)置的太小,否則會有明顯的閃爍現(xiàn)象。之后設(shè)置TIM2_CH2、TIM2_CH3的PWM模式,使能TIM2的CH2、CH3輸出。在完成以上設(shè)置了之后,需要開啟TIM2的通道2輸出以及TIM2中斷。前者通過TIM2_CCER1來設(shè)置,是單個通道的開關(guān), 而后者則通過TIM2_CR1來設(shè)置,是整個TIM2的總開關(guān)。只有設(shè)置了這兩個寄存器,在TIM2的通道2、3上才能輸出PWM波,此時輸出的PWM波的占空比和頻率都是固定的,通過修改TIM2_CCR2、TIM2_CCR3則可以控制CH2、CH3的輸出占空比,繼而控制舵機(jī)的輸出角度。
圖5 平臺實物圖
平臺實物如圖5所示。本教學(xué)平臺體積小巧,攜帶方便,操作簡單,運(yùn)行可靠,調(diào)整速度快,可應(yīng)用于PID控制相關(guān)課程的理論教學(xué),采用現(xiàn)場實物演示將大大增添課堂趣味性,學(xué)生們學(xué)習(xí)相關(guān)理論知識時將會更加積極主動,從而提高理論教學(xué)的質(zhì)量。
[1] 陳春,朱向冰,朱騫,等.基于STM32單片機(jī)的DLP驅(qū)動電路的研究[J].電子設(shè)計工程,2012,20(2):126-128.
[2] 李航.小型四旋翼飛行器實時控制系統(tǒng)研究[D].大連:大連理工大學(xué),2010.
[3] 劉金琨.智能控制[M].北京:電子工業(yè)出版社,2009:124-125.
Research and design of convenient automatic control teaching platform based inverted pendulum
To design a teaching platform of the convenient automatic control based on the inverted pendulum , built-in 3 d gyroscope and accelerometer sensors, can realize autonomous vertical control. Platform uses STM32 MCU to track the accelerometer gyroscope of angular velocity and acceleration. Using Calman filtering algorithm for correcting the posture signal, the signal is collected by the gyroscope and accelerometer, to get an accurate space posture. By collecting generated pulse encoder counts, forming a closed loop speed control. Realization of two-wheeled self-balancing teaching platform in any interference, can maintain upright balance. Features of the teaching platform is compact, easy to carry, easy to operate, reliable, fast adjustment. The platform is a quiz presentation PID control system. Using live demonstrations will greatly increase the physical classroom fun. Students will learn the theory of knowledge when more proactive, thereby improving the quality of teaching theory.
Teaching platform; STM32 MCU; PID control
TP273
A
1008-1151(2015)01-0015-03
2014-12-12
廊坊市科學(xué)技術(shù)研究與發(fā)展計劃自籌經(jīng)費(fèi)項目“基于倒立擺的便捷自動控制教學(xué)平臺的研究與設(shè)計”(2014011033)。
趙燕(1982-),女,燕京理工學(xué)院講師,從事理論及實驗教學(xué)和科研工作。