Practicing with the Keyglove

Practicing with the Keyglove

This weekend, I finished most of the sensor mounting on my Prototype B glove. Actually, it should probably be called something more like “Prototype G” because of how many different things I’ve tried since Prototype A, but I’m going to stick with “B” since this is still only the second glove I’ve got quite this far on. All of the sensors are mounted and wired except for the three large ones on the palm. It’s the first time since my original attempt that I’ve been able to connect and test a nearly complete array of sensors, and I must say that it does work better than my first one.

However, I must also say that it still needs some work, specifically in the following areas:

  • The sensor size and placement is significantly better, but a few of them still need to be moved a bit due to the structure of the hand and the way the thumb reaches each other sensor.
  • The tiny stranded wire is more flexible than the larger solid wire I had before, but it is actually quite fragile (as far as wire goes, anyway). I’m going to try some enameled magnet wire instead.
  • This glove is nylon, not cotton. I’ve decided that I like the cotton one better, so I’m going to switch back to that for more testing.
  • I really need a faster way to connect and disconnect the sensor pins from the Arduino board. I think I may get some screw terminal sets and build a header breakout board or something.

Overall though, it’s a good step forward. With some more software modifications and a hacked-together serial interface program, I was even able to do some real typing in regular programs with the glove. Mouse movement should come soon as well. Now, I do want to reiterate here that using a serial driver (or foreground program, as I’m doing here) to type characters and move the mouse is not a permanent solution. I fully intend to make this into a complete OS-independent device that communicates with standard input device protocols—PS/2, USB, and Bluetooth. I’m only using a serial interface right now because it was easy and it works.

One thing I discovered in my five elated minutes of typing is that I have no idea how to type efficiently with the Keyglove. I expected this, of course, since I’ve never used it in a real typing environment before. I do have the beginnings of a letter-frequency-based touchset created, but I haven’t been able to practice with it at all since I didn’t have a fully working glove. This revelation of my sad inability prompted me to begin building a practice tool.

So, last night, I took a picture of each base touch combination as represented by my hand (60 in all), and then this afternoon I modified them to be more visually informative. Then, I created unique versions of the main sensor diagram to go along with each photo in order to eliminate any possible confusion as to what the photo is trying to show.

This evening, I put all of these images together into a very basic Training page. It’s currently only a full list of all 60 base touch combinations, but it will eventually grow into an interactive training app online. I may also make an standalone application for this, but I believe I can accomplish at least all of the training aspects with a web app. Customizing touchsets is another matter, but I’ll take care of that once I get a little farther along.

Take a look at the table on the Training page and see if there are any combinations that are very difficult for you to do. If there are, let me know. I’d love to get some feedback on the feasibility of what I have in mind. Although I’ve tried to stick with combinations that seem pretty easy, I am double-jointed (some say disturbingly so) and I might just be oblivious to the fact that some of them are impossible for normal people to make.

Once I make a few more changes to the Training page to add at least a minimal amount of interactivity, I’ll post the results of my first few practice sessions. My next immediate goal here is to create another proof-of-concept video that shows real typing, not just sensor touch recognition in a debug window.