?

基于Arduino的鍵盤輸入指法練習器

2019-07-23 01:51俞晗熠
科技視界 2019年15期

俞晗熠

【摘 要】鍵盤輸入文字仍然是計算機的常用輸入方法,用正確的指法實現盲打是提高鍵盤輸入速度的關鍵。從動作技能形成的理論出發設計的指法練習器能有效地使初學者養成良好的輸入習慣。用開源硬件Arduino 實現視覺和動覺同步刺激,幫助使用者克服操作模仿階段依賴視覺控制,動覺控制水平較低的狀況,加快技能的養成。

【關鍵詞】Arduino;鍵盤輸入;盲打;振動電機

中圖分類號: TP312.1文獻標識碼: A文章編號: 2095-2457(2019)15-0025-002

DOI:10.19694/j.cnki.issn2095-2457.2019.15.012

Keyboard-Input Fingering Trainer Based on Arduino

YU Han-yi

(College of International Education, Beijing University of Chemical Engineering, Beijing 100029, China)

【Abstract】In regard to the computer field, keyboard input is still the most significance methods of inputting information. In order to improve the typing speed, we should master touch-typing by forming a good typing habit. In this paper, we use an Arduino to develop a keyboard-input Fingering Trainer, which can help beginners to overcome some difficulties and develop this skill more quickly.

【Key words】Arduino; Touch-typing; Keyboard input; Shaking motor

1 工作原理

雖然智能手機已經普及,通過鍵盤輸入文字仍然是計算機的常用輸入方法。用正確的指法可以使眼睛不看鍵盤輸入,實現盲打來提高輸入速度。但這項技能的獲得也需要經過一段時間的認真練習。使用本文設計的指法練習器,能縮短練習時間,提高練習的有效性,快速地形成動作技能實現盲打。

在了鍵盤上鍵位的分布和基本的指法后,初學者練習輸入時,往往要依賴視覺,目光在屏幕與鍵盤之間不停游移。輸入速度慢,正確率低,容易感到疲勞、緊張從而產生厭倦使練習時間較短,甚至失去練習的興致。這是因為手指沒有形成正確的條件反射,動覺水平低,需要看按鍵的位置和當前手指的位置,在目光的注視下擊鍵。離開目光的注視,很難確定用哪個手指和手指動作的幅度。對初學者來說,眼睛不看鍵盤的情況下,大腦對自己手指所處的位置和需要動作的幅度是模糊的,所以往往動作遲疑并且正確率差,也容易產生疲勞感。

本指法練習器使用一副半指手套,在手指位置分別放置有微型振動器。初學者戴上手套練習時,在屏幕上出現需要輸入的字母,相應的手指就會產生輕微的振動。提示使用者用這個手指去擊鍵,屏幕上也會提示這個字符的鍵位。大腦接收到振動信號后,與視覺接收到的信息結合,能快速確定需要動作的手指,發出明確的擊鍵指令??s短了反饋的路徑和時間,減少動作的遲疑,增加確定性。這樣眼睛看鍵盤的次數少了,跳過了一般初學者練習時眼睛看鍵盤頻率從多逐步減少且正確率較低這一階段,加快了正確的動作技能形成。

2 硬件實現

本練習器采用一塊Arduino UNO板作為控制板,負責把屏幕上要按動的字母鍵轉換成對應的手指振動信號,振動元件使用手機上用的微型振動電機,分別放置于手套除大拇指外的其余8個手指上,手套使用露出手指的半指手套,減少對打字的影響。

Arduino UNO是基于ATmega328P單片機的開發板,其同時具有14路數字輸入/輸出口和一個USB接口。因為在鍵盤輸入練習時,主要是除拇指外的8個手指需要反饋提示,所以在Arduino的數字端口連接8個振動電機。PC機作為上位機用串口與Arduino進行通訊。

振動電機采用手機上常用的扁平馬達,直徑約12MM,厚度約3.4MM,體積小,適合綴在手套上使用。它的輸入電壓范圍為2.5V-4.5V,額定電流約70mA,內有偏心輪,電機轉動時會發出振動。串連一個整流二極管后可以直接連接到Arduino的數字端口。二級管有防止電機之間互相干擾和降壓的作用。雖然連接有8只振動電機,但處于輪流工作狀態,不是同時工作,所需的電流不大,可以不用放大電路。經過實驗直接連接到Arduino的數字端口完全可以正常工作。Arduino板連接電腦的USB端口,由USB端口提供電源和與電腦通訊,不用連接其它外部電源,這樣設計電路很簡潔。

3 程序的設計

用VB編寫一個打字練習程序,為了提高用戶的練習趣味,可以設計成打字游戲的形式,但為了對需要擊打的鍵進行即時提示,程序設計時注意要在屏幕上提示用戶當前要輸入的是哪個字符,而不是同時出現多個字符,讓用戶可以自己選擇先輸入哪一個。

按照正確的輸入指法對要輸入的字符進行分類,然后用MSComm 控件向作為下位機的Arduino傳遞字母。下位機接收到字母后,相應的端口輸出一個高電平信號,帶動電機產生振動。按實驗的情況來看,對一個字符的振動提示,持續的時間0.2~0.3秒為宜。

Arduino中的程序用Arduino IDE 編寫,程序主要的功能是接收從PC機發送的信號,用接收到的字母控制相應端口連接的電機適時工作。下面是接收字母“B”使6號端口電機振動的例子,其它端口的程序編寫相似。

void setup() {

Serial.begin(9600);//串口通信速率設置為9600bps

pinMode(6,OUTPUT); //6號數字口設置為輸出

}

void loop() {

digitalWrite(6,LOW); // 輸出低電平

if (Serial.available()>0 ) { ? //檢查串口緩存中是否有數據等待讀取

char serialData = Serial.read(); ? ? //讀取串口緩存中等待的字符

if(serialData=='B') //如果上位機發送字符'B'

{

digitalWrite(6,HIGH); //輸出高電平,電機振動

delay(200); ? ? ? ? ?//持續0.2秒

digitalWrite(6,LOW); //輸出低電平,停止振動

}

}

}

4 應用效果

本文給出的基于Arduino設計的鍵盤輸入指法練習器,已經提供給初學打字的小學生和部分指法不夠正確的初中生使用,反響很好。使用時在初步了解鍵位布局后就能逐步適應不看鍵盤只感受手指上傳來的輕微振動來按鍵。按鍵速度加快了,正確率也大有提高。并且練習時不急躁,不亂按鍵,不易感到緊張疲勞。對短時間內感受到自己的提高有成就感。

【參考文獻】

[1]李江全,張麗,岑紅蕾著.《Visual Basic串口通信與測控應用技術實戰詳解 》,人民郵電出版社,2007.

[2]吳忠海.《用VB+Arduino開展創客式教學》,中小學信息技術教育,2016(2).

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合