<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

普通電阻觸摸屏多點觸摸低成本解決方案

聚豐開發 ? 2018-10-30 14:27 ? 次閱讀


注:本文是作者以前發表在其個人博客,現在發布到“聚豐開發”專欄



蘋果公司iPhone的成功將多點觸摸技術推到了一個前所未有的高度,經典的彈鋼琴應用程序可以支持超過5點的同時觸摸,雖然這一性能并不見得有太多的實用價值,但絕對帶給了用戶技術無限領先的震撼感。蘋果公司的iPhone采用電容屏和他們的專利技術來實現對多點觸摸的支持,價格自然不菲,但一點可以肯定,在支持的點數和性能穩定方面,目前還少有公司能在這方面挑戰蘋果的權威。


對于消費電子產品來說,流行就是硬道理,在iPhone大行其道的同時,一時間但凡是有觸摸屏的產品,都想讓自己通過多點觸摸等特性與iPhone攀上親戚關系,尤其是手機、MP4、GPS等產品,仿蘋果的心理更是急切。


蘋果公司的技術雖然在性能方面無可挑剔,但過高的成本使得這項技術只適合iPhone之類的奢侈品,對于更多的觸摸屏產品顯然無法承受這一成本。正是這個原因,尋找一種更為便宜的多點觸摸解決方案,成為眾多技術人員的期望,本文在不增加其它硬件成本的前提下,基于普通四線電阻屏,提出一種低成本解決方案,能夠在一定限制條件下可實現兩點觸摸的識別。


幾種現有的多點觸摸方案


1.硬件采用電容屏,通過軟件實現多點觸摸。優點是靈敏度高,性能穩定,支持的點數可滿足絕對大部分應用需求;缺點是成本高,而且蘋果有專利保護。


2.硬件采用數字電阻屏,實際上是用電阻屏的材料做成一個透明鍵盤矩陣,通過行列掃描判斷所按下的點。優點是價格便宜,性能可靠,可支持的點數最多;不足是需要比較多的行列連線接口,不能實現手寫功能。


3.硬件采用模擬電阻屏,在專用芯片中通過軟件計算出多點觸摸。優點是既能支持多點觸摸,又保持手寫功能,另外成本增加不多;缺點是支持的點數最少,方案商在實現細節上大都語焉不詳,性能和穩定性尚待驗證。


4.采用紅外、表面超聲波等方式實現觸摸檢測,實際應用比較少,這里不做探討。

低成本多點觸摸方案


毫無疑問,四線模擬電阻屏是觸摸屏中成本最低的一種,如果我們能在這種屏的基礎上找到一種實現多點觸摸的方法,只要控制額外增加的硬件成本,成本上考慮能夠有所突破的可能性最大。


雖然現在有不少MCU帶有觸摸屏接口,因為我們需要識別多點觸摸,所以這類MCU的觸摸屏接口并不適用,實際上方案的要求更簡單,只需要選用MCU能提供4路ADC口使用,另外再用4條雙向IO進行控制。來看一下這種低成本方案的構成細節,圖(一)中(d)部分為方案示意圖,并不需要對電阻屏做出過多改動,只是在外圍增加了兩個電阻,這幾乎是可以忽略不計的成本。



圖(一) 低成本電阻觸摸屏原理及方案示意圖


圖(一)中(a)(b)(c)三部分對電阻觸摸屏的原理做了簡單示意,對單點觸摸位置的識別方法這里不做詳述,不清楚的朋友請自行查閱相關資料進行了解。單點觸摸的識別只需要4條雙向IO就可以實現,其中2條需要支持ADC功能,從圖(一)中(d)部分可以看出方案做了一點修改,使用的IO口數量增加了一倍,另外還有兩個電阻。


為便于分析,我們需要建立一個觸摸屏工作的等效電路模型。因為觸摸屏X和Y方向對觸摸檢測方法是一樣的,所以我們只建立一個電路模型,圖(二)展示了觸摸屏按下一個點和兩個點的狀態。



圖(二) 觸摸屏等效電路模型示意圖

圖(二)標號說明:R1、R2為IO口的輸出電阻,只要知道它的存在,不用管具體大??;R3、R4、R5、R6為4路ADC口的輸入電阻,阻值遠大于其它電阻;R7、R8、R9為觸摸屏的分段等效電阻,阻值總和為幾百歐;R12、R13、R14為觸摸屏另外一層的分段等效電阻,阻值總和為幾百歐;R10、R11為按下觸摸屏時的接觸電阻,阻值動態變化;K1、K2表示按下觸摸屏的位置。


R15為限流電阻,因為觸摸屏的電阻通常為幾百歐,普通IO驅動能力可能不夠,所以用R15對IO輸出進行限流,R15對應圖(一)中(d)部分R1和R2。

假定IO1輸出高電平,IO2輸出低電平,V1~V4為4路ADC口測量到的電壓。


