<?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>Monkey with a Mustache Entertainment</title>
	<atom:link href="http://monkeytheater.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://monkeytheater.com</link>
	<description></description>
	<lastBuildDate>Wed, 13 Feb 2013 17:42:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Choosatron.com has launched!</title>
		<link>http://monkeytheater.com/2013/01/choosatron-com-has-launched/</link>
		<comments>http://monkeytheater.com/2013/01/choosatron-com-has-launched/#comments</comments>
		<pubDate>Fri, 18 Jan 2013 07:07:40 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>
		<category><![CDATA[mia]]></category>
		<category><![CDATA[paperdarts]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=116</guid>
		<description><![CDATA[<p>After a long week of toiling, the site is up, along with a new Choosatron video talking about the project and it&#8217;s goals. I&#8217;ve also changed my twitter to <a title="@Bjelojac" href="https://twitter.com/Bjelojac">@Bjelojac</a>. Head on over, check out the video, and maybe &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>After a long week of toiling, the site is up, along with a new Choosatron video talking about the project and it&#8217;s goals. I&#8217;ve also changed my twitter to <a title="@Bjelojac" href="https://twitter.com/Bjelojac">@Bjelojac</a>. Head on over, check out the video, and maybe write a story for me while you&#8217;re at it.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2013/01/choosatron-com-has-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron + Paper Darts = Awesome Times</title>
		<link>http://monkeytheater.com/2012/10/choosatron-paper-darts-awesome-times/</link>
		<comments>http://monkeytheater.com/2012/10/choosatron-paper-darts-awesome-times/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 18:43:59 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>
		<category><![CDATA[paperdarts]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=109</guid>
		<description><![CDATA[<p>&#160;</p>
<p>Paper Darts has been extremely supportive of my Choosatron project from the moment they heard about it. They wanted to do what they could to help, but at the time I just needed to get it to work. Once &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<div id="attachment_114" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-114" alt="Paper Darts Choosatron Station" src="http://i2.wp.com/monkeytheater.com/wp-content/uploads/2012/10/choosatron3.jpg?resize=300%2C225" data-recalc-dims="1" /><p class="wp-caption-text">Paper Darts Choosatron Station</p></div>
<p>Paper Darts has been extremely supportive of my Choosatron project from the moment they heard about it. They wanted to do what they could to help, but at the time I just needed to get it to work. Once the first prototype worked (named &#8216;Argyle&#8217;) they asked if I would be willing to bring it to their <a title="Paper Darts Volume 4 Release Party" href="http://www.paperdarts.org/blog/2012/10/12/we-have-liftoff.html" target="_blank">Paper Darts Volume 4 Release Party</a> (<a title="buy the book" href="http://paperdarts.bigcartel.com/product/pre-order-paper-darts-volume-4" target="_blank">buy the book</a>)! They also posted an <a title="interview with me about the Choosatron here" href="http://www.paperdarts.org/literary-magazine/meet-the-creator-the-choosatron-deluxe-adventure-matrix.html">interview with me about the Choosatron here</a>. Both an incredible honor, especially for someone not used to being involved with the literary community of our fair Twin Cities. It also served as a fantastic deadline for the second prototype, and gathering submitted stories. I was able to convince various clever friends and talented writers to write stories for me, and managed to get three completed and tested before the event. I was working over the last few months to acquire better/cheaper hardware to build the improved second prototype (named &#8216;Bomber&#8217;).</p>
<div id="attachment_112" class="wp-caption alignright" style="width: 235px"><img class="size-medium wp-image-112" alt="The second Choosatron prototype." src="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/10/choosatron1.jpg?resize=225%2C300" data-recalc-dims="1" /><p class="wp-caption-text">The second Choosatron prototype.</p></div>
<p>Time has been sparse but I managed to get the guts of Bomber working before heading to California for work which took nine potentially productive days away. Once I returned it was four days until the event, and I still had no enclosure for Bomber, and I needed to write more code! At the same time I was making sure the three submitted stories (from Robert Valentine, Rob Callahan, and Wes Burdine) worked properly on the Choosatron&#8230;this meant updates to my conversion scripts and other small fixes. I worked late Wednesday night, soldering at 4:30am, and half of Thursday right up until I had to leave for the event, but I made it.</p>
<p>Bomber is beautiful! I ended up using foam-core which looks very nice, is sturdy, and I could cut it all by hand. It also allowed for flexibility in design as I just tried different methods to mount and contain it all, until it worked. I achieved all my goals as it&#8217;s compact, components are secure, SD card is easy to access, USB port similarly easy, a functional coin return, and coin storage. I can continue to develop with it and easily transport it for demoing.</p>
<p>For the release party I didn&#8217;t have the keyboard screwed in, just taped from underneath, so people did freak out whenever they hit the buttons too hard and it popped through. <img src='http://i2.wp.com/monkeytheater.com/wp-includes/images/smilies/icon_smile.gif?w=550' alt=':)' class='wp-smiley' data-recalc-dims="1" />  I assured them it was fine and stuck it back on. The day after this was immediately corrected.</p>
<p>The most exciting part of the event was getting approached by the program coordinator for <a title="The Loft Literary Center" href="https://www.loft.org/" target="_blank">The Loft Literary Center</a>, Jennifer Dodgson. After getting the first prototype working I loved the idea that this could be used as an educational tool. She asked me what I thought about teaching a class using the Choosatron, and I was dumbfounded at my luck! I didn&#8217;t know much about The Loft at the time, so only got more excited as I realized what an amazing place this was for teaching young people. Needless to say I jumped on the opportunity and unless it turns out no one is interested, I will be teaching &#8220;Interactive Fiction and Game Design with the Choosatron&#8221; next summer. Wordy title I know. Each student will get to build their own Choosatron, and write stories to play on them!</p>
<p>For me personally this is a big deal. I come from a family of teachers but haven&#8217;t had the opportunity to teach kids myself, but have always wanted to, so I&#8217;m excited about the personal growth I think this will provide me. It also means more reasons and deadlines to keep the project alive instead of putting it on the shelf to gather dust like so many other things. The future is bright for the Choosatron, and more so for it&#8217;s mission. I&#8217;m proud of what I&#8217;ve managed to make happen in a relatively short amount of time (especially considering this was a side, side, side project), and look forward to it&#8217;s future!</p>
<div id="attachment_113" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-113" alt="Bomber's Guts" src="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/10/choosatron2.jpg?resize=300%2C225" data-recalc-dims="1" /><p class="wp-caption-text">Bomber&#8217;s Guts</p></div>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/10/choosatron-paper-darts-awesome-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: The Librarian&#8217;s Apprentice</title>
		<link>http://monkeytheater.com/2012/10/choosatron-the-librarians-apprentice/</link>
		<comments>http://monkeytheater.com/2012/10/choosatron-the-librarians-apprentice/#comments</comments>
		<pubDate>Fri, 05 Oct 2012 16:16:19 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=107</guid>
		<description><![CDATA[<p>The Librarian&#8217;s Apprentice is the first story ever submitted to be played on the Choosatron! Robert Valentine, a writer/director based in London, has done me the great honor of putting his time into such a random project. His excitement over &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>The Librarian&#8217;s Apprentice is the first story ever submitted to be played on the Choosatron! Robert Valentine, a writer/director based in London, has done me the great honor of putting his time into such a random project. His excitement over the Choosatron was incredibly inspiring and definitely pushed me along, so thanks Rob! Hope you enjoy the video and disregard my terrible pronunciations. Anyway, without further ado please enjoy a video of my first play of Rob&#8217;s story.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='550' height='340' src='http://www.youtube.com/embed/Lp1Ew9zY8DI?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/10/choosatron-the-librarians-apprentice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: Applying Feedback</title>
		<link>http://monkeytheater.com/2012/08/choosatron-applying-feedback/</link>
		<comments>http://monkeytheater.com/2012/08/choosatron-applying-feedback/#comments</comments>
		<pubDate>Thu, 09 Aug 2012 17:10:13 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=103</guid>
		<description><![CDATA[<p>I&#8217;m quite enjoying the part of the process I&#8217;m in now with the Choosatron. Getting quality feedback that makes you think, &#8220;Yes, of course!&#8221; is quite motivating in pushing development forward at a time where it would be easy to &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m quite enjoying the part of the process I&#8217;m in now with the Choosatron. Getting quality feedback that makes you think, &#8220;Yes, of course!&#8221; is quite motivating in pushing development forward at a time where it would be easy to lay back and call it complete.</p>
<p>As mentioned before, two bits of feedback I wanted to immediately add are prepending the choice made as the new passage prints, and properly word wrap text so it&#8217;s easier to read. The logic behind word wrapping isn&#8217;t very complex. Start with how many columns you have available (32 in my case), take your first line of text, and from the end look at each character until you find a space. If one is found, set it as the end of the line (&#8216;\0&#8242; to terminate the char array), record the index, and print. Then start one past your index + columns (32), and do it all over again. If a space isn&#8217;t found, print all 32 characters since wrapping isn&#8217;t possible. Rinse, repeat.</p>
<p>It ended up being slightly more complicated in my case because of two reasons. First, to prepend the choice number creating an offset. If this was part of the text already it wouldn&#8217;t be an issue, but the text is loaded from flash memory on demand, filling its buffer, printing, and repeating until the entire file contents have printed. Of course this means we have the same offset problem every time we fill the buffer and have more to print since the column position could be anywhere in the line.</p>
<p>It was already late at night when I decided to tackle this issue, so I was annoying myself with some silly mistakes as I stepped through the logic coming up with a solution, and there were a couple ways I could go.</p>
<ol>
<li>Only read the required number of characters for each line at a time. This seems like it would be helpful, but ends up being a pain dealing with the tiny bits of leftover that need to be tacked on the next line, and means a lot of file reads. Meh.</li>
<li>Do lots of memory copies to always send the word wrapping function the complete text to be printed. This is slower, and has a very high risk of running into memory limits if not done very carefully, and as a result will mean more file reads. It really just makes the problem it&#8217;s trying to solve worse. Argh.</li>
<li>Keep track of a &#8216;rewind&#8217; character count. Load enough content to know if the first line should wrap, rewind to the position just after that wrapped first line, and load more content until the buffer is full. Then the wrapping function starts with a fresh line!</li>
</ol>
<p>Of course, I didn&#8217;t have those and other ideas all together&#8230;the third was a fight to get to. There is also an &#8216;indent&#8217; to make sure I can send variable numbers of columns for wrapping, useful in special cases. Moving forward!</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/08/choosatron-applying-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: The Demoing</title>
		<link>http://monkeytheater.com/2012/08/choosatron-the-demoing/</link>
		<comments>http://monkeytheater.com/2012/08/choosatron-the-demoing/#comments</comments>
		<pubDate>Wed, 01 Aug 2012 16:48:57 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=100</guid>
		<description><![CDATA[<p>Last week was intense. Finishing a hefty project at work, building a card version of the Nakatomi Plaza in Die Hard for our Swede, rehearsals/costuming/props for &#8220;Matlock: The One Man Show&#8221; which is part of <a title="Fringe Orphans" href="http://www.fringefestival.org/2012/show/?id=2301" target="_blank">&#8220;Fringe Orphans</a>&#8221; at the &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>Last week was intense. Finishing a hefty project at work, building a card version of the Nakatomi Plaza in Die Hard for our Swede, rehearsals/costuming/props for &#8220;Matlock: The One Man Show&#8221; which is part of <a title="Fringe Orphans" href="http://www.fringefestival.org/2012/show/?id=2301" target="_blank">&#8220;Fringe Orphans</a>&#8221; at the Minnesota Fringe, and finally finishing a few user facing features for the Choosatron and getting it in an enclosure! <strong>Phew!<br />
</strong>I wanted to present the Choosatron at a new <a title="Arduino MN" href="http://arduino.mn/" target="_blank">Arduino MN</a> group to both give myself a deadline, and also get a little feedback from the hobbyist crowd.</p>
<p>Amazingly I got everything done and was able to show off my little contraption for the first time. At first everyone seemed a bit bewildered, not entirely sure what the damn thing was&#8230;but it sank in and people seemed to get really behind it. The impression I&#8217;ve gotten by everyone that&#8217;s touched it is that although it&#8217;s a very strange project, it&#8217;s also very unique and quite a bit of fun. I still only have my single test story written as I&#8217;ve been focusing on the hardware and software end, so I think with more and better stories it can only improve.</p>
<div id="attachment_99" class="wp-caption alignright" style="width: 234px"><a href="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_04.jpg" rel="shadowbox[sbpost-100];player=img;"><img class="size-medium wp-image-99" title="choosatron_04" src="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_04.jpg?resize=224%2C300" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">Choosatron&#8217;s First Home</p></div>
<p>Anytime you build a project that requires that others contribute in order for it to reach it&#8217;s full potential you&#8217;ve got a challenge on your hands. People are busy. Even the ones that LOVE your idea, and WANT to contribute, have plenty going on to make that difficult. The fact is that talented creative people are always in demand, and even the promise of getting paid isn&#8217;t necessarily going to change that. There are numerous other creative projects I&#8217;ve been trying to move forward that require design and visual work, but that seems to be where my progress starts to halt. I sincerely hope that the Choosatron doesn&#8217;t fall victim to this same blight. I&#8217;m too in love with the idea of collaborating to create work beyond one individual to let my hope die. We&#8217;ll see!</p>
<p>I brought it to work and did some user testing to see what people had trouble with, what they liked, and how I could tweak the experience a bit. There was some great feedback like implementing true word wrapping so reading is easier, and fixing the absurdly short time limit for continuing a story. I&#8217;m working on finished some of this sort of polish, along with internal logging so I don&#8217;t have to manually write down the choices people make, and how long it takes to play. There has also been a fair bit of interest in this potentially turning into a Kickstarter project, so people can purchase/build their own and the community of authors can grow. There are plenty of things I need to figure out before I&#8217;d consider that, but it would be fun! I&#8217;ve been researching how I can bring the cost down which has exposed some very interesting possibilities.</p>
<p>Along with that I&#8217;d like to look into interactive fiction formats that already exist (other than Twine) to see if I can open a big door by creating support for them. Even writing a Twine addon to natively support the Choosatron&#8217;s features (like autojump) would go a long way toward cleaning up the user experience as an author.</p>
<p>In the end, this project is really just the first in a series I&#8217;ve wanted to do, with increasing complexity and deeper exploration of story telling and game design. The intention isn&#8217;t to make a product to sell, but to explore immersing people using interactive applications to see what we might be missing in our current definitions and divisions of game, story, and genre. Of course, the next step might be getting the Choosatron into something a bit more permanent than a cardboard box!</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/08/choosatron-the-demoing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flip-dot signs!</title>
		<link>http://monkeytheater.com/2012/07/flip-dot-signs/</link>
		<comments>http://monkeytheater.com/2012/07/flip-dot-signs/#comments</comments>
		<pubDate>Tue, 31 Jul 2012 21:22:00 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[flip-dot]]></category>
		<category><![CDATA[hobby]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=101</guid>
		<description><![CDATA[<p>Also called flip-disc. They are used in buses, train stations, and other locations for displaying information without using LEDs. Obviously used less and less now-a-days, but I still think they are incredibly cool. I&#8217;ve always wanted access to flip-dot boards &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>Also called flip-disc. They are used in buses, train stations, and other locations for displaying information without using LEDs. Obviously used less and less now-a-days, but I still think they are incredibly cool. I&#8217;ve always wanted access to flip-dot boards so I can program them for my own wonderful amusement. Figuring out what they were called was more difficult than I expected. All I could think of was &#8216;flip flip flip&#8217; signs! After a fair bit of googling I found this Wikipedia article on <a title="flip-disc displays" href="http://en.wikipedia.org/wiki/Flip-disc_display">flip-disc displays</a>, and an <a title="Arduino forum post" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1239447334" target="_blank">Arduino forum post</a>, and finally knew what I was looking for.</p>
<p>So far the only vendor I&#8217;ve found is <a title="Alfa Zeta" href="http://www.flipdots.com/index.html">Alfa Zeta</a> to purchase flip-dot components, and I&#8217;m currently waiting for them to get in touch with pricing. Would be soooo cool though. They have links to plenty of demo videos, but here is one that is an incredibly advanced use of flip-dots:
<div class="lyte-wrapper" style="width:640px;max-width: 100%;margin:5px auto;">
<div class="lyMe hidef" id="WYL_x3jkoIyJgoc" itemprop="video" itemscope itemtype="http://schema.org/VideoObject"><meta itemprop="duration" content="T100S" /><meta itemprop="thumbnailUrl" content="http://i.ytimg.com/vi/x3jkoIyJgoc/0.jpg" /><meta itemprop="embedURL" content="http://www.youtube.com/embed/x3jkoIyJgoc" /><meta itemprop="uploadDate" content="2012-07-17T21:02:21.000Z" />
<div id="lyte_x3jkoIyJgoc" data-src="http://i.ytimg.com/vi/x3jkoIyJgoc/0.jpg" class="pL">
<div class="tC">
<div class="tT" itemprop="name">Electromagnet Dot Display for TNT&#8217;s &#8220;Perception&#8221;</div>
</div>
<div class="play"></div>
<div class="ctrl">
<div class="Lctrl"></div>
<div class="Rctrl"></div>
</div>
</div>
<noscript><a href="http://youtu.be/x3jkoIyJgoc"><img src="http://i0.wp.com/i.ytimg.com/vi/x3jkoIyJgoc/0.jpg?resize=550%2C292" alt="" data-recalc-dims="1" /></a> Embedded with WP YouTube Lyte.</noscript>
<p><meta itemprop="description" content="For TNT's newest crime-solving show Perception we revived a sign technology of yesteryear to create an anagram-finding experience on the streets of New York. Made up of over 40,000 physical dots spinning from black to white at 15 times faster than originally designed, the screen not only reflects back a unique image of anyone walking by, but allows you to actually hear those movements thanks to its mechanical nature."></div>
</div>
<div class="lL" style="width:640px;margin:5px auto;">Watch this video <a href="http://youtu.be/x3jkoIyJgoc">on YouTube</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/07/flip-dot-signs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: The Printening</title>
		<link>http://monkeytheater.com/2012/07/choosatron-the-printening/</link>
		<comments>http://monkeytheater.com/2012/07/choosatron-the-printening/#comments</comments>
		<pubDate>Wed, 25 Jul 2012 07:05:12 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=93</guid>
		<description><![CDATA[<p>One frustration I&#8217;ve run into with this project is the different power requirements my components have needed to work nicely. 12 volt, 9 volt, 5 volt, plus inconsistent amperage requirements. The thermal printer takes almost no power until you ask &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>One frustration I&#8217;ve run into with this project is the different power requirements my components have needed to work nicely. 12 volt, 9 volt, 5 volt, plus inconsistent amperage requirements. The thermal printer takes almost no power until you ask it to print, when it spikes to 1.5amps! Most of the other components don&#8217;t take too much; probably 300-500ma combined as a rough guess. I determined that I&#8217;d need a minimum of 2amps to power everything appropriately. 1.5 reserved for the printer and 500ma for everything else. The coin acceptor was the first annoyance since it wants 12v and the supplies I had were all 9v. I ended up finding many 12v power supplies ranging from 2-3amps that were for external harddrives so perfect! Except, after I get the coin acceptor power how do I get the printer what it needs?</p>
<div id="attachment_94" class="wp-caption alignright" style="width: 165px"><a href="http://www.ebay.com/itm/10-x-L7809-7809-Voltage-Regulator-IC-9V-1-5A-Ham-Kit-ST-USA-SELLER-Free-Shipping-/230797511686?pt=LH_DefaultDomain_0&amp;hash=item35bc9a8c06#ht_1476wt_1143"><img class=" wp-image-94   " title="L7809VoltageRegulator" src="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/L7809VoltageRegulator.png?resize=155%2C189" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">12v to 9v, 1.5amp Output</p></div>
<p>The Arduino and components directly connected would all be happy with putting in 12v and having the arduino regulate it, but the printer needed too much raw power and 5v ends up printing too light. So! What I needed was something to take the 12v down to 9v after powering the acceptor, while still providing close to 2amps of output. I did some research and discovered I wanted a voltage regulator, so decided to hit ebay. I first found the nice little guy to the right which was what I wanted except only giving 1.5amps. I decided to get them anyway because it was cheap and quick to ship being in the US. Who knows when they will come in handy, and it&#8217;s still something I can do some testing with.</p>
<div id="attachment_95" class="wp-caption alignleft" style="width: 220px"><a href="http://www.ebay.com/itm/DC-DC-15W-Converter-12V-Step-down-to-9V-3A-Power-Supply-Module-Auto-Recovery-/300746997536?pt=LH_DefaultDomain_2&amp;hash=item4605eaff20#ht_3858wt_1143"><img class=" wp-image-95 " title="12vto9vVoltageReg" src="http://i2.wp.com/monkeytheater.com/wp-content/uploads/2012/07/12vto9vVoltageReg.jpg?resize=210%2C210" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">12v to 9v w/ 3amp Output</p></div>
<p>I kept looking however, and found exactly what I was looking for. 12v to 9v, and 3amps output! There was a 2amp output as well, but since I found a 12v 3amp power supply I might as well be able to support it. This part was only available in China, but cheap so I purchased. It took 3-4 weeks until it finally arrived! I had gotten the L7809 regulators and verified that they did in fact work as advertised. Hooked it all up, printed, and got a faint lettering due to the lack of power. Just days ago I got the part I was really waiting for! It had been such a long wait I had already started doubting it would fix my printing problems. I had played around with running the printer on 12v, but it would print a little too fast, and though it was darker than with the small regulator, it wasn&#8217;t good enough and I didn&#8217;t want to hurt the printer.</p>
<p>Well, I plugged the new voltage regulator in, fired up the Choosatron, and wow&#8230;after all the hours with both the hardware, and programming the software, FINALLY seeing it truly work! Beautiful, rich text. Take a look below! Just in time too as I&#8217;m planning on bringing it by an Arduino group meeting this coming Thursday.</p>
<p>I also completely finished the points feature, getting continues fully supported (if ending quality 1-4 of 5, insert a coin to continue, get prompted for how many choices back you want to move), as well as authors getting to set what a &#8216;perfect score&#8217; is, along with a &#8216;continue penalty&#8217;. Phew! So much awesome stuff. The writing guide is finally online, along with a test story I wrote to help people get started. <a title="Choosatron: Writing Guide" href="http://monkeytheater.com/choosatron-writing-guide/">Take a look here!</a></p>
<div id="attachment_91" class="wp-caption alignright" style="width: 234px"><a href="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_03.jpeg" rel="shadowbox[sbpost-93];player=img;"><img class="size-medium wp-image-91" title="choosatron_03" src="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_03.jpeg?resize=224%2C300" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">So dark and perfect!</p></div>
<div id="attachment_90" class="wp-caption alignleft" style="width: 310px"><a href="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_02.jpeg" rel="shadowbox[sbpost-93];player=img;"><img class="size-medium wp-image-90" title="choosatron_02" src="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_02.jpeg?resize=300%2C223" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">First Perfect Print</p></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/07/choosatron-the-printening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: Crushing the Final Evil (Bug)</title>
		<link>http://monkeytheater.com/2012/07/choosatron-crushing-the-final-evil-bug/</link>
		<comments>http://monkeytheater.com/2012/07/choosatron-crushing-the-final-evil-bug/#comments</comments>
		<pubDate>Thu, 12 Jul 2012 11:45:24 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=84</guid>
		<description><![CDATA[<p>Last night I finished the last feature that would allow full story play support for the file structure I created. Auto-jump, which simply allows you to set a single, unlabeled choice on a passage so it will be printed out &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>Last night I finished the last feature that would allow full story play support for the file structure I created. Auto-jump, which simply allows you to set a single, unlabeled choice on a passage so it will be printed out and immediately forward to the link provided and continue from there. This is useful when you want to converge two different paths back together with different narrative preambles but common narrative body and the same choices. Is that confusing?</p>
<blockquote>
<p style="text-align: left;">Path 1: &#8220;&#8230;After singing along to the radio with your friend for hours, the cabin is finally in sight.&#8221;</p>
<p style="text-align: left;">Path 2: &#8220;&#8230;you awaken from the bizarre dream, your friend pointing ahead to the cabin up ahead.&#8221;</p>
<p style="text-align: center;">\/</p>
<p style="text-align: left;">&#8220;The gravel crunches under the tires as you park. It really is a beautiful cabin you think to yourself. Should be a great weekend.&#8221;</p>
</blockquote>
<p style="text-align: left;">See what I mean? So with this in place I was able to play through, but suddenly&#8230;it stopped. Noooo! I happened to have a log statement outputting free kilobytes of memory before each passage is output, and it was heading steadily downward.</p>
<p style="text-align: left;"><em>968&#8230;906&#8230;842&#8230;780&#8230;724&#8230;662&#8230;death.</em></p>
<p style="text-align: left;">No question, a nice juicy memory leak. A very consistent one losing about 62kb per passage. I walked through my code carefully, making sure that each path and passage element is correctly freed. Then I started commenting items out to keep the case as simple as possible. No change whatsoever. Only change was the memory leak was <em>slightly</em> less the more data I loaded in each chunk of the passages.</p>
<div id="attachment_89" class="wp-caption alignright" style="width: 327px"><a href="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_01.jpeg" rel="shadowbox[sbpost-84];player=img;"><img class=" wp-image-89   " title="Choosatron Bits" src="http://i1.wp.com/monkeytheater.com/wp-content/uploads/2012/07/choosatron_01.jpeg?resize=317%2C239" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">Choosatron Bits</p></div>
<p style="text-align: left;">Interesting&#8230;that means the fewer file.open() calls I make, the less memory is leaked despite loading the same number of bytes. At this point I did what any decent programmer would do: pick the best keywords for what I understand about my problem thus far, and google it. This, my friend, was a situation where something could have easily taken days to fix, but I noticed enough clues to find a problem I was not alone in. I immediately found an issue filed here: <a title="Arduino Issue 814" href="http://code.google.com/p/arduino/issues/detail?id=814" target="_blank">Arduino Issue 814</a>. The gist is simple:</p>
<blockquote><p>When a file is opened a malloc() is performed to get memory. When a file is closed the memory is freed. If the file object is destroyed before the file is closed, the memory is never freed.</p>
<pre>File::~File(void) {
  close(); // &lt;-- The FIX
  //  Serial.print(&quot;Deleted file object&quot;);
}</pre>
</blockquote>
<p>Hmm&#8230;my code looks like it&#8217;s closing files properly, but it&#8217;s worth trying the one line fix. I add it to the library, recompile, upload, run&#8230;<em>968&#8230;947&#8230;947&#8230;947&#8230;947&#8230;</em>and this continued to the end. Then I played again. Then I continued. NO LEAKS. This is one of the most incredible feelings in the world, especially when memory management is allll up to you. I&#8217;m using the Micro SD card as my memory (essentially) so not leaking it all over the place when I use it is a plus.</p>
<p>The <em><strong>Choosatron Deluxe Adventure Matrix™</strong></em> software is working! It&#8217;s not done, but this is where it gets really fun. Getting people to write content for it, demoing it, and of course polishing the code and adding more features for authors to play with. Next step is setting up the power regulator, power input, and power button so I can take the experiment where the people are. Hopefully I&#8217;ll have it with me at CONvergence a couple days from now for some geeky attention.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/07/choosatron-crushing-the-final-evil-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosatron: Memory Corruption Devils</title>
		<link>http://monkeytheater.com/2012/06/choosatron-memory-corruption-devils/</link>
		<comments>http://monkeytheater.com/2012/06/choosatron-memory-corruption-devils/#comments</comments>
		<pubDate>Sat, 23 Jun 2012 13:43:10 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[choosatron]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=83</guid>
		<description><![CDATA[<p>Whenever I&#8217;ve done lower level coding I try and remember that whenever you are experience completely bizarre behavior and there is absolutely NOTHING wrong with your code&#8230;there is something wrong with your code. Memory and stack corruption are notoriously difficult &#8230;</p>]]></description>
				<content:encoded><![CDATA[<p>Whenever I&#8217;ve done lower level coding I try and remember that whenever you are experience completely bizarre behavior and there is absolutely NOTHING wrong with your code&#8230;there is something wrong with your code. Memory and stack corruption are notoriously difficult issues to pin down, as completely unrelated (and working) code can be the trigger that sets off the bomb. I just experienced this as I&#8217;ve been trying to finish the Arduino code for my Choosatron™ to load chunks of narrative passages, output them, present the choices, and finally accept a choice. This points it to the next passage and the process begins again. It&#8217;s a simple, beautiful cycle that should allow me to achieve unlimited length passages by reading limited chunk sizes, printing, and freeing before loading the next.</p>
<p>Suddenly, which is code for &#8216;I did something seemingly innocuous with terrible consequences&#8217;, I was getting incredibly bizarre behavior where output would just cease. Sometimes it would get further along than others, which meant I didn&#8217;t notice immediately after making the change causing it. The first red herring was when, hours into debugging, I hit one of the keypad buttons used for input. It printed &#8220;INSERT 2 COINS TO PLAY&#8221;. But that means&#8230;it reset somehow! I read about how serial communication can reset the arduino, though I didn&#8217;t understand it correctly and tried to immediately blame this for my problem.</p>
<p>I ordered a box of capacitors, which I needed anyway, so that I could keep the arduino from resetting. I tried it and nothing. I then realized that this couldn&#8217;t possibly have anything to do with my problem and started again! Then I found that if I didn&#8217;t use the clever macro to store log statement strings in Flash memory, like Serial.println(F(&#8220;Flash string&#8221;)), it seemed to work again! Why it&#8217;s obviously the macro to blame, not MY programming! But things got weird again, just much deeper than before.</p>
<p><strong><em>What&#8230;the&#8230;hell&#8230;</em></strong></p>
<p>Well&#8230;early on my scheme for dealing with the data I needed to load involved opening a file at a path, loading all the data, parsing, and moving on. So I did something that <em>even at the time</em> was something I new was a bad practice. A char array is passed in, I use it for what I need, free it, and do my work. Do you see the problem?</p>
<pre class="brush: cpp; gutter: true">byte getByteFromFile(char *path, unsigned long index = 0) {
  File file = SD.open(path);
  free(path);
  byte b;
  if (file) {
    if ((index != 0) &amp;&amp; (index &lt;= file.size())) {
      file.seek(index);
    }
    b = file.read();
  } else {
    _print(F(&quot;[ERROR] File not found: &quot;));
    _println(path);
  }
  file.close();
  return b;
}</pre>
<p>I&#8217;ll make it more obvious, though an experienced programmer should already be annoyed at what I did, a nasty shortcut. With memory constrictions so tight, parsing data was getting painful. Here I have virtually unlimited memory on the microSD card and I&#8217;m trying to do everything in 2k of memory! I changed my scheme to virtually eliminate the need for parsing by having a much more verbose directory structure. Not as human friendly, but micro-controller work rarely is, and it&#8217;s all generated by Python scripts I wrote anyway. It was so convenient to use the same path char array over and over&#8230;yeah, that&#8217;s right. With the function above, when you use it, it gets freed (line 03), and the caller doesn&#8217;t know that. <strong>NEVER MANAGE MEMORY FOR SOMEONE ELSE</strong>. Keep it in scope people. Removed the free and suddenly the world was sunshine and roses once again!</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/06/choosatron-memory-corruption-devils/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Swede is Life</title>
		<link>http://monkeytheater.com/2012/06/the-swede-is-life/</link>
		<comments>http://monkeytheater.com/2012/06/the-swede-is-life/#comments</comments>
		<pubDate>Mon, 04 Jun 2012 01:00:34 +0000</pubDate>
		<dc:creator>Jerry B</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[dune]]></category>
		<category><![CDATA[swede]]></category>

		<guid isPermaLink="false">http://monkeytheater.com/?p=78</guid>
		<description><![CDATA[<h2>&#8230;or&#8230;</h2>
<h1>He Who Controls the Swede Controls the Universe!</h1>
<p>What&#8217;s better than sitting around drinking in the sun on Memorial Day weekend? Filming a swede for the bizarre, technically complicated, science-fiction adventure directed by David Lynch, that&#8217;s what! If you &#8230;</p>]]></description>
				<content:encoded><![CDATA[<h2>&#8230;or&#8230;</h2>
<h1>He Who Controls the Swede Controls the Universe!</h1>
<div id="attachment_80" class="wp-caption alignright" style="width: 233px"><a href="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_shield_fight.jpg" rel="shadowbox[sbpost-78];player=img;"><img class="size-medium wp-image-80" title="dune_shield_fight" src="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_shield_fight.jpg?resize=223%2C300" alt="Dune Shield Fight" data-recalc-dims="1" /></a><p class="wp-caption-text">Dune Shield Fight</p></div>
<p>What&#8217;s better than sitting around drinking in the sun on Memorial Day weekend? Filming a swede for the bizarre, technically complicated, science-fiction adventure directed by David Lynch, that&#8217;s what! If you haven&#8217;t figured it out yet, I&#8217;m talking about the 1984 film Dune. After months of preparation fitting in those spare moments between work and life we finally got to our weekend of principle shooting.<span id="more-78"></span></p>
<p>I&#8217;m happy with how smoothly our process went in terms of planning and preparation. Melissa, Brian, and myself (the three in charge), watched the film while taking notes about what we liked, funny quotes, and spoof ideas. Two days later Brian and I watched it again to write the script. Our goal was to have a finished script after only two viewings to prove that sweding even a complex moving was possible with schedules as busy as ours. I made a simple template in <a title="Celtx" href="http://www.celtx.com">Celtx</a> for each scene as we stopped and started the movie, condensing and poking fun. Here are the elements we captured for each scene:</p>
<ul>
<li>Shooting Location ID</li>
<li>Characters Present</li>
<li>Props Required</li>
<li>Movie Timestamp for Reference</li>
<li>Shooting Notes</li>
<li>Script (Action &amp; Dialogue)</li>
</ul>
<p>Our template while writing the script made it very easy for us to organize locations, people, and props when we began planning. I&#8217;ll admit that I&#8217;m someone who likes control when working on projects, although I easily relinquish it to those I trust. I also get a little obsessed with planning, which is very contrary to the spirit of Sweding. Brian and Melissa both kept reminding me that things would work out, and part of the fun is solving problems as they arise instead of trying to anticipate everything. It&#8217;s been a good exercise for me in that regard. Still, when life is busy, getting a cast together and finding a solid block of time to shoot isn&#8217;t always easy. Luckily we know a lot of people who are instantly on board any half-baked projects we come up with. For the most part anyway&#8230;</p>
<div id="attachment_81" class="wp-caption alignleft" style="width: 235px"><a href="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_scenes.jpg" rel="shadowbox[sbpost-78];player=img;"><img class="size-medium wp-image-81" title="dune_scenes" src="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_scenes.jpg?resize=225%2C300" alt="Swede Scene Grid" data-recalc-dims="1" /></a><p class="wp-caption-text">Swede Scene Grid</p></div>
<p>The responsibility for procuring and creating props was divided between Melissa and I (as Brian was working nights temporarily, though he helped me with some of the bigger ones) and we worked independently unconcerned about how each was going about their task. We would talk, but really only to brag about how awesome a prop turned out. We decided on Memorial Weekend for shooting, and so the dealing for all props as well. A little over two weeks before, an email went to everyone interested with the roles we chose for them, and rough details on how the shoot would be conducted. Finally our weekend came and the real challenge had begun!</p>
<p>Melissa (bless her heart) created an excel spreadsheet using the location and actor grids we had put in our Sweding Notebook. This allowed us to select which actors were present, and get back a list of scenes we would be able to film. This was invaluable because if you&#8217;ve ever worked on volunteer projects before you&#8217;d know that people will show up anywhere from zero to four hours late. Even the devoted ones. It has more to do with personality than passion for the project. Frantically trying to manually find scenes that can be done with random attendants is hell. Melissa is awesome.</p>
<p>We told the actors to show up Saturday &amp; Sunday, 10am &#8211; 6pm. Only one actor specifically couldn&#8217;t show up both days, so we lucked out there. Melissa and I met at 9am on Saturday to sync up, and people began to arrive just after 10. We worked for eleven hours until we finished for the day. At 6pm we were close enough to finishing a set of scenes that would allow four of our actors to take Sunday off, so we powered through!</p>
<p>Sunday was nice and fast, though HOT. Our still suits are black garbage bags, so the gallons of sweat we produced in the 90+ degrees was substantial. Not to mention we filmed in my attic a bit more, which was an absolute oven. Shooting went from 10am to 3pm, with an hour of cleanup until I was able to take a shower and lay on the couch. I&#8217;m really proud of what we got accomplished in those two days, and how easy to work with most everyone was. It even seemed like people were having a good time, so that&#8217;s a plus!</p>
<p>With the weekend over we still have to shoot the special fx sequences, but here are some stats of the production so far:</p>
<ul>
<li>2 Viewings to a Completed Script</li>
<li>9 Actors</li>
<li>17 Characters</li>
<li>18 Locations</li>
<li>42 Scenes</li>
<li>70+ Props</li>
<li>2 Days Shooting for Principle Photography</li>
</ul>
<p>I&#8217;m excited to have our Dune Swede finished and looking forward to doing swedes that are much simpler from a technical perspective. Stay tuned for more on our latest swede!</p>
<p><a href="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_title.png" rel="shadowbox[sbpost-78];player=img;"><img class="aligncenter size-full wp-image-79" title="dune_title" src="http://i0.wp.com/monkeytheater.com/wp-content/uploads/2012/06/dune_title.png?resize=550%2C367" alt="Dune Title" data-recalc-dims="1" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://monkeytheater.com/2012/06/the-swede-is-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 4.171 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-06-19 04:33:45 -->
