Go Down

Topic: Switchboard (Read 1 time) previous topic - next topic


I couldn't possibly be the first poster in this forum, could I? I guess this forum is new. Lets start with something simple:

The "switchboard" or "footboard" is explained on my website, but I'll sum it up here:

This board is intended for my feet. The Arduino tells my software when a button is pressed or released. The board (a three-ringed binder with switches) serves as a resting place for my feet, as well as a secondary input method into the computer. So far, my software has modes to allow these buttons to control winamp, perform clipboard operations (copy/paste), and serve as shortcuts for things I use often (such as a prefix for URLs of pictures on my site).

With software, any combination of functions can be made to do all sorts of things. For me, these added buttons allow me to do things faster than I can normally, or even allow me to do things I couldn't do before. Before, it was impossible for this amputee to effectively play FPS games. With this invention, I can use my feet to move around, leaving my only hand free to do the mouse thing.

I think this last part was worth mentioning, as in a way the Arduino is improving my quality of life. I'm sure the creators of the Arduino didn't imagine seeing it being used for the disabled. I'm very grateful that there is such a thing! Thanks to everyone who helped make Processing/Wiring/Arduino a reality :)


I once joked to a friend about having foot pedals for my computer, but now someone actually goes and does it!  That is a very clever use for Arduino.  I looked at your web page and saw the Arduino code, but I was wondering how exactly you did things on the O/S side... (Windows? Linux? other?)  If Windows, do you have to find which window has focus and inject keyboard messages into its particular message dispatch loop?  

I once wrote a program that would take over the mouse and send pretend mouse clicks to solve Minesweeper.  (I called my program "Minebroom".)  It would even grab pixels to figure out what the numbers were on the screen.  But I never had to do anything with the keyboard, so I am curious about the programming details.

Thanks for sharing...

- Don


I used VB6 to interface. There is a command called "SendKeys". For example, sending a "paste" command is as simple as:

SendKeys "^v"

Where "^" means ctrl. Of course, this method doesn't work if a program is using non-standard methods of grabbing input. There are many ways to grab input from the keyboard. Video games, for example, probably use one of the API calls that allows the game to detect when a key is pressed or let go; holding a key will not cause it to repeat the character.

In this case, windows has an accessibility feature called "serialkeys". So, in quake2 for example, I have each of the four buttons assigned to a, s, d, and w. When the leftmost button is pressed, it is like pressing the "a" key and releasing it. When that same button is released, another "a" is sent. In-game:
alias a1 "+moveleft ; bind a a2"
alias a2 "-moveleft ; bind a a1"

So that, in effect, these buttons properly control said FPS externally.


Long time ago I thought it would be great to have foot controlled trackball. So, something like a bowling ball with a three big buttons. That way you can mouse with one foot and have two hand always on the keyboard. I don't know if you can FPS with foot controlled trackball, in that case your only hand could be on the keyboard fultime.

At some point I got used to switching between mouse and keyboard and more or less forget about the idea. Today I use a spaceball, seperate numeric keyboard and wacom tablet. An extra mouse might be nice though. (BTW, I am an engineer and almost fultime working with CAD software, so very mouse and numeric oriented)


The foot trackball sounds cool and is kind of related to the search that brought me to this thread. I'm currently developing some alternative input devices, for artistic purposes mainly but also with the possibility of them moving more into a therapeutic context. They involve using the knee and elbow joints to control cursor position. I've got a basic prototype working by doing an analogue read on two variable resistors then using the arduino to interface with a basic drawing program in processing. the problem is it only works in the window that processing creates.

http://webzone.k3.mah.se/projects/arduino-workshop/projects/arduino_meets_processing/instructions/joystick.html the info on my setup thus far

If you were to use the arduino for the foot trackball idea you would need to send data out of the arduino and have that data recognised as mouse data by your PC. this is also what i'd like to do, that way my multi-limb input devices can function as mouse and not just a processing exercise. perhaps serial mouse data is the place to start
any suggestions are most welcome

Go Up