BenBP physcomp final

From BenningtonWiki
Jump to: navigation, search

Final Update

I really enjoyed making this, and having the opportunity to manifest and share my interests through a physical piece. The bulk of my work for this project turned out to be in the physical construction of it, as well as finding solutions to engineering problems, which I had not anticipated. The hardest part was getting the fan mechanism to work, a process which involved lots of trial and error. It was difficult because I needed an air supply that was blown out from two points, but one of them had to be rotatable. Even once I had built a working mechanism involving two servos, one to push the switch for the fan, and one to rotate the band that wrapped around an outer cylinder of one of the airflow pipes, they were still very finicky.

Successes:

  • The piece worked consistently.
  • People were excited to play around with it, and kept doing it simply because it was fun. I am very glad that it was engaging in this way and want to explore physical computing with live insects further.
  • People asked questions about science. Whether they would have done so if I was not there promoting that aspect, I don't know, but I was happy that the interaction led to a conversation about science.
  • There was only one cricket fatality, and I wasn't thought of (by most) as a maniacal mad scientist.

Failures:

  • From a design perspective, I wish I had completely finished the construction earlier so I could test it on users (small things like putting the knobs and text on came last, so they stalled successful user testing). Some elements of the interaction did not happen easily enough. Our guests didn't notice the cricket hooked up to a recording electrode in the back for a while, and they didn't play with the controls until Robert gave them a cue. The location of the text was a distraction, and the piece might have benefited from being two separate, but complementary objects, one devoted to cricket behavior and the other to cricket neurophysiology. My insistence that the user get to watch behavior and neural activity simultaneously might not have been the best idea.
  • Although I built it and it worked well, next time I do something like this I am going to diagram it and make an extensive materials list. Making everything out of scrap wood and without compete diagrams led to a lot of redoing in the wood shop, and a lot of last minute cricket catching!

Media

Presentation

Mechanics

Video

Video - no cosmetics, no crickets

Accompanying text

The neurons in a cricket, which are the same as the neurons you have in your own body, communicate to the brain and central nervous system via electrical signals, which you can see on the screen. The pins inserted in the cricket (which was anesthetized) are recording directly from its nervous system.

Crickets avoid predators by reacting to bursts of wind, for example the thrust of a toad’s tongue. As you might know from your own experience, crickets react extremely quickly. This is because they do not depend on their brains to make these decisions. Instead, the bursts of wind are felt by small hairs on two tail-like appendages on the rear of the cricket (called cerci). These directly trigger movement of the legs, similar to the way our legs respond, before we even have time to think, to a reflex test at the doctor,

Crickets, like all insects, do not have a single central nervous system. They will react to and run away from bursts of wind even if they lose their heads, because their brains do not have any role in this type of movement. The way the cricket nervous system initiates movement in response to wind is not so different from the way our own nervous system initiates movement. Research into these behaviors in crickets and other insects is notably used to help identify treatments for stroke survivors.

Code

#include <Servo.h>		
Servo switcher;
Servo rotator;	
const int BUTTON = 7;
const int KNOB = 0;
int fanstate;
int fanpos;
boolean pressed = false;

void setup(){
	pinMode(BUTTON, INPUT);
	pinMode(KNOB, INPUT);
	switcher.attach(8);
	switcher.write(135);
	rotator.attach(9);
	rotator.write(0);
}

void loop(){
	fanstate = digitalRead(BUTTON);
	if(fanstate == HIGH && pressed != true){
		switcher.write(110);
		delay(500);
		switcher.write(135);
		delay(20);
		pressed = true;
	} 
    if(fanstate == LOW){
		pressed = false;
	}
	fanpos = analogRead(KNOB);
	fanpos = map(fanpos, 0, 1023, 0, 179);
	rotator.write(fanpos);
	delay(15);
}