女程式設計師的鍵盤,你一定沒見過!

程式設計師之家v發表於2018-01-02

不得不佩服女程式猿的想象力,她們的打字方式你永遠也猜不到!

前方預警:這是外國女程式設計師的神奇創作——莫爾斯 USB 鍵盤

以下為文章翻譯: 

打從記事以來,我就生活在設計精美的模擬裝置的環境中,比如旋轉式撥號電話,打字機和唱片機。我一直有把這些大部分現在不常用的東西轉換成數字裝置的想法,而這其中,老爸的舊莫爾斯電鍵看起來像是一個簡單的專案~

莫爾斯電碼是一種將國際公認的字母表(a-z)和數字(0-9)字母表示為一系列點和破折號的方式。在一戰和二戰期間,它變成了一個十分方便傳送加密的資訊的方式。傳統的莫爾斯電鍵就像一個開關,聯通和斷開電路連線就能通過無線電波傳播這些點和點的音長。

?wx_fmt=png&wxfrom=5&wx_lazy=1

所以我就想到當插入任何膝上型電腦或 PC 的 USB 3.0 埠時,莫爾斯鍵的行為就像一個鍵盤; 使用者可以用莫爾斯電碼鍵入資訊,並在螢幕上出現相應的英文字母數字字元。這個專案的程式碼我 po 到了 Github 上,有心人都可以去嘗試一下~(https://github.com/nomblr/morse/)
莫爾斯電鍵積了很多灰塵,而且裝在一個很醜的塑料基地上,因此我準備把所有東西都拆開,把莫爾斯電鍵清潔乾淨!

?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

在溼紙巾的幫助下,這項工作完成的很出色。並且我還仔細打磨了兩個金屬觸點(“ 開關 ”),改善電路連線的情況並去除一些沉積的髒東西。

?wx_fmt=jpeg

接下來就是將電鍵轉換為數字裝置。為了實現這一點,我使用一個小巧,便宜的微型控制器——Teensy 3.2。

?wx_fmt=jpeg

這是我第一次嘗試做這種事,你可以想象當我點亮並且成功執行的時候,我的內心是多麼喜悅~
為了確保 Teensy 正確按照預期“ 翻譯 ”莫爾斯密碼,我為 Teensy 寫了一些測試程式碼。因此每當按下莫爾斯電鍵一次,我就會看到電腦端有字元輸出。然而很快我就遇到了一個問題:機械開關按下時不能形成完美的物理接觸 (通常在“ 通路 ”和“ 斷路 ”之間擺動幾次,持續約 1ms,然後穩定到“ 通路 ”狀態)。計算機能夠快速檢測到這些振盪,所以當我按下我的莫爾斯電鍵時,Teensy 檢測到照片中顯示的幾個快速按鍵。這種效應稱為“ 反彈 ”,幸好內建的 Teensy 庫能夠補償它。

Teensy 程式設計完後,我準備製作一個隱藏莫爾斯電鍵下方的電子裝置的木質底座。為啥選木材而不是 3D 列印呢?其實不是美觀不美觀的問題,而是因為用 3D 列印出來的底座都適配失敗了。。

?wx_fmt=jpeg

我把木板鋸成 110x90mm,這樣莫爾斯電鍵可以很恰當地放在上面。在下方我鑿出了一個尺寸約為 50x40x10mm 的凹痕,用於放置微控制器 Teensy 和佈線。

?wx_fmt=jpeg

這可能不是做得最好的鑿洞,但是我第一次嘗試這種操作就成了~
我在底座上鑽了兩個孔,用於連線 Teensy 到莫爾斯電鍵的電線,頂部有四個較小的導向孔,用來把莫爾斯電鍵旋進底座。

?wx_fmt=jpeg

最後我打磨了一下新的鍵盤,並將其連線到我的膝上型電腦上~

?wx_fmt=jpeg

很高興看到最終完成的莫爾斯鍵盤應用在膝上型電腦上~

?wx_fmt=jpeg

*為了 Teensy 能夠成功檢測到每次點選莫爾斯電鍵的不同,來區分點、破折號、字母和單詞之間的停頓。我在絕對時間的基礎上結合自己的鍵控速度。用 150ms 的閾值來區分短劃線,並且字母和單詞之間的時間間隔被設定為 500ms 和 3000ms。當然,每個人的習慣都不一樣,這個就要自己把握了~


你有沒有什麼創造的好玩兒的東西,歡迎和我們一起分享呦^_^ ~~

公眾號內回覆“1”帶你進粉絲群!

0?wx_fmt=gif

相關文章