<?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>Project 02 &#8211; Making Things Interactive</title>
	<atom:link href="https://courses.ideate.cmu.edu/48-739/s2017/?feed=rss2&#038;cat=5" rel="self" type="application/rss+xml" />
	<link>https://courses.ideate.cmu.edu/48-739/s2017</link>
	<description>48-739 Spring 2017</description>
	<lastBuildDate>Thu, 19 Apr 2018 14:20:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.28</generator>
<site xmlns="com-wordpress:feed-additions:1">123021580</site>	<item>
		<title>Raspberry Pi Workshop</title>
		<link>https://courses.ideate.cmu.edu/48-739/s2017/?p=171</link>
		<comments>https://courses.ideate.cmu.edu/48-739/s2017/?p=171#respond</comments>
		<pubDate>Sat, 18 Feb 2017 19:41:51 +0000</pubDate>
		<dc:creator><![CDATA[John Mars]]></dc:creator>
				<category><![CDATA[Project 02]]></category>
		<category><![CDATA[References]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-739/s2017/?p=171</guid>
		<description><![CDATA[Raspberry Pi Workshop Burning Raspbian to an (micro)SD Card For Mac: [crayon-663ee41549dca163816514/] For Windows: Download and install Etcher: https://etcher.io/ Flash the image Open Etcher Select the Raspbian image Select the drive to which you want to burn Double check your selections This is critical, as you run the risk of overwriting the wrong drive (including &#8230; <a href="https://courses.ideate.cmu.edu/48-739/s2017/?p=171" class="more-link">Continue reading<span class="screen-reader-text"> "Raspberry Pi Workshop"</span></a>]]></description>
				<content:encoded><![CDATA[<h1>Raspberry Pi Workshop</h1>
<h3>Burning Raspbian to an (micro)SD Card</h3>
<h4>For Mac:</h4>
<p></p><pre class="crayon-plain-tag">brew cask install etcher</pre><p></p>
<h4>For Windows:</h4>
<p>Download and install Etcher: <a href="https://etcher.io/">https://etcher.io/</a></p>
<h2>Flash the image</h2>
<ol>
<li>Open Etcher</li>
<li>Select the Raspbian <strong>image</strong></li>
<li>Select the <strong>drive</strong> to which you want to burn</li>
<li><strong>Double check</strong> your selections
<ul>
<li>This is critical, as you run the risk of overwriting the wrong drive (including your primary hard drive)</li>
</ul>
</li>
<li>Click <strong>&#8220;Flash!&#8221;</strong> and wait until Etcher writes and validates the image. This can take around 10 minutes.</li>
<li>Once finished, <strong>eject</strong> your SD card</li>
</ol>
<h2>Ports</h2>
<p><img src="https://i2.wp.com/2.bp.blogspot.com/-GOPkwrpFMBk/VtRkngTJWEI/AAAAAAAAm_U/AFN47w1rb2s/s1600/raspberry-pi-3-microcomputer.png?w=840&#038;ssl=1" alt="" data-recalc-dims="1" /></p>
<h2>Plugging in your peripherals</h2>
<ol>
<li>HDMI</li>
<li>Keyboard and Mouse</li>
<li>MicroUSB Power Supply (5V/2.1A)</li>
</ol>
<h2>Boot for the First Time</h2>
<h2>Get your MAC Address</h2>
<ol>
<li>In the Raspberry Pi GUI, click the <strong>Terminal</strong> icon in the top left toolbar</li>
<li>Run the command <code>ifconfig</code></li>
<li>Locate the <code>wlan0</code> section and find and write down the <code>HWaddr</code>; it should look something like: <code>b8:27:eb:00:00:00</code></li>
<li>This is the <em>MAC Address</em> for your wireless adapter on the Raspberry Pi; you will use it to register the Pi on the network</li>
</ol>
<h2>Register with the CMU Legacy Network</h2>
<ol>
<li>Go to https://netreg.net.cmu.edu/</li>
<li>Enter and select the link to &#8220;Register New Machine&#8221;</li>
</ol>
<p>Select the <strong>&#8220;Legacy Wireless Network&#8221;</strong> and click the in-line <strong>&#8220;Continue&#8221;</strong> button.</p>
<p><img src="https://i2.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/Screen-Shot-2017-02-18-at-12.13.52-PM.png?w=840&#038;ssl=1" data-recalc-dims="1"></p>
<p>Enter a name for your Raspberry Pi</p>
<p>Enter the <code>wlan0</code> MAC address from the raspberry pi</p>
<p><img src="https://i0.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/Screen-Shot-2017-02-18-at-12.06.06-PM.png?w=840&#038;ssl=1" data-recalc-dims="1"></p>
<p>Now we wait&#8230;</p>
<h3>Changing the Default Settings</h3>
<ol>
<li>Open Raspberry Pi Menu > Preferences > Raspberry Pi Configuration<br />
<img src="https://i0.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/2016-11-25-185241_1280x800_scrot.png?w=840&#038;ssl=1" alt="" data-recalc-dims="1" /></li>
</ol>
<h3>System</h3>
<ol>
<li>Change <strong>Password</strong></li>
<li>Change <strong>Hostname</strong></li>
<li>Boot to <strong>CLI</strong><br />
<img src="https://i1.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/2016-11-25-184949_1280x800_scrot.png?w=840&#038;ssl=1" alt="" data-recalc-dims="1" /></li>
</ol>
<h3>Interfaces</h3>
<ol>
<li>Set everything to enabled, except VNC<br />
<img src="https://i0.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/2016-11-25-185044_1280x800_scrot.png?w=840&#038;ssl=1" alt="" data-recalc-dims="1" /></li>
</ol>
<h3>Reboot</h3>
<p>Open Terminal and type</p>
<p></p><pre class="crayon-plain-tag">sudo reboot</pre><p></p>
<h2>CRON</h2>
<ol>
<li>Cron is a task scheduler</li>
<li>You can add tasks to cron using the <code>crontab</code></li>
</ol>
<p>The command</p>
<p></p><pre class="crayon-plain-tag">sudo crontab -e</pre><p></p>
<p>will take you to the root crontab, meaning your tasks will run regardless of which user is logged in<br />
<img src="https://i2.wp.com/media.lifehacker.foxtrot.future.net.uk/wp-content/uploads/sites/55/2015/11/pi-schedule.chrontab.png?w=840" alt="" data-recalc-dims="1" /></p>
<p>You can also use special signifiers</p>
<p>A common example is to start a program a few seconds after startup:</p>
<p></p><pre class="crayon-plain-tag">@reboot sleep 10 &amp;amp;&amp;amp; /usr/bin/nodejs /path/to/nodescript.js</pre><p></p>
<h2>Connecting to WiFi</h2>
<ol>
<li>This is easiest to do in the GUI </li>
<li>To enter the GUI from commandline mode, run the command <code>startx</code></li>
<li>Find the WiFi icon and select CMU</li>
</ol>
<p>We are going to test to see if our connection has propagated by running the command</p>
<p></p><pre class="crayon-plain-tag">ping google.com</pre><p></p>
<p>If it returns with a list similar to this:</p>
<p></p><pre class="crayon-plain-tag">PING google.com (68.65.124.44): 56 data bytes
64 bytes from 68.65.124.44: icmp_seq=0 ttl=60 time=12.702 ms
64 bytes from 68.65.124.44: icmp_seq=1 ttl=60 time=13.478 ms
64 bytes from 68.65.124.44: icmp_seq=2 ttl=60 time=13.880 ms
64 bytes from 68.65.124.44: icmp_seq=3 ttl=60 time=12.818 ms</pre><p></p>
<p>then you are connected. If not, keep waiting.</p>
<h1>SSH</h1>
<ol>
<li>Once your pi is on the CMU network, you should be able to SSH into the device from your laptop</li>
<li>Run the command (but fill in your own info)
<p>ssh $USER@$URL</p>
</li>
</ol>
<p>for example <code>ssh pi@hostname.wv.cc.cmu.edu</code></p>
<p>It will ask if you want to add this to the list of known hosts, type <code>Yes</code></p>
<h2>Updating Packages</h2>
<p>Linux has a built-in package manager called <strong>apt-get</strong></p>
<p>We need to update the list of package repositories:</p>
<p></p><pre class="crayon-plain-tag">sudo apt-get update</pre><p></p>
<p>Next, we want to get the newest versions of all our packages:</p>
<p></p><pre class="crayon-plain-tag">sudo apt-get upgrade</pre><p></p>
<p>(this may take a while and require some user confirmation)</p>
<h2>Installing Packages</h2>
<p>Raspbian comes with Node.js installed, but the version is very old.</p>
<p>We need to add a new repository to our package manager:</p>
<p></p><pre class="crayon-plain-tag">curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -</pre><p></p>
<p>Now, install Node.js:</p>
<p></p><pre class="crayon-plain-tag">sudo apt-get install nodejs</pre><p></p>
<h2>Install and Configure Samba</h2>
<p>Install Samba with:</p>
<p></p><pre class="crayon-plain-tag">sudo apt-get install samba</pre><p></p>
<p>Go to the Samba configuration folder:</p>
<p></p><pre class="crayon-plain-tag">cd /etc/samba/</pre><p></p>
<p>Rename the configuration file (so we have a backup):</p>
<p></p><pre class="crayon-plain-tag">sudo mv smb.conf smb.conf.original</pre><p></p>
<p>Make and edit a new one:</p>
<p></p><pre class="crayon-plain-tag">sudo nano smb.conf</pre><p></p>
<ol>
<li>Copy this into new file:</li>
</ol>
<p></p><pre class="crayon-plain-tag">[global]
    workgroup = WORKGROUP
    netbios name = SAMBA
    server string = Samba Server %v
    map to guest = Bad User
    log file = /var/log/samba/log.%m
    max log size = 50
    socket options = TCP_NODELAY SO_RCVBUF=819SO_SNDBUF=8192
    preferred master = No
    local master = No
    dns proxy = No
    security = User

    # Share
    [Data]
        path = /
        valid users = pi
        read only = No
        create ma19 = 0755
        directory mask = 0755</pre><p></p>
<p>Set up a new password:</p>
<p></p><pre class="crayon-plain-tag">sudo smbpasswd -a pi</pre><p></p>
<p>Restart the Samba service:</p>
<p></p><pre class="crayon-plain-tag">sudo service smbd restart</pre><p></p>
<ol>
<li>On your Mac laptop, you can now mount the Raspberry Pi filesystem on your computer by going to Finder and typing <code>⌘+k</code></li>
<li>Enter <strong>smb://pi@$yourIPAddress</strong><br />
<img src="https://i1.wp.com/courses.ideate.cmu.edu/48-739/s2017/wp-content/uploads/2017/02/Screen-Shot-2017-02-18-at-1.38.52-PM.png?w=840&#038;ssl=1" alt="" data-recalc-dims="1" /></li>
</ol>
<h2>Getting the example code</h2>
<ol>
<li>Clone the repo to your Pi by running
<p>git clone https://github.com/Making-Things-Interactive/button-twitter.git</p>
</li>
</ol>
<h3>Raspberry Pi 3 Pinout</h3>
<p><img src="https://i2.wp.com/www.myelectronicslab.com/wp-content/uploads/2016/06/raspbery-pi-3-gpio-pinout-40-pin-header-block-connector-.png?w=840&#038;ssl=1" data-recalc-dims="1"></p>
]]></content:encoded>
			<wfw:commentRss>https://courses.ideate.cmu.edu/48-739/s2017/?feed=rss2&#038;p=171</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">171</post-id>	</item>
		<item>
		<title>Project 02 — Monitor &#038; Alert</title>
		<link>https://courses.ideate.cmu.edu/48-739/s2017/?p=138</link>
		<comments>https://courses.ideate.cmu.edu/48-739/s2017/?p=138#respond</comments>
		<pubDate>Wed, 15 Feb 2017 22:01:46 +0000</pubDate>
		<dc:creator><![CDATA[Jakob Marsico]]></dc:creator>
				<category><![CDATA[Assignments]]></category>
		<category><![CDATA[Project 02]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-739/s2017/?p=138</guid>
		<description><![CDATA[Prompt Watch [a] physical or digital source[s] and trigger a digital or physical alert. Your project must be physically durable. Details You will work in two-person groups to design, program and build a system that monitors some stream, signal, or state and alerts users when a specific threshold, event or change occurs. The signal that &#8230; <a href="https://courses.ideate.cmu.edu/48-739/s2017/?p=138" class="more-link">Continue reading<span class="screen-reader-text"> "Project 02 — Monitor &#038; Alert"</span></a>]]></description>
				<content:encoded><![CDATA[<p><img src="https://i1.wp.com/media.giphy.com/media/CsV1pnR9hYLuM/giphy.gif?w=840&#038;ssl=1" alt="" class="aligncenter size-full" data-recalc-dims="1" /></p>
<h2>Prompt</h2>
<p>Watch [a] physical or digital source[s] and trigger a digital or physical alert. Your project must be physically durable.</p>
<h2>Details</h2>
<p>You will work in two-person groups to design, program and build a system that monitors some stream, signal, or state and alerts users when a specific threshold, event or change occurs.</p>
<p>The signal that you monitor can be physical or digital; you can watch a sensor or series of sensors in the physical world, or use an API to monitor events or signals on the web.</p>
<p>Likewise, the alerting component of your system can also be physical or digital; ringing a physical bell, popping a balloon, sending a series of text messages, emailing your local congressman&#8230; all fair game.</p>
<p>At least one of the two components must be physical. Robustness is a key part of this project; make your device droppable. Both the source and alert may be physical, if they communicate over a network.</p>
<p>This project continues to build your skills in rapid prototyping and basic electronics, and it exposes you to networked technologies such as APIs and web protocols.</p>
<h2>Deliverables <strong>(Crit/Demo on 3/1)</strong></h2>
<ul>
<li>A functioning system that completes the prompt</li>
<li>Documentation
<ul>
<li>A well-documented Git repo of all your code on GitHub</li>
<li>Photos of your process work (take these throughout)</li>
<li>Photos of your machine both stationary and in action</li>
<li>A step-by-step <a href="https://www.instructables.com/">Instructables</a> post walking a user through the process of building the system.
<ul>
<li>Only one post is necessary</li>
<li>Each team member must email a link to the post to Jake and John, accompanied by a brief explanation of their role in the project.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Examples</h2>
<p>Nest Protect</p>
<div class="jetpack-video-wrapper"><iframe class='youtube-player' type='text/html' width='840' height='503' src='https://www.youtube.com/embed/videoseries?list=PLAdP2gzuu3qTpmO9aqTU8JRpB76_JDgbj&#038;hl=en_US' allowfullscreen='true' style='border:0;'></iframe></div>
<p></p>
<p>Range Dial Thermometer</p>
<div class="jetpack-video-wrapper"><iframe class='youtube-player' type='text/html' width='840' height='503' src='https://www.youtube.com/embed/Y3e9zssDPNU?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></div>
<p></p>
<p><a href="http://pplkpr.com/">pplkpr</a> by Lauren McCarthy and Kyle McDonald</p>
<div class="jetpack-video-wrapper">
<div class="embed-vimeo" style="text-align: center;"><iframe src="https://player.vimeo.com/video/116025182" width="840" height="473" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>
</div>
<p></p>
<p><a href="https://criticalengineering.org/projects/deep-sweep/">The Deep Sweep</a> by The Critical Engineering Working Group<br />
<img src="https://i0.wp.com/criticalengineering.org/projects/deep-sweep/images/minsk/plots/800-comp-mid-plot-0.jpg?resize=800%2C600&#038;ssl=1" class="alignnone size-full" data-recalc-dims="1" /></p>
<p><a href="https://www.cnet.com/how-to/an-ifttt-recipe-that-might-just-save-your-life/">Weather Service + IFTTT</a></p>
<p><a href="https://www.kickstarter.com/projects/thingm/blink1-the-usb-rgb-led">blink(1)</a><br />
<iframe src="https://www.kickstarter.com/projects/thingm/blink1-the-usb-rgb-led/widget/video.html" height="472.5" width="840" frameborder="0" scrolling="no"></iframe></p>
<p><a href="http://www.withings.com/us/en/products/aura/sleep-sensor-accessory">Withings Aura</a></p>
<div class="jetpack-video-wrapper"><iframe class='youtube-player' type='text/html' width='840' height='503' src='https://www.youtube.com/embed/UcqBejkLVrM?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></div>
]]></content:encoded>
			<wfw:commentRss>https://courses.ideate.cmu.edu/48-739/s2017/?feed=rss2&#038;p=138</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">138</post-id>	</item>
	</channel>
</rss>
