Monday, October 05, 2009

Video Controlled by Midi

Short video clips controlled using midi from a MPC 500 which provides the drum samples; all other audio is from video clips. A single video clip is triggered when its defined midi note is received.

Video:

Tuesday, September 22, 2009

Felix's Machines

Felix's Machines by artist Felix Thorn & filmed by Tom Swindell.

Film:
felixsmachines.com

Thursday, September 17, 2009

VPT - Video Projection Tool by HC Giljes

Test of video software used for projecting on different planes. The software is used to distort individual video clips to the desired plane to be projected on.

Three video clips on two walls and ceiling:
Video:


VPT v4.0 by HC Giljes

Tuesday, June 23, 2009

Highly Liquid: MD24 Midi Decoder

Interface similar to Arduino, but controlled using MIDI notes, programs, etc. The MD24 has 24-5V digital out pins that are triggered by MIDI messages, ie: a note. When a midi note is played the corresponding digital out pin is activated for that note's length. This interface doesn't require a computer to translate MIDI messages, which makes it simpler to control motor, solenoids, etc, than Arduino and a MAX/MSP patch.


Highly Liquid: MIDI Decoder MD24

Saturday, June 20, 2009

Clyde Drumbot Test 2

Quick test using multiple lever systems activated by pull type solenoids. Midi data is recorded in Garageband and sent via a MAX/MSP patch (by Ali Momeni) to Arduino which triggers each of the solenoids. The basswood levers hit a small bass drum, a tom, and a tin can case.

Crude Clyde:


In action:

Tuesday, June 16, 2009

Solenoid with 12" lever

Solenoid with 12" lever. Solenoid pulls lever downward causing mallet to strike drum surface.

Wireframe Perspective:

Perspective:

Sideview:

Frontview:

Thursday, June 11, 2009

Clyde Drumbot Test

Quick test using a simple lever system activated by a pull type solenoid. Midi data is recorded in Garageband and sent via a MAX/MSP patch (by Ali Momeni) to Arduino which triggers the solenoid. The basswood lever hits a small bass drum.

Tuesday, May 12, 2009

Arduino + MIDI - Ali Momeni

An easy way to control Arduino's digital outs with MIDI by using a MAX/MSP patch. When a MIDI note is triggered it activates the corresponding Arduino digital out. The intent is to use MIDI and Arduino to control various motors, leds, etc. MIDI allows for the recording of sequences (with audio software and/or hardware) which can be composed and replayed as desired.

Demonstration video by Ali Momeni:


MIDI to Arduino - Ali Momeni
Arduino.cc

Tuesday, April 21, 2009

Photosounder

'Photosounder is a one-of-a-kind image-sound editing program. It is unique in that it opens images and sounds indiscriminately, treats and processes them as images, and synthesizes them as sounds.' ~Photosounder.com

Original Audio file as Image played through Photosounder.


Video:



Altered Image file with Photoshop ripple filter re-imported into Photosounder.


Video:


Photosounder.com

Tuesday, March 03, 2009

Accordion Automation by Carl Drohomereski

Arduino controlled accordion.



More Info:
Carl Drohomereski

Sunday, December 14, 2008

RedTed8 - Light Controlled Audio Chopper

~"RedTed8" - Light controlled sound chopper.
~"RedTed8", Moogerfooger ring modulator, and Arduino.

"RedTed8" is eight LEDs controlled and sequenced (on/off) by Arduino. Each LED is coupled with a photocell; when a LED is active the photocell receives light reducing its electrical resistance allowing the audio to pass through. A flashing LED and photocell cause the audio signal to be cut on and off at a given rate.

Audio sample using a Yamaha Portasound PS-3.
RedTed Number One.mp3

Monday, December 01, 2008

Atari Punk Console with two 555s

~Atari Punk Console with two 555s, Simon Pribec.
~Stepped Tone Generator - AKA Atari Punk Console, Rob the Fiddler


~Atari Punk Console, maomakmaa

Thursday, November 27, 2008

Arduino Controller

Schematic drawing of eight Arduino controlled relay circuits. Each relay will act as a 'on/off' switch and is triggered by one of Arduino's digital pins. The circuits will use pin/socket connection points so that various different devices can be connected and triggered. A 'relay switch' could simply turn something on/off or act as a switch within a circuit or device altering the way it functions. Anywhere there is a switch or could be a switch a relay is placed so that Arduino is in control.

Code will be used to create delay sequences and patterns determining when each device is turned on/off or altered. Other inputs, ie: potentiometers, switches, photocells, and piezo disks, etc., could act as variables which alter the delay time frame within the sequences and patterns.

Parts:
Arduino
5V relay x 8
Pin/socket connectors
Wire
Breadboard
Potentiometers, photocells, switches, etc. (if required)

