May 31

Cocoa and Objective-C

In order to do further work integrating Serial, MIDI and Quartz Composer technologies, it is necessary to ‘get my hands dirty’ with some real programming; and although Processing etc. do provide excellent frameworks, being able to work with OS Xs frameworks has additional benefits. For example, there has recently been published a template for creating custom plugins for Quartz Composer (the visual technology I am most keen to develop with); perhaps it would be possible to create a Serial-In plugin for Quartz Composer; or one that allows Nodebox animations within QC.

Additionally, as any Cocoa / Objective-C application inevitably involves some C/C++ programming, this should help my understanding of these languages for use with programming Arduino / Atmega Microcontrollers

MIDI input and recording with Arduino

Arduino Forum - ‘midi in” project….

The idea that I have for my final project (post more later) involves recording MIDI either directly on Arduino or onto another storage medium with an Atmega Microcontroller of some sort. This will obviously involve quite a lot of research into how to do this best

Positioning

Where is the work positioned? Who else is looking at these ideas / technologies? How does this build on the work that I have done already eg Histories and Futures - how does it extend that work?

(More later I’m sure!)

May 31

Pocket Computer

  • Works with most SD cards, size is not limited (but MrMidi can only use the first 32MBytes of it)
  • Real MIDI files (Format 0 only) - recording and playback
  • Maximum of 255 files, they must be in the root directory of the card
  • Displays the file names - long names are supported
  • File delete is possible (it can delete any file from the root directory)
  • 256 byte input/output buffer and 8MHz clock for high performance and precise MIDI timings
  • Lyrics are displayed (when contained in MIDI file) - cool!
  • Variable speed (+/-15 steps) and transpose (+/-24) while playing a file
  • SD card bootloader - just format a SD card, copy MM.BIN onto it, insert it and switch ON!
  • MIDI channel mute for each channel
  • Menu for setting up drum channel, lyric display, repeat modes and channel mute
  • Settings are stored in non-volatile EEPROM on-chip
  • IR remote control (RC5 protocol), a Philips videorecorder remote for example. Or get a programmable remote and use code 257.

This project, which includes schematics and bootloader code may give sufficient information as to how to build a basic midi recorder

May 26

Arduino playground : EEPROM-Flash

Hidden Powers - storing data in Flash and EEPROMThere are three types of memory in the atmega8:

Flash memory: it’s a rewritable non-volatile memory. This means that its content will still be there if you turn off the power. It’s a bit like the hard disk on the arduino board. Your program is stored here. The ATmega8 on the Arduino board has 8 KB of Flash memory, with 1 KB taken up by the bootloader. This memory supports at least 10,000 writes.

RAM: it’s like the ram in your computer.its content disappears when you turn of the power but it can be read and writter really fast. The ATmega8 has 1 KB of RAM.

EEPROM: it’s an older technology to implement rewritable non-volatile memory. It’s normally used to store settings and other parametres. The ATmega8 has 512 bytes of EEPROM. This memory supports at least 100,000 writes.

May 26

This taken from the arduino forums may be useful:

