Week 17 - May 9th 2012 - Applications and Implications

Weekly Assignment - Plan and documents the final project

Recently I have reconsidered my choice of final project, based on ideas I have come across and skills I have acquired during the course of the Academy. My primary idea from Week 01 was a twitter-connected pen plotter, however this was designed as an exercise in using as many techniques as possible, rather perhaps than in producing a particularly useful project. Instead I have decided to try and fabricate a musical instrument - specifically a MIDI synthesiser. The aim will not be to produce an overly complicated project but one that combines simple components - such as an LCD screen, and USB connectivity - that may be of use individually to people reading this project in the future.

  • What will it do?

The aim will be to make a device that can be plugged in via USB to a computer and be recognised as a MIDI device; MIDI messages can then be sent to the device which will be interpreted and the corresponding audio generated. In addition, the device will have several buttons that can be used as triggers to send MIDI messages back to the host computer. All incoming and outgoing communications will be reported via an LCD screen.

A suitable housing for the device will be fabricated that provides a sturdy platform for use, and allows panel-mounting of all the required hardware - buttons, switches, USB socket and LCD screen.

  • Who's done what beforehand?

There are many resources that will be of use for this final project, mainly serving as examples of electronics and programming of individual components. These include the previously-discussed V-USB project which allows USB connectivity using non-USB-enabled microcontrollers; an Attiny45/85 MIDI controller which shows reporting of MIDI messages from potentiometers, and the 4bitsynth project which synthesises audio based on MIDI messages. Given the timeframe for completion, it does not make sense to try and write too much code from scratch; effort will be better spent integrating existing code from various sources.

Regarding the case, form will largely need to be based on requirements for circuitry and component space, however I recently saw a design from Adafruit for a Raspberry Pi case that uses inbuilt clips ('dragon claws') instead of tab-and-slot interfacing to hold the case together and I think this would work nicely.

  • What materials and components will be required? Where will they come from? How much will they cost?

The majority of this project will be fabricated using materials available in the fablab. Electronics will be split into small, networked boards based around ATtiny45 microcontrollers. The buttons and switches will be taken from things I have salvaged from old electronics or previous projects. I've taken the speaker out of a defunct answerphone. The LCD screen I have chosen to use is the Nokia 5110 Graphic LCD 84x48 costing £7 (also available from Sparkfun). This screen comes mounted on a PCB that includes the PCD8544 LCD driver IC, meaning it can easily be interfaced from a microcontroller. The case will be laser cut from 3mm plywood which, with the right design, should give sufficient strength.

  • What parts and systems will be made? What processes will be used?

Considering all of the techniques we have covered in the Academy, this project will cover a large number of disciplines although admittedly with an electronics bias. Fabricating the case will require 3D modelling and CNC cutting. If needed, internal mounts can be 3D printed. Producing the internal components will involve electronics design and electronic fabrication. Programming the boards will use embedded programming with inputs and outputs, connected through networking.

In terms of systems design, each individual job will be handled by an individual microcontroller One will handle USB communication, and will then transmit the parsed information over an asynchronous bus network. Individual microcontrollers will then control the LCD screen, the generation of audio and the detection of button presses/releases.

  • What tasks need to be completed? What is the schedule? How will it be evaluated?

While the project requires various separate components, they must be completed in linear sequence to allow for one to inform the next. Initially, the electronics will be prototyped to establish exact requirements for connections and components. From here, the final electronics designs can be planned. This will then allow the casing to be developed so that it is an appropriate size with all the required cutouts for panel-mounted components. These three stages will hopefully be completed over the next three weeks.

I will employ a 'spiral development' approach to this project, as the timescale for completion is limited and I don't want to be left without a device that successfully meets some of the design requirements due to aiming straight away for a complete product. The first stage will to be to build a system that connects through USB to a computer, and can receive and interpret MIDI messages. Next this will be connected to a system that takes the appropriate MIDI data and generates sound. Thirdly, another module will be added that displays the MIDI data on an LCD screen. Finally for the internals, a fourth component will be added to detect button presses and relay these to the USB-enabled hub to be transmitted back to the host computer. The casing will then be designed around these components to complete the product design. Hopefully whichever of these stages I reach, I will have established a good groundwork for future projects using these types of methods.

<<< Week 16

Week 18 >>>