第1步:你需要什么
這個項目圍繞Arduino Pro Micro(5V版本)構建,可從Far Eastern供應商處獲得,價格為2英鎊至3英鎊。可以使用其他基于ATMega 32u4的設備,但不能使用基于ATmega328的設備,如Nano或Pro Mini。
您還需要一個5針旋轉編碼器,您可以找到0.99英鎊,和一個適合的旋鈕。
您可能躺在其余的部分:
Micro USB線
1個觸覺按鈕開關(或更多用于附加功能)
一些條形板廢料
小型工程箱
連接線,烙鐵,焊料,剝線鉗和切割機等。
第2步:工作原理
你可能已經注意到了很多USB鍵盤都有多媒體鍵,如音量上下,靜音,播放/暫停。有些還有應用程序密鑰,如電子郵件,瀏覽器或計算器,有些甚至還有系統密鑰,如睡眠和休眠。
正常的字母數字和箭頭鍵不會向計算機發送字符而是掃描代碼,代表關鍵位置。多媒體和其他鍵的存在意味著它們也有掃描碼,所以我推斷它應該很容易編程Arduino發送這些,因為Leonardo和Pro Micro可以通過他們的USB端口模擬鍵盤或鼠標。但我很快就遇到了麻煩。
我很快發現Arduino鍵盤庫只允許您發送原始標準IBM PC鍵盤上的密鑰。多媒體和系統密鑰包括不受支持的完全獨立的集合。同樣,鼠標移動和點擊是另一套,由Arduino鼠標庫支持。但是,在這些集合中,定義了大量功能,但并非所有功能都由Windows或其他操作系統實現。
深入研究我幾乎準備好開始增強鍵盤庫,我發現它已經完成了。可選的HID-Project庫提供了您可能想要的一切。
步驟3:構造
我使用了一個我已經擁有多年的盒子,遺留下來的一個從未被遺忘的項目從未完成。尺寸為50x50x20mm,可能是Maplin的尺寸。
但是你可能會使用不同的尺寸,所以我將所有機械結構細節留給你。你可以從圖片中看到我如何建造我的。
Arduino和一個按鈕安裝在一塊切割的條板上以適合盒子。 (需要使用按鈕來重置Arduino進行編程。)條形板更多地用于安裝它們而不是將它們連接起來。兩根短線穿過未使用的Arduino焊盤并穿過條板,焊接到兩者上,將Arduino固定到位。剝離板用一對熱熔膠固定在盒子中。
LED和電阻器安裝在第二塊條板上。 LED在它們適合的孔中緊密推入,無需其他固定。
步驟4:接線
如果您愿意,可以在半尺寸的面包板上進行測試。或者使用圖表將其焊接起來。
使用絞合線。我使用了幾條彩虹帶狀電纜,這使得布線保持合理的整潔,不同的顏色使得很容易看到哪根電線在哪里。
第5步:編程
如果您還沒有它,則需要下載并安裝Arduino IDE。
在您的Arduino文件夾中(默認情況下在Windows下,這是在我的文檔中)創建一個名為VolumeCtrl的文件夾。將文件VolumeCtrl.ino復制到此文件夾中。現在啟動Arduino IDE并在Sketchbook中找到草圖VolumeCtrl。
您需要安裝HID-Project庫。這很簡單:
單擊草圖 - 包含庫 - 管理庫。在“篩選器”框中,鍵入HID-Project。這應該為您提供Arduino的擴展HID功能。單擊“安裝”按鈕。這就是它的全部內容。
您還需要確保安裝了Pro Micro板定義。如果你還沒有,不要試圖嘗試另一個 - 你馬上就會明白為什么。
點擊工具 - 董事會 - 董事會經理。檢查是否已顯示Sparkfun Pro Micro。如果沒有,請在“過濾器”框中鍵入Pro Micro。在支持的主板列表中選擇并安裝包含SparkFun Pro Micro的軟件包。
現在,在Tools - Board下,選擇SparkFun Pro Micro,在Processor下選擇ATMega32u4(5V,16MHz)。/p》
注意: 如果您嘗試使用錯誤的電路板對設備進行編程,則可能會終止引導加載程序! (如果您已經完成,請繼續閱讀。)
有三種方法可以對Pro Micro進行編程,在繼續操作之前,您必須確定要使用的方法:
通過Pro Micro的USB端口進行USB編程
使用AVR ISP編程器進行ISP編程
使用其他Arduino作為ISP編程器進行編程。
這些在接下來的步驟中描述。
步驟6:USB編程
通過Pro Micro的microUSB端口進行編程取決于具有可用的引導加載程序。如果您已經殺了它,則需要使用方法2或3(也可用于恢復損壞的引導加載程序)。
將Pro Micro連接到計算機上的USB端口。在Arduino IDE上,單擊Sketch - Upload( not 使用Programmer上傳)。觀看IDE底部的黑色面板。編譯和鏈接完成后,您將看到它正在掃描COM端口以查找Pro Micro。此時,快速按下復位按鈕。然后應對其進行編程,進度條由“#”字符組成。它應該重置并開始作為音量控制工作。
步驟7:ISP編程
USB編程取決于具有引導加載程序預裝。這只是另一個程序,就像你自己寫的一樣。另一方面,ISP編程在芯片本身上使用專用邏輯,并且是制造商如何加載引導加載程序。
您可以非常便宜地獲得AVR ISP程序員(這是方法2)。確保它是IDE支持的。編程器配有6針連接器。使用您最喜歡的搜索引擎搜索“avr isp pinout”以識別引腳。將ISP標頭安裝到條形板上并將其連接到Pro Micro,如下所示:
ISP PinPro Micro pin
112MISO
2Vcc
313SCK
411MOSI
510RST
6Gnd
在“工具 - 程序員”下,您需要選擇正在使用的程序員類型。
或者您可以使用另一個Arduino執行相同的工作(方法3)。這可以是廉價的Nano,或者更便宜的帶有FTDI USB/串行適配器的Pro Mini。
在IDE中,單擊文件 - 示例 - ArduinoISP。草圖前面的塊注釋告訴您如何連線。這取決于您的額外Arduino是否具有ISP標頭以及您是否使用它。如果沒有,您將必須取消注釋該行
#ifdef USE_OLD_STYLE_WIRING
在用于編程的Arduino上,將每個引腳7,8和9的LED和330Ω連接到地。這些表示編程模式,錯誤和心跳。將其他引腳連接到您安裝的ISP接頭,或直接連接到Pro Micro。使用ArduinoISP草圖編程,在工具 - 程序員下選擇Arduino作為ISP。
步驟8:添加附加功能
USB HID(人機界面) Device)類允許整個范圍的控件,匹配不同類型的人機接口設備。這里使用的HID-Project庫可以很容易地獲得很多(如果不是全部的話)。
檢查草圖VolumeCtrl。旋轉編碼器上的按鈕功能定義為ROTARY_C。如果您愿意,可以以相同的方式定義更多按鈕,并使用相同的邏輯來檢測按鈕按下。而不是行 Consumer.write(MEDIA_VOL_MUTE); 你寫了一個類似的行來執行所需的功能。
在IDE中,單擊文件 - 示例 - HID-Project,以獲取顯示如何使用不同類型的示例。每種類型的全部控件都在位于Arduino文件夾(通常位于My Documents中)的libraries HID-Project src HID-APIs中的頭文件中給出。
示例和每種類型的頭文件如下所示。
消費者:
提供數百種控件,包括全系列的媒體播放器控件,屏幕保護程序,應用程序啟動(電子郵件,瀏覽器,計算器),瀏覽器導航和媒體中心控件。
示例:消費者
控件列表:ConsumerAPI.h
系統:
系統控制,如睡眠,休眠,斷電,取消停靠,喚醒,主/輔顯示控制和菜單導航。
示例:系統
控件列表:SystemAPI.h
游戲手柄:
32個按鈕,6軸,2個D-Pads
示例:游戲手柄
控件列表:GamepadAPI.h
鍵盤:
有多種型號可供選擇:BIOS理解的啟動鍵盤,允許發送文本字符串的改進鍵盤,以及允許n-鍵盤的鍵盤關鍵翻滾。
示例:BootKeyboard,ImprovedKeyboard,NKROKeyboard
鍵列表:ImprovedKeylayouts.h
鍵盤LED:
報告大寫鎖定,滾動鎖定和數字鎖定LED以及一些您從未知道存在的指示燈。
示例:KeyboardLed
LED列表:ImprovedKeyLayouts.h
鼠標:
兩個變體,一個與標準鼠標庫幾乎相同,另一個允許移動到絕對位置。
示例:ImprovedMouse,AbsoluteMouse
控件列表: MouseAPI.h
筆記本電腦屏幕亮度
Windows僅支持Win 8(參見參考資料) - Mac/Linux支持未知。
使用與音量控制相同的代碼,但分別將MEDIA_VOL_UP和MEDIA_VOL_DOWN替換為0x006F和0x0070。
僅適用于筆記本電腦(或移動設備)屏幕(雖然我沒有嘗試過)。不適用于連接的顯示器或投影儀,因為VGA或DVI/HDMI接口都不支持它。
-
音量控制器
+關注
關注
0文章
9瀏覽量
8742
發布評論請先 登錄
相關推薦
評論