防抖(Debounce)和节流(throttle)都是用来控制某个函数在一定时间内执行多少次的技巧,两者相似而又不同。 当我们给DOM 绑定事件的时候,加了防抖 ... ... <看更多>
debounce中文 在 第79 题:input 搜索如何防抖,如何处理中文输入#129 - GitHub 的推薦與評價
防抖就不说了,主要是这里提到的中文输入问题,其实看过elementui框架源码的 ... function debounce(fn, wait) { var timer = null; return function ... ... <看更多>
debounce中文 在 [滑鼠] 滑鼠連點的成因與解決方式- 看板Key_Mou_Pad 的推薦與評價
大家好
講到滑鼠連點大部分人應該直接聯想到羅技XD
我們今天來探討一下連點的成因 跟一些解決方法
連點的發生是因為兩個觸點快速接觸(或說撞擊)後又互相彈開 然後又再度接合
所以導致兩次判定觸發
在微動開關使用久了之後內部彈力減弱
所以這個抑制彈開的力量變小了 進而產生
簡單的說就是開關的彈跳
在進入正題之前有一點我想先讓一些非電子領域的人理解
那就是這種彈跳是非常常見的 很正常的
要全然歸罪於微動開關並不合理
所以因應此現象 自然有對應的作為
也就是debounce(去抖動)
方法基本上分為兩種
1.軟體(包含韌體)
2.硬體
那為什麼明明有解決方法
在滑鼠界卻還是遍地雙擊呢?
我必須懷疑這是一個陰謀 (或是說一種生態)
長久以來大部分人都把滑鼠看作是消耗品
這或許是硬體廠商刻意塑造的
舉個例子 同是周邊的機械鍵盤就不這麼像消耗品了不是嗎?
以下是軟體(韌體)的解法:
以機械鍵盤的軸來說好了
如青軸綠軸這種有聲段落軸來說
其過段落點後所發出的click聲響
其實來自於內部白色塑膠零件彈開
造成兩邊觸點以極快速度撞擊而發出聲音(並不是塑膠發出的聲音)
這種速度(與重量 鍵盤軸的動片重量比滑鼠微動大得多)下 彈跳是可預期的
那為什麼沒有發生"雙擊"?
原因在於在鍵盤的韌體內有做debounce
近期ducky不是有推出一個可以讓使用者自行修改debounce time的功能嗎?
就是那個東西
debounce time的意義是
例如debounce time設為5ms
那個同一個按鍵在5ms內如果觸發了兩次或以上
除第一次之外其他都會被視為彈跳 進而忽略掉
同理 滑鼠也是可以做的 且不會增加硬體成本
(只是不做而已)
所以常看到有些人質疑羅技應該用更好的微動開關
其實放錯重點
羅技連不花錢的方案都不採用了...
我們不是硬體製造商 沒辦法決定要做或是不做
所以無法從軟體下手
接下來介紹硬體的解法
不是要說換新微動開關喔XD
這方法非常簡單
就只是在微動開關上有作用的兩隻腳之間加上濾波電容
(就是比較靠近微動上白點點的那兩隻腳 或是藍點點 紅點點 黃金點點)
電容的大小 0.1uF(104) ~ 1uF(105)都OK
形式的話 有腳的陶瓷電容 或是 SMD 1206貼片陶瓷電容 都很合適
(羅技的話推薦有腳的陶瓷電容
因為羅技滑鼠在微動開關下 電路板後 塑膠底殼下通常都設計有支撐柱 必須要閃過)
以下是M585作為範例
(上圖的M585我另外有把中鍵輕觸開關 改微動開關,有機會再另外分享 :)
就這樣 完工
有興趣的人可以拿一隻連點的滑鼠作實驗
沒意外的話可以撐到下一次換換病發作為止...
加上濾波電容是很常見debounce的方式
以下自問自答一些問題:
Q1:加上電容後滑鼠的按鍵觸發時機會不會受影響?
A1:按下時(MouseDown)不會 ,放開(MouseUp)的時間會延後特定時間(Q2)
Q2:會影響多少時間?
A2:以電容充電至1/2電壓的時間約為0.7RC來計算
滑鼠內MCU內部的上拉電阻以30K歐姆計算
電容以0.1uF來說
0.7*30*0.1= 2.1 ms = 每秒點擊上限470次
電容以1uF來說
0.7*30*1 = 21 ms = 每秒點擊上限47次
(註:以平凡人的手速都沒問題的 你如果超越加藤鷹 或是高橋名人的話就當我沒說...)
加電容的方式只對"連點"這種現象有效
其他例如點擊沒反應
或是持續按住滑鼠 卻會中斷
這種因接點本身所產生的問題都沒效
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.80.79 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Key_Mou_Pad/M.1594209255.A.827.html
※ 編輯: dream4magi (119.14.80.79 臺灣), 07/08/2020 19:58:45
需要用到的時候現在網上很多計算機,看一下圖表差不多0.7RC,差不多就好XD
他損壞情況的
因為微動電路板正下方整個包覆起來了,或許可以在子板上找地方加,但就不是如文中
這麼單純
沒理由相信他這次從良XD
至少數倍時間。
※ 編輯: dream4magi (119.14.80.79 臺灣), 07/09/2020 15:13:00
當下,就算是三擊或是十擊,也只會觸發滑鼠雙擊事件。如滑鼠內MCU有做debounce,
連雙擊都不該發生了。還是是一種有做,但(故意?)做得不夠好?
※ 編輯: dream4magi (119.14.80.79 臺灣), 07/09/2020 15:41:10
debounce,那麼debounce time是多少。
或許能說明常有人說某廠滑鼠連點,但雜牌滑鼠卻活得長長久久...
※ 編輯: dream4magi (119.14.80.79 臺灣), 07/09/2020 17:18:02
※ 編輯: dream4magi (119.14.80.79 臺灣), 07/10/2020 20:08:59
... <看更多>