Introduction: TiltKey- Write by Tilting

Picture of TiltKey- Write by Tilting
The TiltKey is a keyboard input device based on tilting. Based on the angle that it is tilted at, and the direction it is tilted in, you can write every letter of the alphabet, every number, and every symbol found on a standard US keyboard. Operation is very simple; the LCD display shows the letter your going to write, and pressing the "press" button will write it to your computer. Holding the "shift" button will write the upper-case version of the letter you're intending to write. Want to write some numbers and symbols? Just press the "change character set" button to go from letters to number and symbols or vice versa.
  • Flat is the letter a.
  • 45 degrees forward is the letter b.
  • 180 forward is c.
  • 45 to the right is i.
  • Shake for space.
 In number and symbols:
  • Flat is enter. (Shift for space)
  • 45 degrees forward is the up arrow. (Shift for w)
  • 180 forward is 0. (Shift for ")")
  • 45 to the right is left arrow. (Shift for a)
  • Shake for backspace.
Inside it has an Arduino Leonardo and an accelerometer. The Arduino is constantly reading the x, y, and z reading of the accelerometer, and is always comparing them to the x, y, and z of each position. If it's a match, it'll print it to the screen. If it's a match and the "press" button is pressed, it'll write to the computer it's plugged into, using the keyboard library, which is automatically included with Arduino 1.0.1.

When I first started working on this project, I had faith in it being more efficient than a regular keyboard. People tried to bring me down, saying that it would never be useful. They were 100% correct. The TiltKey may sound like a revolutionary new invention, but it is incredibly inefficient and useless. It often takes longer than 45 seconds to find the letter you want to write. That does not mean that all my hard work went to waste, or that you should not try this project. It was incredibly fun to make, it's sort of fun to use, and is just a very cool thing to have, even though it may not be practical.

I tried to make a video of it, but it did not come out very good. This video is evidence that you need two hands to operate a TiltKey:

Step 1: Acquire Supplies

Here's what you need to build your very own TiltKey:
1 Arduino Leonardo
1 16x2 LCD
1 MMA7361 Triple Axis Accelerometer
1 10k Potentiometer
3 12mm Buttons
3 10k Resistors
1 Breadboard
Wire
A Box

Once you obtain these supplies you can begin.

Step 2: Wire Accelerometer

Picture of Wire Accelerometer

First you must wire the accelerometer. As you do this you must keep in mind that the accelerometer runs on 3.3 volts. If you try to hook it up to 5 volts, your face will melt off and your eyes will explode.
With that in mind, here are the connections you need to make:
VCC to 3.3v.
GND to ground.
ZOUT to analog pin 2 on the Arduino.
YOUT to analog pin 1 on the Arduino.
XOUT to analog pin 0 on the Arduino.
SLP to 3.3v.

Diagram courtesy of Fritzing.

Step 3: Wire LCD

Picture of Wire LCD

Now it's time to wire up your LCD. The diagram should be able to show how to wire it up, or you could read this tutorial from adafruit. Remember to wire the LCD on a separate breadboard.

Diagram courtesy of Fritzing.

Step 4: Wire First Button

Picture of Wire First Button

You are now ready to wire the first button. You must first solder two wires to two of the contacts on your button. Then, follow the diagram to wire it up. This button is the press button. If you want to wire it without the diagram, keep in mind that you are pulling pin 2 low.

Diagram courtesy of Fritzing.

Step 5: Put Stuff in a Box

Picture of Put Stuff in a Box

You have now gotten far enough to transfer your work into a box. Simply open it up and put all your electronics in it. Cut a 3x8cm rectangular hole for the LCD and 1x0.3cm hole for the button. Push the button through the hole you made to have it on top of your box, and secure the LCD the the "ceiling" of your box, so it can be seen through the window you cut. Make sure to also cut a hole in the side for the USB cable to fit through.

Step 6: Add Next Two Buttons

Picture of Add Next Two Buttons

These buttons should be added the same way you did with the first. The shift button is wired to pin 3 of the Arduino. The change character set button is wired to pin 4 of the Arduino.

Diagram courtesy of Fritzing.

Step 7: Lable Buttons

Picture of Lable Buttons

With a permanent marker label the buttons. Look at the diagram on the last step to help you.

Step 8: Code

Picture of Code

Here's the code you need to upload to your TiltKey:

Step 9: Celebrate!

Picture of Celebrate!

You can now use your TiltKey! You can plug it in to any computer and you'll be able to write with it. Simply tilt it so the LCD displays the letter you want to write, and press the "press" button. Hold "shift" for uppercase, and press "change character set" to change to number and letters.

If you have any questions, comments, or angry rants, feel free to post them in the comments section below, and I will get back to you.
Have fun and happy tilting!

Comments

hemavathy (author)2013-02-11

can u me a code that detects the tilting and prints it to the lcd display only.because im doing sign language translator in which the accelerometer detects the tilting and display the matched letter in lcd.

amandaghassaei (author)2012-09-04

very cool! are you going to continue developing this project? I've been messing around with some gyro/accelerometer controlled stuff recently too:
https://www.instructables.com/id/Send-and-Receive-MIDI-with-Arduino/#step10

Wow, what you're working on is very cool. I can't wait until you post the full project for that!
And yes, I do plan to keep developing the TiltKey. In the future, I plan to give it a mouse setting, so the user can control the mouse with it. I might sometime make it wireless, and I may make it more compact. I'll also add simple improvements every once and while, like bug-fixes and things. At the moment, it's still pretty much the only thing I'm working on, so you can expect big (or little) changes in the near future.

About This Instructable

1,166views

0favorites

License:

Bio: I am a human being that enjoys to build things. I also say GNU/Linux instead of just Linux. Yeah, I'm that kind of ...
More by alecnotalex:TouchPass: RFID Password EntryTiltKey- Write by TiltingRFI-DJ: MP3 Playing RFID Thing
Add instructable to: