<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Assignment 5 &#8211; Making Things Interactive</title>
	<atom:link href="https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;cat=12" rel="self" type="application/rss+xml" />
	<link>https://courses.ideate.cmu.edu/48-339/s2018</link>
	<description>48-339/739 Spring 2018</description>
	<lastBuildDate>Mon, 21 May 2018 16:44:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.2.20</generator>
	<item>
		<title>Room Occupancy detection to slack</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=778</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=778#respond</comments>
				<pubDate>Sat, 19 May 2018 01:23:51 +0000</pubDate>
		<dc:creator><![CDATA[vkamath@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=778</guid>
				<description><![CDATA[Abstract: A slackbot that notifies a Slack channel when the room is occupied based on a simple light sensor. Code: https://drive.google.com/open?id=139H6NqCLxnCcSYHNwvYoITcjAqYegCBE Refernces: A simple light sensor code and P5serial [From my assignment 3] https://courses.ideate.cmu.edu/48-339/s2018/?p=252]]></description>
								<content:encoded><![CDATA[<p><iframe width="840" height="473" src="https://www.youtube.com/embed/CqxRKcqGY2w?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>
<p><strong>Abstract</strong>: A slackbot that notifies a Slack channel when the room is occupied based on a simple light sensor.</p>
<p><strong>Code</strong>: <a href="https://drive.google.com/open?id=139H6NqCLxnCcSYHNwvYoITcjAqYegCBE">https://drive.google.com/open?id=139H6NqCLxnCcSYHNwvYoITcjAqYegCBE</a></p>
<p><strong>Refernces</strong>: A simple light sensor code and P5serial [From my assignment 3]<a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=252"> https://courses.ideate.cmu.edu/48-339/s2018/?p=252</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=778</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment 5</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=429</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=429#comments</comments>
				<pubDate>Wed, 21 Feb 2018 22:07:26 +0000</pubDate>
		<dc:creator><![CDATA[oet@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=429</guid>
				<description><![CDATA[My plan was to use the wind turbines in the united states as my data input, and display their location on a map of the world. I was then going to have the little location dots change colors when clicked (just to get some more object programming in). I got the map to appear: and &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=429" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment 5"</span></a>]]></description>
								<content:encoded><![CDATA[<p>My plan was to use the wind turbines in the united states as my data input, and display their location on a map of the world. I was then going to have the little location dots change colors when clicked (just to get some more object programming in).</p>
<p>I got the map to appear:</p>
<p><img class="alignnone size-medium wp-image-430" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.58.29-PM-300x170.png" alt="" width="300" height="170" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.58.29-PM-300x170.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.58.29-PM-768x435.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.58.29-PM-1024x580.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.58.29-PM-1200x680.png 1200w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p>and I can zoom in and out and that&#8217;s kind of fun:</p>
<p><img class="alignnone size-medium wp-image-431" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-5.03.32-PM-300x149.png" alt="" width="300" height="149" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-5.03.32-PM-300x149.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-5.03.32-PM-768x382.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-5.03.32-PM-1024x509.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-5.03.32-PM-1200x597.png 1200w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p>but whenever I try to load data onto the page I get this lovely display:</p>
<p><img class="alignnone size-medium wp-image-432" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.57.49-PM-300x204.png" alt="" width="300" height="204" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.57.49-PM-300x204.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-21-at-4.57.49-PM.png 690w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p>forever and ever.</p>
<p>So here&#8217;s my code.</p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Maps-turbines.zip">Maps turbines</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=429</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
		<item>
		<title>Assignment Five</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=418</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=418#respond</comments>
				<pubDate>Tue, 20 Feb 2018 17:28:58 +0000</pubDate>
		<dc:creator><![CDATA[mcherban@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=418</guid>
				<description><![CDATA[Simple Shapes For this, I wanted to investigate different Arduino inputs and how that might control elements of my objects in p5. I used two pots and two tact switches. The pots control size and spacing, while the switches can add and subtract a rectangle element. Right now there are two circles, however I&#8217;d like &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=418" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment Five"</span></a>]]></description>
								<content:encoded><![CDATA[<h4>Simple Shapes</h4>
<p>For this, I wanted to investigate different Arduino inputs and how that might control elements of my objects in p5. I used two pots and two tact switches. The pots control size and spacing, while the switches can add and subtract a rectangle element. Right now there are two circles, however I&#8217;d like to work and see more ways to add an object.</p>
<p><img class="alignnone wp-image-422" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.16.00-PM-300x167.png" alt="" width="604" height="336" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.16.00-PM-300x167.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.16.00-PM-768x428.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.16.00-PM-1024x570.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.16.00-PM-1200x668.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></p>
<p><img class="alignnone wp-image-421" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.21.56-PM-300x174.png" alt="" width="598" height="347" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.21.56-PM-300x174.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.21.56-PM-768x445.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.21.56-PM-1024x593.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-12.21.56-PM-1200x695.png 1200w" sizes="(max-width: 598px) 85vw, 598px" /></p>
<h6>Arduino Code:</h6>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">//--------NEOPIXEL SETUP --------<br />
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;<br />
#ifdef __AVR__<br />
#include &amp;lt;avr/power.h&amp;gt;<br />
#endif<br />
static const int PIN = 40;<br />
static const int NUMPIXELS = 1;<br />
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRBW + NEO_KHZ800);<br />
<br />
<br />
//--------POT &amp;amp; TACT LEFT--------<br />
static const int potLeft = A0;<br />
int potValLeft;<br />
int mapValLeft;<br />
<br />
static const int switchLeft = 2;<br />
int switchStateLeft = 0;<br />
int lastStateL = LOW;<br />
<br />
//--------POT &amp;amp; TACT RIGHT--------<br />
static const int potRight = A1;<br />
int potValRight;<br />
int mapValRight;<br />
<br />
static const int switchRight = 3;<br />
int switchStateRight = 0;<br />
int lastStateR = LOW;<br />
<br />
<br />
int count = 2;<br />
<br />
const bool isInterrupt = true;<br />
<br />
//--------TIME--------<br />
unsigned long lastSampleTime = 0;<br />
unsigned long sampleInterval = 500;<br />
<br />
//------------------------------------------------------------------------------------<br />
<br />
void setup() {<br />
&nbsp;// put your setup code here, to run once:<br />
&nbsp;Serial.begin(115200);<br />
<br />
pinMode(switchLeft, INPUT);<br />
&nbsp;pinMode(potLeft, INPUT);<br />
&nbsp;pinMode(potRight, INPUT);<br />
&nbsp;pinMode(switchRight, INPUT);<br />
<br />
pixels.begin();<br />
}<br />
<br />
void loop() {<br />
&nbsp;unsigned long now = millis();<br />
<br />
potValLeft = analogRead(potLeft);<br />
&nbsp;potValRight = analogRead(potRight);<br />
<br />
switchStateLeft = digitalRead(switchLeft);<br />
&nbsp;switchStateRight = digitalRead(switchRight);<br />
<br />
if (lastSampleTime + sampleInterval &amp;lt; now) {<br />
&nbsp;lastSampleTime = now;<br />
<br />
mapValLeft = map(potValLeft, 0, 1023, 20, 350); // sends offset<br />
&nbsp;mapValRight = map(potValRight, 0, 1023, 20, 300); // sends size<br />
<br />
if (switchStateLeft &amp;amp;&amp;amp; switchStateLeft != lastStateL) {<br />
&nbsp;if (count &amp;lt;= 12 &amp;amp;&amp;amp; count &amp;gt; 2) {<br />
&nbsp;count -= 1;<br />
&nbsp;} else {<br />
&nbsp;count = 2;<br />
&nbsp;}<br />
&nbsp;} else if (switchStateRight &amp;amp;&amp;amp; switchStateRight != lastStateR) {<br />
&nbsp;if (count &amp;lt; 12) {<br />
&nbsp;count += 1;<br />
&nbsp;} else {<br />
&nbsp;count = 12;<br />
&nbsp;}<br />
&nbsp;}<br />
&nbsp;lastStateL = switchStateLeft;<br />
&nbsp;lastStateR = switchStateRight;<br />
<br />
Serial.print(&quot;N,&quot;);<br />
&nbsp;Serial.print(count);<br />
&nbsp;Serial.print(&quot;,O,&quot;);<br />
&nbsp;Serial.print(mapValLeft);<br />
&nbsp;Serial.print(&quot;,S,&quot;);<br />
&nbsp;Serial.print(mapValRight);<br />
&nbsp;Serial.print(&quot;\r\n&quot;);<br />
&nbsp;<br />
&nbsp;}<br />
}<br />
<br />
/* //-----DEBUGGING-----<br />
&nbsp;Serial.print(&quot;count: &quot;);<br />
&nbsp;Serial.println(count);<br />
<br />
Serial.print(&quot;Left Pot Send: &quot;);<br />
&nbsp;Serial.println(mapValLeft);<br />
<br />
Serial.print(&quot;Right Pot Send: &quot;);<br />
&nbsp;Serial.println(mapValRight);<br />
*/</div></div>
<h6>p5.js Code:</h6>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">/*<br />
//-----ATTRIBUTION-----<br />
&nbsp; Based on &quot;Sea Shell&quot; by Michael Pinn<br />
&nbsp; https://www.openprocessing.org/sketch/402526<br />
*/<br />
<br />
var serial;<br />
var portName = '/dev/cu.usbmodem1411';<br />
<br />
var xLen = 1200;<br />
var yLen = 700;<br />
<br />
var bubbles;<br />
var bubbles2;<br />
<br />
var latestData;<br />
var aNum = 0; // number of squares from arduino<br />
var aOff = 0; // offset number from arduino<br />
var aSize = 0; // size number from arduino<br />
<br />
function setup() {<br />
&nbsp;serial = new p5.SerialPort();<br />
&nbsp;// now set a number of callback functions for SerialPort<br />
&nbsp;serial.on('list', printList);<br />
&nbsp;serial.on('connected', serverConnected);<br />
&nbsp;serial.on('open', portOpen);<br />
&nbsp;serial.on('error', serialError);<br />
&nbsp;serial.on('close', portClose);<br />
// serial.on('data', serialEvent);<br />
&nbsp;serial.on('data', gotData);<br />
<br />
serial.list();<br />
&nbsp;serial.open(portName);<br />
<br />
// set up our drawing environment<br />
&nbsp;createCanvas(xLen, yLen);<br />
&nbsp;background(240);<br />
&nbsp;ellipseMode(CENTER);<br />
&nbsp;rectMode(CENTER);<br />
<br />
bubbles = new Bubble(240,0); // sets the location<br />
&nbsp;bubbles2 = new Bubble(240,5); // sets the location<br />
<br />
}<br />
<br />
function draw() {<br />
&nbsp;background(240);<br />
&nbsp;bubbles.show(40,100, 8, aOff); // sets up the size, offset, rotational controller (mouse position here<br />
&nbsp;bubbles2.show(aSize/2, aOff, aNum, mouseX); // sets up the size, offset, rotational controller (mouse position here)<br />
}<br />
<br />
<br />
class Bubble {<br />
&nbsp;constructor (l, w){<br />
&nbsp;this.l = l;<br />
&nbsp;this.w = w;<br />
&nbsp;}<br />
<br />
show(s, o, n, m){<br />
&nbsp;this.s = s;<br />
&nbsp;this.offset = o;<br />
&nbsp;this.n = n;<br />
&nbsp;this.m = m;<br />
<br />
push();<br />
&nbsp;translate(width/2, height/2);<br />
&nbsp;for (var i = 0; i &amp;lt; 360; i += 360/this.n) {<br />
&nbsp;this.x = sin(radians(i)) * this.offset;<br />
&nbsp;this.y = cos(radians(i)) * this.offset;<br />
&nbsp;push();<br />
&nbsp;translate(this.x, this.y);<br />
&nbsp;rotate(radians(+i + this.m));<br />
&nbsp;stroke(this.l);<br />
&nbsp;strokeWeight(this.w);<br />
&nbsp;fill(sin(radians(i / 2)) * 255, 50, 100);<br />
&nbsp;rect(0,0,this.s,this.s,2);<br />
&nbsp;pop();<br />
&nbsp;}<br />
&nbsp;pop();<br />
&nbsp;}<br />
}<br />
<br />
<br />
//-----SERIAL FUNCTIONS-----<br />
<br />
function printList(portList) {<br />
&nbsp;for (var i = 0; i &amp;lt; portList.length; i++) {<br />
&nbsp;print(i + &quot; &quot; + portList[i]);<br />
&nbsp;}<br />
}<br />
<br />
function serverConnected() {<br />
&nbsp;print('serverConnected');<br />
}<br />
<br />
function portOpen() {<br />
&nbsp;print('portOpen');<br />
}<br />
<br />
function gotData() {<br />
&nbsp;var stringRead = serial.readLine(); // read the incoming string<br />
&nbsp;trim(stringRead); // remove any trailing whitespace<br />
&nbsp;if (!stringRead) return; // if the string is empty, do no more<br />
&nbsp;// console.log(stringRead); // println the string<br />
&nbsp;latestData = stringRead; // save it for the draw method<br />
<br />
var aString = latestData.split(&quot;,&quot;);<br />
&nbsp;if (aString.length&amp;gt;5)<br />
&nbsp;{<br />
&nbsp;aNum = aString[1];<br />
&nbsp;aOff = aString[3];<br />
&nbsp;aSize = aString[5];<br />
&nbsp;}<br />
&nbsp;// console.log(&quot;aNum: &quot; + aNum + &quot;aOff: &quot; + aOff + &quot;aSize: &quot; + aSize);<br />
}<br />
<br />
function serialError(err) {<br />
&nbsp;print('serialError ' + err);<br />
}<br />
<br />
function portClose() {<br />
&nbsp;print('portClose');<br />
}</div></div>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Cherban_assignment05.zip">Arduino, p5.js, Fritzing files</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=418</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment 5</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=406</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=406#respond</comments>
				<pubDate>Tue, 20 Feb 2018 07:58:47 +0000</pubDate>
		<dc:creator><![CDATA[Rachel Wong]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=406</guid>
				<description><![CDATA[Car Driver Description:  For this assignment, I made a car animation. The user can click anywhere on the black background to place a car. The cars start at speed = 0 and add 10 each time the button is pressed. Basic GUI:  Breadboard:  Video demo:  Code:  assignment5 &#160; **Code/idea is a combination of alterations from &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=406" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment 5"</span></a>]]></description>
								<content:encoded><![CDATA[<p style="text-align: center"><em>Car Driver</em></p>
<p><strong>Description: </strong></p>
<p>For this assignment, I made a car animation. The user can click anywhere on the black background to place a car. The cars start at speed = 0 and add 10 each time the button is pressed.</p>
<p><strong>Basic GUI: </strong></p>
<p><img class="wp-image-409 aligncenter" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-2.07.43-AM-300x198.png" alt="" width="501" height="331" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-2.07.43-AM-300x198.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-2.07.43-AM-768x507.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-2.07.43-AM-1024x677.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-20-at-2.07.43-AM-1200x793.png 1200w" sizes="(max-width: 501px) 85vw, 501px" /></p>
<p><strong>Breadboard: </strong></p>
<p><img class="wp-image-407 aligncenter" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/28312354_10213757518867247_666842130_o-225x300.jpg" alt="" width="378" height="504" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/28312354_10213757518867247_666842130_o-225x300.jpg 225w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/28312354_10213757518867247_666842130_o-768x1024.jpg 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/28312354_10213757518867247_666842130_o-1200x1600.jpg 1200w" sizes="(max-width: 378px) 85vw, 378px" /></p>
<p><strong>Video demo: </strong></p>
<p><iframe width="840" height="630" src="https://www.youtube.com/embed/Qb9n_klvIhw?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>
<p><strong>Code: </strong></p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/assignment5.zip">assignment5</a></p>
<p>&nbsp;</p>
<p><strong>**</strong><strong>Code/idea is a combination of alterations from class 10 notes and <a href="http://coursescript.com/notes/interactivecomputing/objects/index.html">http://coursescript.com/notes/interactivecomputing/objects/index.html  </a></strong><strong>**</strong></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=406</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment5 &#8211; Interactive Map</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=396</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=396#respond</comments>
				<pubDate>Tue, 20 Feb 2018 02:20:22 +0000</pubDate>
		<dc:creator><![CDATA[ditoh@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=396</guid>
				<description><![CDATA[I worked with Mappa.js to visualize a dataset on Google Maps. I found Mappa.js useful for quickly getting interactive online maps running. I tweaked one of the example code so that the objects get updated by the user&#8217;s mouse click. I used NASA&#8217;s open data portal and took the meteorite dataset as input. Each row is the &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=396" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment5 &#8211; Interactive Map"</span></a>]]></description>
								<content:encoded><![CDATA[<p>I worked with <a href="https://mappa.js.org/">Mappa.js</a> to visualize a dataset on Google Maps. I found Mappa.js useful for quickly getting interactive online maps running. I tweaked one of the example code so that the objects get updated by the user&#8217;s mouse click.</p>
<p>I used <a href="https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh">NASA&#8217;s open data portal</a> and took the meteorite dataset as input. Each row is the history of meteorite landings with latitude/longitude information. Every time the user clicks, it reads the new row and visualizes on Google Maps where it landed. It calls Google Maps API to map latitude/longitude to a city and creates an object for each city. If data with the previously appeared city is observed, it increments the size of the circle. Since there are cases where the city is not included in the API response, I used try/catch to ignore unidentifiable data.</p>
<p><img class="alignnone size-medium wp-image-399" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.58.52-300x235.png" alt="" width="300" height="235" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.58.52-300x235.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.58.52.png 649w" sizes="(max-width: 300px) 85vw, 300px" /> <img class="alignnone size-medium wp-image-400" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.59.12-300x234.png" alt="" width="300" height="234" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.59.12-300x234.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-19-at-20.59.12.png 646w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Assign5.zip">Code-Assign5</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=396</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment 5: p5.js skills test + IFTTT</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=367</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=367#respond</comments>
				<pubDate>Thu, 15 Feb 2018 19:58:34 +0000</pubDate>
		<dc:creator><![CDATA[jet Townsend]]></dc:creator>
				<category><![CDATA[Assignment 5]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=367</guid>
				<description><![CDATA[Use object oriented programming to visualize some sort of input, from your Arduino or from an online source (no weather nor stock prices). Create an IFTTT sketch that does something to make your life better and that you’re willing to use for a few days.   We&#8217;ll work with IFTTT on a future assignment.]]></description>
								<content:encoded><![CDATA[<p>Use object oriented programming to visualize some sort of input, from your Arduino or from an online source (no weather nor stock prices).</p>
<p>Create an IFTTT sketch that does something to make your life better and that you’re willing to use for a few days.   We&#8217;ll work with IFTTT on a future assignment.</p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=367</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
	</channel>
</rss>
