999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CC430F6137的工業手柄搖桿優化模型研究

2022-01-18 01:34:28劉偉靜趙超澤徐文麗王小濤
自動化儀表 2021年12期
關鍵詞:單片機設置模型

劉偉靜,趙超澤,王 東,徐文麗,姚 寧,王小濤

(1.天津航天機電設備研究所,天津 300458;2.天津市宇航智能裝備技術企業重點實驗室,天津 300458;3.北京交通大學海濱學院,河北 廊坊 061100)

0 引言

隨著現代機械工程的快速發展,工業手柄[1-2]越來越多地應用于無人機、機器人[3]、移動車等。其中,工業手柄的搖桿[4]操作可實現設備移動的靈活性與穩定性。手柄控制方式分為無線和有線兩種。無線手柄與有線手柄相比,具有較高的移動靈活性,且安裝方便、操作簡單、調試維護成本較低。因此,大部分領域使用無線手柄進行遠程控制。文獻[5]以STC89C52單片機為主控單元,設計了搖桿信號無線傳輸模塊。該模塊在模數轉換器(analog to digital converter,ADC)模塊初始化時讀取的三組數據均為無效數據,且在檢測數據時需在一定時間內關閉無線傳輸,因而增加了數據處理時間和設備能耗。文獻[6]設計了一種便攜式多功能無線游戲手柄。該手柄能準確輸出控制命令,但同一時間從緩存區讀取的11個字節不一定是同一個數據包中的,導致信道利用不充分甚至丟包。

本文從手柄軟件設計入手,采用CC430F6137單片機[7]作為手柄控制器的核心部分,利用ADC采集搖桿偏移量,設置ADC采樣參數,確保控制器每次均可采集到一個完整的數據包;通過對比的方式建立搖桿數學優化模型,以提高搖桿操作精度。

1 硬件系統

作為智能設備的上位機系統,無線手柄具有遠距離遙控下位機的功能,可實現平移、轉向、升降、翻轉等動作。無線手柄操控方便,可靠性較高,能較好地滿足使用者的要求。

單片機具有集成度高、可靠性高、控制功能強、功耗低的特點,是工業控制領域廣泛使用的元件。德州儀器推出的射頻芯片CC430延續了MSP430單片機的超低功耗設計,采用了CC1101[8]作為無線內核,成為新一代無線式單片機。因此,本文選用CC430F6137作為手柄控制核心單元。將CC430F6137中的13個I/O連接手柄按鍵,4個模擬量接口連接手柄搖桿。手柄顯示屏采用并行通信模式。其中,手柄搖桿產生的模擬量信號通過ADC中斷轉換成數字量信號,并存入CC430F6137單片機寄存器內。解析該搖桿信號即可控制下位機的動作。手柄硬件結構如圖1所示。

圖1 手柄硬件結構框圖

2 搖桿優化模型設計

本文設計的手柄采用雙軸搖桿模塊。該模塊由2個滑動變阻器[9]組成。撥動搖桿時滑動變阻器的阻值發生變化,對應的x、y軸電壓值隨之變化,進而產生x、y軸方向的偏移量。當搖桿不進行任何操作時,單片機ADC采集到的x、y軸的偏移量視為搖桿的原點。然而,由于滑動變阻器的不穩定性,搖桿原點會在一定范圍內浮動,易產生手柄無操作但下位機動作的問題。因此,必須將搖桿原點限定在一定范圍(即死區[10]范圍)內,以防止危害事故的發生。本文以該特性為出發點優化搖桿死區,提高手柄操控性能。搖桿偏移量采集流程如圖2所示。

圖2 搖桿偏移量采集流程

在保證搖桿正常應用的前提下擴大搖桿死區范圍,確定在不進行任何操作時搖桿采集點數始終保持在死區范圍內。不同的死區設置方式具有不同的效果。下面解析搖桿死區分別設置為方形和圓形時的特點,并優化設計。

2.1 方形死區模型

方形死區模型如圖3所示。

圖3 方形死區模型

當不操作搖桿時,設定搖桿x、y軸的實際偏移量分別為s、t(s>0,t>0)。死區范圍設為:當x值滿足a

搖桿在死區范圍外,xvirtual、yvirtual軸正負方向的偏移量分別為1 024,即解析后的搖桿坐標范圍為-1 024≤xvirtual≤1 024、-1 024≤yvirtual≤1 024。由此可以得到死區范圍之外的角度計算方法,如式(1)所示。

(1)

式中:A為搖桿當前角度值。

當x、y值處于陰影區域2時,滿足xvirtual=0或yvirtual=0,表示搖桿向正前、正左、正后、正右四個方向推動。

上述方式可在保證搖桿正常應用的前提下有效擴大死區范圍,保證搖桿不會在非操作模式下發出錯誤信號。

