一. 前言
在控制物體移動(dòng)方面,像控制智能小車、平衡車、四軸飛控,雙軸遙感按鍵遠(yuǎn)比按鍵要實(shí)用,而且引腳少,程序編寫簡單,是時(shí)候該放棄對按鍵的使用了,來看看雙軸遙感按鍵吧!
二. 雙軸遙感按鍵簡介
雙軸,可以輸出X,Y兩個(gè)方向上的電壓值表示當(dāng)前遙感所處的位置。按鍵,可以按下,具有按鍵的功能,看到這里是不是覺得它功能強(qiáng)大?。?!。每個(gè)軸共有三個(gè)引腳,分別是VCC,GND和信號引腳。所以說,它一共用六個(gè)引腳,外加按鍵的四個(gè)引腳。VCC可以接3.3-5V。信號引腳輸出的電壓為0-VCC。遙感處于中間位置的時(shí)候,兩個(gè)軸輸出的電壓為VCC/2。以X軸為例,如果遙感在最右邊,那么輸出為0V,在最左邊,那么輸出為VCC。是不是覺得采集它的數(shù)據(jù)很容易,通過STM32內(nèi)部的ADC就可以很輕松的采集到了,(#^.^#)。
二. 雙軸遙感信號采集
采集部分我打算略寫,一共兩個(gè)通道,X,Y,使用ADC采集,ADC的配置基本上是通用的。采集到的值理論上為0-4096。
三.雙軸遙感信號校準(zhǔn)
由于實(shí)際上采集到的信號不為0-4096,這里需要有一個(gè)校準(zhǔn)的操作。也就是采集多次各個(gè)方向上的遙感數(shù)據(jù),然后取平均。X軸的最左邊為例,這里采集了400次。同時(shí)對模擬量進(jìn)行一個(gè)判斷,在最左邊的就要,否則舍棄。/*XL方向校準(zhǔn)*/
void Rocker1CalibrationXL(void)
{
uint16_ti;
uint32_t valueSum = 0;
for(i = 0 ;i < 400; )
{
uint16_tvalue=getX1Value();/*獲取X軸的模擬量*/
if(value>0xf600)/*判斷模擬值,是不是在左邊了*/
{
valueSum += value;
i++;
}
}
XOffSetL = valueSum / 400;
}
四.雙軸遙感信號歸一化
這里將X,Y兩軸的信號全部歸一化到0-100區(qū)間內(nèi),至于為什么歸一化到這個(gè)區(qū)間內(nèi),是為了方便計(jì)算遙感的角度值。具體做法如下- 獲取原始數(shù)據(jù)
- 計(jì)算原始數(shù)據(jù)到對應(yīng)兩邊界的距離
- 將計(jì)算得到的結(jié)果擴(kuò)大100倍(避免小數(shù)),除以區(qū)間范圍
- 左邊 加(100 - 右邊)除以2得到最終結(jié)
XValue = getX1Value(); //獲取X方向遙感數(shù)值
if(XValue > XOffSetL)
XtempL = 0; /*小于左邊界,直接復(fù)制為0*/
else
XtempL = XOffSetL - XValue ;
if(XValue < XOffSetR)
XtempR = 0; /*大于右邊界,直接復(fù)制為0*/
else
XtempR = XValue - XOffSetR;
uint32_t XtL = XtempL * 100;
uint32_t XtR = XtempR * 100;
XtL = XtL / (XOffSetL - XOffSetR);
XtR = XtR / (XOffSetL - XOffSetR);
X = (XtL + (100 - XtR)) / 2; /*結(jié)果為遙感到左邊界的距離,0 - 100*/
五.計(jì)算雙軸遙感的角度
計(jì)算出來的角度分布如下圖所示。
/*將輸入的pos信息 轉(zhuǎn)換為角度信息*/
/*左為180度 上為270度*/
uint16_t ConvPos2Angle(uint16_t pos)
{
uint16_t angle = 0;
uint8_t X = pos;
uint8_tY=pos>>8;
uint16_t Xtemp = 180 * X;
uint16_t Ytemp = 180 * Y;
/*遙感位置中心 直接返回*/
if(X < 55 && X > 45 && Y < 55 && Y > 45)
return RockerNone;
/*Y軸位于上方,就是180°加上X軸的偏移*/
if(Ytemp < 9000)
angle = 18000 + Xtemp;
else /*Y軸位于下方,就是180°減上X軸的偏移*/
{
if(Xtemp > 18000)
angle = 0;
else
angle = 18000 - Xtemp;
}
/*由于遙感數(shù)據(jù)有誤差,需要截取*/
if(angle > 36000)
angle=36000;
return angle / 100;
}
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
按鍵
+關(guān)注
關(guān)注
4文章
227瀏覽量
58049 -
遙感
+關(guān)注
關(guān)注
0文章
252瀏覽量
17167 -
Vcc
+關(guān)注
關(guān)注
2文章
307瀏覽量
37547
原文標(biāo)題:還在用按鍵? 快來試試雙軸遙感按鍵吧?。?!
文章出處:【微信號:FPGA之旅,微信公眾號:FPGA之旅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
NanoPi +雙軸重力搖桿
介紹JoystickMatrix-Joystick是一個(gè)雙軸按鍵搖桿模塊,由兩個(gè)滑動(dòng)變阻器和一個(gè)按鍵組成。當(dāng)撥動(dòng)搖桿時(shí),滑動(dòng)變阻器的阻值就發(fā)生變化,對應(yīng)的X/Y電壓值也隨之變化,而用力
發(fā)表于 11-13 17:25
遙感
遙感是指非接觸的,遠(yuǎn)距離的探測技術(shù)。一般指運(yùn)用傳感器/遙感器對物體的電磁波的輻射、反射特性的探測。[remote sensing] 通過人造地球衛(wèi)星上的遙測儀器把對地球表面實(shí)施感應(yīng)遙測和資源管理
發(fā)表于 03-11 08:03
如何使用單片機(jī)接入按鍵遙感
文章目錄1 簡介2 主要器件2.1 雙軸搖桿模塊2.2 電路原理圖3 實(shí)現(xiàn)效果4 測試代碼6 最后1 簡介Hi,大家好,這里是丹成學(xué)長,今天向大家介紹如何使用單片機(jī)接入
發(fā)表于 01-19 08:31
雙軸傾角傳感器的工作原理 雙軸傾角傳感器可檢測什么
雙軸傾角傳感器的工作原理 雙軸傾角傳感器可檢測什么? 雙軸傾角傳感器是一種用于測量物體傾斜角度的
【GD32F303紅楓派開發(fā)板使用手冊】第十二講 ADC-雙軸按鍵搖桿多通道循環(huán)采樣實(shí)驗(yàn)
本實(shí)驗(yàn)是通過ADC規(guī)則組多通道循環(huán)采樣方式實(shí)現(xiàn)雙軸按鍵搖桿傳感器x和y軸電壓值的讀取,通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容:
?雙

【CW32模塊使用】雙軸按鍵搖桿模塊
雙軸按鍵游戲搖桿模塊,采用 PS2游戲手柄上金屬按鍵搖桿電位器。模塊特設(shè)二路模擬輸出和一路數(shù)字輸出接口、輸出值分別對應(yīng)(X、Y)雙

評論