So far in the lab this week I’ve been focusing on developing and testing capacitive touch circuits and corresponding code. I began this round of prototyping with the intention of simplifying the design by reducing the number of parameters available to be controlled to three; Record, Play Trigger and Play Gate. In the back of my mind, I felt it was a shame to reduce the features this far, but felt it was necessary due to lack of time available to me to finish the prototype. In past Access Music Workshops, I’d noticed that one of the first things participants (particularly young adults and children) like to do one they’ve recorded their voice is to change the playback speed. This parameter can be controlled through the use of a variable resistor which, I assume, in combination with a capacitor, determines the clock speed of the Voice Recorder chip. I’d found an example of how to change resistance through a touch interface on the Bastl website. The example uses a CD4040 IC, a requirement of this circuit is that the user presses two contact points. I decided to avoid this approach as I felt this may present a disabling barrier to some individuals with impaired motor control, for example, those with Cerebral Palsy. An idea struck me, a while ago a colleague and I had a discussion about Vactrol controls. I had heard of Vactrol’s before but wasn’t sure what they were. My colleague explained to me that they allow control of resistance through voltage. This is achieved through the use of an LED and an LDR. The amount of resistance of an LDR is determined by the amount of light it is exposed to, therefore by controlling the amount of light emitted by an LED directed towards it you can control resistance. I decided that using a series of discrete touch points would be a good way to control LED brightness. This decision increased the number of AVR microcontroller I/O pins required by the circuit. I, therefore, decided to use an ATMega328P-PU (as used in the Arduino Uno) rather than an ATTiny85. Whilst I was at it I also decided to reintroduce the Loop toggle switch. So, the device is now back up to it a full complement of parameters as listed below:
- Play Gate
- Play Trigger
- Playback/Record Speed
This additional functionality is not without its complications. Vactrols are somewhat hard to come by. I did, however, find an interesting thread on Muff Wiggler discussing the DIY fabrication of Vactrol’s using a 3D printer. Unfortunately, the design of this DIY Vactrol doesn’t appear to have been shared as of yet. I’m confident I should be able to create a similar Vactrol housing myself, from scratch. In order to implement control of the loop feature I’m going to need to take another loop at transistors, at least, that’s the avenue I plan to explore first.
The main image above shows part of the circuit on a breadboard along with an interface fashioned from a sheet of cardboard and copper tape. My experiments have demonstrated that the, somewhat thick, traces of the copper tape which run back to the crocodile clips can be insulated with masking tape or sticky back plastic which will allow only circuit parts of the interface to respond to touch.
The code utilises Paul Badger’s ‘Capacitive Sensor’ library for the Arduino platform. Each sensor requires a send and receive pin. Seemingly the send pins can be shared although this can lead to interference between the sensors. My design has 9 touch sensors which work well when split across 3 send pins. I found whilst prototyping that certain combinations of pins can be problematic, resulting in the sketch running extremely slowly when uploaded to the Arduino board. Some trial and error rectified this.
The prototype is progressing nicely. One thing that I’m mindful of is that I should probably spend some time writing out some user stories for the device. I have an idea of the functionality I would like the device to provide plus reasons why that functionality would be useful but this is all in my head. The project would benefit from me formalising these user stories by getting them down on paper.