發表文章

目前顯示的是 4月, 2019的文章

生活輔具-特製遊戲搖桿鍵盤DIY (5) 將右邊控制器改為滑鼠功能

圖片
目前整個搖桿的規劃,左邊方向控制器是WASD四個按鈕,是遊戲裏頭控制行進方向的。中間六個按鈕分別為E、TAB、SPACE、SHIFT、F3以及F5。 右邊方向控制器是1-8 經過鵝子適用幾次之後得到的結論是,除了WASD之外,其他的功能用到的機會都還好。實際上我再一旁觀察的結果也發現到,他所有的功能鍵除了WASD最常使用之外,其他的使用頻率都很平均。因為功能鍵多,所以也沒辦法完全外接出來。導致雙手需要再滑鼠、搖桿、按鈕、鍵盤之間移動。 所以我打算把右邊的控制器換成滑鼠功能,這樣的話,至少右手的滑鼠就可以不需要使用。 所以二話不說就改了一下軟體後立刻測試。 結果發現了一個令人頭大的問題, 這個搖桿的核心等於是四個開關,所以只有ON跟OFF兩種訊號。因此把他模擬成滑鼠的時候,變成滑鼠的速度是固定的。無論你搖桿撥的是大力還是小力,行進的速度都是固定。所以如果把速度調快的話就不好對準目標,可是速度太慢的話又不好用。 下面是實際操作的影片: 影片裏頭可以看到鼠標都是以均速移動,實際上這種速度要對準特定目標是有困難的。 目前想到的解決辦法有二: 一種是找搖桿的輸出是連續類比輸出的產品。另外一種則是把滑鼠速度改成漸進式加速。 下面是改成漸進式加速,要對準目標會變得容易些,但是手感跟滑鼠還是差了很多 這個影片可以看到鼠標一開始的短時間速度會比較慢,後面會很快地加速。 這樣的設計是已經到堪用的地步,但是稱不上好用,而且使用者還是需要練習一下。 接下來我會去淘寶訂類比式的搖桿。 這款感應器是使用霍爾元件,會比可變電阻精度更高而且耐用度也更高。這款輸出的方式也有很多選擇,目前是考慮XY分別輸出0-5V的款式。 不過這款的尺寸跟三和搖桿不太一樣,而且中間的桿子也沒有螺紋,尺寸也有差異,要怎麼整合到目前的外盒得等收到東西再說。

生活輔具-特製遊戲搖桿鍵盤DIY (4)

圖片
關於按鈕的部分,後來在露天發現了另外一款大按鈕。看起來好像還蠻耐用。 叫做三和按鈕。雖然不知道三和跟搖桿和按鈕有甚麼關係,不過似乎街機很多都是用這個牌子的。 依照這個產品的尺寸,我重新把遊戲搖桿的按鈕部分設計一次。 未來整體會長成這樣: 總共分成三個控制模組。其中兩個是方向控制,中間的是按鈕控制。三個模組只要更換連接件就可以任意的改變排列方式。 這是背面連接件的樣子。最後只是單純用雙面膠固定,如果想要永久固定的話,改用環氧樹脂也可以。 控制器在製作的時候也發生了一點小插曲。上面那個是完成品,但是沒用幾次居然把USB接頭整個扯掉。 沒辦法,整個計畫又延遲了三天等新的開發版寄過來。 這次學乖了,在等待的時候重新製作控制器。這次改用排針座來連接,如果再搞壞的話,至少可以很快的更換板子。 而且在等待的時候還可以用大板接上去先測試。 上面是兩段測試影片,大家有沒有注意到我家小朋友的手部動作。 很多肌萎症患者或者腦神經麻痺患者大概都是類似這種情況,手腕以下的功能等於是全廢。在這種情況下使用一般鍵盤跟滑鼠非常困難或者很沒有效率。 第二段後面一點的地方有伸手去操作傳統鍵盤。依照這種方式是非常容易按到旁邊的按紐。 現在改用這種圓形控制器以及大型按紐去取代鍵盤的常用熱鍵,大家在注意一下遊戲畫面,是不是操作的超順暢? 看到這樣的畫面之後,我已經開始在想下一個計畫,就是製作大型的半圓形滑鼠。 如果你本身是患者或者有跟患者接觸過就知道,目前市面上找的到的特殊滑鼠如果是搖桿形狀的話,都是細細一根的搖桿。 患者手腕以下沒功能的狀態下,怎麼可能好好把那根桿子握住? 另外還有軌跡球也是類似情況,手指就已經沒功能要怎麼去滑那小小的球勒?? 最後是幾張90%完成品照片。

生活輔具-特製遊戲搖桿鍵盤DIY (3)

圖片
接下來就是接著做按鈕以及軟體開發兩個部分。 按鈕是隨便從光華商場購買的大按鈕,在買的時候並沒有想太多,原則上就是夠大就好,所以挑了下圖這種。 可是回來畫圖的時候才發現到這款按鈕高度太高了!!! 會長成這個樣子。 很明顯的在使用上可能會影響到手部的活動,不過東西都買了,就先試試看功能吧。反正所有的按鈕在線路以及軟體上應該未來都不需要更動,只要改變外殼跟硬體就好。 這個就是樣品。做好之後我鵝子是沒甚麼意見,不過我還是繼續找尋合適的按鈕。 接著就是軟體開發。 開發板我選用這塊,Arduino Leonardo,好處是可以直接在硬體上模擬成鍵盤或者滑鼠,而且是獨立的一個裝置,並不會跟原本的COM port衝突。而且接腳的數量也夠多,就不需要另外用一些取巧的辦法讓好幾個按鈕去共用同一隻腳。 硬體就是最基本款。 跟我家小朋友討論的結果,最後事先做兩個方向盤+六個按鈕。所以一共需要4+4+6=14個街腳。Leonardo接腳數量沒問題,但是如果未來還需要接上LCD或者SD卡的話就不夠了。 軟體部分在第二篇的時候,WASD模擬就已經寫好一部分,可是在製作按鈕的軟體,發現到"硬體彈跳"的問題很嚴重。 在Arduino官方入門教學裏頭的前幾篇,就有提到這個問題。 請參考 Arduino - Debounce 簡單的說,就是當開關在外要打開的一瞬間,並不是直接導通的。而是有一個很短的時間會開開關關的彈跳。可是Arduino的偵測速度實在太快,這樣的清況雖然只持續幾個毫秒,但是就會被判斷成重複按壓兩三次的情況。 之前在測試WASD的時候並沒有發現嚴重性,因為前後左右的時候,同一個按鈕在短時間多按幾次並不影響這個功能。 但是針對一些功能按鈕,影響就很大了。 所以花了一些時間研究,最後是採用一個名叫"Bource2"的第三方的library來處理。這個library好處是程式很簡潔。 這裡下載: https://github.com/thomasfredericks/Bounce-Arduino-Wiring/archive/master.zip 說明文件: https://github.com/thomasfredericks/Bounce-Arduino-Wiring/...