let’s take the mc14067 (http://www.onsemi.com/pub/Collateral/MC14067B-D.PDF) as an example this is an 16 channel analogue multiplexer. i’ve use this a lot of times.

connect pin 24 to 5V and 12 to GND. then connect a 10K resistor from 5V to pin 15. this is powering the chip and enable the switch that lets you pick which input to read.

now connect pin 1 to analogue input 0.

now we need to tell the chip which channel we want to read. this is done by connecting 4 digital outputs to pins 10,11,14,13. By using a combination of digitalWrite commands you can set the input channel to read.

all the other 16 pins are inputs where you will connect up to 16 pots (or any analogue sensor)

the code will look like this:

	for (i=0; i <16; i++) { 
		# write i in binary on 4 output pins  
		# this selectes the input 

		val = analogRead(0) 
		# store val somewhere or send it on the serial port 
	} 

now the cool part is that if you hook up one of these to each analogue input you can have 96!!!! analogue inputs

May 24

Wood

20ft long 40ft long Width Height
Size in M 6.1 12.2 2.44 2.59
scaled @ 1:40 to CM 15.25 30.5 6.1 6.475
scaled @ 1:40 to MM 152.5 305 61 64.75

(Containers also come in 45-ft (13.7 m), 48-ft (14.6 m), and 53-ft (16.2 m) lengths)

£90 from R A Bampton; ready fri 30th March

R.A. BAMPTON LTD
Four Maries Yard, 31, Vespasian Rd, Southampton, Hampshire SO18 1AY
Tel: 02380 223937


Brass

Advanced Alloys Ltd
Unit 17, Parham Drive, Boyatt Wood Industrial Estate, Eastleigh, Hampshire SO50 4NU
Tel: 023 8061 8891
Brass & Copper

Brass - Square Cross Section
~ £10 / 3m length

1/8 or 3/16

64.75mm * 4 corners * 30 units = 7770 mm

May 24

A Block
A block; this is white beech, cut to size - exactly scaled from a standard international 20ft shipping container.

Continue reading »
May 16

The application comes in 3 parts; Containerizer, ContainerShip and ShippingLines:

Containerizer: An application for creating a shipping container and filling it with contents. To use it, simply drop files onto the application; the application will create a uniformly sized container with a unique id number on the desktop. Each container will hold up to 500K.

(Technical Overview: This is a GUI front end for a simple BASH shell script; which creates the container (a 600K Disk Image), with a unique id.)

ContainerShip: An application for loading containers onto the ship for delivery. To use it, drop a container onto the application; you will be asked for an email address for the recipient, the sender’s email address and a password, which will allow the recipient to download their container.

(Technical Overview: This application, again a GUI front end for a simple BASH shell script, sends a POST request to the web server, passing the recipient’s email address, the sender’s email address, the password and the disk image. On receipt of the data, the container is assigned to a ‘ship’; if that ship is full it is given a ‘sailing date’ and a new ship is created ready to take the next consignment of cargo.)

ShippingLines: This application is used for showing the progress of a container. To use it, drop a container onto the application; assuming the container has been loaded onto a ship, it will show the progress of the container.

(Technical Overview: A GUI front end for a simple BASH shell script, which simply opens the user’s browser to the progress page on the web server passing the name of the container. The progress page checks the current date against the sailing date for the container’s ship and works out what percentage of the journey has been completed.)

When a container reaches its destination, an email will be sent to both sender and recipient informing them of the arrival. The recipient will be able to then download the container from the system using the password set by the sender.

(Technical Overview Behind the Scenes: A timer runs an update script on the web server twice per day, checking for arrivals (ships where the journey percentage is 100%) and emailing recipient and sender with details of the transaction.)

Continue reading »
May 15

Installation and interface with web site

  1. Flash application requests list of seed (search) tags from Hackablecurator.org.uk web site
    • Web site queries database and returns tags as XML data
  2. Flash application queries Flickr via Flashr object for 9 photos that match the search criteria (Flickr website returns XML data)
  3. Flash application sends subset of Flickr XML data to Hackablecurator.org.uk web site
  4. Hackablecurator.org.uk uses the tags associated with each of the 9 photos to choose a photo
    • For each photo, each tag is compared to the tag score list in the database; if the tags exists in that database, it’s score is returned and summed with the other tags for that photo. In this way the photo with the highest score is chosen. If equal, it is random.
  5. Hackablecurator.org.uk passes the numeric id of the chosen image back to the Flash app.
  6. Additionally, at this point, the Hackablecurator.org.uk web site adds the chosen photo to it’s favourites, and leaves a comment on the chosen photo detailing the web site address and how to remove it from the system
  7. The Flash app then ‘chooses’ the photo, by sending the position number to the arduino to move the robotic arm.
  8. When the robotic arm has finished it’s movement, the arduino sends a message back to the flash app which then sends the images which haven’t been chosen off screen and enlarges the chosen image.
  9. the system then increments the starting point for the search list and begins again
Continue reading »