Prototype design
Prototype fabrication
We designed the silicone mould for BendyPass in Blender with grooves to create triangular areas around each of its four corners, a vertical groove in its centre, and a lowered part to insert a push button. The 3D mould was printed in a Ultimaker 3 Extended printer, in PLA filament, to final dimensions of 62 x 120 x 10 mm.
BendyPass is composed of two layers of silicone rubber, to enclose the electronic components. We used two different types of silicone to make the bendable areas more flexible than the central area, where we placed the rigid components. We combined the two silicone types by first pouring mixed Alumilate A80 in the central diamond-shaped area of the mould, and immediately after pouring mixed Alumilate A60 in the corners and over the A80 rubber.
BendyPass has 5 1” Flexpoint bidirectional bend sensors, placed in the top-left corner, top-right corner, bottom-left corner, bottom-right corner and in the centre. It also has a vibration motor positioned inside its left side, to give haptic feedback for the user that a gesture was recognized by the system; and a push-button on its right side, to allow the user to delete the previous gesture entered or confirm the password. The user can delete the previous gesture by pressing and releasing the button in less than half a second (< 500 ms), and confirm the password, by pressing the button and holding it pressed for at least half a second (≥ 500 ms).
The components on BendyPass are connected to an Arduino Leonard Microcontroller, which is connected to a computer. In the computer, an Arduino program transforms the gestures and button presses in keyboard entries. Each of the ten gestures is associated to a different letter, while deleting the previous gestures activates the Backspace key, and confirming a password activates the Enter key. Based on the keyboard entries received, a .php website hosted in the laptop computer saves each gesture entered in a mySQL database and provides audio feedback, such as “top-right corner down” or “Enter”.
The cost to produce BendyPass is detailed below. We did not include costs with 3D printing because we can use the same mould to create an indefinite number of silicone pieces:
Item | Qty | Price/BendyPass |
Arduino Leonardo board | 1 | $31.80 |
Arduino breadboard | 1 | $4.25 |
1” FlexPoint flex sensors | 5 | $52.00 |
Silicone Rubber Alumilate A80 | <1 | $5.00 |
Silicone Rubber Alumilate A60 | <1 | $5.00 |
Pushbutton | 1 | $0.50 |
Chicago screws | 6 | $1.00 |
Mini-vibration motor | 1 | $1.75 |
Wires | $1.00 | |
Total | $102.30 |
Bend Password recognition program
We developed an algorithm for recognizing bend gestures on BendyPass, considering the position of the flex sensor and the direction of the gesture (up or down). When each of the five flex sensors are bent, their resistance value registered by the Arduino microcontroller changes, and is mapped to an integer value between 0 and 1023. Our algorithm reads the values of each flex sensor and considers the sensors stationary if their resistance value is within a particular range and if it has not changed more than 5 points since the previous readings.
In case a corner is bent up or down or the centre is folded up or down, the resistance value becomes higher or lower than the specified range by more than 5 points. In that case, our Arduino program maps the corner bent and the direction of the bent to a letter. Considering the flex sensors are extremely sensitive and are tightly attached to the silicone pieces of the prototype, we used a range from 250 to 750 for a stationary position, to account for potential repositioning after bend gestures. As our algorithm considers not only the thresholds mentioned, but also the difference between the current reading and the previous one, we do not need to calibrate the prototype between uses.
When a sensor is bent up or down, the Arduino program presses the corresponding key on the laptop keyboard, and the vibration motor on the prototype vibrates for 200ms. After that, the program waits for 300 ms before reading again the values of the flex sensors, for a total interval of 500 ms between gestures.
PIN Number Recognition
We used an iPhone 6S to receive PIN numbers, through an application called Unified Remote, available at the Apple App Store, connecting the iPhone to the laptop computer. The application is open in a keypad screen similar to a calculator before the smartphone is presented to participants, who are taught to use the digits, backspace and enter buttons, ignoring the other button related to mathematical operations. Before interacting with the smartphone, participants are asked whether they prefer to use it with a screen reader or a screen magnifier, which we open to them.