Wednesday, November 26, 2008

FM3 - Buddha Machine II

~FM3 - Buddha Machine II

Generative looping sound device.

Approx. $30 CAD from Juno Records - Buddha Machine II

Info + Loop Samples:
FM3 - Buddha Machine II

Friday, November 14, 2008

Light Sequencer Proto

All four optical theremin circuits, LEDs, and Arduino.



Playing with the rate control.

Samples:
Fourtimebeats.mp3
Fourtimes.mp3

Thursday, October 30, 2008

Light Sequencer Code

Tuesday, October 28, 2008

Light Sequencer Testing

Mess of wires First test - using arduino, one optical theremin circuit, and one LED. Potentiometers are used to control the rate of the flashing light, the tone, the pitch, and volume.



Sample:
Lightbeats.mp3

Wednesday, October 22, 2008

Arduino Light Sequencer Part III

Potential layout for control interface.
Time: each potentiometer controls a delay variable for the flashing LED. Brightness: each potentiometer controls the brightness level of the corresponding LED. LED: 4 LEDs used to display the brightness and timing of the corresponding internal LED. Switch: used to trigger 1 of 4 code loops or other definable code presets. Volume: each potentiometer controls the volume level for the corresponding optical theremin circuit. Tone: each potentiometer increases or decreases the pitch relative to the light input of the optical theremin circuit. Volume: one potentiometer to control the overall volume of the mixed audio output. On/off: switch to turn off power to optical theremin circuits, etc. Audio output: (4) 1/4" mono jack one for each of the optical theremin circuits. Output: (1) 1/4" mono jack for mixed audio output. Other input/output: USB for powering and altering Arduino code, reset button for Arduino, power jack?, and etc?.

Simple mixer circuit for mixing audio output from each optical theremin circuit.
ePanorama.net: Simple two line output combiner

Ujino + the Rotators

The Rotators - The Savage's Plastic Ikebana


The Rotators f. FRG - Plywood City


Ujino Muneteru - Japanese sound/sculpture/performance artist
"Tokyo based Muneteru produces work informed by the urban experience, domesticity fused with club and dance music, the interpretation of musical histories, technological capabilities and the sophisticated transformation of domestic and popular ready-made objects into hybrid musical instruments.

Muneteru's practice is concerned with adaptations of language - musical, written and spoken, and the common connection established through a 'lost in translation' experience of dance culture. Controlling the performance from a platform of turntables, switch panels and instruments made from found recycled articles including a blender, hair-dryer, electric drill, food processor and bicycle, Muneteru's sounds trigger responses from the vehicle, which flashes in time with the variable beats.

As artist-in-residence at the Wooloomooloo Gunnery, Muneteru will spend several weeks scouring the op-shops and side streets of Sydney in search of the 'hard waste' that will be transformed into his musical instruments. Like a traffic inspired techno score, the presentation of Ujino and the Rotators is a captivating delivery of contemporary performance, and a reminder that performance art has mutated into the 21st century with sophistication and vigor." ~the-rotators.com

~Rotatorhead, Ujino Muneteru, 2005.

~Platform for the Rotators (Trinity), Ujino Muneteru, 2004.

Ujino Muneteru | The Rotators

Friday, October 10, 2008

Arduino Light Sequencer Part II

Crude wiring setup: Test #1 using four LEDs and one optical theremin circuit. Timing and length of tone determined by Arduino code.
Sample of code: varying the numbers in the 'delay' command determines the length of each tone.

Sound clip:
Test #1

Thursday, October 09, 2008

Arduino Light Sequencer Project

Use Arduino + code to control the rate and sequence at which four LEDs flash. Two switches are used to trigger two or more sets of sequences. Each LED will be coupled with the photocell of a simple optical theremin circuit. Each optical theremin circuit will transfer sound output to a channel on the mixer via 1/4" mono jack.

The intent is to create a simple sound sequencer that can be arranged using code + Arduino; which will form a foundation for further experimentation.

Sample code + tutorials:
Arduino Tutorial - Knight Rider
Arduino Tutorial - Pushbutton

References:
Arduino
RS Optical Theremin Circuit

Parts:
Arduino
RS Optical Theremin Circuit x 4
Wire
Breadbroad
On/off switch x 2
LED x 4
220 Resistor x 4
1K Resistor x 2
1/4" mono jack male x 4

Tuesday, September 30, 2008

The Art of Noises - Luigi Russolo

~Photo of Russolo, Ugo Piatti and their “noise intoners” (intonarumori), Milan circa 1920.
"Conclusions

Futurist musicians must continually enlarge and enrich the field of sounds. This corresponds to a need in our sensibility. We note, in fact, in the composers of genius, a tendency towards the most complicated dissonances. As these move further and further away from pure sound, they almost achieve noise-sound. This need and this tendency cannot be satisfied except by the adding and the substitution of noises for sounds.

