您好, 访客   登录/注册

基于Arduino的键盘输入指法练习器

来源:用户上传      作者:

  【摘 要】键盘输入文字仍然是计算机的常用输入方法,用正确的指法实现盲打是提高键盘输入速度的关键。从动作技能形成的理论出发设计的指法练习器能有效地使初学者养成良好的输入习惯。用开源硬件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 工作原理
  虽然智能手机已经普及,通过键盘输入文字仍然是计算机的常用输入方法。用正确的指法可以使眼睛不看键盘输入,实现盲打来提高输入速度。但这项技能的获得也需要经过一段时间的认真练习。使用本文设计的指法练习器,能缩短练习时间,提高练习的有效性,快速地形成动作技能实现盲打。
  在了键盘上键位的分布和基本的指法后,初学者练习输入时,往往要依赖视觉,目光在屏幕与键盘之间不停游移。输入速度慢,正确率低,容易感到疲劳、紧张从而产生厌倦使练习时间较短,甚至失去练习的兴致。这是因为手指没有形成正确的条件反射,动觉水平低,需要看按键的位置和当前手指的位置,在目光的注视下击键。离开目光的注视,很难确定用哪个手指和手指动作的幅度。对初学者来说,眼睛不看键盘的情况下,大脑对自己手指所处的位置和需要动作的幅度是模糊的,所以往往动作迟疑并且正确率差,也容易产生疲劳感。
  本指法练习器使用一副半指手套,在手指位置分别放置有微型振动器。初学者戴上手套练习时,在屏幕上出现需要输入的字母,相应的手指就会产生轻微的振动。提示使用者用这个手指去击键,屏幕上也会提示这个字符的键位。大脑接收到振动信号后,与视觉接收到的信息结合,能快速确定需要动作的手指,发出明确的击键指令。缩短了反馈的路径和时间,减少动作的迟疑,增加确定性。这样眼睛看键盘的次数少了,跳过了一般初学者练习时眼睛看键盘频率从多逐步减少且正确率较低这一阶段,加快了正确的动作技能形成。
  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).
转载注明来源:https://www.xzbu.com/8/view-14929465.htm