ABSTRACT

There are some instances in which the current input device landscape is not enough to cover the needs of the developer. It is also important to be able to prototype new input devices and combinations of those. There are different ways to address those needs. A common option is to create your own electronics and system drivers to communicate with the host machine [Orwick and Smith 07, Corbet et al. 05]. It is also possible to use Musical Instrument Digital Interface (MIDI) devices to send signals from an input device. MIDI provides a protocol of communication with a set of attributes for a given button (key), such as amount of pressure to the key, if the key has been pressed or not, and the time that a button has been pressed down, among others [Rumsey 94, Messick 98]. Another alternative is to use smaller form-factor computer boards, such as Raspberry Pi or BeagleBone boards. They provide the functionality of a computer (e.g., Linux) with additional inputs. The communication between another computer can vary (e.g., sockets). Finally, working with microcontrollers can also be helpful in creating new input devices. They usually communicate via USB. One of the popular microcontroller board, which is covered in this chapter, is Arduino (typically using Atmel microcontrollers). Note that this chapter uses microcontroller term loosely to refer to the microcontroller chip or the board.