<?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>Robotfreak Blog</title>
	<atom:link href="http://www.robotfreak.de/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Mikrocontroller und mehr</description>
	<lastBuildDate>Sat, 24 Oct 2009 20:17:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Ardubot</title>
		<link>http://www.robotfreak.de/blog/robotik/ardubot/194</link>
		<comments>http://www.robotfreak.de/blog/robotik/ardubot/194#comments</comments>
		<pubDate>Fri, 23 Oct 2009 21:43:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ardubot]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=194</guid>
		<description><![CDATA[Ardubot heisst mein aktuelles Roboterprojekt. Benannt wurde er nach dem  Sparkfun Ardubot PCB, welches das Chassis bildet. Als Prozessor Board kommt ein Seeeduino V328 mit ATmega328 zum Einsatz. Dieses ist voll kompatibel zum Arduino Duemilanove, hat aber noch einige sinnvolle Erweiterungen. Die Stromversorgung bildet ein 7,4V 1100mAh LiPo Akku. Der Motor Controller besteht aus einem [...]]]></description>
			<content:encoded><![CDATA[<p>Ardubot heisst mein aktuelles Roboterprojekt. Benannt wurde er nach dem  <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9207" class="liexternal">Sparkfun Ardubot PCB</a>, welches das Chassis bildet. Als Prozessor Board kommt ein <a href="http://letsmakerobots.com/node/10254" class="liexternal">Seeeduino V328</a> mit ATmega328 zum Einsatz. Dieses ist voll kompatibel zum Arduino Duemilanove, hat aber noch einige sinnvolle Erweiterungen. Die Stromversorgung bildet ein 7,4V 1100mAh LiPo Akku. Der Motor Controller besteht aus einem L293D. Angetrieben wird der Ardubot von 2 <a href="http://www.pololu.com/catalog/product/992" class="liexternal">Pololu Micro Metal Gearmotoren</a> mit einer 100:1 &#220;bersetzung und den passenden <a href="http://www.pololu.com/catalog/product/1218" class="liexternal">Pololu 42&#215;19 R&#228;dern mit Quadratur Encodern</a>. Dazu kommt noch ein <a href="http://www.lcd-module.com/produkte/dog.html" class="liexternal">DOGM163</a> 16&#215;3 Zeichen LCD Modul.</p>
<p><img src="http://farm3.static.flickr.com/2700/4032469329_bb50e8edd0.jpg" alt="Ardubot" /></p>
<p><span id="more-194"></span></p>
<h2>Aufbau:</h2>
<p>Der Ardubot ist modular aufgebaut. Alle Module werden nur einfach aufeinander gesteckt oder verschraubt. Die Verbindungen zwischen den Modulen sind mit Dr&#228;hten bzw. Kabel steckbar ausgef&#252;hrt. Auf dem Tr&#228;gerplatine bzw. dem Seeeduino  sind alle Steckverbinder angebracht die zum Verbinden der Module ben&#246;tigt werden. Durch diese flexible Verkabelung lassen sich leicht unterschiedliche Varianten zum Anschlu&#223; der Hardware mit dem Arduino ausprobieren.</p>
<p>Die bisher vorhandenen  Module sind im einzelnen:</p>
<ul>
<li>Tr&#228;gerboard mit Motor Treiber, Motoren, Radencoder</li>
<li>Prozessor Modul</li>
<li>I<sup>2</sup>C LCD Modul</li>
<li>Liniensensor</li>
</ul>
<p>Als Erweiterungen sind geplant bzw. befinden sich im Bau:</p>
<ul>
<li>Asuro Erweiterungs Modul.  Erm&#246;glicht das Anschlie&#223;en von Asuro Erweiterungen wie SnakeVision,  US Sensor.</li>
<li>Sensor Modul f&#252;r verschiedene Ultraschall bzw Infrarot Entfernungssensoren, Lichtsensoren</li>
<li>Gyro/Acceleration Board um den Ardubot auf  den Hinterr&#228;dern balancieren zu lassen</li>
<li>Funk Kamera Modul mit Schwenk/ Neige Servo</li>
<li>Bluetooth oder ein anderes drahtloses Kommunikations Modul</li>
</ul>
<h2>Tr&#228;gerboard:</h2>
<p>Das Ardubot PCB ist das Tr&#228;gerboard f&#252;r den Ardubot. Wie beim Asuro bildet die Platine zugleich das Chassis f&#252;r den Roboters. Die Ardubot Platine besteht aus:</p>
<ul>
<li> Lochrasterfl&#228;chen und Strom Versorgungs Reihen,</li>
<li>einem Arduino konformen Steckplatz und Bohrungen,</li>
<li>Bohrungen f&#252;r die Motor Halterungen und das Bugrad</li>
<li>Anschlu&#223; f&#252;r Batterie und Schalter</li>
<li>der Anschlu&#223; f&#252;r den L293D  Motor Halter und die Motoren</li>
</ul>
<p>Leider ist einiges nicht so verdrahtet, wie ich mir das gew&#252;nscht h&#228;tte. Im Nachhinein h&#228;tte ich auch gleich eine fertige doppelseitig kontaktierte Lochraster Platine verwenden k&#246;nnen. Folgende &#196;nderungen wurden deshalb an der Ardubot Platine vorgenommen:</p>
<ul>
<li>Motor Controller Eing&#228;nge von den Arduino Steckplatz durchtrennt und auf eine eigene Buchsenleiste gef&#252;hrt</li>
<li>Enable Pins des Motor Controller waren mit VCC verbunden. Durchtrennt und ebenfalls auf die Buchsenleiste gef&#252;hrt</li>
<li>Die beiden Reihen f&#252;r  Batteriespannung und GND getauscht. Damit sich Sensoren oder Servos mit 3pol Standard Anschl&#252;ssen anschlie&#223;en lassen</li>
<li>alle Arduino Pins sind nochmals vorne an den Seiten auf Stiftleisten gef&#252;hrt</li>
</ul>
<p>Trotz aller Umbauten ist die Ardubot Platine immer noch nicht perfekt.</p>
<ul>
<li>Durch die verwendeten gr&#246;&#223;eren R&#228;der kann man den USB Stecker am Arduino nicht mehr anstecken, ohne das er am Rad schleift. </li>
<li>Ich h&#228;tte gerne auch das Seeeduino Mega Board ausprobiert. Von den Abmessungen kaum gr&#246;&#223;er als das Seeeduino V328 aber die Steckverbinder sind leider etwas versetzt. Darum pa&#223;t es nicht. Auf einem etwas gr&#246;&#223;eren Board (Standard EuoPlatine 100&#215;160mm) m&#252;&#223;te es gehen oder mit l&#228;ngeren Steckverbindern.</li>
<li>Dadurch, dass das Arduino Baord mit den Steckverbindern nach unten auf die Ardubot Platine gesteckt wird, kann man kein Standard Arduino Shield verwenden. Au&#223;er es ist ein Shield mit &#8217;stackable Headers&#8217;.
</li>
</ul>
<h3>Ardubot Unterseite:<strong> </strong></h3>
<p>Die Unterseite der Ardubot Platine enth&#228;lt eine Menge an zus&#228;tzlichen Dr&#228;hten und Bauteilen. Neben dem L293D Motor Controller, einem weiteremPCF8574 Port Expander f&#252;r den Liniensensor auch ein 74AC14 Hex Inverter C. Derzeit werden 2 Inverter f&#252;r die Motor Steuerung verwendet, was 2 Arduino IOs einspart.</p>
<p><img src="http://farm3.static.flickr.com/2705/4033229186_5b949cd865.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033229186/" class="liexternal">Flickr</a> anschauen.</p>
<h3>Ardubot Oberseite:</h3>
<p>Auf der Oberseite sieht man neben den neu verdrahteten Verbindungen eine Menge an SMD Widerst&#228;nden. Da alles so flexibel wie m&#246;glich sein soll, sind alle Eing&#228;nge der Chips mit Pulldown Widerst&#228;nden versehen. Zudem sind alle Ein-und Ausg&#228;nge auf die unten zu sehenden Front Steckverbinder gef&#252;hrt. So kann relativ schnell die Hardware neu verdrahtet werden ohne zum L&#246;tkolben greifen zu m&#252;ssen.</p>
<p><img src="http://farm3.static.flickr.com/2517/4033221138_12dabcb0c2.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033221138/" class="liexternal">Flickr</a> anschauen.</p>
<h3>Quadratur Encoder:</h3>
<p>Das folgende Bild zeigt ein Pololu Rad mit dem Quadratur Encoder. &#220;ber 2 Trimmer kann man die beiden Ausgangssignale anpassen, damit diese ein perfektes Rechteck Signal und ein 90° phasenverschobenes Signal ausgeben.</p>
<p><img src="http://farm4.static.flickr.com/3067/4033219620_264ab28786.jpg" alt="Ardubot" /></p>
<h2>Prozessor Modul:</h2>
<p>Als Gehirn f&#252;r den Ardubot kommt ein  Seeeduino V328 Board zum Einsatz. Ein Arduino Duemilanove clone. Das Seeeduino wurde von mir nicht nur wegen der zum Tr&#228;gerboard passenden Farbe ausgew&#228;hlt. Es hat zudem einige wichtige Vorz&#252;ge gegen&#252;ber dem Duemilanove:</p>
<ul>
<li>2 extra A/D pins</li>
<li>seperate Anschl&#252;sse  f&#252;r I<sup>2</sup>C und UART</li>
<li>separate Arduino IOs auf der R&#252;ckseite mit Lochraster konformen Abmessungen</li>
<li>Arbeitet mit 5V oder 3,3V (&#252;ber Schalter umschaltbar)</li>
<li>Auto oder Manueller Reset (&#252;ber Schalter umschaltbar)</li>
</ul>
<p><img src="http://farm4.static.flickr.com/3483/4035048953_5575933741.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4035048953/" class="liexternal">Flickr</a> anschauen.</p>
<h2>I<sup>2</sup>C LCD Modul:</h2>
<p>Das LCD Module ist ein DOGM 163 3&#215;16 Zeichen Display von <a href="http://www.lcd-module.de" class="liexternal">lcd-module.de</a>. Es kann im 8-bit, 4-bit und SPI Mode betrieben werden. Aufgrund der Limitierung der Arduino IOs wird das LCD im 4-Bit Mode &#252;ber einen I<sup>2</sup>C Port Expander betrieben. Die Standard LiquidCrystal Arduino Bibliothek wurde entsprechend angepasst. &#220;ber Jumper und einen separaten Steckverbinder kann man das Modul auch im SPI Mode betrieben. &#220;ber die hinteren Steckverbinder ist auch ein 4-Bit Betrieb m&#246;glich. I2C ist nat&#252;rlich aufgrund des Bussystems nat&#252;rlich die Methode die die wenigsten Pins ben&#246;tigt, allerdings auch sehr langsam (100µs pro Zeichen bei 100kHz I2C Bustakt).</p>
<p><img src="http://farm3.static.flickr.com/2732/4033227754_c06af29fbb.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033227754/" class="liexternal">Flickr</a> anschauen.</p>
<h2>Erster Test, schreibe &#8216;LMR&#8217;:<strong><br />
</strong></h2>
<p>Der erste Test f&#252;r den Ardubot gilt den Rad Encodern. Diese sind zwar mit einer Aufl&#246;sung von 48 Impulsen pro Rad Umdrehung nicht sehr exakt. Um einfache Figuren zu zeichnen, sollte es aber allemal reichen. Bei <a href="http://www.letsmakerobots.com" class="liexternal">letsmakerobots</a> gibt es schon seit einiger Zeit einen Wettbewerb, in dem es darum geht, die Buchstaben &#8216;LMR&#8217;, die Abk&#252;rzung f&#252;r letsmakerobots, mit einem Roboter darzustellen. Das ist doch schon mal eine echte Herausforderung.</p>
<p>Als fauler Programmieren baut man nat&#252;rlich auf etwas, was man schon kennt. In diesem Fall den Asuro und die Asuro Library. Der Asuro hat ja auch Radencoder mit einer &#228;hnlichen Aufl&#246;sung und in der Asuro Lib gibt es die passenden Funktionen f&#252;r Go und Turn zum Fahren unter Zuhilfenahme der Radencoder. Die beiden Funtkionen bzw. die aktuelle GoTurn Funktion ist schnell f&#252;r den Ardubot in ein Arduino Sketch umgewandelt. Aber irgendwie funktioniert das ganze noch nicht so richtig. Es ist scheinbar egal ob ich die Korrektur der Geschwindigkeit durch Vergleich von linkem und rechtem Encoder drinhabe oder nicht. Es kommt fast immer zu einer leichten Abweichung. Wenn ich die Korrektur weglasse, sieht das Ergebnis genauso aus. Da steckt noch irgendwie der Wurm drin. Trotzdem bin ich mit dem ersten Ergebnis soweit zufrieden.</p>
<p>Hier gibt es das Video zu diesem ersten Test.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/GM3jkn8ZhFc" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/GM3jkn8ZhFc"></embed></object></p>
<p>Wie man beim letzten Buchstaben dem &#8216;R&#8217; sehen kann ist der Halbkreis doch sehr klein geworden. Das liegt diesmal aber nicht an der Software, sondern an der Hardware. Die R&#228;der bewegen sich erst ab einem PWM Wert von ca. 80. Unter 80 geben die Motoren nur pfeifende Ger&#228;usche vonn sich. wenn sich die R&#228;der dann drehen, schafft man es einfach nicht mehr engere Kurven zu fahren. Der Kreis wird gleich zu gro&#223; (ca 30cm) wenn sich das innere Rad zu drehen beginnt oder zu klein, wenn es stehen bleibt (ca 9cm). F&#252;r den perfekten Halbkreis w&#228;ren aber 15cm richtig.</p>
<p>Des weitern erkennt man in dem Video, das der Stift bei jeder Drehung einen kleinen Bogen beschreibt. Ist nat&#252;rlich logisch, da der Stift ja versetzt von der Drehachse des Roboters angebracht ist. Abhilfe k&#246;nnte hier ein Servo schaffen, der den Stift auf Kommando absetzt oder anhebt. Zudem m&#252;&#223;te man dann mit dem Roboter vor jeder Drehung:</p>
<ul>
<li>den Stift anheben</li>
<li>ein kleines St&#252;ck zur&#252;ckfahren</li>
<li>drehen</li>
<li>wieder ein kleines St&#252;ck vorfahren</li>
<li>Stift absenken</li>
</ul>
<p>Daran bastele ich gerade als n&#228;chstes.</p>
<h2>Weitere Tests:</h2>
<p>F&#252;r die Zukunft sind weitere Test geplant:</p>
<ul>
<li>Zeichnen mit Stift und Servo</li>
<li>Liniensensor Test</li>
<li>Enrfernungs Sensoren testen</li>
<li>IR Fernbedienung</li>
<li>Balancieren auf den Hinterr&#228;dern</li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157622510554147/" class="liexternal">Ardubot Flickr Album</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/ardubot/194/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Asuro &#8211; DIY USB-IR Transceiver</title>
		<link>http://www.robotfreak.de/blog/robotik/asuro-diy-usb-ir-transceiver/176</link>
		<comments>http://www.robotfreak.de/blog/robotik/asuro-diy-usb-ir-transceiver/176#comments</comments>
		<pubDate>Wed, 02 Sep 2009 20:29:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=176</guid>
		<description><![CDATA[Ein kleiner Adapter macht aus dem Standard RS232-IR Transceivers zusammen mit einem USB-UART Modul einen USB IR Transceiver.


Da neuere Rechner kaum noch mit einer seriellen Schnittstelle ausgestattet sind, gucken Asuro Benutzer erst mal in die R&#246;hre, da dem Bausatz nur ein RS232-IR Transceiver beiliegt. Der Asuro l&#228;sst sich leider nur &#252;ber diese propriet&#228;re Infrarot Schnittstelle [...]]]></description>
			<content:encoded><![CDATA[<p>Ein kleiner Adapter macht aus dem Standard RS232-IR Transceivers zusammen mit einem USB-UART Modul einen USB IR Transceiver.<br />
<img src="http://farm3.static.flickr.com/2646/3881569373_a685d1689a.jpg" alt="Asuro DIY USB IR Transceiver" /><br />
<span id="more-176"></span><br />
Da neuere Rechner kaum noch mit einer seriellen Schnittstelle ausgestattet sind, gucken Asuro Benutzer erst mal in die R&#246;hre, da dem Bausatz nur ein RS232-IR Transceiver beiliegt. Der Asuro l&#228;sst sich leider nur &#252;ber diese propriet&#228;re Infrarot Schnittstelle Flashen, bzw. zur seriellen Kommunikation nutzen. Zwar gibt es auch den USB-IR Transceiver. Doch der kosten mit 18€ nicht gerade wenig, und taugt zudem nur f&#252;r den Asuro (bzw. den Yeti).</p>
<p>Es liegt also nahe, eine kosteng&#252;nstige L&#246;sung zu finden, die mit dem zum Bausatz geh&#246;renden RS232-IR Transceiver funktioniert. Und besser noch, eine L&#246;sung die nicht nur f&#252;r den Asuro taugt, sondern auch f&#252;r andere Projekte. Denn auch wenn, die serielle Schnittstelle beim PC quasi verschwinden ist, so findet sie sich noch bei vielen Mikrocontrollern.</p>
<p>USB UART Wandler gibt es sehr viele auf der Welt, aber nicht alle funktionieren auch mit dem Asuro bzw. dem Flash Tool. Doch es gibt Hoffnung. Auf dem USB-IR Transceiver wird ein USB UART Wandler der Firma <a href="http://www.ftdichip.com" class="liexternal">FTDI</a> verwendet. Diese USB UART Wandler findet man auf vielen Boards. So sind z.B. fast alle <a href="http://www.arduino.cc" class="liexternal">Ardui</a> Boards mit einem FTDI-Chip f&#252;r die Kommunikation mit dem PC ausger&#252;stet. Au&#223;erdem gibt es immer aktuelle Treiber f&#252;r alle wichtigen Betriebssysteme und der Support ist auch ok. Zudem gibt es eine Reihe von USB-UART Wandlern mit FTDI Chip als kleine Adapter oder als simple Kabel, die man einfach an sein System anst&#246;pseln kann.<br />
<img src="http://farm3.static.flickr.com/2582/3882367572_bfa919cc41.jpg" alt="Asuro DIY USB IR Transceiver" /></p>
<h2>Schaltung</h2>
<p>Der RS232-IR Transceiver arbeitet eigentlich mit den bei RS232 Schnittstellen &#252;blichen Pegeln von +-12V. Nach einem Blick in den Schaltplan  erkennt man aber schnell, dass die ankommenden Pegel zuerst auf normalen 5V TTL Pegel gebracht werden. Insbesondere der IR Empf&#228;nger Chip ist sehr empfindlich und vertr&#228;gt nur wenig mehr als 5V. Negative Spannungen sind ebenso tabu. Das n&#228;hrt die Vermutung, dass der  Transceiver auch mit normalen 5V funktioniert, wie sie der FTDI UART Wandler liefert. Im Gegensatz zu den USB-RS232 Wandlern, die mit +-12V Pegeln arbeiten.</p>
<p>An der COM Schnittstelle im PC werden diese RS232 Pegel ebenfalls wieder auf 5V Pegel gebracht. Die dabei verwendeten Pegelwandler invertieren zudem die Logik Pegel. Deshalb kann man den USB UART Adapter nicht direkt mit dem RS232-IR Tarnsceiver verbinden. Es werden noch Inverter f&#252;r die Signale ben&#246;tigt.<br />
Nach genauerem Schaltplan Studium werden 2 Inverter ben&#246;tigt. Einen f&#252;r das empfangene und einer f&#252;r das zu sendende Signal. 2 NPN Transistoren eignen sich sehr gut f&#252;r diese Aufgabe.</p>
<p><img src="http://farm4.static.flickr.com/3438/3878676941_051e7628d2.jpg" alt="Asuro DIY USB IR Transceiver" /><br />
<img src="http://farm4.static.flickr.com/3508/3878677229_b60268ef28.jpg" alt="Asuro DIY USB IR Transceiver" /></p>
<p>Entsprechend &#252;bersichtlich sieht der Schaltplan aus. Neben den Transistoren noch 4 Widerst&#228;nde Steckverbinder und ein kleines St&#252;ck Lochrasterplatine, das war es dann schon.</p>
<p><strong>St&#252;ckliste:</strong></p>
<ul>
<li>1 x SUB-D 9polig Stecker gewinkelt,</li>
<li>1 x Stiftleiste 6polig</li>
<li>1 x Lochraster ca. 3&#215;4cm</li>
<li>2 x NPN Transistoren BC547 o.&#228;.</li>
<li>4 x Widerst&#228;nde 1k o. 1k5</li>
</ul>
<p><img src='http://farm4.static.flickr.com/3483/3881571945_18c68482b4.jpg' alt='Asuro DIY USB IR Transceiver'/><br />
<img src='http://farm3.static.flickr.com/2480/3881572889_2b836fc7f0.jpg' alt='Asuro DIY USB IR Transceiver'/></p>
<h2>Video</h2>
<p>Ein kleines Video zeigt den USB IR Transceiver in Aktion.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/PFV3zh0K4ro&#038;hl=de&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PFV3zh0K4ro&#038;hl=de&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Weiterf&#252;hrende Themen</h2>
<p>F&#252;r die FTDI USB UART Chips gibt es auch Entwickler Libs um, den Chip vom PC aus f&#252;r eigene Projekte zu verwenden. So gibt es f&#252;r die g&#228;ngigen PC Sprachen (.NET C#, C++, Visual Basic) auf der <a href="http://www.ftdichip.com/Projects/CodeExamples.htm" class="liexternal">FTDI Homepage</a> entsprechende Libraries und Beispiel Code. F&#252;r die folgenden Beispiele werden Entwickler oder Breakout Boards mit FTDI Chips ben&#246;tigt. Boards, bei denen praktisch alle Anschl&#252;sse des FTDI Chips nach au&#223;en gef&#252;hrt sind. Bei dem oben genannten FTDI Basic Adapter ist das nicht der Fall, wohl aber beim <a href="http://www.watterott.com/Breakout-Board-for-FT232RL-USB-to-Serial" class="liexternal">Breakout Board</a> mit FTDI232RL Chip.</p>
<h3>ISP Dongle</h3>
<p>Die FTDI USB-UART Wandler sind schon tolle Chips, mit denen man nicht nur USB in seriell UART Signale wandeln kann. So ein Chip kann auch als Low Cost ISP Dongle verwendet werden. Dazu wird der sogenannte Bitbang Modus verwendet. Damit lassen sich &#252;ber USB z.B. alle g&#228;ngigen Atmel Mega und tiny Chips programmieren. Mehr unter: <a href="http://translate.google.com/translate?u=http%3A%2F%2Fwww.geocities.jp%2Farduino_diecimila%2Fbootloader%2Findex.html%23top&amp;hl=de&amp;ie=UTF-8&amp;sl=ja&amp;tl=en" class="liexternal">www.geocities.jp</a></p>
<h3>I2C Master</h3>
<p>Auch als I2C Master l&#228;sst sich so ein FTDI Chip missbrauchen. Man braucht dazu keinen Mikrocontroller. Alles wird einem PC Programm gesteuert. Zwar ist der Bitbang Modus nicht besonders schnell, aber zum Testen von einem I2C Baustein reicht es alle mal. Die neueren FTDI Chips bieten hier schon bessere Performance. Mehr unter: <a href="http://www.mikrocontroller.net/topic/102360#new" class="liexternal">microcontroller.net</a></p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.ftdichip.com" class="liexternal">FTDI</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157622084807891/" class="liexternal">Flickr Album</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/asuro-diy-usb-ir-transceiver/176/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Let Arduino Play contest</title>
		<link>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165</link>
		<comments>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165#comments</comments>
		<pubDate>Thu, 23 Jul 2009 13:32:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=165</guid>
		<description><![CDATA[BricoGeek.com hat einen Arduino Wettbewerb gestartet. Entwickle ein Spiel, das auf einem Arduino Board l&#228;uft. Der Wettbewerb l&#228;uft noch bis zum 24.August 2009, also sputet euch.
Wichtig ist es, eine komplette Dokumentation der Schaltpl&#228;ne und Software abzuliefern und eine Videopr&#228;sentation des Spiels zu erstellen.


Zu gewinnen gibt es:
1. Preis

GPS Micro
Arduino Mega
Mega Protoshield

2. Preis

Ardupilot mit ATmega328
GPS EM-406A SIRF [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bricogeek.com/contest/let-arduino-play/" class="liexternal">BricoGeek.com</a> hat einen Arduino Wettbewerb gestartet. Entwickle ein Spiel, das auf einem Arduino Board l&#228;uft. Der Wettbewerb l&#228;uft noch bis zum 24.August 2009, also sputet euch.<br />
Wichtig ist es, eine komplette Dokumentation der Schaltpl&#228;ne und Software abzuliefern und eine Videopr&#228;sentation des Spiels zu erstellen.</p>
<p><a href="http://www.bricogeek.com/contest/let-arduino-play/" class="liimagelink"><img class="image image-_original" src="http://www.bricogeek.com/contest/let-arduino-play/logo-contest.jpg" alt="" /></a></p>
<p><span id="more-165"></span></p>
<p>Zu gewinnen gibt es:</p>
<h3>1. Preis</h3>
<ul>
<li>GPS Micro</li>
<li>Arduino Mega</li>
<li>Mega Protoshield</li>
</ul>
<h3>2. Preis</h3>
<ul>
<li>Ardupilot mit ATmega328</li>
<li>GPS EM-406A SIRF III</li>
<li>Arduino Duemilenova</li>
</ul>
<h3>3. Preis</h3>
<ul>
<li>Solarzelle 7&#215;11 cm</li>
<li>LiPo Batterie 1100mAh</li>
<li>Lipo Lader MAX1555</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mr. Red Adair &#8211; Feuerwehr Roboter</title>
		<link>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125</link>
		<comments>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125#comments</comments>
		<pubDate>Wed, 08 Jul 2009 20:09:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[Wii]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=125</guid>
		<description><![CDATA[Mr. Red Adair benannt nach dem wohl ber&#252;hmtesten Feuerwehrmann der Welt, Paul &#8220;Red&#8221; Adair ist ein Feuerwehr Roboter. Nat&#252;rlich nicht f&#252;r echte Feuer sondern nur f&#252;r kleinere Br&#228;nde wie z.B. Kerzen oder Teelichter. Der Roboter nahm erfolgreich an einem Roboter Wettbewerb teil, allerdings keinem speziellen Feuerwehr Roboter Wettbewerb sondern am LMR DAGU Mr. Basic Wettbewerb [...]]]></description>
			<content:encoded><![CDATA[<p>Mr. Red Adair benannt nach dem wohl ber&#252;hmtesten Feuerwehrmann der Welt, Paul &#8220;Red&#8221; Adair ist ein Feuerwehr Roboter. Nat&#252;rlich nicht f&#252;r echte Feuer sondern nur f&#252;r kleinere Br&#228;nde wie z.B. Kerzen oder Teelichter. Der Roboter nahm erfolgreich an einem Roboter Wettbewerb teil, allerdings keinem speziellen Feuerwehr Roboter Wettbewerb sondern am LMR DAGU Mr. Basic Wettbewerb von <a href="http://www.letsmakerobots.com" class="liexternal">letsmakerobots.com</a>.</p>
<p><img src="http://farm4.static.flickr.com/3385/3625798875_de5cfa762b.jpg" alt="Mr-Red-Adair-early-study" /></p>
<p><span id="more-125"></span></p>
<h2>LMR DAGU Mr. Basic Wettbewerb:</h2>
<p>Das Chassis von Mr. Red Adair ist das Mr. Basic Chassis der chinesischen Firma DAGU / AREXX. DAGU / AREXX ist auch Hersteller der Asuro Baus&#228;tze  und hat f&#252;r letsmakerobots (LMR) eine Sonder Edition von 50 Mr. Basic Chassis f&#252;r den Wettbewerb zur Verf&#252;gung gestellt. F&#252;r einen Unkostenbeitrag von 22US$ konnte jedes LMR Mitglied einen der Baus&#228;tze erwerben und am <a href="http://letsmakerobots.com/taxonomy/term/3546" class="liexternal">Wettbewerb</a> teilnehmen. Regeln gab es keine besonderen. Man musste lediglich den kompletten Bausatz (mit Ausnahme der Aufbauten wie z.B. der Leerplatine und dem Batteriefach) verwenden. Pr&#228;miert wurden die ersten 3 Roboter Modelle mit den meisten User Stimmen. Der <a href="http://letsmakerobots.com/taxonomy/term/3546" class="liexternal">Wettbewerb</a> endete am 5. Juli 2009. Mit etwas Gl&#252;ck landete Mr. Red Adair unter den ersten Drei und erhielt ein Preisgeld von 100US$.</p>
<h2>Aufbau</h2>
<p>Mr. Red Adair besteht aus dem Mr. Basic Chassis mit seinem 4-Rad Antrieb. 2 DC Motoren mit angeschlossenem Getriebe und den Antriebsachsen bilden einem gew&#246;hnlichen differentiellem Roboter Antrieb. Nach anf&#228;nglichen Schwierigkeiten mit falsch gelieferten Achsen l&#228;uft das ganze nun doch noch rund. Die Schrauben m&#252;ssen allerdings regelm&#228;&#223;ig nachgezogen werden oder besser gleich mit Sekundenkleber fixiert werden.</p>
<p><img class="alignnone size-full wp-image-163" title="mr-basic" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/07/mr-basic.jpg" alt="mr-basic-google-sketchup" width="640" height="480" /></p>
<h3>Steuerung</h3>
<p>Als Gehirn kommt ein Atmel ATmega328 mit Arduino Bootloader zum Einsatz. Der Controller wurde einfach auf Lochraster aufgebaut, mit den &#252;blichen Steckverbindern f&#252;r Sensoren/Aktoren (3polig, Signal, VCC, GND) f&#252;r alle IOs, FTDI  USB-UART Kabel (6polig), Reset Taster und einem 16MHz Quartz best&#252;ckt. Damit ist er unter der Arduino Oberfl&#228;che als normales Arduino Duemilanove Board ohne &#196;nderungen  ansprechbar. Aufgrund des USB-UART Anschlusses und dem bereits eingebrannten Bootloader kann der obligatorische ISP Steckverbinder entfallen.</p>
<p><img src="http://farm3.static.flickr.com/2543/3713476787_e812b536cf.jpg" alt="arduino-clone-main-controller" /></p>
<h3>Sensoren</h3>
<p>Als Sensoren kommt zum neben einem Maxbotix EZ1 Ultraschall Entfernungsmesser nur noch eine Wii IR Camera als Flammendetektor zum Einsatz. Die Wii IR Camera wurde aus einer Original Wii Remote ausgel&#246;tet und zusammen mit einigen anderen Bauteilen auf Lochraster aufgebaut. Dank an U. J&#252;rss vom <a href="http://cczwei.de" class="liexternal">CC2</a> f&#252;r die Schaltung. Die Wii IR Camera verf&#252;gt &#252;ber ein I2C Interface und kann so recht einfach vom Arduino Controller ausgelesen werden. Nach Senden der Initialisierungs Sequenz kann man die Koordinaten (X, Y) und die Intensit&#228;t von bis zu 4 Infrarot Quellen auslesen. Die Koordinaten umfassen 1024&#215;1024 Punkte, der Erfassungsbereich betr&#228;gt etwa 1-2m f&#252;r eine Kerze in einem horizontalen Winkel von ca 40°. Die Intensit&#228;t der IR Quelle kann in 15 Stufen erfasst werden, daraus l&#228;sst sich in Grenzen auf die Entfernung zum Objekt schlie&#223;en. Ansonsten dient der EZ1 zum Erkennen der Entfernung zum Objekt.</p>
<p><img src="http://farm4.static.flickr.com/3614/3626730660_053a49a871.jpg" alt="wii-ir-camera-maxbotic-sensor" /></p>
<p>Der Wii IR Sensor mit externer Beschaltung auf Lochraster. Wichtig ist, den Sensor mit dem IR Filter zu betreiben, jene schwarze Kunststoffsscheibe, die sich vor dem Sensor im Wii Remote Geh&#228;use befindet.</p>
<p><img src="http://farm4.static.flickr.com/3377/3626622456_83e54e3a82.jpg" alt="wii-ir-camera" /></p>
<h3>Aktoren</h3>
<p>Da die <a href="http://www.mabuchi-motor.co.jp/en_US/cat_files/re_260ra.pdf" class="lipdf">Mabuchi RE-260</a> Motoren nur mit max. 4.5 V betrieben werden, aber gerne bis zu 2A ziehen, sind Motor Treiber mit besonderen Anforderungen gefragt. Zwar w&#228;re es nach Reglement m&#246;glich mehr Batterien (z.B. 6xAA) zu verwenden und die Motoren &#252;ber PWM zu regeln (ohne 100% Ansteuerung). Ich entschied mich f&#252;r den <a href="http://www.pololu.com/catalog/product/120" class="liexternal">Pololu LVDSMC</a> Low Voltage Serial Dual Motor Controller (LVSDMC) und komme daf&#252;r mit dem Original 3xAA Batteriepack aus. Allerdings war noch eine 9V Block Batterie f&#252;r die Elektronik (5V geregelt) und den Blower Motor (9V ungeregelt) notwendig. Der Blower Motor ist vorne am Chassis mit einem Alu Winkel befestigt und wird einfach &#252;ber einen N-FET ein- und ausgeschaltet. Eine Motorbr&#252;cke ist hier nicht notwendig, da er immer nur in dieselbe Richtung l&#228;uft. Zum Einsatz kommt hier ein Motor, den ich aus einem defekten Haar Trockner ausgebaut hatte. Ohne zu wissen, das dieser Motor auch mit Gleichstrom l&#228;uft hatte ich ihn mal testweise an eine Batterie geklemmt und er lief. So konnte dann auch gleich der Propeller ohne &#196;nderung mit &#252;bernommen werden. Mit t 9V lief der Motor flott genug um eine Kerze oder ein Teelicht auszublasen. Dabei zieht er zwar ca. 500mA, aber er l&#228;uft ja nur kurze Zeit.</p>
<p><img src="http://farm4.static.flickr.com/3660/3625809709_d91e1295c5.jpg" alt="blower-motor" /></p>
<p>Der Pololu Low Voltage Dual Serial Motor Controller (LVDSMC) ben&#246;tigt nur zwei Prozessor Pin und einige wenige externe Bauteile. Ein paar Abblock Kondensatoren (100µF und 100nF) und ganz wichtig ein Pullup Widerstand von 1..1.5kOhm an der Reset Leitung. &#220;ber den Reset Pin kann der Motor Controller zur&#252;ckgesetzt werden, der andere Pin ist f&#252;r die Kommunikation zust&#228;ndig. Ein simples serielles Protokoll, mit einer Soft-UART auf dem Arduino Prozessor simuliert, reicht aus. So bleibt die normale UART f&#252;r Debug Ausgaben frei.</p>
<p><img src="http://farm3.static.flickr.com/2427/3626729132_dea9738460.jpg" alt="pololu-lvdsmc-motor-controller" /></p>
<h2>Videos</h2>
<p>Das erste Video zeigt den Test der Einzelkomponenten.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZFuyRBvPL0c&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/ZFuyRBvPL0c&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Das zweite Video zeigt den finalen Test.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rDjLI9XPWlA&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/rDjLI9XPWlA&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h1>Weblinks:</h1>
<ul>
<li><a href="http://letsmakerobots.com/node/8180" class="liexternal">Mr. Red Adair Artikel auf LMR</a></li>
<li><a href="http://letsmakerobots.com/node/7752" class="liexternal">Wii IR Camera als Standalone Sensor</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arduino Blogparade</title>
		<link>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134</link>
		<comments>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134#comments</comments>
		<pubDate>Mon, 29 Jun 2009 20:06:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=134</guid>
		<description><![CDATA[Um Arduino mehr in Deutschland bekannt zu machen, wurde von freeduino.de, dem deutschen Arduino Blog, eine Blogparade zum Thema Arduino  gestartet. Wer selbst einen Blog betreibt, kann daran teilnehmen. Es gibt sogar etwas zu gewinnen, 5 Arduino Einsteiger Sets im Wert von 77€, bestehend aus: 

 Arduino Duemilanove Board. 
Extended Workshop Kit
Buch &#8211; Getting [...]]]></description>
			<content:encoded><![CDATA[<p>Um <a href="http://arduino.cc/" class="liexternal">Arduino</a> mehr in Deutschland bekannt zu machen, wurde von <a href="http://www.freeduino.de/" class="liexternal">freeduino.de</a>, dem deutschen Arduino Blog, eine Blogparade zum Thema Arduino  gestartet. Wer selbst einen Blog betreibt, kann daran teilnehmen. Es gibt sogar etwas zu gewinnen, 5 Arduino Einsteiger Sets im Wert von 77€, bestehend aus: </p>
<ul>
<li> Arduino Duemilanove Board. </li>
<li>Extended Workshop Kit</li>
<li>Buch &#8211; Getting started with Arduino </li>
</ul>
<p>Gestiftet wurden die Preise von der Firma <a href="http://www.watterott.com/" class="liexternal">Watterot electronic</a>.</p>
<p>Genaueres &#252;ber die Teilnahme am Gewinnspiel findet man auf <a href="http://www.freeduino.de/de/blog/arduino-blogparade-und-gewinnspiel" class="liexternal">freeduino.de</a><br />
<span id="more-134"></span><br />
Um am Gewinnspiel teilzunehmen geht es um die Frage:<br />
<strong>Was w&#252;rdest Du an Gegenst&#228;nden in Deinem Alltag verbessern, die Dir schon lange auf den Nerv gehen?</strong></p>
<p>Meine Ideen w&#228;ren:</p>
<p>1. Eine Low Cost Hausautomation mit dem Arduino. Klar, wenn Geld keine Rolle spielt oder man zuf&#228;llig sowieso gerade ein Haus neubaut oder von Grund auf renoviert k&#246;nnte man sich auch ein EIB, LCN oder LON Hausbus System installieren lassen. Das ganze sollte ohne Neuverkabelung und r&#252;ckbauf&#228;hig auch f&#252;r Mietwohnungen funktionieren und beliebig skalierbar sein. Komfort Lichtsteuerung wie z.B. coming/leaving home. Alle verzichtbaren Stromverbraucher werden beim Verlassen der Wohnung oder dem Zubettgehen ausgeschaltet. Programmierbare Licht Ambiente Schaltungen auf Knopfdruck. Mitdenkende Flurbeleuchtung. Panikschaltung usw.</p>
<p>2. Heimkino Steuerung. Als Heimkinobesitzer &#228;rgern mich die vielen Einzelaufgaben die man erledigen mu&#223; bevor man mit dem Beamer gem&#252;tlich einen Film schauen kann. Leinwand runterkurbeln, Beamer einschalten, Zimmer verdunkeln, Licht ausschalten etc. Das k&#246;nnte man sicher auch sehr gut automatisieren. </p>
<p>3. Mobiler Partykeller. Der Partykeller zuhause ist l&#228;ngst zur Rumpelkammer verkommen. Jetzt kommt der &#220;berall Partykeller zum Mitnehmen. Mit Lichtorgel, Moving Heads, Laser Show und weiteren Lichteffekten, nat&#252;rlich mit stromsparender LED Technik. Dazu eine Ipod Steuerung mit drahtloser Musik&#252;bertragung zur Stereoanlage. Die komplette Anlage sollte in einen Aktenkoffer passen. Zur Not sollte auch Batteriebetrieb mit kleinen Aktivboxen oder &#252;ber Drahtlos Kopfh&#246;rer (1 pro Partygast) m&#246;glich sein, f&#252;r Freiluft Partys.</p>
<p>Und was ist deine Idee? Welcher Alltagsgegenstand nervt dich so sehr, dass man ihn mit Hilfe eines Arduino Boards verbessern k&#246;nnte?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3D Roboter Modelle in Microsoft RDS importieren</title>
		<link>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82</link>
		<comments>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82#comments</comments>
		<pubDate>Fri, 20 Feb 2009 22:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MRDS]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Google SketchUp]]></category>
		<category><![CDATA[Microsoft Robotics Studio]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[VSE]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=82</guid>
		<description><![CDATA[Die Erstellung von 3D Roboter Modellen  wurde bereits im Google SketchUp Tutorial beschrieben. Heute geht es nun darum, wie man diese Modelle von SketchUp aus exportiert und in das Microsoft Robotics Developer Studio (MRDS) importiert, damit sie korrekt im MRDS Simulator (VSE) dargestellt werden.


Was wird ben&#246;tigt?
Microsoft Visual C# 2008 Express Edition
Microsoft Robotics Developer Studio 2008 [...]]]></description>
			<content:encoded><![CDATA[<p>Die Erstellung von 3D Roboter Modellen  wurde bereits im <a href="http://www.robotfreak.de/blog/robotik/google-sketchup-robotik-tutorial/52" class="liinternal">Google SketchUp Tutorial</a> beschrieben. Heute geht es nun darum, wie man diese Modelle von SketchUp aus exportiert und in das Microsoft Robotics Developer Studio (MRDS) importiert, damit sie korrekt im MRDS Simulator (VSE) dargestellt werden.</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812984/" class="flickr-image alignnone" title="RobotNo1 im VSE (visual mode)"><img src="http://farm4.static.flickr.com/3647/3288812984_08c8b322a6.jpg" alt="RobotNo1 im VSE (visual mode)" /></a></p>
<p><span id="more-82"></span></p>
<h2>Was wird ben&#246;tigt?</h2>
<li><a href="http://www.microsoft.com/germany/express/product/visualcsharpexpress.aspx" class="liexternal">Microsoft Visual C# 2008 Express Edition</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=134518" class="liexternal">Microsoft Robotics Developer Studio 2008 Express Edition</a></li>
<li><a href="http://sketchup.google.com/intl/de/" title="Google SketchUp" class="liexternal">Google SketchUp</a></li>
<li><a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" title="Wavefront obj Exporter script" class="liexternal">SketchUp Object Exporter Skript</a></li>
<h2>Export aus Google SketchUp</h2>
<h3>Erste Fehlschl&#228;ge</h3>
<p>Es gabe einige Fehlschl&#228;ge bereits beim Export von Google SketchUp. Die kostenlose  Google SU Version bietet als Export Format nur das .kmz Format f&#252;r Google Earth Version 3 bzw. 4 an. F&#252;r die meisten Versuche wurde zudem noch <a href="http://www.blender.org" class="liexternal">Blender</a> ben&#246;tigt, da von SU aus &#252;ber ein drittes Format exportiert wurde, das dann zun&#228;chst in Blender importiert und anschlie&#223;end im .obj Format exportiert wurde.</p>
<p>1.Versuch mit dem <a href="http://sketchuptips.blogspot.com/2007/01/wavefront-obj-exporter.html" class="liexternal">obj_export SketchUp Plugin</a>. Das Modell ist viel zu gro&#223; und mu&#223; erst m&#252;hsam in Blender skaliert werden. Au&#223;erdem fehlen alle Farben und Texturen, da kein .mtl File erzeugt wird. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>2. Versuch mit dem <a href="http://www.katsbits.com/htm/tutorials/sketchup_converting_import_kmz_blender.htm" class="liexternal">Collada V1.4 Import von Blender</a>. Das Google Earth V4 Format ist nichts anderes als ein gezipptes Collada File. Also einfach .kmz File in .zip File umbenennen und das Archiv extrahieren. Dann von Blender aus Import (als Collada V1.4) das .dae File ausw&#228;hlen. Auch hier stimmen die Dimensionen nicht und das Modell mu&#223; etliche Male herunterskaliert werden.</p>
<p>3. Versuch. F&#252;r das Google Earth 3 Format gibt es das <a href="http://jmsoler.free.fr/didacticiel/blender/tutor/py_import_kml-kmz_en.htm" class="liexternal">kmz/kml Python Blender Plugin</a>. Der Import funktioniert zwar inklusive Texturen und korrekten Dimensionen des Modells. Aber beim Export von Blender, gehen dann bei komplexen Modellen viele Fl&#228;chen verloren.</p>
<h3>Der Durchbruch</h3>
<p>Der Durchbruch gelang erst mit dem <a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" class="liexternal">Object Export Skript</a> von Marten van der Honing . Damit klappt es endlich. Sowohl die Dimensionen des Modells und auch die Materialien werden korrekt exportiert. Vor allem aber wird kein Blender Programm mehr als Zwischenstufe ben&#246;tigt. Das spart Zeit und Nerven. Einzig die korrekte Ausrichtung der Modelle vor dem Export mu&#223; man beachten, dann klappt der Import ins MRDS ohne Probleme. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Chassis und R&#228;der getrennt exportieren</h3>
<p>Da sich in der Simulationsumgebung von MRDS die R&#228;der des Modells auch drehen sollen, m&#252;ssen die R&#228;der getrennt vom Chassis exportiert werden. Dabei gen&#252;gt es, ein einzelnes  Rad zu exportieren. Das MRDS f&#252;gt dann 2 R&#228;der bei einem 2-Rad Roboter ein. Das Chassis wird dann ohne R&#228;der exportiert. Vor dem Export m&#252;ssen die Modelle in SU korrekt  auf den 3 Achsen ausgerichtet werden. Das Chassis mu&#223; dazu folgenderma&#223;en ausgerichtet werden:</p>
<ul>
<li> durch den Mittelpunkt des Chassis geht die blaue Achse.</li>
<li>die  Front des Modells zeigt nach vorne</li>
<li>Das St&#252;tzrad ber&#252;hrt die gr&#252;ne Achse.</li>
</ul>
<p>So sollte das dann aussehen:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287996079/" class="flickr-image alignnone" title="RobotNo1 Chassis in Google SketchUp"><img src="http://farm4.static.flickr.com/3358/3287996079_b80aac2112.jpg" alt="RobotNo1 Chassis in Google SketchUp" /></a></p>
<p>F&#252;r die Antriebsr&#228;der gelten folgende Vorgaben:</p>
<ul>
<li>Der 0-Punkt liegt auf der Innenseite des Rades</li>
<li> Die rote Achse geht durch die Mitte des Rades</li>
<li>Die gr&#252;ne und blaue Achse ber&#252;hren die Innenseite des Rades.</li>
</ul>
<p>Ein Bild sagt mehr als 1000 Worte:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812780/" class="flickr-image alignnone" title="RobotNo1 Rad in Google SketchUp"><img src="http://farm4.static.flickr.com/3516/3288812780_8b793bc6fa.jpg" alt="RobotNo1 Rad in Google SketchUp" /></a></p>
<p><strong>Hinweis:</strong> Es klappt nicht, wenn man die Achsen selbst an das Modell anpa&#223;t (mit dem <img class="alignnone size-full wp-image-102" title="achse1" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/achse1.jpg" alt="achse1" width="25" height="30" /> Symbol). Man mu&#223; schon das Modell selbst verschieben.</p>
<h3>Export Einstellungen</h3>
<p>Nachdem man das  <a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" class="liexternal">Object Export Skript</a>in das Google SU plugins Verzeichnis kopiert hat, findet man nach einem SU Neustart im Men&#252; unter Plugins den Eintrag Obj Exporter&#8230; Klickt man auf diesen Men&#252;punkt erscheint der folgende Dialog:</p>
<p><img class="alignnone size-medium wp-image-103" title="objexporterdialog" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/objexporterdialog-300x300.jpg" alt="objexporterdialog" width="300" height="300" /></p>
<p>Dort klickt man lediglich noch die beiden Optionen &#8216;Export front faces&#8217; und Export back faces&#8217; an und anschlie&#223;end den Export .obj File Button.  Bei komplexen Modellen dauert es schon ein Min&#252;tchen, bis das .obj File und .mtl File erzeugt werden.</p>
<h2>Import ins Microsoft Robotics Studio</h2>
<p>Der Import des 3D Modells geschieht &#252;ber das Kommandozeilen Tool obj2bos.exe. MRDS kann zwar auch das .obj Format direkt importieren, aus Performance Gr&#252;nden wird aber das hauseigene .bos Format empfohlen. Die zu importierenden Dateien, das .obj File und das .mtl File werden zun&#228;chst in den MRDS Unterordner store/media kopiert. Den obj2bos Konverter starte man vom DSS-Comand Prompt aus mit der folgenden Befehlszeile:</p>
<pre>obj2bos.exe /infile:.\store\media\RobotNo1Chassis.obj</pre>
<p>Das selbe wiederholt man f&#252;r das Rad:</p>
<pre>obj2bos.exe /infile:.\store\media\RobotNo1Wheel.obj</pre>
<h3>Anpassungen im Projekt</h3>
<p>Als Vorlage f&#252;r das Simulations Projekt wird das <a href="http://msdn.microsoft.com/de-de/magazine/cc546547.aspx" class="liexternal">MRDS Simulator Tutorial von Sara Morgan</a> aus dem MSDN Magazin verwendet. Urspr&#252;nglich wurde das Tutorial  f&#252;r den Boe-Bot von Parallax geschrieben. Ich habe es nur f&#252;r meinen RobotNo1 Roboter entsprechend dem Tutorial angepa&#223;t und neu aufgebaut. Auf das Tutorial werde ich hier nur kurz eingehen. 2 Dinge sind mir beim Nachbau aufgefallen:</p>
<p>1. Sobald man ein neues Projekt (Vorlage &#8216;DSS Service 2.0&#8242;) erstellt hat, sollte man als erstes unter Einstellungen den Referenz Pfad zum MRDS bin Ordner hinzuf&#252;gen und alle eigenen Projekte in einem neu erstellten Verzeichnis im MRDS Root Ordner ablegen. Bei Visual Studio Express kann man dan Pfad erst angeben, wenn man das Projekt speichert.</p>
<p><img class="alignnone size-full wp-image-105" title="projectpath" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/projectpath.jpg" alt="projectpath" width="563" height="386" /><span id="__caret">_</span></p>
<p>2. Man mu&#223; noch einige Referenzen (rechter Mausklick auf &#8216;References&#8217; im Solution Explorer) von Hand dem Projekt hinzuf&#252;gen, damit es sich korrekt &#252;bersetzen l&#228;&#223;t. Das folgende Bild zeigt dies:</p>
<p><img class="alignnone size-full wp-image-104" title="references" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/references.jpg" alt="references" width="371" height="407" /></p>
<p>Am Programmcode selbst wurden nur einige kleinere &#196;nderungen gemacht, damit das 3D-Modell des RobotNo1 den Boe-Bot ersetzt. Da der Simulator eine Physik Engine (Ageia PhysX) besitzt, m&#252;ssen im Programm zudem die physikalischen Gr&#246;&#223;en (Gewicht, Abmessungen, Postition der Antriebsr&#228;der und des St&#252;tzrades) an das eigene Modell angepasst werden.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">MASS <span style="color: #008000;">=</span> 0.454f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//in kilograms  (around 1 pound)</span>
<span style="color: #008080; font-style: italic;">// the default settings approximate the BoeBot chassis</span>
CHASSIS_DIMENSIONS <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Vector3<span style="color: #000000;">&#40;</span>0.10f, <span style="color: #008080; font-style: italic;">//meters wide</span>
0.05f,  <span style="color: #008080; font-style: italic;">//meters high</span>
0.16f<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//meters long</span>
FRONT_WHEEL_MASS <span style="color: #008000;">=</span> 0.01f<span style="color: #008000;">;</span>
CHASSIS_CLEARANCE <span style="color: #008000;">=</span> 0.020f<span style="color: #008000;">;</span>
FRONT_WHEEL_RADIUS <span style="color: #008000;">=</span> 0.034f<span style="color: #008000;">;</span>
CASTER_WHEEL_RADIUS <span style="color: #008000;">=</span> 0.010f<span style="color: #008000;">;</span>
FRONT_WHEEL_WIDTH <span style="color: #008000;">=</span> 0.007f<span style="color: #008000;">;</span>
CASTER_WHEEL_WIDTH <span style="color: #008000;">=</span> 0.008f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//not currently used, but dim is accurate</span>
FRONT_AXLE_DEPTH_OFFSET <span style="color: #008000;">=</span> <span style="color: #008000;">-</span>0.02f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// distance of the axle from the center of robot</span>
&nbsp;
<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">State</span>.<span style="color: #0000FF;">Name</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1&quot;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">State</span>.<span style="color: #0000FF;">MassDensity</span>.<span style="color: #0000FF;">Mass</span> <span style="color: #008000;">=</span> MASS<span style="color: #008000;">;</span>
<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">State</span>.<span style="color: #0000FF;">Pose</span>.<span style="color: #0000FF;">Position</span> <span style="color: #008000;">=</span> initialPos<span style="color: #008000;">;</span>
<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">State</span>.<span style="color: #0000FF;">Assets</span>.<span style="color: #0000FF;">Mesh</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1Chassis.bos&quot;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">WheelMesh</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1Wheel.bos&quot;</span><span style="color: #008000;">;</span></pre></div></div>

<h3>Visual Studio und VSE</h3>
<p>Danach kann man das Programm im VisualStudio neu &#252;bersetzt und falls keine Fehler entdeckt wurden, gestartet werden. Nach einer kleinen Weile erscheinen dann zun&#228;chst die DSS Host Console, dann das Simple Dashboard und schlie&#223;lich die Simulation (VSE Visual Simulation Environment) selbst. Dort sollte dann unser Modell und ein W&#252;rfel erscheinen. Mit der Maus und den Cursor Tasten der Tastatur kann man die Position der Kamera ver&#228;ndern. Die Darstellung des Modells kann man im Men&#252;punkt &#8216;Render&#8217; umschalten zwischen:</p>
<ul>
<li>&#8216;Visual&#8217; di f&#252;r uns Menschen normale Sichtweise mit Textturen Licht und Schatten</li>
<li>&#8216;WireFrame&#8217;, die Darstellung der Modelle als Drahtgitter</li>
<li>&#8216;Physics&#8217;, so, wie es der Computer sieht. Simple K&#246;rper mit Masse und Schwerpunkt</li>
<li>&#8216;Combined. Die Kombination zwischen Visual und Physics. Damit kann man kontrollieren, wie genau das gezeichnete Modell mit den Einstellungen im Programm &#252;bereinstimmt.</li>
</ul>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812894/" class="flickr-image alignnone" title="RobotNo1 im VSE"><img src="http://farm4.static.flickr.com/3344/3288812894_661481a6ff.jpg" alt="RobotNo1 im VSE" /></a></p>
<h3>Dashboard</h3>
<p>Steuern l&#228;&#223;t sich unser Modell &#252;ber das Dashboard. Dazu mu&#223; man:</p>
<ul>
<li>Verbindung zum VSE aufnehmen durch Eingabe von &#8216;50001&#8242; im Port Editierfeld.</li>
<li>Doppelklick auf den Service &#8216;[SimulatedRobotNo1]&#8230;&#8217;</li>
<li>Klick auf &#8216;Drive&#8217;</li>
<li>jetzt sollte sich der Roboter durch klicken und Ziehen an der Kugel in alle Richtungen bewegen lassen</li>
</ul>
<p>Alle Dashboard Einstellungen nochmal im Bild:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287996883/" class="flickr-image alignnone" title="MRDS Dashboard"><img src="http://farm4.static.flickr.com/3383/3287996883_7a5b7cdd9a.jpg" alt="MRDS Dashboard" /></a></p>
<p>auch ein virtueller Asuro tummelt sich bereits im MRDS Simulator.</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287995647/" class="flickr-image alignnone" title="Asuro im VSE"><img src="http://farm4.static.flickr.com/3265/3287995647_56bf3b7c1b.jpg" alt="Asuro im VSE" /></a></p>
<p>das vollst&#228;ndige Projekt gibt es <a href="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/robotfreak.zip" class="lizip">hier</a> zum download. Das .zip Archiv wird einfach in den MRDS Ordner entpackt. Im Unterordner RobotFreak gint es die beiden Projekte SimulatedAsuro und SimulatedRobotNo1. Bevor man selbst versucht, die Projekte zu &#252;bersetzen, mu&#223; das &#8216;buildall.cmd&#8217; Script vom DSS Command Prompt gestartet werden. Damit werden die absoluten Pfadangaben in den Projekten an die lokalen Einstellungen angepasst.</p>
<h2>Wie geht es weiter?</h2>
<p>Zun&#228;chst werde ich mich n&#228;her mit der visuellen Programmiersprache VPL befassen. Das verspricht doch schnellere Erfolge, anstelle den virtuellen Roboter in C# zu coden.  Mit VPL lassen sich recht einfach Roboter Verhaltensprogramme realisieren.</p>
<p>Derzeit sind die Modelle noch blind wie die Maulw&#252;rfe, d.h. sie verf&#252;gen noch nicht &#252;ber irgendwelche Sensoren. Die m&#252;ssen ebenso simuliert werden, damit der Roboter nicht st&#228;ndig gegen irgendwelche virtuellen Hindernisse st&#246;sst. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Das Endziel wird ein selbst gebauter Roboter sein, der sich &#252;ber MRDS steuern l&#228;&#223;t. Dazu mu&#223; auf dem Roboter selbst kein Windows laufen. Allerdings funktioniert so ein Roboter nur dann, wenn ein Windows PC mitl&#228;uft. Denn nur auf dem Windows PC l&#228;uft das eigentliche Steuerprogramm.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://msdn.microsoft.com/de-de/magazine/cc546547.aspx" class="liexternal">MRDS Simulator Tutorial von Sara Morgan</a></li>
<li><a href="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/robotfreak.zip" class="lizip">C# Projekte und SketchUp Files f&#252;r dieses Tutorials</a></li>
<li><a href="http://www.promrds.com" class="liexternal">ProMRDS </a>- das Standard Buch zum MRDS. Viele Tutorials und Programmierbeispiele online verf&#252;gbar</li>
<li><a href="http://social.msdn.microsoft.com/Forums/en-US/category/robotics/" class="liexternal">Microsoft Robotik Forum</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google SketchUp Robotik Tutorial</title>
		<link>http://www.robotfreak.de/blog/robotik/google-sketchup-robotik-tutorial/52</link>
		<comments>http://www.robotfreak.de/blog/robotik/google-sketchup-robotik-tutorial/52#comments</comments>
		<pubDate>Tue, 27 Jan 2009 22:22:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Google SketchUp]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=52</guid>
		<description><![CDATA[Google SketchUp ist ein 3D Zeichenprogramm, das eigentlich f&#252;r Architektur Zwecke bestimmt ist  (z.B. f&#252;r die 3D-Geb&#228;ude von Google Earth). Man kann damit aber auch recht einfach Roboter Modelle zeichnen. Die Bedienung ist kinderleicht im Gegensatz zu manch  anderen Programmen wie. z.B. Blender. Die Standard Version von SketchUp kann kostenlos verwendet werden. Die Vorteile gegen&#252;ber [...]]]></description>
			<content:encoded><![CDATA[<p>Google SketchUp ist ein 3D Zeichenprogramm, das eigentlich f&#252;r Architektur Zwecke bestimmt ist  (z.B. f&#252;r die 3D-Geb&#228;ude von Google Earth). Man kann damit aber auch recht einfach Roboter Modelle zeichnen. Die Bedienung ist kinderleicht im Gegensatz zu manch  anderen Programmen wie. z.B. <a href="http://www.blender.org" class="liexternal">Blender</a>. Die Standard Version von SketchUp kann kostenlos verwendet werden. Die Vorteile gegen&#252;ber der kostenpflichtigen SketchUpPro Version k&#246;nnen dabei vernachl&#228;ssigt werden.</p>
<p><img class="alignnone size-full wp-image-69" title="differentialrobot2" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/differentialrobot2.jpg" alt="differentialrobot2" width="512" height="296" /></p>
<p><span id="more-52"></span></p>
<h2>Einf&#252;hrung</h2>
<p>Dieses Tutorial bezieht sich auf die deutsche Google SketchUp Version 6 f&#252;r Windows.  SketchUp oder auch kurz SU genannt gibt es zum Download unter <a href="http://sketchup.google.com/intl/de/" title="sketchup.google.com" class="liexternal">http://sketchup.google.com/intl/de/</a>. Neben der Windows Version gibt es auch eine Version f&#252;r Mac OS-X (10.4+). F&#252;r die ersten Schritte mit SU sind die <a href="http://sketchup.google.com/intl/de/training/videos.html" class="liexternal">Einf&#252;hrungs Videos</a> sehr zu empfehlen.  Dort sieht man, wie einfach es ist mit SU zu arbeiten und selbst kompliziert aussehende Formen im Handumdrehen zu erzeugen. Naja, ganz so einfach ist es zu Anfang sicher nicht aber &#220;bung macht den Meister. Als Grundeinstellung empfiehlt es sich, die Modelleinheiten gleich nach der Installation auf Dezimal in Millimeter umzustellen. Des weiteren ist zu empfehlen, unter dem Men&#252;punkt <code>Ansicht | Symbolleisten</code>, den gro&#223;en Funktionssatz einzuschalten.</p>
<h2>Komponenten</h2>
<p>Google SketchUp bietet die M&#246;glichkeit zum Erstellen von Komponenten. Komponenten sind Gruppierungen von Formen, die man als einzelne Datei speichern kann. Man kann sich so nach und nach eine Bibliothek von Bauteilen anlegen kann, die man dann in verschiedenen Projekten immer wieder verwenden kann. So f&#228;ngt man am besten auch beim Entwurf eines neuen Roboter Modells an, man beginnt Komponenten zu entwerfen. F&#252;r jedes Einzelteil eines Roboters eine Komponente, so z.B. f&#252;r die R&#228;der, Motoren, Chassis usw.</p>
<p><img class="alignnone size-thumbnail wp-image-70" title="motor-gm9" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/motor-gm9-150x150.jpg" alt="motor-gm9" width="150" height="150" /> <img class="alignnone size-thumbnail wp-image-71" title="encoderwheel" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/encoderwheel-150x150.jpg" alt="encoderwheel" width="150" height="150" /></p>
<h2>Ma&#223;stabstreu zeichnen</h2>
<p>Mit Google SketchUp kann man auch ma&#223;stabsgetreu zeichnen. Dazu sollte man am besten bereits w&#228;hrend der Installation von SketchUp den Default Ma&#223;stab von Architektur in Zoll auf Dezimal in Millimeter &#228;ndern. Ansonsten kann man dies auch jederzeit beim Entwurf im Hauptmen&#252; unter <code>Fenster | Modellinformationen | Einheiten</code> &#228;ndern. Beim Zeichnen einer Form (Rechtkreis, Kreis, Vieleck oder Linie) gibt man einfach den gew&#252;nschten  Wert und die Einheit mm an und dr&#252;ckt die Enter Taste. Schon springt die Form auf die gew&#252;nschte Gr&#246;&#223;e. Das Funktioniert auch bei vielen anderen Werkzeugen. Beim Zeichnen der ersten Form wird man sich vielleicht wundern, dass die Form so klein dargestellt wird. Aber das ist kein Problem. Einfach auf da Gesamtgr&#246;&#223;e aufzoomen <img class="alignnone size-full wp-image-67" title="zoom-gesamt1" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/zoom-gesamt1.jpg" alt="zoom-gesamt1" width="31" height="29" /> Icon geklickt, schon sieht man die Form in voller Gr&#246;&#223;e. Von Vorteil ist auch eine Maus mit Scrollrad, damit kann man jederzeit auf- bzw. abzoomen.</p>
<p>Zum ma&#223;genauen Zeichnen von Rechtecken klickt man auf das Rechteck Symbol <img class="alignnone size-full wp-image-59" title="rechteck" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/rechteck.jpg" alt="rechteck" width="28" height="31" /> gibt man die L&#228;nge und Breite des Rechtecks ein mit einem Semikolon ein. z.B. <code>50mm;80mm</code> gefolgt von der ENTER-Taste.<br />
F&#252;r Kreise klickt man auf das Kreis Symbol <img class="alignnone size-full wp-image-60" title="kreis" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/kreis.jpg" alt="kreis" width="27" height="30" /> gibt man den Radius ein. z.B. <code>1,5mm</code> gefolgt von der ENTER-Taste.<br />
F&#252;r Vielecke gibt man dem Klick auf das Vieleck Symbol <img class="alignnone size-full wp-image-58" title="vieleck" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/vieleck.jpg" alt="vieleck" width="27" height="29" /> die Anzahl der Ecken ein und dr&#252;ckt die ENTER Taste, danach positioniert man das Vieleck und kann dann den Radius eingeben.</p>
<p>Die Vorteile eines ma&#223;stabsgetreuen Modell liegen auf der Hand.</p>
<ul>
<li>Alle Komponenten passen ohne umst&#228;ndliche Skalierung sofort zusammen.</li>
<li>Man kann genaue Ausdrucke z.B. des Chassis machen und diese als Vorlage zum Bohren und Zus&#228;gen des Chassis verwenden.</li>
<li>Austausch von Komponenten mit anderen SketchUp Usern wird erleichtert</li>
<li>Die &#220;bernahme in andere 3D Programme funktioniert einfacher</li>
</ul>
<h2>Ma&#223;band</h2>
<p>Das Ma&#223;band  <img class="alignnone size-full wp-image-54" title="massband" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/massband.jpg" alt="massband" width="27" height="32" /> ist ein sehr hilfreiches Werkzeug. Zum einen kann man damit beliebige Abst&#228;nde innerhalb des Modells messen und bekommt den  genauen Wert in der Statusbar angezeigt. Zum anderen lassen sich damit auch Hilfslinien zeichnen, um z.B. die genaue Position einer Bohrung in einer Form festzulegen. Werden die Hilfslinien nicht mehr ben&#246;tigt, k&#246;nnen diese mit einem Klick auf <code>Bearbeiten | F&#252;hrungslinien l&#246;schen</code> gel&#246;scht werden.</p>
<h2>Drucken</h2>
<p>Was n&#252;tzt einem eine ma&#223;stabsgetreue Zeichnung, wenn man diese nicht auch ma&#223;stabsgetreu ausdrucken kann. Das klappt auch unter SU, allerdings muss man schon wissen wie. Zum Druck z.B. einer Bohrschablone f&#252;r das Chassis muss man dazu zun&#228;chst vor&#252;bergehend unter dem Men&#252;punkt Kamera  von Perspektive auf Parallele Projektion umschalten. Man will ja keine 3D Ansicht ausdrucken sondern eine 2D Draufsicht. Dann sollte man auf Gesamtgr&#246;&#223;e aufzoomen <img class="alignnone size-full wp-image-61" title="zoom-gesamt" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/zoom-gesamt.jpg" alt="zoom-gesamt" width="31" height="29" /> (der Ausdruck richtet sich n&#228;mlich nach der Ansicht). Dann &#246;ffnet man den Druck Dialog, entfernt den Haken vor <code>Druckformat | An Seite anpassen</code> und vor <code>Modell Erweiterungen verwenden</code> und stellt die Skalierung <code>in SketchUp</code> und <code>in der Ausgabe</code> jeweils auf 10 mm.<br />
<img class="alignnone size-full wp-image-55" title="druckeinstellungen1" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/01/druckeinstellungen1.jpg" alt="druckeinstellungen1" width="458" height="266" /></p>
<h2>Exportieren</h2>
<p>Die kostenlose Version von Google SketchUp erlaubt nur das Speichern im SketchUp internen Format .skp . Als Export in andere 3D Formate wird das Google Earth Format  .kmz angeboten. Das .kmz ist im Prinzip nichts anderes als gezipptes File im Collada Format. Wenn man das .kmz File in ein .zip File umbenennt kann man das Archiv &#246;ffnen und sieht die Einzel Files, aus denen es besteht.</p>
<p>&#220;ber die Import Funktion von Blender kann man Collada Files lesen (Collada V1.4) und z.B. in das .obj Format von Wavefront exportieren. Damit lie&#223;en sich die Roboter Modelle auch mit dem Microsoft Robotics Developer Studio MRDS verwenden. MRDS kann das .obf Format in das eigene .bos Format konvertieren. Damit k&#246;nnte man dann seinen virtuellen Roboter im MRDS Simulator testen. Aber das ist ein Thema f&#252;r ein weiteres Tutorial.</p>
<h2>3D-Warehouse</h2>
<p>Mit dem <a href="http://sketchup.google.com/3dwarehouse/" class="liexternal">3D-Warehouse</a> f&#252;r Google SketchUp steht eine riesige Online Bibliothek zur Verf&#252;gung. Viele User benutzen das 3D-Warehouse, um dort ihre Modelle hochzuladen und sie damit anderen Usern zur Verf&#252;gung zu stellen. Mit der gewohnten Google Suche findet man schnell die ein oder andere Komponente, die man gerade braucht. Auch ich habe dort meine <a href="http://sketchup.google.com/3dwarehouse/cldetails?mid=ba4e42ef4db63088c048bd5374389c59" class="liexternal">Roboter Kollektion</a> abgelegt.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://sketchup.google.com/intl/de/" title="sketchup.google.com" class="liexternal">http://sketchup.google.com/intl/de/</a></li>
<li><a href="http://sketchup.google.com/3dwarehouse" title="SketchUp 3D Warehaouse" class="liexternal">http://sketchup.google.com/3dwarehouse</a></li>
<li><a href="http://sketchup.google.com/3dwarehouse/cldetails?mid=ba4e42ef4db63088c048bd5374389c59" class="liexternal">Meine Robotik Modelle und Komponenten</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/google-sketchup-robotik-tutorial/52/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wii-Nunchuk als Universalsteuerung</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50#comments</comments>
		<pubDate>Sat, 12 Jul 2008 11:57:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[ATM-18]]></category>
		<category><![CDATA[Wii]]></category>
		<category><![CDATA[Wii Nunchuk]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=50</guid>
		<description><![CDATA[Disese Projekt wurde mit dem ATM-18 Controller Modul realisiert. Dieses Controller Modul besitzt einen ATmega88 als Mikrocontroller und ist eine Zusammenarbeit zwischen Elektor und dem CC2 (ComputerClub 2).
Der Wii-Nunchuk wird &#252;ber die I2C Schnittstelle angesprochen. Findige Bastler wie Chad Phillips haben das Protokoll und den Verschl&#252;sselungs Algorythmus herausgefunden.


Einige m&#246;gliche  Anwendungsbeispiele hierzu:

Datalogger. Beschleunigungswerte &#252;ber einen [...]]]></description>
			<content:encoded><![CDATA[<p>Disese Projekt wurde mit dem ATM-18 Controller Modul realisiert. Dieses Controller Modul besitzt einen ATmega88 als Mikrocontroller und ist eine Zusammenarbeit zwischen <a href="http://www.elektor.de" class="liexternal">Elektor</a> und dem <a href="http://www.cczwei.de/" class="liexternal">CC2 (ComputerClub 2)</a>.<br />
Der Wii-<a href="http://www.twenga.de/dir-Videospiele,Nintendo-Wii,Nunchuk" class="liexternal">Nunchuk</a> wird &#252;ber die I2C Schnittstelle angesprochen. Findige Bastler wie <a href="http://www.windmeadow.com/node/42" class="liexternal">Chad Phillips</a> haben das Protokoll und den Verschl&#252;sselungs Algorythmus herausgefunden.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070097/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3129/2659070097_117a647f56.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p><span id="more-50"></span></p>
<p>Einige m&#246;gliche  Anwendungsbeispiele hierzu:</p>
<ul>
<li>Datalogger. Beschleunigungswerte &#252;ber einen Zeitraum erfassen und in einem I2C EEPROM ablegen, z.B. damitr eine Autofahrt aufzeichnen.</li>
<li>Pan-Tilt Kamera Steuerung. Eine Kamera auf Servos montiert &#252;ber den Nunchuk steuern.</li>
<li>RC Modell Fernsteuerung. Zusammen mit einem RC-Sender k&#246;nnte man RC-Autos, Roboter und Flugmodelle steuern</li>
</ul>
<p>usw.<br />
<!--more--></p>
<h2>Was wird ben&#246;tigt:</h2>
<ul>
<li>WII Nunchuk 19€</li>
<li>Ein Nunchuk Adapter 5$ oder DIY selber machen, oder einfach den Stecker abschneiden</li>
<li>ATM-18-Modul oder Nachbau, es geht auch mit einem Arduino Board</li>
<li>LCD Modul zur Anzeige, alternativ UART Verbindung</li>
</ul>
<p>Optional, (aber sehr zu empfehlen):</p>
<ul>
<li>3,3V Spannungsregler</li>
<li>bidirektionaler Levelshifter 3,3V/5V f&#252;r I2C Leitungen</li>
</ul>
<p>Der Nunchuk wird mit 3,3V betrieben. Es funktioniert zwar anscheinend auch mit 5V, ist auf Dauer aber sicher nicht gut.<br />
Zwar vertr&#228;gt der im Nunchuk eingebaute Controller 5V, nicht aber der 3-Achsen-Beschleunigungssensor, der ist nur f&#252;r max. 3,6V ausgelegt.</p>
<p>Zur Verdeutlichung einige Bilder von meinem Versuchsaufbau.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070605/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3059/2659070605_0b26684d87.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Der gesamte Probeaufbau mit ATM18-Modul, Wii-Nunchuk, Levelshifter und 3,3V Stromversorgung auf Steckbrett, STK500.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659897886/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3145/2659897886_b93b6bcf35.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Das LCD-Modul mit Wii-Nunchuk Parametern.</p>
<ul>
<li>JOY zeigt den Joystick Wert an</li>
<li>ACC zeigt die 3-Achsen Beschleunigswerte an</li>
<li>BTN zeigt den Status der beiden Tasten C und Z an</li>
</ul>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070955/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm3.static.flickr.com/2049/2659070955_7fe1f2ce54.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Kabelsalat. Der I2C Levelshifter und die 3,3V Stromversorgung auf dem Steckbrett.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659071079/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3055/2659071079_249d682f0f.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<h2>Wii-Nunchuk Adapter</h2>
<p>Der Wii-Nunchuk Adapter f&#252;hrt Stromversorgungs und I2C Anschl&#252;sse auf Stiftleiste heraus.</p>
<ul>
<li>Erfinder: <a href="http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/" class="liexternal">http://todbot.com/blog</a></li>
<li>Bezugsquelle: <a href="http://store.fungizmos.com/index.php?main_page=product_info&amp;cPath=69&amp;products_id=212" class="liexternal">FunGizmos</a></li>
</ul>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659897466/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3090/2659897466_f0324355c0.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>DIY Wii-Nunchuk Adapter aus einem alten Floppy Adapter. Man kann sich auch aus dem Steckverbinder einer alten ISA Karte einen Nunchuk-Adapter basteln.</p>
<h2>Schaltpl&#228;ne:</h2>
<p><a href="http://www.flickr.com/photos/23913470@N00/2660878524/" class="flickr-image" title="wii_power_schem"><img src="http://farm4.static.flickr.com/3134/2660878524_5e490efac6.jpg" alt="wii_power_schem" /></a></p>
<p>3,3V Stromversorgung</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2660878560/" class="flickr-image" title="wii_levelshifter_schem"><img src="http://farm4.static.flickr.com/3110/2660878560_928cfecd7b.jpg" alt="wii_levelshifter_schem" /></a></p>
<p>Der WII-Nunchuk Levelshifter Schaltplan.<br />
Setzt die 5V Signale vom ATM-18 Modul in 3,3V Pegel f&#252;r den WII-Nunchuk um. Das ganze funktioniert bidirektional nach einer Application Note von Philips.<br />
<a href="http://www.nxp.com/acrobat_download/applicationnotes/AN10441_1.pdf" class="lipdf">AN10441_1.pdf</a></p>
<p>Die komplette Fotoserie mit h&#246;her aufgel&#246;sten Fotos gibt es bei <a href="http://flickr.com/photos/hmblgrmpf/sets/72157606114444341/" class="liexternal">Flickr</a></p>
<p>Die Software f&#252;r das ATM-18 Modul und weitere Informationen findet man im <a href="http://www.cczwei-forum.de/cc2/thread.php?threadid=1785" class="liexternal">CC2 Forum</a>.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.elektor.de" class="liexternal">Elektor</a></li>
<li><a href="http://www.cczwei.de/" class="liexternal">CC2 (ComputerClub 2)</a></li>
<li><a href="http://www.windmeadow.com/node/42" class="liexternal">www.windmeadow.com</a></li>
<li><a href="http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/trackback/" class="liexternal">http://todbot.com/blog</a></li>
<li><a href="http://store.fungizmos.com/index.php?main_page=product_info&amp;cPath=69&amp;products_id=212" class="liexternal">FunGizmos</a></li>
<li><a href="http://flickr.com/photos/hmblgrmpf/sets/72157606114444341/" class="liexternal">Flickr</a></li>
<li><a href="http://www.cczwei-forum.de/cc2/thread.php?threadid=1785" class="liexternal">CC2 Forum</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Preiswerte Bluetooth Anbindung</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44#comments</comments>
		<pubDate>Sat, 19 Apr 2008 22:12:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44</guid>
		<description><![CDATA[Fertige Bluetooth L&#246;sungen sind mitunter recht kostspielig. Die preiswertesten Bluetooth Module die derzeit k&#228;uflich erh&#228;ltlich sind, gibt es vom chinesischen Hersteller Rayson. Die Module BTM-112 (Class 2) und BTM-222 (Class 1) kosten jeweils nur etwa 15€.
Da die Module f&#252;r 3,3V Versorgungsspannung ausgelegt sind ben&#246;tigt man f&#252;r den Anschlu&#223; an ein 5V System neben einem 3,3V [...]]]></description>
			<content:encoded><![CDATA[<p>Fertige <a href="http://de.wikipedia.org/wiki/Bluetooth" rel="nofollow" class="liwikipedia">Bluetooth</a> L&#246;sungen sind mitunter recht kostspielig. Die preiswertesten Bluetooth Module die derzeit k&#228;uflich erh&#228;ltlich sind, gibt es vom chinesischen Hersteller <a href="http://www.rayson.com/" class="liexternal">Rayson</a>. Die Module BTM-112 (Class 2) und BTM-222 (Class 1) kosten jeweils nur etwa 15€.</p>
<p>Da die Module f&#252;r 3,3V Versorgungsspannung ausgelegt sind ben&#246;tigt man f&#252;r den Anschlu&#223; an ein 5V System neben einem 3,3V <a href="http://de.wikipedia.org/wiki/Spannungsregler" rel="nofollow" class="liwikipedia">Spannungsregler</a> noch 2 Pegelwandler (Level Shifter) f&#252;r die <a href="http://de.wikipedia.org/wiki/UART" rel="nofollow" class="liwikipedia">UART</a> Signale. Zudem will man sicher nicht auf eine Statusanzeige mittels LEDs verzichten. Der Preis f&#252;r ein Modul liegt trotzdem alles in allem bei ca. 20€.<br />
<img src="http://farm4.static.flickr.com/3267/2425453913_5f511cb678.jpg" alt="BTM-222 Modul komplett" /><br />
<span id="more-44"></span></p>
<h2>Die Schaltung</h2>
<p>Die Schaltung des Bluetooth Moduls ist f&#252;r den Betrieb an einem 5V System ausgelegt. Als Spannungsregler kommt ein regelbarer LM317L zum Einsatz. Ebenso k&#246;nnte ein 3,3V Festspannungsregler wie z.B. der LF33CV verwendet werden.</p>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm-222_schem.png" class="liimagelink"><img class="alignnone size-medium wp-image-49" title="BTM-222 Schematic" src="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm-222_schem.png" alt="" width="300" height="122" /></a><a href="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm_power_schem.png" class="liimagelink"><img class="alignnone size-thumbnail wp-image-48" title="BTM-222 Stromversorgung" src="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm_power_schem.png" alt="" width="150" height="124" /></a><br />
<a class="flickr-image" title="btm-222_schem" rel="flickr-mgr" href="http://www.flickr.com/photos/23913470@N00/2428362972/"><br />
</a></p>
<h3>Pegelwandler</h3>
<p>Ein Pegelwandler (englisch Level Shifter) dient dazu, Signalpegel unterschiedlicher Spannungspegel anzupassen. Ein typischer Vertreter f&#252;r einen Pegelwandler ist z.B. ein RS232 Wandler. Dieser wandelt die 12V Pegel einer RS232 Schnittstelle in 5V TTL Pegel um.<br />
Die Pegelwandler f&#252;r unser Bluetooth Modul werden aus je 2 NPN <a href="http://de.wikipedia.org/wiki/Transistor" rel="nofollow" class="liwikipedia">Transistoren</a> und ein paar Widerst&#228;nden gebildet. Theoretisch k&#246;nnte man den 3,3V nach 5V Level shifter auch weglassen, da die 3,3V Pegel normalerweise als HIGH Pegel erkannt werden. Ebenso lie&#223;e sich der 5V nach 3,3V Level shifter durch einen Spannungsteiler, der nur aus 2 Widerst&#228;nden besteht ersetzen. Aber lieber gehe ich hier auf Nummer Sicher.</p>
<h3>Externe Antenne</h3>
<p>Beide Module besitzen keine Antenne. Was aber nicht weiter schlimm ist, ein St&#252;ck Draht tut es ebenso gut. Man erzielt damit eventuell sogar eine h&#246;here Reichweite, als mit einer Keramik Antenne. Im speziellen wird eine sogenannte Lambda/4 Antenne ben&#246;tigt. Die L&#228;nge einer Lambda/4 Antenne entspricht einem Viertel der Sendefrequenz,  bei Bluetooth (2,4GHz) ergibt das eine L&#228;nge von 31mm.</p>
<h3>Adapter Board</h3>
<p>Zun&#228;chst wird das BTM-222 Modul auf das Standard Raster von 2,54mm gebracht. Dazu wird das Modul mit Hei&#223;kleber mittig auf ein St&#252;ck Lochrasterplatine  der Gr&#246;&#223;e 40 x 25mm geklebt. Doppelseitiges Punktraster ist hierzu ideal. Die f&#252;r den Betrieb notwendigen Kontakte werden auf 2 9-polige Stiftleisten gef&#252;hrt. Davon werden insgesamt aber nur 7 Kontakte ben&#246;tigt. Als Hauptproblem stellte sich hier heraus, geeignete Dr&#228;hte zu finden um das Modul zu verdrahten. Der d&#252;nnste, mir zur Verf&#252;gung stehende Silberdraht mit 0,4mm Durchmesser, war hier immer noch zu dick. Nach einigem Ausprobieren war der geeignete &#8220;Draht&#8221; gefunden. Die Einzel Kupferlitzen aus einen St&#252;ck flexiblen Elektrokabel lie&#223;en sich problemlos an die Winz-Kontakte des Moduls anl&#246;ten. Lediglich f&#252;r die Masseverbindung wurde Standard Litze mit 0,6mm verwendet. Die Abblockkondensatoren wurden ebenfalls mit auf diese Adapterplatine gel&#246;tet. So lie&#223;e sich das Modul schon komplett in einem 3,3 System integrieren. F&#252;r 5V System fehlen aber noch ein paar Kleinigkeiten.<br />
<img src="http://farm3.static.flickr.com/2293/2388916495_4d3dc96fb5.jpg" alt="BTM-222 Modul auf Adapter" /></p>
<h2>Inbetriebnahme</h2>
<h3>Bluetooth Profile</h3>
<p>Der Datenaustauch &#252;ber Bluetooth erfolgt &#252;ber sogenannte Profile. Beim Verbinden tauschen die Ger&#228;te ihre Profil Informationen aus und einigen sich dabei &#252;ber das verwendete Profil<br />
Beide BTM Module (BTM-112 und BTM-222) unterst&#252;tzen das SPP Profil (<strong>S</strong>erial <strong>P</strong>ort <strong>P</strong>rotocol). Damit ist die Ansteuerung sowohl von PC Seite als auch von Mikrocontroller Seite besonders einfach. Von der PC Seite (Bluetooth) verh&#228;lt sich das Ger&#228;t wie eine COM Schnittstelle. Von Mikrocontroller Seite (Seriell) werden nur die UART Signale RXD und TXD ben&#246;tigt. Das ganze bezeichnet man auch &#8220;Kabelersatzl&#246;sung&#8221;. Das hei&#223;t die Anwender Software und auch die angeschlossene Mikrocontroller Hardware merkt nichts davon, alles verh&#228;lt sich wie eine normale drahtgebundene serielle Verbindung.</p>
<h3>Probeaufbau auf Steckbrett</h3>
<p>Durch die Stiftleisten kann man Bluetooth Modul einfach auf ein Steckbrett stecken um dort die restliche Schaltung f&#252;r die 5V Logik aufzubauen und zu testen. Dazu geh&#246;ren die 3,3V Spannungsversorgung ein paar Status LEDs und die beiden Levelshifter.<br />
<img src="http://farm3.static.flickr.com/2372/2396001477_a3666ff0d1.jpg" alt="BTM-222 Probeaufbau" /></p>
<h3>Erste Versuche</h3>
<p>Die ersten Versuche mit dem Probeaufbau bestanden nur aus dem Modul und ein paar Status LEDs an den Ports PIO5..7 mit einem 3,3V Labornetzteil. Damit l&#228;&#223;t sich schon mal die Stromaufnahme testen. Nach Anlegen der Spannung flossen 50mA duch die Schaltung. Die LED an PIO5 blinkte 2x kurz zusammen mit der LED an PIO7. Danach blinkte nur noch die LED an PIO7 2mal pro Sekunde. Das schaute schon mal nicht schlecht aus. Auch unter der Bluetooth Umgebung auf dem PC war ein unbekanntes Ger&#228;t zu finden. Eine Verbindung liess sich allerdings nicht aufbauen. Das ist am Anfang n&#228;mlich nur direkt &#252;ber die serielle Schnittstelle m&#246;glich.</p>
<h3>1. serielle Verbindung</h3>
<p>F&#252;r die Konfiguration des Bluetooth Moduls wird einmalig ein serielle Verbindung zum PC &#252;ber einen RS232 Adapter oder einen USB-UART Wandler ben&#246;tigt. Der RS232 Wnadler setzt die UART <a href="http://de.wikipedia.org/wiki/Transistor-Transistor-Logik" rel="nofollow" class="liwikipedia">TTL</a> Pegel (0V..5V) in <a href="http://de.wikipedia.org/wiki/Rs232" rel="nofollow" class="liwikipedia">RS232</a> Pegel (+12V..-12V) um. Ein USB-UART Wandler ist bei modernen PCs notwendig, die &#252;ber keine RS232 Schnittstelle verf&#252;gen. Achtung es mu&#223; ein USB-UART Wandler mit UART TTL Pegel sein. Die &#252;blichen USB-RS232 Wandler arbeiten auf der seriellen Schnittstelle wieder mit RS232 Pegel, wozu dann zus&#228;tzlich auf der Bluetooth Modul wiederum ein RS232-TTL Wandler notwendig w&#228;re.<br />
Der unten abgebildete selbstgebaute RS232-UART Wandler besteht aus einem MAX202 Chip und 4 Kondensatoren.<br />
<img src="http://farm3.static.flickr.com/2275/2129824702_93e4c68df2.jpg" alt="RS232 Modul" /><br />
Im Terminalprogramm sind folgende Einstellungen der seriellen Schnittstelle vorzunehmen:<br />
<code>"19200 Baud, 8 Datenbits, no Parity, 1 Stop Bit, Handshake kein oder Hardware"</code><br />
Nach dem Anlegen der Versorgungsspannung reagiert das Modul auf AT-Befehle, die man vom Terminalprogramm aus eingibt. Auf &#8216;AT&#8217; antwortet das Modul mit &#8216;OK&#8217;. Den kompletten Befehlssatz findet man im <a href="http://tme.pl/dok/a04/btm222_datasheet.pdf" class="lipdf">Datenblatt</a>. Einige Befehle funktioneren nur im Master Mode. Da unser Modul als Slave arbeitet, gibt es bei der Eingabe entsprechender Befehle eine Fehlermeldung &#8216;ERROR&#8217;. Auf den Befehl &#8216;ATB?&#8217; antwortet das Modul mit seiner Bluetooth Adresse. &#8216;ATI?&#8217; liefert die Firmware Version (&#8216;v4.19&#8242; bei meinem Modul).<br />
Letztendlich gen&#252;gt der Befehl &#8216;ATH0&#8242;, damit das Modul eine Verbindungsaufnahme &#252;ber Bluetooth erm&#246;glicht. Ein spezielles Pairing mit Eingabe von Pin Code o.&#228;. ist nicht notwendig.<br />
<strong>Korrektur vom 02.07.2008:</strong> Die Eingabe des Befehls &#8216;ATH0&#8242; ist nicht notwendig. Das Modul funktioniert schon mit den Werkseinstellungen richtig. Falls es Probleme geben sollte, gen&#252;gt es einen Werks Reset auszuf&#252;hren mit &#8216;ATZ0&#8242;.</p>
<h3>1. Bluetooth Verbindung</h3>
<p>Jetzt wird es Zeit eine erste Verbindung &#252;ber Bluetooth herzustellen. Beim Anlegen der Spannung an das Modul f&#228;llt mir auf, das die Stromaufnahme jetzt sehr schwankt (zwischen 20..70mA im Sekundenrythmus). Aber kein Grund zur Sorge, das ist alles normal. Wen man nun unter der Bluetooth Umgebung auf dem PC auf den &#8216;Serial Adaptor Dev B&#8217; doppelklickt, bekommt eine Verbindung, und man erh&#228;lt die COM Nummer, unter der man das Modul unter Bluettoth erreicht (COM3 in meinem Fall). Diese COM Nummer gibt man im Terminalprogramm an, die anderen Parameter wie Baudrate sind dieselben wie oben beschrieben. Bei erfolgreicher Verbindung geht die Stromaufnahme auf 20mA zur&#252;ck und die gr&#252;ne Status LED zeigt jetzt Dauerleuchten. Dr&#252;ckt man nun eine Taste im Terminalprogramm leuchtet dazu die rote Traffic LED. Perfekt, so macht das Spa&#223;.<br />
F&#252;r zuk&#252;nftige Verbindungen reicht es aus, das Terminalprogramm zu starten. Die Verbindung steht dann binnen 2-3 Sekunden.</p>
<h3>Tr&#228;gerboard</h3>
<p>Nun geht es daran, die Schaltung vom Probeaufbau auf eie Lochraster Platine zu bringen. Damit das komplette Modul nicht zu gro&#223; wird, entscheide ich mich f&#252;r eine Sandwich Konstruktion. Die mei&#223;ten Bauteile sitzen dann unter dem Adapterboard. Viel Platz ist nicht, aber mit Hochkant Stellen der meisten Widerst&#228;nde klappt es ohne Probleme, alles unterzubringen. Man mu&#223; allerdings darauf achten, dass die Bauteile nicht zu hoch ragen, sonst k&#246;nnte es Kurzschl&#252;sse mit dem Adapterboard geben. Die Steckerbelegung des 6poligen Steckverbinders entspricht der Belegung meines BlueSmiRF bzw. RS232 Moduls. So kann ich die Module beliebig untereinander tauschen.</p>
<p>Das Tr&#228;gerboard Bauteilseite:<br />
<img src="http://farm3.static.flickr.com/2285/2425449873_7544b82a72.jpg" alt="Tr&#228;gerboard von oben" /></p>
<p>Das Tr&#228;gerboard L&#246;tseite:<br />
<img src="http://farm4.static.flickr.com/3200/2425451637_bc40445d8c.jpg" alt="Tr&#228;gerboard von unten" /></p>
<p>Tr&#228;gerboard Layoutplan Bauteilseite:<br />
<img src="http://farm3.static.flickr.com/2242/2427550251_a8d36b86ca.jpg" alt="Tr&#228;gerboard Layout von oben" /></p>
<p>Tr&#228;gerboard Layoutplan L&#246;tseite:<br />
<img src="http://farm4.static.flickr.com/3018/2428363086_0b66668ffb.jpg" alt="Tr&#228;gerboard Layout von unten" /></p>
<h2>Das fertige Modul</h2>
<p>Geschafft, so sieht das fertige Modul aus. Vor dem Aufstecken sollte man unbedingt das Tr&#228;gerboard durchmessen und erst mal alleine testen. Das hei&#223;t Stromaufahme messen, Spannungen &#252;berpr&#252;fen. Die 3,3V Spannungsversorgung mu&#223; erst &#252;ber den Poti abgeglichen werden. Erst dann sollte man das Modul stecken. Wie schon beim Probeaufbau sollte beim Spannung anlegen erst beide LEDs kurz blinken, danach nur noch zyklisch die gr&#252;ne LED.<br />
<img src="http://farm4.static.flickr.com/3267/2425453913_5f511cb678.jpg" alt="BTM-222 Modul komplett" /></p>
<h3>St&#252;ckliste</h3>
<p><code><br />
1 LM317LZ regelbarer Spannungsregler, IC1<br />
1 Bluetooth Modul BTM-222, IC2<br />
4 Transistoren NPN BC547 o. &#228;., T1..T4<br />
1 LED rot, low current 2mA, D1<br />
1 LED gr&#252;n low current 2mA, D2<br />
1 Diode 1N4002, D3<br />
4 Folien Kondensatoren 100nF, C1..C4<br />
8 Widerst&#228;nde 1k, R1..R8<br />
1 Widerstand 220, R9<br />
1 Trimmer 5k, R10<br />
2 Steckerleisten gerade, 2,54mm 9polig<br />
1 Steckerleiste gewinkelt, 2,54mm 6polig<br />
2 Buchsenleisten gerade, 2,54mm 9polig<br />
1 St&#252;ck Lochraster doppelseitig Punktraster, 25x40mm<br />
1 St&#252;ck Lochraster einseitig Punktraster, 30x53mm<br />
Silberdraht, 0,4mm<br />
isolierter Schaltdraht, starr, rot, gelb, schwarz 0,4mm<br />
Kupferlitze aus flexiblem Elektrokabel<br />
</code><br />
Thats all folks!</p>
<h2>Bezugsquellen</h2>
<ul>
<li><a href="http://www.it-wns.de/themes/kategorie/detail.php?artikelid=219&amp;source=2" class="liexternal">www.it-wns.de</a></li>
<li><a href="http://lynx-dev.com/index.php?page=shop.product_details&amp;category_id=62&amp;flypage=shop.flypage&amp;product_id=5683&amp;option=com_virtuemart&amp;Itemid=2" class="liexternal">www.lynx-dev.com</a></li>
<li><a href="http://www.tme.pl/modul-bluetooth-hci-uart-class-2/arts/pl/a04/btm-112.html" class="liexternal">www.tme.pl</a></li>
<li><a href="http://www.csd-electronics.de/de/index.htm" class="liexternal">CSD-Electronics</a></li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.beecon.de/projekte/BlueMP3-ct/index_de.html" class="liexternal">BlueMP3</a> &#8211; Ein Projekt der c&#8217;t</li>
<li><a href="http://www.clipswitch.de/avrblueremote.html" class="liexternal">AVR Blue Remote</a> &#8211; Eine Bluetooth Funkkfernsteuerung f&#252;r PDAs und Smartphones</li>
<li><a href="http://www.mikrocontroller.net/articles/Bluetooth" class="liexternal">www.microcontroller.net</a> &#8211; Bluetooth Artikel</li>
<li><a href="http://www.mikrocontroller.net/topic/81759#new" class="liexternal">www.microcontroller.net Forum</a> &#8211;  Bluetoothmodul BTM-222</li>
<li><a href="http://www.roboternetz.de/phpBB2/viewtopic.php?t=39494" class="liexternal">www.roboternetz.de Forum</a> &#8211; BTM-222 Bluetooth Modul</li>
<li><a href="http://tme.pl/dok/a04/btm222_datasheet.pdf" class="lipdf">BTM-222 Datenblatt</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/tags/bluetooth/" class="liexternal">www.flickr.com</a> &#8211; mein Flickr Bluetooth Album</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44/feed</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>ASURO Library V2.8.0</title>
		<link>http://www.robotfreak.de/blog/robotik/asuro-library-v280/46</link>
		<comments>http://www.robotfreak.de/blog/robotik/asuro-library-v280/46#comments</comments>
		<pubDate>Sat, 29 Mar 2008 19:50:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/allgemein/asuro-library-v280/46</guid>
		<description><![CDATA[Eine neue Release der ASURO Library steht zum Download auf Sourceforge bereit. Noch ist es keine endg&#252;ltige Version sondern nur ein Release Candidate. Gro&#223;e &#196;nderungen sind aber nicht mehr zu erwarten.

Die wichtigsten &#196;nderungen gegen&#252;ber der Vorg&#228;nger Version sind:

Unterst&#252;tzung f&#252;r ATmega168 Prozessoren
neue Funktion ReadADC zur A/D Wandler Abfrage
neue Funktion PrintLCD_p zur Ausgabe von Strings aus dem [...]]]></description>
			<content:encoded><![CDATA[<p>Eine neue Release der ASURO Library steht zum Download auf <a href="http://sourceforge.net/projects/asuro" class="liexternal">Sourceforge</a> bereit. Noch ist es keine endg&#252;ltige Version sondern nur ein Release Candidate. Gro&#223;e &#196;nderungen sind aber nicht mehr zu erwarten.<br />
<span id="more-46"></span><br />
Die wichtigsten &#196;nderungen gegen&#252;ber der Vorg&#228;nger Version sind:</p>
<ul>
<li>Unterst&#252;tzung f&#252;r ATmega168 Prozessoren</li>
<li>neue Funktion ReadADC zur A/D Wandler Abfrage</li>
<li>neue Funktion PrintLCD_p zur Ausgabe von Strings aus dem Programmspeicher</li>
<li>neue Funktion SetCharLCD zum Setzen von Sonderzeichen</li>
<li>neue Funktion PollSwitchLCD zur Abfrage der Tasten des Arexx LCD</li>
<li>neue Funktion MyMotorSpeed die Korrekturwerte aus der myasuro.h ber&#252;cksichtigt.</li>
<li>neue Funktion SerPrint_p zur Ausgabe von Strings aus dem Programmspeicher</li>
<li>UART Baudrate einstellbar durch Define</li>
<li>Interrupt User Funktionen f&#252;r Timer und A/D Wandler</li>
<li>AVR Studio Projektfiles f&#252;r alle Beispielprojekte</li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a href="http://sourceforge.net/projects/asuro" class="liexternal">Asuro Library auf Sourceforge</a></li>
<li><a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Bibliothek" class="liexternal">Asuro Library im AsuroWiki</a></li>
<li><a href="http://www.roboternetz.de/phpBB2/viewtopic.php?p=363627#363627" class="liexternal">Thread zum  Thema im Roboternetz Forum</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/asuro-library-v280/46/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
