Difference between revisions of "7745 Sensing Lab 2"

From CCRMA Wiki
Jump to: navigation, search
(Created page with 'This lab most recently revamped by Edgar Berdahl and Wendy Ju. Chris Carlson, possibly Bill Verplank, and others have likely contributed. For this lab you need your [http://ccrm…')
 
Line 35: Line 35:
 
* Enable the input for analog in 0 by checking the appropriate checkbox.
 
* Enable the input for analog in 0 by checking the appropriate checkbox.
  
* Experiment further by connecting some other analog sensors to pins such as ''a0'', ''a1'', ''a2'', ''a3'', ''a4'', etc. Implement an entirely new musical interaction using them. Some sensing circuits are shown below. For more information, see [the sensors lecture https://ccrma.stanford.edu/wiki/Sensors].
+
* Experiment further by connecting some other analog sensors to pins such as ''a0'', ''a1'', ''a2'', ''a3'', ''a4'', etc. Implement an entirely new musical interaction using them. Some sensing circuits are shown below. For more information, see [https://ccrma.stanford.edu/wiki/Sensors the sensors lecture].
  
  
  
 
+
** potentiometer:
=== Other Voltage Dividers ===
+
The circuit you just used for the potentiometer was a [http://en.wikipedia.org/wiki/Voltage_divider voltage divider] circuit in which the potentiometer serves as two resistors.  Other resistive sensors only have two wires, so to build a voltage divider with them, you need to combine them with a second, fixed resistor.  Examples in your kit are the force sensitive resistor (FSR) and the bend or flex sensor. The idea is that you put two resistors in series between power and ground: one that changes resistance (your sensor), and one of a known, fixed resistance. At the point in between the two resistors, you can measure how much the voltage has dropped through the first resistor. This value changes as the ratio of resistances between variable and fixed resistors change. More formally:
+
 
+
[[Image:res_divider.png]]
+
 
+
* potentiometer:
+
  
 
[[Image:Pot.png]]
 
[[Image:Pot.png]]
  
* force-sensitive resistor (FSR):
+
** force-sensitive resistor (FSR):
  
 
[[Image:FSR.png]]
 
[[Image:FSR.png]]
Line 55: Line 49:
 
Try both circuits.  Test the resistance range of your sensor.  If you want 2.5 volts to be the middle, make the comparison resistor (33k in the diagram) the "average" value of the FSR's resistance. Test this with a multimeter.
 
Try both circuits.  Test the resistance range of your sensor.  If you want 2.5 volts to be the middle, make the comparison resistor (33k in the diagram) the "average" value of the FSR's resistance. Test this with a multimeter.
  
* Bend Sensor
+
** Bend Sensor
 
[[Image:Bend_sensor.png]]
 
[[Image:Bend_sensor.png]]
  
 
+
** Accelerometer
  
  

Revision as of 20:06, 26 February 2014

This lab most recently revamped by Edgar Berdahl and Wendy Ju. Chris Carlson, possibly Bill Verplank, and others have likely contributed.

For this lab you need your Satellite CCRMA kit, a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (2.54mm) stereo jack.

You are also invited to bring the following optional items, but they are by no means required:

  • Some of your favorite breadboardable sensors and LEDs.
  • Your powered loudspeaker.



Power Up and Prepare Arduino

  • Use the same procedure as described before to power up Satellite CCRMA and login as the user ccrma with the password temppwd.
  • As always start by running the following command to stop the default pd patch from running

stop-default

  • Then start pd by executing

pd &



Analog Circuits

Now we will work with the continuous input values provided by analog sensors - potentiometers, accelerometers, distance rangers, etc

Voltage Divider Circuit

  • Open the pd patch ~/pd/labs-Music-250a-2012/lab2/
  • Read the messages in the pd window and make sure that it was able to open the device on /dev/ttyUSB0 (this is the Arduino -- it's showing up as the 0th serial device).
  • Enable the input for analog in 0 by checking the appropriate checkbox.
  • Experiment further by connecting some other analog sensors to pins such as a0, a1, a2, a3, a4, etc. Implement an entirely new musical interaction using them. Some sensing circuits are shown below. For more information, see the sensors lecture.


    • potentiometer:

Pot.png

    • force-sensitive resistor (FSR):

FSR.png

Try both circuits. Test the resistance range of your sensor. If you want 2.5 volts to be the middle, make the comparison resistor (33k in the diagram) the "average" value of the FSR's resistance. Test this with a multimeter.

    • Bend Sensor

Bend sensor.png

    • Accelerometer


Tilt control with an Accelerometer (Optional)

The accelerometer doesn't work using a voltage divider, but it does produce an output voltage that can be connected directly to an analog input of the Arduino.

In this example, we'll simulate the motion of a ball on a tilting plane in software and control the tilt through a sensor. Think of it as a first step to build your own electronic game of Labyrinth. The right sensor to use is an accelerometer. Accelerometers can report on both static and dynamic acceleration -- think of static acceleration as the angle the accelerometer is held with respect to the ground (the acceleration measured here is due to gravity). Dynamic acceleration occurs when you shake the sensor.

Mma7260qt-3-axis-accelerometer.jpg

The accelerometer in your kit is a 3-axis, +/- 1.5-6g accelerometer sensor (1g is the acceleration due to gravity). You will have to solder on 0.1" header pins to fit this into the breadboard. The connections you need to make are Vin to 5V power from the Arduino , G to ground, and Xo, Yo & Zo to the first three analog input pins on the Arduino board. By default, the acceleration range is set to +/- 1.5g; you could solder on the gsel jumpers if you want less sensitive/greater range with +/- 6g.

Now, get a feel for the data the accelerometer provides. Use the Light Dimmer presets, which will track analog values on A0 and A1. Then pick up the Arduino+accelerometer board and tilt it in various directions. Start by holding it so that the accelerometer board is parallel to the ground. Find in which direction the X reading increases and decreases; do the same for the Y reading.

Next, change the PD patch so that you can also read the Z axis of the accelerometer.



Putting it all Together

  • Create a patch to make sounds based on button and sensor values from the Arduino. You can try to adapt your patches from Lab 1, or come up with a new patch. Try to make the sound good!
  • Make a simple musical interaction. Think about music -
    • does it have dynamics?
    • can you turn the sound off?
    • can it be expressive?



NMC 2013