Introduction
Many forms of human user interfaces are available to interact with electronic devices. Most commons ones use a keyboard and mouse and touch screens. Voice interface is developing and gaining momentum.This project was started from the observation that most commonly used HID require that the user has a visual contact with the interface device (applies in particular with touch devices like smartphones and tablets, also with keyboards).
Some common or recurring tasks however could be completed without a visual contact with the device if the interface was designed for that. These task include launching a specific app, opening a file, writing a standard text...
The project will explore an ancient and yet rich, not to say endless means of communication which are rhythms.
Drums have been used to carry messages between villages. Some people living in rural areas use song and whistle as a second specialist second language to communicate on a longer distance than voice would allow.
Rhythm can be performed by various parts of the human body and can be recorded through an even larger range of means.
There is a lot of fun trying to find out how this could be used to interact with existing electronic devices, computers, tablets, machines and change the user's experience...
Developing the project
As starting point, a prototype code and hardware environment have been developed. The intent is to get a functional interface device at hand to explore the potential uses for it. Also, the second objective is to share the project with other enthusiasts to develop it to further stages.The system was modeled as follows:
A - the actual interface on which the user performs a rhythm
B - convert inputs into rhythmic patterns
C - lookup for the translation of the rhythm pattern in a dictionary
D - interpret translation and perform the action
First implementation
All 4 basic tasks are performed by a java code running on a computer. Input is pthrorformed using 5 keys of the computer's keyboard dedicated to rhythmic input.
Second implementation
The interface device becomes independent from the device that will perform the action.
An arduino uno has been used as interface device, using switches and / or microphones as input detectors.
The communication with the computer is done through USB : arduino mocks up a USB keyboard.
The computer runs exactly the same code as for first implementation
*** not yet finalised ***
*** not yet finalised ***
Third implementation
The interface device is similar to the one used for the second implementation, but instead of mocking a keyboard, the device communicates in background with the host device with a serial communication, over bluetooth.
The programme on the host device is tailored based on the one used previously. The main difference lies in the fact that the programme listens to serial input instead of keyboard input.
The expected benefits are to be able to run this programme as a background task.
The expected benefits are to be able to run this programme as a background task.
under development
see project article
To be developed : integration of more steps in the interface device
Integrate one more step in the interface device : convert input into rhythm and send phrases to the host through serial. Expected benefits are enhanced reliability since delays in serial communication are a drawback of the third implementation.
needs further development of the Arduino code
see project article
Integrate the next step in the interface device : translate the rhythm - can open usages of the interface device in full authonomy in a connected objetc, without a host computer or device.
Create a rhythmic listener on a smartphone, using screen or sound or accelerometer sensor, and allow to perform some recurring functions.
needs further development of the Arduino code
see project article
Integrate the next step in the interface device : translate the rhythm - can open usages of the interface device in full authonomy in a connected objetc, without a host computer or device.
To be developed : link with a programme like AutoHotKey to perform wider range of actions on the host computer
AutoHotKey is an open source programme running on Windows that allows to automate actions and trigger them through keyboard shortcuts.
It could act as a straight forward companion to the interface device, replacing the keyboard shortcuts by a rhythmic input.
Comments
Post a Comment