以圖3(a)的第一象限為例。當搖桿沿圖3(b)中的虛線箭頭方向推動時,搖桿角度會出現0°(OA)→90°(AB)→γ(0<γ<45°)的跳變,造成輸出方向的突變,極易引起下位機方向突變,甚至死機。同理,在其他3個象限也會出現角度跳變現象。

2.2 圓形死區模型

滿足(xvirtual-s)2+(yvirtual-t)2≤r2(r>0)的區域為死區范圍。當搖桿處于死區范圍內時,坐標設為O(0,0)。

死區范圍之外的角度計算如式(1)所示。為判斷搖桿向正前、正左、正后、正右四個方向的推動,設定:

(2)

式中:0°<α<45°。

圓形死區模型如圖4所示。

圖4 圓形死區模型

根據式(1)、式(2)可知,該設置方法擴大了搖桿0°、90°、180°、270°四個方向的范圍。圓形死區模型撥動方向如圖4(b)中陰影區域2所示。

分析圖4(b)中的第一象限可知,直行推動搖桿至死區范圍外,不會出現角度跳變,消除了搖桿操作造成的下位機方向突變的問題。

3 基于優化模型的無線傳輸程序

搖桿采用圓形死區模型。本文采用自定義方式設置無線傳輸程序,采用6個字節的自由協議:幀頭為0xAA;第2個字節為x軸坐標數據;第3個字節為y軸坐標數據;第4個字節為角度;第5個字節為校驗位,應用偶校驗方式;幀尾0xBB。

手柄發送數據流程如圖5所示。

圖5 手柄發送數據流程

本文應用CC430F6137單片機中的ADC中斷構建程序。具體程序構建流程如下所述。

3.1 ADC中斷初始化

首先初始化ADC中斷,然后通過配置寄存器,使能該中斷。

void ADC_Init(void)

|{|P2SEL=0xCF;//使能ADC 通道輸入

ADC12CTL0=ADC12ON+ADC12MSC+ADC12SHT0_8;

ADC12CTL1=ADC12SHP+ADC12CONSEQ_1+ADC12SSEL_3;

ADC12MCTL0=ADC12INCH_0;

ADC12MCTL1=ADC12INCH_1;

ADC12MCTL2=ADC12INCH_2;

ADC12MCTL3=ADC12INCH_3;

ADC12MCTL6=ADC12INCH_6;

ADC12MCTL7=ADC12INCH_7+ADC12EOS;

ADC12IE=0x08;

delayxms(100);

ADC12CTL0 |=ADC12ENC;

ADC12CTL0 |=ADC12SC;

delayxms(100);

}

3.2 配置ADC寄存器

在中斷程序中應用無符號整型數組results[8]配置ADC中的0、1、2、3、6、7號寄存器,將x、y、z三軸坐標分別配置在results數組的1、0、6號寄存器中。具體如下。

results[0] = ADC12MEM0; //y軸坐標

results[1] = ADC12MEM1;

//x軸坐標

results[2] = ADC12MEM2;

//外部電壓

results[3] = ADC12MEM3;

//電池電壓

results[6] = ADC12MEM6;

//z軸坐標

results[7] = ADC12MEM7;

3.3 設置搖桿死區

x軸和y軸采用二維坐標,設置圓形死區。中心點設置方法為:采集20次x軸和y軸搖桿在起始點的坐標,取其平均值,設為中心點,例如(2 035,2 022)。以中心點為圓點,以Blind_Spot為半徑,設置圓形死區。

z軸單獨作為一維坐標。采集20次z軸搖桿在起始點的坐標,取其平均值,設為中心,例如2 050。以中心點為起點,上下取100,設置為死區范圍,即z軸在(1 950,2 150)范圍內的變化忽略不計。

具體程序如下。

if(zeroflag==0)

//原點限制

{

ShiftZeroX = results[1];

ShiftZeroY = results[0];

if ((pow((ShiftZeroX-2035),2)+pow((ShiftZeroY-2022),2))>=pow(Blind_Spot,2))

{

ShiftZeroX=2035;

ShiftZeroY=2022;

}

ShiftZeroZ = results[6];

if((ShiftZeroZ>2150)||(ShiftZeroZ<1950))

ShiftZeroZ=2050;

}

3.4 x、y、z軸坐標變換

搖桿坐標變化范圍為0~4 096,在初始位置時在2 048上下變化。將中心(2 035,2 022)轉換為原點(0,0),將上下1 024設置為搖桿的死區范圍,超出1 024的部分記為1 024。其中,x、y軸坐標變換代碼如下。

void XYConvert(int x,int y,int rocker)

