Sunday, 16 August 2009

long time no blog etc etc

last 3 months have included:
finishing uni
getting a 2.1
leaving kingston
moving to islington

projects at the moment include:
Polite Publishing set up of Exquisite Pals zine and Awkward Art Campaign
Finding a goddamn job
Making more patchwork quilts
Learning to do fashion illustration properly

influences of the moment include:
Elan Zine (elanzine.blogspot.com}
Juneau Projects
Limoncello Summer Fete
Peter Land's suitcases
Bridget and Declan's baby
Chambord
Clare Revolta
Harry Pearce

Sunday, 31 May 2009

hand in is tomorrow, hoping everything will look okay when I arrive in the morning.

have some exciting ideas about what next to do with the arduino, but not going to say yet until I've got them more figured out. will be good though!

arduino on the beeb

Tuesday, 26 May 2009

tuesday, 1 day til move, 3 days til deadline

lots and lots and lots of worry.

had to buy a last minute addition, a PIR sensor from Active-robots.co.uk to go with project two, the proverb machine. the buttons were just too clumsy and wanted something a little less touchy. the PIR sensor should be really quick to connect to 5V, GND & an14 so that's good.


Sketch will be as follows,



#include
#include
#include "util.h"
#include "wave.h"

AF_Wave card;
File f;
Wavefile wave;

#define playcomplete(x) ROM_playcomplete(PSTR(x))

#define DEBOUNCE 100

#define snsr 14 //sensor connected to analogue0

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Wave test!");

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(snsr, OUTPUT);

// enable pull-up resistors on
// switch pins (analog inputs)
digitalWrite(14, HIGH);


// open memory card

randomSeed(analogRead(0));


if (!card.init_card()) {
putstring_nl("Card init. failed!"); return;
}
if (!card.open_partition()) {
putstring_nl("No partition!"); return;
}
if (!card.open_filesys()) {
putstring_nl("Couldn't open filesys"); return;
}

if (!card.open_rootdir()) {
putstring_nl("Couldn't open dir"); return;
}

putstring_nl("Files found:");
ls();
}

void ls() {
char name[13];
int ret;

card.reset_dir();
putstring_nl("Files found:");
while (1) {
ret = card.get_next_name_in_dir(name);
if (!ret) {
card.reset_dir();
return;
}
Serial.println(name);
}
}


void pulseServo(uint8_t servopin, uint16_t p) {

digitalWrite(servopin, HIGH);
delayMicroseconds(600);
while (p--) {
delayMicroseconds(4);
}
digitalWrite(servopin, LOW);
delay(18);
}

uint8_t sensorstate = 0;

void loop() {
int distsensor, i;
long time;
/*
for (i=0; i<50; i++) {
pulseServo(servo,0);
}
for (i=0; i<50; i++) {
pulseServo(servo,400);
}
return;
*/
distsensor = 0;
for (i=0; i<8; i++) {
distsensor += analogRead(0);
delay(50);
}
distsensor /= 8;

putstring("Sensor = "); Serial.println(distsensor);

if (distsensor <= 10) {
digitalWrite(snsr, HIGH);
}
if (distsensor > 10) {
digitalWrite(snsr, LOW);
sensorstate = 1;
// nobody there. one out of 200 times play one of the sounds (once every few minutes)
i = random(200);
//Serial.println(i);
if (i == 0) {
i = random(3);
if (i == 0) {
playcomplete("rise so high.WAV");
} else if (i == 1) {
playcomplete("smoothseas.WAV");
} else if (i == 2) {
playcomplete("to climb steep hills.WAV");
} else {
playcomplete("exhalted throne.WAV");
}
}
} else if ((distsensor > 30) && (distsensor < 40)) {
if (sensorstate <= 1) { // play "smoothseas"
playcomplete("smoothseas.WAV");
} else {
i = random(60); // more often
//Serial.println(i);
if (i == 0) {
i = random(3);
if (i == 0) {
playcomplete("exhalted throne.WAV");
} else if (i == 1) {
playcomplete("to climb steep hills.WAV");
} else {
playcomplete("rise so high.WAV");
}
}
}

}
}




void ROM_playcomplete(const char *romname) {
char name[13], i;
uint8_t volume;
int v2;

for (i=0; i<13; i++) {
name[i] = pgm_read_byte(&romname[i]);
}
name[12] = 0;
Serial.println(name);
playfile(name);
while (wave.isplaying) {
volume = 0;
for (i=0; i<8; i++) {
v2 = analogRead(1) - 512;
if (v2 < 0)
v2 *= -1;
if (v2 > volume)
volume = v2;
delay(5);
}

}
//putstring("vol = "); Serial.println(volume, DEC);
}



void playfile(char *name) {
f = card.open_file(name);
if (!f) {
putstring_nl(" Couldn't open file"); return;
}
if (!wave.create(f)) {
putstring_nl(" Not a valid WAV"); return;
}
// ok time to play!
wave.play();
}





hope it's right!!

i want to be her



this is such a cool use of arduino that is so simple but amazing.

Monday, 25 May 2009

woohoo

finally uploaded sketch for wave shield onto arduino, works and everything.

hooray!

The sketch looks for the switch, when it's pressed it plays the files on the sd card. well, it should anyway. It plays a set of stupid and pointless proverbs - reflecting the aluminium slapping fortune teller sculptures' beginnings.

had to change the switch to make sure project was completed in time, instead of twitter through ethernet shield, now just going for a simpler microlever switch, with paddle adaption so that it will be triggered by people inside the room, rather than outside in internet space.

would still really like to do the twitter thing, and have the sketch in a draft state to do it, but realistically not going to get it all finished with everything else like log book and drawings and setting up exhibition space by friday afternoon. The plan is to place the twitter machine in a gallery setting sometime in the autumn, maybe in the 'da girlz' exhib?

as for project one, the repetitive sound one, in need of a power amo as the one i have is far too weedy. On testing it out in the space on sunday it sounded weak and feeble and definately not annoying. Need it louder, louder, louder and much more oomphier.

speakers will need gaffa taping as the connectors are a bit wobbly, plinths to house speakers still not here, hoping that workshop guys will have done them so I can get on an paint. Threy prob won't be, but one can hope. Have rediscovered that I am the world's most impatient person ever.

Sunday, 24 May 2009

Saturn film



This is incredible, it's a film of saturn's rotation filmed from Hubble. It looks like a cartoon, almost not quite sure if it's real.