觸摸屏沒有按下時,測量ADC1和ADC2得到V1_0和V2_0;觸摸屏按下一點時,假設此時按下位置為K1,4路ADC測量的電壓為Vn_1;觸摸屏按下兩點時,4路ADC測量的電壓為Vn_2。忽略ADC口輸入電阻的影響,這些電壓會滿足下面的關系。


V1_0=V1_1,V2_0=V2_1

V3_1=V4_1=(V1_1-V2_1)*(R8+R9)/(R7+R8+R9)

(V1_1-V2_1)≥(V1_2-V2_2)


后一種關系式因為兩點按下后會讓與R1、R2、R15串聯的觸摸屏等效電阻變小,從而使得分在觸摸屏兩端的電壓也變小?,F在引入三個新參數L7、L8、L9,分別表示同標號電阻等效的觸摸屏寬度,三者的總和等于觸摸屏寬。另外還根據實際引入一個限制條件,當有兩點被按下時,只要程序檢測速度夠快,對于程序來說就不會有同時按下的情況,始終都是依次按下或松開,這一點非常重要。


對于單點位置的檢測不存在任何問題,現在我們來處理兩點的情況,結合前面引入的限制條件,程序可以檢測到中間有一小段時間是單點按下,也就是程序先檢測到K1按下,經過一小段時間才檢測到K2按下。這個中間過程可以準確得到K1位置,如果我們利用前后變化的比例關系,就可以計算出后面K2按下的位置。


K1單獨按下:


L7=(L7+L8+L9)*(V1_1-V3_1) /(V1_1-V2_1)

K1和K2同時按下(忽略R10和R11的影響):

(V1_2-V3_2)/L7=(V4_2-V2_2)/L9

因為L7+L8+L9為已知條件觸摸屏的寬度L,所以有:

L7=L*(V1_1-V3_1)/(V1_1-V2_1)

L9=(V4_2-V2_2)*L7/(V1_2-V3_2)

L9=L*(V4_2-V2_2)*(V1_1-V3_1)/((V1_1-V2_1)*(V1_2-V3_2))


到這里我們已經得到所按兩點的具體位置,只要我們依照此方法對觸摸屏的X和Y軸分別處理,就可以在普通電阻屏上實現兩點觸摸位置的檢測。


方案的其它說明

前面的公式推導過程忽略了接觸電阻R10和R11的影響,這兩個電阻的大小并不固定,主要由使用者按下的力度決定,按的力越大,其阻值越小。當只按下一個點時,所按力度的大小對K1位置的計算影響可以不用考慮,但對于兩點的計算則要考慮其影響,按的力度越小,計算出來的K2位置誤差就越大。這樣在按下的過程中,會存在一個誤差從大變小的過程,不過只要用力足夠,最后還是保證誤差在允許范圍內。另外觸摸屏并不是完全線性,這里是簡化為線性關系。


該方案在兩點按下時最好保持先按下的點位置不變動,這樣可以保證計算結果更為精準。如果兩點按下后需要移動,雖然通過比例關系也可以計算出運動軌跡,但誤差會隨之加大,這里也不做過多分析。松開的過程與按下相反,由兩點按下變為一點按下,最后全松開。如果在精度上適度降低要求,在此方案的基礎還可以利用三角形重心的原理進行第三點的判斷,筆者進行的驗證實驗發現難點是需要考慮的組合情況偏多,從而導致判斷程序復雜。


實際應用中還需要進行觸摸屏是否按下的檢測,這里不詳述具體的檢測方法,只是要留意為了防止觸摸屏懸空狀態的影響,可以在兩端接一個比較大的電阻到地,建議用470k或510k的阻值。


使用該方案除了具備普通電阻屏的基本功能,還可以實現對屏幕的拖動,用手指合分動作實現圖像的縮放,對兩個游戲功能鍵的同時控制。從成本上看除了需要另外增加4條IO口外并無其它硬件開銷,主要是通過軟件計算來實現多點檢測。該方案雖然性能上相較電容屏存在明顯差距,但成本上占有絕對優勢,對于一些對精度要求不高的應用還是具有一定的實用價值。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電阻
    +關注

    關注

    85

    文章

    5072

    瀏覽量

    169900
  • 觸摸屏
    +關注

    關注

    42

    文章

    2146

    瀏覽量

    113902
