<?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 &#187; Asuro</title>
	<atom:link href="http://www.robotfreak.de/blog/tag/asuro/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Arduino und mehr</description>
	<lastBuildDate>Fri, 02 Jul 2010 19:09:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>NIBObee vs. Asuro</title>
		<link>http://www.robotfreak.de/blog/robotik/nibobee-vs-asuro/216</link>
		<comments>http://www.robotfreak.de/blog/robotik/nibobee-vs-asuro/216#comments</comments>
		<pubDate>Fri, 16 Apr 2010 10:13:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Nibobee]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=216</guid>
		<description><![CDATA[Im Jahre 2005 erschien der Asuro Roboter auf dem Markt und sorgte f&#252;r eine kleine Revolution. Der Asuro wurde damals wie heute f&#252;r 50€ angeboten, und setzte damit den Einstiegspreis f&#252;r einen Roboter Bausatz auf ein neues Tiefpreis Niveau. 4 Jahre sp&#228;ter erscheint nun mit dem NIBObee ein Rivale auf der Bildfl&#228;che, der ebenfalls f&#252;r [...]]]></description>
			<content:encoded><![CDATA[<p>Im Jahre 2005 erschien der Asuro Roboter auf dem Markt und sorgte f&#252;r eine kleine Revolution. Der Asuro wurde damals wie heute f&#252;r 50€ angeboten, und setzte damit den Einstiegspreis f&#252;r einen Roboter Bausatz auf ein neues Tiefpreis Niveau. 4 Jahre sp&#228;ter erscheint nun mit dem NIBObee ein Rivale auf der Bildfl&#228;che, der ebenfalls f&#252;r 50€ angeboten wird. In diesem Artikel geht es u.a. um die Frage: Ist der NIBObee ein w&#252;rdiger Asuro Nachfolger?<br />
<img src="http://farm3.static.flickr.com/2725/4105008595_44f2d97453.jpg" alt="NIBObee vs. Asuro" /><br />
<span id="more-216"></span><br />
Im <a href="http://www.roboternetz.de/phpBB2" class="liexternal">Roboternetz.de</a> und <a href="http://www.mikrocontroller.net" class="liexternal">Mikrocontroller.net</a> Forum wurden vom Hersteller <a href="http://www.nicai-systems.de/nibobee.html" class="liexternal">nicai-systems</a> jeweils 10 Exemplare an interessierte User kostenlos zur Verf&#252;gung gestellt, die in den beiden Foren dann &#252;ber ihre Erfahrungen berichten. Auch ich konnte einen der Gratis Baus&#228;tze ergattern.</p>
<h2>Aufbau</h2>
<p>Der Aufbau des NIBObee gestaltet sich insgesamt einfacher als beim Asuro. Die NIBObee Leiterplatte ist wesentlich gr&#246;&#223;er, die Bauteile sind nicht so dicht gedr&#228;ngt, Widerst&#228;nde liegen plan und stehen nicht aufrecht wie beim Asuro. Allerdings mu&#223; man schon die n&#246;tige Sorgfalt walten lassen insbesondere beim Zusammenbau der Getriebek&#228;sten.<br />
Sind die Achsen erst mal schr&#228;g und alles schon zusamengel&#246;tet l&#228;&#223;t sich das nur noch schwer korrigieren.<br />
<img src="http://farm3.static.flickr.com/2508/4093883056_15850031af.jpg" alt="NIBObee Getriebe" /><br />
Bei der Verwendung von bleifreiem Lot ist eine genaue Nachkontrolle unumg&#228;nglich. Kalte L&#246;tstellen sind nicht so einfach zu finden wie bei Bleilot. Im Bild unten sieht man, das die 2. L&#246;tstelle neben dem NIBObee Schriftzug fehlerhaft ist.<br />
<img src="http://farm3.static.flickr.com/2637/4093884472_08e7594ab5.jpg" alt="NIBObee" /></p>
<h2>Ausstattung</h2>
<p>Auch bei der Ausstattung punktet der NIBObee ganz klar. Der gr&#246;&#223;ere Prozessor mit mehr IOs bietet einfach mehr Anschlussm&#246;glichkeiten f&#252;r Sensoren.<br />

<table id="wp-table-reloaded-id-1-no-1" class="wp-table-reloaded wp-table-reloaded-id-1">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Feature</th><th class="column-2">Nibobee</th><th class="column-3">Asuro</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">Prozessor</td><td class="column-2">ATMega16 erweiterbar auf ATmega644</td><td class="column-3">ATmega8 erweiterbar auf ATmega328</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">Speicher</td><td class="column-2">16kByte</td><td class="column-3">8kByte, davon 1kByte Bootloader</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">Flashtool</td><td class="column-2">USB Programmer onboard</td><td class="column-3">drahtlos RS232 IR, optional USB IR </td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">Odometrie</td><td class="column-2">digital, IR mit Abschirmung und Schmitt Trigger</td><td class="column-3">analog, IR ohne Abschirmung</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">Liniensensor</td><td class="column-2">3 Fototransistoren, 2 IR LEDs</td><td class="column-3">2 Fototransistoren, 1 rote LED</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">Bumper</td><td class="column-2">2 Fühler mit 4 Taster (Vorwärts, rückwärts)</td><td class="column-3">6 Taster</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1">Motorbrücke</td><td class="column-2">diskret mit Transistoren</td><td class="column-3">diskret mit Transistoren</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1">Anzeigen</td><td class="column-2">2 rote,<br />
3 grüne,<br />
2 gelbe LEDs</td><td class="column-3">1 Front LED rot, 1 Status LED 2-farbig rot, grün, gelb, 2 Back LEDs rot</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1">Schnittstellen</td><td class="column-2">UART nur auf Erweiterungsport, <br />
I2C nur auf Erweiterungsport </td><td class="column-3">UART IR 2400 Baud, <br />
I2C nur unter Verlust der Liniensensoren</td>
	</tr>
</tbody>
</table>
</p>
<h2>Programmierung</h2>
<p>Bei der Programmierung gibt es keinen eindeutigen Sieger. Beide Prozessoren aus der Atmel Reihe k&#246;nnen mit den gleichen Tools und Programmiersprachen programmiert werden. Der Asuro ist hier vielleicht etwas einfacher zu programmieren, aber nur, weil er halt nicht so viele Peripherie hat. Zum NIBObee geh&#246;rt daf&#252;r eine ausgewachsene Programmier Bibliothek vom Hersteller, die die AsuroLib an Umfang um L&#228;ngen schl&#228;gt.<br />
Beim Flashtool zum &#220;bertragen der Programme ist die NIBObee wieder im Vortiel. Der eingebaute USB Programmer schl&#228;gt den Standard IR-RS232 Transceiver ganz klar. Viele neue PCs haben keine RS232 Schnittstelle mehr. Der Anwender mu&#223; sich f&#252;r extra Kohle den USB Transceiver zulegen. Au&#223;erdem ist die IR Schnittstelle Nummer 1 der Fehlerquellen beim Asuro. Ein Punkt spricht allerdings f&#252;r den Asuro. &#220;ber die IR Schnittstelle kann der Asuro auch mit dem PC kommunizieren, das geht bei der NIBObee leider nicht. Man braucht schon einen extra USB-Seriell Wandler.<br />
<img src='http://farm3.static.flickr.com/2671/4105013297_cab7a4a466.jpg' alt='NIBObee mit USB seriell Wandler'/></p>
<h2>Erweiterungen</h2>
<p>F&#252;r den Asuro werden einige Erweiterungen vom Hersteller angeboten. </p>
<ul>
<li>Ultraschall Modul</li>
<li>LCD Modul</li>
<li>SnakeVision</li>
</ul>
<p>Dazu gibt es noch eine kleine Experimentierplatine f&#252;r eigene Erweiterungen. Leider werden alle Erweiterungen mit dem Nachtel erkauft, das man z.B. auf den Liniensensor verzichten mu&#223;.<br />
Bei der NIBObee gibt es 5 freie Erweiterungsports mit insgesamt 10 IOs. Damit l&#228;&#223;t sich schon einiges mehr anfangen. Neben der I2C und UART Schnittstelle stehen noch 6 digitale/analoge Ports zur Verf&#252;gung. Vom Hersteller ist bisher nur ein Graphik Display angek&#252;ndigt, so ist also vorerst DIY angesagt. Im Bild unten ist z.B ein LCD mit I2C Anschluss zu sehen.<br />
<img src='http://farm3.static.flickr.com/2788/4122379136_cf8c1232f1.jpg' alt='NIBObee mt I2C LCD'/><br />
Weitere Erweiterungen sind im <a href="http://www.roboternetz.de/phpBB2/viewtopic.php?p=474366" class="liexternal">Roboternetz Forum</a> zu finden.</p>
<h2>Fazit</h2>
<p>Keine gro&#223;e &#220;berraschung. Der klare Sieger nach Punkten hei&#223;t NIBObee. Allerdings werde ich meinen liebgewonnenen Asuro deshalb noch lange nicht in die Ecke stellen. Konkurrenz belebt das Gesch&#228;ft und es gibt sicher genug Fans f&#252;r beide Robotermodelle. So schnell werden wohl auch die Asuro Fans nicht austerben.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.nicai-systems.de/nibobee.html" class="liexternal">nicai-systems</a> Roboterbausatz NIBObee</li>
<li><a href="http://sourceforge.net/projects/nibobeelib" class="liexternal">Sourceforge NIBObee Library</a></li>
<li><a href="http://www.nibo-roboter.de/wiki/NIBObee" class="liexternal">NIBObee Wiki</a></li>
<li><a href="http://www.reichelt.de/?ACTION=3;ARTICLE=91023;PROVID=2402" class="liexternal">NIBObee bei Reichelt</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157622770689906/" class="liexternal">NIBObee Flickr Album</a></li>
<li><a href="http://www.youtube.com/results?search_query=nibobee&amp;search_type=&amp;aq=f" class="liexternal">NIBObee Videos auf Youtube</a></li>
<li><a href="http://www.mikrocontroller.net/topic/155179" class="liexternal">Microcontroller.net</a> &#8211; Thread zur Nibobee</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/nibobee-vs-asuro/216/feed</wfw:commentRss>
		<slash:comments>1</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 [...]]]></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. 3x4cm</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/de/Breakout-Board-mit-FT232RL-USB-Seriell-Wandler" 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>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 [...]]]></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>
<ul>
<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>
</ul>
<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 &#8217;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://robotfreak.googlecode.com/files/RobotFreak.zip" class="lizip">hier</a> zum download. Das .zip Archiv wird einfach in den MRDS Ordner entpackt. Im Unterordner RobotFreak gibt es die beiden Projekte SimulatedAsuro und SimulatedRobotNo1. Bevor man selbst versucht, die Projekte zu &#252;bersetzen, mu&#223; das &#8216;setup.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://robotfreak.googlecode.com/files/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>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 [...]]]></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>
		<item>
		<title>Arduino und der Asuro</title>
		<link>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42</link>
		<comments>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42#comments</comments>
		<pubDate>Wed, 09 Jan 2008 22:06:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42</guid>
		<description><![CDATA[Mit der Asuro Erweiterung und der damit vorhandenen RS232 Schnittstelle lassen sich auch sehr leicht Arduino Skripte laden und ausf&#252;hren. Allerdings wird dazu auch ein neuer Prozessor mit einem Arduino kompatiblen Bootloader vorausgesetzt. Warum nicht gleich auf den ATmega168 umsteigen. Der bietet neben dem doppelten Speicher f&#252;r Flash, EEPROM und RAM auch eine Debug M&#246;glichkeit [...]]]></description>
			<content:encoded><![CDATA[<p>Mit der Asuro Erweiterung und der damit vorhandenen RS232 Schnittstelle lassen sich auch sehr leicht <a href="http://www.arduino.cc" class="liexternal">Arduino</a> Skripte laden und ausf&#252;hren. Allerdings wird dazu auch ein neuer Prozessor mit einem Arduino kompatiblen Bootloader vorausgesetzt. Warum nicht gleich auf den ATmega168 umsteigen. Der bietet neben dem doppelten Speicher f&#252;r Flash, EEPROM und RAM auch eine Debug M&#246;glichkeit &#252;ber DebugWire.<br />
<span id="more-42"></span><br />
Die Idee dazu stammt aus dem <a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a> in dem Arduino Nutzer ihre Projekte vorstellen. Unter <a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Arduino and the Asuro Robot</a> von Jakob Remin findet man neben einer Quick&#8217;n'Dirty Methode zur Modifikation des Asuros auch ein Arduino Sketch zur Ansteuerung des Asuros. Den Umbau kann ich mir durch die  <a href="http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34" class="liinternal">Asuro Erweiterung</a> schon mal sparen.</p>
<h2>Erste Versuche</h2>
<p>Die ersten Versuche mit einem geclonten Arduino Diecimila Bootloader verliefen schon mal vielversprechend. Mit<br />
Ein paar &#196;nderungen in der Board Beschreibungsdatei hat man ein neues Board dazugef&#252;gt und dieses taucht nach dem Start der Arduino Oberfl&#228;che unter Tools | Boards aus.</p>
<pre class="prettyprint" style="padding-left: 30px;">##############################################################
atmega168.name=Arduino Asuro w/ ATmega168
atmega168.upload.protocol=stk500
atmega168.upload.maximum_size=14336
atmega168.upload.speed=9600
atmega168.bootloader.low_fuses=0xff
atmega168.bootloader.high_fuses=0xdd
atmega168.bootloader.extended_fuses=0x00
atmega168.bootloader.path=atmega168asuro
atmega168.bootloader.file=ATmegaBOOT_168_asuro.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F
atmega168.build.mcu=atmega168
atmega168.build.f_cpu=8000000L
atmega168.build.core=arduino</pre>
<p>Nach einstellen der Schnittstelle wird der Asuro auch gleich erkannt und das Beispiel Sketch kann &#252;bersetzt und geladen werden.<br />
Allerdings zeigte sich dabei der Effekt das beim Flashen bzw. beim Einschalten oder Reset des Asuros der rechte Motor f&#252;r ca. 10sek los l&#228;uft. Das ist nat&#252;rlich unsch&#246;n und liegt am Original Arduino Bootloader. Dort wird PB5 als Port f&#252;r die Status LED verwendet. Beim Asuro ist dieser Port mit dem rechten Motor verbunden. Autsch!!</p>
<h2>Bootloader anpassen</h2>
<p>Da der Quellcode f&#252;r den Bootloader als Open Source zur Verf&#252;gung steht, ist das &#196;ndern der Status LED kein Problem. Allerdings blieb auch nach &#196;nderung die recht lange Wartezeit von 10sek bis das Anwenderprogramm gestartet wird. Nach ein paar Internet Recherchen war auch f&#252;r dieses Problem eine L&#246;sung in Form des ADABOOT Bootloader gefunden. Dieser Bootloader bietet einige Vorteile gegen&#252;ber dem Arduino Bootloader. Damit bin ich erst mal gl&#252;cklich.</p>
<p>Allerdings klappt die &#220;bertragung bisher nur &#252;ber RS232. Bei Bluetooth Anbindung gibt es keine Verbindung zwischen der Arduino IDE und dem Asuro.  Man kann zwar in der Bluetooth Umgebung die Verbindung manuell herstellen, dann klappt immerhin die Verbindung im Terminalmode. Versucht man aber ein Sketch zu laden, bricht die Verbindung wieder ab. Mit Hyper Terminal gibt es keine Probleme unter Bluetooth. Schade, aber man kann wohl nicht alles haben. Allerdings besteht noch Hoffnung. Auf der  <a href="http://www.chip45.com" class="liexternal">Chip45 Homepage</a>, gibt es den Ur-Bootloader f&#252;r die Arduino Boards. Dort gibt es auch ein kleines Tool zum Flashen von Programmen &#252;ber den Bootloader. Dies lie&#223;e sich vielleicht anpassen, damit das Flashen auch unter Bluetooth funktioniert. Ein nettes Feature der Arduino Bootloader ist der automatische Reset des Boards, wenn ein neues Programm geflasht werden soll. Dazu muss lediglich ein 100nF Kondensator  zwischen Reset Leitung und DTR Steuerleitung gel&#246;tet werden. Allerdings F&#252;hrt das auch dazu, dass der Asuro einen Reset ausf&#252;hrt, wenn man die Arduino IDE, bzw. das Terminalprogramm startet.</p>
<p>Theoretisch lie&#223;e sich der Bootloader  auch soweit anpassen, das er auch &#252;ber die Standard Infrarot Schnittstelle des ASUROs funktioniert. Dazu m&#252;sste lediglich noch der 36kHz Timer f&#252;r die Ansteuerung der IR-LED implementiert werden. Praktisch funktioniert das leider nicht. Die IR &#220;bertragung ist leider zu fehlertr&#228;chtig.</p>
<p>Den Asuro Bootloader kann man sich bei <a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> herunterladen</p>
<h2>Asurino &#8211; Eine Arduino Bibliothek f&#252;r den Asuro</h2>
<p>Aus dem bestehenden Sketch von Jakob Remin habe ich angefangen eine Arduino Bibliothek zu schreiben.<br />
Der Name Asurino ist ein Kunstwort zusammengef&#252;gt aus den beiden Worten <strong>Asur</strong>o und Ardu<strong>ino</strong>. Bibliotheken f&#252;r Arduino werden in C++ geschrieben. Das h&#246;rt sich erst mal nach viel Arbeit an, ist aber nicht sonderlich schwer. Es gibt eine sehr gute Anleitung zum Schreiben von Bibliotheken. Man braucht auch nicht bei Null anfangen, da man nat&#252;rlich die vorhandenen Arduino Funktionen alle verwenden kann. Au&#223;erdem kann man sich an bereits existierenden Bibliotheken orientieren.</p>
<p>Bisher ist die Bibliothek noch recht rudiment&#228;r und sicher auch nicht fehlerfrei. Wer m&#246;chte kann sich die derzeitige Arbeitsversion bei <a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> herunterladen.</p>
<h2>Asuro Beispiel Sketche</h2>
<p>Ein Beispiel Sketch f&#252;r den Asuro sieht z.B. so aus. Durch das<br />
<code>#include "Asuro.h"</code><br />
wird die Bibliothek eingebunden. Die Zeile<br />
<code>Asuro asuro = Asuro();</code><br />
ist der Aufruf f&#252;r den Konstruktor der Asuro Klasse. Die Setup Routine wird einmalig beim Start des Sketches ausgef&#252;hrt und initialisiert lediglich die serielle Schnittstelle. Die Asuro spezifische Initialisierung passiert bereits im Konstruktor. Die loop Funktion wird dann zyklisch vom Hauptprogramm aufgerufen und durchlaufen. Das eigentliche Programm fragt die Tastsensoren ab. Falls eine Taste gedr&#252;ckt wurde, wird der Tastenwert bin&#228;r zum Terminalprogramm gesendet und die Status LED f&#252;r eine Sekunde auf Rot gesetzt, dann wieder zur&#252;ck auf Gr&#252;n.</p>
<pre class="prettyprint" style="padding-left: 30px;">#include "Asuro.h"
Asuro asuro = Asuro();
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  int Switches;
  /* front switch check */
  Switches = asuro.readSwitches();
  if (Switches)      /* Key pressed?
  {
    Serial.println("switches pressed");
    Serial.println(Switches, BIN);    /* send key value in binary */
    asuro.setStatusLED(RED);        /* status led red */
    delay(1000);                         /* wait 1sec */
  }
  asuro.setStatusLED(GREEN);      /* status led green */
}</pre>
<p>Einen aktualisierten Artikel zu diesem Thema findet man im <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Asurino" class="liexternal">AsuroWiki</a>.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.arduino.cc" class="liexternal">Arduino</a></li>
<li><a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a></li>
<li><a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Arduino and the Asuro Robot</a></li>
<li><a href="http://www.arduino.cc/playground/Learning/Asurino" class="liexternal">Asurino, an Arduino Library for the Asuro robot</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> &#8211; Asurino, AsuroBoot Download</li>
<li><a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Asurino" class="liexternal">Asurino Artikel im AsuroWiki</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asuro Erweiterung RS232/Bluetooth und ISP</title>
		<link>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34</link>
		<comments>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34#comments</comments>
		<pubDate>Sat, 22 Dec 2007 23:47:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34</guid>
		<description><![CDATA[Geschafft! Nach langer Zeit hatte ich mal wieder etwas Zeit, mich um meinen kleinen Freund den ASURO zu k&#252;mmern. Rechtzeitig zu Weihnachten erh&#228;lt dieser mal wieder eine Erweiterung. Diese besteht zurzeit aus einem RS232 bzw. Bluetooth Modul und einer ISP Schnittstelle. Der Clou bei der Sache ist, die Erweiterung wird nicht, wie das LCD-Modul oder [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/23913470@N00/2129839498/" title="Asuro mit BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2201/2129839498_1121858e85.jpg" alt="Asuro mit BT Modul" /></a></p>
<p>Geschafft! Nach langer Zeit hatte ich mal wieder etwas Zeit, mich um meinen kleinen Freund den ASURO zu k&#252;mmern. Rechtzeitig zu Weihnachten erh&#228;lt dieser mal wieder eine Erweiterung. Diese besteht zurzeit aus einem RS232 bzw. Bluetooth Modul und einer ISP Schnittstelle. Der Clou bei der Sache ist, die Erweiterung wird nicht, wie das LCD-Modul oder die SnakeVision Erweiterung, von oben, sondern von unten aufgesteckt. D.h. man kann oben zus&#228;tzlich z.B. das LCD-Modul stecken. Zudem ist auf der Platine noch jede Menge Platz f&#252;r weitere Features.</p>
<p><span id="more-34"></span></p>
<h2>Durchf&#252;hrung</h2>
<p>Durch die Erfahrungen, die ich mit dem <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/AsuroEvalBoard" class="liexternal">ASURO Eval Board</a> gemacht habe, war die Umsetzung nicht sehr schwierig. Dort war ja auch schon das RS232 Modul und das Bluetooth Modul sowie die ISP Schnittstelle vorhanden. Nur ist das ganze jetzt wesentlich kompakter, robuster und nicht so verbaut wie beim Eval Board.</p>
<p>Der ASURO mu&#223; allerdings etwas modifiziert werden, damit das ganze auch funktioniert. Wer es nachbauen m&#246;chte, sollte schon wissen, was er tut. Die Umbauten sind allerdings nicht so gravierend, dass man das Ganze nicht wieder zur&#252;ckbauen k&#246;nnte. Auch ist der einwandfreie Betrieb ohne die Erweiterungsplatine m&#246;glich. Es m&#252;ssen lediglich 3 Jumper am Asuro gesetzt werden.</p>
<h3>UART Schnittstelle</h3>
<p>Die UART Schnittstelle am ASURO ist normalerweise &#252;ber eine Infrarot Schnittstelle realisiert. Leider ist die Reichweite dieser L&#246;sung nicht besonders (max. 50cm). Zudem wird auf PC Seite ebenfalls ein Infrarot Transceiver ben&#246;tigt. Um die UART Schnittstelle zur Erweiterungs Platine zu f&#252;hren, m&#252;ssen die beiden Signale RX und TX vom Prozessor zur IR Schnittstelle durchtrennt werden. Zus&#228;tzlich werden die durchtrennten Signale von der IR Schnittstelle ebenfalls zur Erweiterungsplatine gef&#252;hrt. Zweckm&#228;&#223;igerweise werden alle Signal auf einen doppelreihigen Steckerleiste gef&#252;hrt. Die untere Reihe wird an die Prozessor Pins gel&#246;tet. an die obere Reihe kommen die Signale von der IR Schnittstelle. Da gleich neben den UART ins der RESET Pin h&#228;ngt, wird dieser ebenfalls auf die insgesamt 2&#215;3 poligen Steckerleiste gef&#252;hrt (geh&#246;rt aber eigentlich zur ISP Schnittstelle). Da der RESET Pin direkt an der Versorgungsspannung h&#228;ngt, wird diese Verbindung ebenfalls durchtrennt und die Versorgungsspannung  an die obere Reihe gef&#252;hrt. So ist gew&#228;hrleistet, das durch Stecken von 3 Jumpern auf die Steckerleiste, die original Funktion des ASUROs wiederhergestellt ist.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129823200/" title="Asuro UART Verdrahtung" class="liimagelink"><img src="http://farm3.static.flickr.com/2074/2129823200_ddff632457.jpg" alt="Asuro UART Verdrahtung" /></a></p>
<h3>ISP Schnittstelle</h3>
<p>Die ISP Schnittstelle ist beim Original ASURO Prozessor abgeschaltet und kann nur durch einen Chip Erase wieder eingeschaltet werden. Leider ist durch den Chip Erase aber auch der Bootloader weg. Deshalb sollte man Experimente mit der ISP Schnittstelle nur mit einem anderen Prozessor durchgef&#252;hrt werden und der Original Prozessor gut aufgehoben werden. Zur ISP Schnittstelle geh&#246;rt neben RESET, VErsorgungsspannung und Masse die 3 Prozessor Signale MISO, MOSI und SCK. Diese 3 Signale liegen beim Mega8 gl&#252;cklicherweise direkt nebeneinander  auf Pin 17,18 u. 19. So reicht eine 3polige abgewinkelte Steckerleiste aus, die an die entsprechenden Prozessor Pins gel&#246;tet werden. Leiterbahnen m&#252;ssen keine aufgetrennt werden.</p>
<h3>Verdrahtung</h3>
<p>Auf dem ASURO m&#252;ssen ingesamt 4 Leitungen nachverdrahtet werden. Dies sind:</p>
<li> die TX Leitung von der IR Sende Diode,</li>
<li>die RX Leitung vom IR Empf&#228;nger,</li>
<li>die Versorgungspannung zur 3&#215;2 poligen Steckerleiste</li>
<li>eine Versorgungsspannung Leitung zum Widerstand R11, da dieser hinter der RESET Leitung an der Versorgungsspannung hing</li>
<p>Dazu kommt eine 6-polige Leitung zur UART Schnittstelle und die 3polige Leitung zur ISP Schnittstelle. Versorgungsspannung und Masse kommen von den Erweiterungs Steckverbindern, die ebenfalls zur Erweiterungsplatine f&#252;hren.<br />
<a href="http://www.flickr.com/photos/23913470@N00/2129053755/" title="Asuro Erweiterung komplett" class="liimagelink"><img src="http://farm3.static.flickr.com/2009/2129053755_ee7e836835.jpg" alt="Asuro Erweiterung komplett" /></a></p>
<h3>Schaltplan</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/asuro_erweiterung.png" title="Asuro Erweiterung Schematic" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/asuro_erweiterung_s.png" alt="Asuro&lt;br /&gt; Erweiterung Schematic" /></a><br />
F&#252;r eine vergr&#246;&#223;erte Darstellung auf das Bild klicken.</p>
<h2>UART-Modul</h2>
<p>Das RS232 Modul besteht aus einem normalen RS232 Pegelwandler Chip, hier ist das der MAX202. Die Steckerbelegung des 6poligen Steckbverbinders ist diesselbe wie beim Bluetooth Modul.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129824702/" title="RS232 Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2275/2129824702_93e4c68df2.jpg" alt="RS232 Modul" /></a></p>
<p>Der ASURO mit dem RS232 Modul. Mit den beiden gr&#252;nen Jumper rechts neben dem RS232 Modul kann man zwischen RS232 und IR Schnittstellen Betrieb umschalten.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129059453/" title="Asuro mit Erweiterung und RS232 Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2355/2129059453_2875df5fe3.jpg" alt="Asuro mit Erweiterung und RS232 Modul" /></a></p>
<h3>Schaltplan</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/rs232-adapter.png" title="rs232-adapter.png" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/rs232-adapter_s.png" alt="rs232-adapter.png" /></a><br />
F&#252;r eine vergr&#246;&#223;erte Darstellung auf das Bild klicken.</p>
<h2>Bluetooth Modul</h2>
<p>Als Bluetooth Modul kommt das BlueSmiRF von Sparkfun zum Einsatz. Dies ist noch die Version 1.0. Neuere Module verwenden einen Bluegiga Transceiver.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129049719/" title="BlueSmiRF BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2390/2129049719_39ca3dd8f6.jpg" alt="BlueSmiRF BT Modul" /></a></p>
<p>Der Asuro mit dem Bluetooth Modul.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129833192/" title="Asuro mit Erweiterung und BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2255/2129833192_06fb5463b6.jpg" alt="Asuro mit Erweiterung und BT Modul" /></a></p>
<h2>ISP Schnittstelle</h2>
<p>Die ISP Schnittstelle ben&#246;tigt keine weiteren Bauteile, lediglich der RESET Pin bekommt den &#252;blichen 10kOhm Pullup Widerstand. Als ISP Steckverbinder wurde ein 10poliger Pfostensteckverbinder mit KANDA/STK200 Steckerbelegung verwendet. Rechts daneben befindet sich noch ein Kurzhubtaster als RESET Knopf.</p>
<h2>Aussichten</h2>
<p>Es fehlen derzeit noch die Liniensensoren. Diese werden dann, wie die Infrarot Schnittstelle, &#252;ber Jumper steckbar sein. Geplant ist weiterhin eine I2C Porterweiterung mit ein paar IS471 als IR Kollisionsdetektoren. Auch ein I2C A/D Wandler w&#228;re eine sinnvolle Erweiterung. Eventuell w&#228;re auch ein Co-Prozessor (als I2C Slave) besser als die I2C Chips mal sehen.</p>
<p>Ansonsten w&#252;nsche ich meinen Lesern ein frohes Weihnachtsfest.</p>
<p>Einen aktualisierten Artikel zu diesem Thema findet man im <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/AsuroErweiterung" class="liexternal">AsuroWiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