|{

if ((pow((x-2035),2)+pow((y-2022),2))>=pow(Blind_Spot,2))

{

if((x>SZeroXN-1024)&&(x

statex=x-SZeroXN;

//x-

else if(x

statex=-1024.0;

else if((x>SZeroXP)&&(x

statex=x-SZeroXP;

else if(x>SZeroXP+1024)

statex=1024.0;

else statex=0;

if((y>SZeroYP)&&(y

statey=y-SZeroYP;

//y+

else if(y>SZeroYP+1024)

statey=1024.0;

//y+

else if((ySZeroYN-1024))

statey=y-SZeroYN;

//y-

else if(y

statey=-1024.0;

//y+

else statey=0;

}

else

{

statex=0;

statey=0;

}

_no_operation();

|}

z坐標變換代碼如下:

|int ZConvert(int z,int rocker)

|{

int q;

if((z>SZeroZP)&&(z

q=z-SZeroZP;

//z+

else if(z>SZeroZP+1024)

q=1024.0;

//z+

else if((zSZeroZN-1024))

q=z-SZeroZN;

//z-

else if(z

q=-1024.0;

//z-

else q=0;

return q;

|}

4 試驗驗證

本文應用工業手柄無線遙控全向移動轉運車的方式,測試搖桿死區優化模型。試驗選擇周圍障礙物較少、地面干凈平整的場地,使轉運車可全向移動。試驗工業手柄發射功率為-10 dBm,最大發射半徑為100 m,距離轉運車5 m處。x軸和y軸的死區半徑設置為100 mm。多次撥動搖桿并將角度值顯示于液晶屏(liquid crystal display,LCD)上,觀察轉運車的移動方向是否與LCD上的角度信息一致。以x、y軸第一象限為例,說明圓形死區模型和方形死區模型的優劣。緩慢推動搖桿,觀察x軸和y軸偏移量的變化。

角度數值變化如表1所示。

表1 角度數值變化

由表1可知,當設置圓形死區時,由0°變化到65°,無角度跳變發生;當設置方形死區時,轉運車的移動方向由0°變化到90°,再跳變到65°。該跳變會引起轉運車的行走角度突然發生變化,造成危險。而設置圓形死區時,無角度跳變的情況發生,消除了上述危險。

5 結論

本文以CC430F6137作為手柄控制核心,根據工業手柄的可靠性建立搖桿數學模型,設定搖桿的死區模型,并分析該模型的優劣。針對搖桿信號的無線傳輸程序進行了分析設計,編寫了主要的功能函數,實現了數據的轉換和無線傳輸功能。該研究為后續的應用奠定了良好的基礎。

猜你喜歡
單片機設置模型
一半模型
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
3D打印中的模型分割與打包
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 国产h视频免费观看| 九九这里只有精品视频| 亚洲国产成熟视频在线多多| 视频二区国产精品职场同事| 素人激情视频福利| 在线观看欧美国产| 亚洲成年人网| 国产一区二区福利| 国产99免费视频| 亚洲国产欧美目韩成人综合| 日韩天堂在线观看| 一区二区三区高清视频国产女人| 国产精品女熟高潮视频| 免费A级毛片无码无遮挡| 亚洲欧美日韩另类| 国产不卡网| 成人在线观看不卡| 永久天堂网Av| 日韩国产另类| 中文字幕色站| 国产欧美精品午夜在线播放| 亚洲中文字幕在线精品一区| 国产精品视频观看裸模| 亚洲无码视频喷水| 国产人人乐人人爱| 日韩高清一区 | 在线观看视频99| 国产精品林美惠子在线观看| 国产精品白浆无码流出在线看| 超清人妻系列无码专区| 欧美一区二区精品久久久| 国产在线小视频| 2021亚洲精品不卡a| 国产剧情一区二区| 乱人伦视频中文字幕在线| 日韩在线2020专区| 国产精品一区二区久久精品无码| 精品色综合| 一级毛片高清| 色噜噜中文网| 一区二区三区高清视频国产女人| 欧美成人A视频| 欧美不卡视频一区发布| 91小视频在线| 激情爆乳一区二区| 在线观看国产小视频| 综合社区亚洲熟妇p| 成人在线不卡视频| 免费精品一区二区h| 亚洲精品久综合蜜| 国产激情第一页| 亚洲第一视频免费在线| 日韩精品久久久久久久电影蜜臀| 欧美一区二区三区欧美日韩亚洲| 亚洲无码熟妇人妻AV在线| 国产精品免费福利久久播放| 色屁屁一区二区三区视频国产| 伊人成人在线| 亚洲中文在线看视频一区| 夜夜高潮夜夜爽国产伦精品| 久久99热这里只有精品免费看| 美女毛片在线| 国产在线一二三区| 久久青青草原亚洲av无码| 欧美一区二区三区不卡免费| 综1合AV在线播放| 日韩欧美91| 精品一区二区三区中文字幕| 东京热高清无码精品| 999国内精品久久免费视频| 久久精品亚洲中文字幕乱码| 亚洲成人动漫在线观看| AV网站中文| 国产第一福利影院| 伊人91在线| 成人国产精品一级毛片天堂| 免费一级毛片在线播放傲雪网| 97视频免费在线观看| 欧美高清三区| 在线亚洲小视频| 亚洲人成网站18禁动漫无码| 亚洲国产欧美国产综合久久|