在一場激烈征戰的同時,我總是會希望有多一隻手,可以幫我按按鈕!
因為我們家的小孩都喜歡玩線上遊戲,這個項目起源就是這樣來的!
現在的線上遊戲,講求自由度!所以各式各樣的招式,經過你的巧手分配後,有可能就會產生不一樣的結果。(有時可以逆轉勝啊!)
難易度
★★★★☆
因此我就想到這個軟體X-Mouse Button Control
它可以設定巨集,可以依照你的想法,把按鍵排列組合一一輸出,
不過Lag總是成為壓死玩家的關鍵因素,當然也會影響這個軟體,輸出不聽使喚~
前一陣子玩Arduino剛好有玩到keyboard這個功能,因此這裡就來試試,用Arduino當成我的外掛鍵盤。
(1)先選擇 Arduino 種類
因為arduino不同的型號,會搭不同的晶片,有些晶片會支援特定的功能,所以在開始之前,要先了解差異!!
- 使用Arduino R3 的 UFD模式來模擬成電腦的USB鍵盤
- 使用Arduino Leonardo 或是 Arduino Micro / Pro Micro 的板子來執行keyboard程式
第一種方式,我手上的板子一直測試不成功,不知道為什麼?
可以進入UDF但是沒有輸出反應!?弄半天我就放棄了
(時間應該留給我們的idea上,而不是浪費在故障排除啊!)
所以我直接使用第二種方式,買了一塊Pro Micro直接來玩。
(反正日後不玩了,還可以作為其他使用,完全不浪費!)
**如果你不想思考 怎麼寫sketch可以參考我的,直接拿去改,或是直接用,在最下面!**
(2)需要什麼功能?
事先的規劃是必須的,因此後續在寫sketch時才不會覺的太困難,總之先求有在慢慢修改,完成了整體結構在慢慢加入其他的細節。
- 要可以各自設定各個按鈕間的間隔時間(需要一個選單是專門設定時間)
- 要可以設定要輸出哪個字(需要一個選單是專門設定文字)
- 要可以設定輸出幾個字後才停止(需要一個選單是專門設定字數)
▼綜合以上,所以需要三個選單+一個主要畫面
(3)實做
▼首先把i2c版本的 LCD線插入Arduino上,基本上有四條 正極 負極 SDA SCL
▼對應的插入腳位是 2(SDA) 3(SCL)
▼按鈕則必須先焊接在洞洞板上,其實若是使用麵包板的朋友,也可以直接插在麵包板上即可使用。
▼按鈕依序插入10 16 14 15號腳位(我的電路採用下拉電阻接法,下拉電阻是什麼?)
▼現在你只要把sketch載到Arduino上就ok啦!
(4)遇到的問題點
在實做過程中,總是會遇到一些問題,以下是我遇到的狀況。
第一個問題 怎麼無法編譯?
▲為什麼編譯不過?編寫規範明明都依照標準走!
(已經加入了keyboard程式庫,還是提醒說找不到? 一度懷疑是否為軟體問題)
▼原來是設定對應的板子,沒有先切換到Micro / Leonardo 所以編譯就失敗(IDE這麼聰明啊!)
第二個問題 因為我想邊玩遊戲邊設定,所以我可能需要一個LCD來顯示現在的狀態。
但是怎麼輸出到UNO上面明明就正常,反之接到Pro Micro就失敗了呢?
故障排除了三天,發現原因在於1602LCD程式庫有問題!
第三個問題 怎麼輸出第一個招式後,第二、第三卻使不出來,有時候又可以??
原來這就是lag造成的問題,若要解決,應該蠻簡單,連續送出單一個按鍵碼三次即可
(就好像你狂按某個按鍵一樣.....答答答答!!!!)
注意以下事項:
板子必須是 Pro Micro / Leonardo才能執行(因為晶片的關係)
上傳前,先確認好你的IDE是否有選到Pro Micro / Leonardo的板子類別,設定正確才能成功
準備好1602 LCD 插入 2(SDA) 3(SCL)腳位 (這是是Pro Micro 晶片支援的腳位,內定的不能改)
準備好四顆按鈕 分別插入 10 16 14 15腳位 (這個腳位其實是因為對應到sketch內所寫的號碼,可以依照你的寫法變更)
**附記
下拉電阻:主要用意是用於,當某個晶片的金屬針腳懸空時,可能會因為靜電或是電磁波關係,影響金屬腳上面的電壓,產生變化,但這不是我們要的結果。
使用一隻阻抗比較高的電阻,來把金屬腳導引到負極,所以就算針腳上有電也會慢慢流失,保持為低壓的狀態。
若使用的阻抗太低,就會變成短路,請大家注意喔!
一般使用 10k歐姆 或 100k歐姆
檔案下載
sketch 下載後使用Arduino IDE打開,並接好板子按下上傳即可。
需要的費用 (以下為約略計算)
Arduino Pro Micro*1 =250元
1602 LCD*1 (建議選擇i2C版本)=80元
i2c的模組=50元
微動按鍵*4 (可以依照個人喜好選擇)=4顆*1元 =4 元
留言列表