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