收藏 人收藏

    評論

    相關推薦

    電容觸摸屏的分辨率怎么調

    電容觸摸屏的分辨率調整是通過調整觸摸屏的控制器的參數來實現的。觸摸屏的分辨率是指能夠在屏幕上識別的最小觸摸點的像素數量。分辨率越高,觸摸屏
    的頭像 發表于 01-23 16:59 ?758次閱讀

    電阻觸摸屏是利用什么進行控制和工作的

    電阻觸摸屏是一種廣泛應用于各類電子產品的輸入設備,它利用電阻效應來進行控制和工作。本文將詳細介紹電阻觸摸屏的原理、結構、工作原理以及應用
    的頭像 發表于 01-23 15:46 ?675次閱讀

    電容觸摸屏原理 電容觸摸屏電阻觸摸屏有什么區別

    電容觸摸屏電阻觸摸屏是兩種常見的觸摸屏技術,它們在原理、結構和應用方面都有很大的區別。下面將詳細介紹電容觸摸屏的原理、結構和特點,并與
    的頭像 發表于 01-22 16:13 ?1073次閱讀

    電阻觸摸屏的原理及優缺點

    電子發燒友網站提供《電阻觸摸屏的原理及優缺點.pdf》資料免費下載
    發表于 10-08 10:16 ?1次下載
    <b class='flag-5'>電阻</b>式<b class='flag-5'>觸摸屏</b>的原理及優缺點

    觸摸屏漏電亂點怎么處理?觸摸屏時好時壞的原因及維修常見方法

    觸摸屏漏電亂點怎么處理如果觸摸屏出現漏電或亂點的問題,您可以嘗試以下幾種處理方法:1.清潔屏幕:使用柔軟的纖維布輕輕擦拭觸摸屏表面,確保屏幕干凈,沒有污垢或油脂等物質。污垢可能會導致觸摸屏
    的頭像 發表于 09-16 08:20 ?4393次閱讀
    <b class='flag-5'>觸摸屏</b>漏電亂點怎么處理?<b class='flag-5'>觸摸屏</b>時好時壞的原因及維修常見方法

    觸摸屏漏電亂點怎么處理 觸摸屏時好時壞的原因

    觸摸屏時好時壞可能存在以下一些常見原因:   1. 軟件問題:觸摸屏問題有時可能是由于設備上的軟件問題引起的,例如操作系統的故障、驅動程序的失效或沖突等。這些問題可能導致觸摸屏的響應出現
    發表于 09-14 15:33 ?1811次閱讀

    觸摸屏物體識別技術有哪些 觸摸屏怎么區分電容屏和電阻

    電容式觸摸屏通過感應電場變化來識別和跟蹤觸摸物體。常見的電容式觸摸屏包括表面電容式觸摸屏和投影電容式觸摸屏。
    發表于 09-06 15:41 ?1699次閱讀

    工控觸摸屏類型

    【佳維視】工控觸摸屏類型
    的頭像 發表于 08-23 17:15 ?2309次閱讀

    簡述單點觸摸,點觸摸,多點觸摸的關系與區別

    多點觸摸技術就是指允許用戶同時通過多個手指來控制圖形界面的一種技術,能構成一個觸摸屏(屏幕,桌面,墻壁等)或觸控板,同時接受來自屏幕上多個點進行計算機的人機交互操作。與多點
    的頭像 發表于 08-21 08:09 ?1026次閱讀
    簡述單點<b class='flag-5'>觸摸</b>,點<b class='flag-5'>觸摸</b>,<b class='flag-5'>多點</b><b class='flag-5'>觸摸</b>的關系與區別

    STM32 SPI驅動觸摸屏(XPT2046)(上)

    觸摸屏又稱觸控面板,它是一種把觸摸位置轉化成坐標數據的輸入設備觸摸屏可以分為電阻觸摸屏和電容式觸摸屏
    發表于 07-22 15:01 ?3414次閱讀
    STM32 SPI驅動<b class='flag-5'>觸摸屏</b>(XPT2046)(上)

    觸摸屏是靠什么感應的 觸摸屏的工作原理及應用

    電阻觸摸屏:由兩層導電薄膜組成,兩層薄膜之間通過絕緣層隔開。當用戶使用手指或觸摸筆在屏幕上按下時,兩層導電薄膜接觸在一起,形成電流。觸摸點的坐標通過測量這個電流來確定。
    發表于 07-13 14:21 ?4715次閱讀

    電阻觸摸屏工作原理及分類

    電阻觸摸屏是一種常見的觸摸屏技術,廣泛應用于消費電子、工業控制、醫療設備等領域。其工作原理是通過觸摸屏表面的兩個導電層之間形成的電阻變化來
    的頭像 發表于 06-01 09:20 ?6306次閱讀

    觸摸屏靜電浪涌保護解決方案

    觸摸屏是一種交互輸入設備,用戶只需用手指或光筆觸摸屏的某位置即可控制計算機的運行。觸摸屏技術操作簡單、使用靈活,讓更多的人使用上了計算機。除了應用于個人便攜式信息產品之外,還廣泛應用于家電、公共信息
    的頭像 發表于 05-30 09:32 ?870次閱讀
    <b class='flag-5'>觸摸屏</b>靜電浪涌保護<b class='flag-5'>解決方案</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>