K-Ability V2 - Open Source Accessible Keyboard for Touchscreens

by dariocose in Circuits > Assistive Tech

2122 Views, 8 Favorites, 0 Comments

K-Ability V2 - Open Source Accessible Keyboard for Touchscreens

1.png
7.png
8.png

This prototype is the second version of K-Ability.

K-Ability is a physical keyboard that allows the use of touchscreen devices to individuals with pathologies resulting in neuromuscular disorders.

There are many aids that facilitate the use of computer devices for people who have neuromuscular pathologies, but they are expensive and most them do not allow complex touchscreen gestures on mobile devices (swipe, double touch, drag and drop).

K-Ability V1 aims to create a self-produced and cheap device (less than 20 €) to give people with tremors, spasms and more general problems of control and neuromuscular coordination the possibility to access to mobile devices and computers at a reasonable price.

K-Ability consists of 7 buttons and a little oled screen.

K-Ability V2 introduces several new features to the project that add comfort and ease of use:

  • replacement of physical buttons with capacitive buttons
  • HID bluetooth connection to the master device (smartphone, tablet and computers)
  • possibility of power supply from powerbank or external battery
  • possibility to create customized designs

Materials

arduino nano.jpg
HC-05.png
oled.jpg
mpr121.jpg
resistors.png
cables.jpg
breadboard.jpg
FTDI Serial Adapter.jpg

Turn HC-05 Into a HID Bluetooth Device

Schermata 2020-05-26 alle 11.13.54.png
4.png
3.png

L'RN-42 is a bluetooth module that act like a wireless keyboard or mouse.

Due to the high cost and shipping times I opted to hack the common and cheap HC-05, thanks to this simple and effective guide written by Brian:

https://www.instructables.com/id/Upgrade-Your-3-Bl...

The procedure is quite simple and you will only need an FTDI Board and some softwares downloadable directly from the guide.

At the end of the procedure, your HC-05 module will be able to operate in a similar way to the RN-42 and any other HID bluetooth module.

(image taken from https://www.youtube.com/watch?v=y8PcNbAA6AQ)

Circuit

Artboard 1.png
2.png

I hope the circuit in the picture is understandable.

The circuit uses 9 gpio in this configuration:

D02 > HC-05 TX
D03 > HC-05 RX
D04 > HC-05 STATE
D08 > Display RES
D09 > Display DC
D11 > Display SDA
D13 > Display SCL
A4 > MPR121 SDA
A5 > MPR121 SCL

Note that the MPR121 module is powered by 3.3V and the 2 resistances for the voltage divider of the HC-05.

Frame

6.png
5.png
k_circuit-[Recovered].png
9.png

The project described does not have a real fixed frame, because each pathology will require a dedicated shape, size and material.

For this guide I made a simple cardboard frame to show the possibility of using any shape and material for the body.

A fundamental part to ensure the simplest construction of the body is that it is free of tactile buttons.

The use of the capacitive keys ensures 7 inputs, thanks to the MPR121 module, simply by connecting a cable, or any other conductive material, to the pins of the module, making the layout of the keyboard and the creation of a frame and buttons of any size very simple.

Downloads

Firmware

IMG_20200528_114926.jpg
IMG_20200528_114929.jpg
IMG_20200528_114930.jpg
IMG_20200528_114932.jpg
IMG_20200528_114933.jpg

First we need some libraries:

Text only Arduino Library for SSD1306 OLED displays
Adafruit MPR121 Library
SPI
Software Serial

The commands that move the mouse cursor are sent with the Software Serial library with the "write" function.

Each command is composed of a 7 byte buffer structured in this way:

buffer[0] = 0xFD;
buffer[1] = 0x05;
buffer[2] = 0x02;
buffer[3] = 0x00; //Buttons
buffer[4] = 0x00; //X movement
buffer[5] = 0x00; //Y movement
buffer[6] = 0x00; //Wheel

For this project I opted for the "Text only" because it uses only 2928 bytes (9%) of program storage space and global variables use 54 bytes (2%) of dynamic memory.

Video

K-Ability V2 - Open Source Accessible Keyboard for Touchscreens

Support me and my projects at this link https://allmylinks.com/dariocose