Futurist musicians must substitute for the limited variety of tones posessed by orchestral instruments today the infinite variety of tones of noises, reproduced with appropriate mechanisms.

The musician’s sensibility, liberated from facile and traditional Rhythm, must find in noises the means of extension and renewal, given that every noise offers the union of the most diverse rhythms apart from the predominant one.

Since every noise contains a predominant general tone in its irregular vibrations it will be easy to obtain in the construction of instruments which imitate them a sufficiently extended variety of tones, semitones, and quarter-tones. This variety of tones will not remove the characteristic tone from each noise, but will amplify only its texture or extension.

The practical difficulties in constructing these instruments are not serious. Once the mechanical principle which produces the noise has been found, its tone can be changed by following the same general laws of acoustics. If the instrument is to have a rotating movement, for instance, we will increase or decrease the speed, whereas if it is to not have rotating movement the noise-producing parts will vary in size and tautness.

The new orchestra will achieve the most complex and novel aural emotions not by incorporating a succession of life-imitating noises but by manipulating fantastic juxtapositions of these varied tones and rhythms. Therefore an instrument will have to offer the possibility of tone changes and varying degrees of amplification.

The variety of noises is infinite. If today, when we have perhaps a thousand different machines, we can distinguish a thousand different noises, tomorrow, as new machines multiply, we will be able to distinguish ten, twenty, or thirty thousand different noises, not merely in a simply imitative way, but to combine them according to our imagination.

We therefore invite young musicians of talent to conduct a sustained observation of all noises, in order to understand the various rhythms of which they are composed, their principal and secondary tones. By comparing the various tones of noises with those of sounds, they will be convinced of the extent to which the former exceed the latter. This will afford not only an understanding, but also a taste and passion for noises. After being conquered by Futurist eyes our multiplied sensibilities will at last hear with Futurist ears. In this way the motors and machines of our industrial cities will one day be consciously attuned, so that every factory will be transformed into an intoxicating orchestra of noises." ~Luigi Russolo - The Art of Noises
The Art of Noises - Luigi Russolo
Futurism: Manifestos and Other Resources - unknown.nu/futurism
Luigi Russolo on 'Musica Futurista' - Amazon.ca

Monday, September 29, 2008

P22 Music Text Composition Generator

"The P22 Music Composition Font was proposed in 1997 to the John Cage Trust as an accompaniment to the John Cage text font based on the handwriting of the composer. The idea was basic and simple-every letter of the alphabet was assigned to a note on a scale. This would allow for any text to be converted into musical notation." ~ P22.com/musicfont
P22 Music Text Composition Generator
mayorBee! midi sample

Wednesday, September 24, 2008

Tiction from Tink Thank


tiction - early prototype 1 from Hans Kuder on Vimeo.

Tiction is a flexible, nodal music sequencer.
"It’s pretty simple: Each node represents an event, and a connection from one node to the next triggers the next event after a certain number of tics. Nodes send MIDI note messages and/or MIDI controller change messages when triggered. Connecting nodes in a circuit lets you start a repeating pattern when one of the nodes is triggered.

A node can change its pitch and controller values based on its position on the screen. When a node is triggered, it performs some physical action: either repelling or attracting other nearby nodes, or nudging itself in a random direction. The physical interaction between nodes allows you to construct complex, rhythmic melodies and effects without having to draw filter envelopes or touch a traditional sequencer"
~Tink Thank
Tiction - Tink Thank

Thursday, September 18, 2008

Pauline Oliveros @ Open Space

Pauline Oliveros - Photo by Pietr Kers
"As a musician, I am interested in the sensual nature of sound, its power of synchronization, coordination, release and change. Hearing represents the primary sense organ - hearing happens involuntarily. Listening is a voluntary process that through training and experience produces culture. All cultures develop through ways of listening.
Deep Listening® is listening in every possible way to everything possible to hear no matter what you are doing. Such intense listening includes the sounds of daily life, of nature, or one's own thoughts as well as musical sounds. Deep Listening represents a heightened state of awareness and connects to all that there is. As a composer I make my music through Deep Listening." ~Pauline Oliveros
Open Space: Pauline Oliveros
PaulineOliveros.us
Deeplistening.org

Thursday, September 11, 2008

Sooper Looper - Live Looping Sampler

"SooperLooper is a live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more. It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory."

SooperLooper

"Jack (the Jack Audio Connection Kit) is a low-latency audio server, written originally for the GNU/Linux operating system, and now with Mac OS X support. It can connect any number of different applications to a single hardware audio device; it also allows applications to send and receive audio to and from each other."

Jackosx.com

A quick sample created using Sooper Looper + a guitar:
Loop1

Monday, September 08, 2008

