Categories
10 Sensors, Actuators and Displays Fab Academy AS220 - Providence, RI Fab Academy Providence -Year I - Student Projects

Hello Step Response FTDI

Hello Step Response

Step response board + FTDI + Capacitive sensing

My first step in building this project was to start with the basics. I milled, stuffed and programmed the hello step response board (modified to use the FTDI header by Shawn Wallace). I have a Mac and I can’t troubleshoot / develop at home with the serial header examples.

What You Will See When The Example is Working:

I am using terminal in OS X 10.4.11  – this was the terminal command I used to run the hello step response example and what it will say when it can communicate with the board and begin plotting the graph.

Anna-Kaziunas-Computer:~/Desktop/fab_runs/step annakaziunas$
python hello.step.45.py /dev/tty.usbserial-A600dVDy
finding framing ...
start plotting
0

This is the graph that is displayed:

Here is a screenshot of the charging graph that is produced by Neil’s hello.step.45.py code.   This initial charging graph shows the capacitor charging up.

hello 44

Here is the Capacitive Sensor I Made:

capacitive sensor

I used thin copper sheets to create the capacitor to test the hello step response board. I hooked them up to jumper wires.
When they copper sheets are touching or close to it, the graph will spike up. This indicates that current is flowing through the circuit.
When they are far apart the graph will flatten out. This indicates that the circuit is not connected.

For a video of this type of capacitive sensor in action – see the Puppet Master posts.

Categories
10 Sensors, Actuators and Displays Arduino / Processing Fab Academy AS220 - Providence, RI Halloween

Motion Sensing Glow Skull

Voodoo Glow Skull

I am ready for Halloween early this year. For my I/O sensor project for Fab Academy I put together a Arduino-controlled motion sensing glowing skull. When motion is detected by the parallax motion sensor, the board turns on the LEDs in the mouth and fades in and out the LEDs glued into the eye sockets.

The Fab Academy Assignment

  • Interface an input device with an output device.

The Project: Motion Sensing Glowing Skull

Voodoo Glow SkullVoodoo Glow Skull

Parts List:

  • 1 Parallax PIR [Pyroelectric (“Passive”) InfraRed)] motion sensor
  • A few lengths of wire
  • 1 Arduino compatible board (I used a Seeduino (Seeed Studios) I had laying around). I like this board because I can flip the power source switch to turn it off / on.
  • 1 9 volt battery
  • Mouth: 10mm Red LED (3)
  • Eyes: 5mm Red Wide-Angle LED (2)
  • 5 in or so metal strip with holes (to house mouth LEDs
  • 3 plastic LED holders (to insulate the mouth LED wires from the metal strip)
  • super glue / hot glue

Prototyping the Circuit / Interaction + Putting It Together:

prototypingprototyping - jumbo LEDprototypingprototypingLED harnessLED harnessGlow!

Code:

The code works – but needs to be modified, right now after the motion is activated, the lights stay on / fade in and out in an infinite loop until the power is switched off. Look for an update to this post.

Arduino code for the LEDs and Parallax PIR Motion Sensor:

/* -----------------------------------------------------------------
 Anna Kaziunas France
 --------------------------------------------------------------------
 Fab Academy - Sensors I/O Module
 Glowing Skull Project
 03/02/2010
 --------------------------------------------------------------------
 Motion Sensor code:
 Motion Sensor code:I have seen this code a few places,
 it is never attributed to anyone in particular.
 I saw it last at: http://www.ladyada.net/learn/sensors/pir.html
 --------------------------------------------------------------------
 LED Fader code by: By David A. Mellis - Created 1 Nov 2008
 Modified 17 June 2009: By Tom Igoe
 http://arduino.cc/en/Tutorial/Fading
 --------------------------------------------------------------------
 Combined / Modified by Anna Kaziunas France - 03 March 2010
 --------------------------------------------------------------------

 --------------------------------------------------------------------
 Purpose of this Program
 --------------------------------------------------------------------
 Read input value from the sensor
 Determine if motion is present (input is HIGH)

 When motion is detected via motion sensor:
 1. Eyes slowly glow red (fade in and out - continue)
 2. Mouth glows (steady)

 When motion is not detected after (length of time)
 Switch off LEDs
 ------------------------------------------------------------------*/

// Variables
int ledPinSolid = 13; // choose the pin for the LED
int ledPinFade = 11; //
int inputPinSensor = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status

void setup() {
  pinMode(ledPinSolid, OUTPUT); // declare Solid LEDs as output
  pinMode(ledPinFade, OUTPUT); // declare Fader LEDs as output
  pinMode(inputPinSensor, INPUT); // declare sensor as input

  Serial.begin(9600);
}

// Begin Motion Detection
void loop() {
  val = digitalRead(inputPinSensor); // reading input value
  if (val == HIGH) { // if the input is HIGH
    digitalWrite(ledPinSolid, HIGH); // turn LED ON
    // sets the value (range from 0 to 255):
    analogWrite(ledPinFade, HIGH); // turn LED ON
    // fade in from min to max in increments of 5 points:
    for(int fadeValue = 0 ; fadeValue < = 255; fadeValue +=10) {
      // wait for 30 milliseconds to see the fade in effect
      delay(400);
    }
    // fade out from max to min in increments of 5 points:
    for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=10) {
      // sets the value (range from 0 to 255):
      analogWrite(ledPinFade, fadeValue);
      // wait for 10 milliseconds to see the dimming effect
      delay(110);
    }
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected Huzzah!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  }
  else {
    digitalWrite(ledPinFade, LOW); // turn Fader LEDs OFF
    digitalWrite(ledPinSolid, LOW); // turn Solid LEDs OFF
    if (pirState == HIGH) {
      // we have just turned of
      Serial.println("Motion ended");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}

Skills Learned

  • Basic wiring
  • Modifing Arduino code
  • How to read a sensor datasheet

Tools Used

  • Arduino
  • Paralax motion sensor