Tuesday, September 15, 2015

Styra Joystick Prototype

The first fully functional prototype to roll off the production line is the Styra Joystick. The concept with this prototype is to provide a mouse alternative for pointer control. After several trial runs, I decided on the following criteria for this prototype:
  1. The prototype needed to provide a perfect "click" and "double-click," regardless of how long a button was pressed. 
  2. The prototype needed to provide a way to grab, aka click-and-drag, an item.
  3. The prototype needed a way to adjust pointer speed on-the-fly, not through an OS control panel setting.
  4. This prototype should not require any modification on the host PC to function.  Just plug it in and go. Since the design is based on the Arduino Leonardo, the requirement is easy.


Figure 1:  State machine for processing clicks
I worked through several different approaches for implementing the desired click functionality before I finally decided on a state machine. Figure one shows the three different flows for processing click, double-click, and latch functionality.




Figure 2:  Flex sensor
Figure 3:  Flex sensor in action
Mouse pointer movements for the Arduino are sent to the computer as X,Y position changes relative to the current pointer position. To implement on-the-fly pointer speed control, we read a value from a sensor connected to an analog input pin on the Arduino. The value from the sensor controls the speed of the pointer.

There are quite a few types of sensors to choose from, but the one that shows the most promise is a flex sensor, shown in figures 2 and 3. This sensor changes its value based upon how much it is bent.  Bend it a little, it returns a small value. Bend it a lot, much greater value. (That could be backward, but you get the point.) A sensor like this could be sewn into something attached to a wrist, ankle, foot, finger, etc. Just bending a finger or moving a foot could control the speed of the pointer.

We have two of these sensors to play with. If you have suggestions on how they might be used, leave some feedback. We're open to ideas.



Figure 4:  Styra Joystick Prototype
Figure 4 shows the completed Styra Joystick prototype. This prototype uses an Arduino Leonardo connected to one of the custom 16 input modules, though it only requires 8 inputs. The knob at the upper left corner of the prototype controls the pointer speed. The four buttons perform the following: left-click, double left-click, left-click hold/release, right-click.

The Styra Joystick requires a little getting used to, but I have used it for several hours to browse the Internet and it really isn't too bad.

We're still getting caught up on the blog posts.  More coming soon!


2 comments:

  1. Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have. Gba4iOS

    ReplyDelete
  2. Can I simply say what a reduction to search out someone who really is aware of what theyre talking about on the internet. You definitely know easy methods to carry a problem to mild and make it important. More people must read this and understand this aspect of the story. I cant believe youre no more popular because you definitely have the gift. https://royalcbd.com/product/cbd-oil-2500mg/

    ReplyDelete