Hank + Lily - Xanadu



"...we can build a better life... modern world... age old strife...a better life..."

Final Fantasy! - Owen Pallett



Amazing! Looping violin, looping keyboards, looping!
Directed by Stephanie Comilang and Jamie Shannon

finalfantasy
finalfantasy: myspace

Photo ("urban irony") by Life in a Lens from the Torontoist Flickr Pool.

And a story...

"No hope for the village, no hope for the village
There's a merchant in our midst and with a barrel fist
He's coloured every surface, he's slapped up a portrait
And yes, it is his own! He's gonna take your home!
Have you seen our visitor? Look! Over the treetops!
Newly conjured erections are making him a killing
And Richmond St. is illing, so the graduates are willing
To buy in to the pillage, now there is no hope for the village

Prisoners, be silent, be silent and be sharp

When he was a young man, he conjured up a firemare
And burnt off both his eyebrows and half a head of hair
And then as an apprentice, he took a Drowish mistress
Who bestowed upon his youthfulness a sense of Champagne Chic
Oh seduction, his seduction to the world of construction
Now his mind will start to wander when he's not at his computer
Now his massive genitals refuse to co-operate
And no amount of therapy can hope to save his marriage

Prisoners, be silent, be silent and be sharp
Can you hear them talking? Listen through the wall:

Nothing to do, nothing to do
Living rent-free is boring me
Got no use for my PE Degree
Got no use for my pedigree

I feed you every morning and ask so little
Hedi Slimane
But you belittle all the work that I do
And Agnes B
When you take that walk without permission
I'm not content
I'm not defensive, I'm just saying this cause I love you
I'm not content
You know I hate it when your friends are in the pool
Donna Karan
Old money stinks, send those faggots back to Forest Hill
And Kara Saun
Contentment? What contentment? I am bald and impotent
I'm not content
Is that what it's about? Oh honey, honey, shut your mouth
I'm not content"
~FInal Fantasy - Owen Pallett = 'This lamb sells condos'

Article - Torontoist - This Sells Condos and Poos Clouds
Interview -Torontoist with Brad J. Lamb

Caleb Coppock's Graphite Sequencer (2006)


Interesting project using discs with graphite to create patterns, pulses, beats, and tones.

For Video + Audio see
Caleb Coppock: Graphite Sequencer (2006)

Sunday, April 22, 2007

Institute: Programme

PROGRAMME - Movement is a defining aspect of Point Douglas; the train bisects the area, water defines its three sides, and the Disraeli bridge creates further disconnection form the rest of downtown. At another level, good and materials are collected, stored, and moved from place to place, while subtle changes are caused by weather and climate. The institute stems from an interest in how movement is continually redefining the site, surrounding areas in Point Douglas, and Winnipeg as a greater whole.

The institute will observe various forms of movement occurring throughout Point Douglas representing them through drawing and architecture. The primary intent is that the institute will act as long term recording device, layering data onto a surface. This data is received and recorded from movements in the surrounding areas and is amplified by light and sound-creating mechanisms. The light is projected through drawing surface and onto the upper portions of the spherical space. This portion contains light sensors which respond as the surface shifts and rotates, causing a variety of tones to be produced. The rhythm of this sound depends upon the movement and the contrast of light and shadow; caused by the markings left of the surface. The changes in the data effects the sound being produced; theoretically a single composition is never heard twice. The institute continues to create sound, project light, and record constantly until their is nothing left to record or it is not needed.

SCANNING THE SKY - Sensors scan the sky waiting for movement, changes in color, weather, + light qualities; small portions are analyzed and are broke down into patterns of light + dark. This data is collected, compared, + used to manipulate the shifting surface; depending on the level of change.
FORCES + VIBRATION - Sensors record the force exerted by passing trains at both end of the Annabella bridge; the data from each side is compared + used to to determine the rotation of the drawing surface. Similar sensors are placed throughout Point Douglas recording changes related to force + vibration; the Red River, the Disraeli bridge, etc.
Plan of Institute
Section AA
Section BB
South Elevation

Drawing Machine (recording movement throughout Point Douglas)


Close up of drawing surface + track system.

The track system.

A collection of images showing the movement of the device. The amount of data being sensed determines where the pen will draw; if the vaule is low it will be near the center (higher values are recorded on the outter portions).

Sunday, April 08, 2007

Prototypes

I constructed two versions of the device; one made out of hardboard w/pendulum mechanism for rotation and another made with acrylic w/motor for rotation. The hardboard version was relatively unsuccessful, in that the material caused too much friction and flexibility. The pendulum motion could not overcome the friction caused by the drawing point. In the acrylic version the friction was greatly reduced + the motor allowed the device to overcome the friction caused by the drawing point. A problem common to both is that the ink drawing point dries too fast. I've tried removing the inner part of the pens; the inner part is wrapped inked soaked fabric. This fabric easily leaves marked on the acrylic (see the acrylic version). The lines are wide and need to be controlled. I'm going to look for a more suitable solution such as a calligraphy pen, etc.

