<?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; Arduino</title>
	<atom:link href="http://www.robotfreak.de/blog/tag/arduino/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>DIY Arduino / FEZ shield</title>
		<link>http://www.robotfreak.de/blog/allgemein/diy-arduino-fez-shield/694</link>
		<comments>http://www.robotfreak.de/blog/allgemein/diy-arduino-fez-shield/694#comments</comments>
		<pubDate>Sat, 21 Jan 2012 20:01:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[shield]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=694</guid>
		<description><![CDATA[Des &#246;fteren wurde ich gefragt, wie man selbst ein Arduino Shield herstellen kann und was dazu ben&#246;tigt wird. F&#252;r Roboter Projekte verwende ich diese selbstbebauten Shields sehr oft. Sie sind allerdings so universell, das man sie auch f&#252;r andere Zwecke verwenden kann. Aufgrund des selben Pinouts taugt diese L&#246;sung nicht nur f&#252;r Arduino, sondern auch [...]]]></description>
			<content:encoded><![CDATA[<p>Des &#246;fteren wurde ich gefragt, wie man selbst ein Arduino Shield herstellen kann und was dazu ben&#246;tigt wird. F&#252;r Roboter Projekte verwende ich diese selbstbebauten Shields sehr oft. Sie sind allerdings so universell, das man sie auch f&#252;r andere Zwecke verwenden kann. Aufgrund des selben Pinouts taugt diese L&#246;sung nicht nur f&#252;r Arduino, sondern auch f&#252;r die FEZ Reihe (Panda, Domino), Netduino und andere.<br />
<a href="http://lh3.ggpht.com/-GXIiFoCKXtY/TxnYxz2yXuI/AAAAAAAAErs/P9PHknPunKU/IMG_2429_30_31_tonemapped.tif.jpg" title="IMG_2429_30_31_tonemapped.tif.jpg" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/-GXIiFoCKXtY/TxnYxz2yXuI/AAAAAAAAErs/P9PHknPunKU/s400/IMG_2429_30_31_tonemapped.tif.jpg" alt="IMG_2429_30_31_tonemapped.tif.jpg" title="IMG_2429_30_31_tonemapped.tif.jpg" class="alignnone" width="400" /></a><br />
<span id="more-694"></span></p>
<h3>Einleitung</h3>
<p>Das Shield sollte ein Steckbrett aufnehmen k&#246;nnen und f&#252;r jeden IO &#252;ber eigene Stromversorgungspins f&#252;r Sensoren und Aktoren wie LEDs und Servos verf&#252;gen. Zudem sollten man zwischen verschiedenen Stromversorgungen w&#228;hlen k&#246;nenn. Intern 3.3V und 5V sowie Vin vom Arduino board, zudem noch eine externe Stromversorgung z.B. f&#252;r Servos. &#220;ber Jumper solte w&#228;hlbar sein welche Stromversorgung in welcher Reihe anliegt. Die bei anderen k&#228;uflichen Shields &#252;blichen Steckbretter mit 17 Reihen zu 2&#215;5 Reihen sind mir etwas zu mickrig. Zudem ist kaum Platz f&#252;r die 3pin Steckverbinder. Deshalb kommt hier ein 23 reihiges Steckbrett mit 2&#215;5 Spalten und mit jeweils einer extra VCC und GND Reihe zum Einsatz. Daf&#252;r wird das Shield insgesamt breiter und ragt &#252;ber das Arduino Board hinaus. es kommen n&#228;mlich noch die 3reihigen Steckverbinder oben und unten dazu. </p>
<h3>St&#252;ckliste:</h3>
<p>1 St&#252;ck Lochraster ca 20 Reihen x 28 Spalten<br />
1 40polige Stiftleiste 40polig<br />
1 36polige Stiftleiste 36polig<br />
oder 3 40polige Stiftleisten 40polig<br />
1 2polige Schraubklemme 5,08mm Raster<br />
1 Set Arduino Stackable Headers, 2x8polig, 2x6polig (<a href="http://www.sparkfun.com/products/10007" class="liexternal">SparkFun</a>)<br />
1 Arduino Offset Header 8polig (<a href="http://www.sparkFun.com/products/9374" class="liexternal">Sparkfun</a>)<br />
1 St&#252;ck Silberdraht ca 30cm<br />
1 St&#252;ck isolierter roter Draht ca 10cm<br />
1 Steckbrett ca 23 Spalten </p>
<p>Etwas schwer zu beschaffen sind die Arduino Steckverbinder, sie erleichtern aber den Zusammenbau erheblich. Man bekommt diese bei Sparkfun bzw. den &#252;blichen SparkFun Distributoren. Man kann sich zwar die Arduino Header auch mit Buchsenleisten und Stiftleisten herstellen. Dummerweise ist die linke obere 8polige Buchsenleiste nicht im 2.54mm Raster sondern um 1,27mm versetzt. Hier hilft die Offset Leiste ungemein.<br />
Im unteren Bild ist links unten der Offset Steckverbinder zu sehen rechts daneben der normale Arduino Steckverbinder.</p>
<p><a href="http://lh4.ggpht.com/-zWztoCqeIlc/Txr8LQg4uKI/AAAAAAAAEtU/vzba4AoUtlk/IMG_2441_2_3_tonemapped.tif.jpg" title="IMG_2441_2_3_tonemapped.tif.jpg" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/-zWztoCqeIlc/Txr8LQg4uKI/AAAAAAAAEtU/vzba4AoUtlk/s400/IMG_2441_2_3_tonemapped.tif.jpg" alt="IMG_2441_2_3_tonemapped.tif.jpg" title="IMG_2441_2_3_tonemapped.tif.jpg" class="alignnone" width="400" /></a> </p>
<h3>Aufbau</h3>
<ul>
<li>Die Lochraster Platine zuschneiden. 4 Reihen nach oben und unten freilassen f&#252;r die 3pin Steckverbinder</li>
<li>Vor dem Festl&#246;ten der Steckverbinder unbedingt &#252;berpr&#252;fen, ob der Pinabstand korrekt ist, die Steckverbinder lose durch die Lochrater Platine stecken und auf das Arduino Bard stecken. </li>
<li>Die Steckverbinder festl&#246;ten. Am besten nur jewiels am Anfang und Ende. Erst wenn man die Drahtverbindungen macht, sollte man die restlichen Steckverbinder Pins anl&#246;ten</li>
<li>Am besten mit der GND Verbindung anfangen. Dann die VCC Verbindungen. zum Schluss die einzelnen Signalleitungen verlegen.</li>
<li>Bevor man Spannung an das Shield anschliest, mit dem Ohmeter die Verbindungen pr&#252;fen (Durchgang und Kurzschluss). Dann das Shield alleine versorgen und an den Jumpern die Spannung pr&#252;fen, dann die Jumper in allen Varianten durchpr&#252;fen und die Spannung an den Steckverbindern pr&#252;fen. </li>
</ul>
<p>Der Fritzing Layout Plan sollte helfen die notwendigen Verbindungen zu finden. Die verwendeten Farben bedeuten:</p>
<ul>
<li>schwarz GND</li>
<li>rot VCC oder 5V</li>
<li>orange 3.3V </li>
<li>gelb Vin oder Vextern</li>
<li>blau Signal</li>
</ul>
<p><a href="http://lh4.ggpht.com/-6scMlN6CBf8/TxnaCjpoiNI/AAAAAAAAEsM/lDplDFZX8bo/ard.jpg" title="ard.jpg" rel="lightbox" class="liimagelink"><img src="http://lh4.ggpht.com/-6scMlN6CBf8/TxnaCjpoiNI/AAAAAAAAEsM/lDplDFZX8bo/s400/ard.jpg" alt="ard.jpg" title="ard.jpg" class="alignnone" width="400" /></a> </p>
<h3>Verbesserungsvorschl&#228;ge</h3>
<p>Auf den Fotos ist zu erkennen das bei den unteren 3poligen Steckverbindern GND in der Mitte liegt und nicht aussen, wie bei den oberen Steckverbindern. Das habe ich mir bei anderen Kaufboards abgeschaut. Das kann aber leicht zu Verwirrungen f&#252;hren. Deshalb besser einheitliche Steckernormen verwenden. Im Schaltbild ist das schon so realisiert.<br />
Die Stromversorgung der beiden oberen 3poligen Steckverbinder k&#246;nnte man splitten und &#252;ber einen zus&#228;tzlichen Jumper mit 2 unterschiedlichen Spannungen betreiben.<br />
Derzeit ist die Schraubklemme mit Vin vom Arduino verbunden. Damit kann man zwar das Board &#252;ber die Schraubklemme mitversorgen. Aber man darf nicht gleichzeitig das Arduino Board &#252;ber die Powerbuchse und &#252;ber die Schraubklemme versorgen.<br />
Vin ist nicht verpolungssicher. Schliesst man die externe Stromversorgung falsch an, raucht das Board ab (und alles was darn h&#228;ngt).</p>
<p>Das komplette Shield mit Steckbrett auf einem FEZ Panda II board.<br />
<a href="http://lh6.ggpht.com/-7WtRu-w3cSk/TxnYzoXSXLI/AAAAAAAAEsA/wvR0x5KUJ4Y/IMG_2435_6_7_tonemapped.tif.jpg" title="IMG_2435_6_7_tonemapped.tif.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/-7WtRu-w3cSk/TxnYzoXSXLI/AAAAAAAAEsA/wvR0x5KUJ4Y/s400/IMG_2435_6_7_tonemapped.tif.jpg" alt="IMG_2435_6_7_tonemapped.tif.jpg" title="IMG_2435_6_7_tonemapped.tif.jpg" class="alignnone" width="400" /></a><br />
Hier noch ein Bild mit extern angeschlossenen Sensoren, Servos, serielles LCD. Auf dem Steckbrett ist ein Motor Treiber IC (L293D) zu sehen an dem 2 Getriebmotoren angeschlossen snd. Fertig ist der Testaufbau f&#252;r einen kleinen Roboter.<br />
<a href="http://lh3.ggpht.com/-z4gHLebJPcc/Txrx3v62bmI/AAAAAAAAEsg/rzygJZxxW4U/IMG_2438_39_40_tonemapped.tif.jpg" title="IMG_2438_39_40_tonemapped.tif.jpg" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/-z4gHLebJPcc/Txrx3v62bmI/AAAAAAAAEsg/rzygJZxxW4U/s400/IMG_2438_39_40_tonemapped.tif.jpg" alt="IMG_2438_39_40_tonemapped.tif.jpg" title="IMG_2438_39_40_tonemapped.tif.jpg" class="alignnone" width="400" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/allgemein/diy-arduino-fez-shield/694/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Android App Inventor</title>
		<link>http://www.robotfreak.de/blog/robotik/android-app-inventor/555</link>
		<comments>http://www.robotfreak.de/blog/robotik/android-app-inventor/555#comments</comments>
		<pubDate>Sun, 27 Mar 2011 20:50:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[MASHR]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[App Inventor]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=555</guid>
		<description><![CDATA[Bei der Entwicklung von MASHR gefiel mir die Idee, den Roboter &#252;ber das Android Handy fernsteuern zu k&#246;nnen. Die Cellbots Applikation ist echt genial. Leider ist es mit meinen Java Programmier K&#252;nsten nicht weit her um so ein Programm selbst zu schreiben. Allerdings geht es auch ohne Java und gro&#223;en Programmierkentnissen, dank Googles App Inventor. [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Entwicklung von <a href="/blog/?tag=mashr" class="liinternal">MASHR</a> gefiel mir die Idee, den Roboter &#252;ber das Android Handy fernsteuern zu k&#246;nnen. Die <a href="http://cellbots.com/" class="liexternal">Cellbots</a> Applikation ist echt genial. Leider ist es mit meinen Java Programmier K&#252;nsten nicht weit her um so ein Programm selbst zu schreiben. Allerdings geht es auch ohne Java und gro&#223;en Programmierkentnissen, dank <a href="http://appinventor.googlelabs.com/about/" class="liexternal">Googles App Inventor</a>.<br />
<a href="http://lh3.ggpht.com/_9e10QjiGiuE/TY9mpCXPBUI/AAAAAAAADtI/nlsRcyXG-m0/IMG_1545.JPG" title="IMG_1545.JPG" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/_9e10QjiGiuE/TY9mpCXPBUI/AAAAAAAADtI/nlsRcyXG-m0/h400/IMG_1545.JPG" alt="IMG_1545.JPG" title="IMG_1545.JPG" class="alignnone" width="400" /></a><br />
<span id="more-555"></span></p>
<h2>Installation</h2>
<p>Die Installation von App Inventor ist denkbar einfach. Man braucht nur einen Google Account und eine aktuelle Java 6 Version. Die <a href="http://appinventor.googlelabs.com/learn/setup/" class="liexternal">Installations Anleitung</a> zeigt die notwendigen Schritte f&#252;r Windows, MacOS und Linux.  </p>
<h2>Einleitung</h2>
<p>Entwickelt wird unter App Inventor direkt im Browser. Die Programme werden auch nicht lokal abgelegt sondern landen direkt in der Google cloud.  </p>
<p>Zun&#228;chst entwirft man die Oberfl&#228;che der Anwendung. Alles grafisch per Drag and drop. Wer mit Visual Studio oder anderen grafischen Programmier Tools arbeitert, wird sich schnell damit zurecht finden.</p>
<p>Die eigentliche Programmierung findet dann im Blocks Editor statt. Programmiert wird auch hier grafisch mit einer Art von Code Puzzle Bausteinen. Man zieht einfach die gew&#252;nschte Funktionen oder Variable auf den Bildschirm und editert deren Eigenschaftemn. Ein Main Progamm sucht man vergeblich. Alles ist Event gesteuert, z.B. l&#246;st der Druck einer Taste ein Buttonx.Click Event aus. </p>
<p>Es empfiehlt sich zumindest die <a href="http://appinventor.googlelabs.com/learn/tutorials/index.html" class="liexternal">Basis Tutorials</a> durchzuarbeiten, bevor man sich an eigene Programme wagt. </p>
<h2>Cellbot light</h2>
<p>Das erste selbgeschriebene App Inventor Programm ist  eine Cellbot Light Version. Es wird die bestehende Schnittstelle des Cellbot Codes verwendet um den Roboter &#252;ber die Bluetooth Schnittstelle steuern. Der Arduino Code bleibt unver&#228;ndert. Allerdings mu&#223;te ich nicht bei 0 anfangen. Eine bestehendes Beispiel, das <a href="http://ai.kittywolf.net/index.php/BlueTooth_Client_Connect" class="liexternal">Bluetooth Client Connect Example</a> von <a href="http://ai.kittywolf.net/index.php/Main_Page" class="liexternal">ShivalWolf</a> diente als Vorlage. App Inventor unterst&#252;tzt nur das Bluetooth SPP Profil, was hier vollkommen ausreicht.</p>
<h3>Programm Aufbau</h3>
<p>So sieht das Frontend Design im App Inventor aus. Connect Button zum Erstellen einer Bluetooth Verbindung. Ein steuerkreuz dient zur Roboter Steuerung. Die vewendeten Symbole stammen aus der freien <a href="http://openiconlibrary.sourceforge.net/" class="liexternal">Open Icon Library</a><br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TY89qitzDDI/AAAAAAAADl4/k8lI0fs02b8/RobotControl-app1.jpg" title="RobotControl-app1.jpg" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TY89qitzDDI/AAAAAAAADl4/k8lI0fs02b8/s150-c/RobotControl-app1.jpg" alt="RobotControl-app1.jpg" title="RobotControl-app1.jpg" class="alignnone" width="150" /></a> </p>
<p>Der Initialisierungs Code &#252;berpr&#252;ft, ob Bluetooth eingeschaltet ist und holt sich die letzten Verbindungs Infos aus einer Datenbank.<br />
<a href="http://lh3.ggpht.com/_9e10QjiGiuE/TY89rM6XZXI/AAAAAAAADl8/Ns6RN9Reklg/RobotControl-Initialize.jpg" title="RobotControl-Initialize.jpg" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/_9e10QjiGiuE/TY89rM6XZXI/AAAAAAAADl8/Ns6RN9Reklg/s150-c/RobotControl-Initialize.jpg" alt="RobotControl-Initialize.jpg" title="RobotControl-Initialize.jpg" class="alignnone" width="150" /></a> </p>
<p>Die Liste der verf&#252;gbaren Bluetooth Devices. Das ausgew&#228;hlte Device wird in der Datenbank gespeichert.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89r7FTA-I/AAAAAAAADmU/5DS8WXzI6Iw/RobotControl-lstDevice.jpg" title="RobotControl-lstDevice.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89r7FTA-I/AAAAAAAADmU/5DS8WXzI6Iw/s150-c/RobotControl-lstDevice.jpg" alt="RobotControl-lstDevice.jpg" title="RobotControl-lstDevice.jpg" class="alignnone" width="150" /></a> </p>
<p>Der Code f&#252;r den Connect Buttton. Hier wird versucht, eine Verbindung zum ausgew&#228;hlten Bluetooth Device aufzunehmen. Besteht bereits eine Bluetooth Verbindung, kann diese durch den Button wieder geschlossen werden.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89sRaZljI/AAAAAAAADmI/qx03WIJ9BhQ/RobotControl-BtnConnect.jpg" title="RobotControl-BtnConnect.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89sRaZljI/AAAAAAAADmI/qx03WIJ9BhQ/s150-c/RobotControl-BtnConnect.jpg" alt="RobotControl-BtnConnect.jpg" title="RobotControl-BtnConnect.jpg" class="alignnone" width="150" /></a> </p>
<p>Die Control Buttons zur Roboter Steuerung senden den entsprechenden Befehl per Bluetooth zum Roboter. Das Protokoll ist recht simpel:</p>
<ul>
<li>&#8216;f&#8217; forward l&#228;&#223;t den Roboter f&#252;r 1s vorw&#228;rts fahren</li>
<li>&#8216;b&#8217; backward. R&#252;ckw&#228;rts fahren</li>
<li>&#8216;l&#8217; left. Links drehen</li>
<li>&#8216;r&#8217; right. Rechts drehen</li>
<li>&#8216;s&#8217; stop. Stoppt den Roboter</li>
</ul>
<p>Jeder Befehl wird durch einen Zeilenvorschub &#8216;\n&#8217; abgesschlossen.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89rgTMMcI/AAAAAAAADmQ/V5MZQDPX3zs/RobotControl-Buttons.jpg" title="RobotControl-Buttons.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89rgTMMcI/AAAAAAAADmQ/V5MZQDPX3zs/s150-c/RobotControl-Buttons.jpg" alt="RobotControl-Buttons.jpg" title="RobotControl-Buttons.jpg" class="alignnone" width="150" /></a> </p>
<p>Fehlermeldungs Ausgabe. Eventuell auftretende Fehler vom Bluetooth Interface werden hier abgefragt und auf dem User Screen ausgegeben.<br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TY89sgM74qI/AAAAAAAADmM/ScasBrcx8zM/RobotControl-ErrorOccured.jpg" title="RobotControl-ErrorOccured.jpg" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TY89sgM74qI/AAAAAAAADmM/ScasBrcx8zM/s150-c/RobotControl-ErrorOccured.jpg" alt="RobotControl-ErrorOccured.jpg" title="RobotControl-ErrorOccured.jpg" class="alignnone" width="150" /></a> </p>
<h3>Download</h3>
<p>Das Programm steht zum Download auf meiner <a href="http://robotfreak.googlecode.com/files/RobotControl.zip" class="lizip">Google Code Page</a> bereit. Zum Import einfach das Zip-File herunterladen und im App Inventor laden.</p>
<h2>Wie geht es weiter</h2>
<p>Das Senden &#252;ber Bluetooth ist recht einfach. Als n&#228;chstes steht der Bluetooth Empfang und die Darstellung der Sensor Daten an. Da es kein Event zum Bluettoth Empfang gibt, mu&#223; hier ein TImer verwendet werden, der zyklisch die Bluetooth  Daten einliest.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://appinventor.googlelabs.com/about/" class="liexternal">App Inventor</a></li>
<li><a href="http://groups.google.com/group/programming-with-app-inventor" class="liexternal">App Inventor Forum</a></li>
<li><a href="http://www.theairepository.info/" class="liexternal">the App Inventor Repository  &#8211; tAIR</a></li>
<li><a href="http://groups.google.com/group/theairepository" class="liexternal">tAIR Forum</a></li>
<li><a href="http://ai.kittywolf.net/index.php/Main_Page" class="liexternal">ai.kittywolf.net</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/android-app-inventor/555/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MASHR &#8211; Mein Arduino Start Here Robot</title>
		<link>http://www.robotfreak.de/blog/robotik/mashr-mein-arduino-start-here-robot/516</link>
		<comments>http://www.robotfreak.de/blog/robotik/mashr-mein-arduino-start-here-robot/516#comments</comments>
		<pubDate>Fri, 11 Feb 2011 20:33:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[DFRobot]]></category>
		<category><![CDATA[MASHR]]></category>
		<category><![CDATA[Romeo]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=516</guid>
		<description><![CDATA[MASHR ist mein Versuch, einen Roboter f&#252;r Anf&#228;nger zu bauen. Es basiert auf Arduino, l&#228;uft aber nicht mit einem Standard-Arduino booard. Stattdessen wurde ein Romeo all-in-One-Roboter Controller (Arduino mit Motorantrieb) von DFrobot verwendet. Das Chassis besteht aus einer Polystyrol (PS) Platte. Die Pololu R&#228;der und Motoren geben eine gute Traktion und die M&#246;glichkeit sp&#228;ter Rad-Encoder [...]]]></description>
			<content:encoded><![CDATA[<p>MASHR ist mein Versuch,  einen Roboter f&#252;r Anf&#228;nger zu bauen. Es basiert auf  Arduino, l&#228;uft aber nicht mit einem Standard-Arduino booard. Stattdessen wurde ein Romeo all-in-One-Roboter Controller (Arduino mit Motorantrieb) von DFrobot verwendet. Das Chassis besteht aus einer Polystyrol (PS) Platte. Die Pololu R&#228;der und Motoren geben eine gute Traktion und die M&#246;glichkeit sp&#228;ter Rad-Encoder hinzuf&#252;gen.</p>
<p><a href="http://lh6.ggpht.com/_9e10QjiGiuE/TRoCYFY7yJI/AAAAAAAADaQ/kBSwWJnJh48/IMG_0956.JPG" title="IMG_0956.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="IMG_0956.JPG" src="http://lh6.ggpht.com/_9e10QjiGiuE/TRoCYFY7yJI/AAAAAAAADaQ/kBSwWJnJh48/h500/IMG_0956.JPG" alt="IMG_0956.JPG" width="500" /></a><br />
<span id="more-516"></span></p>
<h2>Steuerung:</h2>
<p>Ich mu&#223;te lange suchen, um das richtige Controller-Board zu finden. Es endete mit der Entscheidung f&#252;r das Romeo all-in-One-Board von DFRobot. Es hat alles an Bord, was eine cooler Roboter braucht:</p>
<ul>
<li>Motor controller. Der L298 ist der gro&#223;e, starke Bruder des L293</li>
<li>3 Pin Steckverbinder f&#252;r alle IO Pins. Jeder IO Pin verf&#252;gt &#252;ber eigene Stromversorgungs Pin</li>
<li>extra Motor Stromversorgungs Anschluss</li>
<li>extra Servo Stromversorgungs Anschluss. &#220;ber einen Jumper kann man zwischen externer Servo und interner Versorgungsspannung f&#252;r die IO Pins w&#228;hlen.</li>
<li>100% Arduino kompatibel, ATmega328 Prozessor mit Arduino Bootloader</li>
<li>extra Wireless/BT Anschluss</li>
<li>8 analoge IOs anstelle von 6 des original Arduino Boards</li>
<li>extra I2C Anschl&#252;sse</li>
<li>7 Benutzer Taster. 5 Taster ben&#246;tigen nur einen A/D Eingang</li>
<li>All-in-one Board, keine extra Shields notwendig/li&gt;</li>
<li>Arduino kompatibler Shield Erweiterungs Port</li>
<li>fertig montiert kein L&#246;ten notwendig</li>
<li>&#252;berall auf der Welt bei vielen Distributoren verf&#252;gbar</li>
</ul>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCElJGUXI/AAAAAAAADZc/Ax8WfP3CZbI/001.JPG" title="001.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="001.JPG" src="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCElJGUXI/AAAAAAAADZc/Ax8WfP3CZbI/h500/001.JPG" alt="001.JPG" width="500" /></a></p>
<p>Zuvor habe ich verschiedene Kombinationen von Boards und Motor Shields f&#252;r den Arduino durchprobiert. Aber ich habe kein vern&#252;nftiges Motor Shield gefunden.</p>
<h2>Teileliste:</h2>
<p>Die Teile f&#252;r den Roboter sollten rund 110 € kosten. Hier ist der Teileliste:</p>
<ul>
<li><a href="http://www.dfrobot.com/index.php?route=product/product&amp;path=35_38&amp;product_id=56" class="liexternal">DFRobot Romeo Controller</a></li>
<li><a href="http://www.dfrobot.com/index.php?route=product/product&amp;path=36_55&amp;product_id=53" class="liexternal">DFRobot Ultraschall Sensor URM 37</a></li>
<li>2 x <a href="http://www.pololu.com/catalog/product/992" class="liexternal">Pololu 1:100 Micro Metal Getriebemotoren</a></li>
<li>2 x <a href="http://www.pololu.com/catalog/product/1090" class="liexternal">Pololu R&#228;der 42mm</a> mit Radencoder Option</li>
<li>2 x <a href="http://www.pololu.com/catalog/product/1086" class="liexternal">Pololu Motor Halterung</a></li>
<li>2 x St&#252;tzr&#228;der, <a href="http://www.pololu.com/catalog/product/66" class="liexternal">Tamiya 70144</a></li>
<li>1 Platte Polystyrol (PS) DinA4, 3mm dick</li>
<li>1 L Profil Polystyrol  25x25mm f&#252;r die Sensor Halterung aus dem Baumarkt</li>
<li>1 x Battery Halter f&#252;r 6 AA (Mignon) Zellen</li>
<li>eine Menge M3 Muttern und Schrauben</li>
</ul>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCLTK_mlI/AAAAAAAADZs/Wb-9LG-BTMQ/017.JPG" title="017.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="017.JPG" src="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCLTK_mlI/AAAAAAAADZs/Wb-9LG-BTMQ/h500/017.JPG" alt="017.JPG" width="500" /></a></p>
<p><a href="http://lh5.ggpht.com/_9e10QjiGiuE/TRoCKLNeIMI/AAAAAAAADZo/56TyHzduKwQ/011.JPG" title="011.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="011.JPG" src="http://lh5.ggpht.com/_9e10QjiGiuE/TRoCKLNeIMI/AAAAAAAADZo/56TyHzduKwQ/h500/011.JPG" alt="011.JPG" width="500" /></a></p>
<h2>Chassis:</h2>
<p>Statt eines fertigen Chassis kommt hier ein selbstgemachtes Chassis zum Einsatz. Ok, man ben&#246;tigt mehr Werkzeuge, um ein eigenes Chassis zu bauen, aber auf der anderen Seite hat man die Freiheit, das Chassis mehr an seine eigenen Bed&#252;rfnisse anzupassen. F&#252;r einen Einsteiger-Roboter ist ein 2-Rad-Differential-Antrieb die beste Wahl. Das Chassis sollte rund oder fast rund sein, die R&#228;der  sollten in der Mitte des Roboters angebracht sein. So kann der Roboter auf der Stelle, ohne an Hindernisse zu sto&#223;en. Weil 2 R&#228;der nicht stabil sind , wird mindestens ein 3. St&#252;tzrad zus&#228;tzlich ben&#246;tigt. Hier ist sogar noch ein 4. St&#252;tzrad vorne vorgesehen, damit der Roboter bei einem scharfen Bremsvorang nicht vorn&#252;ber kippt.</p>
<p>Das Chassis besteht aus polystyrol (PS) und wurde mit Google SketchUp designed. SketchUp is ein gro&#223;artiges kostenloses Tool f&#252;r 3D CAD. Um den Entwurf sp&#228;ter beim Bau des Chasssis verwenden zu k&#246;nne, ist es wichtig im 1:1 Ma&#223;stab zu zeichnen. Dann kann man sp&#228;ter das design ausdrucken und als Bohrvorlage verwenden. Das 1. Video zeigt den Aufbau des Chassis.</p>
<p><a href="http://lh4.ggpht.com/_9e10QjiGiuE/TRoCTcsIzuI/AAAAAAAADaA/AjPtXYU01DQ/038.JPG" title="038.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="038.JPG" src="http://lh4.ggpht.com/_9e10QjiGiuE/TRoCTcsIzuI/AAAAAAAADaA/AjPtXYU01DQ/h500/038.JPG" alt="038.JPG" width="500" /></a></p>
<p>Die R&#228;der befinden sich innerhalb des Chassis. Damit kann der Roboter auf der Stelle drehen, ohne mit den R&#228;dern h&#228;ngenzubleiben.</p>
<p><a href="http://lh5.ggpht.com/_9e10QjiGiuE/TRoCW1QvHvI/AAAAAAAADaM/AQeJcEXyOnw/049.JPG" title="049.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="049.JPG" src="http://lh5.ggpht.com/_9e10QjiGiuE/TRoCW1QvHvI/AAAAAAAADaM/AQeJcEXyOnw/h500/049.JPG" alt="049.JPG" width="500" /></a></p>
<h2>Sensoren:</h2>
<p>Derzeit wird nur ein Sensor verwendet. Ein Ultraschall Sensor von DFrobot, der URM37 wird hier verwendet. Der Sensor hat verschiedene Ansteuer Modi. Im moment arbeitet der Sensor im seriellen Mode. 2 Prozessor Pins und die Arduino Software Serial Bibliothek werden ben&#246;tigt.</p>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCGbbDctI/AAAAAAAADZg/qttuhdbNsCM/005.JPG" title="005.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="005.JPG" src="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCGbbDctI/AAAAAAAADZg/qttuhdbNsCM/h500/005.JPG" alt="005.JPG" width="500" /></a></p>
<p>Ein St&#252;ck L f&#246;rmiges Polystyrol Profil wird als Sensor Halterung verwendet.</p>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCcgCO6ZI/AAAAAAAADac/9k6Hi-Xz6Ho/IMG_0963.JPG" title="IMG_0963.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="IMG_0963.JPG" src="http://lh3.ggpht.com/_9e10QjiGiuE/TRoCcgCO6ZI/AAAAAAAADac/9k6Hi-Xz6Ho/h500/IMG_0963.JPG" alt="IMG_0963.JPG" width="500" /></a></p>
<h2>Stromversorgung:</h2>
<p>Das Board und die Motoren werdee von einem 6xAA Batterie Pack betrieben, um das das Gewicht des Roboters niedrig zu halten. Um Servos mit der selben Stromversorgung zu betreiben, hilft ein kleiner Trick. Das Batterie Pack bekommt einen weiteren Ausgang nach der 4. AA Zelle. Das ergibt 4xAA (4.8V) f&#252;r Servos und 6xAA (7.2V) f&#252;r die Motoren.</p>
<p><a href="http://lh4.ggpht.com/_9e10QjiGiuE/TRoCbBVl9NI/AAAAAAAADaY/FMv4HFX1Uak/IMG_0962.JPG" title="IMG_0962.JPG" rel="lightbox" class="liimagelink"><img class="alignnone" title="IMG_0962.JPG" src="http://lh4.ggpht.com/_9e10QjiGiuE/TRoCbBVl9NI/AAAAAAAADaY/FMv4HFX1Uak/h500/IMG_0962.JPG" alt="IMG_0962.JPG" width="500" /></a></p>
<h2>Erweiterungen:</h2>
<h3>OnBoard Kamera</h3>
<p>Eine GoPro Hero HD wurde verwendet um OnBoard Videos aufzunehmen. Diese Kamera kann HD-Video aufnehmen. Es ist allerdings keine Drahtlose Kamera, das Video wird auf der internen SD-Karte aufgezeichnet.</p>
<p><a href="http://lh3.ggpht.com/_9e10QjiGiuE/TRtq9488gFI/AAAAAAAADbc/phukRbfjQpY/5214825695_034e75e9f6_b.jpg" title="5214825695_034e75e9f6_b.jpg" rel="lightbox" class="liimagelink"><img class="alignnone" title="5214825695_034e75e9f6_b.jpg" src="http://lh3.ggpht.com/_9e10QjiGiuE/TRtq9488gFI/AAAAAAAADbc/phukRbfjQpY/h500/5214825695_034e75e9f6_b.jpg" alt="5214825695_034e75e9f6_b.jpg" width="500" /></a></p>
<h3>Bluetooth Fernbedienung:</h3>
<p>Ein Sparkfun Bluetooth Mate wird hier verwendet, um den Roboter von einem Android Handy aus fernzusteuern, wie im 3. Video gezeigt wird. Die Cellbot app konnte dazu ohne &#196;nderung verwendet werden. Ein fertiges Arduino Sketch mu&#223;te nur wenig ge&#228;ndert werden.</p>
<h2>Videos:</h2>
<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/Og09rHl8yaA" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/Og09rHl8yaA"></embed></object></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/FtXKOPoubb0" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/FtXKOPoubb0"></embed></object></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/7JPtNbGoOS8" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/7JPtNbGoOS8"></embed></object></p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://letsmakerobots.com/node/23956" class="liexternal">MASHR auf letsmakerobots</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157625200100168/" class="liexternal">MASHR Flickr Webalbum</a></li>
<li><a href="http://code.google.com/p/robotfreak/source/browse/#svn%2Ftrunk%2Fmashr" class="liexternal">MASHR sourcecode</a> at Google Code</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/mashr-mein-arduino-start-here-robot/516/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>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>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[Arduino]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[AVR]]></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>
	</channel>
</rss>

