The team's project
The team's model
Our sponsor is The Resource Center for Persons with Disabilities (RCPD)


















Download our keyboard app!

Download Now! (Windows x86)





The project goals are:




A brief overview:

The team's design utilizes several components:


           Arduino Leonardo

           Firgelli L16-50-35-12-P actuators (2x)

           FSRs (4x)

           TI L293D H bridge

           MSU Eagle custom PCB print



The Arduino microcontroller is the heart of the team's project. This microcontroller allows for software control over the joystick. The Arduino has it's own IDE for programming which allows for USB plug-and-play, mouse movement, and keyboard libraries straight out of the box! It is perfect for the joystick since it has the required 7 digital pins and 6 analogue pins.




These actuators support the positioning the joystick. As the user pushes the joystick, the actuators will either lengthen or shorten, but what's special about these is that they have potentiometer position referencing.  This allows for equal positon based denting!



FSRs (Force Sensing Resistors) register force as pressure is placed on the pads. This value can be read through the analogue inputs of the Arduino.



The TI L293D allows the Arduino to drive the actuators in both forward and reverse directions. Using the h bridge is essential since the joystick will be able to talk quickly and reliably to the actuators. Here is the circuit schematic used to make this happen.





After creating the hardware prototyped in the video at top, the team used CadSoft EAGLE PCB design software and MSU fabricated the circuit. The PCB created can be used as a shield on top of the Arduino allowing the team to save space.




The code used for the controlling the Arduino is based off of standard libraries:


These libraries allow for easy programming and out-of-the-box functionality. Connect the joystick to any computer runing any modern operating system (Window, Mac OS X, or Linux) and you are good to go!



And finally, to compliment the joystick here is an onscreen keyboard that is designed to work with and control the joystick. The keyboard also works independently as well. The keyboard has been written with Processing using the Processing IDE.



The Arduino IDE was developed off of the Processing IDE so both IDEs share some commonalities, such as serial communication. The team selected the Processing IDE for several reasons:



The keyboard supports a number of features:



Processing IDE is designed with artists, hobbiest, and those new to programming. Being a visually based IDE not much

effort is needed to produce results, creating a keyboard, on the other hand requires understanding of libraries, java, and other backend features


One such feature is text-to-speech. This feature uses an internet connection to retrieve and cache small .mp3 files for text-to-speach feedback. Frequently used words will remain cached so bandwidth can be preserved.


Here is a picture of dictionary words. Note, different size keyboards can be selected by choosing the red squares on either side of the keyboard:




Keyboard App -- Download Zip (Windows x86)