This image is of the hardboard version of the device; the armature was moved by hand to stimulate the drawing process. Pendulum motion and track system was not successful in overcoming friction.
Detail image of hardboard track + gears.
This is the acrylic version; the armature was able to rotate around the surface with the aid of a DC motor. The parts reduce the friction making the track system functional.
Detail of the acrylic track + gears; the ink lines are wide.

Thursday, March 29, 2007

Institute: sound+vibration

Here is a section, in progress, showing a central sphere structure with etching surface within. The color lines trace the shifting movement of the surface; these lines are the limits of the projected light onto the above dome.

Wednesday, March 21, 2007

Site Context

Site: Point Douglas - Adjacent to Watkins building + rail-line. The surrounding radius is the area of focus where vibrations will be recorded + re-introduced into the environment. Primary interests include; Able Wholesale building, railway @ Annabella, + Disraeli freeway.
Institute - located along the westside of the Watkins building, mainly underground + hidden.

Tuesday, March 20, 2007

Site: Watkins building

Southwest corner of Watkins building. The institution is located at and below ground level next to the Watkins building and rail-line. This location facilitates the institute's function: recording (physical changes + vibrations on surrounding environment) + producing other vibrations in the forms of sound and movement. Immediately north are three rail-lines with regularly passing trains; to the southeast is the partially collapsed Able warehouse. This institute will collect information about changes occurring within + above the soil surface; ie: passing forces/movements on the surface, decaying/collapsing architecture, etc. The intent is to use the building to display (record visually) + amplify vibrations occurring in the surrounding area.

West wall of the Watkins building; near rail-line.
East wall of the Watkins building; facing north.
Relationship of Watkins building to Able warehouse.
West wall of Able Wholesale; loose + fallen debris.
North wall of Able Wholesale; partially collapsed facade.
North wall detail of Able Wholesale; debris.
Northwest corner of Able Wholesale; missing walls.

Sunday, March 18, 2007

Revisit: Schillinger's Solution, 1931

"I propose to develop, with the aid of the theremin, projects for various machines for the automatic composition of music. L.S. Theremin considers such machines entirely feasible.... Under such conditions, musical works can be broadcast over the radio at the same time that they are being composed by the machine. The final aim of this work is to construct a synthetic machine capable of works of a higher order and with a greater degree of perfection than is accessible to living composers. The machine will be given only a general physico-mathematical idea, and the execution will proceed automatically." 'The Ether Wave Salon', pg. 134-135, "Theremin: Ether, Music, and Espionage" - Glinsky, 2000. (Image also from Glinsky, 2000)

Schillinger proposes a device capable of composing music, these machines will produce beat, rhythm, tone, pitch, etc. on their own (with the help of an operator, "music engineer"). He saw the work of Theremin as the beginning of the "...second half of the history of music." Schillinger desired a shift from traditional towards a new age of electronic instruments, these ideas, most likely, stemmed from his believe that, "...in an age of technology, art forms should be engineered and executed with the same scientific rigor and formulas as the building of bridges or skyscrapers -- taking advantage of the latest scientific tools." pg. 131, Glinsky, 2000.

Continuing with this, I propose a space which will record vibrations (from soil movements, traffic, erosion, decay, etc.) by translating sensor data into movement. This data will guide/determine the markings/etchings left on a coated transparent surface. As the device continues to record, the coating will be further etched away; this will allow light to be projected through. These 'lines of light' will produce a pattern/rhythm that can be 'played' while the device etches (using similiar technology to the optical theremin). The result is a continually changing + sound creating drawing surface. The sounds could potentially be given back to the surrounding environment; audible or as vibrations.

The etching is adapted from Balint Bolygo technique using carbon coated glass which is etched with pendulum guided point. Here is an example of his work, 'Lissajous Light Drawings':

Wednesday, March 07, 2007

Scriptographer - Growth script

Scriptographer works with Adobe Illustrator and allows the user to develop and use new tools for repetitive creation. Here is an example of the 'Growth' script:

The original line drawn:The resulting form with a growth rate of 0.95:The center portion of the form:
Download Scriptographer: Scriptographer PC + OSX

Balint Bolygo - Polycycle 2

"Polycycle 2 is installed onto large glass surfaces, and will draw or etch a slowly accumulat -ing rhythm of patterns over the duration of the show. The piece explores the nature of mark making onto a transparent/semi-opaque surface. The size of the mechanism is variable and thus can be adapted to suit a specific space or site. The resulting images explore the dialectic relationship between opposites and reversals and embody the fundamental nature of forces that brought it into existence." ~ BalintBolygo.com


