Artists create aesthetic problems and solve them. When an artist creates a problem which is technical in nature, but for which no commodified solution exists, a solution must be invented. This is the realm of "making". Making often represents novel unions of sensible phenomena, information, and dynamic objects. 

making blog

Setting Up a New SVN Project on Google Code

Submitted by Ed_B on Sat, 06/12/2010 - 20:14

I've been working on a  timer/scheduler library for fairly accurate, low speed timing of function calls on the Arduino. To share the code, I got the idea to set up a Google Code repository for the project . This is new stuff for me, and was hard to figure out. I started with the unadorned project folder from my laptop. Google code projects can  use either the Mercurial or Subversion (SVN) version control systems. I chose SVN because I'd heard of it. I  did my setup from the command line in Ubuntu. Here's what I think finally worked.

I2C Sniffer

Submitted by rdrink on Fri, 05/28/2010 - 12:00

This page has some like plans for using an AVR to build an I2C sniffer

Interrupt Driven Timer/Scheduler -- ISR mechanism

Submitted by Ed_B on Fri, 05/21/2010 - 16:56

The proposed timer/scheduler for fairly accurate, low speed timing of function calls is based on the Wire I2C library for the Arduino. I've borrowed the entire structure of the library, including naming conventions. The parallels between my proposal and the Wire library callback structure are pretty clear by comparing this diagram to the Wire diagram posted earlier.

( Read More =>)

A possibile scheme for an interrupt-driven software timer

Submitted by Ed_B on Sat, 05/15/2010 - 17:26

All the discussion about interrupts in the AVR and Arduino got me to thinking about how to set up a small handfull of software timers that could do fairly accurate, low-speed timing of function calls. As long as the function calls were brief, you should be able to schedule their activataion on a timed basis. Flowcharts to the rescue! Here's a plan for one channel of a multi-channel interrupt-driven timer I'd like to flesh out and try in an AVR. (read more)

Back from Outer Space

Submitted by Ed_B on Sat, 05/08/2010 - 21:19

Danny Bertner's robot-head work in progress sings along.


 The jaw is moved by a model servo. The control signal comes from a special track on the audio recording. It's karoke in reverse. To make the control track, we took the tracks on the original song and rearrnged them with Garage Band. The right channel contains the combined left and right channels of the original stereo recording. The left channel contains Danny singing an acapella accopaniment to the original song. The two tracks are locked together becase they're  part of the same MP3. This complexity was necessary because the instrumentals could not be sufficiently separated from the vocals to give a usable sound envelope for controlling the motor. In this method Danny is directly controlling the motion of the robot mouth with the strength of his own voice. An envelope follower circuit tracks the loudness of Danny's voice and produces a control voltage fed into an Arduino. The Arduino uses the control voltage to move the servo which moves the robot's jaw mechanism. (more details => )


Submitted by Ed_B on Fri, 04/23/2010 - 20:32

Multitaskng gives the appearence of doing more than one thing at a time, when you're really switching between tasks as fast as you  can. When computeres do this it's usually under the control of an operating system. With microcontrollers, its usually done by writing a bunch of small functions that do unrelated jobs, then firing those functions off based on external events that arrive through interrupts, or by lining all the functions up and firing them off, in sequence, by a master timer. In an exterme case it's possible to have a program with an empty main loop that's busy doing lots of stuff. Two ideas often come into play to do this. Interrupts and call backs. To start an exploration of event driven programming, I'm using the Arduino's Wire library. I've maped out the event handling and generating calls to study. 


QTouch / Qprox with SurfBoard

Submitted by Ed_B on Fri, 04/16/2010 - 11:43

This is a QT113B QTouch / Qprox proximity detector in an 8-pin soic package soldered onto a SurfBoard. A student is building an interactive light object, and this sensor board is for first-round experiments. The circuit is straight from the Atmel datasheet for the part.

Joe the Plumber

Submitted by Ed_B on Thu, 04/15/2010 - 16:37

When I was a kid, people would give me old radios to "play" with. At that time, old radios had usable (or at least cool-looking) parts in them. That made them worth "recycling".  As a grade-schooler, I  never ran across any books that explained how radios worked in a way that was simple enough for me to understand, but that didn't stop me from spending lots of hours staring into circuits, trying to devine something of their inner nature. That exercise was as fruitless as it was naive.

Sparkfun RGB module part 2

Submitted by Ed_B on Sun, 04/04/2010 - 23:52

The ATmega168PA has 16K Bytes of program memory and 1K Bytes of SRAM.
The ATmega328P has 32K Bytes of program memory and 2K Bytes of SRAM.
Using SRAM to hold a bunch of constant (unchanging) data like large arrays or strings is wasteful. This program uses flash program memory to store constant data arrays. The program uses special data types to read bytes from progmem.

Sparkfun RGB module part 1

Submitted by Ed_B on Sun, 04/04/2010 - 22:59

 This is a Sparkfun RGB LED display. It has a "backpack" with a cascadable SPI input. Xin Wang is using it in a piece and asked me to have a look.


 Xin's piece will use a number of graphical symbols that will be displayed based on a set of sensor inputs. Coordinated with sensing and display, there will also be dynamic electro-mechanical components.

Syndicate content