<?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; Mikrocontroller</title>
	<atom:link href="http://www.robotfreak.de/blog/category/mikrocontroller/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Arduino und mehr</description>
	<lastBuildDate>Mon, 23 Jan 2012 21:13:12 +0000</lastBuildDate>
	<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>Android Open Accessory DIY Demo Kit</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/android-open-accessory-diy-demo-kit/603</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/android-open-accessory-diy-demo-kit/603#comments</comments>
		<pubDate>Mon, 16 May 2011 20:25:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[ADK]]></category>
		<category><![CDATA[Open Accessory]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=603</guid>
		<description><![CDATA[Auf der Google I/O 2011 Konferenz wurde das neue Android Open Accessory Development Kit (ADK) vorgestellt. Da die vorgestellten Entwickler Boards zu teuer bzw. nicht verf&#252;gbar sind, m&#246;chte ich hier zeigen wie man sich sein eigenes ADK Demo Board mit einem normalen Arduino Uno Board baut. Das ADK dient dazu, intelligentes Zubeh&#246;r an sein Android [...]]]></description>
			<content:encoded><![CDATA[<p>Auf der <a href="http://www.google.com/events/io/2011/index-live.html" class="liexternal">Google I/O 2011</a> Konferenz wurde das neue<a href="http://developer.android.com/guide/topics/usb/adk.html" class="liexternal"> Android Open Accessory Development Kit (ADK)</a> vorgestellt. Da die vorgestellten Entwickler Boards zu teuer bzw. nicht verf&#252;gbar sind, m&#246;chte ich hier zeigen wie man sich sein eigenes ADK Demo Board mit einem normalen Arduino Uno Board baut.<br />
<a href="http://lh4.ggpht.com/_9e10QjiGiuE/Tc2WzeeNmvI/AAAAAAAAD2w/g9j3y93YVwA/IMG_2071.JPG" title="IMG_2071.JPG" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/_9e10QjiGiuE/Tc2WzeeNmvI/AAAAAAAAD2w/g9j3y93YVwA/h400/IMG_2071.JPG" alt="IMG_2071.JPG" title="IMG_2071.JPG" class="alignnone" width="400" /></a><br />
<span id="more-603"></span><br />
Das ADK dient dazu, intelligentes Zubeh&#246;r an sein Android Handy anzuschliessen. Das kann z.B. eine Ladestation sein, die das Handy aufl&#228;dt und zudem beim Anschliessen ein besonderes Programm auf dem Handy startet.<br />
Damit das ganze funktioniert tauschen App und Zubeh&#246;r eine eindeutige Kennung aus damit die richtige App zum entsprechenden Zubeh&#246;r ge&#246;ffnet wird. Die Kommunikation l&#228;uft &#252;ber USB ab, wobei das Handy als USB client l&#228;uft und das Zubeh&#246;rteil als USB host.<br />
Das ADK wird nur von der neuesten Android Firmware unterst&#252;tzt, dies ist die v2..3.4 f&#252;r Handys und die v3.1 f&#252;r Tabletts. Deshalb l&#228;uft das ganze auch  nur auf wenigen Android Handys wie das Nexus One und das Nexus S. </p>
<p>Ich z&#228;hle zu den gl&#252;cklichen Nexus One Besitzern, allerdings mit einer Vodafone  Firmware der Version v2.1. So beschloss ich kurzerhand das Handy zu rooten um von der Vodafone Firmware wegzukommen zu einer aktuellen Google Firmware.  Das ging recht problemlos und innerhalb einer Stunde war die aktuelle Firmware auf meinem N1. Die Vorgehensweise zum Updaten kann man unter<a href="http://www.android-hilfe.de/nexus-one/59959-6-methoden-fuer-jeden-auf-die-stock-us-frg83d-upzudaten-alles-ohne-garantieverlust.html" class="liexternal"> Android-Hilfe.de</a>  nachlesen.</p>
<p>Die <a href="http://developer.android.com/guide/topics/usb/adk.html" class="liexternal">ADK Seite</a> beschreibt, was alles ben&#246;tigt wird um mit dem Accessory mode zu beginnen. Aus dem ADK package wurde die Android DemoKit App ohne &#196;nderungen &#252;bernommen. Anstelle des DemoKits wird ein selbstgebasteltes DemoKit verwendet, bestehend aus einem Arduino Uno, einem, <a href="http://www.sparkfun.com/products/9947" class="liexternal">Sparkfun USB Host</a> shield und ein selbstgebautes IO shield.</p>
<p>Achtung: Das Sparkfun Host shieldarbeitet nicht mit einem Ardunio Mega oder Mega2560 wegen der verschiedenen SPI pins. Man kann aber das USB host shield v2.0 von <a href="http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino/" class="liexternal">Circuits@home</a>  f&#252;r alle Arduino boards verwenden.Das Board ist allerdings etwas teuerer (40$) als das Sparkfun Shield (25$).</p>
<p>Die Arduino Firmware wurde auf den Arduino Uno bzw. Mega durch <a href="http://romfont.com/" class="liexternal">Romfont alias Inopia</a> vorgenommen, dem Entwickler der <a href="http://code.google.com/p/microbridge/" class="liexternal">MicroBridge </a>(Android zu Arduino Bridge via ADB). Weil Romfont kein Handy mit v2.3.4 zur Verf&#252;gung hatte, bat er auf seinem Blog um <a href="http://romfont.com/2011/05/12/google%E2%80%99s-open-accessory-development-kit-on-standard-arduino-hardware/" class="liexternal">Unterst&#252;tzung</a> um die Firmware zu testen. Die Firmware funktionierte bei mir nach einigen kleineren Modifikationen.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/Tc2WvlcezUI/AAAAAAAAD2g/kfMi8EnhVmM/IMG_2062.JPG" title="IMG_2062.JPG" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/Tc2WvlcezUI/AAAAAAAAD2g/kfMi8EnhVmM/h400/IMG_2062.JPG" alt="IMG_2062.JPG" title="IMG_2062.JPG" class="alignnone" width="400" /></a> </p>
<p>Stapelbare Headers has been used on the USB Host shield, so the IO shield can be attached above. At twurden verwendet um das USB Host shield und das IO Shield auf dem Arduino zu stapeln. Im Moment steckt daran ein micro Servo, eine RGB LED, eine rote LED (anstelle eines Relais) und a Sharp GP2D12 Distanzsensor. Zudem wird noch eine externe Stromquelle ben&#246;tigt.</p>
<p><a href="http://lh4.ggpht.com/_9e10QjiGiuE/Tc2WxZ6hOTI/AAAAAAAAD2o/15LC_URU5Ws/IMG_2069.JPG" title="IMG_2069.JPG" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/_9e10QjiGiuE/Tc2WxZ6hOTI/AAAAAAAAD2o/15LC_URU5Ws/h400/IMG_2069.JPG" alt="IMG_2069.JPG" title="IMG_2069.JPG" class="alignnone" width="400" /></a> </p>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/Tc2Wycg0uTI/AAAAAAAAD2s/ZbufrHpsBpw/IMG_2070.JPG" title="IMG_2070.JPG" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/_9e10QjiGiuE/Tc2Wycg0uTI/AAAAAAAAD2s/ZbufrHpsBpw/h400/IMG_2070.JPG" alt="IMG_2070.JPG" title="IMG_2070.JPG" class="alignnone" width="400" /></a> </p>
<h2>Videos</h2>
<p>Das Video zeigt einen ersten Test des  DIY DemoKit. Alles funktioniert ganz prima. Nach dem Einschalten des DemoKits geht das Handy in den Lade Modus. Schaltet man die Tastensperre aus, kommt die Abfrage ob man die App f&#252;r das erkannte Zubeh&#246;r starten will (das kann man auch durch Setzen des Hakens automatisieren). Dann startet die App. Zwischen den beiden Fenstern (Input und Output) kann man wechseln 7und sich die Werte der Eing&#228;nge anschauen oder die Ausg&#228;nge bedienen.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/BqD5-chWdDY" frameborder="0" allowFullScreen="true"> </iframe> </p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://developer.android.com/guide/topics/usb/adk.html" class="liexternal">Getting started with ADK</a></li>
<li><a href="http://romfont.com/" class="liexternal">Romfont&#8217;s Blog</a></li>
<li><a href="http://code.google.com/p/microbridge/" class="liexternal">MicroBridge Code</a></li>
<li><a href="http://letsmakerobots.com/node/26839" class="liexternal">mein Letsmakerobots Blog</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/android-open-accessory-diy-demo-kit/603/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Photoduino</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/photoduino-3/504</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/photoduino-3/504#comments</comments>
		<pubDate>Tue, 04 Jan 2011 20:58:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[Photoduino]]></category>
		<category><![CDATA[Zeitraffer]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=504</guid>
		<description><![CDATA[F&#252;r mein zweites Hobby, Fotografie, ben&#246;tige ich ein Intervalometer f&#252;r Zeitraffer Aufnahmen. Vor einer kompletten Neuentwicklung suchte ich zuerst nach einer fertigen Arduino-basierten L&#246;sung und fand 2 interessante Projekte. All-in-one Remote Photoduino Beide Projekte sind sich sehr &#228;hnlich. F&#252;r mich schien Photoduino die beste Wahl f&#252;r meine Bed&#252;rfnisse zu sein. Das Wichtigste f&#252;r mich: Zeitraffer [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r mein zweites Hobby, Fotografie, ben&#246;tige ich ein Intervalometer f&#252;r Zeitraffer Aufnahmen. Vor einer kompletten Neuentwicklung suchte ich zuerst nach einer fertigen Arduino-basierten L&#246;sung und fand 2 interessante Projekte.
<ul>
<li><a href="http://www.mindspring.com/~tom2000/Projects/AI-1_Remote/AI-1_Remote.html" class="liexternal">All-in-one Remote</a></li>
<li><a href="http://code.google.com/p/photoduino/" class="liexternal">Photoduino</a></li>
</ul>
<p><a href="http://lh4.ggpht.com/_9e10QjiGiuE/TOgd6UvuMdI/AAAAAAAADWM/Ig1tUqCYlwY/IMG_0991.JPG" title="IMG_0991.JPG" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/_9e10QjiGiuE/TOgd6UvuMdI/AAAAAAAADWM/Ig1tUqCYlwY/h500/IMG_0991.JPG" alt="IMG_0991.JPG" title="IMG_0991.JPG" class="alignnone" width="500" /></a><br />
<span id="more-504"></span><br />
Beide Projekte sind sich sehr &#228;hnlich. F&#252;r mich schien Photoduino die beste Wahl f&#252;r meine Bed&#252;rfnisse zu sein. Das Wichtigste f&#252;r mich:
<ul>
<li>Zeitraffer Funktion</li>
<li>externe Trigger Funktionen f&#252;r mikrofon oder Lichtschranken</li>
</ul>
<p>Aber Photoduino bietet aber noch eine Menge mehr an Features:</p>
<ul>
<li>Druck Sensor</li>
<li>2fach Blitzger&#228;te Ausl&#246;ser</li>
<li>alle Kombinationen von Ausl&#246;sern f&#252;r Kamera und Blitzger&#228;te Funktionen</li>
</ul>
<h2>Photoduino Shield</h2>
<p>Die Photoduino Platine bestellte ich von der <a href="http://code.google.com/p/photoduino/wiki/HowToBuy" class="liexternal">Photoduino Seite</a>. Die meisten der ben&#246;tigten Teile sind sehr gebr&#228;uchlich, mit Ausnahme des Thyristors SCR BT149D. Kein H&#228;ndler hat den und ich habe zun&#228;chst keinen Ersatz Typ gefunden (inzwischen habe ich den <a href="http://www.reichelt.de/?ACTION=3;ARTICLE=5848;PROVID=2402" class="liexternal">BRY55</a> bei Reichelt entdeckt, der k&#246;nnte funktionieren). Auf anderen Schaltpl&#228;ne, die man im Netz so findet, werden Optokoppler anstelle von Thyristoren verwendet. Also beschloss ich, die 4 Thyristoren durch einem 4-fach Optokoppler zu ersetzen.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TOgduRU4JbI/AAAAAAAADVk/J8BoRgggrNA/IMG_0979.JPG" title="IMG_0979.JPG" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TOgduRU4JbI/AAAAAAAADVk/J8BoRgggrNA/h500/IMG_0979.JPG" alt="IMG_0979.JPG" title="IMG_0979.JPG" class="alignnone" width="500" /></a> </p>
<p>Das Ergebnis ist hier abgebildet. Ich habe einen Adapter mit dem Optokoppler auf Lochraster aufgebaut. Davor testete ich den Aufbau auf dem Steckbrett und es funktionierte soweit gut. Nur den Blitz konnte ich nicht testen, mangels Verf&#252;gbarkeit.</p>
<p><a href="http://lh5.ggpht.com/_9e10QjiGiuE/TOgdxmd2hQI/AAAAAAAADVw/qoN9iD_7aCA/IMG_0982.JPG" title="IMG_0982.JPG" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TOgdxmd2hQI/AAAAAAAADVw/qoN9iD_7aCA/h500/IMG_0982.JPG" alt="IMG_0982.JPG" title="IMG_0982.JPG" class="alignnone" width="500" /></a> </p>
<h3>Optokoppler Schaltung</h3>
<p>Da einige Leute die Ersatz Schaltung mit dem Optokoppler haben wollten, hier noch das Schaltbild und ein Layout Entwurf:<br />
<a href="http://lh6.ggpht.com/-eWQpLwVLnok/TeuvE4oPyLI/AAAAAAAAD5c/qpCshl2zCGs/photoduino-optocoupler.jpg" title="photoduino-optocoupler.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/-eWQpLwVLnok/TeuvE4oPyLI/AAAAAAAAD5c/qpCshl2zCGs/h400/photoduino-optocoupler.jpg" alt="photoduino-optocoupler.jpg" title="photoduino-optocoupler.jpg" class="alignnone" width="400" /></a><br />
Auf dem Photoduino Shield entfallen dadurch die Widerst&#228;nde R5..8 und dir Thyristoren T1..4. Aus Platzgr&#252;nden habe ich SMD  Widerst&#228;nde unten direkt am IC Sockel gel&#246;tet. Die Ausg&#228;nge des Optokopplers m&#252;ssen jeweils &#252;berkreuz mit den Thyristor Anschl&#252;ssen auf dem Shield verbunden werden. Zus&#228;tzlich mu&#223; noch eine Masseverbindung gel&#246;tet werden.<br />
<a href="http://lh5.ggpht.com/-wWkOz8K9HoY/TeuvFxEOLuI/AAAAAAAAD5g/mBrBWK4DUIY/photoduino-optocoupler-layout.jpg" title="photoduino-optocoupler-layout.jpg" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/-wWkOz8K9HoY/TeuvFxEOLuI/AAAAAAAAD5g/mBrBWK4DUIY/h400/photoduino-optocoupler-layout.jpg" alt="photoduino-optocoupler-layout.jpg" title="photoduino-optocoupler-layout.jpg" class="alignnone" width="400" /></a> </p>
<h4>St&#252;ckliste:</h4>
<ul>
<li>4 x SMD Widerstand 470Ohm</li>
<li>1 x 4fach Optokoppler PC847</li>
<li>1 x IC Sockel 16polig</li>
<li>1 St&#252;ck Lochraster doppelseitig Kupferkaschiert</li>
</ul>
<h2>Zusammenbau</h2>
<p>Alle Teile sollten in ein sch&#246;nes Geh&#228;use passen. Ich fand die <a href="http://www.reichelt.de/?ACTION=3;ARTICLE=50429;PROVID=2402" class="liexternal">Euro-Box</a> von Reichelt perfekt f&#252;r diesen Job. Bohr-Masken wurden mit SketchUp erstellt und ausgedruckt. Das Papier wird auf das Geh&#228;use gelegt, festgeklebt und die L&#246;cher direkt durch das Papier gebohrt. Der schnellste und einfachste Weg, dies zu tun.<br />
Lediglich der rechteckige Ausschnitt des LCD Moduls ist etwas m&#252;hsamer zu erstellen. Ein Dremel mit Mini Flex Scheibe zum Groben ausschneiden und eine Feile f&#252;r die Feinarbeit, fertig!<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TOgdvR_4xPI/AAAAAAAADVo/qbVsKZku97k/IMG_0980.JPG" title="IMG_0980.JPG" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TOgdvR_4xPI/AAAAAAAADVo/qbVsKZku97k/h500/IMG_0980.JPG" alt="IMG_0980.JPG" title="IMG_0980.JPG" class="alignnone" width="500" /></a><br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TOgdwhuOtQI/AAAAAAAADVs/H6yT-xtg8bE/IMG_0981.JPG" title="IMG_0981.JPG" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TOgdwhuOtQI/AAAAAAAADVs/H6yT-xtg8bE/h500/IMG_0981.JPG" alt="IMG_0981.JPG" title="IMG_0981.JPG" class="alignnone" width="500" /></a><br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TOgd0elcBFI/AAAAAAAADV4/hpv_jG665-s/IMG_0984.JPG" title="IMG_0984.JPG" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TOgd0elcBFI/AAAAAAAADV4/hpv_jG665-s/h500/IMG_0984.JPG" alt="IMG_0984.JPG" title="IMG_0984.JPG" class="alignnone" width="500" /></a> </p>
<h2>Anschl&#252;sse</h2>
<p>F&#252;r die externe Anschl&#252;sse wurden 7 Cinch-Buchsen und 1 Stereo 3,5 mm Klinke verwendet.<br />
<a href="http://lh4.ggpht.com/_9e10QjiGiuE/TQkpsqac_OI/AAAAAAAADYU/UiOx7tzqpvI/IMG_0993.JPG" title="IMG_0993.JPG" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/_9e10QjiGiuE/TQkpsqac_OI/AAAAAAAADYU/UiOx7tzqpvI/h500/IMG_0993.JPG" alt="IMG_0993.JPG" title="IMG_0993.JPG" class="alignnone" width="500" /></a><br />
Die 3.5mm Stereo-Buchse wird f&#252;r die Steuerung von Fokus und Ausl&#246;ser der Kamera verwendet. Ich musste nur eine g&#252;nstige Canon N3 kompatible Fernbedienung f&#252;r mein Kamera Modell erwerben und mit einem Stereo-Klinkenstecker versehen.</p>
<h2>Test Aufnahmen</h2>
<p>Hier ist eine Testaufnahme mit einem Mikrofon als externen Ausl&#246;ser. Der Sound des ersten Aufpralls l&#246;st die Kamera as.<br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TQkptO-74_I/AAAAAAAADYY/uw8WCZwWYTs/IMG_1048.JPG" title="IMG_1048.JPG" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TQkptO-74_I/AAAAAAAADYY/uw8WCZwWYTs/h500/IMG_1048.JPG" alt="IMG_1048.JPG" title="IMG_1048.JPG" class="alignnone" width="500" /></a> </p>
<h2>Weitere Arbeiten</h2>
<p>Im Moment funktioniert die LCD-Hintergrundbeleuchtung nicht. Mein LCD-Modul hat eine andere Pinbelegung f&#252;r die Hintergrundbeleuchtung. Das muss behoben werden. Die Hintergrundbeleuchtung wird direkt &#252;ber einen Digital IO betrieben. Besser w&#228;re es, hier einen Transistor zu verwenden, Stromaufnahme kann sonst zu hoch sein. Gleiches gilt f&#252;r die IR-Lichtschranke. Vielleicht w&#228;re ein Redesign des Photoduino Board eine weitere Aufgabe f&#252;r die Zukunft.</p>
<p>Mit einem externen Blitzger&#228;t k&#246;nnte man zusammen mit dem Photoduino einige kreative Fotoprojekte wie Highspeed Fotografie realisieren (Platzende Ballons, brechendes Glas etc.). Der Ausl&#246;ser der Kamera ist daf&#252;r einfach zu tr&#228;ge, ein geladener Blitz z&#252;ndet praktisch ohne Verz&#246;gerung. So etwas mu&#223; ich mir unbedingt zulegen. Weitere Photos, die mit Hilfe des Photoduino gemacht wurden, findet man in der <a href="http://www.flickr.com/groups/photoduino/" class="liexternal">Flickr Photoduino Group</a>.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://code.google.com/p/photoduino/" class="liexternal">Photoduino</a></li>
<li><a href="http://blog.makezine.com/archive/2010/09/photoduino_a_camera-controlling_ard.html" class="liexternal">Photoduino Artikel auf Make:Online</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157625432671846/" class="liexternal">Photoduino Album auf Flickr</a></li>
<li><a href="http://www.flickr.com/groups/photoduino/" class="liexternal">Flickr Photoduino Group</a></li>
<li><a href="https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=3451;PROVID=2084" class="liexternal">Reichelt Warenkorb</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/photoduino-3/504/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pacman Roboter</title>
		<link>http://www.robotfreak.de/blog/robotik/pacman-roboter/438</link>
		<comments>http://www.robotfreak.de/blog/robotik/pacman-roboter/438#comments</comments>
		<pubDate>Wed, 17 Nov 2010 12:29:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Microframework]]></category>
		<category><![CDATA[.NETMF]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FEZ Domino]]></category>
		<category><![CDATA[USBizi]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=438</guid>
		<description><![CDATA[Pacman ist ein kleiner autonomer Roboter. Er wird gesteuert von einem FEZ Domino Board auf dem das .NET micro framework l&#228;uft. Programmiert wird er in C# mit Visual Studio (Express oder Standard). Sein Anwendungsbereich umfasst derzeit: Hindernissen erkennen und ausweichen, einer Wand folgen, einer Linie folgen. Pacman war Teilnehmer am Dagu Robots beginner chassis Wettbewerb [...]]]></description>
			<content:encoded><![CDATA[<p>Pacman ist ein kleiner autonomer Roboter. Er wird gesteuert von einem <a href="http://www.tinyclr.com/hardware/1/fez-domino/" class="liexternal">FEZ Domino</a> Board auf dem das .NET micro framework l&#228;uft. Programmiert wird er in C# mit Visual Studio (Express oder Standard). Sein Anwendungsbereich umfasst derzeit:</p>
<ul>
<li>Hindernissen erkennen und ausweichen,</li>
<li>einer Wand folgen,</li>
<li>einer Linie folgen.</li>
</ul>
<p><img src="http://farm5.static.flickr.com/4154/4956103079_8ecfbc5cb6.jpg" alt="Pacman" /><br />
<span id="more-438"></span><br />
Pacman war Teilnehmer am <a href="http://letsmakerobots.com/node/20430" class="liexternal">Dagu Robots beginner chassis Wettbewerb</a> von <a href="http://letsmakerobots.com" class="liexternal">letsmakerobots </a>und belegte den 2. Platz (von 2 Teilnehmern)</p>
<h2>Hardware</h2>
<ul>
<li><a href="http://www.tinyclr.com/hardware/1/fez-domino/" class="liexternal">FEZ Domino</a> Board</li>
<li><a href="http://www.sparkfun.com/products/9815" class="liexternal">ArduMoto</a> Board von Sparkfun</li>
<li>DIY Linien Sensor mit 4 x CNY70 IR Opto Reflex Sensoren</li>
<li>Sharp GP2D120 IR Sensor f&#252;r Wand folgen</li>
<li><a href="http://www.sparkfun.com/products/639" class="liexternal">Maxbotix EZ1</a> US Sensor f&#252;r Hindernis Erkennung</li>
<li><a href="http://www.robotshop.com/dagu-2wd-begginners-robot-chassis-3.html" class="liexternal">DAGU 2WD</a> Beginners Robot chassis</li>
<li>2 x DAGU motors (Solarbotics GM8 clone)</li>
<li>Piezo Lautsprecher f&#252;r Sound Effekte</li>
</ul>
<p><img src="http://farm5.static.flickr.com/4081/4956110417_36a2b72da8.jpg" alt="Pacman" /><br />
<img src="http://farm5.static.flickr.com/4133/4956702314_662571b2c6.jpg" alt="Pacman" /><br />
<img src='http://farm5.static.flickr.com/4118/4956689920_d7b1eb0e54.jpg' alt='Pacman'/></p>
<h2>Schematics</h2>
<p>Fez Domino Board Verdrahtung<br />
<img src="http://farm5.static.flickr.com/4084/4964463027_17217ae568.jpg" alt="Pacman Schematics" /><br />
Liniensensor<br />
<img src="http://farm5.static.flickr.com/4090/4965065764_ce8a074f6b.jpg" alt="Pacman Schematics" /></p>
<h2>Software</h2>
<p>Die Software findet man bei <a href="http://code.google.com/p/robotfreak/" class="liexternal">Google code</a>.</p>
<h2>Videos</h2>
<p>Das folgende  Video zeigt Pacman als Linienfolger.<br />
<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/UUuLf2AOm-8" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/UUuLf2AOm-8"></embed></object><br />
Das n&#228;chste Video zeigt Pacman als Linienfolger und beim Hinderniss ausweichen.<br />
<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/gFVTiVicrs4" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/gFVTiVicrs4"></embed></object><br />
Das letzte VIdeo zeigt eine verbesserte Version f&#252;r den Dagu beginners robot Wettbewerb<br />
<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/Xw_46NPSzuo" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/Xw_46NPSzuo"></embed></object></p>
<p>Links</p>
<ul>
<li><a href="http://www.tinyclr.com/forum/7/858/" class="liexternal">Pacman im tinyCLR forum</a></li>
<li><a href="http://letsmakerobots.com/node/21708" class="liexternal">Pacman bei letsmakerobots</a></li>
<li><a href="http://code.google.com/p/robotfreak/" class="liexternal">Google Code page</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157624751118785/" class="liexternal">Pacman Flickr album</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/pacman-roboter/438/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mikrocontroller mit .NET und C# programmieren</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/mikrocontroller-mit-net-und-c-programmieren/396</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/mikrocontroller-mit-net-und-c-programmieren/396#comments</comments>
		<pubDate>Fri, 08 Oct 2010 20:25:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Microframework]]></category>
		<category><![CDATA[.NETMF]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FEZ Domino]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=396</guid>
		<description><![CDATA[Seit einiger Zeit beobachte ich nun schon den Markt f&#252;r Mikrocontroller, auf denen .NET l&#228;uft, genauer gesagt .NET micro framework oder kurz NETMF. Programmiert werden diese Boards ausschlie&#223;lich in C#. Nun habe ich zugeschlagen und mir ein FEZ Domino Board besorgt. Das kostet zwar 75.- €, hat daf&#252;r aber auch eine durchaus &#252;ppige Ausstattung mit [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einiger Zeit beobachte ich nun schon den Markt f&#252;r Mikrocontroller, auf denen .NET l&#228;uft, genauer gesagt <a href="http://www.microsoft.com/netmf/default.mspx" class="liexternal">.NET micro framework</a> oder kurz NETMF. Programmiert werden diese Boards ausschlie&#223;lich in C#. Nun habe ich zugeschlagen und mir ein <a href="http://www.tinyclr.com/hardware/1/fez-domino/" class="liexternal">FEZ Domino</a> Board besorgt. Das kostet zwar 75.- €, hat daf&#252;r aber auch eine durchaus &#252;ppige Ausstattung mit USB Host und microSD Card. Mal sehen ob das auch f&#252;r einen Roboter taugt.<br />
<img src="http://farm5.static.flickr.com/4080/4883054422_42f637bd6f.jpg" alt="FEZ Domino" /><br />
<span id="more-396"></span><br />
Ok, was soll man davon halten ein Microsoft Betriebssystem auf einem vergleichsweise schwachbr&#252;stigen Mikrocontroller. Kann das funktionieren?</p>
<h2>Hardware</h2>
<h3>Features</h3>
<p>Zuerst einmal die technischen Daten:</p>
<ul>
<li>Microsoft&#8217;s .NET Micro Framework 4.1</li>
<li>72Mhz NXP LPC2388 ARM7 Processor</li>
<li>Arduino Pin kompatibel</li>
<li>Arduino shield kompatibel</li>
<li>Debugging und Programmierung &#252;ber USB unter Visual Studio 2010 (auch mit VS2010 Express)</li>
<li>21 digital IOs, 6 analog Inputs</li>
<li>3xUART, 1xI2C, 2xSPI, 1xCAN</li>
<li>3.3V IOs, 5V tolerant</li>
</ul>
<h3></h3>
<p>Der Prozessor stammt von NXP. Es ist ein <a href="http://www.nxp.com/documents/data_sheet/LPC2388.pdf" class="lipdf">LPC2388</a> mit ARM7 core. 512kB FLASH und 96kB RAM. Darauf befindet sich bereits der .NETMF von <a href="http://www.ghielectronics.com/" class="liexternal">GHI electronic</a>. Mit .NETMF hei&#223;t der Chip dann <a href="http://www.ghielectronics.com/product/113" class="liexternal">USBizi</a> und kann auch so von GHI bzw. tinyCLR f&#252;r eigene Designs bezogen werden.</p>
<h3>Arduino kompatibel</h3>
<p>Das Schlagwort Arduino kompatibel bedarf weiterer Erkl&#228;rung. Das FEZ Domino board ist von den Abmessungen und vom Pinout identisch zum Arduino. Die meisten Arduino Shields laufen sogar, entsprechende Treiber vorausgesetzt. Die Sonderfunktionen der Arduino IOs wie PWM und SPI, sowie die UART liegen fast alle auf identischen Pins. Auch die 6 analogen Inputs sind vorhanden. Lediglcih die I2C Schnittstelle liegt auf den Digital Pins 2 und 3 (Analog 4 und 5 beim Arduino). Obwohl der ARM7 Prozessor mit 3,3V l&#228;uft sind die DIgital Pins 5V tolerant. Als Ausgangspegel liefern sie aber nur 3,3V. Der zul&#228;ssige Ausgangstrom liegt bei nur 4mA (20mA beim Arduino).</p>
<h3>USB Schnittstelle</h3>
<p>Die USB Host Schnittstelle ist auf einem Standard USB A Stecker herausgef&#252;hrt und unterst&#252;tzt Standard Ger&#228;te wie Tastatur, Maus, Massenspeicher. Auch USB Ger&#228;te mit virtuellen seriellem Port (wie z.B. der Arduino) lassen sich ohne weiteres Dar&#252;ber ansprechen.<br />
WLAN und Bluwetooth Dongle werden allerdimgs nicht unterst&#252;tzt.<br />
Die USB Host Schnittstelle arbeitet v&#246;llig unabh&#228;ngig von der USB client Schnittstelle, die auf einem microUSB Stecker herausgef&#252;hrt ist. Diese Schnittstelle dient ausschlieslich zum &#220;bertragen der Programme und zum Debuggen. Allerdings kann &#252;ber den Mode Jumper Die Debug Schnittstelle als normale USB HID Schnittstelle verwendet werden. Dann mu&#223; man &#252;ber die erste serielle Schnittstelle debuggt werden.</p>
<h3>micro SD Card</h3>
<p>Die microSD Card Schnittstelle wird im &#8220;echten&#8221; SD-Card Modus angesprochen, d.h. 4 Datenbits und niocht wie sonst &#252;blich im 1Bit SPI MNode. Dadurch werden sehr hohge Datenraten sowohl beim Schreiben wie beim Lesen erzielt. Als SD Karten Format wird FAT32 erwartet. Es werden alle g&#228;ngigen SD Karten einschlie&#223;lich SDHC und beliebiger Gr&#246;&#223;e unterst&#252;tzt.</p>
<h3>Netzwerk</h3>
<p>Obwohl auf dem LPC2388 eine Ethernet Schnittstelle integriert ist, wird diese nicht unterst&#252;tzt. Mit dem aktuellen <a href="http://www.tinyclr.com/beta/" class="liexternal">Beta GHI-SDK</a> werden aber Ethernet Module mit  dem WIZnet W5100 Chipsatz unterst&#252;tzt. Das sind u.a. das <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9026" class="liexternal">SparkFun Arduino Ethernet Shield</a>. Dabei ist ein kompletter TCP/IP Stack implementiert, auch UDP wird unterst&#252;tzt.</p>
<h3>I2C, SPI, UART, CAN, PWM</h3>
<p>Die &#252;blichen Standard Schnittstellen sind nat&#252;rlich auch auf dem FEZ Domino vorhanden. Es gibt eine I2C Schnittstelle auf den Digital Pins 2 und 3. Dazu kommen 2 SPI Schnittstellen und 3 UART Schnittstellen. COM1 liegt auf den digital Pins 0 und 1 wie beim Arduino. Ebenso SPI1 auf den Digital Pins 11,12,13 (wie beim Arduino). COM2 und SPI2 liegen auf einer zus&#228;tzlichen 10 poligen Stiftleiste. Ein CAN Bus Interface  liegt auf den Digital Pin 7 und 4. COM4 als 3. UART Schnittstelle kann zwar zus&#228;tzlich aktiviert werden, geht dann aber auf Kosten von 2 A/D Wandlern (An 2 und 3). Die Digital Pins 5,6,8,9,10 haben PWM als Zusatz Funktion (Pin 3 und Pin 11 wie beim Arduino dagegen nicht). Auf allen Pins kann aber mithilfe von Timer Output Compare zus&#228;tzlich PWM  Funktionalit&#228;t erzeugt werden.</p>
<h2>Software</h2>
<p>Die Software ist schnell installiert und f&#252;gt sich nahtlos in Visual Studio 2010 ein inklusive Smart completion und Debugger. Man klickt auf Run und das Programm wird &#252;ber USB auf die Hardware &#252;bertragen und kann dort ausgef&#252;hrt oder debugged werden. Sehr komfortabel. Zum Erstellen eigener Projekte dienen Templates. Dort w&#228;hlt man einfach nur das Ziel Device aus erh&#228;lt ein lauff&#228;higes Programm Ger&#252;st.</p>
<h3>Was wird ben&#246;tigt</h3>
<ul>
<li><a href="http://www.microsoft.com/express/Downloads/#2010-Visual-CS" class="liexternal">Visual Studio 2010 C# Express</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=cff5a7b7-c21c-4127-ac65-5516384da3a0" class="liexternal">.NET micro framework 4.1 SDK</a></li>
<li><a href="http://www.ghielectronics.com/downloads/NETMF/GHI%20NETMF%20v4.1%20SDK.zip" class="lizip">GHI SDK 4.1</a></li>
<li><a href="http://www.ghielectronics.com/downloads/general/teraterm_utf8-4.53.zip" class="lizip">TeraTerm</a> &#8211; Zum updaten der Firmware</li>
</ul>
<p>Auf der <a href="http://www.tinyclr.com/hardware/1/fez-domino/" class="liexternal">tinyCLR Seite</a> kann man sich durch die Komponenten klicken und findet dort Treiber zu den g&#228;ngisten Sensoren, Aktoren und Shields. Dazu gibt es noch ein <a href="http://www.microframeworkprojects.com/index.php?title=Main_Page" class="liexternal">Wiki mit User-Projekten</a> mit Quellcodes zum Download.</p>
<h3>Multithreading</h3>
<p>Ein tolles Feature von .NETMF is multithreading. Obwohl .NETMF kein Echtzeit Betriebssytem lassen sich mehere Threads erzeigen und laufen quasi parallel.</p>
<h3>Hello world in .NETMF</h3>
<p>Here is a simple program that shows a blinking LED in .NETMF.</p>
<pre class="brush:C#">
using System;
using System.Threading;

using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

using GHIElectronics.NETMF.FEZ;

namespace FEZ_Domino_Application1
{
  public class Program
  {
    public static void Main()
    {
      // Blink board LED

      bool ledState = false;

      OutputPort led = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, ledState);

      while (true)
      {
        // Sleep for 500 milliseconds
        Thread.Sleep(500);

        // toggle LED state
        ledState = !ledState;
        led.Write(ledState);
      }
    }

  }
}
</pre>
<h2>Nachteile</h2>
<p>Bei allen Vorteilen die NETMF und das FEZ Domino board bieten, sollten auch ein paar Nachteile erw&#228;hnt werden:</p>
<ul>
<li>Verwendung vieler Parallel Pins. Ein LCD Modul im 4Bit Mode anzuschliessen ist schon extrem aufw&#228;ndig. Da Pins alle einzeln als separate Objekte betrachtet werde, es gibt keine Gruppierungen (Arrays, Nibbles oder Bytes) von Pins</li>
<li>Nur 3,3V Ausgangsspannung. Kann zu Problemen besonders bei FET f&#252;hren, die bei 5V noch funktionieren aber nicht mehr bei 3,3V</li>
<li>Nur 4mA Ausgangsstrom. LEDs die 20mA ben&#246;tigen sollte man immer &#252;ber Transistoren anschliessen, oder LowCurrent LEDs verwenden.</li>
<li>Kein microDelay. Exakte Timings die Delays im us Bereich ben&#246;tigen, sind kaum machbar</li>
<li>Pin Toggle Zeiten. Togglen von Pins per Software dauert mehrere us. Dazu kommt zyklisch (alle 18,2ms) noch die Garbadge Collection dazu, die f&#252;r Verz&#246;gerungen von einigen ms f&#252;hren kann.</li>
</ul>
<h2>Alternativen</h2>
<p>Nebem dem FEZ Domino gibt es noch einige andere Boards im Arduino Form Faktor, z.B.:</p>
<ul>
<li>das <a href="http://www.tinyclr.com/hardware/16/fez-panda/" class="liexternal">FEZ Panda</a>. Sehr viel preiswerter als das FEZ Domino, daf&#252;r mit 69 IOs aber ohne USB Host und optionaler microSD Card f&#252;r 35$. </li>
<li>das <a href="http://www.tinyclr.com/hardware/2/fez-mini/" class="liexternal">FEZ Mini</a> board. Von der Belegung Parallax BS2 bzw. Arduino Mini pin kompatibel.</li>
<li>Vom Hersteller Secret Labs gibt es die Netduino Reihe mit dem <a href="http://netduino.com/" class="liexternal">Netduino</a> und dem </li>
<li><a href="http://www.netduino.com/netduinoplus/specs.htm" class="liexternal">NetDuino+</a> mit Ethernet und microSD Card. Preislich sicher sehr interessant, weitere Erfahrungen habe ich noch nicht damit gemacht, da die Boards in Europa kaum verf&#252;gbar sind.</li>
</ul>
<p>Zu erw&#228;hnen w&#228;re noch das <a href="http://www.tinyclr.com/dl/" class="liexternal">FEZ Open</a> Projekt .NETMF als Open Source Projekt. Klingt interessant aber noch im Beta Stadium. Mal sehen was daraus wird. L&#228;uft derzeit auf dem <a href="http://www.tinyclr.com/hardware/16/fez-panda/" class="liexternal">FEZ Panda</a> und der <a href="http://www.tinyclr.com/forum/17/" class="liexternal">FEZ Hacker</a> Plattform.</p>
<h2>Fazit</h2>
<p>Mich hat das .NET Fieber gepackt. Es macht einfach riesigen Spa&#223; damit zu programmieren. Es wird schwer werden wieder mit dem Arduino zu arbeiten, wenn man sich erst mal in die .NET Welt gewagt hat. Aber es gibt sicher Anwendungen geben, f&#252;r die Arduino die bessere Wahl ist und bleibt.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.tinyclr.com" class="liexternal">tinyCLR </a>- Hersteller der FEZ boards</li>
<li><a href="http://www.ghielectronics.com/" class="liexternal">GHI electronic</a>- Hersteller des USBizi Chipsatzes</li>
<li><a href="http://www.microsoft.com/netmf/default.mspx" class="liexternal">Microsoft .NET micro framework</a></li>
</ul>
<h3>Bezugsquellen:</h3>
<ul>
<li><a href="http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=516" class="liexternal">Cool Components</a></li>
<li><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9797" class="liexternal">Sparkfun</a></li>
<li><a href="http://www.tinkersoup.de/product_info.php?products_id=297" class="liexternal">Tinkersoup</a></li>
<li><a href="http://www.watterott.com/de/FEZ-Domino" class="liexternal">Watterott</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/mikrocontroller-mit-net-und-c-programmieren/396/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 100x160mm) 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 &#8216;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>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 [...]]]></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 started [...]]]></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>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 [...]]]></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-Nunchuk 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>2</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 [...]]]></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" rel="lightbox[44]" title="BTM-222 Schematic" 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" rel="lightbox[44]" title="BTM-222 Stromversorgung" 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 />
<strong>Korrektur vom 31.12.2010:</strong><br />
Letztendlich gen&#252;gt der Befehl &#8216;ATH1&#8242; und nicht &#8216;ATH0&#8242; wie vorher beschrieben, 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;ATH1&#8242; ist nicht notwendig, dass ist bereits die Default Einstellung. 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.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://zefiryn.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>58</slash:comments>
		</item>
	</channel>
</rss>