Balint Bolygo's Work + Film: Balint Bolygo

Adaptive Machines/Bricks

"Self-replicating, Self-sustaining and Adaptive Machines - CCSL

A potentially new way to build adaptive spaces out of generic robotic forms. Seemingly simple although no doubt devilishly complicated to develop, graceful in their movements and strangely cute considering their sandy brown color. With half a tongue in cheek, I imagine these little robots being the bricks and mortar of the interactive architecture world." ~ Interactive Architecture


Video link: CCSL Adaptive Mac
Website: CCSL - Cornell Computational Synthesis Lab

Tuesday, March 06, 2007

Drawing devices + surface

Here are some more graphite/clay forms created by moulding and then hand-sanding dried forms.
This image shows the graphite forms attached to the 12V DC motors.
These images are of the shifting drawing surface w/attached device, which tilts using a powered car mirror mount.
The last image is of the drawing/markings create by the device on the tilting surface. Unfortunately a lack of support for the device + lack of voltage made it difficult for the motor to overcome the friction of the surface. This left the markings limited.

H-Bridge Board + Arduino

Completed H-Bridge board with major components attached + connection wires for Arduino. This board allows for two motors + four inputs slots (for sensors, switches, etc.) to be create with Arduino. Arduino is now able to control the direction of two motors as well as have four inputs (if necessary) to detect + control. The following are two sets of code; one used to control the drawing surface + the other to control the drawing device.

Controlling the Drawing Surface:

/* Controlling Two DC Motors Using H-Bridge + PhotoCells
* ------------
*
* Uses an H-Bridge (L293E or SN754410) to control the direction of two DC motors.
* Additional DC motor added. Photocells used to control direction of each motor.
* Modification to Physical Computing tutorial:
* http://itp.nyu.edu/physcomp/Labs/DCMotorControl
*
* Modified 28 February 2007
* By Kyle Janzen
* http://kylejanzen.blogspot.com/
*
* based on an original by Physical Computing @ ITP
*/

int photo1Pin = 1; // select analog input pin for photocell1
int photo2Pin = 2; // select analog input pin for photocell2
int val1 = 0; // variable to store the value coming from photocell1
int val2 = 0; // variable to store the value coming from photocell2
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int motor3Pin = 5; // H-bridge leg 3
int motor4Pin = 6; // H-bridge leg 4
int speed1Pin = 9; // H-bridge enable pin 1-2
int speed2Pin = 10; // H-bridge enable pin 3-4

void setup()
{

// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(motor3Pin, OUTPUT);
pinMode(motor4Pin, OUTPUT);
pinMode(speed1Pin, OUTPUT);
pinMode(speed2Pin, OUTPUT);

// set speedPin high so that motor can turn on:
digitalWrite(speed1Pin, HIGH);
digitalWrite(speed2Pin, HIGH);

}

void loop()
{
val1 = analogRead(photo1Pin); // set val1 to equal reading of photo1Pin
val2 = analogRead(photo2Pin); // set val2 to equal reading of photo2Pin
if (val1 < 280) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
delay(val2*5); // determines time interval that motor is activate
digitalWrite(motor3Pin, HIGH); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(val2*6); // determines time interval that motor is activate
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge high
delay(val2*5); // determines time interval that motor is activate
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-bridge low
digitalWrite(motor4Pin, HIGH); // set leg 4 of the H-bridge high
delay(val2*6); // determines time interval that motor is activate
}else if (val1 > 350){
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
delay(val2*2); // determines time interval that motor is activate
digitalWrite(motor3Pin, HIGH); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(val2*2); // determines time interval that motor is activate
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge low
delay(val2*2); // determines time interval that motor is activate
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-bridge low
digitalWrite(motor4Pin, HIGH); // set leg 4 of the H-bridge high
delay(val2*2); // determines time interval that motor is activate
}else{
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-bridge low
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(val2*5); // determines time interval that motor is deactivate
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-bridge low
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(val2*6); // determines time interval that motor is deactivate
}
}

Controlling the Drawing Device:

/* Controlling the Speed of a DC Motor Using H-Bridge + PhotoCell
* ------------
*
* Uses an H-Bridge (L293E or SN754410) to control the speed of a DC motors.
* Photocells used to control the speed of the motor. Analog PWM (pins 9-11) creates
* pulse for motor speed, which is controlled by photocell input.
* Modification to Physical Computing tutorial:
* http://itp.nyu.edu/physcomp/Labs/DCMotorControl
*
* Modified 3 March 2007
* By Kyle Janzendf
* http://kylejanzen.blogspot.com/
*
* based on an original by Physical Computing @ ITP
*/

