<?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>Tobias-Conradi</title>
	<atom:link href="http://tobias-conradi.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://tobias-conradi.de</link>
	<description></description>
	<lastBuildDate>Fri, 06 Aug 2010 14:29:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TUIO Mouse Weiterentwicklung</title>
		<link>http://tobias-conradi.de/index.php/2010/08/06/tuio-mouse-weiterentwicklung/</link>
		<comments>http://tobias-conradi.de/index.php/2010/08/06/tuio-mouse-weiterentwicklung/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 14:27:34 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[TUIO Mouse]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[TUIO]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=170</guid>
		<description><![CDATA[Nachdem ich durch Abistress und viele Veranstaltungen wie Abistreich, -entlassung und -ball lange keine Zeit mehr hatte an diesem Projekt weiterzuarbeiten habe ich mich jetzt mal wieder drangesetzt die TUIO Mouse weiter zu entwickeln. Ich habe jetzt den Rechtsklick implementiert. Wenn man mit zwei Fingern innerhalb einer einstellbaren Zeit die MT-Fläche berührt hat, wird in [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich durch Abistress und viele Veranstaltungen wie Abistreich, -entlassung und -ball lange keine Zeit mehr hatte an diesem Projekt weiterzuarbeiten habe ich mich jetzt mal wieder drangesetzt die TUIO Mouse weiter zu entwickeln.</p>
<p>Ich habe jetzt den Rechtsklick implementiert. Wenn man mit zwei Fingern innerhalb einer einstellbaren Zeit die MT-Fläche berührt hat, wird in der Mitte der beiden Punkte ein Rechtsklick gemacht.</p>
<p>Als nächsten Schritt möchte ich  Scrollen  implementieren.</p>
<p>Noch möchte ich das Programm nicht ganz öffentlich zur Verfügung stellen. Auf <a href="http://tobias-conradi.de/index.php/kontakt/">A</a>nfrage stelle ich es gerne zur Verfügung.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/08/06/tuio-mouse-weiterentwicklung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vuvuzela Filter</title>
		<link>http://tobias-conradi.de/index.php/2010/06/13/vuvuzela-filter/</link>
		<comments>http://tobias-conradi.de/index.php/2010/06/13/vuvuzela-filter/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 15:37:51 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Garage Band]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[Vuvuzela]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=144</guid>
		<description><![CDATA[Das andauernde Vuvuzela-Geräusch in den Fernsehübertagungen der WM nervt viele Zuschauer. Um das Geräusch irgendwie wegzubekommen, aber gleichzeitig WM gucken zu können habe ich mir überlegt einfach mit nem Equalizer die Frequenzen der Vuvuzela rauszufiltern. Auf der Sucher nach den Vuvuzela-Frequenzen bin ich auf die Webseite von Tobias Herre gelandet, der die Frequenzen schon analysiert [...]]]></description>
			<content:encoded><![CDATA[<p>Das andauernde Vuvuzela-Geräusch in den Fernsehübertagungen der WM nervt viele Zuschauer.<br />
Um das Geräusch irgendwie wegzubekommen, aber gleichzeitig WM gucken zu können habe ich mir überlegt einfach mit nem Equalizer die Frequenzen der Vuvuzela rauszufiltern.<span id="more-144"></span></p>
<p>Auf der Sucher nach den Vuvuzela-Frequenzen bin ich auf die <a href="http://www.surfpoeten.de/tube/vuvuzela_filter" target="_blank">Webseite</a> von Tobias Herre gelandet, der die Frequenzen schon analysiert und mit Logic aus dem Tonsignal vom Fernseher rausgefiltert hat.</p>
<p>Mit Garageband und dem AUFilter als Effekt kann man recht einfach bestimmte Frequenzen rausfiltern.</p>
<p>Ich habe dann noch etwas an den Frequenzen rumgespielt und nach einen Blick auf <a href="http://www.arizona-software.ch/audioxplorer/" target="_blank">AudioXplorer</a> noch ein paar anderen hinzugefügt. Natürlich bekommt man das Geräusch der Vuvuzelas nicht ganz weg und der Kommentator klingt etwas verzerrt, es funktioniert aber trotzdem recht gut.</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-147" title="Spureffekte in GarageBand" src="http://tobias-conradi.de/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-13-um-17.16.39-201x300.png" alt="" width="201" height="300" /> <img class="aligncenter size-full wp-image-146" title="AUFilter Einstellungen" src="http://tobias-conradi.de/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-13-um-17.17.00.png" alt="" width="502" height="308" /></p>
<p style="text-align: center;">Wenn man dann Monitoring aktiviert kann man das Eingangssignal gefiltert ausgeben.<img class="aligncenter" title="Monitoring in GarageBand aktivieren" src="http://tobias-conradi.de/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-13-um-17.18.51-300x102.png" alt="" width="300" height="102" /></p>
<p>Da ich über einen DVB-T-Stick am Computer gucke, musste ich mir eine Möglichkeit suchen das Audio-Signal von EyeTV in Garageband zu routen. <a href="http://cycling74.com/products/soundflower/" target="_blank">Soundflower</a> ist hier der Retter in Not. Einmal installiert bietet Soundflower virtuelle Audio-Devices an an die man in EyeTV als Ausgang einstellen kann und dann in Garageband als Eingang.</p>
<p style="text-align: center;"><img class="size-medium wp-image-148 aligncenter" title="EyeTV Audio-Einstellungen" src="http://tobias-conradi.de/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-13-um-17.17.49-300x93.png" alt="" width="300" height="93" /><img class="size-medium wp-image-149 aligncenter" title="Garageband Audio-Einstellungen" src="http://tobias-conradi.de/wp-content/uploads/2010/06/Bildschirmfoto-2010-06-13-um-17.26.14-300x144.png" alt="" width="300" height="144" /></p>
<p>Danach kann man die WM-Übertagungen etwas Vuvuzela-freier genießen.<br />
Hoffentlich merken die Sender auch mal, dass man das Stadion-Vuvuzela-Geräusch nicht braucht und drehen die Stadion-Mikros ab&#8230;</p>
<p><del datetime="2010-06-14T15:42:08+00:00">Hier mein GarageBand Projekt zum Download: Vuvuzela Filter</del> (Update weiter unten)<br />
Ich hoffe der eine oder andere kann so die WM Vuvuzele-Gefiltert genießen.</p>
<p><strong>Nachtrag:</strong></p>
<p>Der von den Vuvuzelas erzeugte Grundton ist fast ein kleine Ais(ich habe 235Hz gemessen), doch lassen sich auch andere Töne der <a href="http://de.wikipedia.org/wiki/Naturtonreihe" target="_blank">Naturtonreihe</a> auf einer Vuvuzela spielen, also 470Hz, 705Hz, 940Hz, 1175Hz, 1410Hz, 1645Hz, 1880Hz, 2115Hz, usw.</p>
<p>Wenn diese Frequenzen aus dem Audio-Signal rausgefiltert werden sollten die Vuvuzelas nicht mehr hörbar sein.</p>
<p>Download mit aktualisierten Frequenzen: <a href="http://tobias-conradi.de/wp-content/uploads/2010/06/Vuvuzela-Filter.zip">Vuvuzela Filter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/06/13/vuvuzela-filter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TUIO Mouse</title>
		<link>http://tobias-conradi.de/index.php/2010/05/23/mttuio-mouse/</link>
		<comments>http://tobias-conradi.de/index.php/2010/05/23/mttuio-mouse/#comments</comments>
		<pubDate>Sun, 23 May 2010 14:10:56 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[TUIO Mouse]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[TUIO]]></category>
		<category><![CDATA[WS-Touch]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=100</guid>
		<description><![CDATA[Um mich erstmal wieder in Cocoa einzufinden und in das Framework einzuarbeiten habe ich mir vorgenommen ein kleines, einfaches Projekt anzugehen. Mir kam die Idee, dass es doch ganz gut wäre, wenn man mit dem Tisch auch ganz normal im Finder navigieren kann. Also wäre eine &#8220;MT-Maus&#8221; ganz gut. Nachdem ich ein wenig im Internet [...]]]></description>
			<content:encoded><![CDATA[<p>Um mich erstmal wieder in Cocoa einzufinden und in das Framework einzuarbeiten habe ich mir vorgenommen ein kleines, einfaches Projekt anzugehen. Mir kam die Idee, dass es doch ganz gut wäre, wenn man mit dem Tisch auch ganz normal im Finder navigieren kann. Also wäre eine &#8220;MT-Maus&#8221; ganz gut. Nachdem ich ein wenig im Internet nach bisherigen Lösungen gesucht hatte und keine zufrieden stellende Lösung gefunden habe, war für mich klar, dass ich versuchen werde eine gute &#8220;MT-Maus&#8221; für den MT-Tisch zu entwickeln.</p>
<p><span id="more-100"></span>Das Framework von Touché ist recht einfach aufgebaut. Nachdem man den TFTrackingClient instanziert hat, setzt man einen Delegate der das TFTrackingClientDelegate-Protokoll unterstützen muss.</p>
<p>Um einen Mausklick zu simulieren gibt es eine sehr einfache CoreGraphics-Funktion:</p>
<pre class="brush: java; wrap-lines: false;">
CGPoint hit = CGPointMake(450, 345);
CGEventRef mouseDownEv = CGEventCreateMouseEvent (
						  NULL, //CGEventSourceRef source
						  kCGEventLeftMouseDown, //CGEventType mouseType
										//kCGEventNull
										//kCGEventMouseMoved
										//kCGEventLeftMouseDragged
										//kCGEventLeftMouseDown
										//kCGEventLeftMouseUp
						  hit, //CGPoint mouseCursorPosition
						  kCGMouseButtonLeft //CGMouseButton mouseButton
										//kCGMouseButtonLeft
										//kCGMouseButtonRight
										//kCGMouseButtonCenter
						  );
CGEventPost(kCGHIDEventTap, mouseDownEv);
</pre>
<p>Wenn jetzt an der gleichen Position ein MouseUp-Event geschickt wird, ist es ein einfacher Links-Klick.</p>
<pre class="brush: java;">
CGPoint hit = CGPointMake(450, 345);
CGEventRef mouseUpEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseUp,hit,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseUpEv );
</pre>
<p>Wird aber nach dem MouseDown-Event kein MouseUp-Event sondern ein MouseDragged-Event geschickt, kann man mit der Maus z.B. Fenster ziehen.</p>
<pre class="brush: java;">
CGPoint hit = CGPointMake(512, 412);
CGEventRef mouseMovedEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseDragged,hit,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseMovedEv);
</pre>
<p>Mit den drei Mousevents sollte man erst einmal ausreichend im Finder navigieren können.</p>
<p>Während des Programmierens und Testens habe ich gemerkt, dass Touché leider nicht 100% zuverlässig läuft, auf jeden Fall hat die Wii-Remote-Implementation noch einige Fehler. Deshalb habe ich mich entschlossen die Abhängigkeit von Touché zu verringern und auf ein generelles TUIO-Framework umzusteigen.</p>
<p><a href="http://fieryferret.com/" target="_blank">Bridger Maxwell</a> hat ein <a href="http://code.google.com/p/tuioframework/" target="_blank">ObjC TUIO-Framework</a> geschrieben auf das ich schonmal im Zusammenhang mit dem <a href="http://tobias-conradi.de/index.php/tag/wiimote-whiteboard/">Wiimote Whiteboard</a> gestoßen bin.</p>
<p>Ich habe die Maus noch mal neu angefangen und sie mit dem TUIO-Framework aufgebaut. Daher auch der Name &#8220;TUIO Mouse&#8221;.</p>
<p>Ich habe &#8220;TUIO Mouse&#8221; als reines Kommandozeilen-Tool geschrieben, es kann aus dem Terminal gestartet werden, oder was meine eigentliche Idee ist, als LaunchAgent im Hintergrund laufen sobald sich der Benutzer anmeldet.<br />
Damit man trotzdem noch ein paar Sachen konfigurieren kann habe ich beschlossen sie mit dem Default-System von OS-X zu speichern. So kann ich auch relativ einfach von einem anderen (Konfigurations-)Programm auf die Einstellungen von &#8220;TUIO Mouse&#8221; zugreifen.</p>
<p>Leider hatte ich anfangs Probleme auf die Defaults-Domain zuzugreifen, da ein Kommandozeilen-Tool kein Bundle ist und auch kein Bundle-Identifier hat, der aber von dem NSUserDefaults-Objekt als Standard-Domain gewählt wird. Mit einiger Bastelei und der Hilfe eines Bekannten habe ich es dann doch geschafft auf die &#8220;fremde&#8221; Domain zuzugreifen ohne auf CFPreferences zugreifen zu müssen.<br />
Durch folgenden Code bekommt man ein NSDictionary mit den momentanen Defaults aus der angegebenen Domain.</p>
<pre class="brush: java; light: true;">
NSDictionary *currentDefaults = [userDefaults persistentDomainForName:kDomainName];
</pre>
<p>Nachdem man das Dictionary bearbeitet hat kann man die Defaults der Domain wieder überschreiben. Leider werden alle Defaults, die nicht im Dictionary vorhanden sind überschrieben!</p>
<pre class="brush: java; light: true;">
[userDefaults setPersistentDomain:newDefaults forName:kDomainName];
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/05/23/mttuio-mouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Planung</title>
		<link>http://tobias-conradi.de/index.php/2010/05/23/software-planung/</link>
		<comments>http://tobias-conradi.de/index.php/2010/05/23/software-planung/#comments</comments>
		<pubDate>Sun, 23 May 2010 11:05:19 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[TUIO]]></category>
		<category><![CDATA[WS-Touch]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=97</guid>
		<description><![CDATA[Wenn die Hardware funktioniert werden Berührungen der Tischoberfläche auf dem Bild der Webcam als weiße Blobs sichtbar sein. Diese Blobs müssen von einer Software erkannt und verarbeitet werden. In dem Wiki der NUI Group bin ich auf eine Liste mit Frameworks, Software und Libraries zum schreiben von Multitouch(MT)-Programmen gestoßen. Für mich ist klar, dass mein [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn die Hardware funktioniert werden Berührungen der Tischoberfläche auf dem Bild der Webcam als weiße Blobs sichtbar sein. Diese Blobs müssen von einer Software erkannt und verarbeitet werden.</p>
<p>In dem Wiki der <a href="http://www.nuigroup.com/" target="_blank">NUI Group</a> bin ich auf eine <a href="http://wiki.nuigroup.com/Applications_and_libraries" target="_blank">Liste</a> mit Frameworks, Software und Libraries zum schreiben von Multitouch(MT)-Programmen gestoßen. Für mich ist klar, dass mein Endprodukt auf einem Mac laufen soll und ich am liebsten Cocoa programmieren möchte um mich weiter in die Sprache einzuarbeiten. Das in der Liste aufgeführte <a href="http://gkaindl.com/software/touche" target="_blank">Touché</a> von Georg Kaindl macht einen recht ausgereiften Eindruck, ist komplett in Cocoa geschrieben, bringt ein eigenes Framework zur Entwicklung von eigener Software mit und die Beispielprogramme sind eine gute Basis um sich in das Framework und überhaupt MT-Programme einzuarbeiten.</p>
<p>Sehr schön finde ich auch, dass man auch eine Wii-Remote als Input benutzen kann und ich so auch meine Programme testen kann bevor der Tisch fertig gebaut ist. Touché kann auch <a href="http://tuio.org/" target="_blank">TUIO</a>-Nachrichten ausgeben und ist so auch als Tracker für andere MT-Programme geeignet.</p>
<p>Wie schon beschrieben soll man mit Berührungen auf dem Tisch Pfade zeichnen können, die an die Roboter übermittelt werden und dann von den Robotern abgefahren werden. Die Roboter sollen während der Fahrt aber Hindernissen ausweichen und so ist der gefahrene Pfad u.U. anders als der gezeichnete. Der gefahrene Pfad soll also vom Roboter an den Tisch übertragen und dort dargestellt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/05/23/software-planung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kommunikations-Protokoll</title>
		<link>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-protokoll/</link>
		<comments>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-protokoll/#comments</comments>
		<pubDate>Fri, 21 May 2010 16:57:34 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[WS-Touch]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=84</guid>
		<description><![CDATA[Die verschiedenen Module der Robotersteuerung müssen über ein Protokoll kommunizieren. Bei dem entwickelten Protokoll werden einzelne Elemente mit &#8220;,&#8221; getrennt. Ein Befehl wird mit &#8220;;&#8221; abgeschossen. Das GUI sendet und empfängt als erstes Element immer die ID vom Empfänger/Sender Kommandos die zwischen GUI und BTB gesendet werden: getNxtIds args:NO nxtIds args: id1, id2,… int &#62; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Die verschiedenen Module der Robotersteuerung müssen über ein Protokoll kommunizieren.</p>
<p style="text-align: left;">Bei dem entwickelten Protokoll werden einzelne Elemente mit &#8220;,&#8221; getrennt. Ein Befehl wird mit &#8220;;&#8221; abgeschossen.</p>
<p style="text-align: left;"><span id="more-84"></span><br />
Das GUI sendet und empfängt als erstes Element immer die ID vom Empfänger/Sender</p>
<p style="text-align: left;"><strong>Kommandos die zwischen GUI und BTB gesendet werden:</strong></p>
<pre class="brush: plain; light: true;">
getNxtIds	args:NO
nxtIds	 	args: id1, id2,…	int &gt; 0
</pre>
<p><strong>NXT-Kommandos:</strong></p>
<pre class="brush: plain; light: true;">
setPointToVisit		args: x, y			float 0..1
positionVisited		args: x, y			float 0..1
setPosition			args: x, y			float 0..1
getPosition			args:NO
delPoints			args:NO
drive				args:speed, angle	float -1..1, int -180..180
</pre>
<p style="text-align: left;">
<p style="text-align: left;">GUI&lt;-&gt;Bluetooth</p>
<pre class="brush: plain; light: true;">id, ack, cmd, arg1, arg2, argi;</pre>
<p style="text-align: left;">Bluetooth&lt;-&gt;NXT</p>
<pre class="brush: plain; light: true;">ack, cmd, arg1, arg2, argi;</pre>
<p style="text-align: left;">id = int  (id = 0 für BluetoothBridge, weitere für NXT)<br />
ack = bool 0/1 sagt aus ob eine Antwort erwartet wird oder nicht.</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Beispielnachrichten</strong>:</p>
<pre class="brush: plain; light: true;">
## kommt vom GUI nach dem Start: ##
0,1,getNxtIds;
## von BTB
0,0,nxtIds,1,2,3,4;
## vom GUI an die einzelnen NXT: ##
1,1,getPosition;
2,1,getPosition;
3,1,getPosition;
4,1,getPosition;
## von BTB an das GUI: ##
1,0,setPosition,0.1,0.2;
2,0,setPosition,0.2,0.3;
3,0,setPosition,0.3,0.4;
4,0,setPosition,0.4,0.5;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-protokoll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planung Hardware</title>
		<link>http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/</link>
		<comments>http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/#comments</comments>
		<pubDate>Fri, 21 May 2010 15:07:01 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[WS-Touch]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=56</guid>
		<description><![CDATA[Da ich in der Gruppe für die Table-Software bin, kann ich die Planung leider nur Auszugsweise wiedergeben. Der für den Multitouch-Tisch verfolgte Ansatz ist die Totalreflexion: Ein Stück Acryl-Glas wird von allen Seitenkanten von IR-LEDs beleuchtet. Da die Strahlen sehr flach auf die Flächen auftreten werden sie komplett reflektiert. (Die Lichtstrahlen werden an der Grenzfäche [...]]]></description>
			<content:encoded><![CDATA[<p><em>Da ich in der Gruppe für die Table-Software bin, kann ich die Planung leider nur Auszugsweise wiedergeben.</em></p>
<p>Der für den Multitouch-Tisch verfolgte Ansatz ist die <a title="Wikipedia: Totalreflexion" href="http://de.wikipedia.org/wiki/Totalreflexion" target="_blank">Totalreflexion</a>:<br />
Ein Stück Acryl-Glas wird von allen Seitenkanten von IR-LEDs beleuchtet. Da die Strahlen sehr flach auf die Flächen auftreten werden sie komplett reflektiert.<em> (Die Lichtstrahlen werden an der Grenzfäche reflektiert, da sie aus eine Medium mit hoher Brechzahl an die Grenze zur Luft mit niedrigerer Brechzahl in einem größeren Winkel als dem kritischen Winkel kommen.)<span id="more-56"></span><span style="font-style: normal;">Wenn man jetzt mit einem Finger auf das Acry-Glas drückt wird an dem Berühungspunkt Licht auch aus dem Glas herausreflektiert, da sich durch das andere Medium mit einer höheren Brechzahl als Luft der kritische Winkel geändert hat . Der Finger reflektiert das Licht zurück durch das Glas und wird für die unter der Glasscheibe montierte Kamera sichtbar.</span></em></p>
<p><em><span style="font-style: normal;"> Weitere Informationen gibt es <a href="http://wiki.nuigroup.com/FTIR">hier</a>.</span></em></p>
<p>Als Basis für den Tisch dient sehr stabiler alter Tisch der schon seit längerer Zeit im Computerraum rumsteht.<br />
Durch die Hausmeisterei werden mehrere Verstrebungen hinzugefügt, um die Last der Platte besser zu tragen. Das Acrylglas ist umgeben von drei Holzschichten, oben und unten sowie um die Platte herum. In dem Spalt zwischen dem Glas und der mittleren Holzschicht sollen auch die LEDs untergebracht werden.</p>

<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust1/' title='Tisch Grundgerüst' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst1-150x150.jpg" class="attachment-thumbnail" alt="Grundgerüst von WS-Touch" title="Tisch Grundgerüst" /></a>
<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust-mit-verstrebungen/' title='Tisch mit Verstrebungen' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst-mit-Verstrebungen-150x150.jpg" class="attachment-thumbnail" alt="Tisch mit Verstrebungen" title="Tisch mit Verstrebungen" /></a>
<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust-acryl-closeup/' title='Tisch Grundgerüst Acryl Closeup' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst-Acryl-Closeup-150x150.jpg" class="attachment-thumbnail" alt="Tisch Grundgerüst Acryl Closeup" title="Tisch Grundgerüst Acryl Closeup" /></a>
<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust-holz-acryl-ohne-top/' title='Tisch Grundgerüst Holz Acryl ohne Top' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst-Holz-Acryl-ohne-Top-150x150.jpg" class="attachment-thumbnail" alt="Tisch Grundgerüst Holz Acryl ohne Top" title="Tisch Grundgerüst Holz Acryl ohne Top" /></a>
<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust-holz-acryl-closeup/' title='Alle drei Holzschichten mit der Acrylplatte' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst-Holz-Acryl-closeup-150x150.jpg" class="attachment-thumbnail" alt="Alle Schichten" title="Alle drei Holzschichten mit der Acrylplatte" /></a>
<a href='http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/tisch-grundgerust-holz-acryl-gesamtsicht/' title='Tisch Grundgerüst Holz Acryl Gesamtsicht' rel='gallery-56'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/05/Tisch-Grundgerüst-Holz-Acryl-Gesamtsicht-150x150.jpg" class="attachment-thumbnail" alt="Tisch Grundgerüst Holz Acryl Gesamtsicht" title="Tisch Grundgerüst Holz Acryl Gesamtsicht" /></a>

<p>Die Glasplatte soll 109,5 cm x 81,00 cm x 1,5 cm groß, durchsichtig und an den Kanten poliert sein.<br />
Jeweils acht IR-LEDs in Reihe gelötet und die Achter-Gruppen in Parallelschaltung verkabelt sollen den Glasplatte von allen Seitenkanten beleuchten. Mit einem Vorwiderstand von 4,7Ω sollen sich die LEDs dann mit einem 12V Netzteil betreiben lassen.</p>
<p><em><span style="font-style: normal;"> </span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/05/21/planung-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WS-Touch ein Multitouch-Tisch</title>
		<link>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-ein-multitouch-tisch/</link>
		<comments>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-ein-multitouch-tisch/#comments</comments>
		<pubDate>Fri, 21 May 2010 12:20:24 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Multitouch Tisch]]></category>
		<category><![CDATA[WS-Touch]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=45</guid>
		<description><![CDATA[Die Idee Die Abi-Klausuren sind geschrieben und das vierte Semester bricht an. Dem letzten und sehr motivierten Informatik-Leistungskurs der Wichern-Schule fehlt es an Arbeit. Es werden Ideen gesammelt, was man die letzten Monate produktives machen könnte. Nach längeren Diskussionen fallen Ideen wie &#8220;3D-Tracking von Händen anhand der kapazitiven Verschiebung&#8221; oder &#8220;Warenhaus-Roboter&#8221; weg und die Idee eines [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Die Idee</strong></p>
<p>Die Abi-Klausuren sind geschrieben und das vierte Semester bricht an. Dem letzten und sehr motivierten Informatik-Leistungskurs der Wichern-Schule fehlt es an Arbeit. Es werden Ideen gesammelt, was man die letzten Monate produktives machen könnte. Nach längeren Diskussionen fallen Ideen wie &#8220;3D-Tracking von Händen anhand der kapazitiven Verschiebung&#8221; oder &#8220;Warenhaus-Roboter&#8221; weg und die Idee eines Multitouch-Tisches kristallisiert sich heraus.</p>
<p><span id="more-45"></span>Wichtig ist natürlich, dass es auch zum Lehrplan passt, also muss noch Robotik mit in den Kontext gebracht werden. Wie wäre es z.B. wenn man Lego-Mindstorms-NXTs über den Multitouch-Tisch steuern könnte, wenn man z.B. eine Linie auf den Tisch zeichnet und der Roboter fährt sie ab?</p>
<p><strong>Aufgabenbereiche</strong></p>
<p>Nachdem die Aufgabenstellung klar war, ging es an die Planung. Wir sind ein Kurs von 15 Personen, also wir die Aufgaben in verschiedene Aufgabenbereiche einteilen.<br />
- Table-Hardware<br />
- Table-Software<br />
- NXT-Software<br />
- Bluetooth-Kommunikation</p>
<p>Die Gruppe Table-Hardware sorgt dafür, dass der Tisch am Ende steht und in der Kamera ein Bild mit &#8220;Blobs&#8221; ankommen, die Table-Software kümmert sich darum, dass das Bild verarbeitet wird und Nachrichten an das GUI geschickt werden. Das GUI zeichnet anhand der &#8220;Blob&#8221;-Bewegungen Pfade, welche über Netzwerk an die Bluetooth-Kommunikation geschickt werden und von dort über Bluetooth an den NXT weitergeleitet werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/05/21/ws-touch-ein-multitouch-tisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS-X und OpenVPN mit DNS-Push</title>
		<link>http://tobias-conradi.de/index.php/2010/03/21/os-x-und-openvpn-mit-dns-push/</link>
		<comments>http://tobias-conradi.de/index.php/2010/03/21/os-x-und-openvpn-mit-dns-push/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 16:15:11 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[openVPN]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[Skript]]></category>

		<guid isPermaLink="false">http://tobias-conradi.de/?p=32</guid>
		<description><![CDATA[Wenn man bei OpenVPN den DNS-Server auf der anderen Tunnelseite benutzen möchte, ging es mit push &#34;dhcp-option DNS 10.66.0.4&#34; push &#34;dhcp-option DNS 10.66.0.5&#34; push &#34;dhcp-option WINS 10.66.0.8&#34; unter 10.4 und 10.5 Problemlos, doch seit 10.6 wird der lokale DNS-Server ersetzt. Deshalb geht dann die Namensauflösung von externen Server nicht mehr oder nur noch sehr langsam [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man bei OpenVPN den DNS-Server auf der anderen Tunnelseite benutzen möchte, ging es mit</p>
<pre class="brush: plain;">
push &quot;dhcp-option DNS 10.66.0.4&quot;
push &quot;dhcp-option DNS 10.66.0.5&quot;
push &quot;dhcp-option WINS 10.66.0.8&quot;
</pre>
<p>unter 10.4 und 10.5 Problemlos, doch seit 10.6 wird der lokale DNS-Server ersetzt. Deshalb geht dann die Namensauflösung von externen Server nicht mehr oder nur noch sehr langsam über das VPN.In der Dokumentation von <a title="http://code.google.com/p/tunnelblick/wiki/QuickStartGuide" href="http://code.google.com/p/tunnelblick/wiki/QuickStartGuide#The_Set_Nameserver_Check_Box_and_DNS_and_WINS_Settings" target="_blank">http://code.google.com/p/tunnelblick/wiki/QuickStartGuide</a> steht, dass man wenn man beide DNS-Server nutzen möchte, ein dazu passendes Skript schreiben muss.</p>
<p>Da ich meinen lokalen und den DNS-Server auf der anderen Tunnelseite nutzen möchte, muss ich mein eigenes Skript schreiben. Das Skript konfiguriert welcher DNS-Server für die gegebene Domain benutzt werden soll.</p>
<div>
<pre class="brush: bash;">
#!/bin/bash
####
# The script sets/deletes the DNS-Server to use for a given domain
# by Tobias Conradi Mar 21 2010
# www.tobias-conradi.de
#####
if [ &quot;$1&quot; = &quot;add&quot; ]
then
mkdir -p /etc/resolver 2&amp;gt; /dev/null
echo &quot;nameserver $3&quot; &amp;gt; /etc/resolver/$2
elif [ &quot;$1&quot; = &quot;delete&quot; ]
then
rm -Rf /etc/resolver/$2
fi
if [ &quot;$1&quot; = &quot;add&quot; ] || [ &quot;$1&quot; = &quot;delete&quot; ]
then
killall DirectoryService
exit 0
else
echo &quot;Error&quot;
echo &quot;Usage: $0 add|delete mydomain.de 192.168.1.1&quot;
fi
</pre>
</div>
<div>Das Skript muss unter einem Pfad gespeichert werden, der für Tunnelblick und OpenVPN erreichbar ist.</div>
<div>Dann muss in die Konfigurationsdatei des Tunnels das Skript als up- und down-Skript eingetragen werden.</div>
<div>Bsp.:</div>
<div>
<pre class="brush: plain;">
up &quot;/Applications/Utilities/Tunnelblick.app/Contents/Resources/set-DNS.sh add mydomain.de 192.168.66.2&quot;
down &quot;/Applications/Utilities/Tunnelblick.app/Contents/Resources/set-DNS.sh delete mydomain.de&quot;
</pre>
</div>
<p>Jetzt noch in Tunnelblick &#8220;Nameserver festlegen&#8221; deaktivieren und schon müssten beide DNS-Server funktionieren.</p>
<p>Links:<br />
<a href="http://www.openvpn.net/">OpenVPN</a><br />
<a href="http://code.google.com/p/tunnelblick/">Tunnelblick</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2010/03/21/os-x-und-openvpn-mit-dns-push/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein Stift nimmt Formen an</title>
		<link>http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/</link>
		<comments>http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 21:51:40 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[IR-Pen]]></category>
		<category><![CDATA[Wiimote-Whiteboard]]></category>

		<guid isPermaLink="false">http://wordpress.tobias-conradi.de/?p=4</guid>
		<description><![CDATA[Als ich merkte, dass es mit einfachen IR-LEDs nicht richtig Funktioniert habe ich im Internet gesucht welche IR-LED mit guten Ergebnissen von anderen verwendet wird. Irgendwann bin ich dann auf die Spezifikationen eines Funktionierenden IR-Pens gestoßen. Als ich endlich die passenden Daten hatte bin ich zu Conrad gegangen, um die Teile zum Bau des IR-Pens [...]]]></description>
			<content:encoded><![CDATA[<div>Als ich merkte, dass es mit einfachen IR-LEDs nicht richtig Funktioniert habe ich im Internet gesucht welche IR-LED mit guten Ergebnissen von anderen verwendet wird.</div>
<div>Irgendwann bin ich dann auf die Spezifikationen eines Funktionierenden IR-Pens gestoßen.</div>
<div>Als ich endlich die passenden Daten hatte bin ich zu <a title="Conrad Electronic" href="http://www.conrad.de/" target="_blank">Conrad</a> gegangen, um die Teile zum Bau des IR-Pens zu kaufen.</div>
<div><span id="more-4"></span></div>
<div>Den Teile für den Stift habe ich dann für 2,20€ bekommen, er besteht aus:</div>
<div>
<table style="border-color: #000000; border-width: 0px;" border="0">
<tbody>
<tr>
<td><span style="text-decoration: underline;">Artikelnummer</span></p>
<p><span style="text-decoration: underline;">(Conrad)</span></td>
<td><span style="text-decoration: underline;">Art:</span></td>
<td><span style="text-decoration: underline;">Preis</span>:</td>
</tr>
<tr>
<td><a title="Bei Conrad" href="http://www.conrad.de/goto.php?artikel=615544" target="_blank">615544</a></td>
<td>Batteriehalterung(AA)</td>
<td>0,85 €</td>
</tr>
<tr>
<td><a title="Bei Conrad" href="http://www.conrad.de/goto.php?artikel=171140" target="_blank">171140</a></td>
<td><a title="IR-Sendediode Datenblatt" href="http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/171140-da-01-en-IR-Sendediode_TSAL6200.pdf" target="_blank">IR-Sendediode TSAL 6200</a></td>
<td>0,66 €</td>
</tr>
<tr>
<td><a title="Bei Conrad" href="http://www.conrad.de/goto.php?artikel=707589" target="_blank">707589</a></td>
<td>SMD Taster</td>
<td>0,69 €</td>
</tr>
<tr>
<td></td>
<td align="right">Summe:</td>
<td>2,20 €</td>
</tr>
</tbody>
</table>
</div>
<div>Das Bauen war dann ein wenig Arbeit, doch mit bisschen Fingerspitzengefühl ist es durchaus zu schaffen.</div>
<div>Ich habe das Batteriefach so geschnitz, dass ich von oben die Beine der LED einführen konnte.</div>
<div>In die Rückseite habe ich Löcher für die Verbindung zum Taster gebohrt.</div>
<div>Den Taster habe ich dann so mit Heißkleber auf den Rücken geklebt, dass die beiden Beinchen die ich schalten will, direkt an den Löchern liegen.</div>
<div>Ein Kabelstück vom Minuspol der Batteriehalterung zu dem Taster gelegt und festgelötet, das kürzere Bein(-) an den Taster gelötet, sodass ich nurnoch das längere Beinchen(+) an den Pluspol der Halterung löten musste.</div>
<div>Damit war die Grundstruktur fertig.</div>
<div>So musste ich nur noch eine Batterie einlegen um mit einer normalen Kamera zu  testen ok die IR-LED leuchtet.</div>
<div>Ich kam dann auf die Idee es ein wenig mehr in Stiftform zu bringen und wollte testen ob man es vielleicht einfach in eine Kabelröhre stecken kann.</div>
<div>Also Runter in den Keller und Kabelrohr gesucht. Zum Glück war ein passendes Stück Kabelrohr da, dass ich nur noch so zurecht Schnitzen musste, dass für den Taster eine Lücke ist, wenn man die Batteriehalterung in die Kabelröhre steckt.</div>
<div>Dann habe ich noch mit Heißkleber die LED Stabilisiert und die offenen Kontakte mit Isolierband abgeklebt.</div>
<div>Fertig war mein erster IR-Stift.</div>
<div>

<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1000313395_dscf5591/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1000313395_dscf5591-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1009858527_dscf5594/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1009858527_dscf5594-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1045238675_dscf5593/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1045238675_dscf5593-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1084609641_dscf5595/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1084609641_dscf5595-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1231456619_dscf5592/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1231456619_dscf5592-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1319040534_dscf5588/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1319040534_dscf5588-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>
<a href='http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/20080417_1530313671_dscf5589/' title='IR-Stift' rel='gallery-4'><img width="150" height="150" src="http://tobias-conradi.de/wp-content/uploads/2010/01/20080417_1530313671_dscf5589-150x150.jpg" class="attachment-thumbnail" alt="IR-Stift" title="IR-Stift" /></a>

</div>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2008/04/17/ein-stift-nimmt-formen-an/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein digitales Whiteboard für 40€</title>
		<link>http://tobias-conradi.de/index.php/2008/04/16/ein-digitales-whiteboard-fur-40e/</link>
		<comments>http://tobias-conradi.de/index.php/2008/04/16/ein-digitales-whiteboard-fur-40e/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 00:00:38 +0000</pubDate>
		<dc:creator>toco</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Wiimote-Whiteboard]]></category>

		<guid isPermaLink="false">http://wordpress.tobias-conradi.de/?p=25</guid>
		<description><![CDATA[Ein Lehrer von mit hatte mir den Link zu Johnny Lees Webseite geschickt. Das Projekt hat mich sofort faziniert,also begann ich darüber zu im Internet zu recherchieren, ob es schon mit nem Mac uns OS-X realisiert wurde. So hab ich einige Stunden mit suchen verbracht und bin auf zwei gute Programme gestoßen. Einmal eine &#8220;geportete&#8221; Version [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>Ein Lehrer von mit hatte mir den Link zu Johnny Lees <a href="http://www.cs.cmu.edu/~johnny/projects/wii/" target="_blank">Webseite</a> geschickt.</div>
<div>Das Projekt hat mich sofort faziniert,also begann ich darüber zu im Internet zu recherchieren, ob es schon mit nem Mac uns OS-X realisiert wurde. So hab ich einige Stunden mit suchen verbracht und bin auf zwei gute Programme gestoßen.</div>
</div>
<div>
<div>Einmal eine &#8220;<a title="Wiimote Whiteboard" href="http://www.uweschmidt.org/wiimote-whiteboard">geportete&#8221; Version </a> von Johnny Lees Programm und dann ein anderes <a title="Darwiin-Remote" href="http://sourceforge.net/projects/darwiin-remote/" target="_blank">Programm</a> das nicht wie ein &#8220;Smartboard&#8221; arbeitete sondern mit dem man die Maus über den Bewegungssensor der Wiimote steuern kann.</div>
<div>Das Programm von <a href="http://www.uweschmidt.org/" target="_blank">Uwe Schmidt</a> ist sehr ausgereift und wird sehr aktiv Weiterentwickelt.</div>
<div>Am nächsten Tag bin ich zu <a title="Conrad Electronics" href="http://www.conrad.de/" target="_blank">Conrad</a> gegangen und hab mir eine Wiimote, IR-LED und eine LED-Schlüsselanhänger-Lampe gekauft.</div>
<div>Darwiin-Remote lief von Anfang an klasse, doch mit dem IR-Pen hatte ich noch so meine Probleme.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tobias-conradi.de/index.php/2008/04/16/ein-digitales-whiteboard-fur-40e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
