<?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>Fri, 02 Jul 2010 19:09:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>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[AVR]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Robotik]]></category>

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

		<guid isPermaLink="false">http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16</guid>
		<description><![CDATA[Wem der Einstieg in die Programmierung der Atmel AVR Controller mit den Datenbl&#228;ttern zu schwer f&#228;llt, f&#252;r den ist Arduino vielleicht genau das richtige. Arduino ist eine Open-Source- Plattform, basierend auf einem Microcontroller-Board und einer Entwicklungsumgebung mit einer API f&#252;r den Microcontroller. In diesem Zusammenhang wird oft auch der Begriff Physical Computing verwendet. Darunter versteht [...]]]></description>
			<content:encoded><![CDATA[<p>Wem der Einstieg in die Programmierung der Atmel AVR Controller mit den Datenbl&#228;ttern zu schwer f&#228;llt, f&#252;r den ist <a href="http://www.arduino.cc/" class="liexternal">Arduino</a> vielleicht genau das richtige. Arduino ist eine Open-Source- Plattform, basierend auf einem Microcontroller-Board und einer Entwicklungsumgebung mit einer API f&#252;r den Microcontroller. In diesem Zusammenhang wird oft auch der Begriff <a href="http://en.wikipedia.org/wiki/Physical_computing" rel="nofollow" class="liwikipedia">Physical Computing</a> verwendet. Darunter versteht im weitesten Sinne ein physikalisches System, das mit Hilfe von Hard- und Software mit der realen analogen Welt interagieren kann. Im Gegensatz zu anderen Kaufboards wie z.B. die BasicStamp Reihe sind die Arduino Boards viel g&#252;nstiger im Preis.</p>
<p><span id="more-16"></span></p>
<h2>Einleitung</h2>
<p>Der Name Arduino ist italienisch und bezieht sich nach offizieller Meinung auf <a href="http://de.wikipedia.org/wiki/Arduin_von_Ivrea" rel="nofollow" class="liwikipedia">Arduino von Ivrea</a> (955-1015), der Markgraf von Ivrea und sp&#228;ter K&#246;nig von Italien war. Nach inoffizieller Meinung ist der Name eher trivialer Natur, es ist einfach der Name einer hiesigen Studentenkneipe <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Einiger der Arduino Entwickler arbeiten am Interaction Design Institute von Ivrea darunter Massimo Banzi und David Cuartielles.</p>
<h2>Hardware</h2>
<p>Die Arduino Hardware benutzt den Atmel AVR <span class="wikiword">ATmega8</span>/168 als Prozessor Plattform. Zur Kommunikation mit einem PC mit dem Arduino Board steht die serielle Schnittstelle des Atmel Prozessors zur Verf&#252;gung. Neuere Boards verf&#252;gen zudem &#252;ber einen USB-Seriell Wandler, <a href="http://de.wikipedia.org/wiki/Bluetooth" rel="nofollow" class="liwikipedia">Bluetooth</a> oder <a href="http://de.wikipedia.org/wiki/ZigBee" rel="nofollow" class="liwikipedia">ZigBee</a> Adapter.</p>
<p>Das Arduino Board kann man:</p>
<ul>
<li>fertig montiertes Board kaufen,</li>
<li>gefertigte Platine,  ohne Bauteile</li>
<li>das Board komplett selbst aufbauen.</li>
</ul>
<p>Folgende <a href="http://www.arduino.cc/en/Main/Boards" class="liexternal">Fertigboards</a> gibt es:</p>
<ul>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardSerial" class="liexternal">Arduino Serial</a>, der Ur-Vater mit RS232 Anbindung</li>
<li>Arduino NG, <em>(Nuova Generazione</em>) mit USB Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardDiecimila" class="liexternal">Arduino Diecimila</a>, die neuste Generation mit USB Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardBluetooth" class="liexternal">Arduino BT</a> mit Bluetooth Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardMini" class="liexternal">Arduino Mini</a>,  24poliger  DIL Sockel &#228;hnlich der BasicStamp</li>
<p>Zudem gibt es noch einige Arduino Clones:</p>
<li><a href="http://www.freeduino.org/" class="liexternal">Freeduino Board</a>, ein Arduino Clone</li>
<li><a href="http://www.ladyada.net/make/boarduino/index.html" class="liexternal">Boarduino</a>, ein Arduino f&#252;r Steckbretter</li>
</ul>
<h3>Arduino Diecimila</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/1464017748/" title="diecimila" class="liimagelink"><img src="http://farm2.static.flickr.com/1187/1464017748_bb72eb89d1.jpg" alt="diecimila" /></a></p>
<p>Das Arduino Diecimila ist das neueste Arduino Board auf dem Markt. Der Name Diecimila ist italienisch und bedeuted &#252;bersetzt 10000. Das soll auf die Zahl von &#252;ber 10000 bisher verkauften Arduino Boards hindeuten. Die wichigtste Neuerung des Diecimila Boards ist die F&#228;higkeit das laufende Programm &#252;ber die Arduino IDE jederzeit abzubrechen und ein anderes Programm zu laden. Bei den anderen Boards mu&#223;te dazu immmer noch der Reset Schalter auf dem Board gedr&#252;ckt werden. F&#252;r &#228;ltere Boards ist allerdings ein Hardware Patch verf&#252;gbar, der dieses Feature nachbildet.</p>
<h3>Arduino-BT</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/1464017148/" title="arduino-bt" class="liimagelink"><img src="http://farm2.static.flickr.com/1384/1464017148_5726bc4459.jpg" alt="arduino-bt" /></a></p>
<p>Das Arduino Board mit Bluetooth Modem bluegiga WT11. Der Atmega168 Porzessor ist hier aus Platzgr&#252;nden ein SMD Typ. Ansonsten ist das Arduino-BT bis auf den Stromversorgungsstecker Pin kompatibel zu anderen Arduino Boards. Bei diesem Board ist darauf zu achten, dass die externe Stromversorgung h&#246;chstens 5,5V betragen darf.</p>
<h2>Software</h2>
<p>Der Microcontroller auf dem Board wird mit Hilfe der Arduino Programmiersprache programmiert. Diese basiert auf <a href="http://www.processing.org/" class="liexternal">Processing</a> mit der Syntax von C, bzw. C++. Als Entwicklungsumgebung steht die auf <a href="http://wiring.org.co/" class="liexternal">Wiring</a> basierende Arduino IDE zur Verf&#252;gung. Ein Arduino Projekt kann als Stand-Alone L&#246;sung arbeiten oder auch PC gesteuert. Dazu gibt es fertige Bibliotheken zur Anbindung des Arduino Boards an Flash, Processing, MaxMSP&#8230;</p>
<h3>Die Arduino API</h3>
<p>Die <a href="http://www.arduino.cc/en/Reference/HomePage" class="liexternal">Arduino API</a> besteht aus einer Reihe von High-Level Funktionen, die den Zugriff auf die AVR Hardware vereinfachen.&#220;ber zus&#228;tzlichen Bibliotheken l&#228;&#223;t sich die Funktionalit&#228;t erweitern (z.B. I2C, Schrittmotoransteuerung etc.).  Es gibt eine F&#252;lle von <a href="http://www.arduino.cc/en/Tutorial/HomePage" class="liexternal">Tutorials</a> und Beispielprogramme f&#252;r die Arduino Plattform. Im <a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a> kann jeder angemeldete User seine eigenen Projekte vorstellen.</p>
<h3>Die Arduino IDE</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/10/arduino-ide.jpg" title="Arduino IDE" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/10/arduino-ide.jpg" alt="Arduino IDE" /></a><br />
Mit der Arduino IDE kann man neue Sketche erstellen oder Beispiel Sketche laden. Auf Knopfdruck wird das Sketch kompiliert und falls fehlerfrei direkt auf das Arduino Board geladen. &#220;ber das eingebaute Terminalprogramm kann man sich die Ausgaben des Arduino Boards ansehen. Hinter der schicken Oberfl&#228;che steckt die AVR-GCC Compiler Suite. Nat&#252;rlich ist es auch m&#246;glich in die Sketche direkten AVR Code einzubinden.</p>
<h3>Arduino Programmierung</h3>
<p>Ein Arduino Programm im folgenden auch sketch genannt besteht im Grund aus den beiden Funktionen <code>setup()</code> und <code>loop()</code>.  Beide Funktionen werden zur Laufzeit vom Arduino Core Programm aufgerufen. Die Funktion <code>setup()</code> wird einmalig beim Programmstart aufgerufen. Sie enth&#228;lt den Code f&#252;r die Initialisierung der Hardware. Die <code>loop()</code> Funktion wird anschlie&#223;end zyklisch vom Arduino Core aufgerufen.</p>
<h3>Hello World f&#252;r Arduino</h3>
<p>Das folgende sketch l&#228;&#223;t eine LED am Digitalausgang 13 im Sekundentakt blinken.</p>
<p><code><br />
int ledPin = 13;<br />
void setup() {<br />
pinMode(ledPin, OUTPUT);<br />
}</code></p>
<p><code>void loop() {<br />
digitalWrite(ledPin, HIGH);<br />
delay(1000);<br />
digitalWrite(ledPin, LOW);<br />
delay(1000);<br />
}</code></p>
<h2>Arduino f&#252;r Robotik</h2>
<p>Arduino eignet sich durchaus f&#252;r kleinere Roboter-Projekte. Beispiele hierf&#252;r sind der <a href="http://www.windmeadow.com/node/45" class="liexternal">Wiimote controlled firefighting robot</a> und die Portierung f&#252;r den <a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Asuro</a>. Auch zur Prototypen Entwicklung ist es aufgrund der einfachen Programmierung sehr gut geeignet. Ich arbeite zur Zeit auch an einem Arduino Roboter, &#252;ber den ich dann nat&#252;rlich auch hier berichten werde.</p>
<h2>Weblinks</h2>
<h3>Englisch</h3>
<ul>
<li><a href="http://arduino.cc/" class="liexternal">Arduino Homepage</a></li>
<li><a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl" class="liexternal">Arduino Forum</a></li>
<li><a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a></li>
<li><a href="http://www.freeduino.org/" class="liexternal">http://www.freeduino.org/</a> &#8211; Arduino Index und FreeduinoBoard</li>
<li><a href="http://todbot.com/blog/category/arduino/" class="liexternal">todbot blog &gt;&gt; Arduino</a></li>
<li><a href="http://todbot.com/blog/spookyarduino/" class="liexternal">todbot blog &gt;&gt; Spooky Arduino, Tutorials</a></li>
<li><a href="http://itp.nyu.edu/physcomp/Labs/Labs" class="liexternal">ITP &#8211; Physical computing</a></li>
<li><a href="http://www.tigoe.net/pcomp/code/category/category/code/arduinowiring" class="liexternal">tigue.net &#8211; Arduino/Wiring, Beispiele</a></li>
<li><a href="http://www.grayfuse.com/blog/?p=15" class="liexternal">Jeff Gray Blog, Arduino Beispiele</a></li>
<li><a href="http://svn.berlios.de/viewcvs/arduino/trunk/" class="liexternal broken_link">Arduino Sourcecode, SVN Repository</a></li>
<li><a href="http://www.windmeadow.com/node/45" class="liexternal">Wiimote controlled firefighting robot</a></li>
<li><a href="http://wiring.org.co/" class="liexternal">http://wiring.org.co/</a></li>
<li><a href="http://www.processing.org/" class="liexternal">http://www.processing.org/</a></li>
</ul>
<h3>Deutsch</h3>
<ul>
<li><a href="http://incom.org/code/projekte/projekt_anzeigen.php?4,98,0,0,0,102" class="liexternal">incom.org </a>- Arduino Bauanleitung</li>
</ul>
<h3>Bezugsquellen</h3>
<ul>
<li><a href="http://www.segor.de/" class="liexternal">Segor Elektronik</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