int photo1Pin = 1; // select analog input pin for photocell1
int val1 = 0; // variable to store the value coming from photocell1
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int speed1Pin = 9; // H-bridge enable pin 1-2


void setup()
{

// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(speed1Pin, OUTPUT);

// set speedPin high so that motor can turn on:
analogWrite(speed1Pin, HIGH);

}

void loop()
{
val1 = analogRead(photo1Pin); // set val1 to equal reading from photocell
if (val1 < 475) { // stops motor is reading is less than #
digitalWrite(motor1Pin, LOW); // set motor1pin low
digitalWrite(motor2Pin, LOW); // set motor2pin low
}else{
digitalWrite(motor1Pin, HIGH); // set motor1pin high
digitalWrite(motor2Pin, LOW); // set motor2pin low
analogWrite(speed1Pin, val1/10 ); // determines speed of motor using analog PWM
}
}

H-Bridge PCBoard

PCBoard Process using LaserJet Toner Method found at: Printed Circuit Boards for the Masses. The first step is to create a schematic of the circuit to be printed; this image is then printed on glossy paper with laser printer. The printed image/toner is then transferred to the clean copper board with a hot iron; after this the copper + paper are placed in a hot water bath to soak. Once paper start to soften (10-30 mins) it is removed leaving behind the laser ink toner (some traces of paper may have to be removed). When the paper is removed the copper board is placed in an acid bath; occasionally agitating the fluid + checking the board. After 30+ mins, all of the undercovered copper dissolves leaving behind the circuit. The last step to is clean the remaing copper traces with acetone to remove any paper + ink. At that remains is drilling the holes. Finish. Another option for touching up the ink toner or drawing the circuit is to use a permanent marker to create/fix traces. (Please refer to the link above for a detailed description).

Here is a few images of the soaking process:

Paper surfaces

By using Rhino + lofting I was able to create 3D paper surfaces w/templates for lasercut support structures. The curved surface created in Rhino was 'unrolled', plotted then cut + scored. The paper was then attached to the laser cut structure. the intent was to develop a complex surface for the drawing devices to move + make markings. The following are images of the templates + realized surface.

Saturday, February 24, 2007

H-Bridge PCBoard + Arduino Code

PCB layout for connecting the H-bridge to Arduino w/four input slots (for photocells, resistors, switches, etc.) The L293E (SN754410) is placed in center with traces for connecting to Arduino, the two motors, 4 photocells, resistors, capacitor, etc. The four inputs allow for a variety of sensors and/or switches to be on one board which can be used as inputs for Arduino.

The following is a revised version of Arduino code, which allows two photocells to control the direction each motor is rotating. The motors will rotate in one direction if exposed to light + another if the light level is reduced. Changes to the threshold amount determines how sensitive the sensors react.

/* Controlling Two DC Motors Using H-Bridge + PhotoCell
* ------------
*
* Uses an H-Bridge (L293E or SN754410) to control the direction of two DC motors.
* Additional DC motor added. Photocells used to control direction of each motor.
* Modification to Physical Computing tutorial:
* http://itp.nyu.edu/physcomp/Labs/DCMotorControl
*
* Modified 23 February 2007
* By Kyle Janzen
* http://kylejanzen.blogspot.com/
*
* based on an original by Physical Computing @ ITP
*/

int photo1Pin = 1; // select analog input pin for photocell1
int photo2Pin = 2; // select analog input pin for photocell2
int val1 = 0; // variable to store the value coming from photocell1
int val2 = 0; // variable to store the value coming from photocell2
int threshold1 = 410; // threshold1: adjust to light conditions
int threshold2 = 250; // threshold2: adjust to light conditions
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int motor3Pin = 5; // H-bridge leg 3
int motor4Pin = 6; // H-bridge leg 4
int speed1Pin = 9; // H-bridge enable pin 1-2
int speed2Pin = 10; // H-bridge enable pin 3-4

void setup()
{

// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(motor3Pin, OUTPUT);
pinMode(motor4Pin, OUTPUT);
pinMode(speed1Pin, OUTPUT);
pinMode(speed2Pin, OUTPUT);

// set speedPin high so that motor can turn on:
digitalWrite(speed1Pin, HIGH);
digitalWrite(speed2Pin, HIGH);

}

void loop()
{
val1 = analogRead(photo1Pin); // set val1 to equal reading of photo1Pin
if (val1 >= threshold1) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
}else{
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
}
val2 = analogRead(photo2Pin); // set val2 to equal reading of photo2Pin
if (val2 >= threshold2) {
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-birdge low
digitalWrite(motor4Pin, HIGH); // set leg 4 of the H-bridge high
}else{
digitalWrite(motor3Pin, HIGH); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
}
}

Thursday, February 22, 2007

Graphite Forms + Devices

