Sunday, April 06, 2008

Fingering of Keys

按鍵是很普遍的人機介面,也常用於內嵌系統(Embedded Systems)。既然大家那麼愛用按鍵,很自然地, Embedded Systems 軔體開發人員就常常得處理按鍵的偵測、編碼等議題。此外,為了按鍵操作流暢,我們還必須為按鍵設計適當的指法(fingering)及明確、統一的功能定義(function definition)。

不久前筆者設計了一款相框產品,它雖然只有三個按鍵,但除了要能執行基本操作,如上一張、下一張、設定自動換張的間隔時間等;也要能夠流暢地切換功能,如手動換張、自動換張、顯示日期時鐘、功能設定等;此外,最好還能透過這些操作,讓使用者充分感受到它優越的秀圖速度。

老實說,把這些操作通通塞進三個按鍵內並不是多困難的事,比較需要我們傷腦筋的是怎麼讓使用者覺得操作是簡單流暢、符合預期的。

這裡不是要跟你扯怎麼設計美美的畫面,雖然美美的畫面很重要,但畫面設計還是交給專業的美術人員,我們只要想辦法讓「程式的行為與使用者的期望完全一致」就好了。

為了達成這個目標,我在上面規劃了單擊、長壓、自動重複、組合鍵等操作指法(fingering):

  • Single Click -- 單擊
    • to go to Previous/Next slide
    • to Decrease/Increase values
    • mode switch (AUTO/MANUAL/CLOCK)
    • confirm (mode key)
  • Long Press -- 長壓
    • Power On / Power Off
  • Auto-repeat after a long press -- 自動重複
    • to go to Previous/Next slide
    • to Decrease/Increase values
  • Composite Keys (Shift + Prev/Next) -- 組合鍵
    • menu and menu item switching

在決定了這些指法及其使用場合後,緊接著是要定義各個按鍵在不同指法及情境下所對應的功能(function definition),一個可能的定義如下:

  • Prev:
    • Previous Slide
    • Value Decreasing
  • Next:
    • Next Slide
    • Value Increasing
  • Mode/Power/Confirm/Shift:
    • Mode Switch: AUTO / MANUAL / CLOCK -- 單擊
    • Power On <-> Power Off -- 長壓
    • Confirm (for Menu) -- 單擊
  • Shift + Prev (Shift + Next): Menu Prev (Menu Next)
    • for MANUAL mode of Slide Show:
      • Delete?
        • press mode key to confirm
        • auto-cancel (and return) after 3 sec
    • for AUTO mode of Slide Show
      • Interval (1~60 sec)
        • click Prev/Next key to Decrease/Increase the value
        • auto-confirm (and return) after 3 sec
        • press mode key to confirm
    • for CLOCK mode:
      • Switch between digital clock and analog clock

最後,關於按鍵的處理,我之前還整理了一篇 Keypad Algorithm 大家可以順便去逛逛 :)

Tags: [] []

0 comments: