2008 3.05: Difference between revisions
No edit summary |
|||
Line 32: | Line 32: | ||
=== Example === | === Example === | ||
< | <pre lang="python"> | ||
import time, random | import time, random | ||
import gst, pygst | import gst, pygst | ||
Line 52: | Line 51: | ||
player.set_state(gst.STATE_NULL) | player.set_state(gst.STATE_NULL) | ||
</pre> | |||
</ |
Revision as of 00:04, 16 May 2008
Tech Day 3.05
In-class Problem Set
Analog Sensor / Python Class
Wiring the analog sensor
We use a voltage divider, as in this example from the Making Things Talk text:
File:Makingthings voltagedivider.png
Write the Python program
Create a "call and response" arduino application. program the arduino to read one or more inputs (*at least one* analog), send the data only in response to reading a byte from it's serial port (the call)
Write a simple "proof of concept" receiver (in Python)
Relativizing Analog Input
Use two variables, maxsensor and minsensor, to remember the highest and lowest sensor value your program as seen. Use these values to translate the sensor reading at any moment into a "scaler" that goes from 0 (when the sensor value is at the minimum) to 1 (sensor is at maximum).
Use your scaler to control a visual PyGame property (size, color, position of a drawn shape, image).
c.
CREATE a Class called Sensor to encapsulate your min / max sensor reading code.
Example
import time, random
import gst, pygst
# pipe2_desc = 'videotestsrc ! ffmpegcolorspace ! ximagesink'
oggpath = '/home/murtaugh/Videos/personalchef.ogg'
# pipe2_desc = 'filesrc location=%s ! oggdemux ! theoradec ! ffmpegcolorspace ! ximagesink' % oggpath
player_desc = 'filesrc location=%s ! oggdemux ! theoradec ! videobalance name=bal contrast=2 ! ffmpegcolorspace ! ximagesink'
player = gst.parse_launch(player_desc % oggpath)
videobalance = player.get_by_name("bal")
player.set_state(gst.STATE_PLAYING)
for i in range(50):
time.sleep(1)
rval = random.random()
videobalance.set_property("contrast", rval)
player.set_state(gst.STATE_NULL)