TOPO.TW

對輸入設備的想像

自從開始當碼農以來,我就聽從 mentor 們的建議養成了一項習慣:
儘量使用鍵盤作為輸入設備

我在桌面環境中,基本上只會使用到終端模擬器和瀏覽器而已。 作為命令行使用者,我對電腦的大部分需求都可以透過編輯文件、執行命令來完成。 而在瀏覽器中,我也儘量使用快捷鍵替代滑鼠操作。

在正常情況下,使用滑鼠 + GUI 的操作方式需要大量用眼去確認螢幕上的元件位置和其變化, 就好比玩 FPS 需要用準心對齊目標,對我來說難度其實是相當高的。 而這樣的習慣,也使得我可以在不緊盯螢幕的情況下,仍能透過鍵盤完成各種指令。 對心智的負擔是比較小的。

也因此,我漸漸開始不再滿足於只能「坐在桌子前」操作電腦了。

既然大部分的工作可以使用 CLI (命令行界面)來完成,那麼在通勤時、行進時、無聊時, 理論上我都可以使用 CLI 來進行輸入。 而這邊所指的輸入,完全是指鍵入 ASCII 字元, 無關乎其它輸入(例如音訊、游標位置等)

為什麼我需要鍵盤以外的輸入設備

反思一下,一般要操作電腦,使用者只能好端端地「坐」或「站」在桌前, 透過桌面來穩定雙手,敲打鍵盤並直視螢幕來進行操作。 隨著手機的出現,使用者可以僅透過單手來進行輸入。 不過在這種情況下,更需要使用眼睛來追蹤虛擬鍵盤。使用下來反而更花費精力,對我來說並不是理想的方式。

我想要的模式,是可以僅透過「手指」隨時隨地開始輸入。而不需要花費精力緊盯螢幕。 既然是「隨時隨地」,就要考慮各種情況。 不管是步行、跑步、進食、通勤等情境,只要想到就能夠迅速開始打字, 從「產生想法」到「開始輸入」,整個過程不應超過1秒,以避免打斷心流。

當然,畢竟很多情況下使用者會需要讀取輸出來判斷如何進行一步輸入, 因此在這種模式下無法做到太複雜的事。

不過對我來說,僅僅只要可以做到「紀錄」這件事,就能大大改善我的生活了。 例如補捉一𣊬即逝的想法、記日記、寫下消費紀錄等。

再者,排除了使用螢幕,或許也可以使用其它設備讀取輸出。 例如把輸出轉化為簡單的聲音,用頸掛式耳機聽取,或者使用 AR 眼鏡、震動等方式。 不過這就是後話了,本篇文章不會在這方面過多討論。

各式各樣的輸入設備

當然我的想法也不會是空穴來風, 在現實世界或各種影視作品中,其實早就湧現出各種有關輸入設備的創意:

例如動畫 kill la kill 中的四天王犬牟田,直接把鍵盤做在衣服上,這應該是最直覺的作法了。

實際上,現實中也有不少例子是真的把實物做出來,不過似乎都屬於實驗性質,沒有流行起來的趨勢。

銀翼殺手中,Stelline 使用圓柱型的轉輪設備來調整影像。這也是一種不依賴桌面的手持式輸入設備。 雖然有點笨重而且不能鍵入文字,不過它的功能比較類似遊戲手把,能夠精確微調多種數值。

而即將在今年推出的 Tap XR 似乎也是個不錯的選擇:

在這個介紹影片中,使用者只要戴上一個手環,就可以透過脈搏附近的攝影機辨識手指的動作。 從展示畫面看起來,應該是辨識「哪根手指碰觸到表面」來產生對應的輸入,單手即可進行很多操作。

另外,其實也有個現成方案是大家都知道的:使用 Google 助理,搭配藍芽耳機進行語音輸入。 不過就像前面提到的各種方案一樣,就算產品看起來再怎麼美好,我自己也有些需求不能讓步。

我的需求

考慮到我對於命令行界面的使用情境,理想的輸入設備應該包括以下特點:

  • 體積儘可能小,甚至可以貼合在皮膚上
  • 操作時的動作儘可能地小
  • 待機時間長,啟動時間短
  • 鑑於有類似需求的使用者可能不多,因此結構應儘可能簡單,可以用容易取得的零件製作,容易進行故障排除
  • 可以一次輸入 1 byte 的資料(也就是 ASCII 的128個字元再加上一些預設指令)

有關硬體的想像

根據以上的需求:

體積儘可能小,甚至可以貼合在皮膚上
操作時的動作儘可能地小

顯然身體不會有其它部位比手指靈活。 為了讓操作時的動作儘可能地小,最理想方式應該是把操控界面置於手掌之上。 只要使用者彎曲手指呈握拳狀,就可以進行操作。

show image…

結構應儘可能簡單
可以一次輸入 1 byte 的資料

在操作界面上,最簡單直觀的設計可能就是為每根手指各分配一個按鈕,一共八顆。 (由於兩根拇指並不方便碰到手掌,故排除)

show image…

若是把每顆按鈕未壓下的狀態表現為0,壓下的狀態表現為1, 所有按鈕未壓下的狀態(0x00)表現為每次輸入的間格,則剛剛好可以進行每次 1 byte 的輸入。 撇除掉一些不太容易做到的手勢(例如僅有無名指保持未壓下的狀態), 輸入128個 ASCII 碼應該是不會有問題的。

當然,這種純粹把手指當作位元使用的方式與摩斯電碼無異,需要大量的練習, 學習曲線肯定會比普通的鍵盤陡峭。

不過若真的能將操作界面如此設計,我想使用頻率會大大提升,習慣後自然也就不是什麼障礙。

其它細節

考慮到無線鍵盤和滑鼠的方案,整組設備或許可以包含接收端和發射端

發射端就如上面所講,是置於手掌上的操作界面,使用 2.4Ghz 發射訊號。 接收端則可以使用 USB Type-A 或 Type-C 的方式連接到電腦或手機, 接收 8 個按鈕的訊號,轉化為 ASCII 碼。

或者更激進一點,讓整個發射端實現藍芽協定或許也是不錯的方式。

如何實作

由於我對於電路一竅不通,以下只能先做一些假設。 在擁有相關知識的人面前,可能會覺得有點異想天開。

將操作界面置於束帶上,套在手掌上

壓電元件

壓電效應(Piezoelectricity)是指在特殊材料(例如石英晶體、陶瓷等)受到外部壓力時,由於晶體內部電荷分布的變化,表面會產生電荷。 使用 Piezo 在網路上進行搜尋,的確可以找到不少應用的論文和商品。

我在想,既然輸入設備的接收端可能就是身上的手機,距離根本不遠。 若是藉由相關材料製成按鈕,是否整個電路節構就可以省略電源,全由壓電效應產生的電流發射訊號。 如此一來,設計就會相對簡單,設備也會更加耐用。

  • 就算 VR/AR 成真了, input still more important than output
  • 以上僅僅是使用方法,具體實現不明

Use mid journey to add image https://forum.arduino.cc/t/piezo-as-buttons/420919 https://www.pannam.com/dynapic-piezo/