-
One Finger Circuit
08/20/2014 at 18:35 • 0 commentsHere is a rough layout of the finger circuit. The finger resistor makes a voltage divider. This voltage is fed into a comparator. The resistors around the comparator define the hysteresis band. This gives us a simple digital out to use later on. Additional circuits such as a Parallel In/ Serial Out Shift Register could be used to tie more than one finger to a given digital pin.
The hysteresis works like this:
If the finger voltage rises above a certain threshold, the pin goes low. In order to go high again, it has to drop further. This creates a kind of dead-zone and avoids oscillations if you have a single switch voltage.
-
Concept Art
08/20/2014 at 18:19 • 0 commentsI have added some concept art. This shows the motions that are being used. There is a nominal position for each finger and virtual buttons to the side. Rotation of the wrist actives modifier keys. This yields 14 keys per had with 3 modes (Normal, Shift, NumPad).
-
Making Flex Resistors
08/20/2014 at 17:09 • 0 commentsThe commercial flexible resistors are very expensive. Making a whole glove out of them was not reasonable. Also, in testing, I was not impressed with their sensitivity. I looking into making my own and found some good resources. I am using this method with some modifications:
I am using Velostat from adafruit. 3 layers works well. I have substituted the conductive thread for wire-wrapping wire. It is flexible as well and allows me to attach the other end of the wire to a header pin easily (with a wire-wrapping tool). I am also using electrical tape instead of duct tape. I don't think that has any effect.
I may experiment further with using conductive foils to increase the sensitive area. This design above appears to rely on the wires and layers being pressed together. If the wire is not pressed on, the resistance may not change much. This is not an issue in the glove as I simply situate the wire over the knuckle, but a better version would be appreciated.
-
Keyboard Layout
08/20/2014 at 01:47 • 0 commentsThe initial prototype used f and j for the up and down motion of the right pointer finger. This was simple done as f and j are the first letters in the typing trainer that I use. The layout of the keys will be important. No firm plans have been made, and certainly things will likely change in testing (they always do). The basic idea is to leverage fingers that are more versatile and motions that are most comfortable.
This image from the Wikipedia Letter Frequency post gives us most of the info that we will need. There are 9 very common letters. Those should be given prominent positions. In addition, the space bar, and backspace are very commonly used buttons.
-
Prototype Complete
08/20/2014 at 01:40 • 0 commentsI've been working to get a demo of the glove working. I have a finger working well with the initial gestural modifiers. Basically, it works like this: bending of the finger up or down from a nominal position each trigger a key. Twisting the wrist to a vertical orientation activates the shift key, further rotation to a palm up position activates the num-pad. In the future additional commands can be given to left hand orientation.
This prototype is running into an arduino leonardo as it can act as a USB device. The arm module would be integrated into the glove in the future. Right now, this one finger is working well, showing the overall methodology.
I am planning to rewire the voltage input from the flex-resistor. Right now it is just running into an analog input, which is not practical for all of the fingers. I will be using comparators with hysteresis to control the logic inputs. More about those in a future post.
-
Initial Hardware
08/19/2014 at 17:33 • 1 commentMy initial motivation was to build a keyboard for myself. One that allowed you to really focus on the computer. Ideally, the keys would fit to your hand and no eye-hand coordination would be required. Then, you can focus on learning the association of what action does what key (or modifier). This would increase the learning speed and also increase typing rates. Minimizing finger motion will improve speed as well.
Other improvement ideas:
The hand should be held in a more natural position, for myself, my hands would prefer to be tilted outwards slightly. The keyboard puts a slight torque on my wrist.
Split the keyboard into two parts, allowing each arm and hand to rest naturally.
Integrate mouse functionality so as to remove the time delay and re-orientation between mouse use and keyboard use.
These ideas lead to the hardware skeleton keyboard. Here is a photo of a concept for a single finger. One advantage of using multiple buttons per finger is that it can reduces repetitive stress disorders.
The hardware keyboard is neat, but it has some disadvantages. For one, it would have to mold to each users hands. This is really hard. Also, it will be rather expensive as nice buttons are costly. Finally, another motivation is the desire to use a keyboard in a virtual environment. I can see in the near future that we will be able to use a VR headset to have a wrap around computer screen. This would be idea for work that I do, developing physical theories for rocket engine design. I often need many screens with either code, text, or documents that I am creating. In this environment, as I am 'wired in' I would a hardware keyboard would be limiting as I am no longer connected to my surroundings.
Furthermore, in VR environments, you would prefer to be able to move around. Then, the idea of a fixed desk or keyboard is outdated.
This lead to the glove based keyboard. The actual inspiration was from the book 'Ready Player One' as the main character was using his haptic gloves in the VR environment, I saw that as the solution to my keyboard problem. From there is stemmed into other advantages, namely the lack of a physical reference and the simplicity of the design.
There are some challenges here, as getting enough keys is hard (but do-able). And getting position of the fingers is hard too. I hope that you will see that this idea is functional in the following posts.