###### tags: `CircuitPython` `FM630A` `HID`
# Adafruit Hid 程式庫 mouse 移動時的怪現象
如果你使用 [Adafruit Hid 程式庫](https://github.com/adafruit/Adafruit_CircuitPython_HID)將 Raspberry Pi Poco 模擬成滑鼠, 但是在運作時卻覺得滑鼠的移動好像怪怪的, 例如使用以下程式:
```python=
import usb_hid
from adafruit_hid.mouse import Mouse
import time
mouse = Mouse(usb_hid.devices)
mouse.click(Mouse.LEFT_BUTTON)
for i in range(5):
mouse.move(x=50)
mouse.click(Mouse.LEFT_BUTTON)
time.sleep(1)
mouse.move(y=50)
mouse.click(Mouse.LEFT_BUTTON)
for i in range(5):
mouse.move(x=-50)
mouse.click(Mouse.LEFT_BUTTON)
time.sleep(1)
```
理論上執行後滑鼠游標會向右等距移動 5 次, 再等距移動 5 次回到原位, 像是以下透過小畫家畫筆示範的這樣:

不過如果你的 Windows 上**其他滑鼠設定**的**指標設定**中有勾選**增強指標的準確性**:

就會發現滑鼠指標移動的量似乎不均等。以小畫家的畫筆來實驗如下:

你會看到上排左邊第一個點和下一個點的距離比較短, 其他點之間的距離則是等距。
這是因為**增強指標的準確性**其實原文是 mouse acceleration, 主要是用來根據你移動滑鼠時的速度來調整滑鼠指標的移動量, 這樣即使滑鼠在小範圍的移動也可因為移動速度快而讓畫面上的指標移動較遠的距離。但這卻會造成滑鼠在實體空間相同的移動量對應到螢幕上不同的指標移動量。
這也就是為什麼程式中指定相同的參數, 卻可能移動的距離不同的原因:首次移動時, 因為之前很長一段時間沒有移動滑鼠游標, 所以平均速度很小, 移動的距離就小, 後續的移動都是同等時間間距等量移動滑鼠, 維持一定速度, 因此就會讓滑鼠游標等距移動了。
如果不喜歡這樣的滑鼠游標移動方式, 建議可以將這個選項取消, 讓滑鼠的移動與螢幕上滑鼠指標的移動量等比例變化。