Conical shell form attached to a 12V DC motor. The cone's base was sanded to an angle which causes the device to be off-balanced which gives a rougher, more sparatic movement. This lack of balance, in rotation, should give the device uneven wear patterns as well as complex + changing markings on the drawing surface.

Device resting upright on slanted base.
Device on side w/view into the hollow center of cone.
Device on side.
Graphite shell - approx. 1/4 of a sphere w/sanded edges + three points.

Wednesday, February 21, 2007

Controlling Two DC Motors w/Arduino

Using an H-Bridge (L293E or SN754410) + Arduino it is possible to control the direction of two DC motors. Using the Physical Computing tutorial (DC Motor Control), I've added an additional motor + delay function, which sets timed intervals for each direction. This allows the powered mirror mount to move up/down + side to side. By adjusting the delay intervals + order of code the motor begins to move in a complex way.

Here's is the modified Arduino code:

/* Controlling Two DC Motors Using H-Bridge
* ------------
*
* Uses an H-Bridge (L293E or SN754410) to control the direction of two DC motors.
* Delay functions have been added. Additional DC motor added.
* Modification to Physical Computing tutorial:
* http://itp.nyu.edu/physcomp/Labs/DCMotorControl
*
* Modified 21 February 2007
* By Kyle Janzen
* http://kylejanzen.blogspot.com/
*
* based on an original by Physical Computing @ ITP
*/

int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int motor3Pin = 5; // H-bridge leg 3
int motor4Pin = 6; // H-bridge leg 4
int speed1Pin = 9; // H-bridge enable pin 1-2
int speed2Pin = 10; // H-bridge enable pin 3-4

void setup() {

// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(motor3Pin, OUTPUT);
pinMode(motor4Pin, OUTPUT);
pinMode(speed1Pin, OUTPUT);
pinMode(speed2Pin, OUTPUT);

// set speedPin high so that motor can turn on:
digitalWrite(speed1Pin, HIGH);
digitalWrite(speed2Pin, HIGH);

}

void loop() {
{
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
digitalWrite(motor3Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(motor4Pin, HIGH); // set leg 2 of the H-bridge high
delay(5000); // set time 'on'
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(motor3Pin, HIGH); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(5000); // set time 'on'
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge low
digitalWrite(motor3Pin, HIGH); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, LOW); // set leg 4 of the H-bridge low
delay(5000); // set time 'on'
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(motor3Pin, LOW); // set leg 3 of the H-bridge high
digitalWrite(motor4Pin, HIGH); // set leg 4 of the H-bridge low
delay(5000); // set time 'on'

}
}

Video - the motion of the powered mirror mount.

Graphite Forms: rounded cone shell

I've started to place the soft graphite mixture onto objects to create shell-like forms. The test was successful, in that the dried graphite held the object form + texture and was relatively easy to remove. One problem was that the shell forms were not very strong; the test piece broke during hand-sanding. I am currently testing new forms with increased thicknesses.

Here are some images of the test piece; the inside of the form has a smooth surface.

DC Motor Control Using an H-Bridge

Here is a link to an Arduino tutorial about controlling motors using an H-Bridge chip. The H-Bridge allows the current to be alternated causing the motor to function in forward and reverse.

DC Motor Control

Monday, February 19, 2007

Drawing bot w/housing

The intent of is to allow the drawing bot to sway + erode away as it come in contact with the drawing surface. The device will be suspend + set into motion by an arduino controlled dc motor. The drawing surface will shift back and forth on another arduino controlled set of motors (from a powered car mirror). The movements caused by both the bot + surface will cause the graphite form to wear in an unpredictable manner; with continually wear, the graphite will build up upon the surface potentially activating and/or changing other circuits. Arduino will be used to take in analog data (photocells, switches, etc.) and out digital data determining forward/reverse of the motors + possible speed. The analog inputs/sensors will collect information from the site + record it in a form of drawing.

The changing environments will wear the graphite uniformly causing the device's movement to be constantly altered (effecting drawing consistency, pattern, speed, weight, etc.).

Tuesday, February 06, 2007

Monostable Timer Circuit

This circuit produces a pulse when triggered; the pulse is a given amount depending on the following equation: T = 1.1 x R1 x C1, where T is time. The circuit I am using is a slight variation to this one; the pulse is given to darlington transistor, which closes a switch until the pulse is completed. When this switch is closed another circuit is activated ie: motor, LEDs, etc. I plan to develop a switch mechanism that is activated by the movement of passing trains, traffic, and pedestrians. The switches would become the triggers for the circuit.

Parts list: 555 Timer, ULN2804 Darlington Transistor, 10 uf capacitor, 100k resistor, 27k resistor, 1k resistor, LED, dc motor, 2-9 volt batteries, and various resistors to adjust the time period. PCBoard.

PCBoard schematic:
Link: 555 Timer Circuits