<?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>Michael Fretz - Interaction Designer &#187; Physical Computing</title>
	<atom:link href="http://www.michaelfretz.com/category/studium/physical-computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.michaelfretz.com</link>
	<description>Interaction Design Studium Blog</description>
	<lastBuildDate>Sat, 25 Jun 2011 20:57:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Ventana &#8211; Interactive Shop Window &#8211; Bachelor Project</title>
		<link>http://www.michaelfretz.com/2011/06/11/ventana-interactive-shop-window-bachelor-project/</link>
		<comments>http://www.michaelfretz.com/2011/06/11/ventana-interactive-shop-window-bachelor-project/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 08:33:44 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Film]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/?p=3405</guid>
		<description><![CDATA[Today, retail stores are finding themselves in a fierce competition with e-commerce stores. By bringing the latest technologies to these physical locations, Ventana is trying to provide a solution to this problem. Installed in the shop‘s window, Ventana enables passing potential customers to interact with a digital representation of the store‘s inventory. Now, well informed, [...]]]></description>
			<content:encoded><![CDATA[<p>Today, retail stores are finding themselves in a fierce competition with e-commerce stores. By bringing the latest technologies to these physical locations, Ventana is trying to provide a solution to this problem. Installed in the shop‘s window, Ventana enables passing potential customers to interact with a digital representation of the store‘s inventory. Now, well informed, the customer is more likely to enter the shop.<br />
Ventana is designed to allow the presentation of any kind of information. It could be used to present fashion, jewelry or a restaurants menu. For our purposes Ventana is showing two products thematizing the US city New York. By the mere presence in front of the window a user can navigate and interactively experience the digital space.<br />
The non-stop availability of the stores inventory breaks the boundaries between the digital and the real world and has the potential to attract many more customers. And as touch-less sensors become more affordable we will see many more applications of this kind, which will open up a range of completely new possibilities. Kinect, for example, would allow us to determine a customers body size and use it as a filter on the inventory and thus tailoring the information to the users needs.</p>
<p><iframe width="580" height="360" src="http://www.youtube.com/embed/VR8XkpKc3Rc?rel=0" frameborder="0" allowfullscreen></iframe><br />
<span id="more-3405"></span><br />
Ventana is designed to allow the presentation of any kind of information. It could be used to present fashion, jewelery or even a restaurants menu. Ventana can be installed in any shop window.<br />
For our purposes Ventana is showing two products thematizing the US city New York. By the mere presence in front of the window a user can navigate and interactively experience the digital space.<br />
Through the use of inexpensive technology it is affordable for a wide varaity of shops. It can be used for very small interaction with the shop windows content up to very complex games and e-commerce solutions.</p>
<p>Ventana is my bachelor project from my studies in the Interaction Design program at the university of the arts in Zurich. (<a href="http://iad.zhdk.ch">iad.zhdk.ch</a>)</p>
<p><strong>Menthors</strong><br />
- Max Rheiner<br />
- Karmen Franinovic </p>
<p><strong>Processblog</strong><br />
<a href="http://ba.michaelfretz.com">http://ba.michaelfretz.com</a></p>
<p><strong>Download</strong><br />
Download the bachelor thesis <a href="http://ba.michaelfretz.com/wp-content/uploads/2011/06/thesis_ventana_web.pdf">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2011/06/11/ventana-interactive-shop-window-bachelor-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Punkt.Fizen – Android and Arduino powered Bike Navigation</title>
		<link>http://www.michaelfretz.com/2011/01/03/punkt-fizen-android-and-arduino-powered-bike-navigation/</link>
		<comments>http://www.michaelfretz.com/2011/01/03/punkt-fizen-android-and-arduino-powered-bike-navigation/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 14:56:05 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/?p=3348</guid>
		<description><![CDATA[How does one orient oneself while biking, for example as a tourist? You certainly will read traffic signs, ask people for direction or use a tourist-map. But at least the last example will force you to stop the bike. How could we provide a navigation, where the flow remains undisturbed? The user will need a [...]]]></description>
			<content:encoded><![CDATA[<p>How does one orient oneself while biking, for example as a tourist? You certainly will read traffic signs, ask people for direction or use a tourist-map. But at least the last example will force you to stop the bike. How could we provide a navigation, where the flow remains undisturbed?<br />
The user will need a very unimposing feedback where to go.</p>
<p>Punkt.Fizn is an Android and Arduino powered bike navigation system. Unlike most navigation systems we didn’t focus on a display. Instead directions will be given only through vibrations in the handlebars. Riding a bike with Punkt.Fizn is like knowing your way already.</p>
<p><iframe src="http://player.vimeo.com/video/18481357?byline=0&amp;portrait=0" width="580" height="326" frameborder="0"></iframe></p>
<p><span id="more-3348"></span><br />
<strong>How does it work?</strong><br />
1. Choose a route from <a href="http://www.openrouteservice.org/">openrouteservice</a><br />
2. Download the route XML<br />
3. Upload it <a href="http://gps.alaingroeneweg.com/">here</a><br />
4. Start the android app and enjoy your bike ride&#8230;</p>
<p>Every time you have to turn, gentle vibrations in the handlebars will show you the way.<br />
<img src="http://www.michaelfretz.com/wp-content/uploads/2011/01/bike_with_handlebars.jpg" alt="" title="bike with handlebars" width="567" height="285" class="alignnone size-full wp-image-3398" /></p>
<p><strong>Material research:</strong><br />
We tried different materials in order to compare its conductibility of vibration. At first we used “Thermoplast”, plastic-granulate which melts on 60Celsius.<br />
Its mold able, when still warm and gets very strong and quite flexible when cooled.<br />
Unfortunately you can’t sanding it very good and it has a poor grind ability.<br />
<img class="alignnone size-full wp-image-3352" title="material01" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/material01.jpg" alt="" width="567" height="337" /><br />
So we decided to try a soft industrial-design-foam which was good to work with.<br />
The conductibility of the vibration was very good. One draw back with this material was its indurabilty.</p>
<p><img class="alignnone size-full wp-image-3353" title="blue_handle" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/blue_handle.jpg" alt="" width="567" height="378" /></p>
<p><img class="alignnone size-full wp-image-3354" title="handle_foam1" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/handle_foam1.jpg" alt="" width="567" height="376" /></p>
<p>Finally we used a more durable foam. Its has a good vibra-conductabilty and its workability lead to a smooth surface.</p>
<p><img class="alignnone size-full wp-image-3355" title="handle_finish2" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/handle_finish2.jpg" alt="" width="567" height="377" /></p>
<p><img class="alignnone size-full wp-image-3357" title="tube22" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/tube22.jpg" alt="" width="567" height="339" /></p>
<p><img class="alignnone size-full wp-image-3356" title="final1" src="http://www.michaelfretz.com/wp-content/uploads/2011/01/final1.jpg" alt="" width="567" height="339" /></p>
<p><strong>Coding:</strong><br />
To create a relatively simple but working navigation we wrote an Android application. We used Bluetooth to communicate between Android and Arduino..<br />
Our code is based on the Bluetooth Chat Example from Android.com.<br />
There are two Android Examples available:<br />
1. <a href="http://www.michaelfretz.com/wp-content/uploads/2011/01/Android2ArduinoNavigation.zip">Navigation System</a><br />
2. <a href="http://www.michaelfretz.com/wp-content/uploads/2011/01/Android2Arduino.zip">Demo Example</a> (can be a good starting point if you want to build your own Android 2 Arduino Example)<br />
<img src="http://www.michaelfretz.com/wp-content/uploads/2011/01/manual_app.jpg" alt="" title="manual_app" width="567" height="339" class="alignnone size-full wp-image-3381" /></p>
<p><strong>PHP Script</strong><br />
To get the routing we used OpenRouteService. Since the OpenRouteService XML data could not directly addressed over an API, we had to build a small PHP script that allows to simplify the desired route of OpenRouteService.org and load it up in the right format to a webserver. To parse and rebuild the XML we used SimpleXML from PHP. The current state of the navigation system is a prototype. Therefore only one device can access it at the time.<br />
Here is the sourcecode of this script:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">		Routeuploader
&nbsp;
<span style="color: #339933;">&lt;</span>h1<span style="color: #339933;">&gt;</span>Bike<span style="color: #339933;">-</span>Navigation<span style="color: #339933;">&lt;/</span>h1<span style="color: #339933;">&gt;</span>
&nbsp;
&nbsp;
<span style="color: #339933;">&lt;</span>a id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;link&quot;</span> href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://openrouteservice.org/&quot;</span><span style="color: #339933;">&gt;</span>download openrouteservice<span style="color: #339933;">-</span>xml here<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;!--</span> The data encoding type<span style="color: #339933;">,</span> enctype<span style="color: #339933;">,</span> MUST be specified <span style="color: #b1b100;">as</span> below <span style="color: #339933;">--&gt;</span>
<span style="color: #339933;">&lt;</span>form enctype<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;multipart/form-data&quot;</span> method<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;POST&quot;</span><span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;hidden&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;phpMyAdmin&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;3qaPcWk7TqTEf77hyhNmbFFoa%2C1&quot;</span> <span style="color: #339933;">/&gt;</span>
    		<span style="color: #339933;">&lt;!--</span> MAX_FILE_SIZE must precede the <span style="color: #990000;">file</span> input field <span style="color: #339933;">--&gt;</span>
&nbsp;
   			 <span style="color: #339933;">&lt;!--</span> Name of input element determines name in <span style="color: #000088;">$_FILES</span> <span style="color: #990000;">array</span> <span style="color: #339933;">--&gt;</span>
			 <span style="color: #004000;">Send</span> this <span style="color: #990000;">file</span><span style="color: #339933;">:</span>
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span></pre></div></div>

<p><strong>Arduino</strong><br />
The Arduino microcontroller recieves the sent values from the Android application and starts a vibrations pattern for the handlebars. For each direction we have two different patterns.<br />
Here is the code:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// This Code Reads the Serial Data whoch comes from Android</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">char</span> incomingByte <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">// for incoming serial data</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// ------ DIRECTION PINS INIT ---------------------</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> pinArrayLeft<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">12</span>, <span style="color: #cc66cc;">13</span>, <span style="color: #cc66cc;">14</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> pinArrayLittleLeft<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">12</span>, <span style="color: #cc66cc;">13</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> pinArrayRight<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> pinArrayLittleRight<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// ------------------------------------------------</span>
<span style="color: #000066; font-weight: bold;">int</span> timer <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> timerLittle <span style="color: #339933;">=</span><span style="color: #cc66cc;">400</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> count <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// Start serial communication</span>
  Serial1.<span style="color: #006633;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">115200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  Serial.<span style="color: #006633;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">57600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>count<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>count<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>     <span style="color: #666666; font-style: italic;">//////////////// LINKS     pinMode(pinArrayLeft[count], OUTPUT);     pinMode(pinArrayLittleLeft[count], OUTPUT);     //////////////// RECHTS     pinMode(pinArrayRight[count], OUTPUT);     pinMode(pinArrayLittleRight[count], OUTPUT);   } } void loop() {   while (Serial1.available() &amp;gt; 0)</span>
  <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">byte</span> serialreadbytevalue <span style="color: #339933;">=</span> Serial1.<span style="color: #006633;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    Serial.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>serialreadbytevalue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>serialreadbytevalue<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">49</span><span style="color: #339933;">:</span>
        goLeft<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">:</span>
        goLittleLeft<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">51</span><span style="color: #339933;">:</span>
        goRight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">52</span><span style="color: #339933;">:</span>
        goLittleRight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> goLeft<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>count<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>count<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLeft<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLeft<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> goRight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>count<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>count<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayRight<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayRight<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">void</span> goLittleLeft<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>count<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>count<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLittleLeft<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timerLittle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLittleLeft<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timerLittle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> goLittleRight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>count<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>count<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLittleRight<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timerLittle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   digitalWrite<span style="color: #009900;">&#40;</span>pinArrayLittleRight<span style="color: #009900;">&#91;</span>count<span style="color: #009900;">&#93;</span>, LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   delay<span style="color: #009900;">&#40;</span>timerLittle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Next Steps</strong><br />
The next step would be integrate <a href="http://code.google.com/p/osmand/">OSMAND</a> for the navigation. This way the hole navigation process would be easier.</p>
<p><strong>Team</strong><br />
<a href="http://www.alaingroeneweg.com" target="_blank">Alain Groeneweg</a> | <a href="http://dannyandme.ch/" target="_blank">Danny Arielli</a> | <a href="http://www.michaelfretz.com" target="_blank">Michael Fretz</a></p>
<p><strong>Links to site or magazines that mention us</strong><br />
<a href="http://androidportal.hu/2011-01-09/navigalj-bringan-androiddal-biztonsagosan">androidportal.hu</a><br />
<a href="http://www.androidpolice.com/2011/01/06/android-device-built-into-handlebars-bike-navigation-evolved/">androidpolice.com</a><br />
<a href="http://techup.ch/105/40th-swiss-flash-user-group-meeting">http://techup.ch/105/40th-swiss-flash-user-group-meeting</a><br />
<a href="http://iad.zhdk.ch/de/stories/11/01/embodied-interaction-press">http://iad.zhdk.ch/de/stories/11/01/embodied-interaction-press</a><br />
<a href="http://www.michaelfretz.com/wp-content/uploads/2011/01/IMAG0060.jpg">Weave, interactive design, konzeption &#038; development 02.11 April/Mai Page 16</a></p>
<p><em>This project was part of Embodied Interacion Modul at the Interaction Design Programm from the university of the arts in Zurich. All infos about this course <a href="http://blogs.iad.zhdk.ch/embodied-interaction/bike-navigatio/">http://blogs.iad.zhdk.ch/embodied-interaction/bike-navigatio/</a><br />
Teachers: Max Rheiner and Karmen Franinovic</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2011/01/03/punkt-fizen-android-and-arduino-powered-bike-navigation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Breathing Pillow</title>
		<link>http://www.michaelfretz.com/2010/11/12/breathing-pillow/</link>
		<comments>http://www.michaelfretz.com/2010/11/12/breathing-pillow/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 11:02:14 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[User Centred Design]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/?p=3316</guid>
		<description><![CDATA[Guideline The user should be pleasantly guided to sleep to release him from his everyday stress. Basic idea Our pillows will relax the user with a rhythmical movement. We believe the rhythm of the breath can be influenced by the cushions move. The pillow adapts the breathing rate of the user and is then, after [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3325" title="putmetosleep" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/putmetosleep.jpg" alt="" width="580" height="120" /></p>
<p><strong>Guideline</strong><br />
The user should be pleasantly guided to sleep to release him from his everyday stress.</p>
<p><strong>Basic idea</strong><br />
Our  pillows will relax the user with a rhythmical movement. We believe the  rhythm of the breath can be influenced by the cushions move. The pillow  adapts the breathing rate of the user and is then, after a while,  replacing the movement of the pillow with a slowing, regular rhythm.  This transition will happen smoothly. The user is not aware of a new  respiratory rate to impose. The rate should be lowered to a normal  breathing pattern during sleep. Once the system detects that the user is  asleep the pillow stops breathing.</p>
<p><span id="more-3316"></span><strong>Target group</strong><br />
We  target on stressed people, people with sleep disorder and people who  take home work in their head and therefore can’t easily fall asleep.</p>
<p><strong>Research</strong><br />
People  and animals tend to sleep on the chest or abdominal area on other  living things. Often this can be found with couples, children and  animals. We wondered whether in addition to the social proximity, the  movement has an influence on this behavior occurs.</p>
<p><strong>Prototype development and user testing</strong><br />
We have tried several ways to give the pillow a breathing exercise.<br />
In  the first experiments was to raise the head up and down, but this was  perceived by most respondents as unpleasant and annoying. With this  experience, we have adjusted the movement so the head is no longer  raised, but the movement was only noticeable.</p>
<p>We  experiment with different mechanical systems to make the movement as  quiet as possible and a most comfortable experience. Even with the  materials we have made several attempts. We have tried various movement  systems of wood, metal, rubber, PET and Plexiglas.</p>
<p>We  have repeatedly called in various people and asked them questions on  the different movements and sounds. Many users have not felt the  movement in the beginning, but have felt the light changes of movement  as very pleasant and soothing experience after a while. The sounds that  were produced by the servos could not completely eliminate but most  testers  perceived it as not too disturbing.</p>
<p>According  to these findings and adjustments, we started experiments with the  pillowcase. We used different materials such as fur and fabric. For  some, the fur was to too rough or perceived as pungent. Some found the  fur to be inappropriate or repulsive. The pillow was perceived as too  hard.</p>
<p><strong>Technology solution</strong><br />
Inside  the cushion is a box with two servos which are controlled by an Arduino  microcontroller. These control a train system with a lash which pulls  together two PET sheets. Through the power to bend the PET plates, it  generates the lift and lower a of the cushion. The control of the  prototype will take place by a knob to control the speed and a battery  for the power.</p>
<p><strong>Photos</strong></p>
<p><img class="alignnone size-full wp-image-3318" title="breathingpillow_02" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_02.jpg" alt="" width="580" height="326" /></p>
<p>First electronic prototype.</p>
<p><img class="alignnone size-full wp-image-3319" title="breathingpillow_03" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_03.jpg" alt="" width="580" height="433" /></p>
<p>Building the box with the electronics</p>
<p><img class="alignnone size-full wp-image-3320" title="breathingpillow_04" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_04.jpg" alt="" width="580" height="433" /></p>
<p>System for the movement.</p>
<p><img class="alignnone size-full wp-image-3321" title="breathingpillow_05" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_05.jpg" alt="" width="580" height="433" /></p>
<p>First user tests.</p>
<p><img class="alignnone size-full wp-image-3322" title="breathingpillow_06" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_06.jpg" alt="" width="580" height="433" /></p>
<p>Inside the pillow.</p>
<p><img class="alignnone size-full wp-image-3323" title="breathingpillow_07" src="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_07.jpg" alt="" width="580" height="387" /></p>
<p>The final pillow</p>
<p><strong>Technical problems</strong><br />
The  battery discharges quickly because it powers the mechanical movement of  the servo motors. This makes the battery also very hot. Our servo  motors are still too noisy to produce a noise-free pillows. Through the  use of high quality servos we might reduce the sound further.</p>
<p><strong>Further steps</strong><br />
In  further tests with users with sleep disorder we could test the effect  and usage of our pillow optimally. In electronics, we would rely on high  quality components to reduce the noise.</p>
<p><strong>Video</strong><br />
<object width="580" height="348"><param name="movie" value="http://www.youtube.com/v/dzPAQh0PPvk?fs=1&amp;hl=de_DE&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dzPAQh0PPvk?fs=1&amp;hl=de_DE&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="348"></embed></object></p>
<p><strong>Downloads</strong><br />
<a href="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathing_pillow.zip">Soruce Code (Arduino)</a><br />
<a href="http://www.michaelfretz.com/wp-content/uploads/2010/11/breathingpillow_presentation.pdf" target="_blank">Presentation </a>(PDF 55MB)</p>
<p><strong>Team</strong><br />
<a href="http://www.thomasjakob.com" target="_blank">Thomas Jakob</a>, Manuel Hitz, <a href="http://www.michaelfretz.com/">Michael Fretz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2010/11/12/breathing-pillow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interaction in physical environment</title>
		<link>http://www.michaelfretz.com/2009/06/08/interaction-in-physical-enviroment/</link>
		<comments>http://www.michaelfretz.com/2009/06/08/interaction-in-physical-enviroment/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 05:19:09 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Interaktion]]></category>
		<category><![CDATA[MaxMSP]]></category>
		<category><![CDATA[Prototyp]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/?p=2653</guid>
		<description><![CDATA[1.0 Einleitung Im Rahmen unseres Interaction Design Studiums besuchen wir das Modul Interaction in Physical Environments. In diesem Modul geht es um non-visuelle Interaktion im öffentlichen Raum. Jede Gruppe erhielt einen vorgegebenen Ort und Vibrationsboxen, die das akkustische und taktile Feedback auslösen. Unser Team besteht aus den drei Studenten Christoph Brandin, Michael Fretz und Dondup [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: medium;">1.0 Einleitung </span></p>
<p>Im Rahmen unseres Interaction Design Studiums besuchen wir das Modul <em>Interaction in Physical Environments</em>. In diesem Modul geht es um non-visuelle Interaktion im öffentlichen Raum. Jede Gruppe erhielt einen vorgegebenen Ort und Vibrationsboxen, die das akkustische und taktile Feedback auslösen. Unser Team besteht aus den drei Studenten Christoph Brandin, Michael Fretz und Dondup Shelkar. Als Ort unseres Projektes wählten wir die Tramhaltestelle.</p>
<p><img class="alignnone size-full wp-image-2663" title="Limmatplatz" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/limmatplatz1.png" alt="Limmatplatz" width="580" height="395" /></p>
<p><span id="more-2653"></span>Die Tramhaltestelle bietete für uns einige sehr interessante Aspekte. Wer oft Öffentliche Verkehrsmittel in einer Stadt wie Zürich verwendet, wird sich zwangsläufig an einer Tramhaltestelle aufhalten müssen. Die Tramhaltestelle ist im Grunde ein Ort, wo man sich nicht explizit aufhalten möchte. Dennoch müssen wir dort auf Busse oder Trams wartend unsere Zeit verbringen, um von einem Ort zum nächsten zu gelangen. Um die Wartezeit zu verkürzen fangen wir an Musik zu hören, Zeitungen zu lesen, Textnachrichten per Handy zu senden und beschäftigen uns mit etweiligen Dingen, nur nicht mit der Tramstation selbst.</p>
<p>Dieses seltsame aber interessante Verhältnis zwischen Wartenden und &#8220;Wartestelle&#8221; veranlasste uns in einer ersten Researchphase direkt vor Ort zu gehen und Mensch und Umgebung genauer zu analysieren.<br />
<span style="font-size: medium;"><br />
2.0 Research — &#8220;look how people do / what they do&#8221;</span></p>
<p>Wir haben verschiedene Tramstationen in Zürich zu unterschiedlichsten Tageszeiten besucht. Von der stark frequentierten Tramhaltestelle an der Bahnhofstrasse bis hin zur kaum benutzen Haltestellen. An jeder Tramstation analysierten wir die Menschen, deren Bewegung und Verhalten während der Wartezeiten. Mit Hilfe von Skizzen, Videos, Fotos und Musikaufnahmen hielten wir die Fakten fest.</p>
<p><img class="alignnone size-full wp-image-2681" title="Tramhaltestelle" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/bilder_tramhaltestelle.png" alt="Tramhaltestelle" width="521" height="344" /></p>
<p><img class="alignnone size-full wp-image-2666" title="Skizze Interaction Floor" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/skizze_interactionfloor.png" alt="Skizze Interaction Floor" width="580" height="373" /></p>
<p><img class="alignnone size-full wp-image-2668" title="Skizze Moving" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/skizze_moving.png" alt="Skizze Moving" width="580" height="373" /></p>
<p>Zusammenschnitt aus der Video-Analyse verschiedener Tramhaltestellen.</p>
[See post to watch Flash video]
<p>Durch die Tonaufnahmen an verschiedenen Tramhaltestellen, konnten wir ein sich wiederholendes Muster feststellen. Diese haben anhand der Lautstärke und der Vibration visualisiert:</p>
<p><img class="alignnone size-full wp-image-2675" title="Soundanalyse Tramhaltestelle" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/soundanalyse_tramhaltestelle.png" alt="Soundanalyse Tramhaltestelle" width="580" height="392" /></p>
<p>Die Analyse verhalf uns die Tramstation, auf der wir tagtäglich warteten, bewusster wahrzunehmen. Die grosse Masse an Informationen haben wir ausgewertet, gefiltert und auf eine <strong>Konklusion</strong> reduziert:</p>
<p>- Die Tramstation dient für den Grossteil der Menschen lediglich als Verbindungspunkt von einem Startpunkt und dem gewünschten Ziel. z.B. von zu Hause zur Arbeit.<br />
- Die Wartephase ist sehr passiv. Wartende beschäftigen sich mit einer eigenen Tätigkeit. z.B. Musik hören, lesen, telefonieren. Kontakt mit anderen Wartenden ist kaum existent (ausser man kennt sich bereits).<br />
- Menschen an der Tramhaltestelle bewegen sich sehr wenig. Sie laufen an einen bestimmten Ort und bleiben dort stehen bis das Tram / der Bus kommt.<br />
- Die Einfahrt eines Trams unterbricht alle Menschen in ihrer Tätigkeit und hat einen erlösenden Symbolik.</p>
<p><span style="font-size: medium;">2.1 Research | Welche Anwendungen existieren bereits?</span></p>
<p>Während unserer Analysen vor Ort haben wir auch nach bereits existierenden Anwendungsformen von tactile floors gesucht. Es liess sich früh feststellen, dass diese Form von Interaktion noch wenig verbreitet ist. Aus Komplexitätsgründen, und bestimmt auch kostenbedingt, beschränkt man sich oft nur auf visuelle Darstellungen.</p>
<p>Wir konnten dennoch einige interessante Beispiele von sonic und tactile interactions finden, die uns für unser Projekt inspirieren konnten:<br />
<strong>Natural Interactive Walking </strong>von der McGill University, Quebec (CA)</p>
[See post to watch Flash video]<br />
Natural Interactive Walking ist ein interaktiver Boden, der sehr realitätsnah drei Sinne anspricht: Haptisch, visuell und akkustisch. Tritte werden entsprechend ihrer Druckstärke aufgenommen, woraufhin ein direktes Feedback als projiziertes Bild, Ton sowie per Vibration des Bodens wiedergegeben wird.</p>
<p><strong>Ada &#8211; intelligent space</strong> von der ETH und Universität Zürich (CH)</p>
[See post to watch Flash video]<br />
Ada ist ein intelligente Installation, die auf Besucher reagiert. Neben den Tritten auf bestimmte Flächen, wird auch die Akkustik als Eingabe verwertet. So reagiert Ada auch auf das Klatschen der Hände.</p>
<p><strong>Sonic Floor</strong> von Daito Manabe und Motoi Ishibashi (JP)</p>
[See post to watch Flash video]<br />
Sonic Floor ist eine Installation mit einer Vielzahl von interaktiven Flächen, die durch die Berührung eines Stabs ausgelöst werden. Durch den Stab lassen sich auch Muster oder Rhythmen erzeugen, die dann visuell und akkustisch wiedergegeben werden.</p>
<p><span style="font-size: medium;">3.0 Konzept<br />
</span><br />
Nach einem ersten Brainstorming mit vielen verschiedenen Ideen mussten wir einen Grundsatzentscheid fällen. Soll unser Projekt eher funktional oder unterhaltend sein? Beide Varianten waren für uns interessant gewesen. Doch haben wir uns letztlich für eine unterhaltende, zusammenführende Installation entschieden, da unserere Recherchen einige mögliche Projekte aufgezeigt hatten.</p>
<p>Die Grundidee war es, an der Tramhaltestelle den kompletten Boden mit Vibrationsplatten und Drucksensoren auszulegen. Der Boden wird interaktiv und reagiert je nach Druckstärke mit Akkustik und Vibration. Durch die Vernetzung der einzelnen Platten entsteht gleichzeitig eine Gewebe aus interaktiven Feldern. Dies ermöglicht es einzelne Vibrationsplatten, respektive die Personen die sich darauf befinden, miteinander zu kommunizieren.</p>
<p><strong>Menschen unterhalten und verbinden &#8211; ein Szenario</strong></p>
<p><strong><img class="alignnone size-full wp-image-2682" title="Tramhaltestelle mit Bodenplatten" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/tramhaltestellemitbodenplatten.gif" alt="Tramhaltestelle mit Bodenplatten" width="580" height="249" /></strong></p>
<p>Durch die Vernetzung der Vibrationsplatten wird beim Betreten der Tramhaltestelle eine leichte Vibration der aktuellen Platte ausgelöst. Der Boden macht auf sich Aufmerksam. Der Besucher ist zuerst verwirrt, dann neugierig und tastet mit den Füssen den Boden ab. Der Druck auf die Bodenplatten wird dadurch verändert, was über die Drucksensoren aufgenommen wird. Die Akkustik und die Vibration des Bodens ändert sich leicht. Der Besucher findet spielerisch heraus, dass Vibration und Akkustik im direkten Zusammenhang mit dem Druck auf die Bodenplatte stehen. Er versucht den Druck zu erhöhen und stellt fest, dass dadurch auch die danebenliegenden Platten vibrieren und klingen. Er beginnt zu hüpfen und bemerkt, wie seine Bewegung eine akkustische und haptische Welle durch die Haltestelle auslöst. Andere wartende Menschen werden von der leichten Welle erfasst und beginnen nun ihrerseits mit den Platten zu experimentieren. Es entsteht eine non-visuelle Kommunikation zwischen unbekannten, wartenden Tramgästen. Sobald das erwartete Tram ankommt, beginnen die Platten gleichmässig rhytmisch zu vibrieren und symbolisieren mit einem unterstützenden Ton das Ende der Wartezeit.</p>
<p><strong>Interaktionskonzept<br />
</strong><br />
Interaktionen unserer Installation geschehen sehr intuitiv. Anfangs besteht eine kaum bemerkbare Grundvibration, die den Benutzer auf eine mögliche Interaktion Aufmerksam machen soll. Durch Druckverstärkung oder Gewichtsverlagerung einer Platte wird ein direktes Feedback in Form von Akkustik und Vibration ausgelöst. Benutzer können durch Stärke des Drucks die Intensität der Vibration und durch die Position des Drucks die Richtung der Vibration steuern. Ausserdem lassen sich durch bestimmte Muster oder Wiederholungen besondere Klänge und Vibrationen auslösen.</p>
<p><span style="font-size: medium;">4.0 Prototyp</span></p>
<p><strong>Holzkonstruktion</strong></p>
<p>Als Testkonstruktion wählten wir eine Holzplatte und montierten darunter die Vibrationsboxen. Die Holzplatte wurde dann auf einen Sockel gelegt damit diese ein wenig abgehoben ist. Die Idee war, an allen Ecken Drucksensoren zu montieren damit während dem stehen auf der Platte Interaktionen ausgelöst werden konnten. Die ersten Versuche mit einer solchen Konstruktion sahen sehr vielversprechend aus. Wir beschlossen deshalb diese Idee weiter zu verfolgen.</p>
<p><img class="alignnone size-full wp-image-2684" title="Chris am schrauben" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/chrisamschrauben.png" alt="Chris am schrauben" width="580" height="373" /></p>
<p><strong>Feedback</strong></p>
<p>Vibration</p>
<p>Wir begannen mit verschiedenen Soundexperimenten. Je nach Soundhöhe, Frequenz und Lautstärke konnten wir unterschiedliche Effekte erzeugen. Wir suchten Sinusfrequenzen welche eine grosse Vibration verursachten, aber kaum hörbar sind.</p>
<p>Sound</p>
<p>Zusätzlich zu den Vibrationsboxen stellten wir zu jeder Platte je eine Hifibox für das Soundfeedback — im Endzustand sollten diese natürlich auch unter der Platte angebracht werden. Der Sound sollte für uns folgende Kriterien erfüllen: zur Aktion passend, je nach Druck unterschiedliche Lautstärke und auf keinen Fall zu aufdringlich. Trotzdem sollten diese eine Art Druckwelle wiederspiegeln und so den Vibrationsimpulsen Emotionen verleihen. Ganz im Kontrast dazu der Sound beim Einfahren eines Trams. Hier versuchten wir uns ganz traditionell in Richtung sanfter Signaltöne. Bei der Produktion der Sounds ließen wir im Hintergrund immer die von uns aufgenomme Gräuschkulisse verschiedener Tramstatioenn laufen — so konnten wir einschätzen ob z.B. unser Signalton bei Trameinfahrt überhaupt gehört werden würde.</p>
<p>Hier eine kleine Soundauswahl:</p>
<p>PulseOut — Ton für das Erzeugen einer Vibrationswelle durch Druck mit den Füssen</p>
<p><code></code></p>
<p>PulseIn — Vibrationswelle (Impuls) kommt bei einer anderen Platte an. DIe Lautstärke ist dabei abhängig vom jeweiligen Druck des Senderimpulses</p>
<p><code></code></p>
<p>Tram — Beim Einfahren der Tram wird zur Information aller Wartenden ein Signal- /Informationssound abgespielt. Alle Platten vibrieren dazu kurz stark und der Pulse Modus wird für die Dauer des Tramhaltes abgeschaltet.</p>
<p><code></code></p>
<p>Bei unseren Testuser waren sich alle einer Meinung: &#8220;Der Sound passt gut zu dem was man tut.&#8221;</p>
<p><img class="alignnone size-full wp-image-2685" title="Erste Tests mit Vibration" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/erstetestsmitvibrations.png" alt="Erste Tests mit Vibration" width="580" height="373" /></p>
<p><strong>Elektronik und Programmierung</strong></p>
<p>Die ganze Steuerung der Vibrationsboxen und Drucksensoren haben wir über Arduino und MaxMSP gelöst. Für die ersten Versuche nahmen wir ein normales Arduino. In einem späteren Zeitpunkt setzten wir dann aber auf ein Bluetooth Arduino.</p>
<p><img class="alignnone size-full wp-image-2686" title="Arduino" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/arduino_elektronik_prototyp.png" alt="Arduino" width="580" height="373" /></p>
<p>Nachdem die ersten Versuche erfolgreich waren bildeten wir die definitiven Prototypen. Diese bestanden aus drei Quardatischen Holplatten. An den Ecken waren jeweils Drucksensoren montiert. So konnte man Audio- und Vibrationssignale von einer zur nächsten Platte senden. Wir erstellten nur drei Platte weil wir mit unserem Prototpen den Effekt aufzeigen wollten. Wenn der Prototyp mit drei Platten funktioniert dann wird der Effekt mit ca. 64 Platten gewaltig sein. Die Tests mit den drei Platten waren erfolgreich. Viele Testpersonen hatten Spass mit dem versenden von Vibrationen und Sounds. Wir waren erstaunt, dass ein nicht visueller Ansatz eine solch gute Erkennbarkeit auslösen konnte.</p>
<p><img class="alignnone size-full wp-image-2688" title="Michael auf Prototyp" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/michiaufprototyp.png" alt="Michael auf Prototyp" width="580" height="373" /></p>
<p>Um die fertigen Prototyp-Platten zu steuern, benutzen wir Arduinos in der Bluetooth–Variante. Leider stellte sich heraus das diese noch sehr fehleranfällig waren und so verloren wir eine grosser Teil der Zeit mit Verbindungsversuche. Die Bluetoothvariante haben wir eingesetzt, da wir im finalen Prototyp eine grösssere Distanz zum Computer zurück legen mussten.</p>
<p>Nachdem die Platten untereinander funktionierten haben wir mit der der Feinabstimmung der Sounds begonnen. Uns war wichtig das die Sounds nich störend wirkten aber dennoch das Gefühl einer Welle vermitteln konnten.</p>
<p><img class="alignnone size-full wp-image-2689" title="Prototyp in Bewegung" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/platte_in_bewegung.png" alt="Prototyp in Bewegung" width="580" height="373" /></p>
<p><span style="font-size: medium;">5.0 Endpräsentation</span></p>
<p><span style="font-size: medium;"><img class="alignnone size-full wp-image-2690" title="Setting Endpraesentation" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/setting_endpraesi.png" alt="Setting Endpraesentation" width="580" height="373" /></span></p>
<p>Die Präsentation unseres Prototypen konnten wir nicht wie gewünscht an der Tramhaltestelle halten. Zum einen fehlte uns die gewünschte Stromversorgung, zum anderen war die Zeit um lange Distanzen zwischen den einzelnen Präsentationen zu überbrücken nicht vorhanden. Aus diesem Grund wurden alle Projekte im Gang des Hauptgebäudes ausgestellt und präsentiert. Die Reaktionen waren spannend anzusehen als verschiedene Personen unser Projekt getestet haben. Obwohl es sich um eine nicht visuelle Arbeit handelte, haben fast alle Tester in die Richtung geschaut wo sie die Vibration hingesendet haben. Man spührte woher ein Signal kam und wohin es ging. Wir sind mit den Ergebnissen sehr zufrieden, würden uns aber bei einer Weiterentwicklung oder weiteren Projekten dieser Art mehr Zeit wünschen. Weiter wäre es sehr interessant zu sehen was passiert wenn wir mehr als drei Platten einsetzen würden und wie sich diese dann auch im öffentlichen Raum integrieren würden.</p>
<p><img class="alignnone size-full wp-image-2691" title="Aufbau Endpräsentation" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/setting_endpraesi2.png" alt="Aufbau Endpräsentation" width="580" height="373" /></p>
<p><img class="alignnone size-full wp-image-2692" title="Tests vor Endpraesentation" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/setting_endpraesi3.png" alt="Tests vor Endpraesentation" width="580" height="373" /></p>
<p><img class="alignnone size-full wp-image-2693" title="Endpraesentation" src="http://www.michaelfretz.com/wp-content/uploads/2009/06/setting_endpraesi4.png" alt="Endpraesentation" width="580" height="373" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2009/06/08/interaction-in-physical-enviroment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>complex &#8211; Visual Event Feedback</title>
		<link>http://www.michaelfretz.com/2009/04/02/complex-visual-event-feedback/</link>
		<comments>http://www.michaelfretz.com/2009/04/02/complex-visual-event-feedback/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 15:52:42 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Interaktion]]></category>
		<category><![CDATA[Phyton]]></category>
		<category><![CDATA[Visualisierung]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/2009/04/02/complex-visual-event-feedback/</guid>
		<description><![CDATA[complex &#8211; die moderne Art, Informationen und Events vom Computer zu visualisieren. Tauchen auch Sie ein, in eine neue Welt voller Farben… Fabian Kuhn und Michael Fretz entwickelten eine Art Ambilight mit Echtzeitfeedback von Ereignissen welche gerade auf dem Computer des Anwenders passieren. Ob Skypenachrichten, Musik oder Emails, wenn irgendwas passiert wird dies Farblich dargestellt. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.michaelfretz.com/wp-content/uploads/2009/04/heardergrafikcomplex1.jpg" alt="complex - laptophalter 1" /></p>
<p>complex &#8211; die moderne Art, Informationen und Events vom Computer zu visualisieren. Tauchen auch Sie ein, in eine neue Welt voller Farben…</p>
<p>Fabian Kuhn und Michael Fretz entwickelten eine Art Ambilight mit Echtzeitfeedback von Ereignissen welche gerade auf dem Computer des Anwenders passieren. Ob Skypenachrichten, Musik oder Emails, wenn irgendwas passiert wird dies Farblich dargestellt.<br />
<strong>Erster Laserprototyp</strong><br />
Nach den ersten Versuchen mit Karton und Papier haben wir eine Version in Plexiglas gelasert. Mit dem Epilog Laserschneider konnten wir ohne grossen Aufwand die gewünschte Form aus einer Illustrator Datei ausschneiden. Anschliessend haben wir den ausgeschnittenen Umriss noch in die gewünschte Form gebogen. Nun war es uns möglich, mit diesem ersten Modell des Laptophalters konkretere Versuche zu unternehmen. So konnten wir offene Fragen und Probleme klären, zum Beispiel, wie lange der Halter sein sollte, um die gewünschte Lichtmischung zu erzielen  oder wie die Leuchten platziert sein müssen, damit diese einen möglichst schönen und farblich gut durchmischten Hintergrund erzeugen.<br />
Unter Berücksichtigung dieser Erkenntnisse erstellten wir nochmals einen Kartonprototyp, welcher eine schönere und leichtere Form hatte.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2009/04/complex_laptophalter.jpg" alt="complex - laptophalter 2" /></p>
<p><strong>Schwarzer Laserprototyp</strong><br />
Tags darauf kauften wir im PerPlex Shop schwarzes Plexiglas in der von uns bevorzugten Dicke. Der nun finale Grundriss wurde wiederum ausgelasert und anschliessend in die gewünschte Form gebogen. Mit dem neuen Objekt aus schwarzen Plexiglas sind wir sehr zufrieden. Die Form funktioniert sowohl als eigenständiges Objekt wie auch als Halter für ein Notebook.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2009/04/complex_notebookhalter.jpg" alt="complex - laptophalter 3" /></p>
<p><strong>Programmierung Teil 1</strong><br />
Nachdem der Laptopständer fertig war, mussten wir uns an die Programmierung machen. Zuerst entschieden wir uns, die Software Growl, welche für Apple verfügbar ist, zu verwenden. Diese fängt verschiedene Events des Computers ab und zeigt diese als Meldung auf dem Bildschirm an. Da Growl keine API zur Verfügung stellt, entschieden wir uns, alle Growl Meldungen an eine e-mail Adresse zu senden und diese anschliessend regelmässig zu überprüfen. Wir verwendeten dazu ein Java Programm, welches Philipp Läubli für uns programmierte. Das Programm prüfte alle 10 Sekunden, ob ein neues Email in der Mailbox vorhanden war. War dies der Fall, so sendeten wir den Inhalt des Mails an ein Processing Programm, mit welchem wir den Inhalt des jeweiligen Mails auslesen konnten und dem Inhalt entsprechend verschiedene Stadien an das Arduino sendeten. Wir stellten jedoch fest, dass dieses Vorgehen eine Verzögerung erzeugte und waren deshalb nicht zufrieden. Kurz vor Feierabend kam die Idee auf, nicht über Growl zu arbeiten, sondern die einzelnen Programme direkt anzusprechen.</p>
<p>Über das Skype Python API konnten wir schnell und einfach die Events von Skype abfangen. Vom Python Programm war es dann ein Leichtes, eine Verbindung zu Arduino herzustellen. Nun konnten wir die Skypenachrichten direkt nach dem absenden visuell darstellen.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2009/04/complex_macbookhalter.jpg" alt="complex - laptophalter 4" /><br />
<strong>Programmierung Teil 2</strong><br />
Nach der Entscheidung, die einzelnen Programme mit Python direkt anzusprechen, schauten wir verschiedene APIs diverser Programmhersteller genauer an. So kamen zu den Programmen, welche Events auslösen, noch Last.FM und E-mail dazu. Bei Last.FM entschieden wir uns, den Wechsel zwischen verschiedenen Musiktracks zu visualisieren. Ausserdem überprüften wir in der Mailbox, ob ein neues Mail eingetroffen war. War dies der Fall, so sendeten wir ein Signal an das Arduino.</p>
[See post to watch Flash video]
<p><strong>Downloads</strong></p>
<p><a title="Dokumentation" href="http://www.michaelfretz.com/wp-content/uploads/2009/04/dokucomplex.pdf">Dokumentation</a><br />
<a href="http://iad.projects.zhdk.ch/physicalcomputing/seminare/physical-computing-2-fs09/projektgruppen/projekttagebuch-fabian-und-michael/">Projektwebseite</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2009/04/02/complex-visual-event-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ideogen &#8211; Würfel dir deinen Videoclip</title>
		<link>http://www.michaelfretz.com/2008/10/15/ideogen-wurfel-dir-deinen-videoclip/</link>
		<comments>http://www.michaelfretz.com/2008/10/15/ideogen-wurfel-dir-deinen-videoclip/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 11:33:31 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[DaKa]]></category>
		<category><![CDATA[Interaktion]]></category>
		<category><![CDATA[MaxMSP]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[Reactivision]]></category>
		<category><![CDATA[Tracking]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Webcam]]></category>
		<category><![CDATA[Würfel]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/2008/10/15/ideogen-wurfel-dir-deinen-videoclip/</guid>
		<description><![CDATA[Das Projekt Ideogen befasst sich mit einer speziellen Art der Steuerung eines Programms. Mit Hilfe eines Würfels soll eine Eingabe gesteuert werden. Wieso ein Würfel? Ein Würfel hat etwas unberechenbares, ein Würfel lädt zum Spielen ein, ein Würfel ist eine ungewohnte Art zur Steuerung eines Programms. Und schliesslich „würfelt“ unser Programms auch einen Videoclip zusammen. [...]]]></description>
			<content:encoded><![CDATA[<p>Das Projekt Ideogen befasst sich mit einer speziellen Art der Steuerung eines Programms. Mit Hilfe eines Würfels soll eine Eingabe gesteuert werden.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/wuerfel_on_lighttable.jpg" alt="Ideogen in Action" /></p>
<p>Wieso ein Würfel? Ein Würfel hat etwas unberechenbares, ein Würfel lädt zum Spielen ein, ein Würfel ist eine ungewohnte Art zur Steuerung eines Programms. Und schliesslich „würfelt“ unser Programms auch einen Videoclip zusammen.</p>
<p>Auf unserem Würfel sollte nicht klar erkennbar sein, welche Funktion welchen Prozess auslöst, deshalb ist die Würfeloberfläche mit speziellen Tags versehen. Diese werden mit reacTIVision und einer externen Webcam gescannt und entsprechend interpretiert. Nach der Erkennung eines Tags wird im Programm eine entsprechende Funktion ausgelöst. Die Funktionen sind unterschiedlich und beinhalten Video- und Audioverarbeitung. Ziel ist es, einen Videoclip zu produzieren, in dem man einfach würfelt. Bei den Videofunktionen werden einerseits einzelne Bilder geladen oder man wird von einer zweiten Webcam gefilmt. Die gefilmten Aufnahmen werden als MovieClips gespeichert. Sind mehrere Video vorhanden, werden diese gemixt. Bei den Audiofunktionen wird bei einer Funktion eine Audioaufnahme über ein Mikrophon erstellt. Diese wird nach 5 Sekunden gestoppt und eine AIF Datei daraus erstellt. Eine weitere Audiofunktion ist das zufällige Abspielen einer Audiodatei. Am Ende wird aus all den zusammen gewürfelten Funktionen ein VideoClip produziert und abgespielt.</p>
<p>Ziel des Projektes</p>
<p>Bei unserem Projekt haben wir kein fix fertiges Endprodukt vor Augen gehabt. Viel mehr sollte eine flexibel erweiterbare Videoclipmaschine<br />
erstellt werden. Diese Videoclipmaschine sollte viele in den letzten Tagen gelernte Elemente beinhalten.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/ideogen_table.jpg" alt="Ideogen Table" /></p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/wuerfel_reactivioson_in_action.jpg" alt="Ideogen in Action" /></p>
<p>Fazit<br />
Unsere Idee, die unterschiedlichen erlernten Funktionen von MAX MSP / Jitter / reacTIVision zu verwenden, konnten wir realisieren. Wir<br />
konnten Videotracking, Audio- und Videoverarbeitung verbinden. Das Speichern von einzelnen Audio und Videodateien funktioniert ebenfalls.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/max_msp_ideogen.jpg" alt="Max MSP Ideogen" /></p>
<p>Printscreen aus einer MAX MSP Datei. Alle MAX MSP Dateien zum downloaden findet man hier:</p>
<p><a title="MAX MSP Dateien" href="http://www.michaelfretz.com/wp-content/uploads/2008/10/ideogen_maxpat.zip">MAX MSP Dateien</a></p>
[See post to watch Flash video]
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2008/10/15/ideogen-wurfel-dir-deinen-videoclip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Physical Computing AC &#8211; Motor und Servo</title>
		<link>http://www.michaelfretz.com/2008/10/01/physical-computing-ac-motor-und-servo/</link>
		<comments>http://www.michaelfretz.com/2008/10/01/physical-computing-ac-motor-und-servo/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 15:05:55 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[DaKa]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[MaxMSP]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/2008/10/01/physical-computing-ac-motor-und-servo/</guid>
		<description><![CDATA[Als kleine Übung zum Thema AC Motor haben wir versucht verschiedene drehbare Dinge herzustellen und zu steuern. Resultat war ein Rasierer welcher auch perfekt Papier schneiden konnte. :-) Als etwas anspruchsvollere Übung konstruierten wir einen Kran mit einer Seilwinde. Dabei kann der Kranarm über einen analogen Drehknopf bewegt werden und über den Mac wird die [...]]]></description>
			<content:encoded><![CDATA[<p>Als kleine Übung zum Thema AC Motor haben wir versucht verschiedene drehbare Dinge herzustellen und zu steuern. Resultat war ein Rasierer welcher auch perfekt Papier schneiden konnte. :-)<br />
<img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/daka_rasierer.jpg" alt="Physical Computing Rasierer" /></p>
<p>Als etwas anspruchsvollere Übung konstruierten wir einen Kran mit einer Seilwinde. Dabei kann der Kranarm über einen analogen Drehknopf bewegt werden und über den Mac wird die Seilwinde bedient. Für das Bewegen des Armes verwendeten wir einen Servo-Motor und für die Seilwinde einen AC-Motor.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/maxmsp_lift.jpg" alt="Schema MAX MSP Lift Steuerung" /></p>
<p>Schema in MAX MSP</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/daka_lift.jpg" alt="daka_lift.jpg" /></p>
<p>Seilwinde in Bewegung</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/daka_lift3.jpg" alt="Daka Seilwinde" /></p>
<p>Seitenansicht Seilwinde</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/daka_lift4.jpg" alt="Daka Liftsystem" /></p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/10/daka_lift2.jpg" alt="Daka" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2008/10/01/physical-computing-ac-motor-und-servo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Physical Computing</title>
		<link>http://www.michaelfretz.com/2008/09/30/physical-computing/</link>
		<comments>http://www.michaelfretz.com/2008/09/30/physical-computing/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 11:41:19 +0000</pubDate>
		<dc:creator>Michael Fretz</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[DaKa]]></category>

		<guid isPermaLink="false">http://www.michaelfretz.com/2008/09/30/physical-computing/</guid>
		<description><![CDATA[Das neue Modul Physical Computing bringt die Schnittstelle zwischen Mensch und Maschine noch ein wenig näher. Mithilfe von MAX MSP und dem DaKa, einem Lowcost USB-Interface machten wir unsere ersten Erfahrungen. Zusammen mit Gabriel Süss habe ich eine kleine Steuerung zusammengestellt welche sich durch ein Handklatschen eingeschaltet und abgeschaltet wird. Zwei LEDs fangen dann abwechslungsweise [...]]]></description>
			<content:encoded><![CDATA[<p>Das neue Modul Physical Computing bringt die Schnittstelle zwischen Mensch und Maschine noch ein wenig näher. Mithilfe von MAX MSP und dem DaKa, einem Lowcost USB-Interface machten wir unsere ersten Erfahrungen.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/09/max_msp2.jpg" alt="Physical Computing MAX MSP" /></p>
<p>Zusammen mit Gabriel Süss habe ich eine kleine Steuerung zusammengestellt welche sich durch ein Handklatschen eingeschaltet und abgeschaltet wird. Zwei LEDs fangen dann abwechslungsweise an zu blinken. Im gleichen Zug beginnt auch eine LED Abfolge abzulaufen was ein Durchlaufen eines Lichtes simuliert.<br />
Die Geschwindigkeit des Ablaufes wird durch einen Lichtsensor geregelt.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/09/daka_4.jpg" alt="Physical Computing Licht Sensor" /></p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/09/daka_7.jpg" alt="Physical Computing Bewegungs Melder PIR" /></p>
<p>Nach dieser kleinen Übung haben wir im Klassenverband gearbeitet und haben eine kleine Steuerung für unseren für den nächsten Tag angekündeten Apero erstellt.</p>
<p><img src="http://www.michaelfretz.com/wp-content/uploads/2008/09/daka_3.jpg" alt="Physical Computing DaKa" /></p>
<p>Eine gute Übersicht über das Projekt findet man auf der offiziellen Projektwebseite der ZHDK<br />
<a href="http://iad.projects.zhdk.ch/physicalcomputing/seminare/physical-computing-primer-hs08/dokumentation-hs08/dokumentation-nino/">http://iad.projects.zhdk.ch/physicalcomputing/seminare/physical-computing-primer-hs08/dokumentation-hs08/dokumentation-nino/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.michaelfretz.com/2008/09/30/physical-computing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

