Deliverables 09 (Due 11/18)
Part 1. Last Project Proposal
In a blog post containing just a few sentences, briefly propose what you would like to do for your Last Project. Keep in mind that you’ll only have a couple of weeks to develop this project, which is due December 9, so keep it simple. If you’re torn between a couple different things, list both. Some options for this blog post are things like:
- “I’d like to revise an earlier project…”
- “I’d like to experiment with…”
- “I don’t know what to do.”
Please categorize this blog post, Proposal, and title this blog post nickname-final-proposal.
Part 2. A Networked Object
This assignment is due in the afternoon of class at 1:30pm on Friday, November 18. Please be prepared to present your project, whether live and/or in video documentation, in a 5-minute presentation to the class.
Census historian James C. Scott has pointed out that measurement is a political act. Data artist Natalie Jeremijenko collects measurements in order to prompt evidence-driven discussion. And in the weird world of quantum physics, the term “observer effect” refers to the idea that the very act of measurement itself alters the subject being measured. Each of these is an example of how measurement can be a meaningful act that alters the world and the way we see it.
Working in pairs, create an object or device that communicates with the Internet. This might be:
- A measuring device or monitoring system, which reports on a measurement of the world at regular intervals.
- A sensor that detects an event of interest, and sends a signal to report it online when it happens.
- A device which physically displays or visualizes a piece of online information, or which is triggered by an online event.
Your objective is to:
- measure or visualize something interesting, and/or
- measure or visualize something in an interesting way, and/or
- create a interesting provocation by bringing an uncommon measurement or piece of information to our attention.
To do this, you will use the LittleBits system of sensors and actuators, plus the IFTTT service. You may also wish to use Temboo.com to access interesting APIs and data streams. Please take a moment to familiarize yourself with these systems.
- LittleBits list of bits (we have most of them)
- IFTTT channels
- Temboo APIs
Some Design Considerations
Keep in mind the following design considerations:
- Although you may use any sensor you like, remember that even a humble switch is a sensor. The most important thing is for you to conceive of something interesting that can be sensed, whether by a switch or by something else.
- Brainstorm how to interpret your sensor. Just because you have a pressure sensor, doesn’t mean you have to measure pressure. For example, you might measure the amount of time that something is pressing the sensor. The information you report might thus be in units of seconds, not pounds of force. Or perhaps you might count the number of times that something has squeezed the sensor.
- Your device’s choice of location is very important. Where the device is positioned will affect who encounters it, how it is perceived, and the meaning it makes in the world.
- Are humans involved? It is up to you whether your device measures/displays human activity, or whether it measures the activity of something else in the environment (cars, animals, lights, doors, etc.). You can also decide whether you are measuring/displaying ambient, incidental, or deliberate human activity.
- Think. Your device might be whimsical, poetic, personal, political. You might detect when a leaf detaches from a tree, or it might blink whenever a specific friend posts on Facebook.
- Get outside the Studio. Consider places to put your object (outdoors, in your dorm room) that are not our usual meeting room.
- Share Bits. We have one of nearly every kind of bit. But in some cases, you may need to share. Please organize on the class Slack channel to see who may be able to loan you what you need. Use substitutes or proxies while you’re waiting to borrow something.
- Incorporate Other Materials. This project will be difficult to make without some other crafts materials. You may need to get some cardboard, paper, pipe cleaners, styrofoam, tape, popsicle sticks, Legos, etc.
Technical Considerations
To communicate with the Internet:
One option is that we have seven LittleBits CloudBits.
- You’ll need to register your CloudBit at http://control.littlebitscloud.cc/. (You’ll need to register for a LittleBits login ID.) I have already gotten the MAC addresses of these CloudBits whitelisted on CMU’s network. Follow the instructions and connect them to the wireless network called “CMU” (the university’s passwordless legacy wifi network).
- There’s already a special IFTTT channel just for these CloudBits. Note that this channel only works with the CloudBit. Also, it may sometimes take a few minutes (theoretically, up to an hour worst-case) for your CloudBit signals to get processed by the IFTTT servers.
- Please note that these require the LittleBits USB P3 power unit and will not work with a 9V battery.
There are a number of other options for communicating with your computer. For example, we also have several of the LittleBits Bluetooth BLE bits, the USB I/O bits, the MIDI bit, and the Arduino bits. We also have 5 of the MakeyMakey bits. Keep in mind that if you’re using one of these bits, you’ll need to write code to communicate with the internet and/or IFTTT; for this, I recommend IFTTT’s Maker channel.
It will probably be easiest to use the MakeyMakey bit (if you’re doing input only). Here’s some sample P5.js code for using the MakeyMakey bit to send keypresses to IFTTT’s Maker Channel:
// P5.JS code to convert LittleBits MakeyMakey signals
// into IFTTT messages, using the IFTTT Maker channel.
var urlPrefix = "https://maker.ifttt.com/trigger/";
var urlInfix = "/with/key/";
var eventName = "MyMakeyMakeyEvent";
var mySecretKey = "XXXXX-GET-THIS-KEY-FROM-IFTTT-XXXXX";
/*
You'll have to set up the eventName ("MyMakeyMakeyEvent" etc.)
and your IFTTT mySecretKey, using the IFTTT Maker channel.
*/
//-----------------------------------------------------
function keyPressed() {
// The MakeyMakey is a tiny, funny-looking, USB keyboard.
// It can only send arrow keys and the space bar.
// Note: you'll need to power the MakeyMakey with a Power Bit.
var value1 = 0;
if (keyCode == LEFT_ARROW) {
value1 = "LEFT ARROW";
} else if (keyCode == RIGHT_ARROW) {
value1 = "RIGHT ARROW";
} else if (key == ' '){
value1 = "SPACE BAR"
}
if (value1 != 0) {
println(value1);
var value2 = millis();
var value3 = "cat-door";
// The LittleBits MakeyMakey bit can send up to 3 values.
var myData = {
"value1": value1,
"value2": value2,
"value3": value3
}
// See http://p5js.org/reference/#/p5/httpPost
var requestUrl = urlPrefix + eventName + urlInfix + mySecretKey;
println(requestUrl);
httpPost(requestUrl, myData, "json");
}
}
//-----------------------------------------------------
function setup() {
;
}
function draw() {
;
}
Deliverables
The usual:
- Make a blog post on this site. (This can be posted in one of the teammates’ accounts; it doesn’t have to be in both). Write 150-200 words about your project: what it does, how it works, why you made it.
- Title your post: nickname1-nickname2-object. Categorize your post: Object. Be sure the blog post mentions the name of each collaborator.
- Include some images of your project. Cell phone photos are fine; nice photos are better.
- Include a diagram of your system. This could be hand-drawn, or you could Photoshop up images ripped from the LittleBits store website.
- Embed a video of your system working. It’s best if the video is in-situ; i.e., if you made something that tweets when the cat goes out the cat door, show a video of your cat going out the cat door with the system in place.
- Embed your code using the WP-Syntax WordPress plugin, and/or link to it on Github.
Consider adding some copyright-free music to your documentation video.