<?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 3 &#8211; Making Things Interactive</title>
	<atom:link href="https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;cat=10" 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, 12 Mar 2018 16:54:25 +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>Assignment 3</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=300</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=300#respond</comments>
				<pubDate>Thu, 08 Feb 2018 08:12:48 +0000</pubDate>
		<dc:creator><![CDATA[oet@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=300</guid>
				<description><![CDATA[It&#8217;s still not working, but this is what I have. I decided to integrate mouse clicking into my assignment 2 ghost chat, and bring the push-button interrupt into the p5js part of the equation, as opposed to leaving it with the arduino. This means that the user should be able to click around on the &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=300" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment 3"</span></a>]]></description>
								<content:encoded><![CDATA[<p>It&#8217;s still not working, but this is what I have.</p>
<p>I decided to integrate mouse clicking into my assignment 2 ghost chat, and bring the push-button interrupt into the p5js part of the equation, as opposed to leaving it with the arduino. This means that the user should be able to click around on the screen to ask questions. My issue could be that my code is wonky, because I haven&#8217;t yet been able to make p5js actually take information from the arduino and print it successfully using my own sketch, or it could be technical:</p>
<p><img class="alignnone size-medium wp-image-301" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM-300x225.png" alt="" width="300" height="225" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM-300x225.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM-768x575.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM-1024x767.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM-1200x898.png 1200w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.04.25-AM.png 1568w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p>I thought the problem had solved itself, but it seems that the Beats have spawned more beats, and p5.serialcontrol likes to open that port instead of the usbmodem even after I&#8217;ve closed the weird beats port and opened the other one instead. Sometimes it stays with the usb modem for a few minutes, and I can run a few sketches, and sometimes it doesn&#8217;t feel the need to do anything I ask, and I wrestle with it for an hour or two.</p>
<p>So here are my sketches:</p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/ghost_chat_p5js-2.zip">ghost_chat_p5js 2</a></p>
<p>and the fritzing:</p>
<p><img class="alignnone size-medium wp-image-303" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.11.12-AM-219x300.png" alt="" width="219" height="300" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.11.12-AM-219x300.png 219w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.11.12-AM-768x1051.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.11.12-AM-748x1024.png 748w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-08-at-3.11.12-AM.png 940w" sizes="(max-width: 219px) 85vw, 219px" /></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=300</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Virtural &#8220;Etch a Sketch&#8221;</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=263</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=263#respond</comments>
				<pubDate>Tue, 06 Feb 2018 09:20:23 +0000</pubDate>
		<dc:creator><![CDATA[yihanz@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>
		<category><![CDATA[Assignments]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=263</guid>
				<description><![CDATA[For this assignment, I used two potentiometers to simulate the &#8220;Etch A Sketch&#8221; (Wikipedia_&#8221;Etch A Sketch&#8221;). Using two potentiometer, one controls left and right movement, and the other controls the up and down movement, the browser window is going to serve as a canvas for the &#8220;Etch A Sketch&#8221; board. &#160; Parts list: Potentiometer (10K)  &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=263" class="more-link">Continue reading<span class="screen-reader-text"> "Virtural &#8220;Etch a Sketch&#8221;"</span></a>]]></description>
								<content:encoded><![CDATA[<p>For this assignment, I used two potentiometers to simulate the &#8220;Etch A Sketch&#8221; (<a href="https://en.wikipedia.org/wiki/Etch_A_Sketch">Wikipedia_&#8221;Etch A Sketch&#8221;</a>). Using two potentiometer, one controls left and right movement, and the other controls the up and down movement, the browser window is going to serve as a canvas for the &#8220;Etch A Sketch&#8221; board.</p>
<p>&nbsp;</p>
<ul>
<li>Parts list:
<ul>
<li>Potentiometer (10K)  x2</li>
<li>Adafruit M0 Metro Express</li>
<li>Bunch of jumper wires</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Fritzing Sketch:</p>
<p><img class="alignnone wp-image-277" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch_bb-300x123.jpg" alt="" width="468" height="192" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch_bb-300x123.jpg 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch_bb-768x316.jpg 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch_bb-1024x421.jpg 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch_bb-1200x493.jpg 1200w" sizes="(max-width: 468px) 85vw, 468px" /></p>
<p>&nbsp;</p>
<p>Code (Arduino Part):</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #993333;">const</span> <span style="color: #993333;">int</span> leftRightPot <span style="color: #339933;">=</span> A4<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//with green LED</span><br />
<span style="color: #993333;">const</span> <span style="color: #993333;">int</span> upDownPot <span style="color: #339933;">=</span> A5<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// with blue LED</span><br />
<br />
<span style="color: #993333;">const</span> <span style="color: #993333;">int</span> tol <span style="color: #339933;">=</span> <span style="color: #0000dd;">100</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">int</span> leftRightVal <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">int</span> upDownVal <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">int</span> valHi <span style="color: #339933;">=</span> <span style="color: #0000dd;">1024</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">int</span> valLo <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<br />
<br />
<span style="color: #666666; font-style: italic;">//******************************</span><br />
<span style="color: #666666; font-style: italic;">//Setup for Arduino to run</span><br />
<span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #666666; font-style: italic;">// put your setup code here, to run once:</span><br />
&nbsp;pinMode<span style="color: #009900;">&#40;</span>leftRightPot <span style="color: #339933;">,</span> INPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;pinMode<span style="color: #009900;">&#40;</span>upDownPot<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
Serial.<span style="color: #202020;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #666666; font-style: italic;">//******************************</span><br />
<span style="color: #666666; font-style: italic;">//The operating loop</span><br />
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #666666; font-style: italic;">// put your main code here, to run repeatedly:</span><br />
&nbsp;leftRightVal <span style="color: #339933;">=</span> reMapped<span style="color: #009900;">&#40;</span>analogRead<span style="color: #009900;">&#40;</span>leftRightPot<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;upDownVal <span style="color: #339933;">=</span> reMapped<span style="color: #009900;">&#40;</span>analogRead<span style="color: #009900;">&#40;</span>upDownPot<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Serial.print(&quot;leftRightVal = &quot;);</span><br />
&nbsp;<span style="color: #666666; font-style: italic;">// Serial.println(leftRightVal);</span><br />
<br />
<span style="color: #666666; font-style: italic;">//Modified from class Note 5</span><br />
&nbsp;Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;leftRightVal,&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span>leftRightVal<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;,upDownVal,&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;Serial.<span style="color: #202020;">println</span><span style="color: #009900;">&#40;</span>upDownVal<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #666666; font-style: italic;">//***********************************</span><br />
<span style="color: #666666; font-style: italic;">//function used to remap input value into one</span><br />
<span style="color: #993333;">int</span> reMapped<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> input<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #993333;">int</span> output <span style="color: #339933;">=</span> map<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1023</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #b1b100;">return</span> output<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>&nbsp;</p>
<p>Code (js part):</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">var</span> cnv<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> serial<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> portName <span style="color: #339933;">=</span> <span style="color: #3366CC;">'COM4'</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> dataRead<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">//@TODO : find out what port name it is</span><br />
<br />
<span style="color: #006600; font-style: italic;">//***************</span><br />
<span style="color: #006600; font-style: italic;">//Here are some global variables:</span><br />
<span style="color: #006600; font-style: italic;">//@TODO: Figure out how to make them function in OOP</span><br />
<span style="color: #000066; font-weight: bold;">var</span> curPosX <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> curPosY <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> leftRightVal <span style="color: #339933;">=</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> upDownVal <span style="color: #339933;">=</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">const</span> rightUpThresh <span style="color: #339933;">=</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">const</span> leftDownThresh <span style="color: #339933;">=</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> xPoint<span style="color: #339933;">=</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> yPoint<span style="color: #339933;">=</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// ****************</span><br />
<span style="color: #006600; font-style: italic;">//Basic setup for serial port and canvas</span><br />
<span style="color: #006600; font-style: italic;">//******************</span><br />
<span style="color: #000066; font-weight: bold;">function</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<br />
&nbsp;serial <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> p5.<span style="color: #660066;">SerialPort</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">// now set a number of callback functions for SerialPort</span><br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'list'</span><span style="color: #339933;">,</span> printList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'connected'</span><span style="color: #339933;">,</span> serverConnected<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'open'</span><span style="color: #339933;">,</span> portOpen<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'data'</span><span style="color: #339933;">,</span> serialEvent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'error'</span><span style="color: #339933;">,</span> serialError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'close'</span><span style="color: #339933;">,</span> portClose<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
serial.<span style="color: #660066;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;serial.<span style="color: #660066;">open</span><span style="color: #009900;">&#40;</span>portName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//Here is canvas setup</span><br />
&nbsp;createCanvas<span style="color: #009900;">&#40;</span>windowWidth<span style="color: #339933;">,</span> windowHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>windowWidth <span style="color: #339933;">-</span> width<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> y <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>windowHeight <span style="color: #339933;">-</span> height<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span> <span style="color: #339933;">;</span><br />
&nbsp;cnv.<span style="color: #660066;">position</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span>y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<br />
&nbsp;background <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;white&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <br />
<br />
<br />
<br />
<span style="color: #006600; font-style: italic;">//**********************</span><br />
<span style="color: #006600; font-style: italic;">//Put drawing functions in here</span><br />
<span style="color: #000066; font-weight: bold;">function</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">// put drawing code here </span><br />
&nbsp;mouseSetPt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;drawWithPot<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;drawPts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #006600; font-style: italic;">//**************************</span><br />
<span style="color: #006600; font-style: italic;">//click mouse and reset the drawing point</span><br />
<span style="color: #000066; font-weight: bold;">function</span> mouseSetPt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">//get the point where the mouse clicks</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> mouseClickX <span style="color: #339933;">=</span> mouseX<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> mouseClickY <span style="color: #339933;">=</span> mouseY<span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//update the point in the array</span><br />
&nbsp;xPoint <span style="color: #339933;">=</span> xPoint <span style="color: #339933;">+</span> <span style="color: #009900;">&#91;</span>mouseClickX<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;yPoint <span style="color: #339933;">=</span> yPoint <span style="color: #339933;">+</span> <span style="color: #009900;">&#91;</span>mouseClickY<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//update the current/new position to start</span><br />
&nbsp;curPosX <span style="color: #339933;">=</span> xPoint<span style="color: #009900;">&#91;</span>xPoint.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;curPosY <span style="color: #339933;">=</span> yPoint<span style="color: #009900;">&#91;</span>yPoint.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #006600; font-style: italic;">//****************************</span><br />
<span style="color: #006600; font-style: italic;">//use potentiometer to draw (only moving left/right and up/down)</span><br />
<span style="color: #000066; font-weight: bold;">function</span> drawWithPot<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #006600; font-style: italic;">//@TODO: find a better way to store tese values, like tuples?</span><br />
<br />
<span style="color: #006600; font-style: italic;">//check right and left</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>leftRightVal <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span> rightUpThresh<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;curPosX <span style="color: #339933;">=</span> curPosX <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>leftRightVal <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span> leftDownThresh<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;curPosX <span style="color: #339933;">=</span> curPosX <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//check up and down</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>upDownVal <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span> rightUpThresh<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;curPosY <span style="color: #339933;">=</span> curPosY <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>upDownVal <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span> leftDownThresh<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;curPosY <span style="color: #339933;">=</span> curPosY <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//update the position list</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> prePosX <span style="color: #339933;">=</span> xPoint<span style="color: #009900;">&#91;</span>xPoint.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> prePosY <span style="color: #339933;">=</span> yPoint<span style="color: #009900;">&#91;</span>yPoint.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>curPosX <span style="color: #339933;">!=</span> prePosX <span style="color: #339933;">||</span> curPosY <span style="color: #339933;">!=</span> prePosY<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;xPoint <span style="color: #339933;">=</span> xPoint <span style="color: #339933;">+</span> <span style="color: #009900;">&#91;</span>curPosX<span style="color: #009900;">&#93;</span><br />
&nbsp;yPoint <span style="color: #339933;">=</span> yPoint <span style="color: #339933;">+</span> <span style="color: #009900;">&#91;</span>curPosY<span style="color: #009900;">&#93;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//************************</span><br />
<span style="color: #006600; font-style: italic;">//Draw all the points that is saved in the array</span><br />
<span style="color: #000066; font-weight: bold;">function</span> drawPts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> xPoint.<span style="color: #660066;">length</span> <span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> xPointPos <span style="color: #339933;">=</span> xPoint<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> yPointPos <span style="color: #339933;">=</span> yPoint<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;point<span style="color: #009900;">&#40;</span>xPointPos<span style="color: #339933;">,</span> yPointPos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//*****************************</span><br />
<span style="color: #006600; font-style: italic;">//All server related</span><br />
<span style="color: #000066; font-weight: bold;">function</span> printList<span style="color: #009900;">&#40;</span>portList<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">// for (var i = 0; i &amp;lt; portList.length; i++) {</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">// print(i + &quot; &quot; + portList[i]);</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">// }</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serverConnected<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp;print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'serverConnected'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> portOpen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp;print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'portOpen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serialEvent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> strRead <span style="color: #339933;">=</span> serial.<span style="color: #660066;">readStringUnil</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>strRead.<span style="color: #660066;">length</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">var</span> potStr <span style="color: #339933;">=</span> split<span style="color: #009900;">&#40;</span>strRead<span style="color: #339933;">,</span> <span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>potStr.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// ignore any tiny strings</span><br />
&nbsp;leftRightVal <span style="color: #339933;">=</span> potStr<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;upDownVal <span style="color: #339933;">=</span> potStr<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serialError<span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp;print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'serialError '</span> <span style="color: #339933;">+</span> err<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> portClose<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp;print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'portClose'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>&nbsp;</p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Etch-A-Sketch.zip">Zip -Etch A Sketch</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=263</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment 3</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=270</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=270#respond</comments>
				<pubDate>Tue, 06 Feb 2018 08:12:55 +0000</pubDate>
		<dc:creator><![CDATA[Rachel Wong]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>
		<category><![CDATA[Assignments]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=270</guid>
				<description><![CDATA[My potentiometer controls the curve of a graph displayed on the HTML page. The graph mapping code was from this NYU physical computing example: Lab: Serial Input to P5.js Video: Assignment3]]></description>
								<content:encoded><![CDATA[<p>My potentiometer controls the curve of a graph displayed on the HTML page. The graph mapping code was from this NYU physical computing example:</p>
<blockquote class="wp-embedded-content" data-secret="dAPsca6MLL"><p><a href="https://itp.nyu.edu/physcomp/labs/labs-serial-communication/lab-serial-input-to-the-p5-js-ide/">Lab: Serial Input to P5.js</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" src="https://itp.nyu.edu/physcomp/labs/labs-serial-communication/lab-serial-input-to-the-p5-js-ide/embed/#?secret=dAPsca6MLL" data-secret="dAPsca6MLL" width="600" height="338" title="&#8220;Lab: Serial Input to P5.js&#8221; &#8212; ITP Physical Computing" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>Video:</p>
<p><iframe width="840" height="630" src="https://www.youtube.com/embed/e883vwI7ADo?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>
<p><img class="alignnone size-medium wp-image-271" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Sketch-2-300x248.png" alt="" width="300" height="248" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Sketch-2-300x248.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Sketch-2-768x635.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Sketch-2-1024x847.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Sketch-2-1200x993.png 1200w" sizes="(max-width: 300px) 85vw, 300px" /></p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Assignment3.zip">Assignment3</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=270</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment3 &#8211; Knock x P5JS</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=265</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=265#respond</comments>
				<pubDate>Tue, 06 Feb 2018 03:47:17 +0000</pubDate>
		<dc:creator><![CDATA[ditoh@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>
		<category><![CDATA[Assignments]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=265</guid>
				<description><![CDATA[Made a simple animation that responds to knock. Illustrated falling bouncy balls as the user knocks. The animation is mostly based on the P5JS example code. Circuitry is the same as the previous assignment. Assign3 code]]></description>
								<content:encoded><![CDATA[<p>Made a simple animation that responds to knock. Illustrated falling bouncy balls as the user knocks. The animation is mostly based on the P5JS example code. Circuitry is the same as the previous assignment.</p>
<p><img class="alignnone size-full wp-image-267" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-22.41.33.png" alt="" width="609" height="462" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-22.41.33.png 609w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-22.41.33-300x228.png 300w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Assign3.zip">Assign3 code</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=265</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment Three</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=257</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=257#respond</comments>
				<pubDate>Mon, 05 Feb 2018 20:47:28 +0000</pubDate>
		<dc:creator><![CDATA[mcherban@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=257</guid>
				<description><![CDATA[Hot/Cold Game with a p5 twist For this assignment I moved the switch button functionality for state changes to the p5 sketch. Through the web browser you can change the state from start screen to play mode and back again. The Arduino sets the target value and then sends five states back to p5 in &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=257" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment Three"</span></a>]]></description>
								<content:encoded><![CDATA[<h4>Hot/Cold Game with a p5 twist</h4>
<p>For this assignment I moved the switch button functionality for state changes to the p5 sketch. Through the web browser you can change the state from start screen to play mode and back again. The Arduino sets the target value and then sends five states back to p5 in order to determine how close the player is to the target. The status of the player, hot/cold/warmer/colder/winner, is then displayed on screen instead of the LED in the previous version.</p>
<p><img class="alignnone wp-image-258" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/hotCold_3-300x138.png" alt="" width="637" height="293" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/hotCold_3-300x138.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/hotCold_3-768x354.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/hotCold_3-1024x472.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/hotCold_3-1200x554.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></p>
<p><iframe src="https://player.vimeo.com/video/254378236" width="840" height="473" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></p>
<p>password: MakingThingsInteractive</p>
<h6>Arduino Code:</h6>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #666666;">//--------NEOPIXEL SETUP --------</span><br />
<span style="color: #339900;">#include</span><br />
<span style="color: #339900;">#ifdef __AVR__</span><br />
<span style="color: #339900;">#include &amp;lt;avr/power.h&amp;gt;</span><br />
<span style="color: #339900;">#endif</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> PIN <span style="color: #000080;">=</span> <span style="color: #0000dd;">40</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> NUMPIXELS <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
Adafruit_NeoPixel pixels <span style="color: #000080;">=</span> Adafruit_NeoPixel<span style="color: #008000;">&#40;</span>NUMPIXELS, PIN, NEO_GRBW <span style="color: #000040;">+</span> NEO_KHZ800<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">//--------ULTRASONIC PINS N'AT--------</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> trigPin <span style="color: #000080;">=</span> A0<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> echoPin <span style="color: #000080;">=</span> A1<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">long</span> duration<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> distance<span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">//--------INCOMING CASE STATE--------</span><br />
<span style="color: #0000ff;">int</span> caseState<span style="color: #008080;">;</span><br />
<br />
<span style="color: #666666;">//--------OUTGOING CASE STATE--------</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> neutralState <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> winState <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> hotState <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> warmerState <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> colderState <span style="color: #000080;">=</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> iceState <span style="color: #000080;">=</span> <span style="color: #0000dd;">5</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> sendState <span style="color: #000080;">=</span> neutralState<span style="color: #008080;">;</span> <span style="color: #666666;">// current state of the button</span><br />
<br />
<span style="color: #666666;">//--------TIME--------</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> lastSampleTime <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> sampleInterval <span style="color: #000080;">=</span> <span style="color: #0000dd;">30000</span><span style="color: #008080;">;</span> <span style="color: #666666;">// in ms</span><br />
<br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> lastSampleTime2 <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> sampleInterval2 <span style="color: #000080;">=</span> <span style="color: #0000dd;">250</span><span style="color: #008080;">;</span> <span style="color: #666666;">// in ms</span><br />
<br />
<span style="color: #0000ff;">int</span> target<span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
<span style="color: #666666;">// put your setup code here, to run once:</span><br />
Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">115200</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
pinMode<span style="color: #008000;">&#40;</span>trigPin, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pinMode<span style="color: #008000;">&#40;</span>echoPin, INPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
randomSeed<span style="color: #008000;">&#40;</span>analogRead<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> now <span style="color: #000080;">=</span> millis<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> now2 <span style="color: #000080;">=</span> millis<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Serial.<span style="color: #007788;">available</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
caseState <span style="color: #000080;">=</span> Serial.<span style="color: #007788;">read</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">switch</span> <span style="color: #008000;">&#40;</span>caseState<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
<span style="color: #0000ff;">case</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">:</span><br />
pixelBlinkGreen<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>lastSampleTime <span style="color: #000040;">+</span> sampleInterval <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> now<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
lastSampleTime <span style="color: #000080;">=</span> now<span style="color: #008080;">;</span><br />
target <span style="color: #000080;">=</span> random<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">150</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #666666;">// pixelOff();</span><br />
<span style="color: #666666;">// Serial.print(&quot;Target Set&quot;);</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">case</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">:</span><br />
pixelBLUE<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>lastSampleTime2 <span style="color: #000040;">+</span> sampleInterval2 <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> now2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
lastSampleTime2 <span style="color: #000080;">=</span> now2<span style="color: #008080;">;</span><br />
Serial.<span style="color: #007788;">write</span><span style="color: #008000;">&#40;</span>target<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.print(&quot;T,&quot;);</span><br />
<span style="color: #666666;">// Serial.println(target);</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #666666;">// Serial.print(&quot;Find &quot;);</span><br />
<span style="color: #666666;">// Serial.println(target);</span><br />
hotCold<span style="color: #008000;">&#40;</span>target<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">default</span><span style="color: #008080;">:</span><br />
pixelBlinkYellow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.println(&quot;Push Button For New Game&quot;);</span><br />
<span style="color: #666666;">// statements</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> hotCold<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
digitalWrite<span style="color: #008000;">&#40;</span>trigPin, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
delayMicroseconds<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
digitalWrite<span style="color: #008000;">&#40;</span>trigPin, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
delayMicroseconds<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
digitalWrite<span style="color: #008000;">&#40;</span>trigPin, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
duration <span style="color: #000080;">=</span> pulseIn<span style="color: #008000;">&#40;</span>echoPin, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
distance <span style="color: #000080;">=</span> duration <span style="color: #000040;">/</span> <span style="color: #0000dd;">10</span> <span style="color: #000040;">/</span> <span style="color: #0000dd;">2</span> <span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> now2 <span style="color: #000080;">=</span> millis<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>lastSampleTime2 <span style="color: #000040;">+</span> sampleInterval2 <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> now2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
lastSampleTime2 <span style="color: #000080;">=</span> now2<span style="color: #008080;">;</span><br />
pixelOff<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> <span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixelState1<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
sendState <span style="color: #000080;">=</span> winState<span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.write(&quot;ON FIRE!&quot;);</span><br />
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> <span style="color: #0000dd;">15</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> <span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> <span style="color: #0000dd;">15</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixelState2<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
sendState <span style="color: #000080;">=</span> hotState<span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.println(&quot;Things are heating up&quot;);</span><br />
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> <span style="color: #0000dd;">25</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> <span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> <span style="color: #0000dd;">25</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixelState3<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
sendState <span style="color: #000080;">=</span> warmerState<span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.println(&quot;Warmer...&quot;); // instead of print line, then you can do score value</span><br />
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> <span style="color: #0000dd;">35</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> <span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> <span style="color: #0000dd;">35</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixelState4<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
sendState <span style="color: #000080;">=</span> colderState<span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.println(&quot;Cooler...&quot;);</span><br />
<br />
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> <span style="color: #0000dd;">45</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span> <span style="color: #008000;">&#40;</span>distance <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">-</span> <span style="color: #0000dd;">45</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixelState5<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
sendState <span style="color: #000080;">=</span> iceState<span style="color: #008080;">;</span><br />
<span style="color: #666666;">// Serial.println(&quot;Pretty Cold&quot;);</span><br />
<br />
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #008000;">&#123;</span><br />
pixelOff<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #666666;">//Serial.println(&quot;Something is wrong&quot;);</span><br />
<span style="color: #008000;">&#125;</span><br />
Serial.<span style="color: #007788;">write</span> <span style="color: #008000;">&#40;</span>sendState<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelChange <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> y<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
<br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelBlinkGreen<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">500</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">500</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelBlinkYellow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">200</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">75</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">250</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">250</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelState1<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelState2<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">215</span>, <span style="color: #0000dd;">13</span>, <span style="color: #0000dd;">138</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelState3<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">150</span>, <span style="color: #0000dd;">55</span>, <span style="color: #0000dd;">150</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelState4<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">138</span>, <span style="color: #0000dd;">70</span>, <span style="color: #0000dd;">215</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelState5<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">100</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">255</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelBLUE<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">255</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> pixelOff<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
pixels.<span style="color: #007788;">setPixelColor</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, pixels.<span style="color: #007788;">Color</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
pixels.<span style="color: #007788;">show</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// This sends the updated pixel color to the hardware.</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<h6>p5 Code:</h6>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">var</span> serial<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> portName <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/dev/cu.usbmodem1411'</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> button<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> count <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> buttonCount<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> findState<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> targetSet<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> target<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> time1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">30000</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> time2 <span style="color: #339933;">=</span> <span style="color: #CC0000;">20</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> noiseScale <span style="color: #339933;">=</span> <span style="color: #CC0000;">0.01</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> caseState<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> lineMap<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> redVal<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> blueVal<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> testRect<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> ranVal<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> lastSampleTime <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> sampleInterval <span style="color: #339933;">=</span> <span style="color: #CC0000;">250</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// in ms</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
serial <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> p5.<span style="color: #660066;">SerialPort</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// now set a number of callback functions for SerialPort</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'list'</span><span style="color: #339933;">,</span> printList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'connected'</span><span style="color: #339933;">,</span> serverConnected<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'open'</span><span style="color: #339933;">,</span> portOpen<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'data'</span><span style="color: #339933;">,</span> serialEvent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'error'</span><span style="color: #339933;">,</span> serialError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'close'</span><span style="color: #339933;">,</span> portClose<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
serial.<span style="color: #660066;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
serial.<span style="color: #660066;">open</span><span style="color: #009900;">&#40;</span>portName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
colorMode<span style="color: #009900;">&#40;</span>RGB<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
createCanvas<span style="color: #009900;">&#40;</span>windowWidth<span style="color: #339933;">,</span> windowHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
testRect <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Rectangle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
background<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// set the background to white</span><br />
startScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
ranVal <span style="color: #339933;">=</span> random<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> startScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// fill with black</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>BOLD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>LEFT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;The Hot/Cold Game&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">75</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
startButton<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>count <span style="color: #339933;">%</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
playScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> playScreen <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> startX <span style="color: #339933;">=</span> windowWidth <span style="color: #339933;">-</span><span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> startY <span style="color: #339933;">=</span> <span style="color: #CC0000;">75</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endX <span style="color: #339933;">=</span> windowWidth <span style="color: #339933;">-</span><span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endY <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">75</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> topWall <span style="color: #339933;">=</span> startY<span style="color: #339933;">+</span><span style="color: #CC0000;">5</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> bottomWall <span style="color: #339933;">=</span> endY<span style="color: #339933;">-</span><span style="color: #CC0000;">5</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>ranVal<span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> lineLength <span style="color: #339933;">=</span> endY <span style="color: #339933;">-</span> startY<span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// console.log(&quot;line length: &quot; + lineLength);</span><br />
<br />
<span style="color: #006600; font-style: italic;">// var mapVal = map(xc, topWall, bottomWall, 0, 150);</span><br />
<span style="color: #006600; font-style: italic;">// lineMap = int(mapVal);</span><br />
<br />
background<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// fill with black</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>BOLD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>LEFT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;The Hot/Cold Game&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">75</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>target <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #CC0000;">6</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> target <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>NORMAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>LEFT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Target Set&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">400</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">/*<br />
stroke(0);<br />
strokeWeight(2);<br />
line (startX, startY, endX, endY);<br />
line (startX - 10, startY, startX+10, startY);<br />
line (endX - 10, endY, endX+10, endY);<br />
<br />
ellipse(startX, xc, 10, 10);<br />
// text (&quot;map val &quot; + mapVal, startX+75, xc);<br />
*/</span><br />
<br />
rectColor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
hotColdLevel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// winnerWinner();</span><br />
backButton<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>count <span style="color: #339933;">%</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
startScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> rectColor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> from <span style="color: #339933;">=</span> color<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> to <span style="color: #339933;">=</span> color<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interA <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interB <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interC <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.75</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> textX <span style="color: #339933;">=</span> windowWidth <span style="color: #339933;">-</span> <span style="color: #CC0000;">230</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> textY <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">60</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// testRect.display();</span><br />
<br />
noStroke<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>NORMAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
testRect.<span style="color: #660066;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;WINNER&quot;</span><span style="color: #339933;">,</span> textX<span style="color: #339933;">,</span> textY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span>interA<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
testRect.<span style="color: #660066;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;hot&quot;</span><span style="color: #339933;">,</span> textX<span style="color: #339933;">,</span> textY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span>interB<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
testRect.<span style="color: #660066;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;warmer&quot;</span><span style="color: #339933;">,</span> textX<span style="color: #339933;">,</span> textY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span>interC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
testRect.<span style="color: #660066;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;colder&quot;</span><span style="color: #339933;">,</span> textX<span style="color: #339933;">,</span> textY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
fill<span style="color: #009900;">&#40;</span>to<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
testRect.<span style="color: #660066;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ice cold&quot;</span><span style="color: #339933;">,</span> textX<span style="color: #339933;">,</span> textY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> hotColdLevel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #006600; font-style: italic;">// var printTarget = int(targetSet);</span><br />
<span style="color: #006600; font-style: italic;">// console.log(printTarget);</span><br />
<span style="color: #000066; font-weight: bold;">var</span> startX <span style="color: #339933;">=</span> windowWidth <span style="color: #339933;">-</span><span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> startY <span style="color: #339933;">=</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endX <span style="color: #339933;">=</span> windowWidth<span style="color: #339933;">;</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">150</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endY <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">140</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> topWall <span style="color: #339933;">=</span> startY<span style="color: #339933;">+</span><span style="color: #CC0000;">5</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> bottomWall <span style="color: #339933;">=</span> endY<span style="color: #339933;">-</span><span style="color: #CC0000;">5</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> lineLength <span style="color: #339933;">=</span> endY <span style="color: #339933;">-</span> startY<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> x <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> windowWidth<span style="color: #339933;">;</span> x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> noiseVal <span style="color: #339933;">=</span> noise<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>ranVal <span style="color: #339933;">+</span> x<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> noiseScale<span style="color: #339933;">,</span> mouseY <span style="color: #339933;">*</span> noiseScale<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> alpha1 <span style="color: #339933;">=</span> noiseVal <span style="color: #339933;">*</span> <span style="color: #CC0000;">255</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">50</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> from <span style="color: #339933;">=</span> color<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> alpha1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> to <span style="color: #339933;">=</span> color<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> alpha1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interA <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.25</span><span style="color: #339933;">,</span> alpha1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interB <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.5</span><span style="color: #339933;">,</span> alpha1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> interC <span style="color: #339933;">=</span> lerpColor<span style="color: #009900;">&#40;</span>from<span style="color: #339933;">,</span> to<span style="color: #339933;">,</span> <span style="color: #CC0000;">0.75</span><span style="color: #339933;">,</span> alpha1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> xc<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> increase1 <span style="color: #339933;">=</span> startY <span style="color: #339933;">+</span><span style="color: #CC0000;">100</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> increase2 <span style="color: #339933;">=</span> startY <span style="color: #339933;">+</span><span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> increase3 <span style="color: #339933;">=</span> startY <span style="color: #339933;">+</span><span style="color: #CC0000;">300</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
stroke<span style="color: #009900;">&#40;</span>from<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>startY<span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
stroke<span style="color: #009900;">&#40;</span>interA<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>increase1<span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
stroke<span style="color: #009900;">&#40;</span>interB<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>increase2<span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
stroke<span style="color: #009900;">&#40;</span>interC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>increase3<span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>findState <span style="color: #339933;">==</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
stroke<span style="color: #009900;">&#40;</span>to<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
xc <span style="color: #339933;">=</span> constrain<span style="color: #009900;">&#40;</span>endY <span style="color: #339933;">-</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> topWall<span style="color: #339933;">,</span> bottomWall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// stroke(colorVal, 0, 100, alpha1);</span><br />
line<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span> xc <span style="color: #339933;">+</span> noiseVal <span style="color: #339933;">*</span> <span style="color: #CC0000;">30</span><span style="color: #339933;">,</span> x<span style="color: #339933;">,</span> endY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// line(x, xc + noiseVal * 30, x, endY);</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> winnerWinner<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>mouseY <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span> <span style="color: #009900;">&#40;</span>target<span style="color: #339933;">+</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> mouseY <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span> <span style="color: #009900;">&#40;</span>target<span style="color: #339933;">-</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
background <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// fill with black</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>BOLD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>LEFT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;The Hot/Cold Game&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">75</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// fill with black</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>BOLD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Winner Winner!&quot;</span><span style="color: #339933;">,</span> windowWidth<span style="color: #339933;">*</span>.5<span style="color: #339933;">,</span> windowHeight<span style="color: #339933;">*</span>.5<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> Rectangle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">x</span> <span style="color: #339933;">=</span> windowWidth<span style="color: #339933;">-</span><span style="color: #CC0000;">380</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">y</span> <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">90</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">width</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">300</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">height</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">corner</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
rect<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">x</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">y</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">width</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">height</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">corner</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// stroke(0);</span><br />
<span style="color: #006600; font-style: italic;">// line(75,100, windowWidth-75, 100);</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> startButton<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #CC0000;">80</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> y <span style="color: #339933;">=</span> <span style="color: #CC0000;">125</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> buttonWidth <span style="color: #339933;">=</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> buttonHeight <span style="color: #339933;">=</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> startY <span style="color: #339933;">=</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endY <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">110</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
rect<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span> y<span style="color: #339933;">,</span> buttonWidth<span style="color: #339933;">,</span> buttonHeight<span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
noStroke<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>NORMAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Start Game&quot;</span><span style="color: #339933;">,</span> x <span style="color: #339933;">+</span> <span style="color: #CC0000;">100</span> <span style="color: #339933;">,</span> y <span style="color: #339933;">+</span> <span style="color: #CC0000;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// if (mouseIsPressed){</span><br />
<span style="color: #006600; font-style: italic;">// caseState = 1;</span><br />
<span style="color: #006600; font-style: italic;">// serial.write(caseState);</span><br />
<span style="color: #006600; font-style: italic;">// console.log(caseState);</span><br />
<span style="color: #006600; font-style: italic;">// }</span><br />
<br />
<span style="color: #006600; font-style: italic;">/*<br />
if (count % 3 == 1){<br />
noStroke();<br />
fill(255, 0, 89);<br />
} else if (count % 3 == 2){<br />
noStroke();<br />
fill(177);<br />
} else {<br />
noStroke();<br />
fill(255);<br />
}<br />
ellipse (windowWidth*.5, windowHeight*.5, 100,100);<br />
*/</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> backButton<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #CC0000;">80</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> y <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">90</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> buttonWidth <span style="color: #339933;">=</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> buttonHeight <span style="color: #339933;">=</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> startY <span style="color: #339933;">=</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> endY <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">;</span><br />
<br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">225</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
noStroke<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
rect<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span> y<span style="color: #339933;">,</span> buttonWidth<span style="color: #339933;">,</span> buttonHeight<span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
fill<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
noStroke<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textStyle<span style="color: #009900;">&#40;</span>NORMAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
textAlign<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
text<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Back&quot;</span><span style="color: #339933;">,</span> x <span style="color: #339933;">+</span> <span style="color: #CC0000;">100</span> <span style="color: #339933;">,</span> y <span style="color: #339933;">+</span> <span style="color: #CC0000;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #006600; font-style: italic;">// if (mouseIsPressed){</span><br />
<span style="color: #006600; font-style: italic;">// target = int(random(startY,endY));</span><br />
<span style="color: #006600; font-style: italic;">// }</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> mousePressed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> backHeight <span style="color: #339933;">=</span> windowHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">60</span><br />
<span style="color: #000066; font-weight: bold;">var</span> r1 <span style="color: #339933;">=</span> dist<span style="color: #009900;">&#40;</span>mouseX<span style="color: #339933;">,</span> mouseY<span style="color: #339933;">,</span> <span style="color: #CC0000;">180</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">155</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">var</span> r2 <span style="color: #339933;">=</span> dist<span style="color: #009900;">&#40;</span>mouseX<span style="color: #339933;">,</span> mouseY<span style="color: #339933;">,</span> <span style="color: #CC0000;">180</span><span style="color: #339933;">,</span> backHeight <span style="color: #339933;">-</span> <span style="color: #CC0000;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>r1 <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
button <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
caseState <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;start button pressed&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
count <span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>r2 <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
button <span style="color: #339933;">=</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span><br />
caseState <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;back button pressed&quot;</span><span style="color: #009900;">&#41;</span><br />
count <span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
button <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;button NOT pressed&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
serial.<span style="color: #660066;">write</span><span style="color: #009900;">&#40;</span>caseState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//-----SERIAL FUNCTIONS-----</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> printList<span style="color: #009900;">&#40;</span>portList<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> portList.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
print<span style="color: #009900;">&#40;</span>i <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> portList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serverConnected<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'serverConnected'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> portOpen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'portOpen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serialEvent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #006600; font-style: italic;">// TODO now here's a problem. What if we want to read both</span><br />
<span style="color: #006600; font-style: italic;">// the blueLed and redLed values? All we know in p5.js is</span><br />
<span style="color: #006600; font-style: italic;">// that there is same data to be read, we don't have a context</span><br />
<span style="color: #006600; font-style: italic;">// for this value</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #006600; font-style: italic;">// this is where a state machine represented by an integer is</span><br />
<span style="color: #006600; font-style: italic;">// valuable, we just just pass the state up as an int then</span><br />
<span style="color: #006600; font-style: italic;">// p5.js can switch/caes that integer</span><br />
<br />
<span style="color: #006600; font-style: italic;">// distanceRead = Number(serial.read());</span><br />
<span style="color: #006600; font-style: italic;">// button = Number(serial.read());</span><br />
<br />
<span style="color: #006600; font-style: italic;">// var inByte = serial.read();</span><br />
<span style="color: #006600; font-style: italic;">// inData = inByte;</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<br />
<span style="color: #000066; font-weight: bold;">var</span> incoming <span style="color: #339933;">=</span> serial.<span style="color: #660066;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>incoming <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
targetSet <span style="color: #339933;">=</span> incoming<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>incoming <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
findState <span style="color: #339933;">=</span> incoming<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">/*<br />
// now we're reading a string<br />
// TODO how does a string end?<br />
var stringRead = serial.readStringUntil('\r\n');<br />
<br />
// TODO now we're off in object oriented programming<br />
// what type is stringRead? Note we didn't define it<br />
if (stringRead.length &amp;gt; 0 ) {<br />
var potString = split(stringRead, ',');<br />
<br />
// potString[0] B<br />
// potString[1] 159<br />
// potString[2] R<br />
// potString[3] 60<br />
<br />
if (potString.length == 2) { // ignore any tiny strings<br />
targetSet = potString[1];<br />
}<br />
}<br />
*/</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> serialError<span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'serialError '</span> <span style="color: #339933;">+</span> err<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">function</span> portClose<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
print<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'portClose'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Cherban_assignment03.zip">Arduino + p5js + Fritzing files</a></p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=257</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>A3: Serial Port in P5</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=252</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=252#respond</comments>
				<pubDate>Mon, 05 Feb 2018 19:53:11 +0000</pubDate>
		<dc:creator><![CDATA[vkamath@andrew.cmu.edu]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>
		<category><![CDATA[Assignments]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=252</guid>
				<description><![CDATA[Assignment 2: LED Color Picker The code is same as A2 but the debugging code is modified to send RGB data through the serial port, I use this information to change the color of the ellipse and show debug information on the browser. A3 Code and JS Reflection: Can use the joystick movement to make &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=252" class="more-link">Continue reading<span class="screen-reader-text"> "A3: Serial Port in P5"</span></a>]]></description>
								<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-198" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-11.20.00-PM-1024x460.png" alt="" width="840" height="377" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-11.20.00-PM-1024x460.png 1024w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-11.20.00-PM-300x135.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-11.20.00-PM-768x345.png 768w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/01/Screen-Shot-2018-01-29-at-11.20.00-PM-1200x539.png 1200w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
<p><img class="alignnone size-full wp-image-254" src="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-2.47.56-PM.png" alt="" width="856" height="638" srcset="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-2.47.56-PM.png 856w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-2.47.56-PM-300x224.png 300w, https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/Screen-Shot-2018-02-05-at-2.47.56-PM-768x572.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></p>
<blockquote class="wp-embedded-content" data-secret="slIbrXVKFK"><p><a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=196">Assignment 2: LED Color Picker</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" src="https://courses.ideate.cmu.edu/48-339/s2018/?p=196&#038;embed=true#?secret=slIbrXVKFK" data-secret="slIbrXVKFK" width="600" height="338" title="&#8220;Assignment 2: LED Color Picker&#8221; &#8212; Making Things Interactive" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>The code is same as A2 but the debugging code is modified to send RGB data through the serial port, I use this information to change the color of the ellipse and show debug information on the browser.</p>
<p><a href="https://courses.ideate.cmu.edu/48-339/s2018/wp-content/uploads/2018/02/A3.zip">A3 Code and JS</a></p>
<p>Reflection: Can use the joystick movement to make an interactive widget.</p>
<p>References: https://github.com/vanevery/p5.serialport/tree/master/examples</p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=252</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Assignment 3: p5.js + Arduino</title>
		<link>https://courses.ideate.cmu.edu/48-339/s2018/?p=239</link>
				<comments>https://courses.ideate.cmu.edu/48-339/s2018/?p=239#comments</comments>
				<pubDate>Thu, 01 Feb 2018 23:34:58 +0000</pubDate>
		<dc:creator><![CDATA[jet Townsend]]></dc:creator>
				<category><![CDATA[Assignment 3]]></category>

		<guid isPermaLink="false">https://courses.ideate.cmu.edu/48-339/s2018/?p=239</guid>
				<description><![CDATA[Assignment 3 Due 23:59, 5 Feb, please post a .zip folder with your p5.js folder, Arduino sketch, and Fritzing sketch.  If you can post video, great. Tie your previous project (or a new one if you like) to a p5.js client: display the state of your client and any relevant sensor data in p5.js.   Use &#8230; <a href="https://courses.ideate.cmu.edu/48-339/s2018/?p=239" class="more-link">Continue reading<span class="screen-reader-text"> "Assignment 3: p5.js + Arduino"</span></a>]]></description>
								<content:encoded><![CDATA[<h2>Assignment 3</h2>
<p>Due 23:59, 5 Feb, please post a .zip folder with your p5.js folder, Arduino sketch, and Fritzing sketch.  If you can post video, great.</p>
<p>Tie your previous project (or a new one if you like) to a p5.js client: display the state of your client and any relevant sensor data in p5.js.   Use graphics, animation, sound, or any other p5.js feature you think is the best element for displaying this data.</p>
]]></content:encoded>
							<wfw:commentRss>https://courses.ideate.cmu.edu/48-339/s2018/?feed=rss2&#038;p=239</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
	</channel>
</rss>
