Arduino Uno 直接模擬鼠標的方法

Arduino 模擬鼠標目前有三種方法:

1. 外部加電阻 USB母頭等元件,然後燒錄模擬程序,用 328P作為處理器。這種方法的缺點是:原件多,不容易調試,佔用板載資源多,做出來之後基本上不能完成什麼功能了(因為Usb低速設備傳輸要求1.5Mb/s,而328P最高只有16MHz),有興趣的朋友可以看一下之前我做的一個鎖屏的裝置【參考1】;


2. 直接使用Leonardo 這樣主控是ATmega32u4【參考2】 的板子。這種方法的好處是:Arduino 原生庫支持,資料比較多,調試方便。個人推薦初學者如果有鼠標鍵盤的需要可以玩這個;

3. 原版的Arduino Uno 上面使用的串口芯片是 16u2,可以給這個芯片刷寫上一個特殊的Firmware,它和PC端用USB鼠標或者鍵盤通訊,然後和 328P 使用串口通訊。
本文介紹的就是第三種方法。
在玩第三種方法的時候,你需要特別準備一個燒寫器。我用的是 USBTINY 這款。

Arduino Uno 直接模擬鼠標的方法


本次實驗的目標是將uno模擬成鼠標。參考的資料來自下面的頁面:


http://hunt.net.nz/users/darran/weblog/cca39/Arduino_UNO_Mouse_HID.html


我刷寫的工具是 AvrDudess 2.4,用法很簡單,接線之後(建議選購下載器的時候直接選帶完整線的,否則每次接線也是很麻煩的事情),按下 Detect按鈕,軟件需要檢查到正確芯片的類型,比如,我的轉接芯片是 16u2。如果無法偵測,那麼請檢查連線。如果折騰了很久都不行,那麼請聯繫賣家所要驅動和刷寫工具。剛開始的時候我就在這裡折騰了很長時間。

Arduino Uno 直接模擬鼠標的方法


這裡是燒寫Uno USB轉串口芯片的位置

Arduino Uno 直接模擬鼠標的方法


因為串口芯片被刷掉了,所以接下來也必須使用刷寫器寫入編譯好的Arduino 程序。

Arduino Uno 直接模擬鼠標的方法


輸入程序,確定編譯無誤

用 IDE 上傳內容,需要一些設置,指定刷寫工具

Arduino Uno 直接模擬鼠標的方法


然後使用 File->Upload Using Programmer 來進行上傳

Arduino Uno 直接模擬鼠標的方法


上傳成功:

Arduino Uno 直接模擬鼠標的方法


成功之後,用Arduino Usb口連接電腦,你的鼠標每隔一段會自動旋轉一圈,同時在設備管理器中會出現一個鼠標設備:

Arduino Uno 直接模擬鼠標的方法


這個和16u2 Firmware source code(Descriptors.c)中定義是相同的
.VendorID = 0x03EB,
.ProductID = 0x2041,
.ReleaseNumber = 0x0000
從這裡出發,可以讓 Uno 玩出很多新花樣,後面我會慢慢介紹。
參考:
1. http://www.lab-z.com/20140101/ 用 Arduino 打造一個自動鎖屏裝置
2. http://www.arduino.cn/thread-1205-1-1.html Arduino Leonardo 中文介紹


分享到:


相關文章: